diff --git a/.github/workflows/codegen.yml b/.github/workflows/codegen.yml index d700a26ff..9b550c2ff 100644 --- a/.github/workflows/codegen.yml +++ b/.github/workflows/codegen.yml @@ -25,8 +25,8 @@ jobs: - name: Build asn1c docker image uses: docker/build-push-action@v6 with: - context: utils/codegen/docker - file: utils/codegen/docker/asn1c.Dockerfile + context: utils/codegen/asn1ToC/docker + file: utils/codegen/asn1ToC/docker/asn1c.Dockerfile tags: asn1c:ci outputs: type=docker,dest=/tmp/asn1c-image.tar - name: Upload asn1c-image (artifact) @@ -65,15 +65,19 @@ jobs: matrix: include: - message: cam - script: ./utils/codegen/asn1ToC.py asn1/raw/cam_en302637_2/CAM-PDU-Descriptions.asn asn1/raw/cam_en302637_2/cdd/ITS-Container.asn -t cam -o etsi_its_coding/etsi_its_cam_coding -di asn1c:ci + script: ./utils/codegen/asn1ToC/asn1ToC.py asn1/raw/cam_en302637_2/CAM-PDU-Descriptions.asn asn1/raw/cam_en302637_2/cdd/ITS-Container.asn -t cam -o etsi_its_coding/etsi_its_cam_coding -di asn1c:ci - message: cam_ts - script: ./utils/codegen/asn1ToC.py asn1/raw/cam_ts103900/CAM-PDU-Descriptions.asn asn1/patched/cam_ts103900/cdd/ETSI-ITS-CDD.asn -t cam_ts -o etsi_its_coding/etsi_its_cam_ts_coding -di asn1c:ci + script: ./utils/codegen/asn1ToC/asn1ToC.py asn1/raw/cam_ts103900/CAM-PDU-Descriptions.asn asn1/patched/cam_ts103900/cdd/ETSI-ITS-CDD.asn -t cam_ts -o etsi_its_coding/etsi_its_cam_ts_coding -di asn1c:ci - message: denm - script: ./utils/codegen/asn1ToC.py asn1/raw/denm_en302637_3/DENM-PDU-Descriptions.asn asn1/raw/denm_en302637_3/cdd/ITS-Container.asn -t denm -o etsi_its_coding/etsi_its_denm_coding -di asn1c:ci + script: ./utils/codegen/asn1ToC/asn1ToC.py asn1/raw/denm_en302637_3/DENM-PDU-Descriptions.asn asn1/raw/denm_en302637_3/cdd/ITS-Container.asn -t denm -o etsi_its_coding/etsi_its_denm_coding -di asn1c:ci - message: cpm_ts - script: ./utils/codegen/asn1ToC.py asn1/raw/cpm_ts103324/asn/CPM-PDU-Descriptions.asn asn1/raw/cpm_ts103324/asn/CPM-OriginatingStationContainers.asn asn1/raw/cpm_ts103324/asn/CPM-PerceivedObjectContainer.asn asn1/raw/cpm_ts103324/asn/CPM-PerceptionRegionContainer.asn asn1/raw/cpm_ts103324/asn/CPM-SensorInformationContainer.asn asn1/patched/cpm_ts103324/asn/cdd/ETSI-ITS-CDD.asn -t cpm_ts -o etsi_its_coding/etsi_its_cpm_ts_coding -di asn1c:ci + script: ./utils/codegen/asn1ToC/asn1ToC.py asn1/raw/cpm_ts103324/asn/CPM-PDU-Descriptions.asn asn1/raw/cpm_ts103324/asn/CPM-OriginatingStationContainers.asn asn1/raw/cpm_ts103324/asn/CPM-PerceivedObjectContainer.asn asn1/raw/cpm_ts103324/asn/CPM-PerceptionRegionContainer.asn asn1/raw/cpm_ts103324/asn/CPM-SensorInformationContainer.asn asn1/patched/cpm_ts103324/asn/cdd/ETSI-ITS-CDD.asn -t cpm_ts -o etsi_its_coding/etsi_its_cpm_ts_coding -di asn1c:ci + - message: mapem_ts + script: ./utils/codegen/asn1ToC/asn1ToC.py asn1/raw/is_ts103301/MAPEM-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/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn asn1/patched/is_ts103301/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn -t mapem_ts -o etsi_its_coding/etsi_its_mapem_ts_coding -di asn1c:ci + - message: spatem_ts + script: ./utils/codegen/asn1ToC/asn1ToC.py asn1/raw/is_ts103301/SPATEM-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/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn asn1/patched/is_ts103301/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn -t spatem_ts -o etsi_its_coding/etsi_its_spatem_ts_coding -di asn1c:ci - message: vam_ts - script: ./utils/codegen/asn1ToC.py asn1/raw/vam-ts103300_3/VAM-PDU-Descriptions.asn asn1/patched/vam-ts103300_3/cdd/ETSI-ITS-CDD.asn -t vam_ts -o etsi_its_coding/etsi_its_vam_ts_coding -di asn1c:ci + script: ./utils/codegen/asn1ToC/asn1ToC.py asn1/raw/vam-ts103300_3/VAM-PDU-Descriptions.asn asn1/patched/vam-ts103300_3/cdd/ETSI-ITS-CDD.asn -t vam_ts -o etsi_its_coding/etsi_its_vam_ts_coding -di asn1c:ci steps: - name: Checkout code uses: actions/checkout@v3 @@ -92,6 +96,7 @@ jobs: run: docker load --input /tmp/asn1c-image.tar - name: etsi_its_${{ matrix.message }}_coding run: | + ./asn1/external/download.sh ./asn1/patches/patch.sh ${{ matrix.script }} rm -rf ${{ github.workspace }}/tmp @@ -110,15 +115,19 @@ jobs: matrix: include: - message: cam - script: ./utils/codegen/codegen-rust/asn1ToRosMsg.py asn1/raw/cam_en302637_2/CAM-PDU-Descriptions.asn asn1/raw/cam_en302637_2/cdd/ITS-Container.asn -t cam -o etsi_its_msgs/etsi_its_cam_msgs/msg -di rgen:ci + script: ./utils/codegen/codegen-py/asn1ToRosMsg.py asn1/raw/cam_en302637_2/CAM-PDU-Descriptions.asn asn1/raw/cam_en302637_2/cdd/ITS-Container.asn -t cam -o etsi_its_msgs/etsi_its_cam_msgs/msg - message: cam_ts - script: ./utils/codegen/codegen-rust/asn1ToRosMsg.py asn1/raw/cam_ts103900/CAM-PDU-Descriptions.asn asn1/patched/cam_ts103900/cdd/ETSI-ITS-CDD.asn -t cam_ts -o etsi_its_msgs/etsi_its_cam_ts_msgs/msg -di rgen:ci + script: ./utils/codegen/codegen-py/asn1ToRosMsg.py asn1/raw/cam_ts103900/CAM-PDU-Descriptions.asn asn1/patched/cam_ts103900/cdd/ETSI-ITS-CDD.asn -t cam_ts -o etsi_its_msgs/etsi_its_cam_ts_msgs/msg - message: denm - script: ./utils/codegen/codegen-rust/asn1ToRosMsg.py asn1/raw/denm_en302637_3/DENM-PDU-Descriptions.asn asn1/raw/denm_en302637_3/cdd/ITS-Container.asn -t denm -o etsi_its_msgs/etsi_its_denm_msgs/msg -di rgen:ci + script: ./utils/codegen/codegen-py/asn1ToRosMsg.py asn1/raw/denm_en302637_3/DENM-PDU-Descriptions.asn asn1/raw/denm_en302637_3/cdd/ITS-Container.asn -t denm -o etsi_its_msgs/etsi_its_denm_msgs/msg - message: cpm_ts script: ./utils/codegen/codegen-rust/asn1ToRosMsg.py asn1/raw/cpm_ts103324/asn/CPM-PDU-Descriptions.asn asn1/raw/cpm_ts103324/asn/CPM-OriginatingStationContainers.asn asn1/raw/cpm_ts103324/asn/CPM-PerceivedObjectContainer.asn asn1/raw/cpm_ts103324/asn/CPM-PerceptionRegionContainer.asn asn1/raw/cpm_ts103324/asn/CPM-SensorInformationContainer.asn asn1/patched/cpm_ts103324/asn/cdd/ETSI-ITS-CDD.asn -t cpm_ts -o etsi_its_msgs/etsi_its_cpm_ts_msgs/msg -di rgen:ci + - message: mapem_ts + script: ./utils/codegen/codegen-py/asn1ToRosMsg.py asn1/raw/is_ts103301/MAPEM-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/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn asn1/patched/is_ts103301/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn -t mapem_ts -o etsi_its_msgs/etsi_its_mapem_ts_msgs/msg + - message: spatem_ts + script: ./utils/codegen/codegen-py/asn1ToRosMsg.py asn1/raw/is_ts103301/SPATEM-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/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn asn1/patched/is_ts103301/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn -t spatem_ts -o etsi_its_msgs/etsi_its_spatem_ts_msgs/msg - message: vam_ts - script: ./utils/codegen/codegen-rust/asn1ToRosMsg.py asn1/raw/vam-ts103300_3/VAM-PDU-Descriptions.asn asn1/patched/vam-ts103300_3/cdd/ETSI-ITS-CDD.asn -t vam_ts -o etsi_its_msgs/etsi_its_vam_ts_msgs/msg -di rgen:ci + script: ./utils/codegen/codegen-py/asn1ToRosMsg.py asn1/raw/vam-ts103300_3/VAM-PDU-Descriptions.asn asn1/patched/vam-ts103300_3/cdd/ETSI-ITS-CDD.asn -t vam_ts -o etsi_its_msgs/etsi_its_vam_ts_msgs/msg steps: - name: Checkout code uses: actions/checkout@v3 @@ -128,6 +137,9 @@ jobs: uses: actions/setup-python@v4 with: python-version: 3.9 + cache: pip + - name: Install dependencies + run: pip install -r ./utils/codegen/codegen-py/requirements.txt - name: Download rgen-image (artifact) uses: actions/download-artifact@v4 with: @@ -137,6 +149,7 @@ jobs: run: docker load --input /tmp/rgen-image.tar - name: etsi_its_${{ matrix.message }}_msgs run: | + ./asn1/external/download.sh ./asn1/patches/patch.sh ${{ matrix.script }} if [[ ! -z "$(git status --porcelain)" ]]; then @@ -154,15 +167,19 @@ jobs: matrix: include: - message: cam - script: ./utils/codegen/codegen-rust/asn1ToConversionHeader.py asn1/raw/cam_en302637_2/CAM-PDU-Descriptions.asn asn1/raw/cam_en302637_2/cdd/ITS-Container.asn -t cam -o etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion -di rgen:ci + script: ./utils/codegen/codegen-py/asn1ToConversionHeader.py asn1/raw/cam_en302637_2/CAM-PDU-Descriptions.asn asn1/raw/cam_en302637_2/cdd/ITS-Container.asn -t cam -o etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion - message: cam_ts - script: ./utils/codegen/codegen-rust/asn1ToConversionHeader.py asn1/raw/cam_ts103900/CAM-PDU-Descriptions.asn asn1/patched/cam_ts103900/cdd/ETSI-ITS-CDD.asn -t cam_ts -o etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion -di rgen:ci + script: ./utils/codegen/codegen-py/asn1ToConversionHeader.py asn1/raw/cam_ts103900/CAM-PDU-Descriptions.asn asn1/patched/cam_ts103900/cdd/ETSI-ITS-CDD.asn -t cam_ts -o etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion - message: denm - script: ./utils/codegen/codegen-rust/asn1ToConversionHeader.py asn1/raw/denm_en302637_3/DENM-PDU-Descriptions.asn asn1/raw/denm_en302637_3/cdd/ITS-Container.asn -t denm -o etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion -di rgen:ci + script: ./utils/codegen/codegen-py/asn1ToConversionHeader.py asn1/raw/denm_en302637_3/DENM-PDU-Descriptions.asn asn1/raw/denm_en302637_3/cdd/ITS-Container.asn -t denm -o etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion - message: cpm_ts script: ./utils/codegen/codegen-rust/asn1ToConversionHeader.py asn1/raw/cpm_ts103324/asn/CPM-PDU-Descriptions.asn asn1/raw/cpm_ts103324/asn/CPM-OriginatingStationContainers.asn asn1/raw/cpm_ts103324/asn/CPM-PerceivedObjectContainer.asn asn1/raw/cpm_ts103324/asn/CPM-PerceptionRegionContainer.asn asn1/raw/cpm_ts103324/asn/CPM-SensorInformationContainer.asn asn1/patched/cpm_ts103324/asn/cdd/ETSI-ITS-CDD.asn -t cpm_ts -o etsi_its_conversion/etsi_its_cpm_ts_conversion/include/etsi_its_cpm_ts_conversion -di rgen:ci + - message: mapem_ts + script: ./utils/codegen/codegen-py/asn1ToConversionHeader.py asn1/raw/is_ts103301/MAPEM-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/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn asn1/patched/is_ts103301/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn -t mapem_ts -o etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion + - message: spatem_ts + script: ./utils/codegen/codegen-py/asn1ToConversionHeader.py asn1/raw/is_ts103301/SPATEM-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/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn asn1/patched/is_ts103301/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn -t spatem_ts -o etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion - message: vam_ts - script: ./utils/codegen/codegen-rust/asn1ToConversionHeader.py asn1/raw/vam-ts103300_3/VAM-PDU-Descriptions.asn asn1/patched/vam-ts103300_3/cdd/ETSI-ITS-CDD.asn -t vam_ts -o etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion -di rgen:ci + script: ./utils/codegen/codegen-py/asn1ToConversionHeader.py asn1/raw/vam-ts103300_3/VAM-PDU-Descriptions.asn asn1/patched/vam-ts103300_3/cdd/ETSI-ITS-CDD.asn -t vam_ts -o etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion steps: - name: Checkout code uses: actions/checkout@v3 @@ -172,6 +189,9 @@ jobs: uses: actions/setup-python@v4 with: python-version: 3.9 + cache: pip + - name: Install dependencies + run: pip install -r ./utils/codegen/codegen-py/requirements.txt - name: Download rgen-image (artifact) uses: actions/download-artifact@v4 with: @@ -181,6 +201,7 @@ jobs: run: docker load --input /tmp/rgen-image.tar - name: etsi_its_${{ matrix.message }}_conversion run: | + ./asn1/external/download.sh ./asn1/patches/patch.sh ${{ matrix.script }} if [[ ! -z "$(git status --porcelain)" ]]; then diff --git a/.gitlab-ci.codegen.yml b/.gitlab-ci.codegen.yml index ed8a7035d..b0bbb9f9e 100644 --- a/.gitlab-ci.codegen.yml +++ b/.gitlab-ci.codegen.yml @@ -4,8 +4,10 @@ default: services: [docker:24.0.7-dind] before_script: - apk update - - apk add bash python3 + - apk add bash python3 py3-pip + - pip3 install -r ./utils/codegen/codegen-py/requirements.txt --break-system-packages - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY} + - ./asn1/external/download.sh - ./asn1/patches/patch.sh variables: @@ -26,7 +28,7 @@ stages: asn1c-docker: stage: Build Docker Images before_script: - - cd utils/codegen/docker + - cd utils/codegen/asn1ToC/docker - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY} script: - docker build -t ${_ASN1C_CI_IMAGE} -f asn1c.Dockerfile . @@ -56,7 +58,7 @@ etsi_its_cam_coding: needs: ["asn1c-docker"] script: - > - ./utils/codegen/asn1ToC.py + ./utils/codegen/asn1ToC/asn1ToC.py asn1/raw/cam_en302637_2/CAM-PDU-Descriptions.asn asn1/raw/cam_en302637_2/cdd/ITS-Container.asn -t cam @@ -71,7 +73,7 @@ etsi_its_cam_ts_coding: needs: ["asn1c-docker"] script: - > - ./utils/codegen/asn1ToC.py + ./utils/codegen/asn1ToC/asn1ToC.py asn1/raw/cam_ts103900/CAM-PDU-Descriptions.asn asn1/patched/cam_ts103900/cdd/ETSI-ITS-CDD.asn -t cam_ts @@ -86,7 +88,7 @@ etsi_its_denm_coding: needs: ["asn1c-docker"] script: - > - ./utils/codegen/asn1ToC.py + ./utils/codegen/asn1ToC/asn1ToC.py asn1/raw/denm_en302637_3/DENM-PDU-Descriptions.asn asn1/raw/denm_en302637_3/cdd/ITS-Container.asn -t denm @@ -101,7 +103,7 @@ etsi_its_cpm_ts_coding: needs: ["asn1c-docker"] script: - > - ./utils/codegen/asn1ToC.py + ./utils/codegen/asn1ToC/asn1ToC.py asn1/raw/cpm_ts103324/asn/CPM-PDU-Descriptions.asn asn1/raw/cpm_ts103324/asn/CPM-OriginatingStationContainers.asn asn1/raw/cpm_ts103324/asn/CPM-PerceivedObjectContainer.asn @@ -120,7 +122,7 @@ etsi_its_vam_ts_coding: needs: ["asn1c-docker"] script: - > - ./utils/codegen/asn1ToC.py + ./utils/codegen/asn1ToC/asn1ToC.py asn1/raw/vam-ts103300_3/VAM-PDU-Descriptions.asn asn1/patched/vam-ts103300_3/cdd/ETSI-ITS-CDD.asn -t vam_ts @@ -130,19 +132,52 @@ etsi_its_vam_ts_coding: - rm -rf /builds/$CI_PROJECT_PATH/tmp - if [[ ! -z "$(git status --porcelain)" ]]; then echo "Code generation script resulted in changes to the repository" && git diff; exit 1; fi +etsi_its_mapem_ts_coding: + stage: asn1c + needs: ["asn1c-docker"] + script: + - > + ./utils/codegen/asn1ToC/asn1ToC.py + asn1/raw/is_ts103301/MAPEM-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/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn + asn1/patched/is_ts103301/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn + -t mapem_ts + -o etsi_its_coding/etsi_its_mapem_ts_coding + -td /builds/$CI_PROJECT_PATH/tmp + -di ${_ASN1C_CI_IMAGE} + - rm -rf /builds/$CI_PROJECT_PATH/tmp + - if [[ ! -z "$(git status --porcelain)" ]]; then echo "Code generation script resulted in changes to the repository" && git diff; exit 1; fi + +etsi_its_spatem_ts_coding: + stage: asn1c + needs: ["asn1c-docker"] + script: + - > + ./utils/codegen/asn1ToC/asn1ToC.py + asn1/raw/is_ts103301/SPATEM-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/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn + asn1/patched/is_ts103301/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn + -t spatem_ts + -o etsi_its_coding/etsi_its_spatem_ts_coding + -td /builds/$CI_PROJECT_PATH/tmp + -di ${_ASN1C_CI_IMAGE} + - rm -rf /builds/$CI_PROJECT_PATH/tmp + - if [[ ! -z "$(git status --porcelain)" ]]; then echo "Code generation script resulted in changes to the repository" && git diff; exit 1; fi + etsi_its_cam_msgs: stage: ROS Messages needs: ["rgen-docker"] script: - > - ./utils/codegen/codegen-rust/asn1ToRosMsg.py + ./utils/codegen/codegen-py/asn1ToRosMsg.py asn1/raw/cam_en302637_2/CAM-PDU-Descriptions.asn asn1/raw/cam_en302637_2/cdd/ITS-Container.asn -o etsi_its_msgs/etsi_its_cam_msgs/msg - -td /builds/$CI_PROJECT_PATH/tmp -t cam - -di ${_RGEN_CI_IMAGE} - - rm -rf /builds/$CI_PROJECT_PATH/tmp - if [[ ! -z "$(git status --porcelain)" ]]; then echo "Code generation script resulted in changes to the repository" && git diff; exit 1; fi etsi_its_cam_ts_msgs: @@ -150,14 +185,11 @@ etsi_its_cam_ts_msgs: needs: ["rgen-docker"] script: - > - ./utils/codegen/codegen-rust/asn1ToRosMsg.py + ./utils/codegen/codegen-py/asn1ToRosMsg.py asn1/raw/cam_ts103900/CAM-PDU-Descriptions.asn asn1/patched/cam_ts103900/cdd/ETSI-ITS-CDD.asn -o etsi_its_msgs/etsi_its_cam_ts_msgs/msg - -td /builds/$CI_PROJECT_PATH/tmp -t cam_ts - -di ${_RGEN_CI_IMAGE} - - rm -rf /builds/$CI_PROJECT_PATH/tmp - if [[ ! -z "$(git status --porcelain)" ]]; then echo "Code generation script resulted in changes to the repository" && git diff; exit 1; fi etsi_its_denm_msgs: @@ -165,14 +197,11 @@ etsi_its_denm_msgs: needs: ["rgen-docker"] script: - > - ./utils/codegen/codegen-rust/asn1ToRosMsg.py + ./utils/codegen/codegen-py/asn1ToRosMsg.py asn1/raw/denm_en302637_3/DENM-PDU-Descriptions.asn asn1/raw/denm_en302637_3/cdd/ITS-Container.asn -o etsi_its_msgs/etsi_its_denm_msgs/msg - -td /builds/$CI_PROJECT_PATH/tmp -t denm - -di ${_RGEN_CI_IMAGE} - - rm -rf /builds/$CI_PROJECT_PATH/tmp - if [[ ! -z "$(git status --porcelain)" ]]; then echo "Code generation script resulted in changes to the repository" && git diff; exit 1; fi etsi_its_cpm_ts_msgs: @@ -199,14 +228,41 @@ etsi_its_vam_ts_msgs: needs: ["rgen-docker"] script: - > - ./utils/codegen/codegen-rust/asn1ToRosMsg.py + ./utils/codegen/codegen-py/asn1ToRosMsg.py asn1/raw/vam-ts103300_3/VAM-PDU-Descriptions.asn asn1/patched/vam-ts103300_3/cdd/ETSI-ITS-CDD.asn -o etsi_its_msgs/etsi_its_vam_ts_msgs/msg - -td /builds/$CI_PROJECT_PATH/tmp -t vam_ts - -di ${_RGEN_CI_IMAGE} - - rm -rf /builds/$CI_PROJECT_PATH/tmp + - if [[ ! -z "$(git status --porcelain)" ]]; then echo "Code generation script resulted in changes to the repository" && git diff; exit 1; fi + +etsi_its_mapem_ts_msgs: + stage: ROS Messages + needs: ["rgen-docker"] + script: + - > + ./utils/codegen/codegen-py/asn1ToRosMsg.py + asn1/raw/is_ts103301/MAPEM-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/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn + asn1/patched/is_ts103301/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn + -o etsi_its_msgs/etsi_its_mapem_ts_msgs/msg + -t mapem_ts + - if [[ ! -z "$(git status --porcelain)" ]]; then echo "Code generation script resulted in changes to the repository" && git diff; exit 1; fi + +etsi_its_spatem_ts_msgs: + stage: ROS Messages + needs: ["rgen-docker"] + script: + - > + ./utils/codegen/codegen-py/asn1ToRosMsg.py + asn1/raw/is_ts103301/SPATEM-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/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn + asn1/patched/is_ts103301/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn + -o etsi_its_msgs/etsi_its_spatem_ts_msgs/msg + -t spatem_ts - if [[ ! -z "$(git status --porcelain)" ]]; then echo "Code generation script resulted in changes to the repository" && git diff; exit 1; fi etsi_its_cam_conversion: @@ -214,14 +270,11 @@ etsi_its_cam_conversion: needs: ["rgen-docker"] script: - > - ./utils/codegen/codegen-rust/asn1ToConversionHeader.py + ./utils/codegen/codegen-py/asn1ToConversionHeader.py asn1/raw/cam_en302637_2/CAM-PDU-Descriptions.asn asn1/raw/cam_en302637_2/cdd/ITS-Container.asn -t cam -o etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion - -td /builds/$CI_PROJECT_PATH/tmp - -di ${_RGEN_CI_IMAGE} - - rm -rf /builds/$CI_PROJECT_PATH/tmp - if [[ ! -z "$(git status --porcelain)" ]]; then echo "Code generation script resulted in changes to the repository" && git diff; exit 1; fi etsi_its_cam_ts_conversion: @@ -229,14 +282,11 @@ etsi_its_cam_ts_conversion: needs: ["rgen-docker"] script: - > - ./utils/codegen/codegen-rust/asn1ToConversionHeader.py + ./utils/codegen/codegen-py/asn1ToConversionHeader.py asn1/raw/cam_ts103900/CAM-PDU-Descriptions.asn asn1/patched/cam_ts103900/cdd/ETSI-ITS-CDD.asn -t cam_ts -o etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion - -td /builds/$CI_PROJECT_PATH/tmp - -di ${_RGEN_CI_IMAGE} - - rm -rf /builds/$CI_PROJECT_PATH/tmp - if [[ ! -z "$(git status --porcelain)" ]]; then echo "Code generation script resulted in changes to the repository" && git diff; exit 1; fi etsi_its_denm_conversion: @@ -244,14 +294,11 @@ etsi_its_denm_conversion: needs: ["rgen-docker"] script: - > - ./utils/codegen/codegen-rust/asn1ToConversionHeader.py + ./utils/codegen/codegen-py/asn1ToConversionHeader.py asn1/raw/denm_en302637_3/DENM-PDU-Descriptions.asn asn1/raw/denm_en302637_3/cdd/ITS-Container.asn -t denm -o etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion - -td /builds/$CI_PROJECT_PATH/tmp - -di ${_RGEN_CI_IMAGE} - - rm -rf /builds/$CI_PROJECT_PATH/tmp - if [[ ! -z "$(git status --porcelain)" ]]; then echo "Code generation script resulted in changes to the repository" && git diff; exit 1; fi etsi_its_cpm_ts_conversion: @@ -278,12 +325,39 @@ etsi_its_vam_ts_conversion: needs: ["rgen-docker"] script: - > - ./utils/codegen/codegen-rust/asn1ToConversionHeader.py + ./utils/codegen/codegen-py/asn1ToConversionHeader.py asn1/raw/vam-ts103300_3/VAM-PDU-Descriptions.asn asn1/patched/vam-ts103300_3/cdd/ETSI-ITS-CDD.asn -t vam_ts -o etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion - -td /builds/$CI_PROJECT_PATH/tmp - -di ${_RGEN_CI_IMAGE} - - rm -rf /builds/$CI_PROJECT_PATH/tmp + - if [[ ! -z "$(git status --porcelain)" ]]; then echo "Code generation script resulted in changes to the repository" && git diff; exit 1; fi + +etsi_its_mapem_ts_conversion: + stage: Conversion Headers + needs: ["rgen-docker"] + script: + - > + ./utils/codegen/codegen-py/asn1ToConversionHeader.py + asn1/raw/is_ts103301/MAPEM-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/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn + asn1/patched/is_ts103301/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn + -t mapem_ts + -o etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion + - if [[ ! -z "$(git status --porcelain)" ]]; then echo "Code generation script resulted in changes to the repository" && git diff; exit 1; fi + +etsi_its_spatem_ts_conversion: + stage: Conversion Headers + needs: ["rgen-docker"] + script: + - > + ./utils/codegen/codegen-py/asn1ToConversionHeader.py + asn1/raw/is_ts103301/SPATEM-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/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn + asn1/patched/is_ts103301/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn + -t spatem_ts + -o etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion - if [[ ! -z "$(git status --porcelain)" ]]; then echo "Code generation script resulted in changes to the repository" && git diff; exit 1; fi \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index 7d9d5f7d7..532c7b87b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -16,3 +16,6 @@ [submodule "doc/doxygen-awesome-css"] path = doc/doxygen-awesome-css url = https://github.com/jothepro/doxygen-awesome-css.git +[submodule "asn1/raw/is_ts103301"] + path = asn1/raw/is_ts103301 + url = https://forge.etsi.org/rep/ITS/asn1/is_ts103301.git diff --git a/.vscode/launch.json b/.vscode/launch.json index 79f5a2e24..7191732f5 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,12 +1,29 @@ { "version": "0.2.0", + "compounds": [ + { + "name": "All (coding)", + "configurations": ["CAM (coding)", "CAM TS (coding)", "DENM (coding)", "CPM TS (coding)", "VAM TS (coding)", "MAPEM TS (coding)", "SPATEM 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)"], + "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)"], + "stopAll": false + } + ], "configurations": [ { "name": "CAM (coding)", "preLaunchTask": "Patch ASN.1 files", "type": "debugpy", "request": "launch", - "program": "utils/codegen/asn1ToC.py", + "program": "utils/codegen/asn1ToC/asn1ToC.py", "args": [ "asn1/raw/cam_en302637_2/CAM-PDU-Descriptions.asn", "asn1/raw/cam_en302637_2/cdd/ITS-Container.asn", @@ -23,7 +40,7 @@ "preLaunchTask": "Patch ASN.1 files", "type": "debugpy", "request": "launch", - "program": "utils/codegen/codegen-rust/asn1ToRosMsg.py", + "program": "utils/codegen/codegen-py/asn1ToRosMsg.py", "args": [ "asn1/raw/cam_en302637_2/CAM-PDU-Descriptions.asn", "asn1/raw/cam_en302637_2/cdd/ITS-Container.asn", @@ -40,7 +57,7 @@ "preLaunchTask": "Patch ASN.1 files", "type": "debugpy", "request": "launch", - "program": "utils/codegen/codegen-rust/asn1ToConversionHeader.py", + "program": "utils/codegen/codegen-py/asn1ToConversionHeader.py", "args": [ "asn1/raw/cam_en302637_2/CAM-PDU-Descriptions.asn", "asn1/raw/cam_en302637_2/cdd/ITS-Container.asn", @@ -57,7 +74,7 @@ "preLaunchTask": "Patch ASN.1 files", "type": "debugpy", "request": "launch", - "program": "utils/codegen/asn1ToC.py", + "program": "utils/codegen/asn1ToC/asn1ToC.py", "args": [ "asn1/raw/cam_ts103900/CAM-PDU-Descriptions.asn", "asn1/patched/cam_ts103900/cdd/ETSI-ITS-CDD.asn", @@ -74,7 +91,7 @@ "preLaunchTask": "Patch ASN.1 files", "type": "debugpy", "request": "launch", - "program": "utils/codegen/codegen-rust/asn1ToRosMsg.py", + "program": "utils/codegen/codegen-py/asn1ToRosMsg.py", "args": [ "asn1/raw/cam_ts103900/CAM-PDU-Descriptions.asn", "asn1/patched/cam_ts103900/cdd/ETSI-ITS-CDD.asn", @@ -91,7 +108,7 @@ "preLaunchTask": "Patch ASN.1 files", "type": "debugpy", "request": "launch", - "program": "utils/codegen/codegen-rust/asn1ToConversionHeader.py", + "program": "utils/codegen/codegen-py/asn1ToConversionHeader.py", "args": [ "asn1/raw/cam_ts103900/CAM-PDU-Descriptions.asn", "asn1/patched/cam_ts103900/cdd/ETSI-ITS-CDD.asn", @@ -108,7 +125,7 @@ "preLaunchTask": "Patch ASN.1 files", "type": "debugpy", "request": "launch", - "program": "utils/codegen/asn1ToC.py", + "program": "utils/codegen/asn1ToC/asn1ToC.py", "args": [ "asn1/raw/denm_en302637_3/DENM-PDU-Descriptions.asn", "asn1/raw/denm_en302637_3/cdd/ITS-Container.asn", @@ -125,7 +142,7 @@ "preLaunchTask": "Patch ASN.1 files", "type": "debugpy", "request": "launch", - "program": "utils/codegen/codegen-rust/asn1ToRosMsg.py", + "program": "utils/codegen/codegen-py/asn1ToRosMsg.py", "args": [ "asn1/raw/denm_en302637_3/DENM-PDU-Descriptions.asn", "asn1/raw/denm_en302637_3/cdd/ITS-Container.asn", @@ -142,7 +159,7 @@ "preLaunchTask": "Patch ASN.1 files", "type": "debugpy", "request": "launch", - "program": "utils/codegen/codegen-rust/asn1ToConversionHeader.py", + "program": "utils/codegen/codegen-py/asn1ToConversionHeader.py", "args": [ "asn1/raw/denm_en302637_3/DENM-PDU-Descriptions.asn", "asn1/raw/denm_en302637_3/cdd/ITS-Container.asn", @@ -159,7 +176,7 @@ "preLaunchTask": "Patch ASN.1 files", "type": "debugpy", "request": "launch", - "program": "utils/codegen/asn1ToC.py", + "program": "utils/codegen/asn1ToC/asn1ToC.py", "args": [ "asn1/raw/cpm_ts103324/asn/CPM-PDU-Descriptions.asn", "asn1/raw/cpm_ts103324/asn/CPM-OriginatingStationContainers.asn", @@ -222,7 +239,7 @@ "preLaunchTask": "Patch ASN.1 files", "type": "debugpy", "request": "launch", - "program": "utils/codegen/asn1ToC.py", + "program": "utils/codegen/asn1ToC/asn1ToC.py", "args": [ "asn1/raw/vam-ts103300_3/VAM-PDU-Descriptions.asn", "asn1/patched/vam-ts103300_3/cdd/ETSI-ITS-CDD.asn", @@ -239,7 +256,7 @@ "preLaunchTask": "Patch ASN.1 files", "type": "debugpy", "request": "launch", - "program": "utils/codegen/codegen-rust/asn1ToRosMsg.py", + "program": "utils/codegen/codegen-py/asn1ToRosMsg.py", "args": [ "asn1/raw/vam-ts103300_3/VAM-PDU-Descriptions.asn", "asn1/patched/vam-ts103300_3/cdd/ETSI-ITS-CDD.asn", @@ -256,7 +273,7 @@ "preLaunchTask": "Patch ASN.1 files", "type": "debugpy", "request": "launch", - "program": "utils/codegen/codegen-rust/asn1ToConversionHeader.py", + "program": "utils/codegen/codegen-py/asn1ToConversionHeader.py", "args": [ "asn1/raw/vam-ts103300_3/VAM-PDU-Descriptions.asn", "asn1/patched/vam-ts103300_3/cdd/ETSI-ITS-CDD.asn", @@ -268,5 +285,125 @@ "console": "integratedTerminal", "justMyCode": true }, + { + "name": "MAPEM TS (coding)", + "preLaunchTask": "Patch ASN.1 files", + "type": "debugpy", + "request": "launch", + "program": "utils/codegen/asn1ToC/asn1ToC.py", + "args": [ + "asn1/raw/is_ts103301/MAPEM-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/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn", + "asn1/patched/is_ts103301/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn", + "-t", + "mapem_ts", + "-o", + "etsi_its_coding/etsi_its_mapem_ts_coding" + ], + "console": "integratedTerminal", + "justMyCode": true + }, + { + "name": "MAPEM TS (msgs)", + "preLaunchTask": "Patch ASN.1 files", + "type": "debugpy", + "request": "launch", + "program": "utils/codegen/codegen-py/asn1ToRosMsg.py", + "args": [ + "asn1/raw/is_ts103301/MAPEM-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/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn", + "asn1/patched/is_ts103301/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn", + "-t", + "mapem_ts", + "-o", + "etsi_its_msgs/etsi_its_mapem_ts_msgs/msg" + ], + "console": "integratedTerminal", + "justMyCode": true + }, + { + "name": "MAPEM TS (conversion)", + "preLaunchTask": "Patch ASN.1 files", + "type": "debugpy", + "request": "launch", + "program": "utils/codegen/codegen-py/asn1ToConversionHeader.py", + "args": [ + "asn1/raw/is_ts103301/MAPEM-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/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn", + "asn1/patched/is_ts103301/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn", + "-t", + "mapem_ts", + "-o", + "etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion" + ], + "console": "integratedTerminal", + "justMyCode": true + }, + { + "name": "SPATEM TS (coding)", + "preLaunchTask": "Patch ASN.1 files", + "type": "debugpy", + "request": "launch", + "program": "utils/codegen/asn1ToC/asn1ToC.py", + "args": [ + "asn1/raw/is_ts103301/SPATEM-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/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn", + "asn1/patched/is_ts103301/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn", + "-t", + "spatem_ts", + "-o", + "etsi_its_coding/etsi_its_spatem_ts_coding" + ], + "console": "integratedTerminal", + "justMyCode": true + }, + { + "name": "SPATEM TS (msgs)", + "preLaunchTask": "Patch ASN.1 files", + "type": "debugpy", + "request": "launch", + "program": "utils/codegen/codegen-py/asn1ToRosMsg.py", + "args": [ + "asn1/raw/is_ts103301/SPATEM-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/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn", + "asn1/patched/is_ts103301/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn", + "-t", + "spatem_ts", + "-o", + "etsi_its_msgs/etsi_its_spatem_ts_msgs/msg" + ], + "console": "integratedTerminal", + "justMyCode": true + }, + { + "name": "SPATEM TS (conversion)", + "preLaunchTask": "Patch ASN.1 files", + "type": "debugpy", + "request": "launch", + "program": "utils/codegen/codegen-py/asn1ToConversionHeader.py", + "args": [ + "asn1/raw/is_ts103301/SPATEM-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/build/asn1/ISO-TS-19091-addgrp-C-2018-patched.asn", + "asn1/patched/is_ts103301/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn", + "-t", + "spatem_ts", + "-o", + "etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion" + ], + "console": "integratedTerminal", + "justMyCode": true + }, ] } \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json index fb85994ca..b4e77dc4e 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -1,10 +1,17 @@ { "version": "2.0.0", "tasks": [ + { + "label": "Download external dependencies", + "type": "shell", + "command": "./asn1/external/download.sh", + "problemMatcher": [] + }, { "label": "Patch ASN.1 files", "type": "shell", "command": "./asn1/patches/patch.sh", + "dependsOn": ["Download external dependencies"], "problemMatcher": [] } ] diff --git a/README.md b/README.md index bc6ef6740..8ab297d6e 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ - +

**ROS / ROS 2 Support for ETSI ITS Messages for V2X Communication** @@ -54,15 +54,19 @@ During runtime, the `etsi_its_conversion` ROS node converts incoming UDP payload | Status | Acronym | Name | EN Specification | TS Specification | | --- | --- | --- | --- | --- | | :white_check_mark: | CAM | Cooperative Awareness Message | [EN 302 637-2 V1.4.1](https://www.etsi.org/deliver/etsi_en/302600_302699/30263702/01.04.01_60/en_30263702v010401p.pdf) ([ASN.1](https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2)) | [TS 103 900 V2.1.1](https://www.etsi.org/deliver/etsi_ts/103900_103999/103900/02.01.01_60/ts_103900v020101p.pdf) ([ASN.1](https://forge.etsi.org/rep/ITS/asn1/cam_ts103900)) | -| :white_check_mark: | DENM | Decentralized Environmental Notification Message | [EN 302 637-3 V1.3.1](https://www.etsi.org/deliver/etsi_en/302600_302699/30263703/01.03.01_60/en_30263703v010301p.pdf) ([ASN.1](https://forge.etsi.org/rep/ITS/asn1/denm_en302637_3)) | - | | :white_check_mark: | CPM | Collective Perception Message | - | [TS 103 324 V2.1.1](https://www.etsi.org/deliver/etsi_ts/103300_103399/103324/02.01.01_60/ts_103324v020101p.pdf) ([ASN.1](https://forge.etsi.org/rep/ITS/asn1/cpm_ts103324)) | +| :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: | 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)) | -| :soon: | MAPEM | Map Extended Message | - | - | - | -| :soon: | SPATEM | Signal Phase and Timing Extended Message | - | - | - | > [!NOTE] > Message types that are standardized as *European Norms (EN)* are available as, e.g., `etsi_its_cam_msgs`. New message types or revisions of existing message types that are only specified in *Technical Specifications (TS)* are available as, e.g., `etsi_its_cpm_ts_msgs`. +> [!WARNING] +> **Limitations** +> - `RegionalExtension` (defined in [`ISO-TS-19091-addgrp-C-2018.asn`](https://standards.iso.org/iso/ts/19091/ed-2/en/ISO-TS-19091-addgrp-C-2018.asn)) is not covered in ROS-equivalents of MAPEM and SPATEM messages + ## Packages @@ -74,6 +78,8 @@ etsi_its_messages │ ├── etsi_its_cam_ts_coding │ ├── etsi_its_cpm_ts_coding │ ├── etsi_its_denm_coding +│ ├── etsi_its_mapem_ts_coding +│ ├── etsi_its_spatem_ts_coding │ └── etsi_its_vam_ts_coding ├── etsi_its_conversion │ ├── etsi_its_conversion # conversion node depending on all conversion packages @@ -81,7 +87,9 @@ etsi_its_messages │ ├── etsi_its_cam_ts_conversion │ ├── etsi_its_cpm_ts_conversion │ ├── etsi_its_denm_conversion +│ ├── etsi_its_mapem_ts_conversion │ ├── etsi_its_primitives_conversion +│ ├── etsi_its_spatem_ts_conversion │ └── etsi_its_vam_ts_conversion ├── etsi_its_messages # metapackage including all others ├── etsi_its_msgs @@ -90,6 +98,8 @@ etsi_its_messages │ ├── etsi_its_cam_ts_msgs │ ├── etsi_its_cpm_ts_msgs │ ├── etsi_its_denm_msgs +│ ├── etsi_its_mapem_ts_msgs +│ ├── etsi_its_spatem_ts_msgs │ └── etsi_its_vam_ts_msgs ├── etsi_its_msgs_utils └── etsi_its_rviz_plugins @@ -149,12 +159,12 @@ The conversion node bridges all ETSI ITS message types at the same time in both # ROS 2 ros2 launch etsi_its_conversion converter.launch.py # or -ros2 run etsi_its_conversion etsi_its_conversion_node --ros-args -p etsi_types:=[cam,cpm_ts,denm] -p has_btp_destination_port:=true -p btp_destination_port_offset:=8 -p etsi_message_payload_offset:=78 +ros2 run etsi_its_conversion etsi_its_conversion_node --ros-args -p etsi_types:=[cam,cpm_ts,denm,mapem_ts,spatem_ts,vam_ts] -p has_btp_destination_port:=true -p btp_destination_port_offset:=8 -p etsi_message_payload_offset:=78 # ROS roslaunch etsi_its_conversion converter.ros1.launch # or -rosrun nodelet nodelet standalone etsi_its_conversion/Converter _etsi_types:=[cam,cpm_ts,denm] _has_btp_destination_port:=true _btp_destination_port_offset:=8 _etsi_message_payload_offset:=78 +rosrun nodelet nodelet standalone etsi_its_conversion/Converter _etsi_types:=[cam,cpm_ts,denm,mapem_ts,spatem_ts,vam_ts] _has_btp_destination_port:=true _btp_destination_port_offset:=8 _etsi_message_payload_offset:=78 ``` #### Subscribed Topics @@ -166,6 +176,8 @@ rosrun nodelet nodelet standalone etsi_its_conversion/Converter _etsi_types:=[ca | `~/cam_ts/in` | `etsi_its_cam_ts_msgs/msg/CAM` | CAM (TS) for conversion to UDP | | `~/cpm_ts/in` | `etsi_its_cpm_ts_msgs/msg/CollectivePerceptionMessage` | CPM for conversion to UDP | | `~/denm/in` | `etsi_its_denm_msgs/msg/DENM` | DENM for conversion to UDP | +| `~/mapem_ts/in` | `etsi_its_mapem_ts_msgs/msg/MAPEM` | MAPEM (TS) for conversion to UDP | +| `~/spatem_ts/in` | `etsi_its_spatem_ts_msgs/msg/SPATEM` | SPATEM (TS) for conversion to UDP | | `~/vam_ts/in` | `etsi_its_vam_ts_msgs/msg/VAM` | VAM (TS) for conversion to UDP | #### Published Topics @@ -177,6 +189,8 @@ rosrun nodelet nodelet standalone etsi_its_conversion/Converter _etsi_types:=[ca | `~/cam_ts/out` | `etsi_its_cam_ts_msgs/msg/CAM` | CAM (TS) converted from UDP payload | | `~/cpm_ts/out` | `etsi_its_cpm_ts_msgs/msg/CollectivePerceptionMessage` | CPM converted from UDP payload | | `~/denm/out` | `etsi_its_denm_msgs/msg/DENM` | DENM converted from UDP payload | +| `~/mapem_ts/out` | `etsi_its_mapem_ts_msgs/msg/MAPEM` | MAPEM (TS) converted from UDP payload | +| `~/spatem_ts/out` | `etsi_its_spatem_ts_msgs/msg/SPATEM` | SPATEM (TS) converted from UDP payload | | `~/vam_ts/out` | `etsi_its_vam_ts_msgs/msg/VAM` | VAM (TS) converted from UDP payload | #### Parameters @@ -186,8 +200,8 @@ rosrun nodelet nodelet standalone etsi_its_conversion/Converter _etsi_types:=[ca | `has_btp_destination_port` | `bool` | whether incoming/outgoing UDP messages include a [2-byte BTP destination port](https://www.etsi.org/deliver/etsi_en/302600_302699/3026360501/02.01.00_20/en_3026360501v020100a.pdf) | | `btp_destination_port_offset` | `int` | number of bytes before an optional 2-byte BTP destination port, see `has_btp_destination_port` (always `0` in outgoing UDP payload) | | `etsi_message_payload_offset` | `int` | number of bytes before actual ETSI message payload (always `0` or `4` (if `has_btp_destination_port`) in outgoing UDP payload) | -| `ros2udp_etsi_types` | `string[]` | list of ETSI types to convert from `etsi_its_msgs` to `udp_msgs` (defaults to all norms and specifications of all possible ETSI types) | `cam`, `cam_ts`, `cpm_ts`, `denm`, `vam_ts` | -| `udp2ros_etsi_types` | `string[]` | list of ETSI types to convert from `udp_msgs` to `etsi_its_msgs` (defaults only to the norm or specification of all possible ETSI types) | `cam`, `cam_ts`, `cpm_ts`, `denm`, `vam_ts` | +| `ros2udp_etsi_types` | `string[]` | list of ETSI types to convert from `etsi_its_msgs` to `udp_msgs` (defaults to all norms and specifications of all possible ETSI types) | `cam`, `cam_ts`, `cpm_ts`, `denm`, `mapem_ts`, `spatem_ts`, `vam_ts` | +| `udp2ros_etsi_types` | `string[]` | list of ETSI types to convert from `udp_msgs` to `etsi_its_msgs` (defaults only to the norm or specification of all possible ETSI types) | `cam`, `cam_ts`, `cpm_ts`, `denm`, `mapem_ts`, `spatem_ts`, `vam_ts` | | `subscriber_queue_size` | `int` | queue size for incoming ROS messages | | `publisher_queue_size` | `int` | queue size for outgoing ROS messages | | `check_constraints_before_encoding` | `bool` | whether an asn constraint check should be performed before encoding using asn1c's `asn_check_constraints` function (setting to `true` could lead to segmentation faults because of infinite recursion; [known asn1c issue](https://github.com/vlm/asn1c/issues/410)) | @@ -248,7 +262,7 @@ cam.cam.cam_parameters.high_frequency_container.basic_vehicle_container_high_fre > [!NOTE] > This section is only relevant if you would like to (re-)run the code generation for ROS support based on ASN.1 definitions. If you only wish to use the supported message types in ROS, see [Installation](#installation) and [Conversion Node](#conversion-node). -A given ASN.1 definition is used to generate corresponding C-structures, ROS message definitions, as well as conversion functions between those two formats. The raw ASN.1 definitions of the supported message types are included as Git submodules in the [`asn1/raw` subdirectory](./asn1/raw/). Make sure to clone recursively or initialize the submodules after cloning (`git submodule update --init --recursive`). Note that some of these definitions need to be patched before code generation by running [`./asn1/patches/patch.sh`](./asn1/patches/patch.sh). +A given ASN.1 definition is used to generate corresponding C-structures, ROS message definitions, as well as conversion functions between those two formats. The raw ASN.1 definitions of the supported message types are included as Git submodules in the [`asn1/raw` subdirectory](./asn1/raw/). Make sure to clone recursively or initialize the submodules after cloning (`git submodule update --init --recursive`). Note that some of these definitions need to be downloaded and patched before code generation by running [`./asn1/external/download.sh`](./asn1/external/download.sh) and [`./asn1/patches/patch.sh`](./asn1/patches/patch.sh). If you would like to re-run the generation of supported message types, we recommend to use the [*VS Code* debugging configurations](https://code.visualstudio.com/docs/editor/debugging) pre-configured in [`.vscode/launch.json`](./.vscode/launch.json). All script calls defined there can obviously also run outside of *VS Code*. Note that *Python* and *Docker* are required for code generation. diff --git a/asn1/external/download.sh b/asn1/external/download.sh new file mode 100755 index 000000000..df166a7fa --- /dev/null +++ b/asn1/external/download.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +patches_dir="$(dirname "$(readlink -f "$0")")" +repos_dir="$(dirname "$patches_dir")/raw" + +# is_ts103301 +cd "$repos_dir/is_ts103301" +sed "s/asn1c -D.*/exit 0/g" syntax_check.bash | bash +cd - diff --git a/asn1/patches/.gitignore b/asn1/patches/.gitignore new file mode 100644 index 000000000..3c7fcb7b8 --- /dev/null +++ b/asn1/patches/.gitignore @@ -0,0 +1 @@ +!is_ts103301/build/ \ No newline at end of file diff --git a/asn1/patches/is_ts103301/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn.patch b/asn1/patches/is_ts103301/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn.patch new file mode 100644 index 000000000..96f877d61 --- /dev/null +++ b/asn1/patches/is_ts103301/build/asn1/ISO14816_AVIAEINumberingAndDataStructures.asn.patch @@ -0,0 +1,22 @@ +diff --git a/ISO14816_AVIAEINumberingAndDataStructures.asn b/ISO14816_AVIAEINumberingAndDataStructures.asn +index 88d0ad1..22f2e4c 100644 +--- a/ISO14816_AVIAEINumberingAndDataStructures.asn ++++ b/ISO14816_AVIAEINumberingAndDataStructures.asn +@@ -79,8 +79,8 @@ ServiceNumber::= BIT STRING (SIZE(32))(CONTAINING INTEGER (0..4294967295)) + TaxCode::= OCTET STRING + + AlphabetIndicator::= INTEGER { +- latinAlphabetNo1 (0), -- encoded as 00 00 00�B +- latinAlphabetNo2 (1), -- encoded as 00 00 01�B etc ++ latinAlphabetNo1 (0), -- encoded as 00 00 00 B ++ latinAlphabetNo2 (1), -- encoded as 00 00 01 B etc + latinAlphabetNo3 (2), + latinAlphabetNo4 (3), + latinCyrillicAlphabet (4), +@@ -127,4 +127,4 @@ END + /* + The ASN.1 specification has been checked for conformance to the ASN.1 + standards by OSS ASN.1 Studio +-*/ +\ No newline at end of file ++*/ diff --git a/asn1/patches/patch.sh b/asn1/patches/patch.sh index 821761ef6..679f64162 100755 --- a/asn1/patches/patch.sh +++ b/asn1/patches/patch.sh @@ -8,17 +8,25 @@ echo "Finding .patch files in '$patches_dir' to apply to repositories in '$repos # loop over all .patch files in the patches directory find "$patches_dir" -type f -name "*.patch" | while read -r patch_file; do - # find the original repository path and apply the patch + # find the original repository path relative_path="$(dirname ${patch_file#$patches_dir/})" repo_path="$repos_dir/$relative_path" file_to_patch="$repo_path/$(basename ${patch_file%.patch})" - git -C "$repo_path" apply "$patch_file" - # copy the file to the patched directory and reverse the patch + # copy file to patch to temporary git repository + tmp_repo_path="$(mktemp -d)" + tmp_file_to_patch="$tmp_repo_path/$(basename ${patch_file%.patch})" + cp -r "$repo_path"/* "$tmp_repo_path" + git -C "$tmp_repo_path" init --quiet + + # apply the patch + git -C "$tmp_repo_path" apply "$patch_file" + + # move patched file to the patched directory patched_path="$patched_dir/$relative_path" patched_file="$patched_path/$(basename ${patch_file%.patch})" mkdir -p "$patched_path" - cp "$file_to_patch" "$patched_file" - git -C "$repo_path" apply --reverse --whitespace=nowarn "$patch_file" + mv "$tmp_file_to_patch" "$patched_file" + echo " Patched '$file_to_patch' and saved to '$patched_file'" done diff --git a/asn1/raw/is_ts103301 b/asn1/raw/is_ts103301 new file mode 160000 index 000000000..5811ce307 --- /dev/null +++ b/asn1/raw/is_ts103301 @@ -0,0 +1 @@ +Subproject commit 5811ce30755d5ea36572e35e886ea69c0a1d4b9e diff --git a/etsi_its_coding/etsi_its_coding/package.xml b/etsi_its_coding/etsi_its_coding/package.xml index 43f66faf2..3631bf2ec 100644 --- a/etsi_its_coding/etsi_its_coding/package.xml +++ b/etsi_its_coding/etsi_its_coding/package.xml @@ -17,8 +17,10 @@ etsi_its_cam_coding etsi_its_cam_ts_coding - etsi_its_denm_coding etsi_its_cpm_ts_coding + etsi_its_denm_coding + etsi_its_mapem_ts_coding + etsi_its_spatem_ts_coding etsi_its_vam_ts_coding ros_environment diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/CMakeLists.txt b/etsi_its_coding/etsi_its_mapem_ts_coding/CMakeLists.txt new file mode 100644 index 000000000..80f0855ef --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/CMakeLists.txt @@ -0,0 +1,69 @@ +cmake_minimum_required(VERSION 3.5) +project(etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/ANY.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/ANY.h new file mode 100644 index 000000000..b1c86a26c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/BIT_STRING.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/BIT_STRING.h new file mode 100644 index 000000000..f03c88067 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/BOOLEAN.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/BOOLEAN.h new file mode 100644 index 000000000..e4f6c3ba3 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/ENUMERATED.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/ENUMERATED.h new file mode 100644 index 000000000..42e25ea5d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/GraphicString.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/GraphicString.h new file mode 100644 index 000000000..13408a1b2 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/IA5String.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/IA5String.h new file mode 100644 index 000000000..7220e01e5 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/INTEGER.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/INTEGER.h new file mode 100644 index 000000000..1246f2a71 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/NULL.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/NULL.h new file mode 100644 index 000000000..eac965340 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/NativeEnumerated.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/NativeEnumerated.h new file mode 100644 index 000000000..aed08cb28 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/NativeInteger.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/NativeInteger.h new file mode 100644 index 000000000..1e7880930 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/NumericString.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/NumericString.h new file mode 100644 index 000000000..d9a3ccad6 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/OBJECT_IDENTIFIER.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/OBJECT_IDENTIFIER.h new file mode 100644 index 000000000..c77a1bf6c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/OCTET_STRING.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/OCTET_STRING.h new file mode 100644 index 000000000..fd48d8703 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/OPEN_TYPE.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/OPEN_TYPE.h new file mode 100644 index 000000000..936b38c0e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/ObjectDescriptor.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/ObjectDescriptor.h new file mode 100644 index 000000000..ddc69499f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/UTF8String.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/UTF8String.h new file mode 100644 index 000000000..d26e241b9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/VisibleString.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/VisibleString.h new file mode 100644 index 000000000..dd7343550 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/aper_decoder.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/aper_decoder.h new file mode 100644 index 000000000..abafbf88d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/aper_encoder.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/aper_encoder.h new file mode 100644 index 000000000..7b8cc019c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/aper_opentype.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/aper_opentype.h new file mode 100644 index 000000000..ed948dfcb --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/aper_support.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/aper_support.h new file mode 100644 index 000000000..9ad0eba06 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/asn_SEQUENCE_OF.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/asn_SEQUENCE_OF.h new file mode 100644 index 000000000..80e5fc3f7 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/asn_SET_OF.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/asn_SET_OF.h new file mode 100644 index 000000000..882e1a47d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/asn_application.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/asn_application.h new file mode 100644 index 000000000..39cee9769 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/asn_system.h" /* for platform-dependent types */ +#include "etsi_its_mapem_ts_coding/asn_codecs.h" /* for ASN.1 codecs specifics */ +#include "etsi_its_mapem_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_mapem_ts_coding/constr_TYPE.h" /* for asn_TYPE_descriptor_t */ + +#endif /* ASN_APPLICATION_H */ diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/asn_bit_data.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/asn_bit_data.h new file mode 100644 index 000000000..450297f8e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/asn_codecs.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/asn_codecs.h new file mode 100644 index 000000000..e75c2709c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/asn_codecs_prim.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/asn_codecs_prim.h new file mode 100644 index 000000000..ced4c55c8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/asn_config.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/asn_config.h new file mode 100644 index 000000000..ddcac9026 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/asn_internal.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/asn_internal.h new file mode 100644 index 000000000..dfebc5bc7 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/asn_ioc.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/asn_ioc.h new file mode 100644 index 000000000..71e2b6ca2 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/asn_random_fill.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/asn_random_fill.h new file mode 100644 index 000000000..47f9b8af0 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/asn_system.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/asn_system.h new file mode 100644 index 000000000..194f96a5f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/ber_tlv_length.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/ber_tlv_length.h new file mode 100644 index 000000000..d1e4d48dd --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/ber_tlv_tag.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/ber_tlv_tag.h new file mode 100644 index 000000000..ce227add6 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/constr_CHOICE.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/constr_CHOICE.h new file mode 100644 index 000000000..28d227f08 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/constr_SEQUENCE.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/constr_SEQUENCE.h new file mode 100644 index 000000000..848154ae4 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/constr_SEQUENCE_OF.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/constr_SEQUENCE_OF.h new file mode 100644 index 000000000..65189eb9e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/constr_SET_OF.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/constr_SET_OF.h new file mode 100644 index 000000000..b5a945deb --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/constr_TYPE.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/constr_TYPE.h new file mode 100644 index 000000000..7e85a6ef8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/constraints.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/constraints.h new file mode 100644 index 000000000..d267c0b66 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AccelerationConfidence.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AccelerationConfidence.h new file mode 100644 index 000000000..249b1c484 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_AccelerationConfidence_H_ +#define _mapem_ts_AccelerationConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_AccelerationConfidence { + mapem_ts_AccelerationConfidence_pointOneMeterPerSecSquared = 1, + mapem_ts_AccelerationConfidence_outOfRange = 101, + mapem_ts_AccelerationConfidence_unavailable = 102 +} e_mapem_ts_AccelerationConfidence; + +/* mapem_ts_AccelerationConfidence */ +typedef long mapem_ts_AccelerationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_AccelerationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_AccelerationConfidence; +asn_struct_free_f mapem_ts_AccelerationConfidence_free; +asn_struct_print_f mapem_ts_AccelerationConfidence_print; +asn_constr_check_f mapem_ts_AccelerationConfidence_constraint; +per_type_decoder_f mapem_ts_AccelerationConfidence_decode_uper; +per_type_encoder_f mapem_ts_AccelerationConfidence_encode_uper; +per_type_decoder_f mapem_ts_AccelerationConfidence_decode_aper; +per_type_encoder_f mapem_ts_AccelerationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_AccelerationConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AccelerationControl.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AccelerationControl.h new file mode 100644 index 000000000..feecd8393 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_AccelerationControl_H_ +#define _mapem_ts_AccelerationControl_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_AccelerationControl { + mapem_ts_AccelerationControl_brakePedalEngaged = 0, + mapem_ts_AccelerationControl_gasPedalEngaged = 1, + mapem_ts_AccelerationControl_emergencyBrakeEngaged = 2, + mapem_ts_AccelerationControl_collisionWarningEngaged = 3, + mapem_ts_AccelerationControl_accEngaged = 4, + mapem_ts_AccelerationControl_cruiseControlEngaged = 5, + mapem_ts_AccelerationControl_speedLimiterEngaged = 6 +} e_mapem_ts_AccelerationControl; + +/* mapem_ts_AccelerationControl */ +typedef BIT_STRING_t mapem_ts_AccelerationControl_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_AccelerationControl; +asn_struct_free_f mapem_ts_AccelerationControl_free; +asn_struct_print_f mapem_ts_AccelerationControl_print; +asn_constr_check_f mapem_ts_AccelerationControl_constraint; +per_type_decoder_f mapem_ts_AccelerationControl_decode_uper; +per_type_encoder_f mapem_ts_AccelerationControl_encode_uper; +per_type_decoder_f mapem_ts_AccelerationControl_decode_aper; +per_type_encoder_f mapem_ts_AccelerationControl_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_AccelerationControl_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AccidentSubCauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AccidentSubCauseCode.h new file mode 100644 index 000000000..c8f2ad041 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_AccidentSubCauseCode_H_ +#define _mapem_ts_AccidentSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_AccidentSubCauseCode { + mapem_ts_AccidentSubCauseCode_unavailable = 0, + mapem_ts_AccidentSubCauseCode_multiVehicleAccident = 1, + mapem_ts_AccidentSubCauseCode_heavyAccident = 2, + mapem_ts_AccidentSubCauseCode_accidentInvolvingLorry = 3, + mapem_ts_AccidentSubCauseCode_accidentInvolvingBus = 4, + mapem_ts_AccidentSubCauseCode_accidentInvolvingHazardousMaterials = 5, + mapem_ts_AccidentSubCauseCode_accidentOnOppositeLane = 6, + mapem_ts_AccidentSubCauseCode_unsecuredAccident = 7, + mapem_ts_AccidentSubCauseCode_assistanceRequested = 8 +} e_mapem_ts_AccidentSubCauseCode; + +/* mapem_ts_AccidentSubCauseCode */ +typedef long mapem_ts_AccidentSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_AccidentSubCauseCode; +asn_struct_free_f mapem_ts_AccidentSubCauseCode_free; +asn_struct_print_f mapem_ts_AccidentSubCauseCode_print; +asn_constr_check_f mapem_ts_AccidentSubCauseCode_constraint; +per_type_decoder_f mapem_ts_AccidentSubCauseCode_decode_uper; +per_type_encoder_f mapem_ts_AccidentSubCauseCode_encode_uper; +per_type_decoder_f mapem_ts_AccidentSubCauseCode_decode_aper; +per_type_encoder_f mapem_ts_AccidentSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_AccidentSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ActionID.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ActionID.h new file mode 100644 index 000000000..15074e550 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ActionID.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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ActionID_H_ +#define _mapem_ts_ActionID_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_StationID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_SequenceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_ActionID */ +typedef struct mapem_ts_ActionID { + mapem_ts_StationID_t originatingStationID; + mapem_ts_SequenceNumber_t sequenceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_ActionID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ActionID; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_ActionID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AdverseWeatherCondition-AdhesionSubCauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AdverseWeatherCondition-AdhesionSubCauseCode.h new file mode 100644 index 000000000..3c10c6dfe --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_H_ +#define _mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode { + mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_unavailable = 0, + mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_heavyFrostOnRoad = 1, + mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_fuelOnRoad = 2, + mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_mudOnRoad = 3, + mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_snowOnRoad = 4, + mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_iceOnRoad = 5, + mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_blackIceOnRoad = 6, + mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_oilOnRoad = 7, + mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_looseChippings = 8, + mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_instantBlackIce = 9, + mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_roadsSalted = 10 +} e_mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode; + +/* mapem_ts_AdverseWeatherCondition-AdhesionSubCauseCode */ +typedef long mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode; +asn_struct_free_f mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_free; +asn_struct_print_f mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_print; +asn_constr_check_f mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_constraint; +per_type_decoder_f mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_decode_uper; +per_type_encoder_f mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_encode_uper; +per_type_decoder_f mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_decode_aper; +per_type_encoder_f mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h new file mode 100644 index 000000000..8c1b29f72 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ +#define _mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode { + mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_unavailable = 0, + mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_strongWinds = 1, + mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_damagingHail = 2, + mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_hurricane = 3, + mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_thunderstorm = 4, + mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tornado = 5, + mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_blizzard = 6 +} e_mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; + +/* mapem_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode */ +typedef long mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; +asn_struct_free_f mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_free; +asn_struct_print_f mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_print; +asn_constr_check_f mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint; +per_type_decoder_f mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_uper; +per_type_encoder_f mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_uper; +per_type_decoder_f mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_aper; +per_type_encoder_f mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.h new file mode 100644 index 000000000..9dbd0f899 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_H_ +#define _mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode { + mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_unavailable = 0, + mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_heavyRain = 1, + mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_heavySnowfall = 2, + mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_softHail = 3 +} e_mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode; + +/* mapem_ts_AdverseWeatherCondition-PrecipitationSubCauseCode */ +typedef long mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode; +asn_struct_free_f mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_free; +asn_struct_print_f mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_print; +asn_constr_check_f mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_constraint; +per_type_decoder_f mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_decode_uper; +per_type_encoder_f mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_encode_uper; +per_type_decoder_f mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_decode_aper; +per_type_encoder_f mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AdverseWeatherCondition-VisibilitySubCauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AdverseWeatherCondition-VisibilitySubCauseCode.h new file mode 100644 index 000000000..7dd853ae7 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_H_ +#define _mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode { + mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_unavailable = 0, + mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_fog = 1, + mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_smoke = 2, + mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_heavySnowfall = 3, + mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_heavyRain = 4, + mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_heavyHail = 5, + mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_lowSunGlare = 6, + mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_sandstorms = 7, + mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_swarmsOfInsects = 8 +} e_mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode; + +/* mapem_ts_AdverseWeatherCondition-VisibilitySubCauseCode */ +typedef long mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode; +asn_struct_free_f mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_free; +asn_struct_print_f mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_print; +asn_constr_check_f mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_constraint; +per_type_decoder_f mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_decode_uper; +per_type_encoder_f mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_encode_uper; +per_type_decoder_f mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_decode_aper; +per_type_encoder_f mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AdvisorySpeed.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AdvisorySpeed.h new file mode 100644 index 000000000..51426d484 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_AdvisorySpeed_H_ +#define _mapem_ts_AdvisorySpeed_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_AdvisorySpeedType.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_SpeedAdvice.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_SpeedConfidenceDSRC.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_ZoneLength.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RestrictionClassID.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_Reg_AdvisorySpeed; + +/* mapem_ts_AdvisorySpeed */ +typedef struct mapem_ts_AdvisorySpeed { + mapem_ts_AdvisorySpeedType_t type; + mapem_ts_SpeedAdvice_t *speed; /* OPTIONAL */ + mapem_ts_SpeedConfidenceDSRC_t *confidence; /* OPTIONAL */ + mapem_ts_ZoneLength_t *distance; /* OPTIONAL */ + mapem_ts_RestrictionClassID_t *Class; /* OPTIONAL */ + struct mapem_ts_AdvisorySpeed__regional { + A_SEQUENCE_OF(struct mapem_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; +} mapem_ts_AdvisorySpeed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_AdvisorySpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_AdvisorySpeed_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_AdvisorySpeed_1[6]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_AdvisorySpeed_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AdvisorySpeedList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AdvisorySpeedList.h new file mode 100644 index 000000000..c192d24ba --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_AdvisorySpeedList_H_ +#define _mapem_ts_AdvisorySpeedList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_AdvisorySpeed; + +/* mapem_ts_AdvisorySpeedList */ +typedef struct mapem_ts_AdvisorySpeedList { + A_SEQUENCE_OF(struct mapem_ts_AdvisorySpeed) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_AdvisorySpeedList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_AdvisorySpeedList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_AdvisorySpeedList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_AdvisorySpeedList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_AdvisorySpeedList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_AdvisorySpeed.h" + +#endif /* _mapem_ts_AdvisorySpeedList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AdvisorySpeedType.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AdvisorySpeedType.h new file mode 100644 index 000000000..6cf20ab08 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_AdvisorySpeedType_H_ +#define _mapem_ts_AdvisorySpeedType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_AdvisorySpeedType { + mapem_ts_AdvisorySpeedType_none = 0, + mapem_ts_AdvisorySpeedType_greenwave = 1, + mapem_ts_AdvisorySpeedType_ecoDrive = 2, + mapem_ts_AdvisorySpeedType_transit = 3 + /* + * Enumeration is extensible + */ +} e_mapem_ts_AdvisorySpeedType; + +/* mapem_ts_AdvisorySpeedType */ +typedef long mapem_ts_AdvisorySpeedType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_AdvisorySpeedType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_AdvisorySpeedType; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_AdvisorySpeedType_specs_1; +asn_struct_free_f mapem_ts_AdvisorySpeedType_free; +asn_struct_print_f mapem_ts_AdvisorySpeedType_print; +asn_constr_check_f mapem_ts_AdvisorySpeedType_constraint; +per_type_decoder_f mapem_ts_AdvisorySpeedType_decode_uper; +per_type_encoder_f mapem_ts_AdvisorySpeedType_encode_uper; +per_type_decoder_f mapem_ts_AdvisorySpeedType_decode_aper; +per_type_encoder_f mapem_ts_AdvisorySpeedType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_AdvisorySpeedType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AllowedManeuvers.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AllowedManeuvers.h new file mode 100644 index 000000000..073178b78 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_AllowedManeuvers_H_ +#define _mapem_ts_AllowedManeuvers_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_AllowedManeuvers { + mapem_ts_AllowedManeuvers_maneuverStraightAllowed = 0, + mapem_ts_AllowedManeuvers_maneuverLeftAllowed = 1, + mapem_ts_AllowedManeuvers_maneuverRightAllowed = 2, + mapem_ts_AllowedManeuvers_maneuverUTurnAllowed = 3, + mapem_ts_AllowedManeuvers_maneuverLeftTurnOnRedAllowed = 4, + mapem_ts_AllowedManeuvers_maneuverRightTurnOnRedAllowed = 5, + mapem_ts_AllowedManeuvers_maneuverLaneChangeAllowed = 6, + mapem_ts_AllowedManeuvers_maneuverNoStoppingAllowed = 7, + mapem_ts_AllowedManeuvers_yieldAllwaysRequired = 8, + mapem_ts_AllowedManeuvers_goWithHalt = 9, + mapem_ts_AllowedManeuvers_caution = 10, + mapem_ts_AllowedManeuvers_reserved1 = 11 +} e_mapem_ts_AllowedManeuvers; + +/* mapem_ts_AllowedManeuvers */ +typedef BIT_STRING_t mapem_ts_AllowedManeuvers_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_AllowedManeuvers_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_AllowedManeuvers; +asn_struct_free_f mapem_ts_AllowedManeuvers_free; +asn_struct_print_f mapem_ts_AllowedManeuvers_print; +asn_constr_check_f mapem_ts_AllowedManeuvers_constraint; +per_type_decoder_f mapem_ts_AllowedManeuvers_decode_uper; +per_type_encoder_f mapem_ts_AllowedManeuvers_encode_uper; +per_type_decoder_f mapem_ts_AllowedManeuvers_decode_aper; +per_type_encoder_f mapem_ts_AllowedManeuvers_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_AllowedManeuvers_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AlphabetIndicator.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AlphabetIndicator.h new file mode 100644 index 000000000..ad8fa66f4 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_AlphabetIndicator_H_ +#define _mapem_ts_AlphabetIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_AlphabetIndicator { + mapem_ts_AlphabetIndicator_latinAlphabetNo1 = 0, + mapem_ts_AlphabetIndicator_latinAlphabetNo2 = 1, + mapem_ts_AlphabetIndicator_latinAlphabetNo3 = 2, + mapem_ts_AlphabetIndicator_latinAlphabetNo4 = 3, + mapem_ts_AlphabetIndicator_latinCyrillicAlphabet = 4, + mapem_ts_AlphabetIndicator_latinArabicAlphabet = 5, + mapem_ts_AlphabetIndicator_latinGreekAlphabet = 6, + mapem_ts_AlphabetIndicator_latinHebrewAlphabet = 7, + mapem_ts_AlphabetIndicator_latinAlphabetNo5 = 8, + mapem_ts_AlphabetIndicator_latinAlphabetNo6 = 9, + mapem_ts_AlphabetIndicator_twoOctetBMP = 10, + mapem_ts_AlphabetIndicator_fourOctetCanonical = 11 +} e_mapem_ts_AlphabetIndicator; + +/* mapem_ts_AlphabetIndicator */ +typedef long mapem_ts_AlphabetIndicator_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_AlphabetIndicator_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_AlphabetIndicator; +asn_struct_free_f mapem_ts_AlphabetIndicator_free; +asn_struct_print_f mapem_ts_AlphabetIndicator_print; +asn_constr_check_f mapem_ts_AlphabetIndicator_constraint; +per_type_decoder_f mapem_ts_AlphabetIndicator_decode_uper; +per_type_encoder_f mapem_ts_AlphabetIndicator_encode_uper; +per_type_decoder_f mapem_ts_AlphabetIndicator_decode_aper; +per_type_encoder_f mapem_ts_AlphabetIndicator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_AlphabetIndicator_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Altitude.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Altitude.h new file mode 100644 index 000000000..bee2ec0b8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Altitude_H_ +#define _mapem_ts_Altitude_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_AltitudeValue.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_AltitudeConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_Altitude */ +typedef struct mapem_ts_Altitude { + mapem_ts_AltitudeValue_t altitudeValue; + mapem_ts_AltitudeConfidence_t altitudeConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_Altitude_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Altitude; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Altitude_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Altitude_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Altitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AltitudeConfidence.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AltitudeConfidence.h new file mode 100644 index 000000000..f03a05628 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_AltitudeConfidence_H_ +#define _mapem_ts_AltitudeConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_AltitudeConfidence { + mapem_ts_AltitudeConfidence_alt_000_01 = 0, + mapem_ts_AltitudeConfidence_alt_000_02 = 1, + mapem_ts_AltitudeConfidence_alt_000_05 = 2, + mapem_ts_AltitudeConfidence_alt_000_10 = 3, + mapem_ts_AltitudeConfidence_alt_000_20 = 4, + mapem_ts_AltitudeConfidence_alt_000_50 = 5, + mapem_ts_AltitudeConfidence_alt_001_00 = 6, + mapem_ts_AltitudeConfidence_alt_002_00 = 7, + mapem_ts_AltitudeConfidence_alt_005_00 = 8, + mapem_ts_AltitudeConfidence_alt_010_00 = 9, + mapem_ts_AltitudeConfidence_alt_020_00 = 10, + mapem_ts_AltitudeConfidence_alt_050_00 = 11, + mapem_ts_AltitudeConfidence_alt_100_00 = 12, + mapem_ts_AltitudeConfidence_alt_200_00 = 13, + mapem_ts_AltitudeConfidence_outOfRange = 14, + mapem_ts_AltitudeConfidence_unavailable = 15 +} e_mapem_ts_AltitudeConfidence; + +/* mapem_ts_AltitudeConfidence */ +typedef long mapem_ts_AltitudeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_AltitudeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_AltitudeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_AltitudeConfidence_specs_1; +asn_struct_free_f mapem_ts_AltitudeConfidence_free; +asn_struct_print_f mapem_ts_AltitudeConfidence_print; +asn_constr_check_f mapem_ts_AltitudeConfidence_constraint; +per_type_decoder_f mapem_ts_AltitudeConfidence_decode_uper; +per_type_encoder_f mapem_ts_AltitudeConfidence_encode_uper; +per_type_decoder_f mapem_ts_AltitudeConfidence_decode_aper; +per_type_encoder_f mapem_ts_AltitudeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_AltitudeConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AltitudeValue.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AltitudeValue.h new file mode 100644 index 000000000..280d5e93f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_AltitudeValue_H_ +#define _mapem_ts_AltitudeValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_AltitudeValue { + mapem_ts_AltitudeValue_referenceEllipsoidSurface = 0, + mapem_ts_AltitudeValue_oneCentimeter = 1, + mapem_ts_AltitudeValue_unavailable = 800001 +} e_mapem_ts_AltitudeValue; + +/* mapem_ts_AltitudeValue */ +typedef long mapem_ts_AltitudeValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_AltitudeValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_AltitudeValue; +asn_struct_free_f mapem_ts_AltitudeValue_free; +asn_struct_print_f mapem_ts_AltitudeValue_print; +asn_constr_check_f mapem_ts_AltitudeValue_constraint; +per_type_decoder_f mapem_ts_AltitudeValue_decode_uper; +per_type_encoder_f mapem_ts_AltitudeValue_encode_uper; +per_type_decoder_f mapem_ts_AltitudeValue_decode_aper; +per_type_encoder_f mapem_ts_AltitudeValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_AltitudeValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Angle.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Angle.h new file mode 100644 index 000000000..cf5445e8f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Angle_H_ +#define _mapem_ts_Angle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_Angle */ +typedef long mapem_ts_Angle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_Angle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Angle; +asn_struct_free_f mapem_ts_Angle_free; +asn_struct_print_f mapem_ts_Angle_print; +asn_constr_check_f mapem_ts_Angle_constraint; +per_type_decoder_f mapem_ts_Angle_decode_uper; +per_type_encoder_f mapem_ts_Angle_encode_uper; +per_type_decoder_f mapem_ts_Angle_decode_aper; +per_type_encoder_f mapem_ts_Angle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Angle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AntennaOffsetSet.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AntennaOffsetSet.h new file mode 100644 index 000000000..76372acb3 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_AntennaOffsetSet_H_ +#define _mapem_ts_AntennaOffsetSet_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_Offset-B12.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Offset-B09.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Offset-B10.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_AntennaOffsetSet */ +typedef struct mapem_ts_AntennaOffsetSet { + mapem_ts_Offset_B12_t antOffsetX; + mapem_ts_Offset_B09_t antOffsetY; + mapem_ts_Offset_B10_t antOffsetZ; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_AntennaOffsetSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_AntennaOffsetSet; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_AntennaOffsetSet_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_AntennaOffsetSet_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_AntennaOffsetSet_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ApproachID.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ApproachID.h new file mode 100644 index 000000000..c9b5a6c38 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ApproachID_H_ +#define _mapem_ts_ApproachID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_ApproachID */ +typedef long mapem_ts_ApproachID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_ApproachID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ApproachID; +asn_struct_free_f mapem_ts_ApproachID_free; +asn_struct_print_f mapem_ts_ApproachID_print; +asn_constr_check_f mapem_ts_ApproachID_constraint; +per_type_decoder_f mapem_ts_ApproachID_decode_uper; +per_type_encoder_f mapem_ts_ApproachID_encode_uper; +per_type_decoder_f mapem_ts_ApproachID_decode_aper; +per_type_encoder_f mapem_ts_ApproachID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_ApproachID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AviEriDateTime.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_AviEriDateTime.h new file mode 100644 index 000000000..bd6d2ec1d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_AviEriDateTime_H_ +#define _mapem_ts_AviEriDateTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_AviEriDateTime */ +typedef OCTET_STRING_t mapem_ts_AviEriDateTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_AviEriDateTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_AviEriDateTime; +asn_struct_free_f mapem_ts_AviEriDateTime_free; +asn_struct_print_f mapem_ts_AviEriDateTime_print; +asn_constr_check_f mapem_ts_AviEriDateTime_constraint; +per_type_decoder_f mapem_ts_AviEriDateTime_decode_uper; +per_type_encoder_f mapem_ts_AviEriDateTime_encode_uper; +per_type_decoder_f mapem_ts_AviEriDateTime_decode_aper; +per_type_encoder_f mapem_ts_AviEriDateTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_AviEriDateTime_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_BasicVehicleRole.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_BasicVehicleRole.h new file mode 100644 index 000000000..7140c78f9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_BasicVehicleRole_H_ +#define _mapem_ts_BasicVehicleRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_BasicVehicleRole { + mapem_ts_BasicVehicleRole_basicVehicle = 0, + mapem_ts_BasicVehicleRole_publicTransport = 1, + mapem_ts_BasicVehicleRole_specialTransport = 2, + mapem_ts_BasicVehicleRole_dangerousGoods = 3, + mapem_ts_BasicVehicleRole_roadWork = 4, + mapem_ts_BasicVehicleRole_roadRescue = 5, + mapem_ts_BasicVehicleRole_emergency = 6, + mapem_ts_BasicVehicleRole_safetyCar = 7, + mapem_ts_BasicVehicleRole_none_unknown = 8, + mapem_ts_BasicVehicleRole_truck = 9, + mapem_ts_BasicVehicleRole_motorcycle = 10, + mapem_ts_BasicVehicleRole_roadSideSource = 11, + mapem_ts_BasicVehicleRole_police = 12, + mapem_ts_BasicVehicleRole_fire = 13, + mapem_ts_BasicVehicleRole_ambulance = 14, + mapem_ts_BasicVehicleRole_dot = 15, + mapem_ts_BasicVehicleRole_transit = 16, + mapem_ts_BasicVehicleRole_slowMoving = 17, + mapem_ts_BasicVehicleRole_stopNgo = 18, + mapem_ts_BasicVehicleRole_cyclist = 19, + mapem_ts_BasicVehicleRole_pedestrian = 20, + mapem_ts_BasicVehicleRole_nonMotorized = 21, + mapem_ts_BasicVehicleRole_military = 22 + /* + * Enumeration is extensible + */ +} e_mapem_ts_BasicVehicleRole; + +/* mapem_ts_BasicVehicleRole */ +typedef long mapem_ts_BasicVehicleRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_BasicVehicleRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_BasicVehicleRole; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_BasicVehicleRole_specs_1; +asn_struct_free_f mapem_ts_BasicVehicleRole_free; +asn_struct_print_f mapem_ts_BasicVehicleRole_print; +asn_constr_check_f mapem_ts_BasicVehicleRole_constraint; +per_type_decoder_f mapem_ts_BasicVehicleRole_decode_uper; +per_type_encoder_f mapem_ts_BasicVehicleRole_encode_uper; +per_type_decoder_f mapem_ts_BasicVehicleRole_decode_aper; +per_type_encoder_f mapem_ts_BasicVehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_BasicVehicleRole_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_BatteryStatus.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_BatteryStatus.h new file mode 100644 index 000000000..3b3d7ba01 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_BatteryStatus_H_ +#define _mapem_ts_BatteryStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_BatteryStatus { + mapem_ts_BatteryStatus_unknown = 0, + mapem_ts_BatteryStatus_critical = 1, + mapem_ts_BatteryStatus_low = 2, + mapem_ts_BatteryStatus_good = 3 + /* + * Enumeration is extensible + */ +} e_mapem_ts_BatteryStatus; + +/* mapem_ts_BatteryStatus */ +typedef long mapem_ts_BatteryStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_BatteryStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_BatteryStatus; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_BatteryStatus_specs_1; +asn_struct_free_f mapem_ts_BatteryStatus_free; +asn_struct_print_f mapem_ts_BatteryStatus_print; +asn_constr_check_f mapem_ts_BatteryStatus_constraint; +per_type_decoder_f mapem_ts_BatteryStatus_decode_uper; +per_type_encoder_f mapem_ts_BatteryStatus_encode_uper; +per_type_decoder_f mapem_ts_BatteryStatus_decode_aper; +per_type_encoder_f mapem_ts_BatteryStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_BatteryStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CS1.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CS1.h new file mode 100644 index 000000000..442ebf51d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_CS1_H_ +#define _mapem_ts_CS1_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_CountryCode.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_IssuerIdentifier.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_ServiceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_CS1 */ +typedef struct mapem_ts_CS1 { + mapem_ts_CountryCode_t countryCode; + mapem_ts_IssuerIdentifier_t issuerIdentifier; + mapem_ts_ServiceNumber_t serviceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_CS1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_CS1; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_CS1_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CS2.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CS2.h new file mode 100644 index 000000000..a6bdad97b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_CS2_H_ +#define _mapem_ts_CS2_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_ManufacturerIdentifier.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_ServiceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_CS2 */ +typedef struct mapem_ts_CS2 { + mapem_ts_ManufacturerIdentifier_t manufacturerIdentifier; + mapem_ts_ServiceNumber_t serviceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_CS2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_CS2; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_CS2_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CS3.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CS3.h new file mode 100644 index 000000000..aef3c9e15 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_CS3_H_ +#define _mapem_ts_CS3_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_StartTime.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_StopTime.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_GeoGraphicalLimit.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_ServiceApplicationLimit.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_CS3 */ +typedef struct mapem_ts_CS3 { + mapem_ts_StartTime_t startTime; + mapem_ts_StopTime_t stopTime; + mapem_ts_GeoGraphicalLimit_t geographLimit; + mapem_ts_ServiceApplicationLimit_t serviceAppLimit; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_CS3_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_CS3; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_CS3_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CS4.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CS4.h new file mode 100644 index 000000000..14bb6ed4e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_CS4_H_ +#define _mapem_ts_CS4_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_CountryCode.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_AlphabetIndicator.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_LicPlateNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_CS4 */ +typedef struct mapem_ts_CS4 { + mapem_ts_CountryCode_t countryCode; + mapem_ts_AlphabetIndicator_t alphabetIndicator; + mapem_ts_LicPlateNumber_t licPlateNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_CS4_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_CS4; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_CS4_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CS5.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CS5.h new file mode 100644 index 000000000..51ebc45e8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CS5.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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_CS5_H_ +#define _mapem_ts_CS5_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_CS5 */ +typedef struct mapem_ts_CS5 { + VisibleString_t vin; + BIT_STRING_t fill; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_CS5_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_CS5; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_CS5_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CS7.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CS7.h new file mode 100644 index 000000000..7921837d0 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_CS7_H_ +#define _mapem_ts_CS7_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_FreightContainerData.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_CS7 */ +typedef mapem_ts_FreightContainerData_t mapem_ts_CS7_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_CS7; +asn_struct_free_f mapem_ts_CS7_free; +asn_struct_print_f mapem_ts_CS7_print; +asn_constr_check_f mapem_ts_CS7_constraint; +per_type_decoder_f mapem_ts_CS7_decode_uper; +per_type_encoder_f mapem_ts_CS7_encode_uper; +per_type_decoder_f mapem_ts_CS7_decode_aper; +per_type_encoder_f mapem_ts_CS7_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_CS7_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CS8.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CS8.h new file mode 100644 index 000000000..5a990f5a9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_CS8_H_ +#define _mapem_ts_CS8_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_mapem_ts_coding/mapem_ts_CountryCode.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_TaxCode.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_CS8 */ +typedef struct mapem_ts_CS8 { + BIT_STRING_t fill; + mapem_ts_CountryCode_t countryCode; + mapem_ts_TaxCode_t taxCode; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_CS8_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_CS8; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_CS8_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CauseCode.h new file mode 100644 index 000000000..e2796ea4f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_CauseCode_H_ +#define _mapem_ts_CauseCode_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_CauseCodeType.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_SubCauseCodeType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_CauseCode */ +typedef struct mapem_ts_CauseCode { + mapem_ts_CauseCodeType_t causeCode; + mapem_ts_SubCauseCodeType_t subCauseCode; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_CauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_CauseCode; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_CauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CauseCodeType.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CauseCodeType.h new file mode 100644 index 000000000..e648b2bb8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_CauseCodeType_H_ +#define _mapem_ts_CauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_CauseCodeType { + mapem_ts_CauseCodeType_reserved = 0, + mapem_ts_CauseCodeType_trafficCondition = 1, + mapem_ts_CauseCodeType_accident = 2, + mapem_ts_CauseCodeType_roadworks = 3, + mapem_ts_CauseCodeType_impassability = 5, + mapem_ts_CauseCodeType_adverseWeatherCondition_Adhesion = 6, + mapem_ts_CauseCodeType_aquaplannning = 7, + mapem_ts_CauseCodeType_hazardousLocation_SurfaceCondition = 9, + mapem_ts_CauseCodeType_hazardousLocation_ObstacleOnTheRoad = 10, + mapem_ts_CauseCodeType_hazardousLocation_AnimalOnTheRoad = 11, + mapem_ts_CauseCodeType_humanPresenceOnTheRoad = 12, + mapem_ts_CauseCodeType_wrongWayDriving = 14, + mapem_ts_CauseCodeType_rescueAndRecoveryWorkInProgress = 15, + mapem_ts_CauseCodeType_adverseWeatherCondition_ExtremeWeatherCondition = 17, + mapem_ts_CauseCodeType_adverseWeatherCondition_Visibility = 18, + mapem_ts_CauseCodeType_adverseWeatherCondition_Precipitation = 19, + mapem_ts_CauseCodeType_slowVehicle = 26, + mapem_ts_CauseCodeType_dangerousEndOfQueue = 27, + mapem_ts_CauseCodeType_vehicleBreakdown = 91, + mapem_ts_CauseCodeType_postCrash = 92, + mapem_ts_CauseCodeType_humanProblem = 93, + mapem_ts_CauseCodeType_stationaryVehicle = 94, + mapem_ts_CauseCodeType_emergencyVehicleApproaching = 95, + mapem_ts_CauseCodeType_hazardousLocation_DangerousCurve = 96, + mapem_ts_CauseCodeType_collisionRisk = 97, + mapem_ts_CauseCodeType_signalViolation = 98, + mapem_ts_CauseCodeType_dangerousSituation = 99 +} e_mapem_ts_CauseCodeType; + +/* mapem_ts_CauseCodeType */ +typedef long mapem_ts_CauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_CauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_CauseCodeType; +asn_struct_free_f mapem_ts_CauseCodeType_free; +asn_struct_print_f mapem_ts_CauseCodeType_print; +asn_constr_check_f mapem_ts_CauseCodeType_constraint; +per_type_decoder_f mapem_ts_CauseCodeType_decode_uper; +per_type_encoder_f mapem_ts_CauseCodeType_encode_uper; +per_type_decoder_f mapem_ts_CauseCodeType_decode_aper; +per_type_encoder_f mapem_ts_CauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_CauseCodeType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CenDsrcTollingZone.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CenDsrcTollingZone.h new file mode 100644 index 000000000..c2cb906e5 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_CenDsrcTollingZone_H_ +#define _mapem_ts_CenDsrcTollingZone_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_Latitude.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Longitude.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_CenDsrcTollingZoneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_CenDsrcTollingZone */ +typedef struct mapem_ts_CenDsrcTollingZone { + mapem_ts_Latitude_t protectedZoneLatitude; + mapem_ts_Longitude_t protectedZoneLongitude; + mapem_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; +} mapem_ts_CenDsrcTollingZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_CenDsrcTollingZone; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_CenDsrcTollingZone_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CenDsrcTollingZoneID.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CenDsrcTollingZoneID.h new file mode 100644 index 000000000..09b6cc93b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_CenDsrcTollingZoneID_H_ +#define _mapem_ts_CenDsrcTollingZoneID_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_ProtectedZoneID.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_CenDsrcTollingZoneID */ +typedef mapem_ts_ProtectedZoneID_t mapem_ts_CenDsrcTollingZoneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_CenDsrcTollingZoneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_CenDsrcTollingZoneID; +asn_struct_free_f mapem_ts_CenDsrcTollingZoneID_free; +asn_struct_print_f mapem_ts_CenDsrcTollingZoneID_print; +asn_constr_check_f mapem_ts_CenDsrcTollingZoneID_constraint; +per_type_decoder_f mapem_ts_CenDsrcTollingZoneID_decode_uper; +per_type_encoder_f mapem_ts_CenDsrcTollingZoneID_encode_uper; +per_type_decoder_f mapem_ts_CenDsrcTollingZoneID_decode_aper; +per_type_encoder_f mapem_ts_CenDsrcTollingZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_CenDsrcTollingZoneID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ClosedLanes.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ClosedLanes.h new file mode 100644 index 000000000..1280154a9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ClosedLanes_H_ +#define _mapem_ts_ClosedLanes_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_HardShoulderStatus.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_DrivingLaneStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_ClosedLanes */ +typedef struct mapem_ts_ClosedLanes { + mapem_ts_HardShoulderStatus_t *innerhardShoulderStatus; /* OPTIONAL */ + mapem_ts_HardShoulderStatus_t *outerhardShoulderStatus; /* OPTIONAL */ + mapem_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; +} mapem_ts_ClosedLanes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ClosedLanes; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_ClosedLanes_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CollisionRiskSubCauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CollisionRiskSubCauseCode.h new file mode 100644 index 000000000..9b43576a6 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_CollisionRiskSubCauseCode_H_ +#define _mapem_ts_CollisionRiskSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_CollisionRiskSubCauseCode { + mapem_ts_CollisionRiskSubCauseCode_unavailable = 0, + mapem_ts_CollisionRiskSubCauseCode_longitudinalCollisionRisk = 1, + mapem_ts_CollisionRiskSubCauseCode_crossingCollisionRisk = 2, + mapem_ts_CollisionRiskSubCauseCode_lateralCollisionRisk = 3, + mapem_ts_CollisionRiskSubCauseCode_vulnerableRoadUser = 4 +} e_mapem_ts_CollisionRiskSubCauseCode; + +/* mapem_ts_CollisionRiskSubCauseCode */ +typedef long mapem_ts_CollisionRiskSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_CollisionRiskSubCauseCode; +asn_struct_free_f mapem_ts_CollisionRiskSubCauseCode_free; +asn_struct_print_f mapem_ts_CollisionRiskSubCauseCode_print; +asn_constr_check_f mapem_ts_CollisionRiskSubCauseCode_constraint; +per_type_decoder_f mapem_ts_CollisionRiskSubCauseCode_decode_uper; +per_type_encoder_f mapem_ts_CollisionRiskSubCauseCode_encode_uper; +per_type_decoder_f mapem_ts_CollisionRiskSubCauseCode_decode_aper; +per_type_encoder_f mapem_ts_CollisionRiskSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_CollisionRiskSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ComputedLane.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ComputedLane.h new file mode 100644 index 000000000..8c49ef6f7 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ComputedLane_H_ +#define _mapem_ts_ComputedLane_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Angle.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Scale-B12.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_DrivenLineOffsetSm.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_DrivenLineOffsetLg.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_ComputedLane__offsetXaxis_PR { + mapem_ts_ComputedLane__offsetXaxis_PR_NOTHING, /* No components present */ + mapem_ts_ComputedLane__offsetXaxis_PR_small, + mapem_ts_ComputedLane__offsetXaxis_PR_large +} mapem_ts_ComputedLane__offsetXaxis_PR; +typedef enum mapem_ts_ComputedLane__offsetYaxis_PR { + mapem_ts_ComputedLane__offsetYaxis_PR_NOTHING, /* No components present */ + mapem_ts_ComputedLane__offsetYaxis_PR_small, + mapem_ts_ComputedLane__offsetYaxis_PR_large +} mapem_ts_ComputedLane__offsetYaxis_PR; + +/* Forward declarations */ +struct mapem_ts_Reg_ComputedLane; + +/* mapem_ts_ComputedLane */ +typedef struct mapem_ts_ComputedLane { + mapem_ts_LaneID_t referenceLaneId; + struct mapem_ts_ComputedLane__offsetXaxis { + mapem_ts_ComputedLane__offsetXaxis_PR present; + union mapem_ts_ComputedLane__mapem_ts_offsetXaxis_u { + mapem_ts_DrivenLineOffsetSm_t small; + mapem_ts_DrivenLineOffsetLg_t large; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } offsetXaxis; + struct mapem_ts_ComputedLane__offsetYaxis { + mapem_ts_ComputedLane__offsetYaxis_PR present; + union mapem_ts_ComputedLane__mapem_ts_offsetYaxis_u { + mapem_ts_DrivenLineOffsetSm_t small; + mapem_ts_DrivenLineOffsetLg_t large; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } offsetYaxis; + mapem_ts_Angle_t *rotateXY; /* OPTIONAL */ + mapem_ts_Scale_B12_t *scaleXaxis; /* OPTIONAL */ + mapem_ts_Scale_B12_t *scaleYaxis; /* OPTIONAL */ + struct mapem_ts_ComputedLane__regional { + A_SEQUENCE_OF(struct mapem_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; +} mapem_ts_ComputedLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ComputedLane; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_ComputedLane_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_ComputedLane_1[7]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_ComputedLane_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ConnectingLane.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ConnectingLane.h new file mode 100644 index 000000000..1d8c3dbb1 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ConnectingLane_H_ +#define _mapem_ts_ConnectingLane_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_AllowedManeuvers.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_ConnectingLane */ +typedef struct mapem_ts_ConnectingLane { + mapem_ts_LaneID_t lane; + mapem_ts_AllowedManeuvers_t *maneuver; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_ConnectingLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ConnectingLane; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_ConnectingLane_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_ConnectingLane_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_ConnectingLane_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Connection.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Connection.h new file mode 100644 index 000000000..cd259023e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Connection_H_ +#define _mapem_ts_Connection_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_ConnectingLane.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalGroupID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RestrictionClassID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_IntersectionReferenceID; + +/* mapem_ts_Connection */ +typedef struct mapem_ts_Connection { + mapem_ts_ConnectingLane_t connectingLane; + struct mapem_ts_IntersectionReferenceID *remoteIntersection; /* OPTIONAL */ + mapem_ts_SignalGroupID_t *signalGroup; /* OPTIONAL */ + mapem_ts_RestrictionClassID_t *userClass; /* OPTIONAL */ + mapem_ts_LaneConnectionID_t *connectionID; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_Connection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Connection; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Connection_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Connection_1[5]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionReferenceID.h" + +#endif /* _mapem_ts_Connection_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ConnectionManeuverAssist-addGrpC.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ConnectionManeuverAssist-addGrpC.h new file mode 100644 index 000000000..fcf3badaf --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ConnectionManeuverAssist_addGrpC_H_ +#define _mapem_ts_ConnectionManeuverAssist_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_ItsStationPositionList; + +/* mapem_ts_ConnectionManeuverAssist-addGrpC */ +typedef struct mapem_ts_ConnectionManeuverAssist_addGrpC { + struct mapem_ts_ItsStationPositionList *itsStationPosition; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_ConnectionManeuverAssist_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ConnectionManeuverAssist_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_ConnectionManeuverAssist_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_ConnectionManeuverAssist_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_ItsStationPositionList.h" + +#endif /* _mapem_ts_ConnectionManeuverAssist_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ConnectionManeuverAssist.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ConnectionManeuverAssist.h new file mode 100644 index 000000000..80398254f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ConnectionManeuverAssist_H_ +#define _mapem_ts_ConnectionManeuverAssist_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneConnectionID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_ZoneLength.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_WaitOnStopline.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_PedestrianBicycleDetect.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_Reg_ConnectionManeuverAssist; + +/* mapem_ts_ConnectionManeuverAssist */ +typedef struct mapem_ts_ConnectionManeuverAssist { + mapem_ts_LaneConnectionID_t connectionID; + mapem_ts_ZoneLength_t *queueLength; /* OPTIONAL */ + mapem_ts_ZoneLength_t *availableStorageLength; /* OPTIONAL */ + mapem_ts_WaitOnStopline_t *waitOnStop; /* OPTIONAL */ + mapem_ts_PedestrianBicycleDetect_t *pedBicycleDetect; /* OPTIONAL */ + struct mapem_ts_ConnectionManeuverAssist__regional { + A_SEQUENCE_OF(struct mapem_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; +} mapem_ts_ConnectionManeuverAssist_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ConnectionManeuverAssist; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_ConnectionManeuverAssist_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_ConnectionManeuverAssist_1[6]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_ConnectionManeuverAssist_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ConnectionTrajectory-addGrpC.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ConnectionTrajectory-addGrpC.h new file mode 100644 index 000000000..daa530dc1 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_NodeSetXY.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneConnectionID.h" +#include + +#ifndef _mapem_ts_ConnectionTrajectory_addGrpC_H_ +#define _mapem_ts_ConnectionTrajectory_addGrpC_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_ConnectionTrajectory-addGrpC */ +typedef struct mapem_ts_ConnectionTrajectory_addGrpC { + mapem_ts_NodeSetXY_t nodes; + mapem_ts_LaneConnectionID_t connectionID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_ConnectionTrajectory_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ConnectionTrajectory_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_ConnectionTrajectory_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_ConnectionTrajectory_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_ConnectionTrajectory_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ConnectsToList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ConnectsToList.h new file mode 100644 index 000000000..ddb34cac1 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ConnectsToList_H_ +#define _mapem_ts_ConnectsToList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_Connection; + +/* mapem_ts_ConnectsToList */ +typedef struct mapem_ts_ConnectsToList { + A_SEQUENCE_OF(struct mapem_ts_Connection) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_ConnectsToList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ConnectsToList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_ConnectsToList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_ConnectsToList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_ConnectsToList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_Connection.h" + +#endif /* _mapem_ts_ConnectsToList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CountryCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CountryCode.h new file mode 100644 index 000000000..0d7fa34e3 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_CountryCode_H_ +#define _mapem_ts_CountryCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_CountryCode */ +typedef BIT_STRING_t mapem_ts_CountryCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_CountryCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_CountryCode; +asn_struct_free_f mapem_ts_CountryCode_free; +asn_struct_print_f mapem_ts_CountryCode_print; +asn_constr_check_f mapem_ts_CountryCode_constraint; +per_type_decoder_f mapem_ts_CountryCode_decode_uper; +per_type_encoder_f mapem_ts_CountryCode_encode_uper; +per_type_decoder_f mapem_ts_CountryCode_decode_aper; +per_type_encoder_f mapem_ts_CountryCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_CountryCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Curvature.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Curvature.h new file mode 100644 index 000000000..db0fcd79a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Curvature_H_ +#define _mapem_ts_Curvature_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_CurvatureValue.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_CurvatureConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_Curvature */ +typedef struct mapem_ts_Curvature { + mapem_ts_CurvatureValue_t curvatureValue; + mapem_ts_CurvatureConfidence_t curvatureConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_Curvature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Curvature; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Curvature_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CurvatureCalculationMode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CurvatureCalculationMode.h new file mode 100644 index 000000000..2930d76d2 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_CurvatureCalculationMode_H_ +#define _mapem_ts_CurvatureCalculationMode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_CurvatureCalculationMode { + mapem_ts_CurvatureCalculationMode_yawRateUsed = 0, + mapem_ts_CurvatureCalculationMode_yawRateNotUsed = 1, + mapem_ts_CurvatureCalculationMode_unavailable = 2 + /* + * Enumeration is extensible + */ +} e_mapem_ts_CurvatureCalculationMode; + +/* mapem_ts_CurvatureCalculationMode */ +typedef long mapem_ts_CurvatureCalculationMode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_CurvatureCalculationMode; +asn_struct_free_f mapem_ts_CurvatureCalculationMode_free; +asn_struct_print_f mapem_ts_CurvatureCalculationMode_print; +asn_constr_check_f mapem_ts_CurvatureCalculationMode_constraint; +per_type_decoder_f mapem_ts_CurvatureCalculationMode_decode_uper; +per_type_encoder_f mapem_ts_CurvatureCalculationMode_encode_uper; +per_type_decoder_f mapem_ts_CurvatureCalculationMode_decode_aper; +per_type_encoder_f mapem_ts_CurvatureCalculationMode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_CurvatureCalculationMode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CurvatureConfidence.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CurvatureConfidence.h new file mode 100644 index 000000000..2db60609d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_CurvatureConfidence_H_ +#define _mapem_ts_CurvatureConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_CurvatureConfidence { + mapem_ts_CurvatureConfidence_onePerMeter_0_00002 = 0, + mapem_ts_CurvatureConfidence_onePerMeter_0_0001 = 1, + mapem_ts_CurvatureConfidence_onePerMeter_0_0005 = 2, + mapem_ts_CurvatureConfidence_onePerMeter_0_002 = 3, + mapem_ts_CurvatureConfidence_onePerMeter_0_01 = 4, + mapem_ts_CurvatureConfidence_onePerMeter_0_1 = 5, + mapem_ts_CurvatureConfidence_outOfRange = 6, + mapem_ts_CurvatureConfidence_unavailable = 7 +} e_mapem_ts_CurvatureConfidence; + +/* mapem_ts_CurvatureConfidence */ +typedef long mapem_ts_CurvatureConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_CurvatureConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_CurvatureConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_CurvatureConfidence_specs_1; +asn_struct_free_f mapem_ts_CurvatureConfidence_free; +asn_struct_print_f mapem_ts_CurvatureConfidence_print; +asn_constr_check_f mapem_ts_CurvatureConfidence_constraint; +per_type_decoder_f mapem_ts_CurvatureConfidence_decode_uper; +per_type_encoder_f mapem_ts_CurvatureConfidence_encode_uper; +per_type_decoder_f mapem_ts_CurvatureConfidence_decode_aper; +per_type_encoder_f mapem_ts_CurvatureConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_CurvatureConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CurvatureValue.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_CurvatureValue.h new file mode 100644 index 000000000..b35a5c876 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_CurvatureValue_H_ +#define _mapem_ts_CurvatureValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_CurvatureValue { + mapem_ts_CurvatureValue_straight = 0, + mapem_ts_CurvatureValue_unavailable = 1023 +} e_mapem_ts_CurvatureValue; + +/* mapem_ts_CurvatureValue */ +typedef long mapem_ts_CurvatureValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_CurvatureValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_CurvatureValue; +asn_struct_free_f mapem_ts_CurvatureValue_free; +asn_struct_print_f mapem_ts_CurvatureValue_print; +asn_constr_check_f mapem_ts_CurvatureValue_constraint; +per_type_decoder_f mapem_ts_CurvatureValue_decode_uper; +per_type_encoder_f mapem_ts_CurvatureValue_encode_uper; +per_type_decoder_f mapem_ts_CurvatureValue_decode_aper; +per_type_encoder_f mapem_ts_CurvatureValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_CurvatureValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DDateTime.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DDateTime.h new file mode 100644 index 000000000..ec2de7639 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DDateTime_H_ +#define _mapem_ts_DDateTime_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_DYear.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_DMonth.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_DDay.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_DHour.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_DMinute.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_DSecond.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_DOffset.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_DDateTime */ +typedef struct mapem_ts_DDateTime { + mapem_ts_DYear_t *year; /* OPTIONAL */ + mapem_ts_DMonth_t *month; /* OPTIONAL */ + mapem_ts_DDay_t *day; /* OPTIONAL */ + mapem_ts_DHour_t *hour; /* OPTIONAL */ + mapem_ts_DMinute_t *minute; /* OPTIONAL */ + mapem_ts_DSecond_t *second; /* OPTIONAL */ + mapem_ts_DOffset_t *offset; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_DDateTime_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DDateTime; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_DDateTime_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_DDateTime_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DDateTime_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DDay.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DDay.h new file mode 100644 index 000000000..11a8990e7 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DDay_H_ +#define _mapem_ts_DDay_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_DDay */ +typedef long mapem_ts_DDay_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_DDay_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DDay; +asn_struct_free_f mapem_ts_DDay_free; +asn_struct_print_f mapem_ts_DDay_print; +asn_constr_check_f mapem_ts_DDay_constraint; +per_type_decoder_f mapem_ts_DDay_decode_uper; +per_type_encoder_f mapem_ts_DDay_encode_uper; +per_type_decoder_f mapem_ts_DDay_decode_aper; +per_type_encoder_f mapem_ts_DDay_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DDay_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DHour.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DHour.h new file mode 100644 index 000000000..a08995cd3 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DHour_H_ +#define _mapem_ts_DHour_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_DHour */ +typedef long mapem_ts_DHour_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_DHour_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DHour; +asn_struct_free_f mapem_ts_DHour_free; +asn_struct_print_f mapem_ts_DHour_print; +asn_constr_check_f mapem_ts_DHour_constraint; +per_type_decoder_f mapem_ts_DHour_decode_uper; +per_type_encoder_f mapem_ts_DHour_encode_uper; +per_type_decoder_f mapem_ts_DHour_decode_aper; +per_type_encoder_f mapem_ts_DHour_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DHour_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DMinute.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DMinute.h new file mode 100644 index 000000000..f791ee065 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DMinute_H_ +#define _mapem_ts_DMinute_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_DMinute */ +typedef long mapem_ts_DMinute_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_DMinute_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DMinute; +asn_struct_free_f mapem_ts_DMinute_free; +asn_struct_print_f mapem_ts_DMinute_print; +asn_constr_check_f mapem_ts_DMinute_constraint; +per_type_decoder_f mapem_ts_DMinute_decode_uper; +per_type_encoder_f mapem_ts_DMinute_encode_uper; +per_type_decoder_f mapem_ts_DMinute_decode_aper; +per_type_encoder_f mapem_ts_DMinute_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DMinute_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DMonth.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DMonth.h new file mode 100644 index 000000000..74a1eab07 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DMonth_H_ +#define _mapem_ts_DMonth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_DMonth */ +typedef long mapem_ts_DMonth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_DMonth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DMonth; +asn_struct_free_f mapem_ts_DMonth_free; +asn_struct_print_f mapem_ts_DMonth_print; +asn_constr_check_f mapem_ts_DMonth_constraint; +per_type_decoder_f mapem_ts_DMonth_decode_uper; +per_type_encoder_f mapem_ts_DMonth_encode_uper; +per_type_decoder_f mapem_ts_DMonth_decode_aper; +per_type_encoder_f mapem_ts_DMonth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DMonth_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DOffset.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DOffset.h new file mode 100644 index 000000000..4d2a2695c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DOffset_H_ +#define _mapem_ts_DOffset_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_DOffset */ +typedef long mapem_ts_DOffset_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_DOffset_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DOffset; +asn_struct_free_f mapem_ts_DOffset_free; +asn_struct_print_f mapem_ts_DOffset_print; +asn_constr_check_f mapem_ts_DOffset_constraint; +per_type_decoder_f mapem_ts_DOffset_decode_uper; +per_type_encoder_f mapem_ts_DOffset_encode_uper; +per_type_decoder_f mapem_ts_DOffset_decode_aper; +per_type_encoder_f mapem_ts_DOffset_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DOffset_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DSRCmsgID.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DSRCmsgID.h new file mode 100644 index 000000000..da5f4ff49 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DSRCmsgID_H_ +#define _mapem_ts_DSRCmsgID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_DSRCmsgID */ +typedef long mapem_ts_DSRCmsgID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_DSRCmsgID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DSRCmsgID; +asn_struct_free_f mapem_ts_DSRCmsgID_free; +asn_struct_print_f mapem_ts_DSRCmsgID_print; +asn_constr_check_f mapem_ts_DSRCmsgID_constraint; +per_type_decoder_f mapem_ts_DSRCmsgID_decode_uper; +per_type_encoder_f mapem_ts_DSRCmsgID_encode_uper; +per_type_decoder_f mapem_ts_DSRCmsgID_decode_aper; +per_type_encoder_f mapem_ts_DSRCmsgID_encode_aper; +#define mapem_ts_DSRCmsgID_mapData ((mapem_ts_DSRCmsgID_t)18) +#define mapem_ts_DSRCmsgID_rtcmCorrections ((mapem_ts_DSRCmsgID_t)28) +#define mapem_ts_DSRCmsgID_signalPhaseAndTimingMessage ((mapem_ts_DSRCmsgID_t)19) +#define mapem_ts_DSRCmsgID_signalRequestMessage ((mapem_ts_DSRCmsgID_t)29) +#define mapem_ts_DSRCmsgID_signalStatusMessage ((mapem_ts_DSRCmsgID_t)30) + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DSRCmsgID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DSecond.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DSecond.h new file mode 100644 index 000000000..d7f61adcd --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DSecond_H_ +#define _mapem_ts_DSecond_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_DSecond */ +typedef long mapem_ts_DSecond_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_DSecond_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DSecond; +asn_struct_free_f mapem_ts_DSecond_free; +asn_struct_print_f mapem_ts_DSecond_print; +asn_constr_check_f mapem_ts_DSecond_constraint; +per_type_decoder_f mapem_ts_DSecond_decode_uper; +per_type_encoder_f mapem_ts_DSecond_encode_uper; +per_type_decoder_f mapem_ts_DSecond_decode_aper; +per_type_encoder_f mapem_ts_DSecond_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DSecond_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DYear.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DYear.h new file mode 100644 index 000000000..815a8d276 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DYear_H_ +#define _mapem_ts_DYear_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_DYear */ +typedef long mapem_ts_DYear_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_DYear_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DYear; +asn_struct_free_f mapem_ts_DYear_free; +asn_struct_print_f mapem_ts_DYear_print; +asn_constr_check_f mapem_ts_DYear_constraint; +per_type_decoder_f mapem_ts_DYear_decode_uper; +per_type_encoder_f mapem_ts_DYear_encode_uper; +per_type_decoder_f mapem_ts_DYear_decode_aper; +per_type_encoder_f mapem_ts_DYear_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DYear_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DangerousEndOfQueueSubCauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DangerousEndOfQueueSubCauseCode.h new file mode 100644 index 000000000..a5e44c3a0 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DangerousEndOfQueueSubCauseCode_H_ +#define _mapem_ts_DangerousEndOfQueueSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_DangerousEndOfQueueSubCauseCode { + mapem_ts_DangerousEndOfQueueSubCauseCode_unavailable = 0, + mapem_ts_DangerousEndOfQueueSubCauseCode_suddenEndOfQueue = 1, + mapem_ts_DangerousEndOfQueueSubCauseCode_queueOverHill = 2, + mapem_ts_DangerousEndOfQueueSubCauseCode_queueAroundBend = 3, + mapem_ts_DangerousEndOfQueueSubCauseCode_queueInTunnel = 4 +} e_mapem_ts_DangerousEndOfQueueSubCauseCode; + +/* mapem_ts_DangerousEndOfQueueSubCauseCode */ +typedef long mapem_ts_DangerousEndOfQueueSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DangerousEndOfQueueSubCauseCode; +asn_struct_free_f mapem_ts_DangerousEndOfQueueSubCauseCode_free; +asn_struct_print_f mapem_ts_DangerousEndOfQueueSubCauseCode_print; +asn_constr_check_f mapem_ts_DangerousEndOfQueueSubCauseCode_constraint; +per_type_decoder_f mapem_ts_DangerousEndOfQueueSubCauseCode_decode_uper; +per_type_encoder_f mapem_ts_DangerousEndOfQueueSubCauseCode_encode_uper; +per_type_decoder_f mapem_ts_DangerousEndOfQueueSubCauseCode_decode_aper; +per_type_encoder_f mapem_ts_DangerousEndOfQueueSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DangerousEndOfQueueSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DangerousGoodsBasic.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DangerousGoodsBasic.h new file mode 100644 index 000000000..2a0f1c9f6 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DangerousGoodsBasic_H_ +#define _mapem_ts_DangerousGoodsBasic_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_DangerousGoodsBasic { + mapem_ts_DangerousGoodsBasic_explosives1 = 0, + mapem_ts_DangerousGoodsBasic_explosives2 = 1, + mapem_ts_DangerousGoodsBasic_explosives3 = 2, + mapem_ts_DangerousGoodsBasic_explosives4 = 3, + mapem_ts_DangerousGoodsBasic_explosives5 = 4, + mapem_ts_DangerousGoodsBasic_explosives6 = 5, + mapem_ts_DangerousGoodsBasic_flammableGases = 6, + mapem_ts_DangerousGoodsBasic_nonFlammableGases = 7, + mapem_ts_DangerousGoodsBasic_toxicGases = 8, + mapem_ts_DangerousGoodsBasic_flammableLiquids = 9, + mapem_ts_DangerousGoodsBasic_flammableSolids = 10, + mapem_ts_DangerousGoodsBasic_substancesLiableToSpontaneousCombustion = 11, + mapem_ts_DangerousGoodsBasic_substancesEmittingFlammableGasesUponContactWithWater = 12, + mapem_ts_DangerousGoodsBasic_oxidizingSubstances = 13, + mapem_ts_DangerousGoodsBasic_organicPeroxides = 14, + mapem_ts_DangerousGoodsBasic_toxicSubstances = 15, + mapem_ts_DangerousGoodsBasic_infectiousSubstances = 16, + mapem_ts_DangerousGoodsBasic_radioactiveMaterial = 17, + mapem_ts_DangerousGoodsBasic_corrosiveSubstances = 18, + mapem_ts_DangerousGoodsBasic_miscellaneousDangerousSubstances = 19 +} e_mapem_ts_DangerousGoodsBasic; + +/* mapem_ts_DangerousGoodsBasic */ +typedef long mapem_ts_DangerousGoodsBasic_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_DangerousGoodsBasic_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DangerousGoodsBasic; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_DangerousGoodsBasic_specs_1; +asn_struct_free_f mapem_ts_DangerousGoodsBasic_free; +asn_struct_print_f mapem_ts_DangerousGoodsBasic_print; +asn_constr_check_f mapem_ts_DangerousGoodsBasic_constraint; +per_type_decoder_f mapem_ts_DangerousGoodsBasic_decode_uper; +per_type_encoder_f mapem_ts_DangerousGoodsBasic_encode_uper; +per_type_decoder_f mapem_ts_DangerousGoodsBasic_decode_aper; +per_type_encoder_f mapem_ts_DangerousGoodsBasic_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DangerousGoodsBasic_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DangerousGoodsExtended.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DangerousGoodsExtended.h new file mode 100644 index 000000000..c4699d9c5 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DangerousGoodsExtended_H_ +#define _mapem_ts_DangerousGoodsExtended_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_DangerousGoodsBasic.h" +#include +#include +#include +#include "etsi_its_mapem_ts_coding/mapem_ts_PhoneNumber.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_DangerousGoodsExtended */ +typedef struct mapem_ts_DangerousGoodsExtended { + mapem_ts_DangerousGoodsBasic_t dangerousGoodsType; + long unNumber; + BOOLEAN_t elevatedTemperature; + BOOLEAN_t tunnelsRestricted; + BOOLEAN_t limitedQuantity; + IA5String_t *emergencyActionCode; /* OPTIONAL */ + mapem_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; +} mapem_ts_DangerousGoodsExtended_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DangerousGoodsExtended; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DangerousGoodsExtended_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DangerousSituationSubCauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DangerousSituationSubCauseCode.h new file mode 100644 index 000000000..ab9408675 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DangerousSituationSubCauseCode_H_ +#define _mapem_ts_DangerousSituationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_DangerousSituationSubCauseCode { + mapem_ts_DangerousSituationSubCauseCode_unavailable = 0, + mapem_ts_DangerousSituationSubCauseCode_emergencyElectronicBrakeEngaged = 1, + mapem_ts_DangerousSituationSubCauseCode_preCrashSystemEngaged = 2, + mapem_ts_DangerousSituationSubCauseCode_espEngaged = 3, + mapem_ts_DangerousSituationSubCauseCode_absEngaged = 4, + mapem_ts_DangerousSituationSubCauseCode_aebEngaged = 5, + mapem_ts_DangerousSituationSubCauseCode_brakeWarningEngaged = 6, + mapem_ts_DangerousSituationSubCauseCode_collisionRiskWarningEngaged = 7 +} e_mapem_ts_DangerousSituationSubCauseCode; + +/* mapem_ts_DangerousSituationSubCauseCode */ +typedef long mapem_ts_DangerousSituationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DangerousSituationSubCauseCode; +asn_struct_free_f mapem_ts_DangerousSituationSubCauseCode_free; +asn_struct_print_f mapem_ts_DangerousSituationSubCauseCode_print; +asn_constr_check_f mapem_ts_DangerousSituationSubCauseCode_constraint; +per_type_decoder_f mapem_ts_DangerousSituationSubCauseCode_decode_uper; +per_type_encoder_f mapem_ts_DangerousSituationSubCauseCode_encode_uper; +per_type_decoder_f mapem_ts_DangerousSituationSubCauseCode_decode_aper; +per_type_encoder_f mapem_ts_DangerousSituationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DangerousSituationSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DataParameters.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DataParameters.h new file mode 100644 index 000000000..0158cca90 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DataParameters_H_ +#define _mapem_ts_DataParameters_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_DataParameters */ +typedef struct mapem_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; +} mapem_ts_DataParameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DataParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_DataParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_DataParameters_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DataParameters_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DeltaAltitude.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DeltaAltitude.h new file mode 100644 index 000000000..8edc2403a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DeltaAltitude_H_ +#define _mapem_ts_DeltaAltitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_DeltaAltitude { + mapem_ts_DeltaAltitude_oneCentimeterUp = 1, + mapem_ts_DeltaAltitude_oneCentimeterDown = -1, + mapem_ts_DeltaAltitude_unavailable = 12800 +} e_mapem_ts_DeltaAltitude; + +/* mapem_ts_DeltaAltitude */ +typedef long mapem_ts_DeltaAltitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_DeltaAltitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DeltaAltitude; +asn_struct_free_f mapem_ts_DeltaAltitude_free; +asn_struct_print_f mapem_ts_DeltaAltitude_print; +asn_constr_check_f mapem_ts_DeltaAltitude_constraint; +per_type_decoder_f mapem_ts_DeltaAltitude_decode_uper; +per_type_encoder_f mapem_ts_DeltaAltitude_encode_uper; +per_type_decoder_f mapem_ts_DeltaAltitude_decode_aper; +per_type_encoder_f mapem_ts_DeltaAltitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DeltaAltitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DeltaAngle.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DeltaAngle.h new file mode 100644 index 000000000..005c75afc --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DeltaAngle_H_ +#define _mapem_ts_DeltaAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_DeltaAngle */ +typedef long mapem_ts_DeltaAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_DeltaAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DeltaAngle; +asn_struct_free_f mapem_ts_DeltaAngle_free; +asn_struct_print_f mapem_ts_DeltaAngle_print; +asn_constr_check_f mapem_ts_DeltaAngle_constraint; +per_type_decoder_f mapem_ts_DeltaAngle_decode_uper; +per_type_encoder_f mapem_ts_DeltaAngle_encode_uper; +per_type_decoder_f mapem_ts_DeltaAngle_decode_aper; +per_type_encoder_f mapem_ts_DeltaAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DeltaAngle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DeltaLatitude.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DeltaLatitude.h new file mode 100644 index 000000000..c359d3dc8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DeltaLatitude_H_ +#define _mapem_ts_DeltaLatitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_DeltaLatitude { + mapem_ts_DeltaLatitude_oneMicrodegreeNorth = 10, + mapem_ts_DeltaLatitude_oneMicrodegreeSouth = -10, + mapem_ts_DeltaLatitude_unavailable = 131072 +} e_mapem_ts_DeltaLatitude; + +/* mapem_ts_DeltaLatitude */ +typedef long mapem_ts_DeltaLatitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_DeltaLatitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DeltaLatitude; +asn_struct_free_f mapem_ts_DeltaLatitude_free; +asn_struct_print_f mapem_ts_DeltaLatitude_print; +asn_constr_check_f mapem_ts_DeltaLatitude_constraint; +per_type_decoder_f mapem_ts_DeltaLatitude_decode_uper; +per_type_encoder_f mapem_ts_DeltaLatitude_encode_uper; +per_type_decoder_f mapem_ts_DeltaLatitude_decode_aper; +per_type_encoder_f mapem_ts_DeltaLatitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DeltaLatitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DeltaLongitude.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DeltaLongitude.h new file mode 100644 index 000000000..5e8efa41d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DeltaLongitude_H_ +#define _mapem_ts_DeltaLongitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_DeltaLongitude { + mapem_ts_DeltaLongitude_oneMicrodegreeEast = 10, + mapem_ts_DeltaLongitude_oneMicrodegreeWest = -10, + mapem_ts_DeltaLongitude_unavailable = 131072 +} e_mapem_ts_DeltaLongitude; + +/* mapem_ts_DeltaLongitude */ +typedef long mapem_ts_DeltaLongitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_DeltaLongitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DeltaLongitude; +asn_struct_free_f mapem_ts_DeltaLongitude_free; +asn_struct_print_f mapem_ts_DeltaLongitude_print; +asn_constr_check_f mapem_ts_DeltaLongitude_constraint; +per_type_decoder_f mapem_ts_DeltaLongitude_decode_uper; +per_type_encoder_f mapem_ts_DeltaLongitude_encode_uper; +per_type_decoder_f mapem_ts_DeltaLongitude_decode_aper; +per_type_encoder_f mapem_ts_DeltaLongitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DeltaLongitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DeltaReferencePosition.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DeltaReferencePosition.h new file mode 100644 index 000000000..773a84e3f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DeltaReferencePosition_H_ +#define _mapem_ts_DeltaReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_DeltaLatitude.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_DeltaLongitude.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_DeltaAltitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_DeltaReferencePosition */ +typedef struct mapem_ts_DeltaReferencePosition { + mapem_ts_DeltaLatitude_t deltaLatitude; + mapem_ts_DeltaLongitude_t deltaLongitude; + mapem_ts_DeltaAltitude_t deltaAltitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_DeltaReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DeltaReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_DeltaReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_DeltaReferencePosition_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DeltaReferencePosition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DeltaTime.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DeltaTime.h new file mode 100644 index 000000000..f74ea8aa6 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DeltaTime_H_ +#define _mapem_ts_DeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_DeltaTime */ +typedef long mapem_ts_DeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_DeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DeltaTime; +asn_struct_free_f mapem_ts_DeltaTime_free; +asn_struct_print_f mapem_ts_DeltaTime_print; +asn_constr_check_f mapem_ts_DeltaTime_constraint; +per_type_decoder_f mapem_ts_DeltaTime_decode_uper; +per_type_encoder_f mapem_ts_DeltaTime_encode_uper; +per_type_decoder_f mapem_ts_DeltaTime_decode_aper; +per_type_encoder_f mapem_ts_DeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DeltaTime_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DescriptiveName.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DescriptiveName.h new file mode 100644 index 000000000..c9cf77909 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DescriptiveName_H_ +#define _mapem_ts_DescriptiveName_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_DescriptiveName */ +typedef IA5String_t mapem_ts_DescriptiveName_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_DescriptiveName_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DescriptiveName; +asn_struct_free_f mapem_ts_DescriptiveName_free; +asn_struct_print_f mapem_ts_DescriptiveName_print; +asn_constr_check_f mapem_ts_DescriptiveName_constraint; +per_type_decoder_f mapem_ts_DescriptiveName_decode_uper; +per_type_encoder_f mapem_ts_DescriptiveName_encode_uper; +per_type_decoder_f mapem_ts_DescriptiveName_decode_aper; +per_type_encoder_f mapem_ts_DescriptiveName_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DescriptiveName_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DigitalMap.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DigitalMap.h new file mode 100644 index 000000000..d9c184ace --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DigitalMap_H_ +#define _mapem_ts_DigitalMap_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_ReferencePosition; + +/* mapem_ts_DigitalMap */ +typedef struct mapem_ts_DigitalMap { + A_SEQUENCE_OF(struct mapem_ts_ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_DigitalMap_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DigitalMap; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_ReferencePosition.h" + +#endif /* _mapem_ts_DigitalMap_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DriveDirection.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DriveDirection.h new file mode 100644 index 000000000..3c5c5b841 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DriveDirection_H_ +#define _mapem_ts_DriveDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_DriveDirection { + mapem_ts_DriveDirection_forward = 0, + mapem_ts_DriveDirection_backward = 1, + mapem_ts_DriveDirection_unavailable = 2 +} e_mapem_ts_DriveDirection; + +/* mapem_ts_DriveDirection */ +typedef long mapem_ts_DriveDirection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DriveDirection; +asn_struct_free_f mapem_ts_DriveDirection_free; +asn_struct_print_f mapem_ts_DriveDirection_print; +asn_constr_check_f mapem_ts_DriveDirection_constraint; +per_type_decoder_f mapem_ts_DriveDirection_decode_uper; +per_type_encoder_f mapem_ts_DriveDirection_encode_uper; +per_type_decoder_f mapem_ts_DriveDirection_decode_aper; +per_type_encoder_f mapem_ts_DriveDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DriveDirection_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DrivenLineOffsetLg.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DrivenLineOffsetLg.h new file mode 100644 index 000000000..2d97e5708 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DrivenLineOffsetLg_H_ +#define _mapem_ts_DrivenLineOffsetLg_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_DrivenLineOffsetLg */ +typedef long mapem_ts_DrivenLineOffsetLg_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_DrivenLineOffsetLg_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DrivenLineOffsetLg; +asn_struct_free_f mapem_ts_DrivenLineOffsetLg_free; +asn_struct_print_f mapem_ts_DrivenLineOffsetLg_print; +asn_constr_check_f mapem_ts_DrivenLineOffsetLg_constraint; +per_type_decoder_f mapem_ts_DrivenLineOffsetLg_decode_uper; +per_type_encoder_f mapem_ts_DrivenLineOffsetLg_encode_uper; +per_type_decoder_f mapem_ts_DrivenLineOffsetLg_decode_aper; +per_type_encoder_f mapem_ts_DrivenLineOffsetLg_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DrivenLineOffsetLg_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DrivenLineOffsetSm.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DrivenLineOffsetSm.h new file mode 100644 index 000000000..373674e7e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DrivenLineOffsetSm_H_ +#define _mapem_ts_DrivenLineOffsetSm_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_DrivenLineOffsetSm */ +typedef long mapem_ts_DrivenLineOffsetSm_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_DrivenLineOffsetSm_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DrivenLineOffsetSm; +asn_struct_free_f mapem_ts_DrivenLineOffsetSm_free; +asn_struct_print_f mapem_ts_DrivenLineOffsetSm_print; +asn_constr_check_f mapem_ts_DrivenLineOffsetSm_constraint; +per_type_decoder_f mapem_ts_DrivenLineOffsetSm_decode_uper; +per_type_encoder_f mapem_ts_DrivenLineOffsetSm_encode_uper; +per_type_decoder_f mapem_ts_DrivenLineOffsetSm_decode_aper; +per_type_encoder_f mapem_ts_DrivenLineOffsetSm_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DrivenLineOffsetSm_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DrivingLaneStatus.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_DrivingLaneStatus.h new file mode 100644 index 000000000..d8cb32f02 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_DrivingLaneStatus_H_ +#define _mapem_ts_DrivingLaneStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_DrivingLaneStatus */ +typedef BIT_STRING_t mapem_ts_DrivingLaneStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_DrivingLaneStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_DrivingLaneStatus; +asn_struct_free_f mapem_ts_DrivingLaneStatus_free; +asn_struct_print_f mapem_ts_DrivingLaneStatus_print; +asn_constr_check_f mapem_ts_DrivingLaneStatus_constraint; +per_type_decoder_f mapem_ts_DrivingLaneStatus_decode_uper; +per_type_encoder_f mapem_ts_DrivingLaneStatus_encode_uper; +per_type_decoder_f mapem_ts_DrivingLaneStatus_decode_aper; +per_type_encoder_f mapem_ts_DrivingLaneStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_DrivingLaneStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EXTERNAL.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EXTERNAL.h new file mode 100644 index 000000000..ee12f5bba --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_EXTERNAL_H_ +#define _mapem_ts_EXTERNAL_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_EXTERNAL__encoding_PR { + mapem_ts_EXTERNAL__encoding_PR_NOTHING, /* No components present */ + mapem_ts_EXTERNAL__encoding_PR_single_ASN1_type, + mapem_ts_EXTERNAL__encoding_PR_octet_aligned, + mapem_ts_EXTERNAL__encoding_PR_arbitrary +} mapem_ts_EXTERNAL__encoding_PR; + +/* mapem_ts_EXTERNAL */ +typedef struct mapem_ts_EXTERNAL { + OBJECT_IDENTIFIER_t *direct_reference; /* OPTIONAL */ + long *indirect_reference; /* OPTIONAL */ + ObjectDescriptor_t *data_value_descriptor; /* OPTIONAL */ + struct mapem_ts_EXTERNAL__encoding { + mapem_ts_EXTERNAL__encoding_PR present; + union mapem_ts_EXTERNAL__mapem_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; +} mapem_ts_EXTERNAL_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_EXTERNAL; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_EXTERNAL_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Elevation.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Elevation.h new file mode 100644 index 000000000..d4ff62ca5 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Elevation_H_ +#define _mapem_ts_Elevation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_Elevation */ +typedef long mapem_ts_Elevation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_Elevation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Elevation; +asn_struct_free_f mapem_ts_Elevation_free; +asn_struct_print_f mapem_ts_Elevation_print; +asn_constr_check_f mapem_ts_Elevation_constraint; +per_type_decoder_f mapem_ts_Elevation_decode_uper; +per_type_encoder_f mapem_ts_Elevation_encode_uper; +per_type_decoder_f mapem_ts_Elevation_decode_aper; +per_type_encoder_f mapem_ts_Elevation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Elevation_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ElevationConfidence.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ElevationConfidence.h new file mode 100644 index 000000000..32745b14c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ElevationConfidence_H_ +#define _mapem_ts_ElevationConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_ElevationConfidence { + mapem_ts_ElevationConfidence_unavailable = 0, + mapem_ts_ElevationConfidence_elev_500_00 = 1, + mapem_ts_ElevationConfidence_elev_200_00 = 2, + mapem_ts_ElevationConfidence_elev_100_00 = 3, + mapem_ts_ElevationConfidence_elev_050_00 = 4, + mapem_ts_ElevationConfidence_elev_020_00 = 5, + mapem_ts_ElevationConfidence_elev_010_00 = 6, + mapem_ts_ElevationConfidence_elev_005_00 = 7, + mapem_ts_ElevationConfidence_elev_002_00 = 8, + mapem_ts_ElevationConfidence_elev_001_00 = 9, + mapem_ts_ElevationConfidence_elev_000_50 = 10, + mapem_ts_ElevationConfidence_elev_000_20 = 11, + mapem_ts_ElevationConfidence_elev_000_10 = 12, + mapem_ts_ElevationConfidence_elev_000_05 = 13, + mapem_ts_ElevationConfidence_elev_000_02 = 14, + mapem_ts_ElevationConfidence_elev_000_01 = 15 +} e_mapem_ts_ElevationConfidence; + +/* mapem_ts_ElevationConfidence */ +typedef long mapem_ts_ElevationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_ElevationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ElevationConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_ElevationConfidence_specs_1; +asn_struct_free_f mapem_ts_ElevationConfidence_free; +asn_struct_print_f mapem_ts_ElevationConfidence_print; +asn_constr_check_f mapem_ts_ElevationConfidence_constraint; +per_type_decoder_f mapem_ts_ElevationConfidence_decode_uper; +per_type_encoder_f mapem_ts_ElevationConfidence_encode_uper; +per_type_decoder_f mapem_ts_ElevationConfidence_decode_aper; +per_type_encoder_f mapem_ts_ElevationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_ElevationConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EmbarkationStatus.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EmbarkationStatus.h new file mode 100644 index 000000000..0d8c82d27 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_EmbarkationStatus_H_ +#define _mapem_ts_EmbarkationStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_EmbarkationStatus */ +typedef BOOLEAN_t mapem_ts_EmbarkationStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_EmbarkationStatus; +asn_struct_free_f mapem_ts_EmbarkationStatus_free; +asn_struct_print_f mapem_ts_EmbarkationStatus_print; +asn_constr_check_f mapem_ts_EmbarkationStatus_constraint; +per_type_decoder_f mapem_ts_EmbarkationStatus_decode_uper; +per_type_encoder_f mapem_ts_EmbarkationStatus_encode_uper; +per_type_decoder_f mapem_ts_EmbarkationStatus_decode_aper; +per_type_encoder_f mapem_ts_EmbarkationStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_EmbarkationStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EmergencyPriority.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EmergencyPriority.h new file mode 100644 index 000000000..a81a08dcb --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_EmergencyPriority_H_ +#define _mapem_ts_EmergencyPriority_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_EmergencyPriority { + mapem_ts_EmergencyPriority_requestForRightOfWay = 0, + mapem_ts_EmergencyPriority_requestForFreeCrossingAtATrafficLight = 1 +} e_mapem_ts_EmergencyPriority; + +/* mapem_ts_EmergencyPriority */ +typedef BIT_STRING_t mapem_ts_EmergencyPriority_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_EmergencyPriority; +asn_struct_free_f mapem_ts_EmergencyPriority_free; +asn_struct_print_f mapem_ts_EmergencyPriority_print; +asn_constr_check_f mapem_ts_EmergencyPriority_constraint; +per_type_decoder_f mapem_ts_EmergencyPriority_decode_uper; +per_type_encoder_f mapem_ts_EmergencyPriority_encode_uper; +per_type_decoder_f mapem_ts_EmergencyPriority_decode_aper; +per_type_encoder_f mapem_ts_EmergencyPriority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_EmergencyPriority_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EmergencyVehicleApproachingSubCauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EmergencyVehicleApproachingSubCauseCode.h new file mode 100644 index 000000000..b058f1edf --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_EmergencyVehicleApproachingSubCauseCode_H_ +#define _mapem_ts_EmergencyVehicleApproachingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_EmergencyVehicleApproachingSubCauseCode { + mapem_ts_EmergencyVehicleApproachingSubCauseCode_unavailable = 0, + mapem_ts_EmergencyVehicleApproachingSubCauseCode_emergencyVehicleApproaching = 1, + mapem_ts_EmergencyVehicleApproachingSubCauseCode_prioritizedVehicleApproaching = 2 +} e_mapem_ts_EmergencyVehicleApproachingSubCauseCode; + +/* mapem_ts_EmergencyVehicleApproachingSubCauseCode */ +typedef long mapem_ts_EmergencyVehicleApproachingSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_EmergencyVehicleApproachingSubCauseCode; +asn_struct_free_f mapem_ts_EmergencyVehicleApproachingSubCauseCode_free; +asn_struct_print_f mapem_ts_EmergencyVehicleApproachingSubCauseCode_print; +asn_constr_check_f mapem_ts_EmergencyVehicleApproachingSubCauseCode_constraint; +per_type_decoder_f mapem_ts_EmergencyVehicleApproachingSubCauseCode_decode_uper; +per_type_encoder_f mapem_ts_EmergencyVehicleApproachingSubCauseCode_encode_uper; +per_type_decoder_f mapem_ts_EmergencyVehicleApproachingSubCauseCode_decode_aper; +per_type_encoder_f mapem_ts_EmergencyVehicleApproachingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_EmergencyVehicleApproachingSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EmissionType.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EmissionType.h new file mode 100644 index 000000000..7915d4bd0 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_EmissionType_H_ +#define _mapem_ts_EmissionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_EmissionType { + mapem_ts_EmissionType_euro1 = 0, + mapem_ts_EmissionType_euro2 = 1, + mapem_ts_EmissionType_euro3 = 2, + mapem_ts_EmissionType_euro4 = 3, + mapem_ts_EmissionType_euro5 = 4, + mapem_ts_EmissionType_euro6 = 5 + /* + * Enumeration is extensible + */ +} e_mapem_ts_EmissionType; + +/* mapem_ts_EmissionType */ +typedef long mapem_ts_EmissionType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_EmissionType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_EmissionType; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_EmissionType_specs_1; +asn_struct_free_f mapem_ts_EmissionType_free; +asn_struct_print_f mapem_ts_EmissionType_print; +asn_constr_check_f mapem_ts_EmissionType_constraint; +per_type_decoder_f mapem_ts_EmissionType_decode_uper; +per_type_encoder_f mapem_ts_EmissionType_encode_uper; +per_type_decoder_f mapem_ts_EmissionType_decode_aper; +per_type_encoder_f mapem_ts_EmissionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_EmissionType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EnabledLaneList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EnabledLaneList.h new file mode 100644 index 000000000..a2f821b0d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_EnabledLaneList_H_ +#define _mapem_ts_EnabledLaneList_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_EnabledLaneList */ +typedef struct mapem_ts_EnabledLaneList { + A_SEQUENCE_OF(mapem_ts_LaneID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_EnabledLaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_EnabledLaneList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_EnabledLaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_EnabledLaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_EnabledLaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_EnabledLaneList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EnergyStorageType.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EnergyStorageType.h new file mode 100644 index 000000000..5df1e6ab4 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_EnergyStorageType_H_ +#define _mapem_ts_EnergyStorageType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_EnergyStorageType { + mapem_ts_EnergyStorageType_hydrogenStorage = 0, + mapem_ts_EnergyStorageType_electricEnergyStorage = 1, + mapem_ts_EnergyStorageType_liquidPropaneGas = 2, + mapem_ts_EnergyStorageType_compressedNaturalGas = 3, + mapem_ts_EnergyStorageType_diesel = 4, + mapem_ts_EnergyStorageType_gasoline = 5, + mapem_ts_EnergyStorageType_ammonia = 6 +} e_mapem_ts_EnergyStorageType; + +/* mapem_ts_EnergyStorageType */ +typedef BIT_STRING_t mapem_ts_EnergyStorageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_EnergyStorageType; +asn_struct_free_f mapem_ts_EnergyStorageType_free; +asn_struct_print_f mapem_ts_EnergyStorageType_print; +asn_constr_check_f mapem_ts_EnergyStorageType_constraint; +per_type_decoder_f mapem_ts_EnergyStorageType_decode_uper; +per_type_encoder_f mapem_ts_EnergyStorageType_encode_uper; +per_type_decoder_f mapem_ts_EnergyStorageType_decode_aper; +per_type_encoder_f mapem_ts_EnergyStorageType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_EnergyStorageType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EuVehicleCategoryCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EuVehicleCategoryCode.h new file mode 100644 index 000000000..4ce7b8307 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EuVehicleCategoryCode.h @@ -0,0 +1,61 @@ +/* + * 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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_EuVehicleCategoryCode_H_ +#define _mapem_ts_EuVehicleCategoryCode_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_EuVehicleCategoryL.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_EuVehicleCategoryM.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_EuVehicleCategoryN.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_EuVehicleCategoryO.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_EuVehicleCategoryCode_PR { + mapem_ts_EuVehicleCategoryCode_PR_NOTHING, /* No components present */ + mapem_ts_EuVehicleCategoryCode_PR_euVehicleCategoryL, + mapem_ts_EuVehicleCategoryCode_PR_euVehicleCategoryM, + mapem_ts_EuVehicleCategoryCode_PR_euVehicleCategoryN, + mapem_ts_EuVehicleCategoryCode_PR_euVehicleCategoryO, + mapem_ts_EuVehicleCategoryCode_PR_euVehilcleCategoryT, + mapem_ts_EuVehicleCategoryCode_PR_euVehilcleCategoryG +} mapem_ts_EuVehicleCategoryCode_PR; + +/* mapem_ts_EuVehicleCategoryCode */ +typedef struct mapem_ts_EuVehicleCategoryCode { + mapem_ts_EuVehicleCategoryCode_PR present; + union mapem_ts_EuVehicleCategoryCode_u { + mapem_ts_EuVehicleCategoryL_t euVehicleCategoryL; + mapem_ts_EuVehicleCategoryM_t euVehicleCategoryM; + mapem_ts_EuVehicleCategoryN_t euVehicleCategoryN; + mapem_ts_EuVehicleCategoryO_t euVehicleCategoryO; + NULL_t euVehilcleCategoryT; + NULL_t euVehilcleCategoryG; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_EuVehicleCategoryCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_EuVehicleCategoryCode; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_EuVehicleCategoryCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EuVehicleCategoryL.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EuVehicleCategoryL.h new file mode 100644 index 000000000..3488d7a83 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_EuVehicleCategoryL_H_ +#define _mapem_ts_EuVehicleCategoryL_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_EuVehicleCategoryL { + mapem_ts_EuVehicleCategoryL_l1 = 0, + mapem_ts_EuVehicleCategoryL_l2 = 1, + mapem_ts_EuVehicleCategoryL_l3 = 2, + mapem_ts_EuVehicleCategoryL_l4 = 3, + mapem_ts_EuVehicleCategoryL_l5 = 4, + mapem_ts_EuVehicleCategoryL_l6 = 5, + mapem_ts_EuVehicleCategoryL_l7 = 6 +} e_mapem_ts_EuVehicleCategoryL; + +/* mapem_ts_EuVehicleCategoryL */ +typedef long mapem_ts_EuVehicleCategoryL_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_EuVehicleCategoryL_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_EuVehicleCategoryL; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_EuVehicleCategoryL_specs_1; +asn_struct_free_f mapem_ts_EuVehicleCategoryL_free; +asn_struct_print_f mapem_ts_EuVehicleCategoryL_print; +asn_constr_check_f mapem_ts_EuVehicleCategoryL_constraint; +per_type_decoder_f mapem_ts_EuVehicleCategoryL_decode_uper; +per_type_encoder_f mapem_ts_EuVehicleCategoryL_encode_uper; +per_type_decoder_f mapem_ts_EuVehicleCategoryL_decode_aper; +per_type_encoder_f mapem_ts_EuVehicleCategoryL_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_EuVehicleCategoryL_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EuVehicleCategoryM.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EuVehicleCategoryM.h new file mode 100644 index 000000000..37dc2710a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_EuVehicleCategoryM_H_ +#define _mapem_ts_EuVehicleCategoryM_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_EuVehicleCategoryM { + mapem_ts_EuVehicleCategoryM_m1 = 0, + mapem_ts_EuVehicleCategoryM_m2 = 1, + mapem_ts_EuVehicleCategoryM_m3 = 2 +} e_mapem_ts_EuVehicleCategoryM; + +/* mapem_ts_EuVehicleCategoryM */ +typedef long mapem_ts_EuVehicleCategoryM_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_EuVehicleCategoryM_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_EuVehicleCategoryM; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_EuVehicleCategoryM_specs_1; +asn_struct_free_f mapem_ts_EuVehicleCategoryM_free; +asn_struct_print_f mapem_ts_EuVehicleCategoryM_print; +asn_constr_check_f mapem_ts_EuVehicleCategoryM_constraint; +per_type_decoder_f mapem_ts_EuVehicleCategoryM_decode_uper; +per_type_encoder_f mapem_ts_EuVehicleCategoryM_encode_uper; +per_type_decoder_f mapem_ts_EuVehicleCategoryM_decode_aper; +per_type_encoder_f mapem_ts_EuVehicleCategoryM_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_EuVehicleCategoryM_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EuVehicleCategoryN.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EuVehicleCategoryN.h new file mode 100644 index 000000000..c073186ea --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_EuVehicleCategoryN_H_ +#define _mapem_ts_EuVehicleCategoryN_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_EuVehicleCategoryN { + mapem_ts_EuVehicleCategoryN_n1 = 0, + mapem_ts_EuVehicleCategoryN_n2 = 1, + mapem_ts_EuVehicleCategoryN_n3 = 2 +} e_mapem_ts_EuVehicleCategoryN; + +/* mapem_ts_EuVehicleCategoryN */ +typedef long mapem_ts_EuVehicleCategoryN_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_EuVehicleCategoryN_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_EuVehicleCategoryN; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_EuVehicleCategoryN_specs_1; +asn_struct_free_f mapem_ts_EuVehicleCategoryN_free; +asn_struct_print_f mapem_ts_EuVehicleCategoryN_print; +asn_constr_check_f mapem_ts_EuVehicleCategoryN_constraint; +per_type_decoder_f mapem_ts_EuVehicleCategoryN_decode_uper; +per_type_encoder_f mapem_ts_EuVehicleCategoryN_encode_uper; +per_type_decoder_f mapem_ts_EuVehicleCategoryN_decode_aper; +per_type_encoder_f mapem_ts_EuVehicleCategoryN_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_EuVehicleCategoryN_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EuVehicleCategoryO.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EuVehicleCategoryO.h new file mode 100644 index 000000000..9a3a151c0 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_EuVehicleCategoryO_H_ +#define _mapem_ts_EuVehicleCategoryO_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_EuVehicleCategoryO { + mapem_ts_EuVehicleCategoryO_o1 = 0, + mapem_ts_EuVehicleCategoryO_o2 = 1, + mapem_ts_EuVehicleCategoryO_o3 = 2, + mapem_ts_EuVehicleCategoryO_o4 = 3 +} e_mapem_ts_EuVehicleCategoryO; + +/* mapem_ts_EuVehicleCategoryO */ +typedef long mapem_ts_EuVehicleCategoryO_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_EuVehicleCategoryO_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_EuVehicleCategoryO; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_EuVehicleCategoryO_specs_1; +asn_struct_free_f mapem_ts_EuVehicleCategoryO_free; +asn_struct_print_f mapem_ts_EuVehicleCategoryO_print; +asn_constr_check_f mapem_ts_EuVehicleCategoryO_constraint; +per_type_decoder_f mapem_ts_EuVehicleCategoryO_decode_uper; +per_type_encoder_f mapem_ts_EuVehicleCategoryO_encode_uper; +per_type_decoder_f mapem_ts_EuVehicleCategoryO_decode_aper; +per_type_encoder_f mapem_ts_EuVehicleCategoryO_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_EuVehicleCategoryO_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EventHistory.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EventHistory.h new file mode 100644 index 000000000..21566969c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_EventHistory_H_ +#define _mapem_ts_EventHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_EventPoint; + +/* mapem_ts_EventHistory */ +typedef struct mapem_ts_EventHistory { + A_SEQUENCE_OF(struct mapem_ts_EventPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_EventHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_EventHistory; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_EventPoint.h" + +#endif /* _mapem_ts_EventHistory_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EventPoint.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_EventPoint.h new file mode 100644 index 000000000..45e8b62be --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_EventPoint_H_ +#define _mapem_ts_EventPoint_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_DeltaReferencePosition.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_PathDeltaTime.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_InformationQuality.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_EventPoint */ +typedef struct mapem_ts_EventPoint { + mapem_ts_DeltaReferencePosition_t eventPosition; + mapem_ts_PathDeltaTime_t *eventDeltaTime; /* OPTIONAL */ + mapem_ts_InformationQuality_t informationQuality; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_EventPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_EventPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_EventPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_EventPoint_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_EventPoint_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ExceptionalCondition.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ExceptionalCondition.h new file mode 100644 index 000000000..cd09c41cf --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ExceptionalCondition_H_ +#define _mapem_ts_ExceptionalCondition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_ExceptionalCondition { + mapem_ts_ExceptionalCondition_unknown = 0, + mapem_ts_ExceptionalCondition_publicTransportPriority = 1, + mapem_ts_ExceptionalCondition_emergencyVehiclePriority = 2, + mapem_ts_ExceptionalCondition_trainPriority = 3, + mapem_ts_ExceptionalCondition_bridgeOpen = 4, + mapem_ts_ExceptionalCondition_vehicleHeight = 5, + mapem_ts_ExceptionalCondition_weather = 6, + mapem_ts_ExceptionalCondition_trafficJam = 7, + mapem_ts_ExceptionalCondition_tunnelClosure = 8, + mapem_ts_ExceptionalCondition_meteringActive = 9, + mapem_ts_ExceptionalCondition_truckPriority = 10, + mapem_ts_ExceptionalCondition_bicyclePlatoonPriority = 11, + mapem_ts_ExceptionalCondition_vehiclePlatoonPriority = 12 + /* + * Enumeration is extensible + */ +} e_mapem_ts_ExceptionalCondition; + +/* mapem_ts_ExceptionalCondition */ +typedef long mapem_ts_ExceptionalCondition_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_ExceptionalCondition_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ExceptionalCondition; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_ExceptionalCondition_specs_1; +asn_struct_free_f mapem_ts_ExceptionalCondition_free; +asn_struct_print_f mapem_ts_ExceptionalCondition_print; +asn_constr_check_f mapem_ts_ExceptionalCondition_constraint; +per_type_decoder_f mapem_ts_ExceptionalCondition_decode_uper; +per_type_encoder_f mapem_ts_ExceptionalCondition_encode_uper; +per_type_decoder_f mapem_ts_ExceptionalCondition_decode_aper; +per_type_encoder_f mapem_ts_ExceptionalCondition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_ExceptionalCondition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ExteriorLights.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ExteriorLights.h new file mode 100644 index 000000000..f7dbd44c1 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ExteriorLights_H_ +#define _mapem_ts_ExteriorLights_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_ExteriorLights { + mapem_ts_ExteriorLights_lowBeamHeadlightsOn = 0, + mapem_ts_ExteriorLights_highBeamHeadlightsOn = 1, + mapem_ts_ExteriorLights_leftTurnSignalOn = 2, + mapem_ts_ExteriorLights_rightTurnSignalOn = 3, + mapem_ts_ExteriorLights_daytimeRunningLightsOn = 4, + mapem_ts_ExteriorLights_reverseLightOn = 5, + mapem_ts_ExteriorLights_fogLightOn = 6, + mapem_ts_ExteriorLights_parkingLightsOn = 7 +} e_mapem_ts_ExteriorLights; + +/* mapem_ts_ExteriorLights */ +typedef BIT_STRING_t mapem_ts_ExteriorLights_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ExteriorLights; +asn_struct_free_f mapem_ts_ExteriorLights_free; +asn_struct_print_f mapem_ts_ExteriorLights_print; +asn_constr_check_f mapem_ts_ExteriorLights_constraint; +per_type_decoder_f mapem_ts_ExteriorLights_decode_uper; +per_type_encoder_f mapem_ts_ExteriorLights_encode_uper; +per_type_decoder_f mapem_ts_ExteriorLights_decode_aper; +per_type_encoder_f mapem_ts_ExteriorLights_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_ExteriorLights_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_FreightContainerData.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_FreightContainerData.h new file mode 100644 index 000000000..6e2199f10 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_FreightContainerData_H_ +#define _mapem_ts_FreightContainerData_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_FreightContainerData */ +typedef struct mapem_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; +} mapem_ts_FreightContainerData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_FreightContainerData; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_FreightContainerData_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_FreightContainerData_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_FreightContainerData_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_FuelType.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_FuelType.h new file mode 100644 index 000000000..28860267f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_FuelType_H_ +#define _mapem_ts_FuelType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_FuelType */ +typedef long mapem_ts_FuelType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_FuelType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_FuelType; +asn_struct_free_f mapem_ts_FuelType_free; +asn_struct_print_f mapem_ts_FuelType_print; +asn_constr_check_f mapem_ts_FuelType_constraint; +per_type_decoder_f mapem_ts_FuelType_decode_uper; +per_type_encoder_f mapem_ts_FuelType_encode_uper; +per_type_decoder_f mapem_ts_FuelType_decode_aper; +per_type_encoder_f mapem_ts_FuelType_encode_aper; +#define mapem_ts_FuelType_unknownFuel ((mapem_ts_FuelType_t)0) +#define mapem_ts_FuelType_gasoline ((mapem_ts_FuelType_t)1) +#define mapem_ts_FuelType_ethanol ((mapem_ts_FuelType_t)2) +#define mapem_ts_FuelType_diesel ((mapem_ts_FuelType_t)3) +#define mapem_ts_FuelType_electric ((mapem_ts_FuelType_t)4) +#define mapem_ts_FuelType_hybrid ((mapem_ts_FuelType_t)5) +#define mapem_ts_FuelType_hydrogen ((mapem_ts_FuelType_t)6) +#define mapem_ts_FuelType_natGasLiquid ((mapem_ts_FuelType_t)7) +#define mapem_ts_FuelType_natGasComp ((mapem_ts_FuelType_t)8) +#define mapem_ts_FuelType_propane ((mapem_ts_FuelType_t)9) + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_FuelType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_FullPositionVector.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_FullPositionVector.h new file mode 100644 index 000000000..fe6126857 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_FullPositionVector_H_ +#define _mapem_ts_FullPositionVector_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_Longitude.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Latitude.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Elevation.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_HeadingDSRC.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_TimeConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_DDateTime; +struct mapem_ts_TransmissionAndSpeed; +struct mapem_ts_PositionalAccuracy; +struct mapem_ts_PositionConfidenceSet; +struct mapem_ts_SpeedandHeadingandThrottleConfidence; + +/* mapem_ts_FullPositionVector */ +typedef struct mapem_ts_FullPositionVector { + struct mapem_ts_DDateTime *utcTime; /* OPTIONAL */ + mapem_ts_Longitude_t Long; + mapem_ts_Latitude_t lat; + mapem_ts_Elevation_t *elevation; /* OPTIONAL */ + mapem_ts_HeadingDSRC_t *heading; /* OPTIONAL */ + struct mapem_ts_TransmissionAndSpeed *speed; /* OPTIONAL */ + struct mapem_ts_PositionalAccuracy *posAccuracy; /* OPTIONAL */ + mapem_ts_TimeConfidence_t *timeConfidence; /* OPTIONAL */ + struct mapem_ts_PositionConfidenceSet *posConfidence; /* OPTIONAL */ + struct mapem_ts_SpeedandHeadingandThrottleConfidence *speedConfidence; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_FullPositionVector_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_FullPositionVector; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_FullPositionVector_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_FullPositionVector_1[10]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_DDateTime.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_TransmissionAndSpeed.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_PositionalAccuracy.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_PositionConfidenceSet.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_SpeedandHeadingandThrottleConfidence.h" + +#endif /* _mapem_ts_FullPositionVector_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_GNSSstatus.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_GNSSstatus.h new file mode 100644 index 000000000..fae0feb78 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_GNSSstatus_H_ +#define _mapem_ts_GNSSstatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_GNSSstatus { + mapem_ts_GNSSstatus_unavailable = 0, + mapem_ts_GNSSstatus_isHealthy = 1, + mapem_ts_GNSSstatus_isMonitored = 2, + mapem_ts_GNSSstatus_baseStationType = 3, + mapem_ts_GNSSstatus_aPDOPofUnder5 = 4, + mapem_ts_GNSSstatus_inViewOfUnder5 = 5, + mapem_ts_GNSSstatus_localCorrectionsPresent = 6, + mapem_ts_GNSSstatus_networkCorrectionsPresent = 7 +} e_mapem_ts_GNSSstatus; + +/* mapem_ts_GNSSstatus */ +typedef BIT_STRING_t mapem_ts_GNSSstatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_GNSSstatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_GNSSstatus; +asn_struct_free_f mapem_ts_GNSSstatus_free; +asn_struct_print_f mapem_ts_GNSSstatus_print; +asn_constr_check_f mapem_ts_GNSSstatus_constraint; +per_type_decoder_f mapem_ts_GNSSstatus_decode_uper; +per_type_encoder_f mapem_ts_GNSSstatus_encode_uper; +per_type_decoder_f mapem_ts_GNSSstatus_decode_aper; +per_type_encoder_f mapem_ts_GNSSstatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_GNSSstatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_GenericLane.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_GenericLane.h new file mode 100644 index 000000000..08f3bee52 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_GenericLane_H_ +#define _mapem_ts_GenericLane_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_DescriptiveName.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_ApproachID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_AllowedManeuvers.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_NodeListXY.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_ConnectsToList; +struct mapem_ts_OverlayLaneList; +struct mapem_ts_Reg_GenericLane; + +/* mapem_ts_GenericLane */ +typedef struct mapem_ts_GenericLane { + mapem_ts_LaneID_t laneID; + mapem_ts_DescriptiveName_t *name; /* OPTIONAL */ + mapem_ts_ApproachID_t *ingressApproach; /* OPTIONAL */ + mapem_ts_ApproachID_t *egressApproach; /* OPTIONAL */ + mapem_ts_LaneAttributes_t laneAttributes; + mapem_ts_AllowedManeuvers_t *maneuvers; /* OPTIONAL */ + mapem_ts_NodeListXY_t nodeList; + struct mapem_ts_ConnectsToList *connectsTo; /* OPTIONAL */ + struct mapem_ts_OverlayLaneList *overlays; /* OPTIONAL */ + struct mapem_ts_GenericLane__regional { + A_SEQUENCE_OF(struct mapem_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; +} mapem_ts_GenericLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_GenericLane; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_GenericLane_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_GenericLane_1[10]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_ConnectsToList.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_OverlayLaneList.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_GenericLane_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_GeoGraphicalLimit.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_GeoGraphicalLimit.h new file mode 100644 index 000000000..752cd7009 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_GeoGraphicalLimit_H_ +#define _mapem_ts_GeoGraphicalLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_GeoGraphicalLimit { + mapem_ts_GeoGraphicalLimit_globalRestriction = 0, + mapem_ts_GeoGraphicalLimit_regionalRestriction = 1, + mapem_ts_GeoGraphicalLimit_nationalRestriction = 2, + mapem_ts_GeoGraphicalLimit_district = 3, + mapem_ts_GeoGraphicalLimit_issuerCoverageRestriction = 4, + mapem_ts_GeoGraphicalLimit_reservedForCEN1 = 5, + mapem_ts_GeoGraphicalLimit_reservedForCEN2 = 6, + mapem_ts_GeoGraphicalLimit_issuerSpecificRestriction = 7 +} e_mapem_ts_GeoGraphicalLimit; + +/* mapem_ts_GeoGraphicalLimit */ +typedef BIT_STRING_t mapem_ts_GeoGraphicalLimit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_GeoGraphicalLimit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_GeoGraphicalLimit; +asn_struct_free_f mapem_ts_GeoGraphicalLimit_free; +asn_struct_print_f mapem_ts_GeoGraphicalLimit_print; +asn_constr_check_f mapem_ts_GeoGraphicalLimit_constraint; +per_type_decoder_f mapem_ts_GeoGraphicalLimit_decode_uper; +per_type_encoder_f mapem_ts_GeoGraphicalLimit_encode_uper; +per_type_decoder_f mapem_ts_GeoGraphicalLimit_decode_aper; +per_type_encoder_f mapem_ts_GeoGraphicalLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_GeoGraphicalLimit_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_HardShoulderStatus.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_HardShoulderStatus.h new file mode 100644 index 000000000..38519db3f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_HardShoulderStatus_H_ +#define _mapem_ts_HardShoulderStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_HardShoulderStatus { + mapem_ts_HardShoulderStatus_availableForStopping = 0, + mapem_ts_HardShoulderStatus_closed = 1, + mapem_ts_HardShoulderStatus_availableForDriving = 2 +} e_mapem_ts_HardShoulderStatus; + +/* mapem_ts_HardShoulderStatus */ +typedef long mapem_ts_HardShoulderStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_HardShoulderStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_HardShoulderStatus; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_HardShoulderStatus_specs_1; +asn_struct_free_f mapem_ts_HardShoulderStatus_free; +asn_struct_print_f mapem_ts_HardShoulderStatus_print; +asn_constr_check_f mapem_ts_HardShoulderStatus_constraint; +per_type_decoder_f mapem_ts_HardShoulderStatus_decode_uper; +per_type_encoder_f mapem_ts_HardShoulderStatus_encode_uper; +per_type_decoder_f mapem_ts_HardShoulderStatus_decode_aper; +per_type_encoder_f mapem_ts_HardShoulderStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_HardShoulderStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.h new file mode 100644 index 000000000..59bb47bfd --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ +#define _mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode { + mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_unavailable = 0, + mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_wildAnimals = 1, + mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_herdOfAnimals = 2, + mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_smallAnimals = 3, + mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_largeAnimals = 4 +} e_mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode; + +/* mapem_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode */ +typedef long mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode; +asn_struct_free_f mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_free; +asn_struct_print_f mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_print; +asn_constr_check_f mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint; +per_type_decoder_f mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_HazardousLocation-DangerousCurveSubCauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_HazardousLocation-DangerousCurveSubCauseCode.h new file mode 100644 index 000000000..e8732d3ab --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_HazardousLocation_DangerousCurveSubCauseCode_H_ +#define _mapem_ts_HazardousLocation_DangerousCurveSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_HazardousLocation_DangerousCurveSubCauseCode { + mapem_ts_HazardousLocation_DangerousCurveSubCauseCode_unavailable = 0, + mapem_ts_HazardousLocation_DangerousCurveSubCauseCode_dangerousLeftTurnCurve = 1, + mapem_ts_HazardousLocation_DangerousCurveSubCauseCode_dangerousRightTurnCurve = 2, + mapem_ts_HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithUnknownTurningDirection = 3, + mapem_ts_HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithLeftTurn = 4, + mapem_ts_HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithRightTurn = 5 +} e_mapem_ts_HazardousLocation_DangerousCurveSubCauseCode; + +/* mapem_ts_HazardousLocation-DangerousCurveSubCauseCode */ +typedef long mapem_ts_HazardousLocation_DangerousCurveSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_HazardousLocation_DangerousCurveSubCauseCode; +asn_struct_free_f mapem_ts_HazardousLocation_DangerousCurveSubCauseCode_free; +asn_struct_print_f mapem_ts_HazardousLocation_DangerousCurveSubCauseCode_print; +asn_constr_check_f mapem_ts_HazardousLocation_DangerousCurveSubCauseCode_constraint; +per_type_decoder_f mapem_ts_HazardousLocation_DangerousCurveSubCauseCode_decode_uper; +per_type_encoder_f mapem_ts_HazardousLocation_DangerousCurveSubCauseCode_encode_uper; +per_type_decoder_f mapem_ts_HazardousLocation_DangerousCurveSubCauseCode_decode_aper; +per_type_encoder_f mapem_ts_HazardousLocation_DangerousCurveSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_HazardousLocation_DangerousCurveSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.h new file mode 100644 index 000000000..c66d99521 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ +#define _mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode { + mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_unavailable = 0, + mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_shedLoad = 1, + mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfVehicles = 2, + mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfTyres = 3, + mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_bigObjects = 4, + mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_fallenTrees = 5, + mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_hubCaps = 6, + mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_waitingVehicles = 7 +} e_mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode; + +/* mapem_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode */ +typedef long mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode; +asn_struct_free_f mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_free; +asn_struct_print_f mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_print; +asn_constr_check_f mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint; +per_type_decoder_f mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_HazardousLocation-SurfaceConditionSubCauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_HazardousLocation-SurfaceConditionSubCauseCode.h new file mode 100644 index 000000000..57a31b746 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_H_ +#define _mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode { + mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_unavailable = 0, + mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_rockfalls = 1, + mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_earthquakeDamage = 2, + mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_sewerCollapse = 3, + mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_subsidence = 4, + mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_snowDrifts = 5, + mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_stormDamage = 6, + mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_burstPipe = 7, + mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_volcanoEruption = 8, + mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_fallingIce = 9 +} e_mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode; + +/* mapem_ts_HazardousLocation-SurfaceConditionSubCauseCode */ +typedef long mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode; +asn_struct_free_f mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_free; +asn_struct_print_f mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_print; +asn_constr_check_f mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_constraint; +per_type_decoder_f mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_decode_uper; +per_type_encoder_f mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_encode_uper; +per_type_decoder_f mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_decode_aper; +per_type_encoder_f mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Heading.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Heading.h new file mode 100644 index 000000000..95f912378 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Heading.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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Heading_H_ +#define _mapem_ts_Heading_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_HeadingValue.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_HeadingConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_Heading */ +typedef struct mapem_ts_Heading { + mapem_ts_HeadingValue_t headingValue; + mapem_ts_HeadingConfidence_t headingConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_Heading_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Heading; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Heading_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_HeadingConfidence.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_HeadingConfidence.h new file mode 100644 index 000000000..d3d7bab55 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_HeadingConfidence_H_ +#define _mapem_ts_HeadingConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_HeadingConfidence { + mapem_ts_HeadingConfidence_equalOrWithinZeroPointOneDegree = 1, + mapem_ts_HeadingConfidence_equalOrWithinOneDegree = 10, + mapem_ts_HeadingConfidence_outOfRange = 126, + mapem_ts_HeadingConfidence_unavailable = 127 +} e_mapem_ts_HeadingConfidence; + +/* mapem_ts_HeadingConfidence */ +typedef long mapem_ts_HeadingConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_HeadingConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_HeadingConfidence; +asn_struct_free_f mapem_ts_HeadingConfidence_free; +asn_struct_print_f mapem_ts_HeadingConfidence_print; +asn_constr_check_f mapem_ts_HeadingConfidence_constraint; +per_type_decoder_f mapem_ts_HeadingConfidence_decode_uper; +per_type_encoder_f mapem_ts_HeadingConfidence_encode_uper; +per_type_decoder_f mapem_ts_HeadingConfidence_decode_aper; +per_type_encoder_f mapem_ts_HeadingConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_HeadingConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_HeadingConfidenceDSRC.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_HeadingConfidenceDSRC.h new file mode 100644 index 000000000..d408b580b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_HeadingConfidenceDSRC_H_ +#define _mapem_ts_HeadingConfidenceDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_HeadingConfidenceDSRC { + mapem_ts_HeadingConfidenceDSRC_unavailable = 0, + mapem_ts_HeadingConfidenceDSRC_prec10deg = 1, + mapem_ts_HeadingConfidenceDSRC_prec05deg = 2, + mapem_ts_HeadingConfidenceDSRC_prec01deg = 3, + mapem_ts_HeadingConfidenceDSRC_prec0_1deg = 4, + mapem_ts_HeadingConfidenceDSRC_prec0_05deg = 5, + mapem_ts_HeadingConfidenceDSRC_prec0_01deg = 6, + mapem_ts_HeadingConfidenceDSRC_prec0_0125deg = 7 +} e_mapem_ts_HeadingConfidenceDSRC; + +/* mapem_ts_HeadingConfidenceDSRC */ +typedef long mapem_ts_HeadingConfidenceDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_HeadingConfidenceDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_HeadingConfidenceDSRC; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_HeadingConfidenceDSRC_specs_1; +asn_struct_free_f mapem_ts_HeadingConfidenceDSRC_free; +asn_struct_print_f mapem_ts_HeadingConfidenceDSRC_print; +asn_constr_check_f mapem_ts_HeadingConfidenceDSRC_constraint; +per_type_decoder_f mapem_ts_HeadingConfidenceDSRC_decode_uper; +per_type_encoder_f mapem_ts_HeadingConfidenceDSRC_encode_uper; +per_type_decoder_f mapem_ts_HeadingConfidenceDSRC_decode_aper; +per_type_encoder_f mapem_ts_HeadingConfidenceDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_HeadingConfidenceDSRC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_HeadingDSRC.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_HeadingDSRC.h new file mode 100644 index 000000000..522bbe1ea --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_HeadingDSRC_H_ +#define _mapem_ts_HeadingDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_HeadingDSRC */ +typedef long mapem_ts_HeadingDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_HeadingDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_HeadingDSRC; +asn_struct_free_f mapem_ts_HeadingDSRC_free; +asn_struct_print_f mapem_ts_HeadingDSRC_print; +asn_constr_check_f mapem_ts_HeadingDSRC_constraint; +per_type_decoder_f mapem_ts_HeadingDSRC_decode_uper; +per_type_encoder_f mapem_ts_HeadingDSRC_encode_uper; +per_type_decoder_f mapem_ts_HeadingDSRC_decode_aper; +per_type_encoder_f mapem_ts_HeadingDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_HeadingDSRC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_HeadingValue.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_HeadingValue.h new file mode 100644 index 000000000..a460aa467 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_HeadingValue_H_ +#define _mapem_ts_HeadingValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_HeadingValue { + mapem_ts_HeadingValue_wgs84North = 0, + mapem_ts_HeadingValue_wgs84East = 900, + mapem_ts_HeadingValue_wgs84South = 1800, + mapem_ts_HeadingValue_wgs84West = 2700, + mapem_ts_HeadingValue_unavailable = 3601 +} e_mapem_ts_HeadingValue; + +/* mapem_ts_HeadingValue */ +typedef long mapem_ts_HeadingValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_HeadingValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_HeadingValue; +asn_struct_free_f mapem_ts_HeadingValue_free; +asn_struct_print_f mapem_ts_HeadingValue_print; +asn_constr_check_f mapem_ts_HeadingValue_constraint; +per_type_decoder_f mapem_ts_HeadingValue_decode_uper; +per_type_encoder_f mapem_ts_HeadingValue_encode_uper; +per_type_decoder_f mapem_ts_HeadingValue_decode_aper; +per_type_encoder_f mapem_ts_HeadingValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_HeadingValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_HeightLonCarr.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_HeightLonCarr.h new file mode 100644 index 000000000..0091b5016 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_HeightLonCarr_H_ +#define _mapem_ts_HeightLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_HeightLonCarr { + mapem_ts_HeightLonCarr_oneCentimeter = 1, + mapem_ts_HeightLonCarr_unavailable = 100 +} e_mapem_ts_HeightLonCarr; + +/* mapem_ts_HeightLonCarr */ +typedef long mapem_ts_HeightLonCarr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_HeightLonCarr; +asn_struct_free_f mapem_ts_HeightLonCarr_free; +asn_struct_print_f mapem_ts_HeightLonCarr_print; +asn_constr_check_f mapem_ts_HeightLonCarr_constraint; +per_type_decoder_f mapem_ts_HeightLonCarr_decode_uper; +per_type_encoder_f mapem_ts_HeightLonCarr_encode_uper; +per_type_decoder_f mapem_ts_HeightLonCarr_decode_aper; +per_type_encoder_f mapem_ts_HeightLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_HeightLonCarr_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_HumanPresenceOnTheRoadSubCauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_HumanPresenceOnTheRoadSubCauseCode.h new file mode 100644 index 000000000..3216d59e0 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_HumanPresenceOnTheRoadSubCauseCode_H_ +#define _mapem_ts_HumanPresenceOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_HumanPresenceOnTheRoadSubCauseCode { + mapem_ts_HumanPresenceOnTheRoadSubCauseCode_unavailable = 0, + mapem_ts_HumanPresenceOnTheRoadSubCauseCode_childrenOnRoadway = 1, + mapem_ts_HumanPresenceOnTheRoadSubCauseCode_cyclistOnRoadway = 2, + mapem_ts_HumanPresenceOnTheRoadSubCauseCode_motorcyclistOnRoadway = 3 +} e_mapem_ts_HumanPresenceOnTheRoadSubCauseCode; + +/* mapem_ts_HumanPresenceOnTheRoadSubCauseCode */ +typedef long mapem_ts_HumanPresenceOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_HumanPresenceOnTheRoadSubCauseCode; +asn_struct_free_f mapem_ts_HumanPresenceOnTheRoadSubCauseCode_free; +asn_struct_print_f mapem_ts_HumanPresenceOnTheRoadSubCauseCode_print; +asn_constr_check_f mapem_ts_HumanPresenceOnTheRoadSubCauseCode_constraint; +per_type_decoder_f mapem_ts_HumanPresenceOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f mapem_ts_HumanPresenceOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f mapem_ts_HumanPresenceOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f mapem_ts_HumanPresenceOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_HumanPresenceOnTheRoadSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_HumanProblemSubCauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_HumanProblemSubCauseCode.h new file mode 100644 index 000000000..3f9c49345 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_HumanProblemSubCauseCode_H_ +#define _mapem_ts_HumanProblemSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_HumanProblemSubCauseCode { + mapem_ts_HumanProblemSubCauseCode_unavailable = 0, + mapem_ts_HumanProblemSubCauseCode_glycemiaProblem = 1, + mapem_ts_HumanProblemSubCauseCode_heartProblem = 2 +} e_mapem_ts_HumanProblemSubCauseCode; + +/* mapem_ts_HumanProblemSubCauseCode */ +typedef long mapem_ts_HumanProblemSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_HumanProblemSubCauseCode; +asn_struct_free_f mapem_ts_HumanProblemSubCauseCode_free; +asn_struct_print_f mapem_ts_HumanProblemSubCauseCode_print; +asn_constr_check_f mapem_ts_HumanProblemSubCauseCode_constraint; +per_type_decoder_f mapem_ts_HumanProblemSubCauseCode_decode_uper; +per_type_encoder_f mapem_ts_HumanProblemSubCauseCode_encode_uper; +per_type_decoder_f mapem_ts_HumanProblemSubCauseCode_decode_aper; +per_type_encoder_f mapem_ts_HumanProblemSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_HumanProblemSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_InformationQuality.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_InformationQuality.h new file mode 100644 index 000000000..6e7b397a8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_InformationQuality_H_ +#define _mapem_ts_InformationQuality_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_InformationQuality { + mapem_ts_InformationQuality_unavailable = 0, + mapem_ts_InformationQuality_lowest = 1, + mapem_ts_InformationQuality_highest = 7 +} e_mapem_ts_InformationQuality; + +/* mapem_ts_InformationQuality */ +typedef long mapem_ts_InformationQuality_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_InformationQuality_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_InformationQuality; +asn_struct_free_f mapem_ts_InformationQuality_free; +asn_struct_print_f mapem_ts_InformationQuality_print; +asn_constr_check_f mapem_ts_InformationQuality_constraint; +per_type_decoder_f mapem_ts_InformationQuality_decode_uper; +per_type_encoder_f mapem_ts_InformationQuality_encode_uper; +per_type_decoder_f mapem_ts_InformationQuality_decode_aper; +per_type_encoder_f mapem_ts_InformationQuality_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_InformationQuality_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_IntersectionAccessPoint.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_IntersectionAccessPoint.h new file mode 100644 index 000000000..1d3e97165 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_IntersectionAccessPoint_H_ +#define _mapem_ts_IntersectionAccessPoint_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_ApproachID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_IntersectionAccessPoint_PR { + mapem_ts_IntersectionAccessPoint_PR_NOTHING, /* No components present */ + mapem_ts_IntersectionAccessPoint_PR_lane, + mapem_ts_IntersectionAccessPoint_PR_approach, + mapem_ts_IntersectionAccessPoint_PR_connection + /* Extensions may appear below */ + +} mapem_ts_IntersectionAccessPoint_PR; + +/* mapem_ts_IntersectionAccessPoint */ +typedef struct mapem_ts_IntersectionAccessPoint { + mapem_ts_IntersectionAccessPoint_PR present; + union mapem_ts_IntersectionAccessPoint_u { + mapem_ts_LaneID_t lane; + mapem_ts_ApproachID_t approach; + mapem_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; +} mapem_ts_IntersectionAccessPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_IntersectionAccessPoint; +extern asn_CHOICE_specifics_t asn_SPC_mapem_ts_IntersectionAccessPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_IntersectionAccessPoint_1[3]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_IntersectionAccessPoint_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_IntersectionAccessPoint_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_IntersectionGeometry.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_IntersectionGeometry.h new file mode 100644 index 000000000..5f0ec842c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_IntersectionGeometry_H_ +#define _mapem_ts_IntersectionGeometry_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_DescriptiveName.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionReferenceID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_MsgCount.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Position3D.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneWidth.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_SpeedLimitList; +struct mapem_ts_PreemptPriorityList; +struct mapem_ts_Reg_IntersectionGeometry; + +/* mapem_ts_IntersectionGeometry */ +typedef struct mapem_ts_IntersectionGeometry { + mapem_ts_DescriptiveName_t *name; /* OPTIONAL */ + mapem_ts_IntersectionReferenceID_t id; + mapem_ts_MsgCount_t revision; + mapem_ts_Position3D_t refPoint; + mapem_ts_LaneWidth_t *laneWidth; /* OPTIONAL */ + struct mapem_ts_SpeedLimitList *speedLimits; /* OPTIONAL */ + mapem_ts_LaneList_t laneSet; + struct mapem_ts_PreemptPriorityList *preemptPriorityData; /* OPTIONAL */ + struct mapem_ts_IntersectionGeometry__regional { + A_SEQUENCE_OF(struct mapem_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; +} mapem_ts_IntersectionGeometry_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_IntersectionGeometry; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_IntersectionGeometry_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_IntersectionGeometry_1[9]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_SpeedLimitList.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_PreemptPriorityList.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_IntersectionGeometry_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_IntersectionGeometryList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_IntersectionGeometryList.h new file mode 100644 index 000000000..295a23b1d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_IntersectionGeometryList_H_ +#define _mapem_ts_IntersectionGeometryList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_IntersectionGeometry; + +/* mapem_ts_IntersectionGeometryList */ +typedef struct mapem_ts_IntersectionGeometryList { + A_SEQUENCE_OF(struct mapem_ts_IntersectionGeometry) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_IntersectionGeometryList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_IntersectionGeometryList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_IntersectionGeometryList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_IntersectionGeometryList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_IntersectionGeometryList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionGeometry.h" + +#endif /* _mapem_ts_IntersectionGeometryList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_IntersectionID.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_IntersectionID.h new file mode 100644 index 000000000..c3fa2c40a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_IntersectionID_H_ +#define _mapem_ts_IntersectionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_IntersectionID */ +typedef long mapem_ts_IntersectionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_IntersectionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_IntersectionID; +asn_struct_free_f mapem_ts_IntersectionID_free; +asn_struct_print_f mapem_ts_IntersectionID_print; +asn_constr_check_f mapem_ts_IntersectionID_constraint; +per_type_decoder_f mapem_ts_IntersectionID_decode_uper; +per_type_encoder_f mapem_ts_IntersectionID_encode_uper; +per_type_decoder_f mapem_ts_IntersectionID_decode_aper; +per_type_encoder_f mapem_ts_IntersectionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_IntersectionID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_IntersectionReferenceID.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_IntersectionReferenceID.h new file mode 100644 index 000000000..778793d26 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_IntersectionReferenceID_H_ +#define _mapem_ts_IntersectionReferenceID_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RoadRegulatorID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_IntersectionReferenceID */ +typedef struct mapem_ts_IntersectionReferenceID { + mapem_ts_RoadRegulatorID_t *region; /* OPTIONAL */ + mapem_ts_IntersectionID_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_IntersectionReferenceID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_IntersectionReferenceID; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_IntersectionReferenceID_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_IntersectionReferenceID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_IntersectionReferenceID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_IntersectionState-addGrpC.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_IntersectionState-addGrpC.h new file mode 100644 index 000000000..f1433cc37 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_IntersectionState_addGrpC_H_ +#define _mapem_ts_IntersectionState_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_PrioritizationResponseList; + +/* mapem_ts_IntersectionState-addGrpC */ +typedef struct mapem_ts_IntersectionState_addGrpC { + struct mapem_ts_PrioritizationResponseList *activePrioritizations; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_IntersectionState_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_IntersectionState_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_IntersectionState_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_IntersectionState_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_PrioritizationResponseList.h" + +#endif /* _mapem_ts_IntersectionState_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_IntersectionState.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_IntersectionState.h new file mode 100644 index 000000000..bc7f5625f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_IntersectionState_H_ +#define _mapem_ts_IntersectionState_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_DescriptiveName.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionReferenceID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_MsgCount.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionStatusObject.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_MinuteOfTheYear.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_DSecond.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_MovementList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_EnabledLaneList; +struct mapem_ts_ManeuverAssistList; +struct mapem_ts_Reg_IntersectionState; + +/* mapem_ts_IntersectionState */ +typedef struct mapem_ts_IntersectionState { + mapem_ts_DescriptiveName_t *name; /* OPTIONAL */ + mapem_ts_IntersectionReferenceID_t id; + mapem_ts_MsgCount_t revision; + mapem_ts_IntersectionStatusObject_t status; + mapem_ts_MinuteOfTheYear_t *moy; /* OPTIONAL */ + mapem_ts_DSecond_t *timeStamp; /* OPTIONAL */ + struct mapem_ts_EnabledLaneList *enabledLanes; /* OPTIONAL */ + mapem_ts_MovementList_t states; + struct mapem_ts_ManeuverAssistList *maneuverAssistList; /* OPTIONAL */ + struct mapem_ts_IntersectionState__regional { + A_SEQUENCE_OF(struct mapem_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; +} mapem_ts_IntersectionState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_IntersectionState; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_IntersectionState_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_IntersectionState_1[10]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_EnabledLaneList.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_ManeuverAssistList.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_IntersectionState_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_IntersectionStateList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_IntersectionStateList.h new file mode 100644 index 000000000..8d52bdba7 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_IntersectionStateList_H_ +#define _mapem_ts_IntersectionStateList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_IntersectionState; + +/* mapem_ts_IntersectionStateList */ +typedef struct mapem_ts_IntersectionStateList { + A_SEQUENCE_OF(struct mapem_ts_IntersectionState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_IntersectionStateList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_IntersectionStateList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_IntersectionStateList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_IntersectionStateList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_IntersectionStateList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionState.h" + +#endif /* _mapem_ts_IntersectionStateList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_IntersectionStatusObject.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_IntersectionStatusObject.h new file mode 100644 index 000000000..97db30568 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_IntersectionStatusObject_H_ +#define _mapem_ts_IntersectionStatusObject_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_IntersectionStatusObject { + mapem_ts_IntersectionStatusObject_manualControlIsEnabled = 0, + mapem_ts_IntersectionStatusObject_stopTimeIsActivated = 1, + mapem_ts_IntersectionStatusObject_failureFlash = 2, + mapem_ts_IntersectionStatusObject_preemptIsActive = 3, + mapem_ts_IntersectionStatusObject_signalPriorityIsActive = 4, + mapem_ts_IntersectionStatusObject_fixedTimeOperation = 5, + mapem_ts_IntersectionStatusObject_trafficDependentOperation = 6, + mapem_ts_IntersectionStatusObject_standbyOperation = 7, + mapem_ts_IntersectionStatusObject_failureMode = 8, + mapem_ts_IntersectionStatusObject_off = 9, + mapem_ts_IntersectionStatusObject_recentMAPmessageUpdate = 10, + mapem_ts_IntersectionStatusObject_recentChangeInMAPassignedLanesIDsUsed = 11, + mapem_ts_IntersectionStatusObject_noValidMAPisAvailableAtThisTime = 12, + mapem_ts_IntersectionStatusObject_noValidSPATisAvailableAtThisTime = 13 +} e_mapem_ts_IntersectionStatusObject; + +/* mapem_ts_IntersectionStatusObject */ +typedef BIT_STRING_t mapem_ts_IntersectionStatusObject_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_IntersectionStatusObject_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_IntersectionStatusObject; +asn_struct_free_f mapem_ts_IntersectionStatusObject_free; +asn_struct_print_f mapem_ts_IntersectionStatusObject_print; +asn_constr_check_f mapem_ts_IntersectionStatusObject_constraint; +per_type_decoder_f mapem_ts_IntersectionStatusObject_decode_uper; +per_type_encoder_f mapem_ts_IntersectionStatusObject_encode_uper; +per_type_decoder_f mapem_ts_IntersectionStatusObject_decode_aper; +per_type_encoder_f mapem_ts_IntersectionStatusObject_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_IntersectionStatusObject_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Iso3833VehicleType.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Iso3833VehicleType.h new file mode 100644 index 000000000..17d500db4 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Iso3833VehicleType_H_ +#define _mapem_ts_Iso3833VehicleType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_Iso3833VehicleType { + mapem_ts_Iso3833VehicleType_passengerCar = 0, + mapem_ts_Iso3833VehicleType_saloon = 1, + mapem_ts_Iso3833VehicleType_convertibleSaloon = 2, + mapem_ts_Iso3833VehicleType_pullmanSaloon = 3, + mapem_ts_Iso3833VehicleType_stationWagon = 4, + mapem_ts_Iso3833VehicleType_truckStationWagon = 5, + mapem_ts_Iso3833VehicleType_coupe = 6, + mapem_ts_Iso3833VehicleType_convertible = 7, + mapem_ts_Iso3833VehicleType_multipurposePassengerCar = 8, + mapem_ts_Iso3833VehicleType_forwardControlPassengerCar = 9, + mapem_ts_Iso3833VehicleType_specialPassengerCar = 10, + mapem_ts_Iso3833VehicleType_bus = 11, + mapem_ts_Iso3833VehicleType_minibus = 12, + mapem_ts_Iso3833VehicleType_urbanBus = 13, + mapem_ts_Iso3833VehicleType_interurbanCoach = 14, + mapem_ts_Iso3833VehicleType_longDistanceCoach = 15, + mapem_ts_Iso3833VehicleType_articulatedBus = 16, + mapem_ts_Iso3833VehicleType_trolleyBus = 17, + mapem_ts_Iso3833VehicleType_specialBus = 18, + mapem_ts_Iso3833VehicleType_commercialVehicle = 19, + mapem_ts_Iso3833VehicleType_specialCommercialVehicle = 20, + mapem_ts_Iso3833VehicleType_specialVehicle = 21, + mapem_ts_Iso3833VehicleType_trailingTowingVehicle = 22, + mapem_ts_Iso3833VehicleType_semiTrailerTowingVehicle = 23, + mapem_ts_Iso3833VehicleType_trailer = 24, + mapem_ts_Iso3833VehicleType_busTrailer = 25, + mapem_ts_Iso3833VehicleType_generalPurposeTrailer = 26, + mapem_ts_Iso3833VehicleType_caravan = 27, + mapem_ts_Iso3833VehicleType_specialTrailer = 28, + mapem_ts_Iso3833VehicleType_semiTrailer = 29, + mapem_ts_Iso3833VehicleType_busSemiTrailer = 30, + mapem_ts_Iso3833VehicleType_generalPurposeSemiTrailer = 31, + mapem_ts_Iso3833VehicleType_specialSemiTrailer = 32, + mapem_ts_Iso3833VehicleType_roadTrain = 33, + mapem_ts_Iso3833VehicleType_passengerRoadTrain = 34, + mapem_ts_Iso3833VehicleType_articulatedRoadTrain = 35, + mapem_ts_Iso3833VehicleType_doubleRoadTrain = 36, + mapem_ts_Iso3833VehicleType_compositeRoadTrain = 37, + mapem_ts_Iso3833VehicleType_specialRoadTrain = 38, + mapem_ts_Iso3833VehicleType_moped = 39, + mapem_ts_Iso3833VehicleType_motorCycle = 40 +} e_mapem_ts_Iso3833VehicleType; + +/* mapem_ts_Iso3833VehicleType */ +typedef long mapem_ts_Iso3833VehicleType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_Iso3833VehicleType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Iso3833VehicleType; +asn_struct_free_f mapem_ts_Iso3833VehicleType_free; +asn_struct_print_f mapem_ts_Iso3833VehicleType_print; +asn_constr_check_f mapem_ts_Iso3833VehicleType_constraint; +per_type_decoder_f mapem_ts_Iso3833VehicleType_decode_uper; +per_type_encoder_f mapem_ts_Iso3833VehicleType_encode_uper; +per_type_decoder_f mapem_ts_Iso3833VehicleType_decode_aper; +per_type_encoder_f mapem_ts_Iso3833VehicleType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Iso3833VehicleType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_IssuerIdentifier.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_IssuerIdentifier.h new file mode 100644 index 000000000..8753eeb60 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_IssuerIdentifier_H_ +#define _mapem_ts_IssuerIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_IssuerIdentifier */ +typedef long mapem_ts_IssuerIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_IssuerIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_IssuerIdentifier; +asn_struct_free_f mapem_ts_IssuerIdentifier_free; +asn_struct_print_f mapem_ts_IssuerIdentifier_print; +asn_constr_check_f mapem_ts_IssuerIdentifier_constraint; +per_type_decoder_f mapem_ts_IssuerIdentifier_decode_uper; +per_type_encoder_f mapem_ts_IssuerIdentifier_encode_uper; +per_type_decoder_f mapem_ts_IssuerIdentifier_decode_aper; +per_type_encoder_f mapem_ts_IssuerIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_IssuerIdentifier_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ItineraryPath.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ItineraryPath.h new file mode 100644 index 000000000..e35349558 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ItineraryPath_H_ +#define _mapem_ts_ItineraryPath_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_ReferencePosition; + +/* mapem_ts_ItineraryPath */ +typedef struct mapem_ts_ItineraryPath { + A_SEQUENCE_OF(struct mapem_ts_ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_ItineraryPath_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ItineraryPath; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_ReferencePosition.h" + +#endif /* _mapem_ts_ItineraryPath_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ItsPduHeader.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ItsPduHeader.h new file mode 100644 index 000000000..37b13027e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ItsPduHeader_H_ +#define _mapem_ts_ItsPduHeader_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_mapem_ts_coding/mapem_ts_StationID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_ItsPduHeader__messageID { + mapem_ts_ItsPduHeader__messageID_denm = 1, + mapem_ts_ItsPduHeader__messageID_cam = 2, + mapem_ts_ItsPduHeader__messageID_poi = 3, + mapem_ts_ItsPduHeader__messageID_spatem = 4, + mapem_ts_ItsPduHeader__messageID_mapem = 5, + mapem_ts_ItsPduHeader__messageID_ivim = 6, + mapem_ts_ItsPduHeader__messageID_ev_rsr = 7, + mapem_ts_ItsPduHeader__messageID_tistpgtransaction = 8, + mapem_ts_ItsPduHeader__messageID_srem = 9, + mapem_ts_ItsPduHeader__messageID_ssem = 10, + mapem_ts_ItsPduHeader__messageID_evcsn = 11, + mapem_ts_ItsPduHeader__messageID_saem = 12, + mapem_ts_ItsPduHeader__messageID_rtcmem = 13 +} e_mapem_ts_ItsPduHeader__messageID; + +/* mapem_ts_ItsPduHeader */ +typedef struct mapem_ts_ItsPduHeader { + long protocolVersion; + long messageID; + mapem_ts_StationID_t stationID; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_ItsPduHeader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ItsPduHeader; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_ItsPduHeader_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_ItsPduHeader_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_ItsPduHeader_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ItsStationPosition.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ItsStationPosition.h new file mode 100644 index 000000000..dc4435f0c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ItsStationPosition_H_ +#define _mapem_ts_ItsStationPosition_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_StationID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_TimeReference.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_NodeOffsetPointXY; + +/* mapem_ts_ItsStationPosition */ +typedef struct mapem_ts_ItsStationPosition { + mapem_ts_StationID_t stationID; + mapem_ts_LaneID_t *laneID; /* OPTIONAL */ + struct mapem_ts_NodeOffsetPointXY *nodeXY; /* OPTIONAL */ + mapem_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; +} mapem_ts_ItsStationPosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ItsStationPosition; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_ItsStationPosition_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_ItsStationPosition_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_NodeOffsetPointXY.h" + +#endif /* _mapem_ts_ItsStationPosition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ItsStationPositionList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ItsStationPositionList.h new file mode 100644 index 000000000..94b9c3d6e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ItsStationPositionList_H_ +#define _mapem_ts_ItsStationPositionList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_ItsStationPosition; + +/* mapem_ts_ItsStationPositionList */ +typedef struct mapem_ts_ItsStationPositionList { + A_SEQUENCE_OF(struct mapem_ts_ItsStationPosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_ItsStationPositionList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ItsStationPositionList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_ItsStationPositionList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_ItsStationPositionList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_ItsStationPositionList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_ItsStationPosition.h" + +#endif /* _mapem_ts_ItsStationPositionList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Barrier.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Barrier.h new file mode 100644 index 000000000..c22991ced --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LaneAttributes_Barrier_H_ +#define _mapem_ts_LaneAttributes_Barrier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_LaneAttributes_Barrier { + mapem_ts_LaneAttributes_Barrier_median_RevocableLane = 0, + mapem_ts_LaneAttributes_Barrier_median = 1, + mapem_ts_LaneAttributes_Barrier_whiteLineHashing = 2, + mapem_ts_LaneAttributes_Barrier_stripedLines = 3, + mapem_ts_LaneAttributes_Barrier_doubleStripedLines = 4, + mapem_ts_LaneAttributes_Barrier_trafficCones = 5, + mapem_ts_LaneAttributes_Barrier_constructionBarrier = 6, + mapem_ts_LaneAttributes_Barrier_trafficChannels = 7, + mapem_ts_LaneAttributes_Barrier_lowCurbs = 8, + mapem_ts_LaneAttributes_Barrier_highCurbs = 9 +} e_mapem_ts_LaneAttributes_Barrier; + +/* mapem_ts_LaneAttributes-Barrier */ +typedef BIT_STRING_t mapem_ts_LaneAttributes_Barrier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_LaneAttributes_Barrier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneAttributes_Barrier; +asn_struct_free_f mapem_ts_LaneAttributes_Barrier_free; +asn_struct_print_f mapem_ts_LaneAttributes_Barrier_print; +asn_constr_check_f mapem_ts_LaneAttributes_Barrier_constraint; +per_type_decoder_f mapem_ts_LaneAttributes_Barrier_decode_uper; +per_type_encoder_f mapem_ts_LaneAttributes_Barrier_encode_uper; +per_type_decoder_f mapem_ts_LaneAttributes_Barrier_decode_aper; +per_type_encoder_f mapem_ts_LaneAttributes_Barrier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_LaneAttributes_Barrier_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Bike.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Bike.h new file mode 100644 index 000000000..132027eb5 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LaneAttributes_Bike_H_ +#define _mapem_ts_LaneAttributes_Bike_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_LaneAttributes_Bike { + mapem_ts_LaneAttributes_Bike_bikeRevocableLane = 0, + mapem_ts_LaneAttributes_Bike_pedestrianUseAllowed = 1, + mapem_ts_LaneAttributes_Bike_isBikeFlyOverLane = 2, + mapem_ts_LaneAttributes_Bike_fixedCycleTime = 3, + mapem_ts_LaneAttributes_Bike_biDirectionalCycleTimes = 4, + mapem_ts_LaneAttributes_Bike_isolatedByBarrier = 5, + mapem_ts_LaneAttributes_Bike_unsignalizedSegmentsPresent = 6 +} e_mapem_ts_LaneAttributes_Bike; + +/* mapem_ts_LaneAttributes-Bike */ +typedef BIT_STRING_t mapem_ts_LaneAttributes_Bike_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_LaneAttributes_Bike_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneAttributes_Bike; +asn_struct_free_f mapem_ts_LaneAttributes_Bike_free; +asn_struct_print_f mapem_ts_LaneAttributes_Bike_print; +asn_constr_check_f mapem_ts_LaneAttributes_Bike_constraint; +per_type_decoder_f mapem_ts_LaneAttributes_Bike_decode_uper; +per_type_encoder_f mapem_ts_LaneAttributes_Bike_encode_uper; +per_type_decoder_f mapem_ts_LaneAttributes_Bike_decode_aper; +per_type_encoder_f mapem_ts_LaneAttributes_Bike_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_LaneAttributes_Bike_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Crosswalk.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Crosswalk.h new file mode 100644 index 000000000..65661a0ea --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LaneAttributes_Crosswalk_H_ +#define _mapem_ts_LaneAttributes_Crosswalk_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_LaneAttributes_Crosswalk { + mapem_ts_LaneAttributes_Crosswalk_crosswalkRevocableLane = 0, + mapem_ts_LaneAttributes_Crosswalk_bicyleUseAllowed = 1, + mapem_ts_LaneAttributes_Crosswalk_isXwalkFlyOverLane = 2, + mapem_ts_LaneAttributes_Crosswalk_fixedCycleTime = 3, + mapem_ts_LaneAttributes_Crosswalk_biDirectionalCycleTimes = 4, + mapem_ts_LaneAttributes_Crosswalk_hasPushToWalkButton = 5, + mapem_ts_LaneAttributes_Crosswalk_audioSupport = 6, + mapem_ts_LaneAttributes_Crosswalk_rfSignalRequestPresent = 7, + mapem_ts_LaneAttributes_Crosswalk_unsignalizedSegmentsPresent = 8 +} e_mapem_ts_LaneAttributes_Crosswalk; + +/* mapem_ts_LaneAttributes-Crosswalk */ +typedef BIT_STRING_t mapem_ts_LaneAttributes_Crosswalk_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_LaneAttributes_Crosswalk_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneAttributes_Crosswalk; +asn_struct_free_f mapem_ts_LaneAttributes_Crosswalk_free; +asn_struct_print_f mapem_ts_LaneAttributes_Crosswalk_print; +asn_constr_check_f mapem_ts_LaneAttributes_Crosswalk_constraint; +per_type_decoder_f mapem_ts_LaneAttributes_Crosswalk_decode_uper; +per_type_encoder_f mapem_ts_LaneAttributes_Crosswalk_encode_uper; +per_type_decoder_f mapem_ts_LaneAttributes_Crosswalk_decode_aper; +per_type_encoder_f mapem_ts_LaneAttributes_Crosswalk_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_LaneAttributes_Crosswalk_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Parking.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Parking.h new file mode 100644 index 000000000..440342de8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LaneAttributes_Parking_H_ +#define _mapem_ts_LaneAttributes_Parking_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_LaneAttributes_Parking { + mapem_ts_LaneAttributes_Parking_parkingRevocableLane = 0, + mapem_ts_LaneAttributes_Parking_parallelParkingInUse = 1, + mapem_ts_LaneAttributes_Parking_headInParkingInUse = 2, + mapem_ts_LaneAttributes_Parking_doNotParkZone = 3, + mapem_ts_LaneAttributes_Parking_parkingForBusUse = 4, + mapem_ts_LaneAttributes_Parking_parkingForTaxiUse = 5, + mapem_ts_LaneAttributes_Parking_noPublicParkingUse = 6 +} e_mapem_ts_LaneAttributes_Parking; + +/* mapem_ts_LaneAttributes-Parking */ +typedef BIT_STRING_t mapem_ts_LaneAttributes_Parking_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_LaneAttributes_Parking_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneAttributes_Parking; +asn_struct_free_f mapem_ts_LaneAttributes_Parking_free; +asn_struct_print_f mapem_ts_LaneAttributes_Parking_print; +asn_constr_check_f mapem_ts_LaneAttributes_Parking_constraint; +per_type_decoder_f mapem_ts_LaneAttributes_Parking_decode_uper; +per_type_encoder_f mapem_ts_LaneAttributes_Parking_encode_uper; +per_type_decoder_f mapem_ts_LaneAttributes_Parking_decode_aper; +per_type_encoder_f mapem_ts_LaneAttributes_Parking_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_LaneAttributes_Parking_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Sidewalk.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Sidewalk.h new file mode 100644 index 000000000..07c892bc8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LaneAttributes_Sidewalk_H_ +#define _mapem_ts_LaneAttributes_Sidewalk_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_LaneAttributes_Sidewalk { + mapem_ts_LaneAttributes_Sidewalk_sidewalk_RevocableLane = 0, + mapem_ts_LaneAttributes_Sidewalk_bicyleUseAllowed = 1, + mapem_ts_LaneAttributes_Sidewalk_isSidewalkFlyOverLane = 2, + mapem_ts_LaneAttributes_Sidewalk_walkBikes = 3 +} e_mapem_ts_LaneAttributes_Sidewalk; + +/* mapem_ts_LaneAttributes-Sidewalk */ +typedef BIT_STRING_t mapem_ts_LaneAttributes_Sidewalk_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_LaneAttributes_Sidewalk_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneAttributes_Sidewalk; +asn_struct_free_f mapem_ts_LaneAttributes_Sidewalk_free; +asn_struct_print_f mapem_ts_LaneAttributes_Sidewalk_print; +asn_constr_check_f mapem_ts_LaneAttributes_Sidewalk_constraint; +per_type_decoder_f mapem_ts_LaneAttributes_Sidewalk_decode_uper; +per_type_encoder_f mapem_ts_LaneAttributes_Sidewalk_encode_uper; +per_type_decoder_f mapem_ts_LaneAttributes_Sidewalk_decode_aper; +per_type_encoder_f mapem_ts_LaneAttributes_Sidewalk_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_LaneAttributes_Sidewalk_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Striping.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Striping.h new file mode 100644 index 000000000..96a59a166 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LaneAttributes_Striping_H_ +#define _mapem_ts_LaneAttributes_Striping_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_LaneAttributes_Striping { + mapem_ts_LaneAttributes_Striping_stripeToConnectingLanesRevocableLane = 0, + mapem_ts_LaneAttributes_Striping_stripeDrawOnLeft = 1, + mapem_ts_LaneAttributes_Striping_stripeDrawOnRight = 2, + mapem_ts_LaneAttributes_Striping_stripeToConnectingLanesLeft = 3, + mapem_ts_LaneAttributes_Striping_stripeToConnectingLanesRight = 4, + mapem_ts_LaneAttributes_Striping_stripeToConnectingLanesAhead = 5 +} e_mapem_ts_LaneAttributes_Striping; + +/* mapem_ts_LaneAttributes-Striping */ +typedef BIT_STRING_t mapem_ts_LaneAttributes_Striping_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_LaneAttributes_Striping_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneAttributes_Striping; +asn_struct_free_f mapem_ts_LaneAttributes_Striping_free; +asn_struct_print_f mapem_ts_LaneAttributes_Striping_print; +asn_constr_check_f mapem_ts_LaneAttributes_Striping_constraint; +per_type_decoder_f mapem_ts_LaneAttributes_Striping_decode_uper; +per_type_encoder_f mapem_ts_LaneAttributes_Striping_encode_uper; +per_type_decoder_f mapem_ts_LaneAttributes_Striping_decode_aper; +per_type_encoder_f mapem_ts_LaneAttributes_Striping_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_LaneAttributes_Striping_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-TrackedVehicle.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-TrackedVehicle.h new file mode 100644 index 000000000..7910a8bed --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LaneAttributes_TrackedVehicle_H_ +#define _mapem_ts_LaneAttributes_TrackedVehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_LaneAttributes_TrackedVehicle { + mapem_ts_LaneAttributes_TrackedVehicle_spec_RevocableLane = 0, + mapem_ts_LaneAttributes_TrackedVehicle_spec_commuterRailRoadTrack = 1, + mapem_ts_LaneAttributes_TrackedVehicle_spec_lightRailRoadTrack = 2, + mapem_ts_LaneAttributes_TrackedVehicle_spec_heavyRailRoadTrack = 3, + mapem_ts_LaneAttributes_TrackedVehicle_spec_otherRailType = 4 +} e_mapem_ts_LaneAttributes_TrackedVehicle; + +/* mapem_ts_LaneAttributes-TrackedVehicle */ +typedef BIT_STRING_t mapem_ts_LaneAttributes_TrackedVehicle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_LaneAttributes_TrackedVehicle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneAttributes_TrackedVehicle; +asn_struct_free_f mapem_ts_LaneAttributes_TrackedVehicle_free; +asn_struct_print_f mapem_ts_LaneAttributes_TrackedVehicle_print; +asn_constr_check_f mapem_ts_LaneAttributes_TrackedVehicle_constraint; +per_type_decoder_f mapem_ts_LaneAttributes_TrackedVehicle_decode_uper; +per_type_encoder_f mapem_ts_LaneAttributes_TrackedVehicle_encode_uper; +per_type_decoder_f mapem_ts_LaneAttributes_TrackedVehicle_decode_aper; +per_type_encoder_f mapem_ts_LaneAttributes_TrackedVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_LaneAttributes_TrackedVehicle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Vehicle.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Vehicle.h new file mode 100644 index 000000000..4653daa09 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LaneAttributes_Vehicle_H_ +#define _mapem_ts_LaneAttributes_Vehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_LaneAttributes_Vehicle { + mapem_ts_LaneAttributes_Vehicle_isVehicleRevocableLane = 0, + mapem_ts_LaneAttributes_Vehicle_isVehicleFlyOverLane = 1, + mapem_ts_LaneAttributes_Vehicle_hovLaneUseOnly = 2, + mapem_ts_LaneAttributes_Vehicle_restrictedToBusUse = 3, + mapem_ts_LaneAttributes_Vehicle_restrictedToTaxiUse = 4, + mapem_ts_LaneAttributes_Vehicle_restrictedFromPublicUse = 5, + mapem_ts_LaneAttributes_Vehicle_hasIRbeaconCoverage = 6, + mapem_ts_LaneAttributes_Vehicle_permissionOnRequest = 7 +} e_mapem_ts_LaneAttributes_Vehicle; + +/* mapem_ts_LaneAttributes-Vehicle */ +typedef BIT_STRING_t mapem_ts_LaneAttributes_Vehicle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_LaneAttributes_Vehicle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneAttributes_Vehicle; +asn_struct_free_f mapem_ts_LaneAttributes_Vehicle_free; +asn_struct_print_f mapem_ts_LaneAttributes_Vehicle_print; +asn_constr_check_f mapem_ts_LaneAttributes_Vehicle_constraint; +per_type_decoder_f mapem_ts_LaneAttributes_Vehicle_decode_uper; +per_type_encoder_f mapem_ts_LaneAttributes_Vehicle_encode_uper; +per_type_decoder_f mapem_ts_LaneAttributes_Vehicle_decode_aper; +per_type_encoder_f mapem_ts_LaneAttributes_Vehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_LaneAttributes_Vehicle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-addGrpC.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-addGrpC.h new file mode 100644 index 000000000..2288f8146 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LaneAttributes_addGrpC_H_ +#define _mapem_ts_LaneAttributes_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_VehicleHeight.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_VehicleMass.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_LaneAttributes-addGrpC */ +typedef struct mapem_ts_LaneAttributes_addGrpC { + mapem_ts_VehicleHeight_t *maxVehicleHeight; /* OPTIONAL */ + mapem_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; +} mapem_ts_LaneAttributes_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneAttributes_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_LaneAttributes_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_LaneAttributes_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_LaneAttributes_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes.h new file mode 100644 index 000000000..d9449b8d3 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LaneAttributes_H_ +#define _mapem_ts_LaneAttributes_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneDirection.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneSharing.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneTypeAttributes.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_Reg_LaneAttributes; + +/* mapem_ts_LaneAttributes */ +typedef struct mapem_ts_LaneAttributes { + mapem_ts_LaneDirection_t directionalUse; + mapem_ts_LaneSharing_t sharedWith; + mapem_ts_LaneTypeAttributes_t laneType; + struct mapem_ts_Reg_LaneAttributes *regional; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_LaneAttributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneAttributes; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_LaneAttributes_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_LaneAttributes_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_LaneAttributes_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneConnectionID.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneConnectionID.h new file mode 100644 index 000000000..b9d6fa850 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LaneConnectionID_H_ +#define _mapem_ts_LaneConnectionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_LaneConnectionID */ +typedef long mapem_ts_LaneConnectionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_LaneConnectionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneConnectionID; +asn_struct_free_f mapem_ts_LaneConnectionID_free; +asn_struct_print_f mapem_ts_LaneConnectionID_print; +asn_constr_check_f mapem_ts_LaneConnectionID_constraint; +per_type_decoder_f mapem_ts_LaneConnectionID_decode_uper; +per_type_encoder_f mapem_ts_LaneConnectionID_encode_uper; +per_type_decoder_f mapem_ts_LaneConnectionID_decode_aper; +per_type_encoder_f mapem_ts_LaneConnectionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_LaneConnectionID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneDataAttribute.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneDataAttribute.h new file mode 100644 index 000000000..c3c1b17b5 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LaneDataAttribute_H_ +#define _mapem_ts_LaneDataAttribute_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_DeltaAngle.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RoadwayCrownAngle.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_MergeDivergeNodeAngle.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_SpeedLimitList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_LaneDataAttribute_PR { + mapem_ts_LaneDataAttribute_PR_NOTHING, /* No components present */ + mapem_ts_LaneDataAttribute_PR_pathEndPointAngle, + mapem_ts_LaneDataAttribute_PR_laneCrownPointCenter, + mapem_ts_LaneDataAttribute_PR_laneCrownPointLeft, + mapem_ts_LaneDataAttribute_PR_laneCrownPointRight, + mapem_ts_LaneDataAttribute_PR_laneAngle, + mapem_ts_LaneDataAttribute_PR_speedLimits, + mapem_ts_LaneDataAttribute_PR_regional + /* Extensions may appear below */ + +} mapem_ts_LaneDataAttribute_PR; + +/* Forward declarations */ +struct mapem_ts_Reg_LaneDataAttribute; + +/* mapem_ts_LaneDataAttribute */ +typedef struct mapem_ts_LaneDataAttribute { + mapem_ts_LaneDataAttribute_PR present; + union mapem_ts_LaneDataAttribute_u { + mapem_ts_DeltaAngle_t pathEndPointAngle; + mapem_ts_RoadwayCrownAngle_t laneCrownPointCenter; + mapem_ts_RoadwayCrownAngle_t laneCrownPointLeft; + mapem_ts_RoadwayCrownAngle_t laneCrownPointRight; + mapem_ts_MergeDivergeNodeAngle_t laneAngle; + mapem_ts_SpeedLimitList_t speedLimits; + struct mapem_ts_LaneDataAttribute__regional { + A_SEQUENCE_OF(struct mapem_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; +} mapem_ts_LaneDataAttribute_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneDataAttribute; +extern asn_CHOICE_specifics_t asn_SPC_mapem_ts_LaneDataAttribute_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_LaneDataAttribute_1[7]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_LaneDataAttribute_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_LaneDataAttribute_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneDataAttributeList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneDataAttributeList.h new file mode 100644 index 000000000..04feb75d6 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LaneDataAttributeList_H_ +#define _mapem_ts_LaneDataAttributeList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_LaneDataAttribute; + +/* mapem_ts_LaneDataAttributeList */ +typedef struct mapem_ts_LaneDataAttributeList { + A_SEQUENCE_OF(struct mapem_ts_LaneDataAttribute) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_LaneDataAttributeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneDataAttributeList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_LaneDataAttributeList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_LaneDataAttributeList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_LaneDataAttributeList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneDataAttribute.h" + +#endif /* _mapem_ts_LaneDataAttributeList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneDirection.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneDirection.h new file mode 100644 index 000000000..2ef6a4efb --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LaneDirection_H_ +#define _mapem_ts_LaneDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_LaneDirection { + mapem_ts_LaneDirection_ingressPath = 0, + mapem_ts_LaneDirection_egressPath = 1 +} e_mapem_ts_LaneDirection; + +/* mapem_ts_LaneDirection */ +typedef BIT_STRING_t mapem_ts_LaneDirection_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_LaneDirection_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneDirection; +asn_struct_free_f mapem_ts_LaneDirection_free; +asn_struct_print_f mapem_ts_LaneDirection_print; +asn_constr_check_f mapem_ts_LaneDirection_constraint; +per_type_decoder_f mapem_ts_LaneDirection_decode_uper; +per_type_encoder_f mapem_ts_LaneDirection_encode_uper; +per_type_decoder_f mapem_ts_LaneDirection_decode_aper; +per_type_encoder_f mapem_ts_LaneDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_LaneDirection_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneID.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneID.h new file mode 100644 index 000000000..b3af07aaf --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LaneID_H_ +#define _mapem_ts_LaneID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_LaneID */ +typedef long mapem_ts_LaneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_LaneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneID; +asn_struct_free_f mapem_ts_LaneID_free; +asn_struct_print_f mapem_ts_LaneID_print; +asn_constr_check_f mapem_ts_LaneID_constraint; +per_type_decoder_f mapem_ts_LaneID_decode_uper; +per_type_encoder_f mapem_ts_LaneID_encode_uper; +per_type_decoder_f mapem_ts_LaneID_decode_aper; +per_type_encoder_f mapem_ts_LaneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_LaneID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneList.h new file mode 100644 index 000000000..916d7028f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LaneList_H_ +#define _mapem_ts_LaneList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_GenericLane; + +/* mapem_ts_LaneList */ +typedef struct mapem_ts_LaneList { + A_SEQUENCE_OF(struct mapem_ts_GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_LaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_LaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_LaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_LaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_GenericLane.h" + +#endif /* _mapem_ts_LaneList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LanePosition.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LanePosition.h new file mode 100644 index 000000000..3e502bbe9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LanePosition.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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LanePosition_H_ +#define _mapem_ts_LanePosition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_LanePosition { + mapem_ts_LanePosition_offTheRoad = -1, + mapem_ts_LanePosition_hardShoulder = 0, + mapem_ts_LanePosition_outermostDrivingLane = 1, + mapem_ts_LanePosition_secondLaneFromOutside = 2 +} e_mapem_ts_LanePosition; + +/* mapem_ts_LanePosition */ +typedef long mapem_ts_LanePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LanePosition; +asn_struct_free_f mapem_ts_LanePosition_free; +asn_struct_print_f mapem_ts_LanePosition_print; +asn_constr_check_f mapem_ts_LanePosition_constraint; +per_type_decoder_f mapem_ts_LanePosition_decode_uper; +per_type_encoder_f mapem_ts_LanePosition_encode_uper; +per_type_decoder_f mapem_ts_LanePosition_decode_aper; +per_type_encoder_f mapem_ts_LanePosition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_LanePosition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneSharing.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneSharing.h new file mode 100644 index 000000000..3724f6848 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LaneSharing_H_ +#define _mapem_ts_LaneSharing_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_LaneSharing { + mapem_ts_LaneSharing_overlappingLaneDescriptionProvided = 0, + mapem_ts_LaneSharing_multipleLanesTreatedAsOneLane = 1, + mapem_ts_LaneSharing_otherNonMotorizedTrafficTypes = 2, + mapem_ts_LaneSharing_individualMotorizedVehicleTraffic = 3, + mapem_ts_LaneSharing_busVehicleTraffic = 4, + mapem_ts_LaneSharing_taxiVehicleTraffic = 5, + mapem_ts_LaneSharing_pedestriansTraffic = 6, + mapem_ts_LaneSharing_cyclistVehicleTraffic = 7, + mapem_ts_LaneSharing_trackedVehicleTraffic = 8, + mapem_ts_LaneSharing_pedestrianTraffic = 9 +} e_mapem_ts_LaneSharing; + +/* mapem_ts_LaneSharing */ +typedef BIT_STRING_t mapem_ts_LaneSharing_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_LaneSharing_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneSharing; +asn_struct_free_f mapem_ts_LaneSharing_free; +asn_struct_print_f mapem_ts_LaneSharing_print; +asn_constr_check_f mapem_ts_LaneSharing_constraint; +per_type_decoder_f mapem_ts_LaneSharing_decode_uper; +per_type_encoder_f mapem_ts_LaneSharing_encode_uper; +per_type_decoder_f mapem_ts_LaneSharing_decode_aper; +per_type_encoder_f mapem_ts_LaneSharing_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_LaneSharing_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneTypeAttributes.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneTypeAttributes.h new file mode 100644 index 000000000..f8963ce9d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LaneTypeAttributes_H_ +#define _mapem_ts_LaneTypeAttributes_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Vehicle.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Crosswalk.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Bike.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Sidewalk.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Barrier.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Striping.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-TrackedVehicle.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Parking.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_LaneTypeAttributes_PR { + mapem_ts_LaneTypeAttributes_PR_NOTHING, /* No components present */ + mapem_ts_LaneTypeAttributes_PR_vehicle, + mapem_ts_LaneTypeAttributes_PR_crosswalk, + mapem_ts_LaneTypeAttributes_PR_bikeLane, + mapem_ts_LaneTypeAttributes_PR_sidewalk, + mapem_ts_LaneTypeAttributes_PR_median, + mapem_ts_LaneTypeAttributes_PR_striping, + mapem_ts_LaneTypeAttributes_PR_trackedVehicle, + mapem_ts_LaneTypeAttributes_PR_parking + /* Extensions may appear below */ + +} mapem_ts_LaneTypeAttributes_PR; + +/* mapem_ts_LaneTypeAttributes */ +typedef struct mapem_ts_LaneTypeAttributes { + mapem_ts_LaneTypeAttributes_PR present; + union mapem_ts_LaneTypeAttributes_u { + mapem_ts_LaneAttributes_Vehicle_t vehicle; + mapem_ts_LaneAttributes_Crosswalk_t crosswalk; + mapem_ts_LaneAttributes_Bike_t bikeLane; + mapem_ts_LaneAttributes_Sidewalk_t sidewalk; + mapem_ts_LaneAttributes_Barrier_t median; + mapem_ts_LaneAttributes_Striping_t striping; + mapem_ts_LaneAttributes_TrackedVehicle_t trackedVehicle; + mapem_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; +} mapem_ts_LaneTypeAttributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneTypeAttributes; +extern asn_CHOICE_specifics_t asn_SPC_mapem_ts_LaneTypeAttributes_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_LaneTypeAttributes_1[8]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_LaneTypeAttributes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_LaneTypeAttributes_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneWidth.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LaneWidth.h new file mode 100644 index 000000000..39b2a4da5 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LaneWidth_H_ +#define _mapem_ts_LaneWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_LaneWidth */ +typedef long mapem_ts_LaneWidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_LaneWidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneWidth; +asn_struct_free_f mapem_ts_LaneWidth_free; +asn_struct_print_f mapem_ts_LaneWidth_print; +asn_constr_check_f mapem_ts_LaneWidth_constraint; +per_type_decoder_f mapem_ts_LaneWidth_decode_uper; +per_type_encoder_f mapem_ts_LaneWidth_encode_uper; +per_type_decoder_f mapem_ts_LaneWidth_decode_aper; +per_type_encoder_f mapem_ts_LaneWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_LaneWidth_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LateralAcceleration.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LateralAcceleration.h new file mode 100644 index 000000000..7842628ce --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LateralAcceleration_H_ +#define _mapem_ts_LateralAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_LateralAccelerationValue.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_LateralAcceleration */ +typedef struct mapem_ts_LateralAcceleration { + mapem_ts_LateralAccelerationValue_t lateralAccelerationValue; + mapem_ts_AccelerationConfidence_t lateralAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_LateralAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LateralAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_LateralAcceleration_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LateralAccelerationValue.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LateralAccelerationValue.h new file mode 100644 index 000000000..7894da56a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LateralAccelerationValue_H_ +#define _mapem_ts_LateralAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_LateralAccelerationValue { + mapem_ts_LateralAccelerationValue_pointOneMeterPerSecSquaredToRight = -1, + mapem_ts_LateralAccelerationValue_pointOneMeterPerSecSquaredToLeft = 1, + mapem_ts_LateralAccelerationValue_unavailable = 161 +} e_mapem_ts_LateralAccelerationValue; + +/* mapem_ts_LateralAccelerationValue */ +typedef long mapem_ts_LateralAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_LateralAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LateralAccelerationValue; +asn_struct_free_f mapem_ts_LateralAccelerationValue_free; +asn_struct_print_f mapem_ts_LateralAccelerationValue_print; +asn_constr_check_f mapem_ts_LateralAccelerationValue_constraint; +per_type_decoder_f mapem_ts_LateralAccelerationValue_decode_uper; +per_type_encoder_f mapem_ts_LateralAccelerationValue_encode_uper; +per_type_decoder_f mapem_ts_LateralAccelerationValue_decode_aper; +per_type_encoder_f mapem_ts_LateralAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_LateralAccelerationValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Latitude.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Latitude.h new file mode 100644 index 000000000..c26a836cf --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Latitude_H_ +#define _mapem_ts_Latitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_Latitude { + mapem_ts_Latitude_oneMicrodegreeNorth = 10, + mapem_ts_Latitude_oneMicrodegreeSouth = -10, + mapem_ts_Latitude_unavailable = 900000001 +} e_mapem_ts_Latitude; + +/* mapem_ts_Latitude */ +typedef long mapem_ts_Latitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_Latitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Latitude; +asn_struct_free_f mapem_ts_Latitude_free; +asn_struct_print_f mapem_ts_Latitude_print; +asn_constr_check_f mapem_ts_Latitude_constraint; +per_type_decoder_f mapem_ts_Latitude_decode_uper; +per_type_encoder_f mapem_ts_Latitude_encode_uper; +per_type_decoder_f mapem_ts_Latitude_decode_aper; +per_type_encoder_f mapem_ts_Latitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Latitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LayerID.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LayerID.h new file mode 100644 index 000000000..ec02f21e3 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LayerID_H_ +#define _mapem_ts_LayerID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_LayerID */ +typedef long mapem_ts_LayerID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_LayerID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LayerID; +asn_struct_free_f mapem_ts_LayerID_free; +asn_struct_print_f mapem_ts_LayerID_print; +asn_constr_check_f mapem_ts_LayerID_constraint; +per_type_decoder_f mapem_ts_LayerID_decode_uper; +per_type_encoder_f mapem_ts_LayerID_encode_uper; +per_type_decoder_f mapem_ts_LayerID_decode_aper; +per_type_encoder_f mapem_ts_LayerID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_LayerID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LayerType.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LayerType.h new file mode 100644 index 000000000..b8ba69107 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LayerType_H_ +#define _mapem_ts_LayerType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_LayerType { + mapem_ts_LayerType_none = 0, + mapem_ts_LayerType_mixedContent = 1, + mapem_ts_LayerType_generalMapData = 2, + mapem_ts_LayerType_intersectionData = 3, + mapem_ts_LayerType_curveData = 4, + mapem_ts_LayerType_roadwaySectionData = 5, + mapem_ts_LayerType_parkingAreaData = 6, + mapem_ts_LayerType_sharedLaneData = 7 + /* + * Enumeration is extensible + */ +} e_mapem_ts_LayerType; + +/* mapem_ts_LayerType */ +typedef long mapem_ts_LayerType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_LayerType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LayerType; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_LayerType_specs_1; +asn_struct_free_f mapem_ts_LayerType_free; +asn_struct_print_f mapem_ts_LayerType_print; +asn_constr_check_f mapem_ts_LayerType_constraint; +per_type_decoder_f mapem_ts_LayerType_decode_uper; +per_type_encoder_f mapem_ts_LayerType_encode_uper; +per_type_decoder_f mapem_ts_LayerType_decode_aper; +per_type_encoder_f mapem_ts_LayerType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_LayerType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LicPlateNumber.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LicPlateNumber.h new file mode 100644 index 000000000..51be72120 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LicPlateNumber_H_ +#define _mapem_ts_LicPlateNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_LicPlateNumber */ +typedef OCTET_STRING_t mapem_ts_LicPlateNumber_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LicPlateNumber; +asn_struct_free_f mapem_ts_LicPlateNumber_free; +asn_struct_print_f mapem_ts_LicPlateNumber_print; +asn_constr_check_f mapem_ts_LicPlateNumber_constraint; +per_type_decoder_f mapem_ts_LicPlateNumber_decode_uper; +per_type_encoder_f mapem_ts_LicPlateNumber_encode_uper; +per_type_decoder_f mapem_ts_LicPlateNumber_decode_aper; +per_type_encoder_f mapem_ts_LicPlateNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_LicPlateNumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LightBarSirenInUse.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LightBarSirenInUse.h new file mode 100644 index 000000000..ac790cd51 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LightBarSirenInUse_H_ +#define _mapem_ts_LightBarSirenInUse_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_LightBarSirenInUse { + mapem_ts_LightBarSirenInUse_lightBarActivated = 0, + mapem_ts_LightBarSirenInUse_sirenActivated = 1 +} e_mapem_ts_LightBarSirenInUse; + +/* mapem_ts_LightBarSirenInUse */ +typedef BIT_STRING_t mapem_ts_LightBarSirenInUse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LightBarSirenInUse; +asn_struct_free_f mapem_ts_LightBarSirenInUse_free; +asn_struct_print_f mapem_ts_LightBarSirenInUse_print; +asn_constr_check_f mapem_ts_LightBarSirenInUse_constraint; +per_type_decoder_f mapem_ts_LightBarSirenInUse_decode_uper; +per_type_encoder_f mapem_ts_LightBarSirenInUse_encode_uper; +per_type_decoder_f mapem_ts_LightBarSirenInUse_decode_aper; +per_type_encoder_f mapem_ts_LightBarSirenInUse_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_LightBarSirenInUse_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Longitude.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Longitude.h new file mode 100644 index 000000000..63ae42e76 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Longitude_H_ +#define _mapem_ts_Longitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_Longitude { + mapem_ts_Longitude_oneMicrodegreeEast = 10, + mapem_ts_Longitude_oneMicrodegreeWest = -10, + mapem_ts_Longitude_unavailable = 1800000001 +} e_mapem_ts_Longitude; + +/* mapem_ts_Longitude */ +typedef long mapem_ts_Longitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_Longitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Longitude; +asn_struct_free_f mapem_ts_Longitude_free; +asn_struct_print_f mapem_ts_Longitude_print; +asn_constr_check_f mapem_ts_Longitude_constraint; +per_type_decoder_f mapem_ts_Longitude_decode_uper; +per_type_encoder_f mapem_ts_Longitude_encode_uper; +per_type_decoder_f mapem_ts_Longitude_decode_aper; +per_type_encoder_f mapem_ts_Longitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Longitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LongitudinalAcceleration.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LongitudinalAcceleration.h new file mode 100644 index 000000000..4e9165e3d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LongitudinalAcceleration_H_ +#define _mapem_ts_LongitudinalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_LongitudinalAccelerationValue.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_LongitudinalAcceleration */ +typedef struct mapem_ts_LongitudinalAcceleration { + mapem_ts_LongitudinalAccelerationValue_t longitudinalAccelerationValue; + mapem_ts_AccelerationConfidence_t longitudinalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_LongitudinalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LongitudinalAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_LongitudinalAcceleration_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LongitudinalAccelerationValue.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_LongitudinalAccelerationValue.h new file mode 100644 index 000000000..742bb0029 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_LongitudinalAccelerationValue_H_ +#define _mapem_ts_LongitudinalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_LongitudinalAccelerationValue { + mapem_ts_LongitudinalAccelerationValue_pointOneMeterPerSecSquaredForward = 1, + mapem_ts_LongitudinalAccelerationValue_pointOneMeterPerSecSquaredBackward = -1, + mapem_ts_LongitudinalAccelerationValue_unavailable = 161 +} e_mapem_ts_LongitudinalAccelerationValue; + +/* mapem_ts_LongitudinalAccelerationValue */ +typedef long mapem_ts_LongitudinalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_LongitudinalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_LongitudinalAccelerationValue; +asn_struct_free_f mapem_ts_LongitudinalAccelerationValue_free; +asn_struct_print_f mapem_ts_LongitudinalAccelerationValue_print; +asn_constr_check_f mapem_ts_LongitudinalAccelerationValue_constraint; +per_type_decoder_f mapem_ts_LongitudinalAccelerationValue_decode_uper; +per_type_encoder_f mapem_ts_LongitudinalAccelerationValue_encode_uper; +per_type_decoder_f mapem_ts_LongitudinalAccelerationValue_decode_aper; +per_type_encoder_f mapem_ts_LongitudinalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_LongitudinalAccelerationValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MAPEM.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MAPEM.h new file mode 100644 index 000000000..51df7ef6e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MAPEM.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MAPEM-PDU-Descriptions" + * found in "/input/MAPEM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_MAPEM_H_ +#define _mapem_ts_MAPEM_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_ItsPduHeader.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_MapData.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_MAPEM */ +typedef struct mapem_ts_MAPEM { + mapem_ts_ItsPduHeader_t header; + mapem_ts_MapData_t map; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_MAPEM_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_MAPEM; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_MAPEM_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ManeuverAssistList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ManeuverAssistList.h new file mode 100644 index 000000000..7c446cd1f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ManeuverAssistList_H_ +#define _mapem_ts_ManeuverAssistList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_ConnectionManeuverAssist; + +/* mapem_ts_ManeuverAssistList */ +typedef struct mapem_ts_ManeuverAssistList { + A_SEQUENCE_OF(struct mapem_ts_ConnectionManeuverAssist) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_ManeuverAssistList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ManeuverAssistList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_ManeuverAssistList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_ManeuverAssistList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_ManeuverAssistList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_ConnectionManeuverAssist.h" + +#endif /* _mapem_ts_ManeuverAssistList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ManufacturerIdentifier.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ManufacturerIdentifier.h new file mode 100644 index 000000000..891469d73 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ManufacturerIdentifier_H_ +#define _mapem_ts_ManufacturerIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_ManufacturerIdentifier */ +typedef long mapem_ts_ManufacturerIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_ManufacturerIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ManufacturerIdentifier; +asn_struct_free_f mapem_ts_ManufacturerIdentifier_free; +asn_struct_print_f mapem_ts_ManufacturerIdentifier_print; +asn_constr_check_f mapem_ts_ManufacturerIdentifier_constraint; +per_type_decoder_f mapem_ts_ManufacturerIdentifier_decode_uper; +per_type_encoder_f mapem_ts_ManufacturerIdentifier_encode_uper; +per_type_decoder_f mapem_ts_ManufacturerIdentifier_decode_aper; +per_type_encoder_f mapem_ts_ManufacturerIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_ManufacturerIdentifier_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MapData-addGrpC.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MapData-addGrpC.h new file mode 100644 index 000000000..135535002 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_MapData_addGrpC_H_ +#define _mapem_ts_MapData_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_SignalHeadLocationList; + +/* mapem_ts_MapData-addGrpC */ +typedef struct mapem_ts_MapData_addGrpC { + struct mapem_ts_SignalHeadLocationList *signalHeadLocations; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_MapData_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_MapData_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_MapData_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_MapData_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalHeadLocationList.h" + +#endif /* _mapem_ts_MapData_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MapData.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MapData.h new file mode 100644 index 000000000..5e6ba4fb6 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MapData.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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_MapData_H_ +#define _mapem_ts_MapData_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_MinuteOfTheYear.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_MsgCount.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_LayerType.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_LayerID.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_IntersectionGeometryList; +struct mapem_ts_RoadSegmentList; +struct mapem_ts_DataParameters; +struct mapem_ts_RestrictionClassList; +struct mapem_ts_Reg_MapData; + +/* mapem_ts_MapData */ +typedef struct mapem_ts_MapData { + mapem_ts_MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + mapem_ts_MsgCount_t msgIssueRevision; + mapem_ts_LayerType_t *layerType; /* OPTIONAL */ + mapem_ts_LayerID_t *layerID; /* OPTIONAL */ + struct mapem_ts_IntersectionGeometryList *intersections; /* OPTIONAL */ + struct mapem_ts_RoadSegmentList *roadSegments; /* OPTIONAL */ + struct mapem_ts_DataParameters *dataParameters; /* OPTIONAL */ + struct mapem_ts_RestrictionClassList *restrictionList; /* OPTIONAL */ + struct mapem_ts_MapData__regional { + A_SEQUENCE_OF(struct mapem_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; +} mapem_ts_MapData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_MapData; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_MapData_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_MapData_1[9]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionGeometryList.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RoadSegmentList.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_DataParameters.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RestrictionClassList.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_MapData_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MergeDivergeNodeAngle.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MergeDivergeNodeAngle.h new file mode 100644 index 000000000..7fc781999 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_MergeDivergeNodeAngle_H_ +#define _mapem_ts_MergeDivergeNodeAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_MergeDivergeNodeAngle */ +typedef long mapem_ts_MergeDivergeNodeAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_MergeDivergeNodeAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_MergeDivergeNodeAngle; +asn_struct_free_f mapem_ts_MergeDivergeNodeAngle_free; +asn_struct_print_f mapem_ts_MergeDivergeNodeAngle_print; +asn_constr_check_f mapem_ts_MergeDivergeNodeAngle_constraint; +per_type_decoder_f mapem_ts_MergeDivergeNodeAngle_decode_uper; +per_type_encoder_f mapem_ts_MergeDivergeNodeAngle_encode_uper; +per_type_decoder_f mapem_ts_MergeDivergeNodeAngle_decode_aper; +per_type_encoder_f mapem_ts_MergeDivergeNodeAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_MergeDivergeNodeAngle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MinuteOfTheYear.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MinuteOfTheYear.h new file mode 100644 index 000000000..da33f973b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_MinuteOfTheYear_H_ +#define _mapem_ts_MinuteOfTheYear_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_MinuteOfTheYear */ +typedef long mapem_ts_MinuteOfTheYear_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_MinuteOfTheYear_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_MinuteOfTheYear; +asn_struct_free_f mapem_ts_MinuteOfTheYear_free; +asn_struct_print_f mapem_ts_MinuteOfTheYear_print; +asn_constr_check_f mapem_ts_MinuteOfTheYear_constraint; +per_type_decoder_f mapem_ts_MinuteOfTheYear_decode_uper; +per_type_encoder_f mapem_ts_MinuteOfTheYear_encode_uper; +per_type_decoder_f mapem_ts_MinuteOfTheYear_decode_aper; +per_type_encoder_f mapem_ts_MinuteOfTheYear_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_MinuteOfTheYear_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MovementEvent-addGrpC.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MovementEvent-addGrpC.h new file mode 100644 index 000000000..7ba1629aa --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_MovementEvent_addGrpC_H_ +#define _mapem_ts_MovementEvent_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_ExceptionalCondition.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_MovementEvent-addGrpC */ +typedef struct mapem_ts_MovementEvent_addGrpC { + mapem_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; +} mapem_ts_MovementEvent_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_MovementEvent_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_MovementEvent_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_MovementEvent_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_MovementEvent_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MovementEvent.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MovementEvent.h new file mode 100644 index 000000000..c1b638e9d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_MovementEvent_H_ +#define _mapem_ts_MovementEvent_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_MovementPhaseState.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_TimeChangeDetails; +struct mapem_ts_AdvisorySpeedList; +struct mapem_ts_Reg_MovementEvent; + +/* mapem_ts_MovementEvent */ +typedef struct mapem_ts_MovementEvent { + mapem_ts_MovementPhaseState_t eventState; + struct mapem_ts_TimeChangeDetails *timing; /* OPTIONAL */ + struct mapem_ts_AdvisorySpeedList *speeds; /* OPTIONAL */ + struct mapem_ts_MovementEvent__regional { + A_SEQUENCE_OF(struct mapem_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; +} mapem_ts_MovementEvent_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_MovementEvent; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_MovementEvent_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_MovementEvent_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_TimeChangeDetails.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_AdvisorySpeedList.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_MovementEvent_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MovementEventList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MovementEventList.h new file mode 100644 index 000000000..343e49682 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_MovementEventList_H_ +#define _mapem_ts_MovementEventList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_MovementEvent; + +/* mapem_ts_MovementEventList */ +typedef struct mapem_ts_MovementEventList { + A_SEQUENCE_OF(struct mapem_ts_MovementEvent) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_MovementEventList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_MovementEventList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_MovementEventList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_MovementEventList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_MovementEventList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_MovementEvent.h" + +#endif /* _mapem_ts_MovementEventList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MovementList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MovementList.h new file mode 100644 index 000000000..48e6c4759 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_MovementList_H_ +#define _mapem_ts_MovementList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_MovementState; + +/* mapem_ts_MovementList */ +typedef struct mapem_ts_MovementList { + A_SEQUENCE_OF(struct mapem_ts_MovementState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_MovementList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_MovementList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_MovementList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_MovementList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_MovementList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_MovementState.h" + +#endif /* _mapem_ts_MovementList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MovementPhaseState.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MovementPhaseState.h new file mode 100644 index 000000000..0703dad8b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_MovementPhaseState_H_ +#define _mapem_ts_MovementPhaseState_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_MovementPhaseState { + mapem_ts_MovementPhaseState_unavailable = 0, + mapem_ts_MovementPhaseState_dark = 1, + mapem_ts_MovementPhaseState_stop_Then_Proceed = 2, + mapem_ts_MovementPhaseState_stop_And_Remain = 3, + mapem_ts_MovementPhaseState_pre_Movement = 4, + mapem_ts_MovementPhaseState_permissive_Movement_Allowed = 5, + mapem_ts_MovementPhaseState_protected_Movement_Allowed = 6, + mapem_ts_MovementPhaseState_permissive_clearance = 7, + mapem_ts_MovementPhaseState_protected_clearance = 8, + mapem_ts_MovementPhaseState_caution_Conflicting_Traffic = 9 +} e_mapem_ts_MovementPhaseState; + +/* mapem_ts_MovementPhaseState */ +typedef long mapem_ts_MovementPhaseState_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_MovementPhaseState_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_MovementPhaseState; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_MovementPhaseState_specs_1; +asn_struct_free_f mapem_ts_MovementPhaseState_free; +asn_struct_print_f mapem_ts_MovementPhaseState_print; +asn_constr_check_f mapem_ts_MovementPhaseState_constraint; +per_type_decoder_f mapem_ts_MovementPhaseState_decode_uper; +per_type_encoder_f mapem_ts_MovementPhaseState_encode_uper; +per_type_decoder_f mapem_ts_MovementPhaseState_decode_aper; +per_type_encoder_f mapem_ts_MovementPhaseState_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_MovementPhaseState_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MovementState.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MovementState.h new file mode 100644 index 000000000..99c63ad48 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_MovementState_H_ +#define _mapem_ts_MovementState_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_DescriptiveName.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalGroupID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_MovementEventList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_ManeuverAssistList; +struct mapem_ts_Reg_MovementState; + +/* mapem_ts_MovementState */ +typedef struct mapem_ts_MovementState { + mapem_ts_DescriptiveName_t *movementName; /* OPTIONAL */ + mapem_ts_SignalGroupID_t signalGroup; + mapem_ts_MovementEventList_t state_time_speed; + struct mapem_ts_ManeuverAssistList *maneuverAssistList; /* OPTIONAL */ + struct mapem_ts_MovementState__regional { + A_SEQUENCE_OF(struct mapem_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; +} mapem_ts_MovementState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_MovementState; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_MovementState_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_MovementState_1[5]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_ManeuverAssistList.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_MovementState_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MsgCount.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_MsgCount.h new file mode 100644 index 000000000..18629a469 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_MsgCount_H_ +#define _mapem_ts_MsgCount_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_MsgCount */ +typedef long mapem_ts_MsgCount_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_MsgCount_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_MsgCount; +asn_struct_free_f mapem_ts_MsgCount_free; +asn_struct_print_f mapem_ts_MsgCount_print; +asn_constr_check_f mapem_ts_MsgCount_constraint; +per_type_decoder_f mapem_ts_MsgCount_decode_uper; +per_type_encoder_f mapem_ts_MsgCount_encode_uper; +per_type_decoder_f mapem_ts_MsgCount_decode_aper; +per_type_encoder_f mapem_ts_MsgCount_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_MsgCount_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Node-LLmD-64b.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Node-LLmD-64b.h new file mode 100644 index 000000000..c56d90fba --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Node_LLmD_64b_H_ +#define _mapem_ts_Node_LLmD_64b_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_Longitude.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Latitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_Node-LLmD-64b */ +typedef struct mapem_ts_Node_LLmD_64b { + mapem_ts_Longitude_t lon; + mapem_ts_Latitude_t lat; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_Node_LLmD_64b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Node_LLmD_64b; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Node_LLmD_64b_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Node_LLmD_64b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Node_LLmD_64b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Node-XY-20b.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Node-XY-20b.h new file mode 100644 index 000000000..cfc9113d3 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Node_XY_20b_H_ +#define _mapem_ts_Node_XY_20b_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_Offset-B10.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_Node-XY-20b */ +typedef struct mapem_ts_Node_XY_20b { + mapem_ts_Offset_B10_t x; + mapem_ts_Offset_B10_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_Node_XY_20b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Node_XY_20b; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Node_XY_20b_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Node_XY_20b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Node_XY_20b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Node-XY-22b.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Node-XY-22b.h new file mode 100644 index 000000000..db5a93634 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Node_XY_22b_H_ +#define _mapem_ts_Node_XY_22b_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_Offset-B11.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_Node-XY-22b */ +typedef struct mapem_ts_Node_XY_22b { + mapem_ts_Offset_B11_t x; + mapem_ts_Offset_B11_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_Node_XY_22b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Node_XY_22b; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Node_XY_22b_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Node_XY_22b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Node_XY_22b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Node-XY-24b.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Node-XY-24b.h new file mode 100644 index 000000000..11f923b9b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Node_XY_24b_H_ +#define _mapem_ts_Node_XY_24b_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_Offset-B12.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_Node-XY-24b */ +typedef struct mapem_ts_Node_XY_24b { + mapem_ts_Offset_B12_t x; + mapem_ts_Offset_B12_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_Node_XY_24b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Node_XY_24b; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Node_XY_24b_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Node_XY_24b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Node_XY_24b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Node-XY-26b.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Node-XY-26b.h new file mode 100644 index 000000000..06df7182d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Node_XY_26b_H_ +#define _mapem_ts_Node_XY_26b_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_Offset-B13.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_Node-XY-26b */ +typedef struct mapem_ts_Node_XY_26b { + mapem_ts_Offset_B13_t x; + mapem_ts_Offset_B13_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_Node_XY_26b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Node_XY_26b; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Node_XY_26b_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Node_XY_26b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Node_XY_26b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Node-XY-28b.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Node-XY-28b.h new file mode 100644 index 000000000..a4d820cc3 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Node_XY_28b_H_ +#define _mapem_ts_Node_XY_28b_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_Offset-B14.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_Node-XY-28b */ +typedef struct mapem_ts_Node_XY_28b { + mapem_ts_Offset_B14_t x; + mapem_ts_Offset_B14_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_Node_XY_28b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Node_XY_28b; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Node_XY_28b_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Node_XY_28b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Node_XY_28b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Node-XY-32b.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Node-XY-32b.h new file mode 100644 index 000000000..78626972f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Node_XY_32b_H_ +#define _mapem_ts_Node_XY_32b_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_Offset-B16.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_Node-XY-32b */ +typedef struct mapem_ts_Node_XY_32b { + mapem_ts_Offset_B16_t x; + mapem_ts_Offset_B16_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_Node_XY_32b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Node_XY_32b; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Node_XY_32b_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Node_XY_32b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Node_XY_32b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Node.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Node.h new file mode 100644 index 000000000..b386d6ce4 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Node_H_ +#define _mapem_ts_Node_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneConnectionID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_Node */ +typedef struct mapem_ts_Node { + long id; + mapem_ts_LaneID_t *lane; /* OPTIONAL */ + mapem_ts_LaneConnectionID_t *connectionID; /* OPTIONAL */ + mapem_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; +} mapem_ts_Node_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Node; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Node_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Node_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Node_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_NodeAttributeSet-addGrpC.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_NodeAttributeSet-addGrpC.h new file mode 100644 index 000000000..86073ab38 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_NodeAttributeSet_addGrpC_H_ +#define _mapem_ts_NodeAttributeSet_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_PtvRequestType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_NodeLink; +struct mapem_ts_Node; + +/* mapem_ts_NodeAttributeSet-addGrpC */ +typedef struct mapem_ts_NodeAttributeSet_addGrpC { + mapem_ts_PtvRequestType_t *ptvRequest; /* OPTIONAL */ + struct mapem_ts_NodeLink *nodeLink; /* OPTIONAL */ + struct mapem_ts_Node *node; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_NodeAttributeSet_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_NodeAttributeSet_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_NodeAttributeSet_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_NodeAttributeSet_addGrpC_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_NodeLink.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Node.h" + +#endif /* _mapem_ts_NodeAttributeSet_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_NodeAttributeSetXY.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_NodeAttributeSetXY.h new file mode 100644 index 000000000..433b7ec89 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_NodeAttributeSetXY_H_ +#define _mapem_ts_NodeAttributeSetXY_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_Offset-B10.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_NodeAttributeXYList; +struct mapem_ts_SegmentAttributeXYList; +struct mapem_ts_LaneDataAttributeList; +struct mapem_ts_Reg_NodeAttributeSetXY; + +/* mapem_ts_NodeAttributeSetXY */ +typedef struct mapem_ts_NodeAttributeSetXY { + struct mapem_ts_NodeAttributeXYList *localNode; /* OPTIONAL */ + struct mapem_ts_SegmentAttributeXYList *disabled; /* OPTIONAL */ + struct mapem_ts_SegmentAttributeXYList *enabled; /* OPTIONAL */ + struct mapem_ts_LaneDataAttributeList *data; /* OPTIONAL */ + mapem_ts_Offset_B10_t *dWidth; /* OPTIONAL */ + mapem_ts_Offset_B10_t *dElevation; /* OPTIONAL */ + struct mapem_ts_NodeAttributeSetXY__regional { + A_SEQUENCE_OF(struct mapem_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; +} mapem_ts_NodeAttributeSetXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_NodeAttributeSetXY; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_NodeAttributeSetXY_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_NodeAttributeSetXY_1[7]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_NodeAttributeXYList.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_SegmentAttributeXYList.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneDataAttributeList.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_NodeAttributeSetXY_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_NodeAttributeXY.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_NodeAttributeXY.h new file mode 100644 index 000000000..ecb321cc1 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_NodeAttributeXY_H_ +#define _mapem_ts_NodeAttributeXY_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_NodeAttributeXY { + mapem_ts_NodeAttributeXY_reserved = 0, + mapem_ts_NodeAttributeXY_stopLine = 1, + mapem_ts_NodeAttributeXY_roundedCapStyleA = 2, + mapem_ts_NodeAttributeXY_roundedCapStyleB = 3, + mapem_ts_NodeAttributeXY_mergePoint = 4, + mapem_ts_NodeAttributeXY_divergePoint = 5, + mapem_ts_NodeAttributeXY_downstreamStopLine = 6, + mapem_ts_NodeAttributeXY_downstreamStartNode = 7, + mapem_ts_NodeAttributeXY_closedToTraffic = 8, + mapem_ts_NodeAttributeXY_safeIsland = 9, + mapem_ts_NodeAttributeXY_curbPresentAtStepOff = 10, + mapem_ts_NodeAttributeXY_hydrantPresent = 11 + /* + * Enumeration is extensible + */ +} e_mapem_ts_NodeAttributeXY; + +/* mapem_ts_NodeAttributeXY */ +typedef long mapem_ts_NodeAttributeXY_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_NodeAttributeXY_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_NodeAttributeXY; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_NodeAttributeXY_specs_1; +asn_struct_free_f mapem_ts_NodeAttributeXY_free; +asn_struct_print_f mapem_ts_NodeAttributeXY_print; +asn_constr_check_f mapem_ts_NodeAttributeXY_constraint; +per_type_decoder_f mapem_ts_NodeAttributeXY_decode_uper; +per_type_encoder_f mapem_ts_NodeAttributeXY_encode_uper; +per_type_decoder_f mapem_ts_NodeAttributeXY_decode_aper; +per_type_encoder_f mapem_ts_NodeAttributeXY_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_NodeAttributeXY_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_NodeAttributeXYList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_NodeAttributeXYList.h new file mode 100644 index 000000000..0963303ad --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_NodeAttributeXYList_H_ +#define _mapem_ts_NodeAttributeXYList_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_NodeAttributeXY.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_NodeAttributeXYList */ +typedef struct mapem_ts_NodeAttributeXYList { + A_SEQUENCE_OF(mapem_ts_NodeAttributeXY_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_NodeAttributeXYList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_NodeAttributeXYList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_NodeAttributeXYList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_NodeAttributeXYList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_NodeAttributeXYList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_NodeAttributeXYList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_NodeLink.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_NodeLink.h new file mode 100644 index 000000000..b06d28886 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_NodeLink_H_ +#define _mapem_ts_NodeLink_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_Node; + +/* mapem_ts_NodeLink */ +typedef struct mapem_ts_NodeLink { + A_SEQUENCE_OF(struct mapem_ts_Node) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_NodeLink_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_NodeLink; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_NodeLink_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_NodeLink_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_NodeLink_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_Node.h" + +#endif /* _mapem_ts_NodeLink_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_NodeListXY.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_NodeListXY.h new file mode 100644 index 000000000..cbf1bd33d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_NodeListXY_H_ +#define _mapem_ts_NodeListXY_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_NodeSetXY.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_ComputedLane.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_NodeListXY_PR { + mapem_ts_NodeListXY_PR_NOTHING, /* No components present */ + mapem_ts_NodeListXY_PR_nodes, + mapem_ts_NodeListXY_PR_computed + /* Extensions may appear below */ + +} mapem_ts_NodeListXY_PR; + +/* mapem_ts_NodeListXY */ +typedef struct mapem_ts_NodeListXY { + mapem_ts_NodeListXY_PR present; + union mapem_ts_NodeListXY_u { + mapem_ts_NodeSetXY_t nodes; + mapem_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; +} mapem_ts_NodeListXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_NodeListXY; +extern asn_CHOICE_specifics_t asn_SPC_mapem_ts_NodeListXY_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_NodeListXY_1[2]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_NodeListXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_NodeListXY_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_NodeOffsetPointXY.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_NodeOffsetPointXY.h new file mode 100644 index 000000000..e9469531f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_Node-XY-20b.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Node-XY-22b.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Node-XY-24b.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Node-XY-26b.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Node-XY-28b.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Node-XY-32b.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Node-LLmD-64b.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" +#include +#ifndef _mapem_ts_NodeOffsetPointXY_H_ +#define _mapem_ts_NodeOffsetPointXY_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_NodeOffsetPointXY_PR { + mapem_ts_NodeOffsetPointXY_PR_NOTHING, /* No components present */ + mapem_ts_NodeOffsetPointXY_PR_node_XY1, + mapem_ts_NodeOffsetPointXY_PR_node_XY2, + mapem_ts_NodeOffsetPointXY_PR_node_XY3, + mapem_ts_NodeOffsetPointXY_PR_node_XY4, + mapem_ts_NodeOffsetPointXY_PR_node_XY5, + mapem_ts_NodeOffsetPointXY_PR_node_XY6, + mapem_ts_NodeOffsetPointXY_PR_node_LatLon, + mapem_ts_NodeOffsetPointXY_PR_regional +} mapem_ts_NodeOffsetPointXY_PR; + +/* mapem_ts_NodeOffsetPointXY */ +typedef struct mapem_ts_NodeOffsetPointXY { + mapem_ts_NodeOffsetPointXY_PR present; + union mapem_ts_NodeOffsetPointXY_u { + mapem_ts_Node_XY_20b_t node_XY1; + mapem_ts_Node_XY_22b_t node_XY2; + mapem_ts_Node_XY_24b_t node_XY3; + mapem_ts_Node_XY_26b_t node_XY4; + mapem_ts_Node_XY_28b_t node_XY5; + mapem_ts_Node_XY_32b_t node_XY6; + mapem_ts_Node_LLmD_64b_t node_LatLon; + mapem_ts_Reg_NodeOffsetPointXY_t regional; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_NodeOffsetPointXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_NodeOffsetPointXY; +extern asn_CHOICE_specifics_t asn_SPC_mapem_ts_NodeOffsetPointXY_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_NodeOffsetPointXY_1[8]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_NodeOffsetPointXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_NodeOffsetPointXY_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_NodeSetXY.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_NodeSetXY.h new file mode 100644 index 000000000..0711382ff --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_NodeSetXY_H_ +#define _mapem_ts_NodeSetXY_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_NodeXY; + +/* mapem_ts_NodeSetXY */ +typedef struct mapem_ts_NodeSetXY { + A_SEQUENCE_OF(struct mapem_ts_NodeXY) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_NodeSetXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_NodeSetXY; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_NodeSetXY_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_NodeSetXY_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_NodeSetXY_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_NodeXY.h" + +#endif /* _mapem_ts_NodeSetXY_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_NodeXY.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_NodeXY.h new file mode 100644 index 000000000..418d04995 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_NodeXY_H_ +#define _mapem_ts_NodeXY_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_NodeOffsetPointXY.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_NodeAttributeSetXY; + +/* mapem_ts_NodeXY */ +typedef struct mapem_ts_NodeXY { + mapem_ts_NodeOffsetPointXY_t delta; + struct mapem_ts_NodeAttributeSetXY *attributes; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_NodeXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_NodeXY; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_NodeXY_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_NodeXY_1[2]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_NodeAttributeSetXY.h" + +#endif /* _mapem_ts_NodeXY_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_NumberOfOccupants.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_NumberOfOccupants.h new file mode 100644 index 000000000..57eeab02f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_NumberOfOccupants_H_ +#define _mapem_ts_NumberOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_NumberOfOccupants { + mapem_ts_NumberOfOccupants_oneOccupant = 1, + mapem_ts_NumberOfOccupants_unavailable = 127 +} e_mapem_ts_NumberOfOccupants; + +/* mapem_ts_NumberOfOccupants */ +typedef long mapem_ts_NumberOfOccupants_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_NumberOfOccupants; +asn_struct_free_f mapem_ts_NumberOfOccupants_free; +asn_struct_print_f mapem_ts_NumberOfOccupants_print; +asn_constr_check_f mapem_ts_NumberOfOccupants_constraint; +per_type_decoder_f mapem_ts_NumberOfOccupants_decode_uper; +per_type_encoder_f mapem_ts_NumberOfOccupants_encode_uper; +per_type_decoder_f mapem_ts_NumberOfOccupants_decode_aper; +per_type_encoder_f mapem_ts_NumberOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_NumberOfOccupants_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Offset-B09.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Offset-B09.h new file mode 100644 index 000000000..ad96f3c65 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Offset_B09_H_ +#define _mapem_ts_Offset_B09_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_Offset-B09 */ +typedef long mapem_ts_Offset_B09_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_Offset_B09_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Offset_B09; +asn_struct_free_f mapem_ts_Offset_B09_free; +asn_struct_print_f mapem_ts_Offset_B09_print; +asn_constr_check_f mapem_ts_Offset_B09_constraint; +per_type_decoder_f mapem_ts_Offset_B09_decode_uper; +per_type_encoder_f mapem_ts_Offset_B09_encode_uper; +per_type_decoder_f mapem_ts_Offset_B09_decode_aper; +per_type_encoder_f mapem_ts_Offset_B09_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Offset_B09_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Offset-B10.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Offset-B10.h new file mode 100644 index 000000000..fffbe203d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Offset_B10_H_ +#define _mapem_ts_Offset_B10_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_Offset-B10 */ +typedef long mapem_ts_Offset_B10_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_Offset_B10_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Offset_B10; +asn_struct_free_f mapem_ts_Offset_B10_free; +asn_struct_print_f mapem_ts_Offset_B10_print; +asn_constr_check_f mapem_ts_Offset_B10_constraint; +per_type_decoder_f mapem_ts_Offset_B10_decode_uper; +per_type_encoder_f mapem_ts_Offset_B10_encode_uper; +per_type_decoder_f mapem_ts_Offset_B10_decode_aper; +per_type_encoder_f mapem_ts_Offset_B10_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Offset_B10_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Offset-B11.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Offset-B11.h new file mode 100644 index 000000000..3d6558ce6 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Offset_B11_H_ +#define _mapem_ts_Offset_B11_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_Offset-B11 */ +typedef long mapem_ts_Offset_B11_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_Offset_B11_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Offset_B11; +asn_struct_free_f mapem_ts_Offset_B11_free; +asn_struct_print_f mapem_ts_Offset_B11_print; +asn_constr_check_f mapem_ts_Offset_B11_constraint; +per_type_decoder_f mapem_ts_Offset_B11_decode_uper; +per_type_encoder_f mapem_ts_Offset_B11_encode_uper; +per_type_decoder_f mapem_ts_Offset_B11_decode_aper; +per_type_encoder_f mapem_ts_Offset_B11_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Offset_B11_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Offset-B12.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Offset-B12.h new file mode 100644 index 000000000..48ce076cb --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Offset_B12_H_ +#define _mapem_ts_Offset_B12_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_Offset-B12 */ +typedef long mapem_ts_Offset_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_Offset_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Offset_B12; +asn_struct_free_f mapem_ts_Offset_B12_free; +asn_struct_print_f mapem_ts_Offset_B12_print; +asn_constr_check_f mapem_ts_Offset_B12_constraint; +per_type_decoder_f mapem_ts_Offset_B12_decode_uper; +per_type_encoder_f mapem_ts_Offset_B12_encode_uper; +per_type_decoder_f mapem_ts_Offset_B12_decode_aper; +per_type_encoder_f mapem_ts_Offset_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Offset_B12_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Offset-B13.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Offset-B13.h new file mode 100644 index 000000000..d1ec746ea --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Offset_B13_H_ +#define _mapem_ts_Offset_B13_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_Offset-B13 */ +typedef long mapem_ts_Offset_B13_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_Offset_B13_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Offset_B13; +asn_struct_free_f mapem_ts_Offset_B13_free; +asn_struct_print_f mapem_ts_Offset_B13_print; +asn_constr_check_f mapem_ts_Offset_B13_constraint; +per_type_decoder_f mapem_ts_Offset_B13_decode_uper; +per_type_encoder_f mapem_ts_Offset_B13_encode_uper; +per_type_decoder_f mapem_ts_Offset_B13_decode_aper; +per_type_encoder_f mapem_ts_Offset_B13_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Offset_B13_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Offset-B14.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Offset-B14.h new file mode 100644 index 000000000..d2914b71c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Offset_B14_H_ +#define _mapem_ts_Offset_B14_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_Offset-B14 */ +typedef long mapem_ts_Offset_B14_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_Offset_B14_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Offset_B14; +asn_struct_free_f mapem_ts_Offset_B14_free; +asn_struct_print_f mapem_ts_Offset_B14_print; +asn_constr_check_f mapem_ts_Offset_B14_constraint; +per_type_decoder_f mapem_ts_Offset_B14_decode_uper; +per_type_encoder_f mapem_ts_Offset_B14_encode_uper; +per_type_decoder_f mapem_ts_Offset_B14_decode_aper; +per_type_encoder_f mapem_ts_Offset_B14_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Offset_B14_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Offset-B16.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Offset-B16.h new file mode 100644 index 000000000..92cb09d48 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Offset_B16_H_ +#define _mapem_ts_Offset_B16_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_Offset-B16 */ +typedef long mapem_ts_Offset_B16_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_Offset_B16_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Offset_B16; +asn_struct_free_f mapem_ts_Offset_B16_free; +asn_struct_print_f mapem_ts_Offset_B16_print; +asn_constr_check_f mapem_ts_Offset_B16_constraint; +per_type_decoder_f mapem_ts_Offset_B16_decode_uper; +per_type_encoder_f mapem_ts_Offset_B16_encode_uper; +per_type_decoder_f mapem_ts_Offset_B16_decode_aper; +per_type_encoder_f mapem_ts_Offset_B16_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Offset_B16_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_OpeningDaysHours.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_OpeningDaysHours.h new file mode 100644 index 000000000..6e4d4fa15 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_OpeningDaysHours_H_ +#define _mapem_ts_OpeningDaysHours_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_OpeningDaysHours */ +typedef UTF8String_t mapem_ts_OpeningDaysHours_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_OpeningDaysHours; +asn_struct_free_f mapem_ts_OpeningDaysHours_free; +asn_struct_print_f mapem_ts_OpeningDaysHours_print; +asn_constr_check_f mapem_ts_OpeningDaysHours_constraint; +per_type_decoder_f mapem_ts_OpeningDaysHours_decode_uper; +per_type_encoder_f mapem_ts_OpeningDaysHours_encode_uper; +per_type_decoder_f mapem_ts_OpeningDaysHours_decode_aper; +per_type_encoder_f mapem_ts_OpeningDaysHours_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_OpeningDaysHours_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_OverlayLaneList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_OverlayLaneList.h new file mode 100644 index 000000000..a3042ca44 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_OverlayLaneList_H_ +#define _mapem_ts_OverlayLaneList_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_OverlayLaneList */ +typedef struct mapem_ts_OverlayLaneList { + A_SEQUENCE_OF(mapem_ts_LaneID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_OverlayLaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_OverlayLaneList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_OverlayLaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_OverlayLaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_OverlayLaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_OverlayLaneList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PathDeltaTime.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PathDeltaTime.h new file mode 100644 index 000000000..97b57be24 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PathDeltaTime_H_ +#define _mapem_ts_PathDeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_PathDeltaTime { + mapem_ts_PathDeltaTime_tenMilliSecondsInPast = 1 +} e_mapem_ts_PathDeltaTime; + +/* mapem_ts_PathDeltaTime */ +typedef long mapem_ts_PathDeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_PathDeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PathDeltaTime; +asn_struct_free_f mapem_ts_PathDeltaTime_free; +asn_struct_print_f mapem_ts_PathDeltaTime_print; +asn_constr_check_f mapem_ts_PathDeltaTime_constraint; +per_type_decoder_f mapem_ts_PathDeltaTime_decode_uper; +per_type_encoder_f mapem_ts_PathDeltaTime_encode_uper; +per_type_decoder_f mapem_ts_PathDeltaTime_decode_aper; +per_type_encoder_f mapem_ts_PathDeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_PathDeltaTime_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PathHistory.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PathHistory.h new file mode 100644 index 000000000..8e1b51d55 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PathHistory_H_ +#define _mapem_ts_PathHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_PathPoint; + +/* mapem_ts_PathHistory */ +typedef struct mapem_ts_PathHistory { + A_SEQUENCE_OF(struct mapem_ts_PathPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_PathHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PathHistory; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_PathHistory_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_PathHistory_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_PathHistory_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_PathPoint.h" + +#endif /* _mapem_ts_PathHistory_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PathPoint.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PathPoint.h new file mode 100644 index 000000000..a5e415c2a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PathPoint_H_ +#define _mapem_ts_PathPoint_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_DeltaReferencePosition.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_PathDeltaTime.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_PathPoint */ +typedef struct mapem_ts_PathPoint { + mapem_ts_DeltaReferencePosition_t pathPosition; + mapem_ts_PathDeltaTime_t *pathDeltaTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_PathPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PathPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_PathPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_PathPoint_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_PathPoint_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PedestrianBicycleDetect.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PedestrianBicycleDetect.h new file mode 100644 index 000000000..bd3a02e12 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PedestrianBicycleDetect_H_ +#define _mapem_ts_PedestrianBicycleDetect_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_PedestrianBicycleDetect */ +typedef BOOLEAN_t mapem_ts_PedestrianBicycleDetect_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PedestrianBicycleDetect; +asn_struct_free_f mapem_ts_PedestrianBicycleDetect_free; +asn_struct_print_f mapem_ts_PedestrianBicycleDetect_print; +asn_constr_check_f mapem_ts_PedestrianBicycleDetect_constraint; +per_type_decoder_f mapem_ts_PedestrianBicycleDetect_decode_uper; +per_type_encoder_f mapem_ts_PedestrianBicycleDetect_encode_uper; +per_type_decoder_f mapem_ts_PedestrianBicycleDetect_decode_aper; +per_type_encoder_f mapem_ts_PedestrianBicycleDetect_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_PedestrianBicycleDetect_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PerformanceClass.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PerformanceClass.h new file mode 100644 index 000000000..082081b7d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PerformanceClass_H_ +#define _mapem_ts_PerformanceClass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_PerformanceClass { + mapem_ts_PerformanceClass_unavailable = 0, + mapem_ts_PerformanceClass_performanceClassA = 1, + mapem_ts_PerformanceClass_performanceClassB = 2 +} e_mapem_ts_PerformanceClass; + +/* mapem_ts_PerformanceClass */ +typedef long mapem_ts_PerformanceClass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PerformanceClass; +asn_struct_free_f mapem_ts_PerformanceClass_free; +asn_struct_print_f mapem_ts_PerformanceClass_print; +asn_constr_check_f mapem_ts_PerformanceClass_constraint; +per_type_decoder_f mapem_ts_PerformanceClass_decode_uper; +per_type_encoder_f mapem_ts_PerformanceClass_encode_uper; +per_type_decoder_f mapem_ts_PerformanceClass_decode_aper; +per_type_encoder_f mapem_ts_PerformanceClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_PerformanceClass_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PhoneNumber.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PhoneNumber.h new file mode 100644 index 000000000..49ce30ea8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PhoneNumber_H_ +#define _mapem_ts_PhoneNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_PhoneNumber */ +typedef NumericString_t mapem_ts_PhoneNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_PhoneNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PhoneNumber; +asn_struct_free_f mapem_ts_PhoneNumber_free; +asn_struct_print_f mapem_ts_PhoneNumber_print; +asn_constr_check_f mapem_ts_PhoneNumber_constraint; +per_type_decoder_f mapem_ts_PhoneNumber_decode_uper; +per_type_encoder_f mapem_ts_PhoneNumber_encode_uper; +per_type_decoder_f mapem_ts_PhoneNumber_decode_aper; +per_type_encoder_f mapem_ts_PhoneNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_PhoneNumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PosCentMass.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PosCentMass.h new file mode 100644 index 000000000..3f70431cf --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PosCentMass_H_ +#define _mapem_ts_PosCentMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_PosCentMass { + mapem_ts_PosCentMass_tenCentimeters = 1, + mapem_ts_PosCentMass_unavailable = 63 +} e_mapem_ts_PosCentMass; + +/* mapem_ts_PosCentMass */ +typedef long mapem_ts_PosCentMass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PosCentMass; +asn_struct_free_f mapem_ts_PosCentMass_free; +asn_struct_print_f mapem_ts_PosCentMass_print; +asn_constr_check_f mapem_ts_PosCentMass_constraint; +per_type_decoder_f mapem_ts_PosCentMass_decode_uper; +per_type_encoder_f mapem_ts_PosCentMass_encode_uper; +per_type_decoder_f mapem_ts_PosCentMass_decode_aper; +per_type_encoder_f mapem_ts_PosCentMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_PosCentMass_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PosConfidenceEllipse.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PosConfidenceEllipse.h new file mode 100644 index 000000000..94c73cc65 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PosConfidenceEllipse_H_ +#define _mapem_ts_PosConfidenceEllipse_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_SemiAxisLength.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_HeadingValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_PosConfidenceEllipse */ +typedef struct mapem_ts_PosConfidenceEllipse { + mapem_ts_SemiAxisLength_t semiMajorConfidence; + mapem_ts_SemiAxisLength_t semiMinorConfidence; + mapem_ts_HeadingValue_t semiMajorOrientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_PosConfidenceEllipse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PosConfidenceEllipse; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_PosConfidenceEllipse_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_PosConfidenceEllipse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_PosConfidenceEllipse_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PosFrontAx.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PosFrontAx.h new file mode 100644 index 000000000..b3e996f21 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PosFrontAx_H_ +#define _mapem_ts_PosFrontAx_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_PosFrontAx { + mapem_ts_PosFrontAx_tenCentimeters = 1, + mapem_ts_PosFrontAx_unavailable = 20 +} e_mapem_ts_PosFrontAx; + +/* mapem_ts_PosFrontAx */ +typedef long mapem_ts_PosFrontAx_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PosFrontAx; +asn_struct_free_f mapem_ts_PosFrontAx_free; +asn_struct_print_f mapem_ts_PosFrontAx_print; +asn_constr_check_f mapem_ts_PosFrontAx_constraint; +per_type_decoder_f mapem_ts_PosFrontAx_decode_uper; +per_type_encoder_f mapem_ts_PosFrontAx_encode_uper; +per_type_decoder_f mapem_ts_PosFrontAx_decode_aper; +per_type_encoder_f mapem_ts_PosFrontAx_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_PosFrontAx_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PosLonCarr.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PosLonCarr.h new file mode 100644 index 000000000..db232293d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PosLonCarr_H_ +#define _mapem_ts_PosLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_PosLonCarr { + mapem_ts_PosLonCarr_oneCentimeter = 1, + mapem_ts_PosLonCarr_unavailable = 127 +} e_mapem_ts_PosLonCarr; + +/* mapem_ts_PosLonCarr */ +typedef long mapem_ts_PosLonCarr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PosLonCarr; +asn_struct_free_f mapem_ts_PosLonCarr_free; +asn_struct_print_f mapem_ts_PosLonCarr_print; +asn_constr_check_f mapem_ts_PosLonCarr_constraint; +per_type_decoder_f mapem_ts_PosLonCarr_decode_uper; +per_type_encoder_f mapem_ts_PosLonCarr_encode_uper; +per_type_decoder_f mapem_ts_PosLonCarr_decode_aper; +per_type_encoder_f mapem_ts_PosLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_PosLonCarr_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PosPillar.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PosPillar.h new file mode 100644 index 000000000..7f334decb --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PosPillar_H_ +#define _mapem_ts_PosPillar_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_PosPillar { + mapem_ts_PosPillar_tenCentimeters = 1, + mapem_ts_PosPillar_unavailable = 30 +} e_mapem_ts_PosPillar; + +/* mapem_ts_PosPillar */ +typedef long mapem_ts_PosPillar_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_PosPillar_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PosPillar; +asn_struct_free_f mapem_ts_PosPillar_free; +asn_struct_print_f mapem_ts_PosPillar_print; +asn_constr_check_f mapem_ts_PosPillar_constraint; +per_type_decoder_f mapem_ts_PosPillar_decode_uper; +per_type_encoder_f mapem_ts_PosPillar_encode_uper; +per_type_decoder_f mapem_ts_PosPillar_decode_aper; +per_type_encoder_f mapem_ts_PosPillar_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_PosPillar_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Position3D-addGrpC.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Position3D-addGrpC.h new file mode 100644 index 000000000..c8154479e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Position3D_addGrpC_H_ +#define _mapem_ts_Position3D_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_Position3D-addGrpC */ +typedef struct mapem_ts_Position3D_addGrpC { + mapem_ts_Altitude_t altitude; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_Position3D_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Position3D_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Position3D_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Position3D_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Position3D_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Position3D.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Position3D.h new file mode 100644 index 000000000..e652c6949 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Position3D_H_ +#define _mapem_ts_Position3D_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_Latitude.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Longitude.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Elevation.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_Reg_Position3D; + +/* mapem_ts_Position3D */ +typedef struct mapem_ts_Position3D { + mapem_ts_Latitude_t lat; + mapem_ts_Longitude_t Long; + mapem_ts_Elevation_t *elevation; /* OPTIONAL */ + struct mapem_ts_Position3D__regional { + A_SEQUENCE_OF(struct mapem_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; +} mapem_ts_Position3D_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Position3D; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Position3D_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Position3D_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_Position3D_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PositionConfidence.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PositionConfidence.h new file mode 100644 index 000000000..96971371c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PositionConfidence_H_ +#define _mapem_ts_PositionConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_PositionConfidence { + mapem_ts_PositionConfidence_unavailable = 0, + mapem_ts_PositionConfidence_a500m = 1, + mapem_ts_PositionConfidence_a200m = 2, + mapem_ts_PositionConfidence_a100m = 3, + mapem_ts_PositionConfidence_a50m = 4, + mapem_ts_PositionConfidence_a20m = 5, + mapem_ts_PositionConfidence_a10m = 6, + mapem_ts_PositionConfidence_a5m = 7, + mapem_ts_PositionConfidence_a2m = 8, + mapem_ts_PositionConfidence_a1m = 9, + mapem_ts_PositionConfidence_a50cm = 10, + mapem_ts_PositionConfidence_a20cm = 11, + mapem_ts_PositionConfidence_a10cm = 12, + mapem_ts_PositionConfidence_a5cm = 13, + mapem_ts_PositionConfidence_a2cm = 14, + mapem_ts_PositionConfidence_a1cm = 15 +} e_mapem_ts_PositionConfidence; + +/* mapem_ts_PositionConfidence */ +typedef long mapem_ts_PositionConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_PositionConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PositionConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_PositionConfidence_specs_1; +asn_struct_free_f mapem_ts_PositionConfidence_free; +asn_struct_print_f mapem_ts_PositionConfidence_print; +asn_constr_check_f mapem_ts_PositionConfidence_constraint; +per_type_decoder_f mapem_ts_PositionConfidence_decode_uper; +per_type_encoder_f mapem_ts_PositionConfidence_encode_uper; +per_type_decoder_f mapem_ts_PositionConfidence_decode_aper; +per_type_encoder_f mapem_ts_PositionConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_PositionConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PositionConfidenceSet.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PositionConfidenceSet.h new file mode 100644 index 000000000..cf5b47566 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PositionConfidenceSet_H_ +#define _mapem_ts_PositionConfidenceSet_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_PositionConfidence.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_ElevationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_PositionConfidenceSet */ +typedef struct mapem_ts_PositionConfidenceSet { + mapem_ts_PositionConfidence_t pos; + mapem_ts_ElevationConfidence_t elevation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_PositionConfidenceSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PositionConfidenceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_PositionConfidenceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_PositionConfidenceSet_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_PositionConfidenceSet_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PositionOfOccupants.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PositionOfOccupants.h new file mode 100644 index 000000000..42baa0ea2 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PositionOfOccupants_H_ +#define _mapem_ts_PositionOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_PositionOfOccupants { + mapem_ts_PositionOfOccupants_row1LeftOccupied = 0, + mapem_ts_PositionOfOccupants_row1RightOccupied = 1, + mapem_ts_PositionOfOccupants_row1MidOccupied = 2, + mapem_ts_PositionOfOccupants_row1NotDetectable = 3, + mapem_ts_PositionOfOccupants_row1NotPresent = 4, + mapem_ts_PositionOfOccupants_row2LeftOccupied = 5, + mapem_ts_PositionOfOccupants_row2RightOccupied = 6, + mapem_ts_PositionOfOccupants_row2MidOccupied = 7, + mapem_ts_PositionOfOccupants_row2NotDetectable = 8, + mapem_ts_PositionOfOccupants_row2NotPresent = 9, + mapem_ts_PositionOfOccupants_row3LeftOccupied = 10, + mapem_ts_PositionOfOccupants_row3RightOccupied = 11, + mapem_ts_PositionOfOccupants_row3MidOccupied = 12, + mapem_ts_PositionOfOccupants_row3NotDetectable = 13, + mapem_ts_PositionOfOccupants_row3NotPresent = 14, + mapem_ts_PositionOfOccupants_row4LeftOccupied = 15, + mapem_ts_PositionOfOccupants_row4RightOccupied = 16, + mapem_ts_PositionOfOccupants_row4MidOccupied = 17, + mapem_ts_PositionOfOccupants_row4NotDetectable = 18, + mapem_ts_PositionOfOccupants_row4NotPresent = 19 +} e_mapem_ts_PositionOfOccupants; + +/* mapem_ts_PositionOfOccupants */ +typedef BIT_STRING_t mapem_ts_PositionOfOccupants_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PositionOfOccupants; +asn_struct_free_f mapem_ts_PositionOfOccupants_free; +asn_struct_print_f mapem_ts_PositionOfOccupants_print; +asn_constr_check_f mapem_ts_PositionOfOccupants_constraint; +per_type_decoder_f mapem_ts_PositionOfOccupants_decode_uper; +per_type_encoder_f mapem_ts_PositionOfOccupants_encode_uper; +per_type_decoder_f mapem_ts_PositionOfOccupants_decode_aper; +per_type_encoder_f mapem_ts_PositionOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_PositionOfOccupants_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PositionOfPillars.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PositionOfPillars.h new file mode 100644 index 000000000..94589a9c1 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PositionOfPillars_H_ +#define _mapem_ts_PositionOfPillars_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_PosPillar.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_PositionOfPillars */ +typedef struct mapem_ts_PositionOfPillars { + A_SEQUENCE_OF(mapem_ts_PosPillar_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_PositionOfPillars_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PositionOfPillars; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_PositionOfPillars_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PositionalAccuracy.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PositionalAccuracy.h new file mode 100644 index 000000000..42d73281f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PositionalAccuracy_H_ +#define _mapem_ts_PositionalAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_SemiMajorAxisAccuracy.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_SemiMinorAxisAccuracy.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_SemiMajorAxisOrientation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_PositionalAccuracy */ +typedef struct mapem_ts_PositionalAccuracy { + mapem_ts_SemiMajorAxisAccuracy_t semiMajor; + mapem_ts_SemiMinorAxisAccuracy_t semiMinor; + mapem_ts_SemiMajorAxisOrientation_t orientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_PositionalAccuracy_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PositionalAccuracy; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_PositionalAccuracy_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_PositionalAccuracy_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_PositionalAccuracy_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PositioningSolutionType.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PositioningSolutionType.h new file mode 100644 index 000000000..1a80a1997 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PositioningSolutionType_H_ +#define _mapem_ts_PositioningSolutionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_PositioningSolutionType { + mapem_ts_PositioningSolutionType_noPositioningSolution = 0, + mapem_ts_PositioningSolutionType_sGNSS = 1, + mapem_ts_PositioningSolutionType_dGNSS = 2, + mapem_ts_PositioningSolutionType_sGNSSplusDR = 3, + mapem_ts_PositioningSolutionType_dGNSSplusDR = 4, + mapem_ts_PositioningSolutionType_dR = 5 + /* + * Enumeration is extensible + */ +} e_mapem_ts_PositioningSolutionType; + +/* mapem_ts_PositioningSolutionType */ +typedef long mapem_ts_PositioningSolutionType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PositioningSolutionType; +asn_struct_free_f mapem_ts_PositioningSolutionType_free; +asn_struct_print_f mapem_ts_PositioningSolutionType_print; +asn_constr_check_f mapem_ts_PositioningSolutionType_constraint; +per_type_decoder_f mapem_ts_PositioningSolutionType_decode_uper; +per_type_encoder_f mapem_ts_PositioningSolutionType_encode_uper; +per_type_decoder_f mapem_ts_PositioningSolutionType_decode_aper; +per_type_encoder_f mapem_ts_PositioningSolutionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_PositioningSolutionType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PostCrashSubCauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PostCrashSubCauseCode.h new file mode 100644 index 000000000..388f36354 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PostCrashSubCauseCode_H_ +#define _mapem_ts_PostCrashSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_PostCrashSubCauseCode { + mapem_ts_PostCrashSubCauseCode_unavailable = 0, + mapem_ts_PostCrashSubCauseCode_accidentWithoutECallTriggered = 1, + mapem_ts_PostCrashSubCauseCode_accidentWithECallManuallyTriggered = 2, + mapem_ts_PostCrashSubCauseCode_accidentWithECallAutomaticallyTriggered = 3, + mapem_ts_PostCrashSubCauseCode_accidentWithECallTriggeredWithoutAccessToCellularNetwork = 4 +} e_mapem_ts_PostCrashSubCauseCode; + +/* mapem_ts_PostCrashSubCauseCode */ +typedef long mapem_ts_PostCrashSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PostCrashSubCauseCode; +asn_struct_free_f mapem_ts_PostCrashSubCauseCode_free; +asn_struct_print_f mapem_ts_PostCrashSubCauseCode_print; +asn_constr_check_f mapem_ts_PostCrashSubCauseCode_constraint; +per_type_decoder_f mapem_ts_PostCrashSubCauseCode_decode_uper; +per_type_encoder_f mapem_ts_PostCrashSubCauseCode_encode_uper; +per_type_decoder_f mapem_ts_PostCrashSubCauseCode_decode_aper; +per_type_encoder_f mapem_ts_PostCrashSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_PostCrashSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PreemptPriorityList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PreemptPriorityList.h new file mode 100644 index 000000000..0f0fe87f8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PreemptPriorityList_H_ +#define _mapem_ts_PreemptPriorityList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_SignalControlZone; + +/* mapem_ts_PreemptPriorityList */ +typedef struct mapem_ts_PreemptPriorityList { + A_SEQUENCE_OF(struct mapem_ts_SignalControlZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_PreemptPriorityList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PreemptPriorityList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_PreemptPriorityList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_PreemptPriorityList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_PreemptPriorityList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalControlZone.h" + +#endif /* _mapem_ts_PreemptPriorityList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PrioritizationResponse.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PrioritizationResponse.h new file mode 100644 index 000000000..a7962f3c1 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PrioritizationResponse_H_ +#define _mapem_ts_PrioritizationResponse_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_StationID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_PrioritizationResponseStatus.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalGroupID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_PrioritizationResponse */ +typedef struct mapem_ts_PrioritizationResponse { + mapem_ts_StationID_t stationID; + mapem_ts_PrioritizationResponseStatus_t priorState; + mapem_ts_SignalGroupID_t signalGroup; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_PrioritizationResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PrioritizationResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_PrioritizationResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_PrioritizationResponse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_PrioritizationResponse_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PrioritizationResponseList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PrioritizationResponseList.h new file mode 100644 index 000000000..75ec001f3 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PrioritizationResponseList_H_ +#define _mapem_ts_PrioritizationResponseList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_PrioritizationResponse; + +/* mapem_ts_PrioritizationResponseList */ +typedef struct mapem_ts_PrioritizationResponseList { + A_SEQUENCE_OF(struct mapem_ts_PrioritizationResponse) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_PrioritizationResponseList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PrioritizationResponseList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_PrioritizationResponseList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_PrioritizationResponseList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_PrioritizationResponseList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_PrioritizationResponse.h" + +#endif /* _mapem_ts_PrioritizationResponseList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PrioritizationResponseStatus.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PrioritizationResponseStatus.h new file mode 100644 index 000000000..30bf15019 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PrioritizationResponseStatus_H_ +#define _mapem_ts_PrioritizationResponseStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_PrioritizationResponseStatus { + mapem_ts_PrioritizationResponseStatus_unknown = 0, + mapem_ts_PrioritizationResponseStatus_requested = 1, + mapem_ts_PrioritizationResponseStatus_processing = 2, + mapem_ts_PrioritizationResponseStatus_watchOtherTraffic = 3, + mapem_ts_PrioritizationResponseStatus_granted = 4, + mapem_ts_PrioritizationResponseStatus_rejected = 5, + mapem_ts_PrioritizationResponseStatus_maxPresence = 6, + mapem_ts_PrioritizationResponseStatus_reserviceLocked = 7 + /* + * Enumeration is extensible + */ +} e_mapem_ts_PrioritizationResponseStatus; + +/* mapem_ts_PrioritizationResponseStatus */ +typedef long mapem_ts_PrioritizationResponseStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_PrioritizationResponseStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PrioritizationResponseStatus; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_PrioritizationResponseStatus_specs_1; +asn_struct_free_f mapem_ts_PrioritizationResponseStatus_free; +asn_struct_print_f mapem_ts_PrioritizationResponseStatus_print; +asn_constr_check_f mapem_ts_PrioritizationResponseStatus_constraint; +per_type_decoder_f mapem_ts_PrioritizationResponseStatus_decode_uper; +per_type_encoder_f mapem_ts_PrioritizationResponseStatus_encode_uper; +per_type_decoder_f mapem_ts_PrioritizationResponseStatus_decode_aper; +per_type_encoder_f mapem_ts_PrioritizationResponseStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_PrioritizationResponseStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PriorityRequestType.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PriorityRequestType.h new file mode 100644 index 000000000..70f2b00b0 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PriorityRequestType_H_ +#define _mapem_ts_PriorityRequestType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_PriorityRequestType { + mapem_ts_PriorityRequestType_priorityRequestTypeReserved = 0, + mapem_ts_PriorityRequestType_priorityRequest = 1, + mapem_ts_PriorityRequestType_priorityRequestUpdate = 2, + mapem_ts_PriorityRequestType_priorityCancellation = 3 + /* + * Enumeration is extensible + */ +} e_mapem_ts_PriorityRequestType; + +/* mapem_ts_PriorityRequestType */ +typedef long mapem_ts_PriorityRequestType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_PriorityRequestType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PriorityRequestType; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_PriorityRequestType_specs_1; +asn_struct_free_f mapem_ts_PriorityRequestType_free; +asn_struct_print_f mapem_ts_PriorityRequestType_print; +asn_constr_check_f mapem_ts_PriorityRequestType_constraint; +per_type_decoder_f mapem_ts_PriorityRequestType_decode_uper; +per_type_encoder_f mapem_ts_PriorityRequestType_encode_uper; +per_type_decoder_f mapem_ts_PriorityRequestType_decode_aper; +per_type_encoder_f mapem_ts_PriorityRequestType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_PriorityRequestType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ProtectedCommunicationZone.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ProtectedCommunicationZone.h new file mode 100644 index 000000000..d35efb1ee --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ProtectedCommunicationZone_H_ +#define _mapem_ts_ProtectedCommunicationZone_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_ProtectedZoneType.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_TimestampIts.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Latitude.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Longitude.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_ProtectedZoneRadius.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_ProtectedZoneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_ProtectedCommunicationZone */ +typedef struct mapem_ts_ProtectedCommunicationZone { + mapem_ts_ProtectedZoneType_t protectedZoneType; + mapem_ts_TimestampIts_t *expiryTime; /* OPTIONAL */ + mapem_ts_Latitude_t protectedZoneLatitude; + mapem_ts_Longitude_t protectedZoneLongitude; + mapem_ts_ProtectedZoneRadius_t *protectedZoneRadius; /* OPTIONAL */ + mapem_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; +} mapem_ts_ProtectedCommunicationZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ProtectedCommunicationZone; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_ProtectedCommunicationZone_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_ProtectedCommunicationZone_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_ProtectedCommunicationZone_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ProtectedCommunicationZonesRSU.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ProtectedCommunicationZonesRSU.h new file mode 100644 index 000000000..5005bc44b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ProtectedCommunicationZonesRSU_H_ +#define _mapem_ts_ProtectedCommunicationZonesRSU_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_ProtectedCommunicationZone; + +/* mapem_ts_ProtectedCommunicationZonesRSU */ +typedef struct mapem_ts_ProtectedCommunicationZonesRSU { + A_SEQUENCE_OF(struct mapem_ts_ProtectedCommunicationZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_ProtectedCommunicationZonesRSU_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ProtectedCommunicationZonesRSU; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_ProtectedCommunicationZone.h" + +#endif /* _mapem_ts_ProtectedCommunicationZonesRSU_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ProtectedZoneID.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ProtectedZoneID.h new file mode 100644 index 000000000..b532a3c03 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ProtectedZoneID_H_ +#define _mapem_ts_ProtectedZoneID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_ProtectedZoneID */ +typedef long mapem_ts_ProtectedZoneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_ProtectedZoneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ProtectedZoneID; +asn_struct_free_f mapem_ts_ProtectedZoneID_free; +asn_struct_print_f mapem_ts_ProtectedZoneID_print; +asn_constr_check_f mapem_ts_ProtectedZoneID_constraint; +per_type_decoder_f mapem_ts_ProtectedZoneID_decode_uper; +per_type_encoder_f mapem_ts_ProtectedZoneID_encode_uper; +per_type_decoder_f mapem_ts_ProtectedZoneID_decode_aper; +per_type_encoder_f mapem_ts_ProtectedZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_ProtectedZoneID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ProtectedZoneRadius.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ProtectedZoneRadius.h new file mode 100644 index 000000000..f66d1a86b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ProtectedZoneRadius_H_ +#define _mapem_ts_ProtectedZoneRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_ProtectedZoneRadius { + mapem_ts_ProtectedZoneRadius_oneMeter = 1 +} e_mapem_ts_ProtectedZoneRadius; + +/* mapem_ts_ProtectedZoneRadius */ +typedef long mapem_ts_ProtectedZoneRadius_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_ProtectedZoneRadius_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ProtectedZoneRadius; +asn_struct_free_f mapem_ts_ProtectedZoneRadius_free; +asn_struct_print_f mapem_ts_ProtectedZoneRadius_print; +asn_constr_check_f mapem_ts_ProtectedZoneRadius_constraint; +per_type_decoder_f mapem_ts_ProtectedZoneRadius_decode_uper; +per_type_encoder_f mapem_ts_ProtectedZoneRadius_encode_uper; +per_type_decoder_f mapem_ts_ProtectedZoneRadius_decode_aper; +per_type_encoder_f mapem_ts_ProtectedZoneRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_ProtectedZoneRadius_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ProtectedZoneType.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ProtectedZoneType.h new file mode 100644 index 000000000..7d33e54bd --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ProtectedZoneType_H_ +#define _mapem_ts_ProtectedZoneType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_ProtectedZoneType { + mapem_ts_ProtectedZoneType_permanentCenDsrcTolling = 0, + /* + * Enumeration is extensible + */ + mapem_ts_ProtectedZoneType_temporaryCenDsrcTolling = 1 +} e_mapem_ts_ProtectedZoneType; + +/* mapem_ts_ProtectedZoneType */ +typedef long mapem_ts_ProtectedZoneType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_ProtectedZoneType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ProtectedZoneType; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_ProtectedZoneType_specs_1; +asn_struct_free_f mapem_ts_ProtectedZoneType_free; +asn_struct_print_f mapem_ts_ProtectedZoneType_print; +asn_constr_check_f mapem_ts_ProtectedZoneType_constraint; +per_type_decoder_f mapem_ts_ProtectedZoneType_decode_uper; +per_type_encoder_f mapem_ts_ProtectedZoneType_encode_uper; +per_type_decoder_f mapem_ts_ProtectedZoneType_decode_aper; +per_type_encoder_f mapem_ts_ProtectedZoneType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_ProtectedZoneType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PtActivation.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PtActivation.h new file mode 100644 index 000000000..21104b5ac --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PtActivation_H_ +#define _mapem_ts_PtActivation_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_PtActivationType.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_PtActivationData.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_PtActivation */ +typedef struct mapem_ts_PtActivation { + mapem_ts_PtActivationType_t ptActivationType; + mapem_ts_PtActivationData_t ptActivationData; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_PtActivation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PtActivation; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_PtActivation_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PtActivationData.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PtActivationData.h new file mode 100644 index 000000000..9874c85a0 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PtActivationData_H_ +#define _mapem_ts_PtActivationData_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_PtActivationData */ +typedef OCTET_STRING_t mapem_ts_PtActivationData_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_PtActivationData_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PtActivationData; +asn_struct_free_f mapem_ts_PtActivationData_free; +asn_struct_print_f mapem_ts_PtActivationData_print; +asn_constr_check_f mapem_ts_PtActivationData_constraint; +per_type_decoder_f mapem_ts_PtActivationData_decode_uper; +per_type_encoder_f mapem_ts_PtActivationData_encode_uper; +per_type_decoder_f mapem_ts_PtActivationData_decode_aper; +per_type_encoder_f mapem_ts_PtActivationData_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_PtActivationData_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PtActivationType.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PtActivationType.h new file mode 100644 index 000000000..a77a4290f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PtActivationType_H_ +#define _mapem_ts_PtActivationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_PtActivationType { + mapem_ts_PtActivationType_undefinedCodingType = 0, + mapem_ts_PtActivationType_r09_16CodingType = 1, + mapem_ts_PtActivationType_vdv_50149CodingType = 2 +} e_mapem_ts_PtActivationType; + +/* mapem_ts_PtActivationType */ +typedef long mapem_ts_PtActivationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_PtActivationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PtActivationType; +asn_struct_free_f mapem_ts_PtActivationType_free; +asn_struct_print_f mapem_ts_PtActivationType_print; +asn_constr_check_f mapem_ts_PtActivationType_constraint; +per_type_decoder_f mapem_ts_PtActivationType_decode_uper; +per_type_encoder_f mapem_ts_PtActivationType_encode_uper; +per_type_decoder_f mapem_ts_PtActivationType_decode_aper; +per_type_encoder_f mapem_ts_PtActivationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_PtActivationType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PtvRequestType.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_PtvRequestType.h new file mode 100644 index 000000000..09f405c99 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_PtvRequestType_H_ +#define _mapem_ts_PtvRequestType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_PtvRequestType { + mapem_ts_PtvRequestType_preRequest = 0, + mapem_ts_PtvRequestType_mainRequest = 1, + mapem_ts_PtvRequestType_doorCloseRequest = 2, + mapem_ts_PtvRequestType_cancelRequest = 3, + mapem_ts_PtvRequestType_emergencyRequest = 4 + /* + * Enumeration is extensible + */ +} e_mapem_ts_PtvRequestType; + +/* mapem_ts_PtvRequestType */ +typedef long mapem_ts_PtvRequestType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_PtvRequestType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_PtvRequestType; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_PtvRequestType_specs_1; +asn_struct_free_f mapem_ts_PtvRequestType_free; +asn_struct_print_f mapem_ts_PtvRequestType_print; +asn_constr_check_f mapem_ts_PtvRequestType_constraint; +per_type_decoder_f mapem_ts_PtvRequestType_decode_uper; +per_type_encoder_f mapem_ts_PtvRequestType_encode_uper; +per_type_decoder_f mapem_ts_PtvRequestType_decode_aper; +per_type_encoder_f mapem_ts_PtvRequestType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_PtvRequestType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RTCM-Revision.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RTCM-Revision.h new file mode 100644 index 000000000..555207dc6 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RTCM_Revision_H_ +#define _mapem_ts_RTCM_Revision_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_RTCM_Revision { + mapem_ts_RTCM_Revision_unknown = 0, + mapem_ts_RTCM_Revision_rtcmRev2 = 1, + mapem_ts_RTCM_Revision_rtcmRev3 = 2, + mapem_ts_RTCM_Revision_reserved = 3 + /* + * Enumeration is extensible + */ +} e_mapem_ts_RTCM_Revision; + +/* mapem_ts_RTCM-Revision */ +typedef long mapem_ts_RTCM_Revision_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_RTCM_Revision_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RTCM_Revision; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_RTCM_Revision_specs_1; +asn_struct_free_f mapem_ts_RTCM_Revision_free; +asn_struct_print_f mapem_ts_RTCM_Revision_print; +asn_constr_check_f mapem_ts_RTCM_Revision_constraint; +per_type_decoder_f mapem_ts_RTCM_Revision_decode_uper; +per_type_encoder_f mapem_ts_RTCM_Revision_encode_uper; +per_type_decoder_f mapem_ts_RTCM_Revision_decode_aper; +per_type_encoder_f mapem_ts_RTCM_Revision_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RTCM_Revision_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RTCMcorrections.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RTCMcorrections.h new file mode 100644 index 000000000..55a82c1cb --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RTCMcorrections_H_ +#define _mapem_ts_RTCMcorrections_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_MsgCount.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RTCM-Revision.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_MinuteOfTheYear.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RTCMmessageList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_FullPositionVector; +struct mapem_ts_RTCMheader; +struct mapem_ts_Reg_RTCMcorrections; + +/* mapem_ts_RTCMcorrections */ +typedef struct mapem_ts_RTCMcorrections { + mapem_ts_MsgCount_t msgCnt; + mapem_ts_RTCM_Revision_t rev; + mapem_ts_MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + struct mapem_ts_FullPositionVector *anchorPoint; /* OPTIONAL */ + struct mapem_ts_RTCMheader *rtcmHeader; /* OPTIONAL */ + mapem_ts_RTCMmessageList_t msgs; + struct mapem_ts_RTCMcorrections__regional { + A_SEQUENCE_OF(struct mapem_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; +} mapem_ts_RTCMcorrections_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RTCMcorrections; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_FullPositionVector.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RTCMheader.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_RTCMcorrections_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RTCMheader.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RTCMheader.h new file mode 100644 index 000000000..459463255 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RTCMheader_H_ +#define _mapem_ts_RTCMheader_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_GNSSstatus.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_AntennaOffsetSet.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_RTCMheader */ +typedef struct mapem_ts_RTCMheader { + mapem_ts_GNSSstatus_t status; + mapem_ts_AntennaOffsetSet_t offsetSet; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_RTCMheader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RTCMheader; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_RTCMheader_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_RTCMheader_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RTCMheader_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RTCMmessage.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RTCMmessage.h new file mode 100644 index 000000000..2dc794265 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RTCMmessage_H_ +#define _mapem_ts_RTCMmessage_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_RTCMmessage */ +typedef OCTET_STRING_t mapem_ts_RTCMmessage_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_RTCMmessage_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RTCMmessage; +asn_struct_free_f mapem_ts_RTCMmessage_free; +asn_struct_print_f mapem_ts_RTCMmessage_print; +asn_constr_check_f mapem_ts_RTCMmessage_constraint; +per_type_decoder_f mapem_ts_RTCMmessage_decode_uper; +per_type_encoder_f mapem_ts_RTCMmessage_encode_uper; +per_type_decoder_f mapem_ts_RTCMmessage_decode_aper; +per_type_encoder_f mapem_ts_RTCMmessage_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RTCMmessage_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RTCMmessageList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RTCMmessageList.h new file mode 100644 index 000000000..fec3393e6 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RTCMmessageList_H_ +#define _mapem_ts_RTCMmessageList_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RTCMmessage.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_RTCMmessageList */ +typedef struct mapem_ts_RTCMmessageList { + A_SEQUENCE_OF(mapem_ts_RTCMmessage_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_RTCMmessageList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RTCMmessageList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_RTCMmessageList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_RTCMmessageList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_RTCMmessageList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RTCMmessageList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ReferencePosition.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ReferencePosition.h new file mode 100644 index 000000000..8d423d1b9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ReferencePosition_H_ +#define _mapem_ts_ReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_Latitude.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Longitude.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_PosConfidenceEllipse.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_ReferencePosition */ +typedef struct mapem_ts_ReferencePosition { + mapem_ts_Latitude_t latitude; + mapem_ts_Longitude_t longitude; + mapem_ts_PosConfidenceEllipse_t positionConfidenceEllipse; + mapem_ts_Altitude_t altitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_ReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_ReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_ReferencePosition_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_ReferencePosition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RegionId.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RegionId.h new file mode 100644 index 000000000..1e23cc7ae --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RegionId_H_ +#define _mapem_ts_RegionId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_RegionId */ +typedef long mapem_ts_RegionId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_RegionId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RegionId; +asn_struct_free_f mapem_ts_RegionId_free; +asn_struct_print_f mapem_ts_RegionId_print; +asn_constr_check_f mapem_ts_RegionId_constraint; +per_type_decoder_f mapem_ts_RegionId_decode_uper; +per_type_encoder_f mapem_ts_RegionId_encode_uper; +per_type_decoder_f mapem_ts_RegionId_decode_aper; +per_type_encoder_f mapem_ts_RegionId_encode_aper; +#define mapem_ts_RegionId_noRegion ((mapem_ts_RegionId_t)0) +#define mapem_ts_RegionId_addGrpA ((mapem_ts_RegionId_t)1) +#define mapem_ts_RegionId_addGrpB ((mapem_ts_RegionId_t)2) +#define mapem_ts_RegionId_addGrpC ((mapem_ts_RegionId_t)3) + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RegionId_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h new file mode 100644 index 000000000..f61d8c184 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionId.h" +#include +#include +#include "etsi_its_mapem_ts_coding/mapem_ts_MapData-addGrpC.h" +#include +#include +#include +#include "etsi_its_mapem_ts_coding/mapem_ts_ConnectionManeuverAssist-addGrpC.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_ConnectionTrajectory-addGrpC.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionState-addGrpC.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-addGrpC.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_MovementEvent-addGrpC.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_NodeAttributeSet-addGrpC.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Position3D-addGrpC.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RequestorDescription-addGrpC.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RestrictionUserType-addGrpC.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalStatusPackage-addGrpC.h" +#ifndef _mapem_ts_RegionalExtension_H_ +#define _mapem_ts_RegionalExtension_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_Reg_MapData__regExtValue_PR { + mapem_ts_Reg_MapData__regExtValue_PR_NOTHING, /* No components present */ + mapem_ts_Reg_MapData__regExtValue_PR_MapData_addGrpC +} mapem_ts_Reg_MapData__regExtValue_PR; +typedef enum mapem_ts_Reg_RTCMcorrections__regExtValue_PR { + mapem_ts_Reg_RTCMcorrections__regExtValue_PR_NOTHING /* No components present */ + +} mapem_ts_Reg_RTCMcorrections__regExtValue_PR; +typedef enum mapem_ts_Reg_SPAT__regExtValue_PR { + mapem_ts_Reg_SPAT__regExtValue_PR_NOTHING /* No components present */ + +} mapem_ts_Reg_SPAT__regExtValue_PR; +typedef enum mapem_ts_Reg_SignalRequestMessage__regExtValue_PR { + mapem_ts_Reg_SignalRequestMessage__regExtValue_PR_NOTHING /* No components present */ + +} mapem_ts_Reg_SignalRequestMessage__regExtValue_PR; +typedef enum mapem_ts_Reg_SignalStatusMessage__regExtValue_PR { + mapem_ts_Reg_SignalStatusMessage__regExtValue_PR_NOTHING /* No components present */ + +} mapem_ts_Reg_SignalStatusMessage__regExtValue_PR; +typedef enum mapem_ts_Reg_AdvisorySpeed__regExtValue_PR { + mapem_ts_Reg_AdvisorySpeed__regExtValue_PR_NOTHING /* No components present */ + +} mapem_ts_Reg_AdvisorySpeed__regExtValue_PR; +typedef enum mapem_ts_Reg_ComputedLane__regExtValue_PR { + mapem_ts_Reg_ComputedLane__regExtValue_PR_NOTHING /* No components present */ + +} mapem_ts_Reg_ComputedLane__regExtValue_PR; +typedef enum mapem_ts_Reg_ConnectionManeuverAssist__regExtValue_PR { + mapem_ts_Reg_ConnectionManeuverAssist__regExtValue_PR_NOTHING, /* No components present */ + mapem_ts_Reg_ConnectionManeuverAssist__regExtValue_PR_ConnectionManeuverAssist_addGrpC +} mapem_ts_Reg_ConnectionManeuverAssist__regExtValue_PR; +typedef enum mapem_ts_Reg_GenericLane__regExtValue_PR { + mapem_ts_Reg_GenericLane__regExtValue_PR_NOTHING, /* No components present */ + mapem_ts_Reg_GenericLane__regExtValue_PR_ConnectionTrajectory_addGrpC +} mapem_ts_Reg_GenericLane__regExtValue_PR; +typedef enum mapem_ts_Reg_IntersectionGeometry__regExtValue_PR { + mapem_ts_Reg_IntersectionGeometry__regExtValue_PR_NOTHING /* No components present */ + +} mapem_ts_Reg_IntersectionGeometry__regExtValue_PR; +typedef enum mapem_ts_Reg_IntersectionState__regExtValue_PR { + mapem_ts_Reg_IntersectionState__regExtValue_PR_NOTHING, /* No components present */ + mapem_ts_Reg_IntersectionState__regExtValue_PR_IntersectionState_addGrpC +} mapem_ts_Reg_IntersectionState__regExtValue_PR; +typedef enum mapem_ts_Reg_LaneAttributes__regExtValue_PR { + mapem_ts_Reg_LaneAttributes__regExtValue_PR_NOTHING, /* No components present */ + mapem_ts_Reg_LaneAttributes__regExtValue_PR_LaneAttributes_addGrpC +} mapem_ts_Reg_LaneAttributes__regExtValue_PR; +typedef enum mapem_ts_Reg_LaneDataAttribute__regExtValue_PR { + mapem_ts_Reg_LaneDataAttribute__regExtValue_PR_NOTHING /* No components present */ + +} mapem_ts_Reg_LaneDataAttribute__regExtValue_PR; +typedef enum mapem_ts_Reg_MovementEvent__regExtValue_PR { + mapem_ts_Reg_MovementEvent__regExtValue_PR_NOTHING, /* No components present */ + mapem_ts_Reg_MovementEvent__regExtValue_PR_MovementEvent_addGrpC +} mapem_ts_Reg_MovementEvent__regExtValue_PR; +typedef enum mapem_ts_Reg_MovementState__regExtValue_PR { + mapem_ts_Reg_MovementState__regExtValue_PR_NOTHING /* No components present */ + +} mapem_ts_Reg_MovementState__regExtValue_PR; +typedef enum mapem_ts_Reg_NodeAttributeSetXY__regExtValue_PR { + mapem_ts_Reg_NodeAttributeSetXY__regExtValue_PR_NOTHING, /* No components present */ + mapem_ts_Reg_NodeAttributeSetXY__regExtValue_PR_NodeAttributeSet_addGrpC +} mapem_ts_Reg_NodeAttributeSetXY__regExtValue_PR; +typedef enum mapem_ts_Reg_NodeOffsetPointXY__regExtValue_PR { + mapem_ts_Reg_NodeOffsetPointXY__regExtValue_PR_NOTHING /* No components present */ + +} mapem_ts_Reg_NodeOffsetPointXY__regExtValue_PR; +typedef enum mapem_ts_Reg_Position3D__regExtValue_PR { + mapem_ts_Reg_Position3D__regExtValue_PR_NOTHING, /* No components present */ + mapem_ts_Reg_Position3D__regExtValue_PR_Position3D_addGrpC +} mapem_ts_Reg_Position3D__regExtValue_PR; +typedef enum mapem_ts_Reg_RequestorDescription__regExtValue_PR { + mapem_ts_Reg_RequestorDescription__regExtValue_PR_NOTHING, /* No components present */ + mapem_ts_Reg_RequestorDescription__regExtValue_PR_RequestorDescription_addGrpC +} mapem_ts_Reg_RequestorDescription__regExtValue_PR; +typedef enum mapem_ts_Reg_RequestorType__regExtValue_PR { + mapem_ts_Reg_RequestorType__regExtValue_PR_NOTHING /* No components present */ + +} mapem_ts_Reg_RequestorType__regExtValue_PR; +typedef enum mapem_ts_Reg_RestrictionUserType__regExtValue_PR { + mapem_ts_Reg_RestrictionUserType__regExtValue_PR_NOTHING, /* No components present */ + mapem_ts_Reg_RestrictionUserType__regExtValue_PR_RestrictionUserType_addGrpC +} mapem_ts_Reg_RestrictionUserType__regExtValue_PR; +typedef enum mapem_ts_Reg_RoadSegment__regExtValue_PR { + mapem_ts_Reg_RoadSegment__regExtValue_PR_NOTHING /* No components present */ + +} mapem_ts_Reg_RoadSegment__regExtValue_PR; +typedef enum mapem_ts_Reg_SignalControlZone__regExtValue_PR { + mapem_ts_Reg_SignalControlZone__regExtValue_PR_NOTHING /* No components present */ + +} mapem_ts_Reg_SignalControlZone__regExtValue_PR; +typedef enum mapem_ts_Reg_SignalRequest__regExtValue_PR { + mapem_ts_Reg_SignalRequest__regExtValue_PR_NOTHING /* No components present */ + +} mapem_ts_Reg_SignalRequest__regExtValue_PR; +typedef enum mapem_ts_Reg_SignalRequestPackage__regExtValue_PR { + mapem_ts_Reg_SignalRequestPackage__regExtValue_PR_NOTHING /* No components present */ + +} mapem_ts_Reg_SignalRequestPackage__regExtValue_PR; +typedef enum mapem_ts_Reg_SignalStatus__regExtValue_PR { + mapem_ts_Reg_SignalStatus__regExtValue_PR_NOTHING /* No components present */ + +} mapem_ts_Reg_SignalStatus__regExtValue_PR; +typedef enum mapem_ts_Reg_SignalStatusPackage__regExtValue_PR { + mapem_ts_Reg_SignalStatusPackage__regExtValue_PR_NOTHING, /* No components present */ + mapem_ts_Reg_SignalStatusPackage__regExtValue_PR_SignalStatusPackage_addGrpC +} mapem_ts_Reg_SignalStatusPackage__regExtValue_PR; + +/* mapem_ts_RegionalExtension */ +typedef struct mapem_ts_Reg_MapData { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_MapData__regExtValue { + mapem_ts_Reg_MapData__regExtValue_PR present; + union mapem_ts_Reg_MapData__mapem_ts_regExtValue_u { + mapem_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; +} mapem_ts_Reg_MapData_t; +typedef struct mapem_ts_Reg_RTCMcorrections { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_RTCMcorrections__regExtValue { + mapem_ts_Reg_RTCMcorrections__regExtValue_PR present; + union mapem_ts_Reg_RTCMcorrections__mapem_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; +} mapem_ts_Reg_RTCMcorrections_t; +typedef struct mapem_ts_Reg_SPAT { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_SPAT__regExtValue { + mapem_ts_Reg_SPAT__regExtValue_PR present; + union mapem_ts_Reg_SPAT__mapem_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; +} mapem_ts_Reg_SPAT_t; +typedef struct mapem_ts_Reg_SignalRequestMessage { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_SignalRequestMessage__regExtValue { + mapem_ts_Reg_SignalRequestMessage__regExtValue_PR present; + union mapem_ts_Reg_SignalRequestMessage__mapem_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; +} mapem_ts_Reg_SignalRequestMessage_t; +typedef struct mapem_ts_Reg_SignalStatusMessage { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_SignalStatusMessage__regExtValue { + mapem_ts_Reg_SignalStatusMessage__regExtValue_PR present; + union mapem_ts_Reg_SignalStatusMessage__mapem_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; +} mapem_ts_Reg_SignalStatusMessage_t; +typedef struct mapem_ts_Reg_AdvisorySpeed { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_AdvisorySpeed__regExtValue { + mapem_ts_Reg_AdvisorySpeed__regExtValue_PR present; + union mapem_ts_Reg_AdvisorySpeed__mapem_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; +} mapem_ts_Reg_AdvisorySpeed_t; +typedef struct mapem_ts_Reg_ComputedLane { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_ComputedLane__regExtValue { + mapem_ts_Reg_ComputedLane__regExtValue_PR present; + union mapem_ts_Reg_ComputedLane__mapem_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; +} mapem_ts_Reg_ComputedLane_t; +typedef struct mapem_ts_Reg_ConnectionManeuverAssist { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_ConnectionManeuverAssist__regExtValue { + mapem_ts_Reg_ConnectionManeuverAssist__regExtValue_PR present; + union mapem_ts_Reg_ConnectionManeuverAssist__mapem_ts_regExtValue_u { + mapem_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; +} mapem_ts_Reg_ConnectionManeuverAssist_t; +typedef struct mapem_ts_Reg_GenericLane { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_GenericLane__regExtValue { + mapem_ts_Reg_GenericLane__regExtValue_PR present; + union mapem_ts_Reg_GenericLane__mapem_ts_regExtValue_u { + mapem_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; +} mapem_ts_Reg_GenericLane_t; +typedef struct mapem_ts_Reg_IntersectionGeometry { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_IntersectionGeometry__regExtValue { + mapem_ts_Reg_IntersectionGeometry__regExtValue_PR present; + union mapem_ts_Reg_IntersectionGeometry__mapem_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; +} mapem_ts_Reg_IntersectionGeometry_t; +typedef struct mapem_ts_Reg_IntersectionState { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_IntersectionState__regExtValue { + mapem_ts_Reg_IntersectionState__regExtValue_PR present; + union mapem_ts_Reg_IntersectionState__mapem_ts_regExtValue_u { + mapem_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; +} mapem_ts_Reg_IntersectionState_t; +typedef struct mapem_ts_Reg_LaneAttributes { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_LaneAttributes__regExtValue { + mapem_ts_Reg_LaneAttributes__regExtValue_PR present; + union mapem_ts_Reg_LaneAttributes__mapem_ts_regExtValue_u { + mapem_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; +} mapem_ts_Reg_LaneAttributes_t; +typedef struct mapem_ts_Reg_LaneDataAttribute { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_LaneDataAttribute__regExtValue { + mapem_ts_Reg_LaneDataAttribute__regExtValue_PR present; + union mapem_ts_Reg_LaneDataAttribute__mapem_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; +} mapem_ts_Reg_LaneDataAttribute_t; +typedef struct mapem_ts_Reg_MovementEvent { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_MovementEvent__regExtValue { + mapem_ts_Reg_MovementEvent__regExtValue_PR present; + union mapem_ts_Reg_MovementEvent__mapem_ts_regExtValue_u { + mapem_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; +} mapem_ts_Reg_MovementEvent_t; +typedef struct mapem_ts_Reg_MovementState { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_MovementState__regExtValue { + mapem_ts_Reg_MovementState__regExtValue_PR present; + union mapem_ts_Reg_MovementState__mapem_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; +} mapem_ts_Reg_MovementState_t; +typedef struct mapem_ts_Reg_NodeAttributeSetXY { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_NodeAttributeSetXY__regExtValue { + mapem_ts_Reg_NodeAttributeSetXY__regExtValue_PR present; + union mapem_ts_Reg_NodeAttributeSetXY__mapem_ts_regExtValue_u { + mapem_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; +} mapem_ts_Reg_NodeAttributeSetXY_t; +typedef struct mapem_ts_Reg_NodeOffsetPointXY { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_NodeOffsetPointXY__regExtValue { + mapem_ts_Reg_NodeOffsetPointXY__regExtValue_PR present; + union mapem_ts_Reg_NodeOffsetPointXY__mapem_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; +} mapem_ts_Reg_NodeOffsetPointXY_t; +typedef struct mapem_ts_Reg_Position3D { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_Position3D__regExtValue { + mapem_ts_Reg_Position3D__regExtValue_PR present; + union mapem_ts_Reg_Position3D__mapem_ts_regExtValue_u { + mapem_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; +} mapem_ts_Reg_Position3D_t; +typedef struct mapem_ts_Reg_RequestorDescription { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_RequestorDescription__regExtValue { + mapem_ts_Reg_RequestorDescription__regExtValue_PR present; + union mapem_ts_Reg_RequestorDescription__mapem_ts_regExtValue_u { + mapem_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; +} mapem_ts_Reg_RequestorDescription_t; +typedef struct mapem_ts_Reg_RequestorType { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_RequestorType__regExtValue { + mapem_ts_Reg_RequestorType__regExtValue_PR present; + union mapem_ts_Reg_RequestorType__mapem_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; +} mapem_ts_Reg_RequestorType_t; +typedef struct mapem_ts_Reg_RestrictionUserType { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_RestrictionUserType__regExtValue { + mapem_ts_Reg_RestrictionUserType__regExtValue_PR present; + union mapem_ts_Reg_RestrictionUserType__mapem_ts_regExtValue_u { + mapem_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; +} mapem_ts_Reg_RestrictionUserType_t; +typedef struct mapem_ts_Reg_RoadSegment { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_RoadSegment__regExtValue { + mapem_ts_Reg_RoadSegment__regExtValue_PR present; + union mapem_ts_Reg_RoadSegment__mapem_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; +} mapem_ts_Reg_RoadSegment_t; +typedef struct mapem_ts_Reg_SignalControlZone { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_SignalControlZone__regExtValue { + mapem_ts_Reg_SignalControlZone__regExtValue_PR present; + union mapem_ts_Reg_SignalControlZone__mapem_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; +} mapem_ts_Reg_SignalControlZone_t; +typedef struct mapem_ts_Reg_SignalRequest { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_SignalRequest__regExtValue { + mapem_ts_Reg_SignalRequest__regExtValue_PR present; + union mapem_ts_Reg_SignalRequest__mapem_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; +} mapem_ts_Reg_SignalRequest_t; +typedef struct mapem_ts_Reg_SignalRequestPackage { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_SignalRequestPackage__regExtValue { + mapem_ts_Reg_SignalRequestPackage__regExtValue_PR present; + union mapem_ts_Reg_SignalRequestPackage__mapem_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; +} mapem_ts_Reg_SignalRequestPackage_t; +typedef struct mapem_ts_Reg_SignalStatus { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_SignalStatus__regExtValue { + mapem_ts_Reg_SignalStatus__regExtValue_PR present; + union mapem_ts_Reg_SignalStatus__mapem_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; +} mapem_ts_Reg_SignalStatus_t; +typedef struct mapem_ts_Reg_SignalStatusPackage { + mapem_ts_RegionId_t regionId; + struct mapem_ts_Reg_SignalStatusPackage__regExtValue { + mapem_ts_Reg_SignalStatusPackage__regExtValue_PR present; + union mapem_ts_Reg_SignalStatusPackage__mapem_ts_regExtValue_u { + mapem_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; +} mapem_ts_Reg_SignalStatusPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_MapData; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_MapData_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_MapData_1[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_RTCMcorrections; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_RTCMcorrections_specs_4; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_RTCMcorrections_4[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_SPAT; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_SPAT_specs_7; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_SPAT_7[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_SignalRequestMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_SignalRequestMessage_specs_10; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_SignalRequestMessage_10[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_SignalStatusMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_SignalStatusMessage_specs_13; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_SignalStatusMessage_13[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_AdvisorySpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_AdvisorySpeed_specs_16; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_AdvisorySpeed_16[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_ComputedLane; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_ComputedLane_specs_19; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_ComputedLane_19[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_ConnectionManeuverAssist; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_ConnectionManeuverAssist_specs_22; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_ConnectionManeuverAssist_22[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_GenericLane; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_GenericLane_specs_25; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_GenericLane_25[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_IntersectionGeometry; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_IntersectionGeometry_specs_28; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_IntersectionGeometry_28[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_IntersectionState; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_IntersectionState_specs_31; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_IntersectionState_31[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_LaneAttributes; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_LaneAttributes_specs_34; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_LaneAttributes_34[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_LaneDataAttribute; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_LaneDataAttribute_specs_37; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_LaneDataAttribute_37[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_MovementEvent; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_MovementEvent_specs_40; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_MovementEvent_40[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_MovementState; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_MovementState_specs_43; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_MovementState_43[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_NodeAttributeSetXY; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_NodeAttributeSetXY_specs_46; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_NodeAttributeSetXY_46[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_NodeOffsetPointXY; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_NodeOffsetPointXY_specs_49; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_NodeOffsetPointXY_49[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_Position3D; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_Position3D_specs_52; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_Position3D_52[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_RequestorDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_RequestorDescription_specs_55; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_RequestorDescription_55[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_RequestorType; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_RequestorType_specs_58; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_RequestorType_58[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_RestrictionUserType; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_RestrictionUserType_specs_61; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_RestrictionUserType_61[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_RoadSegment; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_RoadSegment_specs_64; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_RoadSegment_64[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_SignalControlZone; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_SignalControlZone_specs_67; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_SignalControlZone_67[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_SignalRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_SignalRequest_specs_70; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_SignalRequest_70[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_SignalRequestPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_SignalRequestPackage_specs_73; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_SignalRequestPackage_73[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_SignalStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_SignalStatus_specs_76; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_SignalStatus_76[2]; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Reg_SignalStatusPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Reg_SignalStatusPackage_specs_79; +extern asn_TYPE_member_t asn_MBR_mapem_ts_Reg_SignalStatusPackage_79[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RegionalExtension_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RegulatorySpeedLimit.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RegulatorySpeedLimit.h new file mode 100644 index 000000000..f7b031ef3 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RegulatorySpeedLimit_H_ +#define _mapem_ts_RegulatorySpeedLimit_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_SpeedLimitType.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Velocity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_RegulatorySpeedLimit */ +typedef struct mapem_ts_RegulatorySpeedLimit { + mapem_ts_SpeedLimitType_t type; + mapem_ts_Velocity_t speed; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_RegulatorySpeedLimit_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RegulatorySpeedLimit; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_RegulatorySpeedLimit_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_RegulatorySpeedLimit_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RegulatorySpeedLimit_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RejectedReason.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RejectedReason.h new file mode 100644 index 000000000..596f80b2e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RejectedReason_H_ +#define _mapem_ts_RejectedReason_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_RejectedReason { + mapem_ts_RejectedReason_unknown = 0, + mapem_ts_RejectedReason_exceptionalCondition = 1, + mapem_ts_RejectedReason_maxWaitingTimeExceeded = 2, + mapem_ts_RejectedReason_ptPriorityDisabled = 3, + mapem_ts_RejectedReason_higherPTPriorityGranted = 4, + mapem_ts_RejectedReason_vehicleTrackingUnknown = 5 + /* + * Enumeration is extensible + */ +} e_mapem_ts_RejectedReason; + +/* mapem_ts_RejectedReason */ +typedef long mapem_ts_RejectedReason_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_RejectedReason_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RejectedReason; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_RejectedReason_specs_1; +asn_struct_free_f mapem_ts_RejectedReason_free; +asn_struct_print_f mapem_ts_RejectedReason_print; +asn_constr_check_f mapem_ts_RejectedReason_constraint; +per_type_decoder_f mapem_ts_RejectedReason_decode_uper; +per_type_encoder_f mapem_ts_RejectedReason_encode_uper; +per_type_decoder_f mapem_ts_RejectedReason_decode_aper; +per_type_encoder_f mapem_ts_RejectedReason_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RejectedReason_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RelevanceDistance.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RelevanceDistance.h new file mode 100644 index 000000000..c233f7537 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RelevanceDistance_H_ +#define _mapem_ts_RelevanceDistance_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_RelevanceDistance { + mapem_ts_RelevanceDistance_lessThan50m = 0, + mapem_ts_RelevanceDistance_lessThan100m = 1, + mapem_ts_RelevanceDistance_lessThan200m = 2, + mapem_ts_RelevanceDistance_lessThan500m = 3, + mapem_ts_RelevanceDistance_lessThan1000m = 4, + mapem_ts_RelevanceDistance_lessThan5km = 5, + mapem_ts_RelevanceDistance_lessThan10km = 6, + mapem_ts_RelevanceDistance_over10km = 7 +} e_mapem_ts_RelevanceDistance; + +/* mapem_ts_RelevanceDistance */ +typedef long mapem_ts_RelevanceDistance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RelevanceDistance; +asn_struct_free_f mapem_ts_RelevanceDistance_free; +asn_struct_print_f mapem_ts_RelevanceDistance_print; +asn_constr_check_f mapem_ts_RelevanceDistance_constraint; +per_type_decoder_f mapem_ts_RelevanceDistance_decode_uper; +per_type_encoder_f mapem_ts_RelevanceDistance_encode_uper; +per_type_decoder_f mapem_ts_RelevanceDistance_decode_aper; +per_type_encoder_f mapem_ts_RelevanceDistance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RelevanceDistance_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RelevanceTrafficDirection.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RelevanceTrafficDirection.h new file mode 100644 index 000000000..92c55023f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RelevanceTrafficDirection_H_ +#define _mapem_ts_RelevanceTrafficDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_RelevanceTrafficDirection { + mapem_ts_RelevanceTrafficDirection_allTrafficDirections = 0, + mapem_ts_RelevanceTrafficDirection_upstreamTraffic = 1, + mapem_ts_RelevanceTrafficDirection_downstreamTraffic = 2, + mapem_ts_RelevanceTrafficDirection_oppositeTraffic = 3 +} e_mapem_ts_RelevanceTrafficDirection; + +/* mapem_ts_RelevanceTrafficDirection */ +typedef long mapem_ts_RelevanceTrafficDirection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RelevanceTrafficDirection; +asn_struct_free_f mapem_ts_RelevanceTrafficDirection_free; +asn_struct_print_f mapem_ts_RelevanceTrafficDirection_print; +asn_constr_check_f mapem_ts_RelevanceTrafficDirection_constraint; +per_type_decoder_f mapem_ts_RelevanceTrafficDirection_decode_uper; +per_type_encoder_f mapem_ts_RelevanceTrafficDirection_encode_uper; +per_type_decoder_f mapem_ts_RelevanceTrafficDirection_decode_aper; +per_type_encoder_f mapem_ts_RelevanceTrafficDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RelevanceTrafficDirection_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RequestID.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RequestID.h new file mode 100644 index 000000000..d5e2d1c80 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RequestID_H_ +#define _mapem_ts_RequestID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_RequestID */ +typedef long mapem_ts_RequestID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_RequestID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RequestID; +asn_struct_free_f mapem_ts_RequestID_free; +asn_struct_print_f mapem_ts_RequestID_print; +asn_constr_check_f mapem_ts_RequestID_constraint; +per_type_decoder_f mapem_ts_RequestID_decode_uper; +per_type_encoder_f mapem_ts_RequestID_encode_uper; +per_type_decoder_f mapem_ts_RequestID_decode_aper; +per_type_encoder_f mapem_ts_RequestID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RequestID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RequestImportanceLevel.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RequestImportanceLevel.h new file mode 100644 index 000000000..0077ee14b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RequestImportanceLevel_H_ +#define _mapem_ts_RequestImportanceLevel_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_RequestImportanceLevel { + mapem_ts_RequestImportanceLevel_requestImportanceLevelUnKnown = 0, + mapem_ts_RequestImportanceLevel_requestImportanceLevel1 = 1, + mapem_ts_RequestImportanceLevel_requestImportanceLevel2 = 2, + mapem_ts_RequestImportanceLevel_requestImportanceLevel3 = 3, + mapem_ts_RequestImportanceLevel_requestImportanceLevel4 = 4, + mapem_ts_RequestImportanceLevel_requestImportanceLevel5 = 5, + mapem_ts_RequestImportanceLevel_requestImportanceLevel6 = 6, + mapem_ts_RequestImportanceLevel_requestImportanceLevel7 = 7, + mapem_ts_RequestImportanceLevel_requestImportanceLevel8 = 8, + mapem_ts_RequestImportanceLevel_requestImportanceLevel9 = 9, + mapem_ts_RequestImportanceLevel_requestImportanceLevel10 = 10, + mapem_ts_RequestImportanceLevel_requestImportanceLevel11 = 11, + mapem_ts_RequestImportanceLevel_requestImportanceLevel12 = 12, + mapem_ts_RequestImportanceLevel_requestImportanceLevel13 = 13, + mapem_ts_RequestImportanceLevel_requestImportanceLevel14 = 14, + mapem_ts_RequestImportanceLevel_requestImportanceReserved = 15 +} e_mapem_ts_RequestImportanceLevel; + +/* mapem_ts_RequestImportanceLevel */ +typedef long mapem_ts_RequestImportanceLevel_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_RequestImportanceLevel_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RequestImportanceLevel; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_RequestImportanceLevel_specs_1; +asn_struct_free_f mapem_ts_RequestImportanceLevel_free; +asn_struct_print_f mapem_ts_RequestImportanceLevel_print; +asn_constr_check_f mapem_ts_RequestImportanceLevel_constraint; +per_type_decoder_f mapem_ts_RequestImportanceLevel_decode_uper; +per_type_encoder_f mapem_ts_RequestImportanceLevel_encode_uper; +per_type_decoder_f mapem_ts_RequestImportanceLevel_decode_aper; +per_type_encoder_f mapem_ts_RequestImportanceLevel_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RequestImportanceLevel_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RequestResponseIndication.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RequestResponseIndication.h new file mode 100644 index 000000000..edee84fa8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RequestResponseIndication_H_ +#define _mapem_ts_RequestResponseIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_RequestResponseIndication { + mapem_ts_RequestResponseIndication_request = 0, + mapem_ts_RequestResponseIndication_response = 1 +} e_mapem_ts_RequestResponseIndication; + +/* mapem_ts_RequestResponseIndication */ +typedef long mapem_ts_RequestResponseIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RequestResponseIndication; +asn_struct_free_f mapem_ts_RequestResponseIndication_free; +asn_struct_print_f mapem_ts_RequestResponseIndication_print; +asn_constr_check_f mapem_ts_RequestResponseIndication_constraint; +per_type_decoder_f mapem_ts_RequestResponseIndication_decode_uper; +per_type_encoder_f mapem_ts_RequestResponseIndication_encode_uper; +per_type_decoder_f mapem_ts_RequestResponseIndication_decode_aper; +per_type_encoder_f mapem_ts_RequestResponseIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RequestResponseIndication_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RequestSubRole.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RequestSubRole.h new file mode 100644 index 000000000..504ac18ae --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RequestSubRole_H_ +#define _mapem_ts_RequestSubRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_RequestSubRole { + mapem_ts_RequestSubRole_requestSubRoleUnKnown = 0, + mapem_ts_RequestSubRole_requestSubRole1 = 1, + mapem_ts_RequestSubRole_requestSubRole2 = 2, + mapem_ts_RequestSubRole_requestSubRole3 = 3, + mapem_ts_RequestSubRole_requestSubRole4 = 4, + mapem_ts_RequestSubRole_requestSubRole5 = 5, + mapem_ts_RequestSubRole_requestSubRole6 = 6, + mapem_ts_RequestSubRole_requestSubRole7 = 7, + mapem_ts_RequestSubRole_requestSubRole8 = 8, + mapem_ts_RequestSubRole_requestSubRole9 = 9, + mapem_ts_RequestSubRole_requestSubRole10 = 10, + mapem_ts_RequestSubRole_requestSubRole11 = 11, + mapem_ts_RequestSubRole_requestSubRole12 = 12, + mapem_ts_RequestSubRole_requestSubRole13 = 13, + mapem_ts_RequestSubRole_requestSubRole14 = 14, + mapem_ts_RequestSubRole_requestSubRoleReserved = 15 +} e_mapem_ts_RequestSubRole; + +/* mapem_ts_RequestSubRole */ +typedef long mapem_ts_RequestSubRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_RequestSubRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RequestSubRole; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_RequestSubRole_specs_1; +asn_struct_free_f mapem_ts_RequestSubRole_free; +asn_struct_print_f mapem_ts_RequestSubRole_print; +asn_constr_check_f mapem_ts_RequestSubRole_constraint; +per_type_decoder_f mapem_ts_RequestSubRole_decode_uper; +per_type_encoder_f mapem_ts_RequestSubRole_encode_uper; +per_type_decoder_f mapem_ts_RequestSubRole_decode_aper; +per_type_encoder_f mapem_ts_RequestSubRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RequestSubRole_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RequestorDescription-addGrpC.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RequestorDescription-addGrpC.h new file mode 100644 index 000000000..af408bb6c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RequestorDescription_addGrpC_H_ +#define _mapem_ts_RequestorDescription_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_FuelType.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_BatteryStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_RequestorDescription-addGrpC */ +typedef struct mapem_ts_RequestorDescription_addGrpC { + mapem_ts_FuelType_t *fuel; /* OPTIONAL */ + mapem_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; +} mapem_ts_RequestorDescription_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RequestorDescription_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_RequestorDescription_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_RequestorDescription_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RequestorDescription_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RequestorDescription.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RequestorDescription.h new file mode 100644 index 000000000..464fac948 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RequestorDescription_H_ +#define _mapem_ts_RequestorDescription_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_VehicleID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_DescriptiveName.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_TransitVehicleStatus.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_TransitVehicleOccupancy.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_DeltaTime.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_RequestorType; +struct mapem_ts_RequestorPositionVector; +struct mapem_ts_Reg_RequestorDescription; + +/* mapem_ts_RequestorDescription */ +typedef struct mapem_ts_RequestorDescription { + mapem_ts_VehicleID_t id; + struct mapem_ts_RequestorType *type; /* OPTIONAL */ + struct mapem_ts_RequestorPositionVector *position; /* OPTIONAL */ + mapem_ts_DescriptiveName_t *name; /* OPTIONAL */ + mapem_ts_DescriptiveName_t *routeName; /* OPTIONAL */ + mapem_ts_TransitVehicleStatus_t *transitStatus; /* OPTIONAL */ + mapem_ts_TransitVehicleOccupancy_t *transitOccupancy; /* OPTIONAL */ + mapem_ts_DeltaTime_t *transitSchedule; /* OPTIONAL */ + struct mapem_ts_RequestorDescription__regional { + A_SEQUENCE_OF(struct mapem_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; +} mapem_ts_RequestorDescription_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RequestorDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_RequestorDescription_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_RequestorDescription_1[9]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RequestorType.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RequestorPositionVector.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_RequestorDescription_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RequestorPositionVector.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RequestorPositionVector.h new file mode 100644 index 000000000..076d24125 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RequestorPositionVector_H_ +#define _mapem_ts_RequestorPositionVector_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_Position3D.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Angle.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_TransmissionAndSpeed; + +/* mapem_ts_RequestorPositionVector */ +typedef struct mapem_ts_RequestorPositionVector { + mapem_ts_Position3D_t position; + mapem_ts_Angle_t *heading; /* OPTIONAL */ + struct mapem_ts_TransmissionAndSpeed *speed; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_RequestorPositionVector_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RequestorPositionVector; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_RequestorPositionVector_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_RequestorPositionVector_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_TransmissionAndSpeed.h" + +#endif /* _mapem_ts_RequestorPositionVector_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RequestorType.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RequestorType.h new file mode 100644 index 000000000..74c85702c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RequestorType_H_ +#define _mapem_ts_RequestorType_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_BasicVehicleRole.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RequestSubRole.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RequestImportanceLevel.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Iso3833VehicleType.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_VehicleType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_Reg_RequestorType; + +/* mapem_ts_RequestorType */ +typedef struct mapem_ts_RequestorType { + mapem_ts_BasicVehicleRole_t role; + mapem_ts_RequestSubRole_t *subrole; /* OPTIONAL */ + mapem_ts_RequestImportanceLevel_t *request; /* OPTIONAL */ + mapem_ts_Iso3833VehicleType_t *iso3883; /* OPTIONAL */ + mapem_ts_VehicleType_t *hpmsType; /* OPTIONAL */ + struct mapem_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; +} mapem_ts_RequestorType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RequestorType; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_RequestorType_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_RequestorType_1[6]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_RequestorType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode.h new file mode 100644 index 000000000..609abc31c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_H_ +#define _mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode { + mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_unavailable = 0, + mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_emergencyVehicles = 1, + mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_rescueHelicopterLanding = 2, + mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_policeActivityOngoing = 3, + mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_medicalEmergencyOngoing = 4, + mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_childAbductionInProgress = 5 +} e_mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode; + +/* mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode */ +typedef long mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode; +asn_struct_free_f mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_free; +asn_struct_print_f mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_print; +asn_constr_check_f mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_constraint; +per_type_decoder_f mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_decode_uper; +per_type_encoder_f mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_encode_uper; +per_type_decoder_f mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_decode_aper; +per_type_encoder_f mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RestrictedTypes.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RestrictedTypes.h new file mode 100644 index 000000000..047d5d033 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RestrictedTypes_H_ +#define _mapem_ts_RestrictedTypes_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_StationType.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_RestrictedTypes */ +typedef struct mapem_ts_RestrictedTypes { + A_SEQUENCE_OF(mapem_ts_StationType_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_RestrictedTypes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RestrictedTypes; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RestrictedTypes_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RestrictionAppliesTo.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RestrictionAppliesTo.h new file mode 100644 index 000000000..32462ea59 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RestrictionAppliesTo_H_ +#define _mapem_ts_RestrictionAppliesTo_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_RestrictionAppliesTo { + mapem_ts_RestrictionAppliesTo_none = 0, + mapem_ts_RestrictionAppliesTo_equippedTransit = 1, + mapem_ts_RestrictionAppliesTo_equippedTaxis = 2, + mapem_ts_RestrictionAppliesTo_equippedOther = 3, + mapem_ts_RestrictionAppliesTo_emissionCompliant = 4, + mapem_ts_RestrictionAppliesTo_equippedBicycle = 5, + mapem_ts_RestrictionAppliesTo_weightCompliant = 6, + mapem_ts_RestrictionAppliesTo_heightCompliant = 7, + mapem_ts_RestrictionAppliesTo_pedestrians = 8, + mapem_ts_RestrictionAppliesTo_slowMovingPersons = 9, + mapem_ts_RestrictionAppliesTo_wheelchairUsers = 10, + mapem_ts_RestrictionAppliesTo_visualDisabilities = 11, + mapem_ts_RestrictionAppliesTo_audioDisabilities = 12, + mapem_ts_RestrictionAppliesTo_otherUnknownDisabilities = 13 + /* + * Enumeration is extensible + */ +} e_mapem_ts_RestrictionAppliesTo; + +/* mapem_ts_RestrictionAppliesTo */ +typedef long mapem_ts_RestrictionAppliesTo_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_RestrictionAppliesTo_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RestrictionAppliesTo; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_RestrictionAppliesTo_specs_1; +asn_struct_free_f mapem_ts_RestrictionAppliesTo_free; +asn_struct_print_f mapem_ts_RestrictionAppliesTo_print; +asn_constr_check_f mapem_ts_RestrictionAppliesTo_constraint; +per_type_decoder_f mapem_ts_RestrictionAppliesTo_decode_uper; +per_type_encoder_f mapem_ts_RestrictionAppliesTo_encode_uper; +per_type_decoder_f mapem_ts_RestrictionAppliesTo_decode_aper; +per_type_encoder_f mapem_ts_RestrictionAppliesTo_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RestrictionAppliesTo_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RestrictionClassAssignment.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RestrictionClassAssignment.h new file mode 100644 index 000000000..45ee5491e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RestrictionClassAssignment_H_ +#define _mapem_ts_RestrictionClassAssignment_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RestrictionClassID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RestrictionUserTypeList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_RestrictionClassAssignment */ +typedef struct mapem_ts_RestrictionClassAssignment { + mapem_ts_RestrictionClassID_t id; + mapem_ts_RestrictionUserTypeList_t users; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_RestrictionClassAssignment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RestrictionClassAssignment; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_RestrictionClassAssignment_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_RestrictionClassAssignment_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RestrictionClassAssignment_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RestrictionClassID.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RestrictionClassID.h new file mode 100644 index 000000000..88c350689 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RestrictionClassID_H_ +#define _mapem_ts_RestrictionClassID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_RestrictionClassID */ +typedef long mapem_ts_RestrictionClassID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_RestrictionClassID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RestrictionClassID; +asn_struct_free_f mapem_ts_RestrictionClassID_free; +asn_struct_print_f mapem_ts_RestrictionClassID_print; +asn_constr_check_f mapem_ts_RestrictionClassID_constraint; +per_type_decoder_f mapem_ts_RestrictionClassID_decode_uper; +per_type_encoder_f mapem_ts_RestrictionClassID_encode_uper; +per_type_decoder_f mapem_ts_RestrictionClassID_decode_aper; +per_type_encoder_f mapem_ts_RestrictionClassID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RestrictionClassID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RestrictionClassList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RestrictionClassList.h new file mode 100644 index 000000000..59ee974a4 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RestrictionClassList_H_ +#define _mapem_ts_RestrictionClassList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_RestrictionClassAssignment; + +/* mapem_ts_RestrictionClassList */ +typedef struct mapem_ts_RestrictionClassList { + A_SEQUENCE_OF(struct mapem_ts_RestrictionClassAssignment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_RestrictionClassList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RestrictionClassList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_RestrictionClassList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_RestrictionClassList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_RestrictionClassList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RestrictionClassAssignment.h" + +#endif /* _mapem_ts_RestrictionClassList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RestrictionUserType-addGrpC.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RestrictionUserType-addGrpC.h new file mode 100644 index 000000000..a69484890 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RestrictionUserType_addGrpC_H_ +#define _mapem_ts_RestrictionUserType_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_EmissionType.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_FuelType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_RestrictionUserType-addGrpC */ +typedef struct mapem_ts_RestrictionUserType_addGrpC { + mapem_ts_EmissionType_t *emission; /* OPTIONAL */ + mapem_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; +} mapem_ts_RestrictionUserType_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RestrictionUserType_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_RestrictionUserType_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_RestrictionUserType_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RestrictionUserType_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RestrictionUserType.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RestrictionUserType.h new file mode 100644 index 000000000..ec3f9dc70 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RestrictionUserType_H_ +#define _mapem_ts_RestrictionUserType_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RestrictionAppliesTo.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_RestrictionUserType_PR { + mapem_ts_RestrictionUserType_PR_NOTHING, /* No components present */ + mapem_ts_RestrictionUserType_PR_basicType, + mapem_ts_RestrictionUserType_PR_regional + /* Extensions may appear below */ + +} mapem_ts_RestrictionUserType_PR; + +/* Forward declarations */ +struct mapem_ts_Reg_RestrictionUserType; + +/* mapem_ts_RestrictionUserType */ +typedef struct mapem_ts_RestrictionUserType { + mapem_ts_RestrictionUserType_PR present; + union mapem_ts_RestrictionUserType_u { + mapem_ts_RestrictionAppliesTo_t basicType; + struct mapem_ts_RestrictionUserType__regional { + A_SEQUENCE_OF(struct mapem_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; +} mapem_ts_RestrictionUserType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RestrictionUserType; +extern asn_CHOICE_specifics_t asn_SPC_mapem_ts_RestrictionUserType_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_RestrictionUserType_1[2]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_RestrictionUserType_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_RestrictionUserType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RestrictionUserTypeList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RestrictionUserTypeList.h new file mode 100644 index 000000000..57c4d6807 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RestrictionUserTypeList_H_ +#define _mapem_ts_RestrictionUserTypeList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_RestrictionUserType; + +/* mapem_ts_RestrictionUserTypeList */ +typedef struct mapem_ts_RestrictionUserTypeList { + A_SEQUENCE_OF(struct mapem_ts_RestrictionUserType) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_RestrictionUserTypeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RestrictionUserTypeList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_RestrictionUserTypeList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_RestrictionUserTypeList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_RestrictionUserTypeList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RestrictionUserType.h" + +#endif /* _mapem_ts_RestrictionUserTypeList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RoadLaneSetList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RoadLaneSetList.h new file mode 100644 index 000000000..d2eb3b0b4 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RoadLaneSetList_H_ +#define _mapem_ts_RoadLaneSetList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_GenericLane; + +/* mapem_ts_RoadLaneSetList */ +typedef struct mapem_ts_RoadLaneSetList { + A_SEQUENCE_OF(struct mapem_ts_GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_RoadLaneSetList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RoadLaneSetList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_RoadLaneSetList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_RoadLaneSetList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_RoadLaneSetList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_GenericLane.h" + +#endif /* _mapem_ts_RoadLaneSetList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RoadRegulatorID.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RoadRegulatorID.h new file mode 100644 index 000000000..9b2fb728d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RoadRegulatorID_H_ +#define _mapem_ts_RoadRegulatorID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_RoadRegulatorID */ +typedef long mapem_ts_RoadRegulatorID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_RoadRegulatorID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RoadRegulatorID; +asn_struct_free_f mapem_ts_RoadRegulatorID_free; +asn_struct_print_f mapem_ts_RoadRegulatorID_print; +asn_constr_check_f mapem_ts_RoadRegulatorID_constraint; +per_type_decoder_f mapem_ts_RoadRegulatorID_decode_uper; +per_type_encoder_f mapem_ts_RoadRegulatorID_encode_uper; +per_type_decoder_f mapem_ts_RoadRegulatorID_decode_aper; +per_type_encoder_f mapem_ts_RoadRegulatorID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RoadRegulatorID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RoadSegment.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RoadSegment.h new file mode 100644 index 000000000..fa2ad0879 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RoadSegment_H_ +#define _mapem_ts_RoadSegment_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_DescriptiveName.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RoadSegmentReferenceID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_MsgCount.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Position3D.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneWidth.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RoadLaneSetList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_SpeedLimitList; +struct mapem_ts_Reg_RoadSegment; + +/* mapem_ts_RoadSegment */ +typedef struct mapem_ts_RoadSegment { + mapem_ts_DescriptiveName_t *name; /* OPTIONAL */ + mapem_ts_RoadSegmentReferenceID_t id; + mapem_ts_MsgCount_t revision; + mapem_ts_Position3D_t refPoint; + mapem_ts_LaneWidth_t *laneWidth; /* OPTIONAL */ + struct mapem_ts_SpeedLimitList *speedLimits; /* OPTIONAL */ + mapem_ts_RoadLaneSetList_t roadLaneSet; + struct mapem_ts_RoadSegment__regional { + A_SEQUENCE_OF(struct mapem_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; +} mapem_ts_RoadSegment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RoadSegment; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_RoadSegment_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_RoadSegment_1[8]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_SpeedLimitList.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_RoadSegment_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RoadSegmentID.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RoadSegmentID.h new file mode 100644 index 000000000..fcc65c199 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RoadSegmentID_H_ +#define _mapem_ts_RoadSegmentID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_RoadSegmentID */ +typedef long mapem_ts_RoadSegmentID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_RoadSegmentID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RoadSegmentID; +asn_struct_free_f mapem_ts_RoadSegmentID_free; +asn_struct_print_f mapem_ts_RoadSegmentID_print; +asn_constr_check_f mapem_ts_RoadSegmentID_constraint; +per_type_decoder_f mapem_ts_RoadSegmentID_decode_uper; +per_type_encoder_f mapem_ts_RoadSegmentID_encode_uper; +per_type_decoder_f mapem_ts_RoadSegmentID_decode_aper; +per_type_encoder_f mapem_ts_RoadSegmentID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RoadSegmentID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RoadSegmentList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RoadSegmentList.h new file mode 100644 index 000000000..512b3eee8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RoadSegmentList_H_ +#define _mapem_ts_RoadSegmentList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_RoadSegment; + +/* mapem_ts_RoadSegmentList */ +typedef struct mapem_ts_RoadSegmentList { + A_SEQUENCE_OF(struct mapem_ts_RoadSegment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_RoadSegmentList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RoadSegmentList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_RoadSegmentList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_RoadSegmentList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_RoadSegmentList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RoadSegment.h" + +#endif /* _mapem_ts_RoadSegmentList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RoadSegmentReferenceID.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RoadSegmentReferenceID.h new file mode 100644 index 000000000..e4fe7e83c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RoadSegmentReferenceID_H_ +#define _mapem_ts_RoadSegmentReferenceID_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RoadRegulatorID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RoadSegmentID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_RoadSegmentReferenceID */ +typedef struct mapem_ts_RoadSegmentReferenceID { + mapem_ts_RoadRegulatorID_t *region; /* OPTIONAL */ + mapem_ts_RoadSegmentID_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_RoadSegmentReferenceID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RoadSegmentReferenceID; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_RoadSegmentReferenceID_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_RoadSegmentReferenceID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RoadSegmentReferenceID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RoadType.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RoadType.h new file mode 100644 index 000000000..9d5c83c1e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RoadType.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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RoadType_H_ +#define _mapem_ts_RoadType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_RoadType { + mapem_ts_RoadType_urban_NoStructuralSeparationToOppositeLanes = 0, + mapem_ts_RoadType_urban_WithStructuralSeparationToOppositeLanes = 1, + mapem_ts_RoadType_nonUrban_NoStructuralSeparationToOppositeLanes = 2, + mapem_ts_RoadType_nonUrban_WithStructuralSeparationToOppositeLanes = 3 +} e_mapem_ts_RoadType; + +/* mapem_ts_RoadType */ +typedef long mapem_ts_RoadType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RoadType; +asn_struct_free_f mapem_ts_RoadType_free; +asn_struct_print_f mapem_ts_RoadType_print; +asn_constr_check_f mapem_ts_RoadType_constraint; +per_type_decoder_f mapem_ts_RoadType_decode_uper; +per_type_encoder_f mapem_ts_RoadType_encode_uper; +per_type_decoder_f mapem_ts_RoadType_decode_aper; +per_type_encoder_f mapem_ts_RoadType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RoadType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RoadwayCrownAngle.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RoadwayCrownAngle.h new file mode 100644 index 000000000..d1a91ef63 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RoadwayCrownAngle_H_ +#define _mapem_ts_RoadwayCrownAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_RoadwayCrownAngle */ +typedef long mapem_ts_RoadwayCrownAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_RoadwayCrownAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RoadwayCrownAngle; +asn_struct_free_f mapem_ts_RoadwayCrownAngle_free; +asn_struct_print_f mapem_ts_RoadwayCrownAngle_print; +asn_constr_check_f mapem_ts_RoadwayCrownAngle_constraint; +per_type_decoder_f mapem_ts_RoadwayCrownAngle_decode_uper; +per_type_encoder_f mapem_ts_RoadwayCrownAngle_encode_uper; +per_type_decoder_f mapem_ts_RoadwayCrownAngle_decode_aper; +per_type_encoder_f mapem_ts_RoadwayCrownAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RoadwayCrownAngle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RoadworksSubCauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RoadworksSubCauseCode.h new file mode 100644 index 000000000..32419d71e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_RoadworksSubCauseCode_H_ +#define _mapem_ts_RoadworksSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_RoadworksSubCauseCode { + mapem_ts_RoadworksSubCauseCode_unavailable = 0, + mapem_ts_RoadworksSubCauseCode_majorRoadworks = 1, + mapem_ts_RoadworksSubCauseCode_roadMarkingWork = 2, + mapem_ts_RoadworksSubCauseCode_slowMovingRoadMaintenance = 3, + mapem_ts_RoadworksSubCauseCode_shortTermStationaryRoadworks = 4, + mapem_ts_RoadworksSubCauseCode_streetCleaning = 5, + mapem_ts_RoadworksSubCauseCode_winterService = 6 +} e_mapem_ts_RoadworksSubCauseCode; + +/* mapem_ts_RoadworksSubCauseCode */ +typedef long mapem_ts_RoadworksSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_RoadworksSubCauseCode; +asn_struct_free_f mapem_ts_RoadworksSubCauseCode_free; +asn_struct_print_f mapem_ts_RoadworksSubCauseCode_print; +asn_constr_check_f mapem_ts_RoadworksSubCauseCode_constraint; +per_type_decoder_f mapem_ts_RoadworksSubCauseCode_decode_uper; +per_type_encoder_f mapem_ts_RoadworksSubCauseCode_encode_uper; +per_type_decoder_f mapem_ts_RoadworksSubCauseCode_decode_aper; +per_type_encoder_f mapem_ts_RoadworksSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_RoadworksSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SPAT.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SPAT.h new file mode 100644 index 000000000..6dd9eef0b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SPAT_H_ +#define _mapem_ts_SPAT_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_MinuteOfTheYear.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_DescriptiveName.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionStateList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_Reg_SPAT; + +/* mapem_ts_SPAT */ +typedef struct mapem_ts_SPAT { + mapem_ts_MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + mapem_ts_DescriptiveName_t *name; /* OPTIONAL */ + mapem_ts_IntersectionStateList_t intersections; + struct mapem_ts_SPAT__regional { + A_SEQUENCE_OF(struct mapem_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; +} mapem_ts_SPAT_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SPAT; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_SPAT_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Scale-B12.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Scale-B12.h new file mode 100644 index 000000000..9525e8fc7 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Scale_B12_H_ +#define _mapem_ts_Scale_B12_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_Scale-B12 */ +typedef long mapem_ts_Scale_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_Scale_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Scale_B12; +asn_struct_free_f mapem_ts_Scale_B12_free; +asn_struct_print_f mapem_ts_Scale_B12_print; +asn_constr_check_f mapem_ts_Scale_B12_constraint; +per_type_decoder_f mapem_ts_Scale_B12_decode_uper; +per_type_encoder_f mapem_ts_Scale_B12_encode_uper; +per_type_decoder_f mapem_ts_Scale_B12_decode_aper; +per_type_encoder_f mapem_ts_Scale_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Scale_B12_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SegmentAttributeXY.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SegmentAttributeXY.h new file mode 100644 index 000000000..e41ad053a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SegmentAttributeXY_H_ +#define _mapem_ts_SegmentAttributeXY_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_SegmentAttributeXY { + mapem_ts_SegmentAttributeXY_reserved = 0, + mapem_ts_SegmentAttributeXY_doNotBlock = 1, + mapem_ts_SegmentAttributeXY_whiteLine = 2, + mapem_ts_SegmentAttributeXY_mergingLaneLeft = 3, + mapem_ts_SegmentAttributeXY_mergingLaneRight = 4, + mapem_ts_SegmentAttributeXY_curbOnLeft = 5, + mapem_ts_SegmentAttributeXY_curbOnRight = 6, + mapem_ts_SegmentAttributeXY_loadingzoneOnLeft = 7, + mapem_ts_SegmentAttributeXY_loadingzoneOnRight = 8, + mapem_ts_SegmentAttributeXY_turnOutPointOnLeft = 9, + mapem_ts_SegmentAttributeXY_turnOutPointOnRight = 10, + mapem_ts_SegmentAttributeXY_adjacentParkingOnLeft = 11, + mapem_ts_SegmentAttributeXY_adjacentParkingOnRight = 12, + mapem_ts_SegmentAttributeXY_adjacentBikeLaneOnLeft = 13, + mapem_ts_SegmentAttributeXY_adjacentBikeLaneOnRight = 14, + mapem_ts_SegmentAttributeXY_sharedBikeLane = 15, + mapem_ts_SegmentAttributeXY_bikeBoxInFront = 16, + mapem_ts_SegmentAttributeXY_transitStopOnLeft = 17, + mapem_ts_SegmentAttributeXY_transitStopOnRight = 18, + mapem_ts_SegmentAttributeXY_transitStopInLane = 19, + mapem_ts_SegmentAttributeXY_sharedWithTrackedVehicle = 20, + mapem_ts_SegmentAttributeXY_safeIsland = 21, + mapem_ts_SegmentAttributeXY_lowCurbsPresent = 22, + mapem_ts_SegmentAttributeXY_rumbleStripPresent = 23, + mapem_ts_SegmentAttributeXY_audibleSignalingPresent = 24, + mapem_ts_SegmentAttributeXY_adaptiveTimingPresent = 25, + mapem_ts_SegmentAttributeXY_rfSignalRequestPresent = 26, + mapem_ts_SegmentAttributeXY_partialCurbIntrusion = 27, + mapem_ts_SegmentAttributeXY_taperToLeft = 28, + mapem_ts_SegmentAttributeXY_taperToRight = 29, + mapem_ts_SegmentAttributeXY_taperToCenterLine = 30, + mapem_ts_SegmentAttributeXY_parallelParking = 31, + mapem_ts_SegmentAttributeXY_headInParking = 32, + mapem_ts_SegmentAttributeXY_freeParking = 33, + mapem_ts_SegmentAttributeXY_timeRestrictionsOnParking = 34, + mapem_ts_SegmentAttributeXY_costToPark = 35, + mapem_ts_SegmentAttributeXY_midBlockCurbPresent = 36, + mapem_ts_SegmentAttributeXY_unEvenPavementPresent = 37 + /* + * Enumeration is extensible + */ +} e_mapem_ts_SegmentAttributeXY; + +/* mapem_ts_SegmentAttributeXY */ +typedef long mapem_ts_SegmentAttributeXY_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_SegmentAttributeXY_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SegmentAttributeXY; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_SegmentAttributeXY_specs_1; +asn_struct_free_f mapem_ts_SegmentAttributeXY_free; +asn_struct_print_f mapem_ts_SegmentAttributeXY_print; +asn_constr_check_f mapem_ts_SegmentAttributeXY_constraint; +per_type_decoder_f mapem_ts_SegmentAttributeXY_decode_uper; +per_type_encoder_f mapem_ts_SegmentAttributeXY_encode_uper; +per_type_decoder_f mapem_ts_SegmentAttributeXY_decode_aper; +per_type_encoder_f mapem_ts_SegmentAttributeXY_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SegmentAttributeXY_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SegmentAttributeXYList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SegmentAttributeXYList.h new file mode 100644 index 000000000..ea4742d56 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SegmentAttributeXYList_H_ +#define _mapem_ts_SegmentAttributeXYList_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_SegmentAttributeXY.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_SegmentAttributeXYList */ +typedef struct mapem_ts_SegmentAttributeXYList { + A_SEQUENCE_OF(mapem_ts_SegmentAttributeXY_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_SegmentAttributeXYList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SegmentAttributeXYList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_SegmentAttributeXYList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_SegmentAttributeXYList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_SegmentAttributeXYList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SegmentAttributeXYList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SemiAxisLength.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SemiAxisLength.h new file mode 100644 index 000000000..d69ea3d47 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SemiAxisLength_H_ +#define _mapem_ts_SemiAxisLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_SemiAxisLength { + mapem_ts_SemiAxisLength_oneCentimeter = 1, + mapem_ts_SemiAxisLength_outOfRange = 4094, + mapem_ts_SemiAxisLength_unavailable = 4095 +} e_mapem_ts_SemiAxisLength; + +/* mapem_ts_SemiAxisLength */ +typedef long mapem_ts_SemiAxisLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_SemiAxisLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SemiAxisLength; +asn_struct_free_f mapem_ts_SemiAxisLength_free; +asn_struct_print_f mapem_ts_SemiAxisLength_print; +asn_constr_check_f mapem_ts_SemiAxisLength_constraint; +per_type_decoder_f mapem_ts_SemiAxisLength_decode_uper; +per_type_encoder_f mapem_ts_SemiAxisLength_encode_uper; +per_type_decoder_f mapem_ts_SemiAxisLength_decode_aper; +per_type_encoder_f mapem_ts_SemiAxisLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SemiAxisLength_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SemiMajorAxisAccuracy.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SemiMajorAxisAccuracy.h new file mode 100644 index 000000000..1c0924371 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SemiMajorAxisAccuracy_H_ +#define _mapem_ts_SemiMajorAxisAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_SemiMajorAxisAccuracy */ +typedef long mapem_ts_SemiMajorAxisAccuracy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_SemiMajorAxisAccuracy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SemiMajorAxisAccuracy; +asn_struct_free_f mapem_ts_SemiMajorAxisAccuracy_free; +asn_struct_print_f mapem_ts_SemiMajorAxisAccuracy_print; +asn_constr_check_f mapem_ts_SemiMajorAxisAccuracy_constraint; +per_type_decoder_f mapem_ts_SemiMajorAxisAccuracy_decode_uper; +per_type_encoder_f mapem_ts_SemiMajorAxisAccuracy_encode_uper; +per_type_decoder_f mapem_ts_SemiMajorAxisAccuracy_decode_aper; +per_type_encoder_f mapem_ts_SemiMajorAxisAccuracy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SemiMajorAxisAccuracy_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SemiMajorAxisOrientation.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SemiMajorAxisOrientation.h new file mode 100644 index 000000000..b6d197c9a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SemiMajorAxisOrientation_H_ +#define _mapem_ts_SemiMajorAxisOrientation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_SemiMajorAxisOrientation */ +typedef long mapem_ts_SemiMajorAxisOrientation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_SemiMajorAxisOrientation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SemiMajorAxisOrientation; +asn_struct_free_f mapem_ts_SemiMajorAxisOrientation_free; +asn_struct_print_f mapem_ts_SemiMajorAxisOrientation_print; +asn_constr_check_f mapem_ts_SemiMajorAxisOrientation_constraint; +per_type_decoder_f mapem_ts_SemiMajorAxisOrientation_decode_uper; +per_type_encoder_f mapem_ts_SemiMajorAxisOrientation_encode_uper; +per_type_decoder_f mapem_ts_SemiMajorAxisOrientation_decode_aper; +per_type_encoder_f mapem_ts_SemiMajorAxisOrientation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SemiMajorAxisOrientation_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SemiMinorAxisAccuracy.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SemiMinorAxisAccuracy.h new file mode 100644 index 000000000..278f27e2a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SemiMinorAxisAccuracy_H_ +#define _mapem_ts_SemiMinorAxisAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_SemiMinorAxisAccuracy */ +typedef long mapem_ts_SemiMinorAxisAccuracy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_SemiMinorAxisAccuracy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SemiMinorAxisAccuracy; +asn_struct_free_f mapem_ts_SemiMinorAxisAccuracy_free; +asn_struct_print_f mapem_ts_SemiMinorAxisAccuracy_print; +asn_constr_check_f mapem_ts_SemiMinorAxisAccuracy_constraint; +per_type_decoder_f mapem_ts_SemiMinorAxisAccuracy_decode_uper; +per_type_encoder_f mapem_ts_SemiMinorAxisAccuracy_encode_uper; +per_type_decoder_f mapem_ts_SemiMinorAxisAccuracy_decode_aper; +per_type_encoder_f mapem_ts_SemiMinorAxisAccuracy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SemiMinorAxisAccuracy_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SequenceNumber.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SequenceNumber.h new file mode 100644 index 000000000..ea2935b72 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SequenceNumber_H_ +#define _mapem_ts_SequenceNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_SequenceNumber */ +typedef long mapem_ts_SequenceNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_SequenceNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SequenceNumber; +asn_struct_free_f mapem_ts_SequenceNumber_free; +asn_struct_print_f mapem_ts_SequenceNumber_print; +asn_constr_check_f mapem_ts_SequenceNumber_constraint; +per_type_decoder_f mapem_ts_SequenceNumber_decode_uper; +per_type_encoder_f mapem_ts_SequenceNumber_encode_uper; +per_type_decoder_f mapem_ts_SequenceNumber_decode_aper; +per_type_encoder_f mapem_ts_SequenceNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SequenceNumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ServiceApplicationLimit.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ServiceApplicationLimit.h new file mode 100644 index 000000000..735c8a4ed --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ServiceApplicationLimit_H_ +#define _mapem_ts_ServiceApplicationLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_ServiceApplicationLimit { + mapem_ts_ServiceApplicationLimit_notForPostpayment = 0, + mapem_ts_ServiceApplicationLimit_notForPrepayment = 1, + mapem_ts_ServiceApplicationLimit_notForVehicleaccess = 2, + mapem_ts_ServiceApplicationLimit_notForFleetcontrol = 3, + mapem_ts_ServiceApplicationLimit_issuerSpecificRestriction1 = 4, + mapem_ts_ServiceApplicationLimit_issuerSpecificRestriction2 = 5, + mapem_ts_ServiceApplicationLimit_issuerSpecificRestriction3 = 6, + mapem_ts_ServiceApplicationLimit_issuerSpecificRestriction4 = 7 +} e_mapem_ts_ServiceApplicationLimit; + +/* mapem_ts_ServiceApplicationLimit */ +typedef BIT_STRING_t mapem_ts_ServiceApplicationLimit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_ServiceApplicationLimit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ServiceApplicationLimit; +asn_struct_free_f mapem_ts_ServiceApplicationLimit_free; +asn_struct_print_f mapem_ts_ServiceApplicationLimit_print; +asn_constr_check_f mapem_ts_ServiceApplicationLimit_constraint; +per_type_decoder_f mapem_ts_ServiceApplicationLimit_decode_uper; +per_type_encoder_f mapem_ts_ServiceApplicationLimit_encode_uper; +per_type_decoder_f mapem_ts_ServiceApplicationLimit_decode_aper; +per_type_encoder_f mapem_ts_ServiceApplicationLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_ServiceApplicationLimit_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ServiceNumber.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ServiceNumber.h new file mode 100644 index 000000000..ba016383c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ServiceNumber_H_ +#define _mapem_ts_ServiceNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_ServiceNumber */ +typedef BIT_STRING_t mapem_ts_ServiceNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_ServiceNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ServiceNumber; +asn_struct_free_f mapem_ts_ServiceNumber_free; +asn_struct_print_f mapem_ts_ServiceNumber_print; +asn_constr_check_f mapem_ts_ServiceNumber_constraint; +per_type_decoder_f mapem_ts_ServiceNumber_decode_uper; +per_type_encoder_f mapem_ts_ServiceNumber_encode_uper; +per_type_decoder_f mapem_ts_ServiceNumber_decode_aper; +per_type_encoder_f mapem_ts_ServiceNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_ServiceNumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalControlZone.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalControlZone.h new file mode 100644 index 000000000..616d09f8c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SignalControlZone_H_ +#define _mapem_ts_SignalControlZone_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_SignalControlZone */ +typedef struct mapem_ts_SignalControlZone { + mapem_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; +} mapem_ts_SignalControlZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalControlZone; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_SignalControlZone_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_SignalControlZone_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SignalControlZone_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalGroupID.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalGroupID.h new file mode 100644 index 000000000..5ec02cbc7 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SignalGroupID_H_ +#define _mapem_ts_SignalGroupID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_SignalGroupID */ +typedef long mapem_ts_SignalGroupID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_SignalGroupID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalGroupID; +asn_struct_free_f mapem_ts_SignalGroupID_free; +asn_struct_print_f mapem_ts_SignalGroupID_print; +asn_constr_check_f mapem_ts_SignalGroupID_constraint; +per_type_decoder_f mapem_ts_SignalGroupID_decode_uper; +per_type_encoder_f mapem_ts_SignalGroupID_encode_uper; +per_type_decoder_f mapem_ts_SignalGroupID_decode_aper; +per_type_encoder_f mapem_ts_SignalGroupID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SignalGroupID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalHeadLocation.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalHeadLocation.h new file mode 100644 index 000000000..7f3cbc4a9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SignalHeadLocation_H_ +#define _mapem_ts_SignalHeadLocation_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_NodeOffsetPointXY.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_DeltaAltitude.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalGroupID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_SignalHeadLocation */ +typedef struct mapem_ts_SignalHeadLocation { + mapem_ts_NodeOffsetPointXY_t nodeXY; + mapem_ts_DeltaAltitude_t nodeZ; + mapem_ts_SignalGroupID_t signalGroupID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_SignalHeadLocation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalHeadLocation; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_SignalHeadLocation_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_SignalHeadLocation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SignalHeadLocation_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalHeadLocationList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalHeadLocationList.h new file mode 100644 index 000000000..e3cc8dd4e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SignalHeadLocationList_H_ +#define _mapem_ts_SignalHeadLocationList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_SignalHeadLocation; + +/* mapem_ts_SignalHeadLocationList */ +typedef struct mapem_ts_SignalHeadLocationList { + A_SEQUENCE_OF(struct mapem_ts_SignalHeadLocation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_SignalHeadLocationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalHeadLocationList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_SignalHeadLocationList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_SignalHeadLocationList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_SignalHeadLocationList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalHeadLocation.h" + +#endif /* _mapem_ts_SignalHeadLocationList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalRequest.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalRequest.h new file mode 100644 index 000000000..f0d10ab97 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SignalRequest_H_ +#define _mapem_ts_SignalRequest_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionReferenceID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RequestID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_PriorityRequestType.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionAccessPoint.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_IntersectionAccessPoint; +struct mapem_ts_Reg_SignalRequest; + +/* mapem_ts_SignalRequest */ +typedef struct mapem_ts_SignalRequest { + mapem_ts_IntersectionReferenceID_t id; + mapem_ts_RequestID_t requestID; + mapem_ts_PriorityRequestType_t requestType; + mapem_ts_IntersectionAccessPoint_t inBoundLane; + struct mapem_ts_IntersectionAccessPoint *outBoundLane; /* OPTIONAL */ + struct mapem_ts_SignalRequest__regional { + A_SEQUENCE_OF(struct mapem_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; +} mapem_ts_SignalRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_SignalRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_SignalRequest_1[6]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionAccessPoint.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_SignalRequest_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalRequestList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalRequestList.h new file mode 100644 index 000000000..967666dec --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SignalRequestList_H_ +#define _mapem_ts_SignalRequestList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_SignalRequestPackage; + +/* mapem_ts_SignalRequestList */ +typedef struct mapem_ts_SignalRequestList { + A_SEQUENCE_OF(struct mapem_ts_SignalRequestPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_SignalRequestList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalRequestList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_SignalRequestList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_SignalRequestList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_SignalRequestList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalRequestPackage.h" + +#endif /* _mapem_ts_SignalRequestList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalRequestMessage.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalRequestMessage.h new file mode 100644 index 000000000..207877c4d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SignalRequestMessage_H_ +#define _mapem_ts_SignalRequestMessage_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_MinuteOfTheYear.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_DSecond.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_MsgCount.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RequestorDescription.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_SignalRequestList; +struct mapem_ts_Reg_SignalRequestMessage; + +/* mapem_ts_SignalRequestMessage */ +typedef struct mapem_ts_SignalRequestMessage { + mapem_ts_MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + mapem_ts_DSecond_t second; + mapem_ts_MsgCount_t *sequenceNumber; /* OPTIONAL */ + struct mapem_ts_SignalRequestList *requests; /* OPTIONAL */ + mapem_ts_RequestorDescription_t requestor; + struct mapem_ts_SignalRequestMessage__regional { + A_SEQUENCE_OF(struct mapem_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; +} mapem_ts_SignalRequestMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalRequestMessage; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalRequestList.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_SignalRequestMessage_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalRequestPackage.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalRequestPackage.h new file mode 100644 index 000000000..97537bf7c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SignalRequestPackage_H_ +#define _mapem_ts_SignalRequestPackage_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalRequest.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_MinuteOfTheYear.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_DSecond.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_Reg_SignalRequestPackage; + +/* mapem_ts_SignalRequestPackage */ +typedef struct mapem_ts_SignalRequestPackage { + mapem_ts_SignalRequest_t request; + mapem_ts_MinuteOfTheYear_t *minute; /* OPTIONAL */ + mapem_ts_DSecond_t *second; /* OPTIONAL */ + mapem_ts_DSecond_t *duration; /* OPTIONAL */ + struct mapem_ts_SignalRequestPackage__regional { + A_SEQUENCE_OF(struct mapem_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; +} mapem_ts_SignalRequestPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalRequestPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_SignalRequestPackage_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_SignalRequestPackage_1[5]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_SignalRequestPackage_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalRequesterInfo.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalRequesterInfo.h new file mode 100644 index 000000000..ecef268f6 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SignalRequesterInfo_H_ +#define _mapem_ts_SignalRequesterInfo_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_VehicleID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RequestID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_MsgCount.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_BasicVehicleRole.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_RequestorType; + +/* mapem_ts_SignalRequesterInfo */ +typedef struct mapem_ts_SignalRequesterInfo { + mapem_ts_VehicleID_t id; + mapem_ts_RequestID_t request; + mapem_ts_MsgCount_t sequenceNumber; + mapem_ts_BasicVehicleRole_t *role; /* OPTIONAL */ + struct mapem_ts_RequestorType *typeData; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_SignalRequesterInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalRequesterInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_SignalRequesterInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_SignalRequesterInfo_1[5]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RequestorType.h" + +#endif /* _mapem_ts_SignalRequesterInfo_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalStatus.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalStatus.h new file mode 100644 index 000000000..bb72e3038 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SignalStatus_H_ +#define _mapem_ts_SignalStatus_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_MsgCount.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionReferenceID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalStatusPackageList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_Reg_SignalStatus; + +/* mapem_ts_SignalStatus */ +typedef struct mapem_ts_SignalStatus { + mapem_ts_MsgCount_t sequenceNumber; + mapem_ts_IntersectionReferenceID_t id; + mapem_ts_SignalStatusPackageList_t sigStatus; + struct mapem_ts_SignalStatus__regional { + A_SEQUENCE_OF(struct mapem_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; +} mapem_ts_SignalStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_SignalStatus_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_SignalStatus_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_SignalStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalStatusList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalStatusList.h new file mode 100644 index 000000000..49a92eb67 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SignalStatusList_H_ +#define _mapem_ts_SignalStatusList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_SignalStatus; + +/* mapem_ts_SignalStatusList */ +typedef struct mapem_ts_SignalStatusList { + A_SEQUENCE_OF(struct mapem_ts_SignalStatus) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_SignalStatusList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalStatusList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_SignalStatusList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_SignalStatusList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_SignalStatusList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalStatus.h" + +#endif /* _mapem_ts_SignalStatusList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalStatusMessage.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalStatusMessage.h new file mode 100644 index 000000000..d0e23e3b7 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SignalStatusMessage_H_ +#define _mapem_ts_SignalStatusMessage_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_MinuteOfTheYear.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_DSecond.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_MsgCount.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalStatusList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_Reg_SignalStatusMessage; + +/* mapem_ts_SignalStatusMessage */ +typedef struct mapem_ts_SignalStatusMessage { + mapem_ts_MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + mapem_ts_DSecond_t second; + mapem_ts_MsgCount_t *sequenceNumber; /* OPTIONAL */ + mapem_ts_SignalStatusList_t status; + struct mapem_ts_SignalStatusMessage__regional { + A_SEQUENCE_OF(struct mapem_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; +} mapem_ts_SignalStatusMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalStatusMessage; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_SignalStatusMessage_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalStatusPackage-addGrpC.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalStatusPackage-addGrpC.h new file mode 100644 index 000000000..8a386d12e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SignalStatusPackage_addGrpC_H_ +#define _mapem_ts_SignalStatusPackage_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_DeltaTime.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RejectedReason.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_SignalStatusPackage-addGrpC */ +typedef struct mapem_ts_SignalStatusPackage_addGrpC { + mapem_ts_DeltaTime_t *synchToSchedule; /* OPTIONAL */ + mapem_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; +} mapem_ts_SignalStatusPackage_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalStatusPackage_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_SignalStatusPackage_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_SignalStatusPackage_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SignalStatusPackage_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalStatusPackage.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalStatusPackage.h new file mode 100644 index 000000000..7b60fd177 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SignalStatusPackage_H_ +#define _mapem_ts_SignalStatusPackage_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionAccessPoint.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_MinuteOfTheYear.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_DSecond.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_PrioritizationResponseStatus.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_SignalRequesterInfo; +struct mapem_ts_IntersectionAccessPoint; +struct mapem_ts_Reg_SignalStatusPackage; + +/* mapem_ts_SignalStatusPackage */ +typedef struct mapem_ts_SignalStatusPackage { + struct mapem_ts_SignalRequesterInfo *requester; /* OPTIONAL */ + mapem_ts_IntersectionAccessPoint_t inboundOn; + struct mapem_ts_IntersectionAccessPoint *outboundOn; /* OPTIONAL */ + mapem_ts_MinuteOfTheYear_t *minute; /* OPTIONAL */ + mapem_ts_DSecond_t *second; /* OPTIONAL */ + mapem_ts_DSecond_t *duration; /* OPTIONAL */ + mapem_ts_PrioritizationResponseStatus_t status; + struct mapem_ts_SignalStatusPackage__regional { + A_SEQUENCE_OF(struct mapem_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; +} mapem_ts_SignalStatusPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalStatusPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_SignalStatusPackage_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_SignalStatusPackage_1[8]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalRequesterInfo.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionAccessPoint.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +#endif /* _mapem_ts_SignalStatusPackage_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalStatusPackageList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalStatusPackageList.h new file mode 100644 index 000000000..1d6232900 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SignalStatusPackageList_H_ +#define _mapem_ts_SignalStatusPackageList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_SignalStatusPackage; + +/* mapem_ts_SignalStatusPackageList */ +typedef struct mapem_ts_SignalStatusPackageList { + A_SEQUENCE_OF(struct mapem_ts_SignalStatusPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_SignalStatusPackageList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalStatusPackageList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_SignalStatusPackageList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_SignalStatusPackageList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_SignalStatusPackageList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalStatusPackage.h" + +#endif /* _mapem_ts_SignalStatusPackageList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalViolationSubCauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SignalViolationSubCauseCode.h new file mode 100644 index 000000000..42e54d03a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SignalViolationSubCauseCode_H_ +#define _mapem_ts_SignalViolationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_SignalViolationSubCauseCode { + mapem_ts_SignalViolationSubCauseCode_unavailable = 0, + mapem_ts_SignalViolationSubCauseCode_stopSignViolation = 1, + mapem_ts_SignalViolationSubCauseCode_trafficLightViolation = 2, + mapem_ts_SignalViolationSubCauseCode_turningRegulationViolation = 3 +} e_mapem_ts_SignalViolationSubCauseCode; + +/* mapem_ts_SignalViolationSubCauseCode */ +typedef long mapem_ts_SignalViolationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalViolationSubCauseCode; +asn_struct_free_f mapem_ts_SignalViolationSubCauseCode_free; +asn_struct_print_f mapem_ts_SignalViolationSubCauseCode_print; +asn_constr_check_f mapem_ts_SignalViolationSubCauseCode_constraint; +per_type_decoder_f mapem_ts_SignalViolationSubCauseCode_decode_uper; +per_type_encoder_f mapem_ts_SignalViolationSubCauseCode_encode_uper; +per_type_decoder_f mapem_ts_SignalViolationSubCauseCode_decode_aper; +per_type_encoder_f mapem_ts_SignalViolationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SignalViolationSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SlowVehicleSubCauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SlowVehicleSubCauseCode.h new file mode 100644 index 000000000..1cd17e165 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SlowVehicleSubCauseCode_H_ +#define _mapem_ts_SlowVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_SlowVehicleSubCauseCode { + mapem_ts_SlowVehicleSubCauseCode_unavailable = 0, + mapem_ts_SlowVehicleSubCauseCode_maintenanceVehicle = 1, + mapem_ts_SlowVehicleSubCauseCode_vehiclesSlowingToLookAtAccident = 2, + mapem_ts_SlowVehicleSubCauseCode_abnormalLoad = 3, + mapem_ts_SlowVehicleSubCauseCode_abnormalWideLoad = 4, + mapem_ts_SlowVehicleSubCauseCode_convoy = 5, + mapem_ts_SlowVehicleSubCauseCode_snowplough = 6, + mapem_ts_SlowVehicleSubCauseCode_deicing = 7, + mapem_ts_SlowVehicleSubCauseCode_saltingVehicles = 8 +} e_mapem_ts_SlowVehicleSubCauseCode; + +/* mapem_ts_SlowVehicleSubCauseCode */ +typedef long mapem_ts_SlowVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SlowVehicleSubCauseCode; +asn_struct_free_f mapem_ts_SlowVehicleSubCauseCode_free; +asn_struct_print_f mapem_ts_SlowVehicleSubCauseCode_print; +asn_constr_check_f mapem_ts_SlowVehicleSubCauseCode_constraint; +per_type_decoder_f mapem_ts_SlowVehicleSubCauseCode_decode_uper; +per_type_encoder_f mapem_ts_SlowVehicleSubCauseCode_encode_uper; +per_type_decoder_f mapem_ts_SlowVehicleSubCauseCode_decode_aper; +per_type_encoder_f mapem_ts_SlowVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SlowVehicleSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SpecialTransportType.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SpecialTransportType.h new file mode 100644 index 000000000..f1dff9029 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SpecialTransportType.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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SpecialTransportType_H_ +#define _mapem_ts_SpecialTransportType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_SpecialTransportType { + mapem_ts_SpecialTransportType_heavyLoad = 0, + mapem_ts_SpecialTransportType_excessWidth = 1, + mapem_ts_SpecialTransportType_excessLength = 2, + mapem_ts_SpecialTransportType_excessHeight = 3 +} e_mapem_ts_SpecialTransportType; + +/* mapem_ts_SpecialTransportType */ +typedef BIT_STRING_t mapem_ts_SpecialTransportType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SpecialTransportType; +asn_struct_free_f mapem_ts_SpecialTransportType_free; +asn_struct_print_f mapem_ts_SpecialTransportType_print; +asn_constr_check_f mapem_ts_SpecialTransportType_constraint; +per_type_decoder_f mapem_ts_SpecialTransportType_decode_uper; +per_type_encoder_f mapem_ts_SpecialTransportType_encode_uper; +per_type_decoder_f mapem_ts_SpecialTransportType_decode_aper; +per_type_encoder_f mapem_ts_SpecialTransportType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SpecialTransportType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Speed.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Speed.h new file mode 100644 index 000000000..0cff5634c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Speed.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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Speed_H_ +#define _mapem_ts_Speed_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_SpeedValue.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_SpeedConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_Speed */ +typedef struct mapem_ts_Speed { + mapem_ts_SpeedValue_t speedValue; + mapem_ts_SpeedConfidence_t speedConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_Speed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Speed; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Speed_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SpeedAdvice.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SpeedAdvice.h new file mode 100644 index 000000000..acf34cf0a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SpeedAdvice_H_ +#define _mapem_ts_SpeedAdvice_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_SpeedAdvice */ +typedef long mapem_ts_SpeedAdvice_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_SpeedAdvice_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SpeedAdvice; +asn_struct_free_f mapem_ts_SpeedAdvice_free; +asn_struct_print_f mapem_ts_SpeedAdvice_print; +asn_constr_check_f mapem_ts_SpeedAdvice_constraint; +per_type_decoder_f mapem_ts_SpeedAdvice_decode_uper; +per_type_encoder_f mapem_ts_SpeedAdvice_encode_uper; +per_type_decoder_f mapem_ts_SpeedAdvice_decode_aper; +per_type_encoder_f mapem_ts_SpeedAdvice_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SpeedAdvice_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SpeedConfidence.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SpeedConfidence.h new file mode 100644 index 000000000..0ffc73b18 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SpeedConfidence_H_ +#define _mapem_ts_SpeedConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_SpeedConfidence { + mapem_ts_SpeedConfidence_equalOrWithinOneCentimeterPerSec = 1, + mapem_ts_SpeedConfidence_equalOrWithinOneMeterPerSec = 100, + mapem_ts_SpeedConfidence_outOfRange = 126, + mapem_ts_SpeedConfidence_unavailable = 127 +} e_mapem_ts_SpeedConfidence; + +/* mapem_ts_SpeedConfidence */ +typedef long mapem_ts_SpeedConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_SpeedConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SpeedConfidence; +asn_struct_free_f mapem_ts_SpeedConfidence_free; +asn_struct_print_f mapem_ts_SpeedConfidence_print; +asn_constr_check_f mapem_ts_SpeedConfidence_constraint; +per_type_decoder_f mapem_ts_SpeedConfidence_decode_uper; +per_type_encoder_f mapem_ts_SpeedConfidence_encode_uper; +per_type_decoder_f mapem_ts_SpeedConfidence_decode_aper; +per_type_encoder_f mapem_ts_SpeedConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SpeedConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SpeedConfidenceDSRC.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SpeedConfidenceDSRC.h new file mode 100644 index 000000000..0e1dab138 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SpeedConfidenceDSRC_H_ +#define _mapem_ts_SpeedConfidenceDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_SpeedConfidenceDSRC { + mapem_ts_SpeedConfidenceDSRC_unavailable = 0, + mapem_ts_SpeedConfidenceDSRC_prec100ms = 1, + mapem_ts_SpeedConfidenceDSRC_prec10ms = 2, + mapem_ts_SpeedConfidenceDSRC_prec5ms = 3, + mapem_ts_SpeedConfidenceDSRC_prec1ms = 4, + mapem_ts_SpeedConfidenceDSRC_prec0_1ms = 5, + mapem_ts_SpeedConfidenceDSRC_prec0_05ms = 6, + mapem_ts_SpeedConfidenceDSRC_prec0_01ms = 7 +} e_mapem_ts_SpeedConfidenceDSRC; + +/* mapem_ts_SpeedConfidenceDSRC */ +typedef long mapem_ts_SpeedConfidenceDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_SpeedConfidenceDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SpeedConfidenceDSRC; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_SpeedConfidenceDSRC_specs_1; +asn_struct_free_f mapem_ts_SpeedConfidenceDSRC_free; +asn_struct_print_f mapem_ts_SpeedConfidenceDSRC_print; +asn_constr_check_f mapem_ts_SpeedConfidenceDSRC_constraint; +per_type_decoder_f mapem_ts_SpeedConfidenceDSRC_decode_uper; +per_type_encoder_f mapem_ts_SpeedConfidenceDSRC_encode_uper; +per_type_decoder_f mapem_ts_SpeedConfidenceDSRC_decode_aper; +per_type_encoder_f mapem_ts_SpeedConfidenceDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SpeedConfidenceDSRC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SpeedLimit.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SpeedLimit.h new file mode 100644 index 000000000..48d1c0ac3 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SpeedLimit_H_ +#define _mapem_ts_SpeedLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_SpeedLimit { + mapem_ts_SpeedLimit_oneKmPerHour = 1 +} e_mapem_ts_SpeedLimit; + +/* mapem_ts_SpeedLimit */ +typedef long mapem_ts_SpeedLimit_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SpeedLimit; +asn_struct_free_f mapem_ts_SpeedLimit_free; +asn_struct_print_f mapem_ts_SpeedLimit_print; +asn_constr_check_f mapem_ts_SpeedLimit_constraint; +per_type_decoder_f mapem_ts_SpeedLimit_decode_uper; +per_type_encoder_f mapem_ts_SpeedLimit_encode_uper; +per_type_decoder_f mapem_ts_SpeedLimit_decode_aper; +per_type_encoder_f mapem_ts_SpeedLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SpeedLimit_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SpeedLimitList.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SpeedLimitList.h new file mode 100644 index 000000000..8282f2099 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SpeedLimitList_H_ +#define _mapem_ts_SpeedLimitList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_RegulatorySpeedLimit; + +/* mapem_ts_SpeedLimitList */ +typedef struct mapem_ts_SpeedLimitList { + A_SEQUENCE_OF(struct mapem_ts_RegulatorySpeedLimit) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_SpeedLimitList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SpeedLimitList; +extern asn_SET_OF_specifics_t asn_SPC_mapem_ts_SpeedLimitList_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_SpeedLimitList_1[1]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_SpeedLimitList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_RegulatorySpeedLimit.h" + +#endif /* _mapem_ts_SpeedLimitList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SpeedLimitType.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SpeedLimitType.h new file mode 100644 index 000000000..8e03d891c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SpeedLimitType_H_ +#define _mapem_ts_SpeedLimitType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_SpeedLimitType { + mapem_ts_SpeedLimitType_unknown = 0, + mapem_ts_SpeedLimitType_maxSpeedInSchoolZone = 1, + mapem_ts_SpeedLimitType_maxSpeedInSchoolZoneWhenChildrenArePresent = 2, + mapem_ts_SpeedLimitType_maxSpeedInConstructionZone = 3, + mapem_ts_SpeedLimitType_vehicleMinSpeed = 4, + mapem_ts_SpeedLimitType_vehicleMaxSpeed = 5, + mapem_ts_SpeedLimitType_vehicleNightMaxSpeed = 6, + mapem_ts_SpeedLimitType_truckMinSpeed = 7, + mapem_ts_SpeedLimitType_truckMaxSpeed = 8, + mapem_ts_SpeedLimitType_truckNightMaxSpeed = 9, + mapem_ts_SpeedLimitType_vehiclesWithTrailersMinSpeed = 10, + mapem_ts_SpeedLimitType_vehiclesWithTrailersMaxSpeed = 11, + mapem_ts_SpeedLimitType_vehiclesWithTrailersNightMaxSpeed = 12 + /* + * Enumeration is extensible + */ +} e_mapem_ts_SpeedLimitType; + +/* mapem_ts_SpeedLimitType */ +typedef long mapem_ts_SpeedLimitType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_SpeedLimitType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SpeedLimitType; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_SpeedLimitType_specs_1; +asn_struct_free_f mapem_ts_SpeedLimitType_free; +asn_struct_print_f mapem_ts_SpeedLimitType_print; +asn_constr_check_f mapem_ts_SpeedLimitType_constraint; +per_type_decoder_f mapem_ts_SpeedLimitType_decode_uper; +per_type_encoder_f mapem_ts_SpeedLimitType_encode_uper; +per_type_decoder_f mapem_ts_SpeedLimitType_decode_aper; +per_type_encoder_f mapem_ts_SpeedLimitType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SpeedLimitType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SpeedValue.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SpeedValue.h new file mode 100644 index 000000000..2ae626684 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SpeedValue_H_ +#define _mapem_ts_SpeedValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_SpeedValue { + mapem_ts_SpeedValue_standstill = 0, + mapem_ts_SpeedValue_oneCentimeterPerSec = 1, + mapem_ts_SpeedValue_unavailable = 16383 +} e_mapem_ts_SpeedValue; + +/* mapem_ts_SpeedValue */ +typedef long mapem_ts_SpeedValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_SpeedValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SpeedValue; +asn_struct_free_f mapem_ts_SpeedValue_free; +asn_struct_print_f mapem_ts_SpeedValue_print; +asn_constr_check_f mapem_ts_SpeedValue_constraint; +per_type_decoder_f mapem_ts_SpeedValue_decode_uper; +per_type_encoder_f mapem_ts_SpeedValue_encode_uper; +per_type_decoder_f mapem_ts_SpeedValue_decode_aper; +per_type_encoder_f mapem_ts_SpeedValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SpeedValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SpeedandHeadingandThrottleConfidence.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SpeedandHeadingandThrottleConfidence.h new file mode 100644 index 000000000..6b2caceb6 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SpeedandHeadingandThrottleConfidence_H_ +#define _mapem_ts_SpeedandHeadingandThrottleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_HeadingConfidenceDSRC.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_SpeedConfidenceDSRC.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_ThrottleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_SpeedandHeadingandThrottleConfidence */ +typedef struct mapem_ts_SpeedandHeadingandThrottleConfidence { + mapem_ts_HeadingConfidenceDSRC_t heading; + mapem_ts_SpeedConfidenceDSRC_t speed; + mapem_ts_ThrottleConfidence_t throttle; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_SpeedandHeadingandThrottleConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SpeedandHeadingandThrottleConfidence; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_SpeedandHeadingandThrottleConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_SpeedandHeadingandThrottleConfidence_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SpeedandHeadingandThrottleConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_StartTime.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_StartTime.h new file mode 100644 index 000000000..fb3ba5881 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_StartTime_H_ +#define _mapem_ts_StartTime_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_AviEriDateTime.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_StartTime */ +typedef mapem_ts_AviEriDateTime_t mapem_ts_StartTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_StartTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_StartTime; +asn_struct_free_f mapem_ts_StartTime_free; +asn_struct_print_f mapem_ts_StartTime_print; +asn_constr_check_f mapem_ts_StartTime_constraint; +per_type_decoder_f mapem_ts_StartTime_decode_uper; +per_type_encoder_f mapem_ts_StartTime_encode_uper; +per_type_decoder_f mapem_ts_StartTime_decode_aper; +per_type_encoder_f mapem_ts_StartTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_StartTime_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_StationID.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_StationID.h new file mode 100644 index 000000000..a9c22dd7e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_StationID_H_ +#define _mapem_ts_StationID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_StationID */ +typedef unsigned long mapem_ts_StationID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_StationID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_StationID; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_StationID_specs_1; +asn_struct_free_f mapem_ts_StationID_free; +asn_struct_print_f mapem_ts_StationID_print; +asn_constr_check_f mapem_ts_StationID_constraint; +per_type_decoder_f mapem_ts_StationID_decode_uper; +per_type_encoder_f mapem_ts_StationID_encode_uper; +per_type_decoder_f mapem_ts_StationID_decode_aper; +per_type_encoder_f mapem_ts_StationID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_StationID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_StationType.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_StationType.h new file mode 100644 index 000000000..ad92c934f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_StationType_H_ +#define _mapem_ts_StationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_StationType { + mapem_ts_StationType_unknown = 0, + mapem_ts_StationType_pedestrian = 1, + mapem_ts_StationType_cyclist = 2, + mapem_ts_StationType_moped = 3, + mapem_ts_StationType_motorcycle = 4, + mapem_ts_StationType_passengerCar = 5, + mapem_ts_StationType_bus = 6, + mapem_ts_StationType_lightTruck = 7, + mapem_ts_StationType_heavyTruck = 8, + mapem_ts_StationType_trailer = 9, + mapem_ts_StationType_specialVehicles = 10, + mapem_ts_StationType_tram = 11, + mapem_ts_StationType_roadSideUnit = 15 +} e_mapem_ts_StationType; + +/* mapem_ts_StationType */ +typedef long mapem_ts_StationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_StationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_StationType; +asn_struct_free_f mapem_ts_StationType_free; +asn_struct_print_f mapem_ts_StationType_print; +asn_constr_check_f mapem_ts_StationType_constraint; +per_type_decoder_f mapem_ts_StationType_decode_uper; +per_type_encoder_f mapem_ts_StationType_encode_uper; +per_type_decoder_f mapem_ts_StationType_decode_aper; +per_type_encoder_f mapem_ts_StationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_StationType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_StationarySince.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_StationarySince.h new file mode 100644 index 000000000..f9ff4411a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_StationarySince_H_ +#define _mapem_ts_StationarySince_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_StationarySince { + mapem_ts_StationarySince_lessThan1Minute = 0, + mapem_ts_StationarySince_lessThan2Minutes = 1, + mapem_ts_StationarySince_lessThan15Minutes = 2, + mapem_ts_StationarySince_equalOrGreater15Minutes = 3 +} e_mapem_ts_StationarySince; + +/* mapem_ts_StationarySince */ +typedef long mapem_ts_StationarySince_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_StationarySince; +asn_struct_free_f mapem_ts_StationarySince_free; +asn_struct_print_f mapem_ts_StationarySince_print; +asn_constr_check_f mapem_ts_StationarySince_constraint; +per_type_decoder_f mapem_ts_StationarySince_decode_uper; +per_type_encoder_f mapem_ts_StationarySince_encode_uper; +per_type_decoder_f mapem_ts_StationarySince_decode_aper; +per_type_encoder_f mapem_ts_StationarySince_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_StationarySince_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_StationaryVehicleSubCauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_StationaryVehicleSubCauseCode.h new file mode 100644 index 000000000..cc6a6ecee --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_StationaryVehicleSubCauseCode_H_ +#define _mapem_ts_StationaryVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_StationaryVehicleSubCauseCode { + mapem_ts_StationaryVehicleSubCauseCode_unavailable = 0, + mapem_ts_StationaryVehicleSubCauseCode_humanProblem = 1, + mapem_ts_StationaryVehicleSubCauseCode_vehicleBreakdown = 2, + mapem_ts_StationaryVehicleSubCauseCode_postCrash = 3, + mapem_ts_StationaryVehicleSubCauseCode_publicTransportStop = 4, + mapem_ts_StationaryVehicleSubCauseCode_carryingDangerousGoods = 5 +} e_mapem_ts_StationaryVehicleSubCauseCode; + +/* mapem_ts_StationaryVehicleSubCauseCode */ +typedef long mapem_ts_StationaryVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_StationaryVehicleSubCauseCode; +asn_struct_free_f mapem_ts_StationaryVehicleSubCauseCode_free; +asn_struct_print_f mapem_ts_StationaryVehicleSubCauseCode_print; +asn_constr_check_f mapem_ts_StationaryVehicleSubCauseCode_constraint; +per_type_decoder_f mapem_ts_StationaryVehicleSubCauseCode_decode_uper; +per_type_encoder_f mapem_ts_StationaryVehicleSubCauseCode_encode_uper; +per_type_decoder_f mapem_ts_StationaryVehicleSubCauseCode_decode_aper; +per_type_encoder_f mapem_ts_StationaryVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_StationaryVehicleSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SteeringWheelAngle.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SteeringWheelAngle.h new file mode 100644 index 000000000..6df09da98 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SteeringWheelAngle_H_ +#define _mapem_ts_SteeringWheelAngle_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_SteeringWheelAngleValue.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_SteeringWheelAngleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_SteeringWheelAngle */ +typedef struct mapem_ts_SteeringWheelAngle { + mapem_ts_SteeringWheelAngleValue_t steeringWheelAngleValue; + mapem_ts_SteeringWheelAngleConfidence_t steeringWheelAngleConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_SteeringWheelAngle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SteeringWheelAngle; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SteeringWheelAngle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SteeringWheelAngleConfidence.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SteeringWheelAngleConfidence.h new file mode 100644 index 000000000..8fa27cd92 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SteeringWheelAngleConfidence_H_ +#define _mapem_ts_SteeringWheelAngleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_SteeringWheelAngleConfidence { + mapem_ts_SteeringWheelAngleConfidence_equalOrWithinOnePointFiveDegree = 1, + mapem_ts_SteeringWheelAngleConfidence_outOfRange = 126, + mapem_ts_SteeringWheelAngleConfidence_unavailable = 127 +} e_mapem_ts_SteeringWheelAngleConfidence; + +/* mapem_ts_SteeringWheelAngleConfidence */ +typedef long mapem_ts_SteeringWheelAngleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_SteeringWheelAngleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SteeringWheelAngleConfidence; +asn_struct_free_f mapem_ts_SteeringWheelAngleConfidence_free; +asn_struct_print_f mapem_ts_SteeringWheelAngleConfidence_print; +asn_constr_check_f mapem_ts_SteeringWheelAngleConfidence_constraint; +per_type_decoder_f mapem_ts_SteeringWheelAngleConfidence_decode_uper; +per_type_encoder_f mapem_ts_SteeringWheelAngleConfidence_encode_uper; +per_type_decoder_f mapem_ts_SteeringWheelAngleConfidence_decode_aper; +per_type_encoder_f mapem_ts_SteeringWheelAngleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SteeringWheelAngleConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SteeringWheelAngleValue.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SteeringWheelAngleValue.h new file mode 100644 index 000000000..8d1fe0c30 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SteeringWheelAngleValue_H_ +#define _mapem_ts_SteeringWheelAngleValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_SteeringWheelAngleValue { + mapem_ts_SteeringWheelAngleValue_straight = 0, + mapem_ts_SteeringWheelAngleValue_onePointFiveDegreesToRight = -1, + mapem_ts_SteeringWheelAngleValue_onePointFiveDegreesToLeft = 1, + mapem_ts_SteeringWheelAngleValue_unavailable = 512 +} e_mapem_ts_SteeringWheelAngleValue; + +/* mapem_ts_SteeringWheelAngleValue */ +typedef long mapem_ts_SteeringWheelAngleValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_SteeringWheelAngleValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SteeringWheelAngleValue; +asn_struct_free_f mapem_ts_SteeringWheelAngleValue_free; +asn_struct_print_f mapem_ts_SteeringWheelAngleValue_print; +asn_constr_check_f mapem_ts_SteeringWheelAngleValue_constraint; +per_type_decoder_f mapem_ts_SteeringWheelAngleValue_decode_uper; +per_type_encoder_f mapem_ts_SteeringWheelAngleValue_encode_uper; +per_type_decoder_f mapem_ts_SteeringWheelAngleValue_decode_aper; +per_type_encoder_f mapem_ts_SteeringWheelAngleValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SteeringWheelAngleValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_StopTime.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_StopTime.h new file mode 100644 index 000000000..0fe8e16ca --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_StopTime_H_ +#define _mapem_ts_StopTime_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_AviEriDateTime.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_StopTime */ +typedef mapem_ts_AviEriDateTime_t mapem_ts_StopTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_StopTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_StopTime; +asn_struct_free_f mapem_ts_StopTime_free; +asn_struct_print_f mapem_ts_StopTime_print; +asn_constr_check_f mapem_ts_StopTime_constraint; +per_type_decoder_f mapem_ts_StopTime_decode_uper; +per_type_encoder_f mapem_ts_StopTime_encode_uper; +per_type_decoder_f mapem_ts_StopTime_decode_aper; +per_type_encoder_f mapem_ts_StopTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_StopTime_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SubCauseCodeType.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_SubCauseCodeType.h new file mode 100644 index 000000000..c80504fc1 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_SubCauseCodeType_H_ +#define _mapem_ts_SubCauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_SubCauseCodeType */ +typedef long mapem_ts_SubCauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_SubCauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_SubCauseCodeType; +asn_struct_free_f mapem_ts_SubCauseCodeType_free; +asn_struct_print_f mapem_ts_SubCauseCodeType_print; +asn_constr_check_f mapem_ts_SubCauseCodeType_constraint; +per_type_decoder_f mapem_ts_SubCauseCodeType_decode_uper; +per_type_encoder_f mapem_ts_SubCauseCodeType_encode_uper; +per_type_decoder_f mapem_ts_SubCauseCodeType_decode_aper; +per_type_encoder_f mapem_ts_SubCauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_SubCauseCodeType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TaxCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TaxCode.h new file mode 100644 index 000000000..2e43d1b42 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_TaxCode_H_ +#define _mapem_ts_TaxCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_TaxCode */ +typedef OCTET_STRING_t mapem_ts_TaxCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_TaxCode; +asn_struct_free_f mapem_ts_TaxCode_free; +asn_struct_print_f mapem_ts_TaxCode_print; +asn_constr_check_f mapem_ts_TaxCode_constraint; +per_type_decoder_f mapem_ts_TaxCode_decode_uper; +per_type_encoder_f mapem_ts_TaxCode_encode_uper; +per_type_decoder_f mapem_ts_TaxCode_decode_aper; +per_type_encoder_f mapem_ts_TaxCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_TaxCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Temperature.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Temperature.h new file mode 100644 index 000000000..61673992d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Temperature_H_ +#define _mapem_ts_Temperature_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_Temperature { + mapem_ts_Temperature_equalOrSmallerThanMinus60Deg = -60, + mapem_ts_Temperature_oneDegreeCelsius = 1, + mapem_ts_Temperature_equalOrGreaterThan67Deg = 67 +} e_mapem_ts_Temperature; + +/* mapem_ts_Temperature */ +typedef long mapem_ts_Temperature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Temperature; +asn_struct_free_f mapem_ts_Temperature_free; +asn_struct_print_f mapem_ts_Temperature_print; +asn_constr_check_f mapem_ts_Temperature_constraint; +per_type_decoder_f mapem_ts_Temperature_decode_uper; +per_type_encoder_f mapem_ts_Temperature_encode_uper; +per_type_decoder_f mapem_ts_Temperature_decode_aper; +per_type_encoder_f mapem_ts_Temperature_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Temperature_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TemporaryID.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TemporaryID.h new file mode 100644 index 000000000..79fb0dbb5 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_TemporaryID_H_ +#define _mapem_ts_TemporaryID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_TemporaryID */ +typedef OCTET_STRING_t mapem_ts_TemporaryID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_TemporaryID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_TemporaryID; +asn_struct_free_f mapem_ts_TemporaryID_free; +asn_struct_print_f mapem_ts_TemporaryID_print; +asn_constr_check_f mapem_ts_TemporaryID_constraint; +per_type_decoder_f mapem_ts_TemporaryID_decode_uper; +per_type_encoder_f mapem_ts_TemporaryID_encode_uper; +per_type_decoder_f mapem_ts_TemporaryID_decode_aper; +per_type_encoder_f mapem_ts_TemporaryID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_TemporaryID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ThrottleConfidence.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ThrottleConfidence.h new file mode 100644 index 000000000..523dbd0eb --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ThrottleConfidence_H_ +#define _mapem_ts_ThrottleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_ThrottleConfidence { + mapem_ts_ThrottleConfidence_unavailable = 0, + mapem_ts_ThrottleConfidence_prec10percent = 1, + mapem_ts_ThrottleConfidence_prec1percent = 2, + mapem_ts_ThrottleConfidence_prec0_5percent = 3 +} e_mapem_ts_ThrottleConfidence; + +/* mapem_ts_ThrottleConfidence */ +typedef long mapem_ts_ThrottleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_ThrottleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ThrottleConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_ThrottleConfidence_specs_1; +asn_struct_free_f mapem_ts_ThrottleConfidence_free; +asn_struct_print_f mapem_ts_ThrottleConfidence_print; +asn_constr_check_f mapem_ts_ThrottleConfidence_constraint; +per_type_decoder_f mapem_ts_ThrottleConfidence_decode_uper; +per_type_encoder_f mapem_ts_ThrottleConfidence_encode_uper; +per_type_decoder_f mapem_ts_ThrottleConfidence_decode_aper; +per_type_encoder_f mapem_ts_ThrottleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_ThrottleConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TimeChangeDetails.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TimeChangeDetails.h new file mode 100644 index 000000000..934de1509 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_TimeChangeDetails_H_ +#define _mapem_ts_TimeChangeDetails_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_TimeMark.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_TimeIntervalConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_TimeChangeDetails */ +typedef struct mapem_ts_TimeChangeDetails { + mapem_ts_TimeMark_t *startTime; /* OPTIONAL */ + mapem_ts_TimeMark_t minEndTime; + mapem_ts_TimeMark_t *maxEndTime; /* OPTIONAL */ + mapem_ts_TimeMark_t *likelyTime; /* OPTIONAL */ + mapem_ts_TimeIntervalConfidence_t *confidence; /* OPTIONAL */ + mapem_ts_TimeMark_t *nextTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_TimeChangeDetails_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_TimeChangeDetails; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_TimeChangeDetails_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_TimeChangeDetails_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_TimeChangeDetails_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TimeConfidence.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TimeConfidence.h new file mode 100644 index 000000000..d06128aa7 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_TimeConfidence_H_ +#define _mapem_ts_TimeConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_TimeConfidence { + mapem_ts_TimeConfidence_unavailable = 0, + mapem_ts_TimeConfidence_time_100_000 = 1, + mapem_ts_TimeConfidence_time_050_000 = 2, + mapem_ts_TimeConfidence_time_020_000 = 3, + mapem_ts_TimeConfidence_time_010_000 = 4, + mapem_ts_TimeConfidence_time_002_000 = 5, + mapem_ts_TimeConfidence_time_001_000 = 6, + mapem_ts_TimeConfidence_time_000_500 = 7, + mapem_ts_TimeConfidence_time_000_200 = 8, + mapem_ts_TimeConfidence_time_000_100 = 9, + mapem_ts_TimeConfidence_time_000_050 = 10, + mapem_ts_TimeConfidence_time_000_020 = 11, + mapem_ts_TimeConfidence_time_000_010 = 12, + mapem_ts_TimeConfidence_time_000_005 = 13, + mapem_ts_TimeConfidence_time_000_002 = 14, + mapem_ts_TimeConfidence_time_000_001 = 15, + mapem_ts_TimeConfidence_time_000_000_5 = 16, + mapem_ts_TimeConfidence_time_000_000_2 = 17, + mapem_ts_TimeConfidence_time_000_000_1 = 18, + mapem_ts_TimeConfidence_time_000_000_05 = 19, + mapem_ts_TimeConfidence_time_000_000_02 = 20, + mapem_ts_TimeConfidence_time_000_000_01 = 21, + mapem_ts_TimeConfidence_time_000_000_005 = 22, + mapem_ts_TimeConfidence_time_000_000_002 = 23, + mapem_ts_TimeConfidence_time_000_000_001 = 24, + mapem_ts_TimeConfidence_time_000_000_000_5 = 25, + mapem_ts_TimeConfidence_time_000_000_000_2 = 26, + mapem_ts_TimeConfidence_time_000_000_000_1 = 27, + mapem_ts_TimeConfidence_time_000_000_000_05 = 28, + mapem_ts_TimeConfidence_time_000_000_000_02 = 29, + mapem_ts_TimeConfidence_time_000_000_000_01 = 30, + mapem_ts_TimeConfidence_time_000_000_000_005 = 31, + mapem_ts_TimeConfidence_time_000_000_000_002 = 32, + mapem_ts_TimeConfidence_time_000_000_000_001 = 33, + mapem_ts_TimeConfidence_time_000_000_000_000_5 = 34, + mapem_ts_TimeConfidence_time_000_000_000_000_2 = 35, + mapem_ts_TimeConfidence_time_000_000_000_000_1 = 36, + mapem_ts_TimeConfidence_time_000_000_000_000_05 = 37, + mapem_ts_TimeConfidence_time_000_000_000_000_02 = 38, + mapem_ts_TimeConfidence_time_000_000_000_000_01 = 39 +} e_mapem_ts_TimeConfidence; + +/* mapem_ts_TimeConfidence */ +typedef long mapem_ts_TimeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_TimeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_TimeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_TimeConfidence_specs_1; +asn_struct_free_f mapem_ts_TimeConfidence_free; +asn_struct_print_f mapem_ts_TimeConfidence_print; +asn_constr_check_f mapem_ts_TimeConfidence_constraint; +per_type_decoder_f mapem_ts_TimeConfidence_decode_uper; +per_type_encoder_f mapem_ts_TimeConfidence_encode_uper; +per_type_decoder_f mapem_ts_TimeConfidence_decode_aper; +per_type_encoder_f mapem_ts_TimeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_TimeConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TimeIntervalConfidence.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TimeIntervalConfidence.h new file mode 100644 index 000000000..e0bdde29e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_TimeIntervalConfidence_H_ +#define _mapem_ts_TimeIntervalConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_TimeIntervalConfidence */ +typedef long mapem_ts_TimeIntervalConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_TimeIntervalConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_TimeIntervalConfidence; +asn_struct_free_f mapem_ts_TimeIntervalConfidence_free; +asn_struct_print_f mapem_ts_TimeIntervalConfidence_print; +asn_constr_check_f mapem_ts_TimeIntervalConfidence_constraint; +per_type_decoder_f mapem_ts_TimeIntervalConfidence_decode_uper; +per_type_encoder_f mapem_ts_TimeIntervalConfidence_encode_uper; +per_type_decoder_f mapem_ts_TimeIntervalConfidence_decode_aper; +per_type_encoder_f mapem_ts_TimeIntervalConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_TimeIntervalConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TimeMark.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TimeMark.h new file mode 100644 index 000000000..7e3639c47 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_TimeMark_H_ +#define _mapem_ts_TimeMark_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_TimeMark */ +typedef long mapem_ts_TimeMark_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_TimeMark_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_TimeMark; +asn_struct_free_f mapem_ts_TimeMark_free; +asn_struct_print_f mapem_ts_TimeMark_print; +asn_constr_check_f mapem_ts_TimeMark_constraint; +per_type_decoder_f mapem_ts_TimeMark_decode_uper; +per_type_encoder_f mapem_ts_TimeMark_encode_uper; +per_type_decoder_f mapem_ts_TimeMark_decode_aper; +per_type_encoder_f mapem_ts_TimeMark_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_TimeMark_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TimeReference.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TimeReference.h new file mode 100644 index 000000000..7a854bcc9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_TimeReference_H_ +#define _mapem_ts_TimeReference_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_TimeReference { + mapem_ts_TimeReference_oneMilliSec = 1 +} e_mapem_ts_TimeReference; + +/* mapem_ts_TimeReference */ +typedef long mapem_ts_TimeReference_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_TimeReference_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_TimeReference; +asn_struct_free_f mapem_ts_TimeReference_free; +asn_struct_print_f mapem_ts_TimeReference_print; +asn_constr_check_f mapem_ts_TimeReference_constraint; +per_type_decoder_f mapem_ts_TimeReference_decode_uper; +per_type_encoder_f mapem_ts_TimeReference_encode_uper; +per_type_decoder_f mapem_ts_TimeReference_decode_aper; +per_type_encoder_f mapem_ts_TimeReference_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_TimeReference_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TimestampIts.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TimestampIts.h new file mode 100644 index 000000000..395f88c7c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_TimestampIts_H_ +#define _mapem_ts_TimestampIts_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_TimestampIts { + mapem_ts_TimestampIts_utcStartOf2004 = 0, + mapem_ts_TimestampIts_oneMillisecAfterUTCStartOf2004 = 1 +} e_mapem_ts_TimestampIts; + +/* mapem_ts_TimestampIts */ +typedef INTEGER_t mapem_ts_TimestampIts_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_TimestampIts_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_TimestampIts; +asn_struct_free_f mapem_ts_TimestampIts_free; +asn_struct_print_f mapem_ts_TimestampIts_print; +asn_constr_check_f mapem_ts_TimestampIts_constraint; +per_type_decoder_f mapem_ts_TimestampIts_decode_uper; +per_type_encoder_f mapem_ts_TimestampIts_encode_uper; +per_type_decoder_f mapem_ts_TimestampIts_decode_aper; +per_type_encoder_f mapem_ts_TimestampIts_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_TimestampIts_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Traces.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Traces.h new file mode 100644 index 000000000..de0ef43c9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Traces_H_ +#define _mapem_ts_Traces_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct mapem_ts_PathHistory; + +/* mapem_ts_Traces */ +typedef struct mapem_ts_Traces { + A_SEQUENCE_OF(struct mapem_ts_PathHistory) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_Traces_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Traces; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_mapem_ts_coding/mapem_ts_PathHistory.h" + +#endif /* _mapem_ts_Traces_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TrafficConditionSubCauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TrafficConditionSubCauseCode.h new file mode 100644 index 000000000..c427160ca --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_TrafficConditionSubCauseCode_H_ +#define _mapem_ts_TrafficConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_TrafficConditionSubCauseCode { + mapem_ts_TrafficConditionSubCauseCode_unavailable = 0, + mapem_ts_TrafficConditionSubCauseCode_increasedVolumeOfTraffic = 1, + mapem_ts_TrafficConditionSubCauseCode_trafficJamSlowlyIncreasing = 2, + mapem_ts_TrafficConditionSubCauseCode_trafficJamIncreasing = 3, + mapem_ts_TrafficConditionSubCauseCode_trafficJamStronglyIncreasing = 4, + mapem_ts_TrafficConditionSubCauseCode_trafficStationary = 5, + mapem_ts_TrafficConditionSubCauseCode_trafficJamSlightlyDecreasing = 6, + mapem_ts_TrafficConditionSubCauseCode_trafficJamDecreasing = 7, + mapem_ts_TrafficConditionSubCauseCode_trafficJamStronglyDecreasing = 8 +} e_mapem_ts_TrafficConditionSubCauseCode; + +/* mapem_ts_TrafficConditionSubCauseCode */ +typedef long mapem_ts_TrafficConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_TrafficConditionSubCauseCode; +asn_struct_free_f mapem_ts_TrafficConditionSubCauseCode_free; +asn_struct_print_f mapem_ts_TrafficConditionSubCauseCode_print; +asn_constr_check_f mapem_ts_TrafficConditionSubCauseCode_constraint; +per_type_decoder_f mapem_ts_TrafficConditionSubCauseCode_decode_uper; +per_type_encoder_f mapem_ts_TrafficConditionSubCauseCode_encode_uper; +per_type_decoder_f mapem_ts_TrafficConditionSubCauseCode_decode_aper; +per_type_encoder_f mapem_ts_TrafficConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_TrafficConditionSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TrafficRule.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TrafficRule.h new file mode 100644 index 000000000..a6c0da40a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_TrafficRule_H_ +#define _mapem_ts_TrafficRule_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_TrafficRule { + mapem_ts_TrafficRule_noPassing = 0, + mapem_ts_TrafficRule_noPassingForTrucks = 1, + mapem_ts_TrafficRule_passToRight = 2, + mapem_ts_TrafficRule_passToLeft = 3 + /* + * Enumeration is extensible + */ +} e_mapem_ts_TrafficRule; + +/* mapem_ts_TrafficRule */ +typedef long mapem_ts_TrafficRule_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_TrafficRule; +asn_struct_free_f mapem_ts_TrafficRule_free; +asn_struct_print_f mapem_ts_TrafficRule_print; +asn_constr_check_f mapem_ts_TrafficRule_constraint; +per_type_decoder_f mapem_ts_TrafficRule_decode_uper; +per_type_encoder_f mapem_ts_TrafficRule_encode_uper; +per_type_decoder_f mapem_ts_TrafficRule_decode_aper; +per_type_encoder_f mapem_ts_TrafficRule_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_TrafficRule_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TransitVehicleOccupancy.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TransitVehicleOccupancy.h new file mode 100644 index 000000000..5af0bb20d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_TransitVehicleOccupancy_H_ +#define _mapem_ts_TransitVehicleOccupancy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_TransitVehicleOccupancy { + mapem_ts_TransitVehicleOccupancy_occupancyUnknown = 0, + mapem_ts_TransitVehicleOccupancy_occupancyEmpty = 1, + mapem_ts_TransitVehicleOccupancy_occupancyVeryLow = 2, + mapem_ts_TransitVehicleOccupancy_occupancyLow = 3, + mapem_ts_TransitVehicleOccupancy_occupancyMed = 4, + mapem_ts_TransitVehicleOccupancy_occupancyHigh = 5, + mapem_ts_TransitVehicleOccupancy_occupancyNearlyFull = 6, + mapem_ts_TransitVehicleOccupancy_occupancyFull = 7 +} e_mapem_ts_TransitVehicleOccupancy; + +/* mapem_ts_TransitVehicleOccupancy */ +typedef long mapem_ts_TransitVehicleOccupancy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_TransitVehicleOccupancy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_TransitVehicleOccupancy; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_TransitVehicleOccupancy_specs_1; +asn_struct_free_f mapem_ts_TransitVehicleOccupancy_free; +asn_struct_print_f mapem_ts_TransitVehicleOccupancy_print; +asn_constr_check_f mapem_ts_TransitVehicleOccupancy_constraint; +per_type_decoder_f mapem_ts_TransitVehicleOccupancy_decode_uper; +per_type_encoder_f mapem_ts_TransitVehicleOccupancy_encode_uper; +per_type_decoder_f mapem_ts_TransitVehicleOccupancy_decode_aper; +per_type_encoder_f mapem_ts_TransitVehicleOccupancy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_TransitVehicleOccupancy_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TransitVehicleStatus.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TransitVehicleStatus.h new file mode 100644 index 000000000..5978010f0 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_TransitVehicleStatus_H_ +#define _mapem_ts_TransitVehicleStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_TransitVehicleStatus { + mapem_ts_TransitVehicleStatus_loading = 0, + mapem_ts_TransitVehicleStatus_anADAuse = 1, + mapem_ts_TransitVehicleStatus_aBikeLoad = 2, + mapem_ts_TransitVehicleStatus_doorOpen = 3, + mapem_ts_TransitVehicleStatus_charging = 4, + mapem_ts_TransitVehicleStatus_atStopLine = 5 +} e_mapem_ts_TransitVehicleStatus; + +/* mapem_ts_TransitVehicleStatus */ +typedef BIT_STRING_t mapem_ts_TransitVehicleStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_TransitVehicleStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_TransitVehicleStatus; +asn_struct_free_f mapem_ts_TransitVehicleStatus_free; +asn_struct_print_f mapem_ts_TransitVehicleStatus_print; +asn_constr_check_f mapem_ts_TransitVehicleStatus_constraint; +per_type_decoder_f mapem_ts_TransitVehicleStatus_decode_uper; +per_type_encoder_f mapem_ts_TransitVehicleStatus_encode_uper; +per_type_decoder_f mapem_ts_TransitVehicleStatus_decode_aper; +per_type_encoder_f mapem_ts_TransitVehicleStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_TransitVehicleStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TransmissionAndSpeed.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TransmissionAndSpeed.h new file mode 100644 index 000000000..f1e613e05 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_TransmissionAndSpeed_H_ +#define _mapem_ts_TransmissionAndSpeed_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_TransmissionState.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_Velocity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_TransmissionAndSpeed */ +typedef struct mapem_ts_TransmissionAndSpeed { + mapem_ts_TransmissionState_t transmisson; + mapem_ts_Velocity_t speed; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_TransmissionAndSpeed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_TransmissionAndSpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_TransmissionAndSpeed_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_TransmissionAndSpeed_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_TransmissionAndSpeed_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TransmissionInterval.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TransmissionInterval.h new file mode 100644 index 000000000..45db75ace --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_TransmissionInterval_H_ +#define _mapem_ts_TransmissionInterval_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_TransmissionInterval { + mapem_ts_TransmissionInterval_oneMilliSecond = 1, + mapem_ts_TransmissionInterval_tenSeconds = 10000 +} e_mapem_ts_TransmissionInterval; + +/* mapem_ts_TransmissionInterval */ +typedef long mapem_ts_TransmissionInterval_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_TransmissionInterval; +asn_struct_free_f mapem_ts_TransmissionInterval_free; +asn_struct_print_f mapem_ts_TransmissionInterval_print; +asn_constr_check_f mapem_ts_TransmissionInterval_constraint; +per_type_decoder_f mapem_ts_TransmissionInterval_decode_uper; +per_type_encoder_f mapem_ts_TransmissionInterval_encode_uper; +per_type_decoder_f mapem_ts_TransmissionInterval_decode_aper; +per_type_encoder_f mapem_ts_TransmissionInterval_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_TransmissionInterval_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TransmissionState.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TransmissionState.h new file mode 100644 index 000000000..574063ce3 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_TransmissionState_H_ +#define _mapem_ts_TransmissionState_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_TransmissionState { + mapem_ts_TransmissionState_neutral = 0, + mapem_ts_TransmissionState_park = 1, + mapem_ts_TransmissionState_forwardGears = 2, + mapem_ts_TransmissionState_reverseGears = 3, + mapem_ts_TransmissionState_reserved1 = 4, + mapem_ts_TransmissionState_reserved2 = 5, + mapem_ts_TransmissionState_reserved3 = 6, + mapem_ts_TransmissionState_unavailable = 7 +} e_mapem_ts_TransmissionState; + +/* mapem_ts_TransmissionState */ +typedef long mapem_ts_TransmissionState_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_TransmissionState_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_TransmissionState; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_TransmissionState_specs_1; +asn_struct_free_f mapem_ts_TransmissionState_free; +asn_struct_print_f mapem_ts_TransmissionState_print; +asn_constr_check_f mapem_ts_TransmissionState_constraint; +per_type_decoder_f mapem_ts_TransmissionState_decode_uper; +per_type_encoder_f mapem_ts_TransmissionState_encode_uper; +per_type_decoder_f mapem_ts_TransmissionState_decode_aper; +per_type_encoder_f mapem_ts_TransmissionState_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_TransmissionState_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TurningRadius.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_TurningRadius.h new file mode 100644 index 000000000..4a4800d24 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_TurningRadius_H_ +#define _mapem_ts_TurningRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_TurningRadius { + mapem_ts_TurningRadius_point4Meters = 1, + mapem_ts_TurningRadius_unavailable = 255 +} e_mapem_ts_TurningRadius; + +/* mapem_ts_TurningRadius */ +typedef long mapem_ts_TurningRadius_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_TurningRadius; +asn_struct_free_f mapem_ts_TurningRadius_free; +asn_struct_print_f mapem_ts_TurningRadius_print; +asn_constr_check_f mapem_ts_TurningRadius_constraint; +per_type_decoder_f mapem_ts_TurningRadius_decode_uper; +per_type_encoder_f mapem_ts_TurningRadius_encode_uper; +per_type_decoder_f mapem_ts_TurningRadius_decode_aper; +per_type_encoder_f mapem_ts_TurningRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_TurningRadius_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VDS.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VDS.h new file mode 100644 index 000000000..30e7498c1 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_VDS_H_ +#define _mapem_ts_VDS_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_VDS */ +typedef IA5String_t mapem_ts_VDS_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_VDS_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_VDS; +asn_struct_free_f mapem_ts_VDS_free; +asn_struct_print_f mapem_ts_VDS_print; +asn_constr_check_f mapem_ts_VDS_constraint; +per_type_decoder_f mapem_ts_VDS_decode_uper; +per_type_encoder_f mapem_ts_VDS_encode_uper; +per_type_decoder_f mapem_ts_VDS_decode_aper; +per_type_encoder_f mapem_ts_VDS_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_VDS_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ValidityDuration.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ValidityDuration.h new file mode 100644 index 000000000..5d527cbe9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ValidityDuration_H_ +#define _mapem_ts_ValidityDuration_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_ValidityDuration { + mapem_ts_ValidityDuration_timeOfDetection = 0, + mapem_ts_ValidityDuration_oneSecondAfterDetection = 1 +} e_mapem_ts_ValidityDuration; + +/* mapem_ts_ValidityDuration */ +typedef long mapem_ts_ValidityDuration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ValidityDuration; +asn_struct_free_f mapem_ts_ValidityDuration_free; +asn_struct_print_f mapem_ts_ValidityDuration_print; +asn_constr_check_f mapem_ts_ValidityDuration_constraint; +per_type_decoder_f mapem_ts_ValidityDuration_decode_uper; +per_type_encoder_f mapem_ts_ValidityDuration_encode_uper; +per_type_decoder_f mapem_ts_ValidityDuration_decode_aper; +per_type_encoder_f mapem_ts_ValidityDuration_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_ValidityDuration_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VehicleBreakdownSubCauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VehicleBreakdownSubCauseCode.h new file mode 100644 index 000000000..f922c6256 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_VehicleBreakdownSubCauseCode_H_ +#define _mapem_ts_VehicleBreakdownSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_VehicleBreakdownSubCauseCode { + mapem_ts_VehicleBreakdownSubCauseCode_unavailable = 0, + mapem_ts_VehicleBreakdownSubCauseCode_lackOfFuel = 1, + mapem_ts_VehicleBreakdownSubCauseCode_lackOfBatteryPower = 2, + mapem_ts_VehicleBreakdownSubCauseCode_engineProblem = 3, + mapem_ts_VehicleBreakdownSubCauseCode_transmissionProblem = 4, + mapem_ts_VehicleBreakdownSubCauseCode_engineCoolingProblem = 5, + mapem_ts_VehicleBreakdownSubCauseCode_brakingSystemProblem = 6, + mapem_ts_VehicleBreakdownSubCauseCode_steeringProblem = 7, + mapem_ts_VehicleBreakdownSubCauseCode_tyrePuncture = 8, + mapem_ts_VehicleBreakdownSubCauseCode_tyrePressureProblem = 9 +} e_mapem_ts_VehicleBreakdownSubCauseCode; + +/* mapem_ts_VehicleBreakdownSubCauseCode */ +typedef long mapem_ts_VehicleBreakdownSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_VehicleBreakdownSubCauseCode; +asn_struct_free_f mapem_ts_VehicleBreakdownSubCauseCode_free; +asn_struct_print_f mapem_ts_VehicleBreakdownSubCauseCode_print; +asn_constr_check_f mapem_ts_VehicleBreakdownSubCauseCode_constraint; +per_type_decoder_f mapem_ts_VehicleBreakdownSubCauseCode_decode_uper; +per_type_encoder_f mapem_ts_VehicleBreakdownSubCauseCode_encode_uper; +per_type_decoder_f mapem_ts_VehicleBreakdownSubCauseCode_decode_aper; +per_type_encoder_f mapem_ts_VehicleBreakdownSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_VehicleBreakdownSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VehicleHeight.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VehicleHeight.h new file mode 100644 index 000000000..0307e7cc9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_VehicleHeight_H_ +#define _mapem_ts_VehicleHeight_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_VehicleHeight */ +typedef long mapem_ts_VehicleHeight_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_VehicleHeight_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_VehicleHeight; +asn_struct_free_f mapem_ts_VehicleHeight_free; +asn_struct_print_f mapem_ts_VehicleHeight_print; +asn_constr_check_f mapem_ts_VehicleHeight_constraint; +per_type_decoder_f mapem_ts_VehicleHeight_decode_uper; +per_type_encoder_f mapem_ts_VehicleHeight_encode_uper; +per_type_decoder_f mapem_ts_VehicleHeight_decode_aper; +per_type_encoder_f mapem_ts_VehicleHeight_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_VehicleHeight_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VehicleID.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VehicleID.h new file mode 100644 index 000000000..6494d6411 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_VehicleID_H_ +#define _mapem_ts_VehicleID_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_TemporaryID.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_StationID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_VehicleID_PR { + mapem_ts_VehicleID_PR_NOTHING, /* No components present */ + mapem_ts_VehicleID_PR_entityID, + mapem_ts_VehicleID_PR_stationID +} mapem_ts_VehicleID_PR; + +/* mapem_ts_VehicleID */ +typedef struct mapem_ts_VehicleID { + mapem_ts_VehicleID_PR present; + union mapem_ts_VehicleID_u { + mapem_ts_TemporaryID_t entityID; + mapem_ts_StationID_t stationID; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_VehicleID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_VehicleID; +extern asn_CHOICE_specifics_t asn_SPC_mapem_ts_VehicleID_specs_1; +extern asn_TYPE_member_t asn_MBR_mapem_ts_VehicleID_1[2]; +extern asn_per_constraints_t asn_PER_type_mapem_ts_VehicleID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_VehicleID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VehicleIdentification.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VehicleIdentification.h new file mode 100644 index 000000000..82bdbe57e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_VehicleIdentification_H_ +#define _mapem_ts_VehicleIdentification_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_WMInumber.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_VDS.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_VehicleIdentification */ +typedef struct mapem_ts_VehicleIdentification { + mapem_ts_WMInumber_t *wMInumber; /* OPTIONAL */ + mapem_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; +} mapem_ts_VehicleIdentification_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_VehicleIdentification; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_VehicleIdentification_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VehicleLength.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VehicleLength.h new file mode 100644 index 000000000..96f3e3590 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_VehicleLength_H_ +#define _mapem_ts_VehicleLength_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_VehicleLengthValue.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_VehicleLengthConfidenceIndication.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_VehicleLength */ +typedef struct mapem_ts_VehicleLength { + mapem_ts_VehicleLengthValue_t vehicleLengthValue; + mapem_ts_VehicleLengthConfidenceIndication_t vehicleLengthConfidenceIndication; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_VehicleLength_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_VehicleLength; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_VehicleLength_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VehicleLengthConfidenceIndication.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VehicleLengthConfidenceIndication.h new file mode 100644 index 000000000..6727e4f48 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_VehicleLengthConfidenceIndication_H_ +#define _mapem_ts_VehicleLengthConfidenceIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_VehicleLengthConfidenceIndication { + mapem_ts_VehicleLengthConfidenceIndication_noTrailerPresent = 0, + mapem_ts_VehicleLengthConfidenceIndication_trailerPresentWithKnownLength = 1, + mapem_ts_VehicleLengthConfidenceIndication_trailerPresentWithUnknownLength = 2, + mapem_ts_VehicleLengthConfidenceIndication_trailerPresenceIsUnknown = 3, + mapem_ts_VehicleLengthConfidenceIndication_unavailable = 4 +} e_mapem_ts_VehicleLengthConfidenceIndication; + +/* mapem_ts_VehicleLengthConfidenceIndication */ +typedef long mapem_ts_VehicleLengthConfidenceIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_VehicleLengthConfidenceIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_VehicleLengthConfidenceIndication; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_VehicleLengthConfidenceIndication_specs_1; +asn_struct_free_f mapem_ts_VehicleLengthConfidenceIndication_free; +asn_struct_print_f mapem_ts_VehicleLengthConfidenceIndication_print; +asn_constr_check_f mapem_ts_VehicleLengthConfidenceIndication_constraint; +per_type_decoder_f mapem_ts_VehicleLengthConfidenceIndication_decode_uper; +per_type_encoder_f mapem_ts_VehicleLengthConfidenceIndication_encode_uper; +per_type_decoder_f mapem_ts_VehicleLengthConfidenceIndication_decode_aper; +per_type_encoder_f mapem_ts_VehicleLengthConfidenceIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_VehicleLengthConfidenceIndication_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VehicleLengthValue.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VehicleLengthValue.h new file mode 100644 index 000000000..55a24bbed --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_VehicleLengthValue_H_ +#define _mapem_ts_VehicleLengthValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_VehicleLengthValue { + mapem_ts_VehicleLengthValue_tenCentimeters = 1, + mapem_ts_VehicleLengthValue_outOfRange = 1022, + mapem_ts_VehicleLengthValue_unavailable = 1023 +} e_mapem_ts_VehicleLengthValue; + +/* mapem_ts_VehicleLengthValue */ +typedef long mapem_ts_VehicleLengthValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_VehicleLengthValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_VehicleLengthValue; +asn_struct_free_f mapem_ts_VehicleLengthValue_free; +asn_struct_print_f mapem_ts_VehicleLengthValue_print; +asn_constr_check_f mapem_ts_VehicleLengthValue_constraint; +per_type_decoder_f mapem_ts_VehicleLengthValue_decode_uper; +per_type_encoder_f mapem_ts_VehicleLengthValue_encode_uper; +per_type_decoder_f mapem_ts_VehicleLengthValue_decode_aper; +per_type_encoder_f mapem_ts_VehicleLengthValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_VehicleLengthValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VehicleMass.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VehicleMass.h new file mode 100644 index 000000000..e948de637 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_VehicleMass_H_ +#define _mapem_ts_VehicleMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_VehicleMass { + mapem_ts_VehicleMass_hundredKg = 1, + mapem_ts_VehicleMass_unavailable = 1024 +} e_mapem_ts_VehicleMass; + +/* mapem_ts_VehicleMass */ +typedef long mapem_ts_VehicleMass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_VehicleMass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_VehicleMass; +asn_struct_free_f mapem_ts_VehicleMass_free; +asn_struct_print_f mapem_ts_VehicleMass_print; +asn_constr_check_f mapem_ts_VehicleMass_constraint; +per_type_decoder_f mapem_ts_VehicleMass_decode_uper; +per_type_encoder_f mapem_ts_VehicleMass_encode_uper; +per_type_decoder_f mapem_ts_VehicleMass_decode_aper; +per_type_encoder_f mapem_ts_VehicleMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_VehicleMass_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VehicleRole.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VehicleRole.h new file mode 100644 index 000000000..a9e70a4f8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VehicleRole.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_VehicleRole_H_ +#define _mapem_ts_VehicleRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_VehicleRole { + mapem_ts_VehicleRole_default = 0, + mapem_ts_VehicleRole_publicTransport = 1, + mapem_ts_VehicleRole_specialTransport = 2, + mapem_ts_VehicleRole_dangerousGoods = 3, + mapem_ts_VehicleRole_roadWork = 4, + mapem_ts_VehicleRole_rescue = 5, + mapem_ts_VehicleRole_emergency = 6, + mapem_ts_VehicleRole_safetyCar = 7, + mapem_ts_VehicleRole_agriculture = 8, + mapem_ts_VehicleRole_commercial = 9, + mapem_ts_VehicleRole_military = 10, + mapem_ts_VehicleRole_roadOperator = 11, + mapem_ts_VehicleRole_taxi = 12, + mapem_ts_VehicleRole_reserved1 = 13, + mapem_ts_VehicleRole_reserved2 = 14, + mapem_ts_VehicleRole_reserved3 = 15 +} e_mapem_ts_VehicleRole; + +/* mapem_ts_VehicleRole */ +typedef long mapem_ts_VehicleRole_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_VehicleRole; +asn_struct_free_f mapem_ts_VehicleRole_free; +asn_struct_print_f mapem_ts_VehicleRole_print; +asn_constr_check_f mapem_ts_VehicleRole_constraint; +per_type_decoder_f mapem_ts_VehicleRole_decode_uper; +per_type_encoder_f mapem_ts_VehicleRole_encode_uper; +per_type_decoder_f mapem_ts_VehicleRole_decode_aper; +per_type_encoder_f mapem_ts_VehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_VehicleRole_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VehicleType.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VehicleType.h new file mode 100644 index 000000000..46f97f4d8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_VehicleType_H_ +#define _mapem_ts_VehicleType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_VehicleType { + mapem_ts_VehicleType_none = 0, + mapem_ts_VehicleType_unknown = 1, + mapem_ts_VehicleType_special = 2, + mapem_ts_VehicleType_moto = 3, + mapem_ts_VehicleType_car = 4, + mapem_ts_VehicleType_carOther = 5, + mapem_ts_VehicleType_bus = 6, + mapem_ts_VehicleType_axleCnt2 = 7, + mapem_ts_VehicleType_axleCnt3 = 8, + mapem_ts_VehicleType_axleCnt4 = 9, + mapem_ts_VehicleType_axleCnt4Trailer = 10, + mapem_ts_VehicleType_axleCnt5Trailer = 11, + mapem_ts_VehicleType_axleCnt6Trailer = 12, + mapem_ts_VehicleType_axleCnt5MultiTrailer = 13, + mapem_ts_VehicleType_axleCnt6MultiTrailer = 14, + mapem_ts_VehicleType_axleCnt7MultiTrailer = 15 + /* + * Enumeration is extensible + */ +} e_mapem_ts_VehicleType; + +/* mapem_ts_VehicleType */ +typedef long mapem_ts_VehicleType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_VehicleType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_VehicleType; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_VehicleType_specs_1; +asn_struct_free_f mapem_ts_VehicleType_free; +asn_struct_print_f mapem_ts_VehicleType_print; +asn_constr_check_f mapem_ts_VehicleType_constraint; +per_type_decoder_f mapem_ts_VehicleType_decode_uper; +per_type_encoder_f mapem_ts_VehicleType_encode_uper; +per_type_decoder_f mapem_ts_VehicleType_decode_aper; +per_type_encoder_f mapem_ts_VehicleType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_VehicleType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VehicleWidth.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VehicleWidth.h new file mode 100644 index 000000000..b5596093c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_VehicleWidth_H_ +#define _mapem_ts_VehicleWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_VehicleWidth { + mapem_ts_VehicleWidth_tenCentimeters = 1, + mapem_ts_VehicleWidth_outOfRange = 61, + mapem_ts_VehicleWidth_unavailable = 62 +} e_mapem_ts_VehicleWidth; + +/* mapem_ts_VehicleWidth */ +typedef long mapem_ts_VehicleWidth_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_VehicleWidth; +asn_struct_free_f mapem_ts_VehicleWidth_free; +asn_struct_print_f mapem_ts_VehicleWidth_print; +asn_constr_check_f mapem_ts_VehicleWidth_constraint; +per_type_decoder_f mapem_ts_VehicleWidth_decode_uper; +per_type_encoder_f mapem_ts_VehicleWidth_encode_uper; +per_type_decoder_f mapem_ts_VehicleWidth_decode_aper; +per_type_encoder_f mapem_ts_VehicleWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_VehicleWidth_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Velocity.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_Velocity.h new file mode 100644 index 000000000..c68045173 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_Velocity_H_ +#define _mapem_ts_Velocity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_Velocity */ +typedef long mapem_ts_Velocity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_Velocity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_Velocity; +asn_struct_free_f mapem_ts_Velocity_free; +asn_struct_print_f mapem_ts_Velocity_print; +asn_constr_check_f mapem_ts_Velocity_constraint; +per_type_decoder_f mapem_ts_Velocity_decode_uper; +per_type_encoder_f mapem_ts_Velocity_encode_uper; +per_type_decoder_f mapem_ts_Velocity_decode_aper; +per_type_encoder_f mapem_ts_Velocity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_Velocity_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VerticalAcceleration.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VerticalAcceleration.h new file mode 100644 index 000000000..d8f150a42 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_VerticalAcceleration_H_ +#define _mapem_ts_VerticalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_VerticalAccelerationValue.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_VerticalAcceleration */ +typedef struct mapem_ts_VerticalAcceleration { + mapem_ts_VerticalAccelerationValue_t verticalAccelerationValue; + mapem_ts_AccelerationConfidence_t verticalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_VerticalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_VerticalAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_VerticalAcceleration_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VerticalAccelerationValue.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_VerticalAccelerationValue.h new file mode 100644 index 000000000..bbe40ba34 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_VerticalAccelerationValue_H_ +#define _mapem_ts_VerticalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_VerticalAccelerationValue { + mapem_ts_VerticalAccelerationValue_pointOneMeterPerSecSquaredUp = 1, + mapem_ts_VerticalAccelerationValue_pointOneMeterPerSecSquaredDown = -1, + mapem_ts_VerticalAccelerationValue_unavailable = 161 +} e_mapem_ts_VerticalAccelerationValue; + +/* mapem_ts_VerticalAccelerationValue */ +typedef long mapem_ts_VerticalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_VerticalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_VerticalAccelerationValue; +asn_struct_free_f mapem_ts_VerticalAccelerationValue_free; +asn_struct_print_f mapem_ts_VerticalAccelerationValue_print; +asn_constr_check_f mapem_ts_VerticalAccelerationValue_constraint; +per_type_decoder_f mapem_ts_VerticalAccelerationValue_decode_uper; +per_type_encoder_f mapem_ts_VerticalAccelerationValue_encode_uper; +per_type_decoder_f mapem_ts_VerticalAccelerationValue_decode_aper; +per_type_encoder_f mapem_ts_VerticalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_VerticalAccelerationValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_WMInumber.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_WMInumber.h new file mode 100644 index 000000000..9228f9c6d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_WMInumber_H_ +#define _mapem_ts_WMInumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_WMInumber */ +typedef IA5String_t mapem_ts_WMInumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_WMInumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_WMInumber; +asn_struct_free_f mapem_ts_WMInumber_free; +asn_struct_print_f mapem_ts_WMInumber_print; +asn_constr_check_f mapem_ts_WMInumber_constraint; +per_type_decoder_f mapem_ts_WMInumber_decode_uper; +per_type_encoder_f mapem_ts_WMInumber_encode_uper; +per_type_decoder_f mapem_ts_WMInumber_decode_aper; +per_type_encoder_f mapem_ts_WMInumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_WMInumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_WaitOnStopline.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_WaitOnStopline.h new file mode 100644 index 000000000..cdd3d883a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_WaitOnStopline_H_ +#define _mapem_ts_WaitOnStopline_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_WaitOnStopline */ +typedef BOOLEAN_t mapem_ts_WaitOnStopline_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_WaitOnStopline; +asn_struct_free_f mapem_ts_WaitOnStopline_free; +asn_struct_print_f mapem_ts_WaitOnStopline_print; +asn_constr_check_f mapem_ts_WaitOnStopline_constraint; +per_type_decoder_f mapem_ts_WaitOnStopline_decode_uper; +per_type_encoder_f mapem_ts_WaitOnStopline_encode_uper; +per_type_decoder_f mapem_ts_WaitOnStopline_decode_aper; +per_type_encoder_f mapem_ts_WaitOnStopline_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_WaitOnStopline_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_WheelBaseVehicle.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_WheelBaseVehicle.h new file mode 100644 index 000000000..83aa3d82f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_WheelBaseVehicle_H_ +#define _mapem_ts_WheelBaseVehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_WheelBaseVehicle { + mapem_ts_WheelBaseVehicle_tenCentimeters = 1, + mapem_ts_WheelBaseVehicle_unavailable = 127 +} e_mapem_ts_WheelBaseVehicle; + +/* mapem_ts_WheelBaseVehicle */ +typedef long mapem_ts_WheelBaseVehicle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_WheelBaseVehicle; +asn_struct_free_f mapem_ts_WheelBaseVehicle_free; +asn_struct_print_f mapem_ts_WheelBaseVehicle_print; +asn_constr_check_f mapem_ts_WheelBaseVehicle_constraint; +per_type_decoder_f mapem_ts_WheelBaseVehicle_decode_uper; +per_type_encoder_f mapem_ts_WheelBaseVehicle_encode_uper; +per_type_decoder_f mapem_ts_WheelBaseVehicle_decode_aper; +per_type_encoder_f mapem_ts_WheelBaseVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_WheelBaseVehicle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_WrongWayDrivingSubCauseCode.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_WrongWayDrivingSubCauseCode.h new file mode 100644 index 000000000..4b0d4e1a0 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_WrongWayDrivingSubCauseCode_H_ +#define _mapem_ts_WrongWayDrivingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_WrongWayDrivingSubCauseCode { + mapem_ts_WrongWayDrivingSubCauseCode_unavailable = 0, + mapem_ts_WrongWayDrivingSubCauseCode_wrongLane = 1, + mapem_ts_WrongWayDrivingSubCauseCode_wrongDirection = 2 +} e_mapem_ts_WrongWayDrivingSubCauseCode; + +/* mapem_ts_WrongWayDrivingSubCauseCode */ +typedef long mapem_ts_WrongWayDrivingSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_WrongWayDrivingSubCauseCode; +asn_struct_free_f mapem_ts_WrongWayDrivingSubCauseCode_free; +asn_struct_print_f mapem_ts_WrongWayDrivingSubCauseCode_print; +asn_constr_check_f mapem_ts_WrongWayDrivingSubCauseCode_constraint; +per_type_decoder_f mapem_ts_WrongWayDrivingSubCauseCode_decode_uper; +per_type_encoder_f mapem_ts_WrongWayDrivingSubCauseCode_encode_uper; +per_type_decoder_f mapem_ts_WrongWayDrivingSubCauseCode_decode_aper; +per_type_encoder_f mapem_ts_WrongWayDrivingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_WrongWayDrivingSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_YawRate.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_YawRate.h new file mode 100644 index 000000000..541acf4c3 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_YawRate_H_ +#define _mapem_ts_YawRate_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_mapem_ts_coding/mapem_ts_YawRateValue.h" +#include "etsi_its_mapem_ts_coding/mapem_ts_YawRateConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_YawRate */ +typedef struct mapem_ts_YawRate { + mapem_ts_YawRateValue_t yawRateValue; + mapem_ts_YawRateConfidence_t yawRateConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} mapem_ts_YawRate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_YawRate; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_YawRate_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_YawRateConfidence.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_YawRateConfidence.h new file mode 100644 index 000000000..8c53cd1da --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_YawRateConfidence_H_ +#define _mapem_ts_YawRateConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_YawRateConfidence { + mapem_ts_YawRateConfidence_degSec_000_01 = 0, + mapem_ts_YawRateConfidence_degSec_000_05 = 1, + mapem_ts_YawRateConfidence_degSec_000_10 = 2, + mapem_ts_YawRateConfidence_degSec_001_00 = 3, + mapem_ts_YawRateConfidence_degSec_005_00 = 4, + mapem_ts_YawRateConfidence_degSec_010_00 = 5, + mapem_ts_YawRateConfidence_degSec_100_00 = 6, + mapem_ts_YawRateConfidence_outOfRange = 7, + mapem_ts_YawRateConfidence_unavailable = 8 +} e_mapem_ts_YawRateConfidence; + +/* mapem_ts_YawRateConfidence */ +typedef long mapem_ts_YawRateConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_YawRateConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_YawRateConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_mapem_ts_YawRateConfidence_specs_1; +asn_struct_free_f mapem_ts_YawRateConfidence_free; +asn_struct_print_f mapem_ts_YawRateConfidence_print; +asn_constr_check_f mapem_ts_YawRateConfidence_constraint; +per_type_decoder_f mapem_ts_YawRateConfidence_decode_uper; +per_type_encoder_f mapem_ts_YawRateConfidence_encode_uper; +per_type_decoder_f mapem_ts_YawRateConfidence_decode_aper; +per_type_encoder_f mapem_ts_YawRateConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_YawRateConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_YawRateValue.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_YawRateValue.h new file mode 100644 index 000000000..81eaf1fe1 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_YawRateValue_H_ +#define _mapem_ts_YawRateValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum mapem_ts_YawRateValue { + mapem_ts_YawRateValue_straight = 0, + mapem_ts_YawRateValue_degSec_000_01ToRight = -1, + mapem_ts_YawRateValue_degSec_000_01ToLeft = 1, + mapem_ts_YawRateValue_unavailable = 32767 +} e_mapem_ts_YawRateValue; + +/* mapem_ts_YawRateValue */ +typedef long mapem_ts_YawRateValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_YawRateValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_YawRateValue; +asn_struct_free_f mapem_ts_YawRateValue_free; +asn_struct_print_f mapem_ts_YawRateValue_print; +asn_constr_check_f mapem_ts_YawRateValue_constraint; +per_type_decoder_f mapem_ts_YawRateValue_decode_uper; +per_type_encoder_f mapem_ts_YawRateValue_encode_uper; +per_type_decoder_f mapem_ts_YawRateValue_decode_aper; +per_type_encoder_f mapem_ts_YawRateValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_YawRateValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ZoneLength.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ZoneLength.h new file mode 100644 index 000000000..26f241ed1 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _mapem_ts_ZoneLength_H_ +#define _mapem_ts_ZoneLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* mapem_ts_ZoneLength */ +typedef long mapem_ts_ZoneLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_mapem_ts_ZoneLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_mapem_ts_ZoneLength; +asn_struct_free_f mapem_ts_ZoneLength_free; +asn_struct_print_f mapem_ts_ZoneLength_print; +asn_constr_check_f mapem_ts_ZoneLength_constraint; +per_type_decoder_f mapem_ts_ZoneLength_decode_uper; +per_type_encoder_f mapem_ts_ZoneLength_encode_uper; +per_type_decoder_f mapem_ts_ZoneLength_decode_aper; +per_type_encoder_f mapem_ts_ZoneLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_ZoneLength_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_asn_constant.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_asn_constant.h new file mode 100644 index 000000000..4b44dff49 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_asn_constant.h @@ -0,0 +1,265 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _mapem_ts_ASN_CONSTANT_H +#define _mapem_ts_ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define min_val_mapem_ts_TimeReference (0) +#define max_val_mapem_ts_TimeReference (60000) +#define min_val_mapem_ts_TimeMark (0) +#define max_val_mapem_ts_TimeMark (36001) +#define min_val_mapem_ts_Angle (0) +#define max_val_mapem_ts_Angle (28800) +#define min_val_mapem_ts_ApproachID (0) +#define max_val_mapem_ts_ApproachID (15) +#define min_val_mapem_ts_DDay (0) +#define max_val_mapem_ts_DDay (31) +#define min_val_mapem_ts_DeltaAngle (-150) +#define max_val_mapem_ts_DeltaAngle (150) +#define min_val_mapem_ts_DeltaTime (-122) +#define max_val_mapem_ts_DeltaTime (121) +#define min_val_mapem_ts_DHour (0) +#define max_val_mapem_ts_DHour (31) +#define min_val_mapem_ts_DMinute (0) +#define max_val_mapem_ts_DMinute (60) +#define min_val_mapem_ts_DMonth (0) +#define max_val_mapem_ts_DMonth (12) +#define min_val_mapem_ts_DOffset (-840) +#define max_val_mapem_ts_DOffset (840) +#define min_val_mapem_ts_DrivenLineOffsetLg (-32767) +#define max_val_mapem_ts_DrivenLineOffsetLg (32767) +#define min_val_mapem_ts_DrivenLineOffsetSm (-2047) +#define max_val_mapem_ts_DrivenLineOffsetSm (2047) +#define min_val_mapem_ts_DSecond (0) +#define max_val_mapem_ts_DSecond (65535) +#define min_val_mapem_ts_DSRCmsgID (0) +#define max_val_mapem_ts_DSRCmsgID (32767) +#define min_val_mapem_ts_DYear (0) +#define max_val_mapem_ts_DYear (4095) +#define min_val_mapem_ts_Elevation (-4096) +#define max_val_mapem_ts_Elevation (61439) +#define min_val_mapem_ts_FuelType (0) +#define max_val_mapem_ts_FuelType (15) +#define min_val_mapem_ts_HeadingDSRC (0) +#define max_val_mapem_ts_HeadingDSRC (28800) +#define min_val_mapem_ts_IntersectionID (0) +#define max_val_mapem_ts_IntersectionID (65535) +#define min_val_mapem_ts_LaneConnectionID (0) +#define max_val_mapem_ts_LaneConnectionID (255) +#define min_val_mapem_ts_LaneID (0) +#define max_val_mapem_ts_LaneID (255) +#define min_val_mapem_ts_LayerID (0) +#define max_val_mapem_ts_LayerID (100) +#define min_val_mapem_ts_LaneWidth (0) +#define max_val_mapem_ts_LaneWidth (32767) +#define min_val_mapem_ts_MergeDivergeNodeAngle (-180) +#define max_val_mapem_ts_MergeDivergeNodeAngle (180) +#define min_val_mapem_ts_MinuteOfTheYear (0) +#define max_val_mapem_ts_MinuteOfTheYear (527040) +#define min_val_mapem_ts_MsgCount (0) +#define max_val_mapem_ts_MsgCount (127) +#define min_val_mapem_ts_Offset_B09 (-256) +#define max_val_mapem_ts_Offset_B09 (255) +#define min_val_mapem_ts_Offset_B10 (-512) +#define max_val_mapem_ts_Offset_B10 (511) +#define min_val_mapem_ts_Offset_B11 (-1024) +#define max_val_mapem_ts_Offset_B11 (1023) +#define min_val_mapem_ts_Offset_B12 (-2048) +#define max_val_mapem_ts_Offset_B12 (2047) +#define min_val_mapem_ts_Offset_B13 (-4096) +#define max_val_mapem_ts_Offset_B13 (4095) +#define min_val_mapem_ts_Offset_B14 (-8192) +#define max_val_mapem_ts_Offset_B14 (8191) +#define min_val_mapem_ts_Offset_B16 (-32768) +#define max_val_mapem_ts_Offset_B16 (32767) +#define min_val_mapem_ts_RegionId (0) +#define max_val_mapem_ts_RegionId (255) +#define min_val_mapem_ts_RequestID (0) +#define max_val_mapem_ts_RequestID (255) +#define min_val_mapem_ts_RestrictionClassID (0) +#define max_val_mapem_ts_RestrictionClassID (255) +#define min_val_mapem_ts_RoadRegulatorID (0) +#define max_val_mapem_ts_RoadRegulatorID (65535) +#define min_val_mapem_ts_RoadSegmentID (0) +#define max_val_mapem_ts_RoadSegmentID (65535) +#define min_val_mapem_ts_RoadwayCrownAngle (-128) +#define max_val_mapem_ts_RoadwayCrownAngle (127) +#define min_val_mapem_ts_Scale_B12 (-2048) +#define max_val_mapem_ts_Scale_B12 (2047) +#define min_val_mapem_ts_SignalGroupID (0) +#define max_val_mapem_ts_SignalGroupID (255) +#define min_val_mapem_ts_SemiMajorAxisAccuracy (0) +#define max_val_mapem_ts_SemiMajorAxisAccuracy (255) +#define min_val_mapem_ts_SemiMajorAxisOrientation (0) +#define max_val_mapem_ts_SemiMajorAxisOrientation (65535) +#define min_val_mapem_ts_SemiMinorAxisAccuracy (0) +#define max_val_mapem_ts_SemiMinorAxisAccuracy (255) +#define min_val_mapem_ts_SpeedAdvice (0) +#define max_val_mapem_ts_SpeedAdvice (500) +#define min_val_mapem_ts_TimeIntervalConfidence (0) +#define max_val_mapem_ts_TimeIntervalConfidence (15) +#define min_val_mapem_ts_VehicleHeight (0) +#define max_val_mapem_ts_VehicleHeight (127) +#define min_val_mapem_ts_Velocity (0) +#define max_val_mapem_ts_Velocity (8191) +#define min_val_mapem_ts_ZoneLength (0) +#define max_val_mapem_ts_ZoneLength (10000) +#define min_val_mapem_ts_IssuerIdentifier (0) +#define max_val_mapem_ts_IssuerIdentifier (16383) +#define min_val_mapem_ts_ManufacturerIdentifier (0) +#define max_val_mapem_ts_ManufacturerIdentifier (65535) +#define min_val_mapem_ts_AlphabetIndicator (0) +#define max_val_mapem_ts_AlphabetIndicator (63) +#define mapem_ts_version (1) +#define min_val_mapem_ts_Iso3833VehicleType (0) +#define max_val_mapem_ts_Iso3833VehicleType (255) +#define min_val_mapem_ts_StationID (0) +#define max_val_mapem_ts_StationID (4294967295) +#define min_val_mapem_ts_Longitude (-1800000000) +#define max_val_mapem_ts_Longitude (1800000001) +#define min_val_mapem_ts_Latitude (-900000000) +#define max_val_mapem_ts_Latitude (900000001) +#define min_val_mapem_ts_AltitudeValue (-100000) +#define max_val_mapem_ts_AltitudeValue (800001) +#define min_val_mapem_ts_DeltaLongitude (-131071) +#define max_val_mapem_ts_DeltaLongitude (131072) +#define min_val_mapem_ts_DeltaLatitude (-131071) +#define max_val_mapem_ts_DeltaLatitude (131072) +#define min_val_mapem_ts_DeltaAltitude (-12700) +#define max_val_mapem_ts_DeltaAltitude (12800) +#define min_val_mapem_ts_PtActivationType (0) +#define max_val_mapem_ts_PtActivationType (255) +#define min_val_mapem_ts_SemiAxisLength (0) +#define max_val_mapem_ts_SemiAxisLength (4095) +#define min_val_mapem_ts_CauseCodeType (0) +#define max_val_mapem_ts_CauseCodeType (255) +#define min_val_mapem_ts_SubCauseCodeType (0) +#define max_val_mapem_ts_SubCauseCodeType (255) +#define min_val_mapem_ts_TrafficConditionSubCauseCode (0) +#define max_val_mapem_ts_TrafficConditionSubCauseCode (255) +#define min_val_mapem_ts_AccidentSubCauseCode (0) +#define max_val_mapem_ts_AccidentSubCauseCode (255) +#define min_val_mapem_ts_RoadworksSubCauseCode (0) +#define max_val_mapem_ts_RoadworksSubCauseCode (255) +#define min_val_mapem_ts_HumanPresenceOnTheRoadSubCauseCode (0) +#define max_val_mapem_ts_HumanPresenceOnTheRoadSubCauseCode (255) +#define min_val_mapem_ts_WrongWayDrivingSubCauseCode (0) +#define max_val_mapem_ts_WrongWayDrivingSubCauseCode (255) +#define min_val_mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (0) +#define max_val_mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (255) +#define min_val_mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode (0) +#define max_val_mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode (255) +#define min_val_mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode (0) +#define max_val_mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode (255) +#define min_val_mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode (0) +#define max_val_mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode (255) +#define min_val_mapem_ts_SlowVehicleSubCauseCode (0) +#define max_val_mapem_ts_SlowVehicleSubCauseCode (255) +#define min_val_mapem_ts_StationaryVehicleSubCauseCode (0) +#define max_val_mapem_ts_StationaryVehicleSubCauseCode (255) +#define min_val_mapem_ts_HumanProblemSubCauseCode (0) +#define max_val_mapem_ts_HumanProblemSubCauseCode (255) +#define min_val_mapem_ts_EmergencyVehicleApproachingSubCauseCode (0) +#define max_val_mapem_ts_EmergencyVehicleApproachingSubCauseCode (255) +#define min_val_mapem_ts_HazardousLocation_DangerousCurveSubCauseCode (0) +#define max_val_mapem_ts_HazardousLocation_DangerousCurveSubCauseCode (255) +#define min_val_mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode (0) +#define max_val_mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode (255) +#define min_val_mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode (0) +#define max_val_mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode (255) +#define min_val_mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode (0) +#define max_val_mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode (255) +#define min_val_mapem_ts_CollisionRiskSubCauseCode (0) +#define max_val_mapem_ts_CollisionRiskSubCauseCode (255) +#define min_val_mapem_ts_SignalViolationSubCauseCode (0) +#define max_val_mapem_ts_SignalViolationSubCauseCode (255) +#define min_val_mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode (0) +#define max_val_mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode (255) +#define min_val_mapem_ts_DangerousEndOfQueueSubCauseCode (0) +#define max_val_mapem_ts_DangerousEndOfQueueSubCauseCode (255) +#define min_val_mapem_ts_DangerousSituationSubCauseCode (0) +#define max_val_mapem_ts_DangerousSituationSubCauseCode (255) +#define min_val_mapem_ts_VehicleBreakdownSubCauseCode (0) +#define max_val_mapem_ts_VehicleBreakdownSubCauseCode (255) +#define min_val_mapem_ts_PostCrashSubCauseCode (0) +#define max_val_mapem_ts_PostCrashSubCauseCode (255) +#define min_val_mapem_ts_CurvatureValue (-1023) +#define max_val_mapem_ts_CurvatureValue (1023) +#define min_val_mapem_ts_HeadingValue (0) +#define max_val_mapem_ts_HeadingValue (3601) +#define min_val_mapem_ts_HeadingConfidence (1) +#define max_val_mapem_ts_HeadingConfidence (127) +#define min_val_mapem_ts_LanePosition (-1) +#define max_val_mapem_ts_LanePosition (14) +#define min_val_mapem_ts_PerformanceClass (0) +#define max_val_mapem_ts_PerformanceClass (7) +#define min_val_mapem_ts_SpeedValue (0) +#define max_val_mapem_ts_SpeedValue (16383) +#define min_val_mapem_ts_SpeedConfidence (1) +#define max_val_mapem_ts_SpeedConfidence (127) +#define min_val_mapem_ts_VehicleMass (1) +#define max_val_mapem_ts_VehicleMass (1024) +#define min_val_mapem_ts_LongitudinalAccelerationValue (-160) +#define max_val_mapem_ts_LongitudinalAccelerationValue (161) +#define min_val_mapem_ts_AccelerationConfidence (0) +#define max_val_mapem_ts_AccelerationConfidence (102) +#define min_val_mapem_ts_LateralAccelerationValue (-160) +#define max_val_mapem_ts_LateralAccelerationValue (161) +#define min_val_mapem_ts_VerticalAccelerationValue (-160) +#define max_val_mapem_ts_VerticalAccelerationValue (161) +#define min_val_mapem_ts_StationType (0) +#define max_val_mapem_ts_StationType (255) +#define min_val_mapem_ts_HeightLonCarr (1) +#define max_val_mapem_ts_HeightLonCarr (100) +#define min_val_mapem_ts_PosLonCarr (1) +#define max_val_mapem_ts_PosLonCarr (127) +#define min_val_mapem_ts_PosPillar (1) +#define max_val_mapem_ts_PosPillar (30) +#define min_val_mapem_ts_PosCentMass (1) +#define max_val_mapem_ts_PosCentMass (63) +#define min_val_mapem_ts_SpeedLimit (1) +#define max_val_mapem_ts_SpeedLimit (255) +#define min_val_mapem_ts_Temperature (-60) +#define max_val_mapem_ts_Temperature (67) +#define min_val_mapem_ts_WheelBaseVehicle (1) +#define max_val_mapem_ts_WheelBaseVehicle (127) +#define min_val_mapem_ts_TurningRadius (1) +#define max_val_mapem_ts_TurningRadius (255) +#define min_val_mapem_ts_PosFrontAx (1) +#define max_val_mapem_ts_PosFrontAx (20) +#define min_val_mapem_ts_VehicleLengthValue (1) +#define max_val_mapem_ts_VehicleLengthValue (1023) +#define min_val_mapem_ts_VehicleWidth (1) +#define max_val_mapem_ts_VehicleWidth (62) +#define min_val_mapem_ts_InformationQuality (0) +#define max_val_mapem_ts_InformationQuality (7) +#define min_val_mapem_ts_SteeringWheelAngleValue (-511) +#define max_val_mapem_ts_SteeringWheelAngleValue (512) +#define min_val_mapem_ts_SteeringWheelAngleConfidence (1) +#define max_val_mapem_ts_SteeringWheelAngleConfidence (127) +#define min_val_mapem_ts_TimestampIts (0) +#define max_val_mapem_ts_TimestampIts (4398046511103) +#define min_val_mapem_ts_YawRateValue (-32766) +#define max_val_mapem_ts_YawRateValue (32767) +#define min_val_mapem_ts_TransmissionInterval (1) +#define max_val_mapem_ts_TransmissionInterval (10000) +#define min_val_mapem_ts_ValidityDuration (0) +#define max_val_mapem_ts_ValidityDuration (86400) +#define min_val_mapem_ts_NumberOfOccupants (0) +#define max_val_mapem_ts_NumberOfOccupants (127) +#define min_val_mapem_ts_SequenceNumber (0) +#define max_val_mapem_ts_SequenceNumber (65535) +#define min_val_mapem_ts_ProtectedZoneID (0) +#define max_val_mapem_ts_ProtectedZoneID (134217727) + + +#ifdef __cplusplus +} +#endif + +#endif /* _mapem_ts_ASN_CONSTANT_H */ diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/per_decoder.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/per_decoder.h new file mode 100644 index 000000000..fb81b9b62 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/per_encoder.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/per_encoder.h new file mode 100644 index 000000000..5cb021d6d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/per_opentype.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/per_opentype.h new file mode 100644 index 000000000..312c1624f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/per_support.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/per_support.h new file mode 100644 index 000000000..8fe2ce031 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/uper_decoder.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/uper_decoder.h new file mode 100644 index 000000000..294c5cd97 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/uper_encoder.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/uper_encoder.h new file mode 100644 index 000000000..beb68d35b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/uper_opentype.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/uper_opentype.h new file mode 100644 index 000000000..95fb808c1 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/include/etsi_its_mapem_ts_coding/uper_support.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/uper_support.h new file mode 100644 index 000000000..8122b7553 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_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_mapem_ts_coding/package.xml b/etsi_its_coding/etsi_its_mapem_ts_coding/package.xml new file mode 100644 index 000000000..f83df4817 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/package.xml @@ -0,0 +1,28 @@ + + + + etsi_its_mapem_ts_coding + 2.1.0 + C++ compatible C source code for ETSI ITS MAPEMs (TS) generated from ASN.1 using asn1c + + Jean-Pierre Busch + Guido Küppers + Lennart Reiher + + Jean-Pierre Busch + Guido Küppers + Lennart Reiher + + MIT + + ros_environment + + catkin + ament_cmake + + + catkin + ament_cmake + + + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/ANY.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/ANY.c new file mode 100644 index 000000000..9764df943 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/ANY_aper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/ANY_aper.c new file mode 100644 index 000000000..4850082a6 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/ANY_uper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/ANY_uper.c new file mode 100644 index 000000000..689b27a9e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/BIT_STRING.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/BIT_STRING.c new file mode 100644 index 000000000..c6e1ff840 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/BIT_STRING_print.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/BIT_STRING_print.c new file mode 100644 index 000000000..331f63413 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/BIT_STRING_rfill.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/BIT_STRING_rfill.c new file mode 100644 index 000000000..7e3e311e3 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/BIT_STRING_uper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/BIT_STRING_uper.c new file mode 100644 index 000000000..ed63d7001 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/BOOLEAN.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/BOOLEAN.c new file mode 100644 index 000000000..608b5f698 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/BOOLEAN_aper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/BOOLEAN_aper.c new file mode 100644 index 000000000..899e1f323 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/BOOLEAN_print.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/BOOLEAN_print.c new file mode 100644 index 000000000..d95cb6cc4 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/BOOLEAN_rfill.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/BOOLEAN_rfill.c new file mode 100644 index 000000000..c528335a1 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/BOOLEAN_uper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/BOOLEAN_uper.c new file mode 100644 index 000000000..2dcaae19c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/ENUMERATED.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/ENUMERATED.c new file mode 100644 index 000000000..e33781b29 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/ENUMERATED_aper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/ENUMERATED_aper.c new file mode 100644 index 000000000..2954ac55d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/ENUMERATED_uper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/ENUMERATED_uper.c new file mode 100644 index 000000000..f1023ef98 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/GraphicString.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/GraphicString.c new file mode 100644 index 000000000..c04e24b12 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/IA5String.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/IA5String.c new file mode 100644 index 000000000..e1510a433 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/INTEGER.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/INTEGER.c new file mode 100644 index 000000000..e56a252f1 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/INTEGER_aper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/INTEGER_aper.c new file mode 100644 index 000000000..ab78499ae --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/INTEGER_print.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/INTEGER_print.c new file mode 100644 index 000000000..f0b01d08e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/INTEGER_rfill.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/INTEGER_rfill.c new file mode 100644 index 000000000..970ee65c4 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/INTEGER_uper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/INTEGER_uper.c new file mode 100644 index 000000000..49253e43d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/NULL.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/NULL.c new file mode 100644 index 000000000..22a84f87b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/NULL_aper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/NULL_aper.c new file mode 100644 index 000000000..f27b4abaa --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/NULL_print.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/NULL_print.c new file mode 100644 index 000000000..8b2328759 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/NULL_rfill.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/NULL_rfill.c new file mode 100644 index 000000000..c42e32c9f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/NULL_uper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/NULL_uper.c new file mode 100644 index 000000000..4de25e68e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/NativeEnumerated.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/NativeEnumerated.c new file mode 100644 index 000000000..5a4b29578 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/NativeEnumerated_aper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/NativeEnumerated_aper.c new file mode 100644 index 000000000..12730bf65 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/NativeEnumerated_uper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/NativeEnumerated_uper.c new file mode 100644 index 000000000..890994c68 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/NativeInteger.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/NativeInteger.c new file mode 100644 index 000000000..0ea53242b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/NativeInteger_aper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/NativeInteger_aper.c new file mode 100644 index 000000000..648bf39a9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/NativeInteger_print.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/NativeInteger_print.c new file mode 100644 index 000000000..f7a7991ed --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/NativeInteger_rfill.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/NativeInteger_rfill.c new file mode 100644 index 000000000..bbe9cac8f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/NativeInteger_uper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/NativeInteger_uper.c new file mode 100644 index 000000000..564551cc9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/NumericString.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/NumericString.c new file mode 100644 index 000000000..d2e4f18b0 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/OBJECT_IDENTIFIER.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/OBJECT_IDENTIFIER.c new file mode 100644 index 000000000..7e4076c59 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/OBJECT_IDENTIFIER_print.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/OBJECT_IDENTIFIER_print.c new file mode 100644 index 000000000..2742ea497 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/OBJECT_IDENTIFIER_rfill.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/OBJECT_IDENTIFIER_rfill.c new file mode 100644 index 000000000..a9579bdce --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/OCTET_STRING.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/OCTET_STRING.c new file mode 100644 index 000000000..dfe80318e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/OCTET_STRING_aper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/OCTET_STRING_aper.c new file mode 100644 index 000000000..88e470a6a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/OCTET_STRING_print.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/OCTET_STRING_print.c new file mode 100644 index 000000000..52af6e22a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/OCTET_STRING_rfill.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/OCTET_STRING_rfill.c new file mode 100644 index 000000000..66ac3f7d9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/OCTET_STRING_uper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/OCTET_STRING_uper.c new file mode 100644 index 000000000..a7b788e3d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/OPEN_TYPE.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/OPEN_TYPE.c new file mode 100644 index 000000000..e2eae6b1c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/OPEN_TYPE_aper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/OPEN_TYPE_aper.c new file mode 100644 index 000000000..a7c0d14b6 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/OPEN_TYPE_uper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/OPEN_TYPE_uper.c new file mode 100644 index 000000000..875670656 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/ObjectDescriptor.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/ObjectDescriptor.c new file mode 100644 index 000000000..444b3b679 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/UTF8String.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/UTF8String.c new file mode 100644 index 000000000..ceac05404 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/UTF8String_print.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/UTF8String_print.c new file mode 100644 index 000000000..7871a9388 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/UTF8String_rfill.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/UTF8String_rfill.c new file mode 100644 index 000000000..3c7360fd9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/VisibleString.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/VisibleString.c new file mode 100644 index 000000000..a7f7efdf4 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/aper_decoder.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/aper_decoder.c new file mode 100644 index 000000000..888024efd --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/aper_encoder.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/aper_encoder.c new file mode 100644 index 000000000..978b0c845 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/aper_opentype.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/aper_opentype.c new file mode 100644 index 000000000..35ed60182 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/aper_support.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/aper_support.c new file mode 100644 index 000000000..b17616249 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/asn_SEQUENCE_OF.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/asn_SEQUENCE_OF.c new file mode 100644 index 000000000..a65953a0b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/asn_SET_OF.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/asn_SET_OF.c new file mode 100644 index 000000000..c94cc5262 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/asn_application.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/asn_application.c new file mode 100644 index 000000000..61221df44 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/asn_bit_data.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/asn_bit_data.c new file mode 100644 index 000000000..90cca5020 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/asn_codecs_prim.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/asn_codecs_prim.c new file mode 100644 index 000000000..0b3200c88 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/asn_internal.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/asn_internal.c new file mode 100644 index 000000000..4c2401a27 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/asn_random_fill.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/asn_random_fill.c new file mode 100644 index 000000000..248892d93 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/ber_tlv_length.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/ber_tlv_length.c new file mode 100644 index 000000000..6d645b387 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/ber_tlv_tag.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/ber_tlv_tag.c new file mode 100644 index 000000000..e2971ee6d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/constr_CHOICE.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/constr_CHOICE.c new file mode 100644 index 000000000..d016e3a46 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/constr_CHOICE_aper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/constr_CHOICE_aper.c new file mode 100644 index 000000000..c316c17f1 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/constr_CHOICE_print.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/constr_CHOICE_print.c new file mode 100644 index 000000000..e9314333b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/constr_CHOICE_rfill.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/constr_CHOICE_rfill.c new file mode 100644 index 000000000..f88f48dfd --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/constr_CHOICE_uper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/constr_CHOICE_uper.c new file mode 100644 index 000000000..6193e888f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/constr_SEQUENCE.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/constr_SEQUENCE.c new file mode 100644 index 000000000..eccade3af --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/constr_SEQUENCE_OF.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/constr_SEQUENCE_OF.c new file mode 100644 index 000000000..3b0e087a8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/constr_SEQUENCE_OF_aper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/constr_SEQUENCE_OF_aper.c new file mode 100644 index 000000000..c3c58c2a8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/constr_SEQUENCE_OF_uper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/constr_SEQUENCE_OF_uper.c new file mode 100644 index 000000000..502796e22 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/constr_SEQUENCE_aper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/constr_SEQUENCE_aper.c new file mode 100644 index 000000000..9c4691e0a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/constr_SEQUENCE_print.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/constr_SEQUENCE_print.c new file mode 100644 index 000000000..c45b924b8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/constr_SEQUENCE_rfill.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/constr_SEQUENCE_rfill.c new file mode 100644 index 000000000..332a236d3 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/constr_SEQUENCE_uper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/constr_SEQUENCE_uper.c new file mode 100644 index 000000000..f1a02f816 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/constr_SET_OF.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/constr_SET_OF.c new file mode 100644 index 000000000..383843a35 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/constr_SET_OF_aper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/constr_SET_OF_aper.c new file mode 100644 index 000000000..ed97aa22d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/constr_SET_OF_print.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/constr_SET_OF_print.c new file mode 100644 index 000000000..d382046d5 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/constr_SET_OF_rfill.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/constr_SET_OF_rfill.c new file mode 100644 index 000000000..916bcb122 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/constr_SET_OF_uper.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/constr_SET_OF_uper.c new file mode 100644 index 000000000..b63a30fa7 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/constr_TYPE.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/constr_TYPE.c new file mode 100644 index 000000000..6d74dff64 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/constraints.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/constraints.c new file mode 100644 index 000000000..234d7a567 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/mapem_ts_AccelerationConfidence.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AccelerationConfidence.c new file mode 100644 index 000000000..ee57f5834 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_AccelerationConfidence.h" + +int +mapem_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_mapem_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_mapem_ts_AccelerationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_AccelerationConfidence = { + "AccelerationConfidence", + "AccelerationConfidence", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_AccelerationConfidence_tags_1, + sizeof(asn_DEF_mapem_ts_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_mapem_ts_AccelerationConfidence_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_AccelerationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_AccelerationConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AccelerationControl.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AccelerationControl.c new file mode 100644 index 000000000..16996f230 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_AccelerationControl.h" + +int +mapem_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_mapem_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_mapem_ts_AccelerationControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_AccelerationControl = { + "AccelerationControl", + "AccelerationControl", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_AccelerationControl_tags_1, + sizeof(asn_DEF_mapem_ts_AccelerationControl_tags_1) + /sizeof(asn_DEF_mapem_ts_AccelerationControl_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_AccelerationControl_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_AccelerationControl_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_AccelerationControl_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AccidentSubCauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AccidentSubCauseCode.c new file mode 100644 index 000000000..bb213ac51 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_AccidentSubCauseCode.h" + +int +mapem_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_mapem_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_mapem_ts_AccidentSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_AccidentSubCauseCode = { + "AccidentSubCauseCode", + "AccidentSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_AccidentSubCauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_AccidentSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_AccidentSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_AccidentSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ActionID.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ActionID.c new file mode 100644 index 000000000..f7158518b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ActionID.h" + +static asn_TYPE_member_t asn_MBR_mapem_ts_ActionID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_ActionID, originatingStationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ActionID, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_ActionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_ts_ActionID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* originatingStationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sequenceNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_ActionID_specs_1 = { + sizeof(struct mapem_ts_ActionID), + offsetof(struct mapem_ts_ActionID, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_ActionID = { + "ActionID", + "ActionID", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_ActionID_tags_1, + sizeof(asn_DEF_mapem_ts_ActionID_tags_1) + /sizeof(asn_DEF_mapem_ts_ActionID_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ActionID_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ActionID_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_ActionID_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_ActionID_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AdverseWeatherCondition-AdhesionSubCauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AdverseWeatherCondition-AdhesionSubCauseCode.c new file mode 100644 index 000000000..66f97f3d2 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_AdverseWeatherCondition-AdhesionSubCauseCode.h" + +int +mapem_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_mapem_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_mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode = { + "AdverseWeatherCondition-AdhesionSubCauseCode", + "AdverseWeatherCondition-AdhesionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c new file mode 100644 index 000000000..aefddc404 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h" + +int +mapem_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_mapem_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_mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode = { + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.c new file mode 100644 index 000000000..8f7b8d36b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.h" + +int +mapem_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_mapem_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_mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode = { + "AdverseWeatherCondition-PrecipitationSubCauseCode", + "AdverseWeatherCondition-PrecipitationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AdverseWeatherCondition-VisibilitySubCauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AdverseWeatherCondition-VisibilitySubCauseCode.c new file mode 100644 index 000000000..131fde171 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_AdverseWeatherCondition-VisibilitySubCauseCode.h" + +int +mapem_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_mapem_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_mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode = { + "AdverseWeatherCondition-VisibilitySubCauseCode", + "AdverseWeatherCondition-VisibilitySubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AdvisorySpeed.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AdvisorySpeed.c new file mode 100644 index 000000000..e7df27f17 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_AdvisorySpeed.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_ts_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_regional_specs_7 = { + sizeof(struct mapem_ts_AdvisorySpeed__regional), + offsetof(struct mapem_ts_AdvisorySpeed__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mapem_ts_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_regional_tags_7, + sizeof(asn_DEF_mapem_ts_regional_tags_7) + /sizeof(asn_DEF_mapem_ts_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_mapem_ts_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_mapem_ts_regional_tags_7) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_regional_7, + 1, /* Single element */ + &asn_SPC_mapem_ts_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_AdvisorySpeed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_AdvisorySpeed, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_AdvisorySpeed, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_AdvisorySpeed, confidence), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_AdvisorySpeed, distance), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_AdvisorySpeed, Class), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_AdvisorySpeed, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_mapem_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_mapem_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_mapem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_mapem_ts_AdvisorySpeed_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_AdvisorySpeed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_AdvisorySpeed_specs_1 = { + sizeof(struct mapem_ts_AdvisorySpeed), + offsetof(struct mapem_ts_AdvisorySpeed, _asn_ctx), + asn_MAP_mapem_ts_AdvisorySpeed_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_mapem_ts_AdvisorySpeed_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_AdvisorySpeed = { + "AdvisorySpeed", + "AdvisorySpeed", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_AdvisorySpeed_tags_1, + sizeof(asn_DEF_mapem_ts_AdvisorySpeed_tags_1) + /sizeof(asn_DEF_mapem_ts_AdvisorySpeed_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_AdvisorySpeed_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_AdvisorySpeed_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_AdvisorySpeed_1, + 6, /* Elements count */ + &asn_SPC_mapem_ts_AdvisorySpeed_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AdvisorySpeedList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AdvisorySpeedList.c new file mode 100644 index 000000000..1b3d877a8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_AdvisorySpeedList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_AdvisorySpeedList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_AdvisorySpeedList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_AdvisorySpeedList_specs_1 = { + sizeof(struct mapem_ts_AdvisorySpeedList), + offsetof(struct mapem_ts_AdvisorySpeedList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_AdvisorySpeedList = { + "AdvisorySpeedList", + "AdvisorySpeedList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_AdvisorySpeedList_tags_1, + sizeof(asn_DEF_mapem_ts_AdvisorySpeedList_tags_1) + /sizeof(asn_DEF_mapem_ts_AdvisorySpeedList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_AdvisorySpeedList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_AdvisorySpeedList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_AdvisorySpeedList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_AdvisorySpeedList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AdvisorySpeedType.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AdvisorySpeedType.c new file mode 100644 index 000000000..38d661339 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_AdvisorySpeedType_specs_1 = { + asn_MAP_mapem_ts_AdvisorySpeedType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_AdvisorySpeedType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_AdvisorySpeedType = { + "AdvisorySpeedType", + "AdvisorySpeedType", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_AdvisorySpeedType_tags_1, + sizeof(asn_DEF_mapem_ts_AdvisorySpeedType_tags_1) + /sizeof(asn_DEF_mapem_ts_AdvisorySpeedType_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_AdvisorySpeedType_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_AdvisorySpeedType_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_AdvisorySpeedType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AllowedManeuvers.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AllowedManeuvers.c new file mode 100644 index 000000000..c1f06a925 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_AllowedManeuvers.h" + +int +mapem_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_mapem_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_mapem_ts_AllowedManeuvers_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_AllowedManeuvers = { + "AllowedManeuvers", + "AllowedManeuvers", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_AllowedManeuvers_tags_1, + sizeof(asn_DEF_mapem_ts_AllowedManeuvers_tags_1) + /sizeof(asn_DEF_mapem_ts_AllowedManeuvers_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_AllowedManeuvers_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_AllowedManeuvers_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_AllowedManeuvers_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AlphabetIndicator.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AlphabetIndicator.c new file mode 100644 index 000000000..88491f07f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_AlphabetIndicator.h" + +int +mapem_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_mapem_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_mapem_ts_AlphabetIndicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_AlphabetIndicator = { + "AlphabetIndicator", + "AlphabetIndicator", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_AlphabetIndicator_tags_1, + sizeof(asn_DEF_mapem_ts_AlphabetIndicator_tags_1) + /sizeof(asn_DEF_mapem_ts_AlphabetIndicator_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_AlphabetIndicator_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_AlphabetIndicator_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_AlphabetIndicator_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Altitude.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Altitude.c new file mode 100644 index 000000000..2e4f5ba80 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Altitude.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_Altitude_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Altitude, altitudeValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_Altitude, altitudeConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_Altitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Altitude_specs_1 = { + sizeof(struct mapem_ts_Altitude), + offsetof(struct mapem_ts_Altitude, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Altitude = { + "Altitude", + "Altitude", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Altitude_tags_1, + sizeof(asn_DEF_mapem_ts_Altitude_tags_1) + /sizeof(asn_DEF_mapem_ts_Altitude_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Altitude_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Altitude_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_Altitude_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Altitude_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AltitudeConfidence.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AltitudeConfidence.c new file mode 100644 index 000000000..efebf2ae6 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_AltitudeConfidence_specs_1 = { + asn_MAP_mapem_ts_AltitudeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_AltitudeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_AltitudeConfidence = { + "AltitudeConfidence", + "AltitudeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_AltitudeConfidence_tags_1, + sizeof(asn_DEF_mapem_ts_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_mapem_ts_AltitudeConfidence_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_AltitudeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_AltitudeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AltitudeValue.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AltitudeValue.c new file mode 100644 index 000000000..fe920256b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_AltitudeValue.h" + +int +mapem_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_mapem_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_mapem_ts_AltitudeValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_AltitudeValue = { + "AltitudeValue", + "AltitudeValue", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_AltitudeValue_tags_1, + sizeof(asn_DEF_mapem_ts_AltitudeValue_tags_1) + /sizeof(asn_DEF_mapem_ts_AltitudeValue_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_AltitudeValue_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_AltitudeValue_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_AltitudeValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Angle.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Angle.c new file mode 100644 index 000000000..0166031de --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Angle.h" + +int +mapem_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_mapem_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_mapem_ts_Angle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_Angle = { + "Angle", + "Angle", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_Angle_tags_1, + sizeof(asn_DEF_mapem_ts_Angle_tags_1) + /sizeof(asn_DEF_mapem_ts_Angle_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Angle_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Angle_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_Angle_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AntennaOffsetSet.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AntennaOffsetSet.c new file mode 100644 index 000000000..fdc3a60fb --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_AntennaOffsetSet.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_AntennaOffsetSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_AntennaOffsetSet, antOffsetX), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_AntennaOffsetSet, antOffsetY), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_AntennaOffsetSet, antOffsetZ), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_AntennaOffsetSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_AntennaOffsetSet_specs_1 = { + sizeof(struct mapem_ts_AntennaOffsetSet), + offsetof(struct mapem_ts_AntennaOffsetSet, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_AntennaOffsetSet = { + "AntennaOffsetSet", + "AntennaOffsetSet", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_AntennaOffsetSet_tags_1, + sizeof(asn_DEF_mapem_ts_AntennaOffsetSet_tags_1) + /sizeof(asn_DEF_mapem_ts_AntennaOffsetSet_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_AntennaOffsetSet_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_AntennaOffsetSet_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_AntennaOffsetSet_1, + 3, /* Elements count */ + &asn_SPC_mapem_ts_AntennaOffsetSet_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ApproachID.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ApproachID.c new file mode 100644 index 000000000..7c8c6a31c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ApproachID.h" + +int +mapem_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_mapem_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_mapem_ts_ApproachID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ApproachID = { + "ApproachID", + "ApproachID", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_ApproachID_tags_1, + sizeof(asn_DEF_mapem_ts_ApproachID_tags_1) + /sizeof(asn_DEF_mapem_ts_ApproachID_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ApproachID_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ApproachID_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_ApproachID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AviEriDateTime.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_AviEriDateTime.c new file mode 100644 index 000000000..ca0e36191 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_AviEriDateTime.h" + +int +mapem_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_mapem_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_mapem_ts_AviEriDateTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_AviEriDateTime = { + "AviEriDateTime", + "AviEriDateTime", + &asn_OP_OCTET_STRING, + asn_DEF_mapem_ts_AviEriDateTime_tags_1, + sizeof(asn_DEF_mapem_ts_AviEriDateTime_tags_1) + /sizeof(asn_DEF_mapem_ts_AviEriDateTime_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_AviEriDateTime_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_AviEriDateTime_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_AviEriDateTime_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_BasicVehicleRole.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_BasicVehicleRole.c new file mode 100644 index 000000000..aeb445563 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_BasicVehicleRole_specs_1 = { + asn_MAP_mapem_ts_BasicVehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_BasicVehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_BasicVehicleRole = { + "BasicVehicleRole", + "BasicVehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_BasicVehicleRole_tags_1, + sizeof(asn_DEF_mapem_ts_BasicVehicleRole_tags_1) + /sizeof(asn_DEF_mapem_ts_BasicVehicleRole_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_BasicVehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_BasicVehicleRole_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_BasicVehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_BatteryStatus.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_BatteryStatus.c new file mode 100644 index 000000000..f01f4946f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_BatteryStatus_specs_1 = { + asn_MAP_mapem_ts_BatteryStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_BatteryStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_BatteryStatus = { + "BatteryStatus", + "BatteryStatus", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_BatteryStatus_tags_1, + sizeof(asn_DEF_mapem_ts_BatteryStatus_tags_1) + /sizeof(asn_DEF_mapem_ts_BatteryStatus_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_BatteryStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_BatteryStatus_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_BatteryStatus_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CS1.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CS1.c new file mode 100644 index 000000000..d8d0cb099 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_CS1.h" + +static asn_TYPE_member_t asn_MBR_mapem_ts_CS1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_CS1, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_CS1, issuerIdentifier), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_CS1, serviceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_CS1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_CS1_specs_1 = { + sizeof(struct mapem_ts_CS1), + offsetof(struct mapem_ts_CS1, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_CS1 = { + "CS1", + "CS1", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_CS1_tags_1, + sizeof(asn_DEF_mapem_ts_CS1_tags_1) + /sizeof(asn_DEF_mapem_ts_CS1_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_CS1_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_CS1_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_CS1_1, + 3, /* Elements count */ + &asn_SPC_mapem_ts_CS1_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CS2.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CS2.c new file mode 100644 index 000000000..26d15f93f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_CS2.h" + +static asn_TYPE_member_t asn_MBR_mapem_ts_CS2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_CS2, manufacturerIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_CS2, serviceNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_CS2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_CS2_specs_1 = { + sizeof(struct mapem_ts_CS2), + offsetof(struct mapem_ts_CS2, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_CS2 = { + "CS2", + "CS2", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_CS2_tags_1, + sizeof(asn_DEF_mapem_ts_CS2_tags_1) + /sizeof(asn_DEF_mapem_ts_CS2_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_CS2_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_CS2_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_CS2_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_CS2_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CS3.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CS3.c new file mode 100644 index 000000000..a21b93f8e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_CS3.h" + +static asn_TYPE_member_t asn_MBR_mapem_ts_CS3_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_CS3, startTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_CS3, stopTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_CS3, geographLimit), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_CS3, serviceAppLimit), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_CS3_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_CS3_specs_1 = { + sizeof(struct mapem_ts_CS3), + offsetof(struct mapem_ts_CS3, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_CS3 = { + "CS3", + "CS3", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_CS3_tags_1, + sizeof(asn_DEF_mapem_ts_CS3_tags_1) + /sizeof(asn_DEF_mapem_ts_CS3_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_CS3_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_CS3_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_CS3_1, + 4, /* Elements count */ + &asn_SPC_mapem_ts_CS3_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CS4.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CS4.c new file mode 100644 index 000000000..57264ff3f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_CS4.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_CS4_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_CS4, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_CS4, alphabetIndicator), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_CS4, licPlateNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_CS4_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_CS4_specs_1 = { + sizeof(struct mapem_ts_CS4), + offsetof(struct mapem_ts_CS4, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_CS4 = { + "CS4", + "CS4", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_CS4_tags_1, + sizeof(asn_DEF_mapem_ts_CS4_tags_1) + /sizeof(asn_DEF_mapem_ts_CS4_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_CS4_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_CS4_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_CS4_1, + 3, /* Elements count */ + &asn_SPC_mapem_ts_CS4_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CS5.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CS5.c new file mode 100644 index 000000000..9a99709c0 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_CS5.h" + +static int +memb_mapem_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_mapem_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) */ +static asn_TYPE_member_t asn_MBR_mapem_ts_CS5_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_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 mapem_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_mapem_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_mapem_ts_fill_constraint_1 + }, + 0, 0, /* No default value */ + "fill" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_CS5_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_ts_CS5_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vin */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fill */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_CS5_specs_1 = { + sizeof(struct mapem_ts_CS5), + offsetof(struct mapem_ts_CS5, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_CS5 = { + "CS5", + "CS5", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_CS5_tags_1, + sizeof(asn_DEF_mapem_ts_CS5_tags_1) + /sizeof(asn_DEF_mapem_ts_CS5_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_CS5_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_CS5_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_CS5_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_CS5_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CS7.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CS7.c new file mode 100644 index 000000000..cdd48647d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_CS7.h" + +/* + * This type is implemented using mapem_ts_FreightContainerData, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_mapem_ts_CS7_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_CS7 = { + "CS7", + "CS7", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_CS7_tags_1, + sizeof(asn_DEF_mapem_ts_CS7_tags_1) + /sizeof(asn_DEF_mapem_ts_CS7_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_CS7_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_CS7_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_FreightContainerData_1, + 10, /* Elements count */ + &asn_SPC_mapem_ts_FreightContainerData_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CS8.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CS8.c new file mode 100644 index 000000000..e285113dc --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_CS8.h" + +static int +memb_mapem_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_mapem_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_mapem_ts_CS8_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_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_mapem_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_mapem_ts_fill_constraint_1 + }, + 0, 0, /* No default value */ + "fill" + }, + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_CS8, countryCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_CS8, taxCode), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_CS8_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_CS8_specs_1 = { + sizeof(struct mapem_ts_CS8), + offsetof(struct mapem_ts_CS8, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_CS8 = { + "CS8", + "CS8", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_CS8_tags_1, + sizeof(asn_DEF_mapem_ts_CS8_tags_1) + /sizeof(asn_DEF_mapem_ts_CS8_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_CS8_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_CS8_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_CS8_1, + 3, /* Elements count */ + &asn_SPC_mapem_ts_CS8_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CauseCode.c new file mode 100644 index 000000000..0e5695d5a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_CauseCode.h" + +static asn_TYPE_member_t asn_MBR_mapem_ts_CauseCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_CauseCode, causeCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_CauseCode, subCauseCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_CauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_CauseCode_specs_1 = { + sizeof(struct mapem_ts_CauseCode), + offsetof(struct mapem_ts_CauseCode, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_CauseCode = { + "CauseCode", + "CauseCode", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_CauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_CauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_CauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_CauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_CauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_CauseCode_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_CauseCode_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CauseCodeType.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CauseCodeType.c new file mode 100644 index 000000000..93fb63529 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_CauseCodeType.h" + +int +mapem_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_mapem_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_mapem_ts_CauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_CauseCodeType = { + "CauseCodeType", + "CauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_CauseCodeType_tags_1, + sizeof(asn_DEF_mapem_ts_CauseCodeType_tags_1) + /sizeof(asn_DEF_mapem_ts_CauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_CauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_CauseCodeType_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_CauseCodeType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CenDsrcTollingZone.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CenDsrcTollingZone.c new file mode 100644 index 000000000..71f17a85f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_CenDsrcTollingZone.h" + +static asn_TYPE_member_t asn_MBR_mapem_ts_CenDsrcTollingZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_CenDsrcTollingZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_CenDsrcTollingZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_CenDsrcTollingZone, cenDsrcTollingZoneID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_CenDsrcTollingZone_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_CenDsrcTollingZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_CenDsrcTollingZone_specs_1 = { + sizeof(struct mapem_ts_CenDsrcTollingZone), + offsetof(struct mapem_ts_CenDsrcTollingZone, _asn_ctx), + asn_MAP_mapem_ts_CenDsrcTollingZone_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_mapem_ts_CenDsrcTollingZone_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_CenDsrcTollingZone = { + "CenDsrcTollingZone", + "CenDsrcTollingZone", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_CenDsrcTollingZone_tags_1, + sizeof(asn_DEF_mapem_ts_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_mapem_ts_CenDsrcTollingZone_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_CenDsrcTollingZone_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_CenDsrcTollingZone_1, + 3, /* Elements count */ + &asn_SPC_mapem_ts_CenDsrcTollingZone_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CenDsrcTollingZoneID.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CenDsrcTollingZoneID.c new file mode 100644 index 000000000..6bce1f0fa --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_CenDsrcTollingZoneID.h" + +int +mapem_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 mapem_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_mapem_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_mapem_ts_CenDsrcTollingZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_CenDsrcTollingZoneID = { + "CenDsrcTollingZoneID", + "CenDsrcTollingZoneID", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_CenDsrcTollingZoneID_tags_1, + sizeof(asn_DEF_mapem_ts_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_mapem_ts_CenDsrcTollingZoneID_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_CenDsrcTollingZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_CenDsrcTollingZoneID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ClosedLanes.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ClosedLanes.c new file mode 100644 index 000000000..84db2d0a0 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ClosedLanes.h" + +static asn_TYPE_member_t asn_MBR_mapem_ts_ClosedLanes_1[] = { + { ATF_POINTER, 3, offsetof(struct mapem_ts_ClosedLanes, innerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ClosedLanes, outerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ClosedLanes, drivingLaneStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_ClosedLanes_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_ClosedLanes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_ClosedLanes_specs_1 = { + sizeof(struct mapem_ts_ClosedLanes), + offsetof(struct mapem_ts_ClosedLanes, _asn_ctx), + asn_MAP_mapem_ts_ClosedLanes_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_mapem_ts_ClosedLanes_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ClosedLanes = { + "ClosedLanes", + "ClosedLanes", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_ClosedLanes_tags_1, + sizeof(asn_DEF_mapem_ts_ClosedLanes_tags_1) + /sizeof(asn_DEF_mapem_ts_ClosedLanes_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ClosedLanes_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ClosedLanes_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_ClosedLanes_1, + 3, /* Elements count */ + &asn_SPC_mapem_ts_ClosedLanes_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CollisionRiskSubCauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CollisionRiskSubCauseCode.c new file mode 100644 index 000000000..afe628351 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_CollisionRiskSubCauseCode.h" + +int +mapem_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_mapem_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_mapem_ts_CollisionRiskSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_CollisionRiskSubCauseCode = { + "CollisionRiskSubCauseCode", + "CollisionRiskSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_CollisionRiskSubCauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_CollisionRiskSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_CollisionRiskSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_CollisionRiskSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ComputedLane.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ComputedLane.c new file mode 100644 index 000000000..506ff8faa --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ComputedLane.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_offsetXaxis_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_ComputedLane__offsetXaxis, choice.small), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ComputedLane__offsetXaxis, choice.large), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_offsetXaxis_specs_3 = { + sizeof(struct mapem_ts_ComputedLane__offsetXaxis), + offsetof(struct mapem_ts_ComputedLane__offsetXaxis, _asn_ctx), + offsetof(struct mapem_ts_ComputedLane__offsetXaxis, present), + sizeof(((struct mapem_ts_ComputedLane__offsetXaxis *)0)->present), + asn_MAP_mapem_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_mapem_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_mapem_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_mapem_ts_offsetXaxis_3, + 2, /* Elements count */ + &asn_SPC_mapem_ts_offsetXaxis_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_mapem_ts_offsetYaxis_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_ComputedLane__offsetYaxis, choice.small), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ComputedLane__offsetYaxis, choice.large), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_offsetYaxis_specs_6 = { + sizeof(struct mapem_ts_ComputedLane__offsetYaxis), + offsetof(struct mapem_ts_ComputedLane__offsetYaxis, _asn_ctx), + offsetof(struct mapem_ts_ComputedLane__offsetYaxis, present), + sizeof(((struct mapem_ts_ComputedLane__offsetYaxis *)0)->present), + asn_MAP_mapem_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_mapem_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_mapem_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_mapem_ts_offsetYaxis_6, + 2, /* Elements count */ + &asn_SPC_mapem_ts_offsetYaxis_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_mapem_ts_regional_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regional_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_regional_specs_12 = { + sizeof(struct mapem_ts_ComputedLane__regional), + offsetof(struct mapem_ts_ComputedLane__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mapem_ts_regional_12 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_regional_tags_12, + sizeof(asn_DEF_mapem_ts_regional_tags_12) + /sizeof(asn_DEF_mapem_ts_regional_tags_12[0]) - 1, /* 1 */ + asn_DEF_mapem_ts_regional_tags_12, /* Same as above */ + sizeof(asn_DEF_mapem_ts_regional_tags_12) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_regional_12, + 1, /* Single element */ + &asn_SPC_mapem_ts_regional_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_ComputedLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_ComputedLane, referenceLaneId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ComputedLane, offsetXaxis), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ComputedLane, offsetYaxis), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ComputedLane, rotateXY), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ComputedLane, scaleXaxis), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ComputedLane, scaleYaxis), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ComputedLane, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_mapem_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_mapem_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_mapem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_mapem_ts_ComputedLane_oms_1[] = { 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_ComputedLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_ComputedLane_specs_1 = { + sizeof(struct mapem_ts_ComputedLane), + offsetof(struct mapem_ts_ComputedLane, _asn_ctx), + asn_MAP_mapem_ts_ComputedLane_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_mapem_ts_ComputedLane_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ComputedLane = { + "ComputedLane", + "ComputedLane", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_ComputedLane_tags_1, + sizeof(asn_DEF_mapem_ts_ComputedLane_tags_1) + /sizeof(asn_DEF_mapem_ts_ComputedLane_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ComputedLane_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ComputedLane_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_ComputedLane_1, + 7, /* Elements count */ + &asn_SPC_mapem_ts_ComputedLane_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ConnectingLane.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ConnectingLane.c new file mode 100644 index 000000000..6f0a0acab --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ConnectingLane.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_ConnectingLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_ConnectingLane, lane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ConnectingLane, maneuver), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_ConnectingLane_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_ConnectingLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_ConnectingLane_specs_1 = { + sizeof(struct mapem_ts_ConnectingLane), + offsetof(struct mapem_ts_ConnectingLane, _asn_ctx), + asn_MAP_mapem_ts_ConnectingLane_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_mapem_ts_ConnectingLane_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ConnectingLane = { + "ConnectingLane", + "ConnectingLane", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_ConnectingLane_tags_1, + sizeof(asn_DEF_mapem_ts_ConnectingLane_tags_1) + /sizeof(asn_DEF_mapem_ts_ConnectingLane_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ConnectingLane_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ConnectingLane_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_ConnectingLane_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_ConnectingLane_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Connection.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Connection.c new file mode 100644 index 000000000..07133d924 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Connection.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_Connection_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Connection, connectingLane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_Connection, remoteIntersection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_Connection, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_Connection, userClass), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_Connection, connectionID), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_Connection_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Connection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Connection_specs_1 = { + sizeof(struct mapem_ts_Connection), + offsetof(struct mapem_ts_Connection, _asn_ctx), + asn_MAP_mapem_ts_Connection_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_mapem_ts_Connection_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_Connection = { + "Connection", + "Connection", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Connection_tags_1, + sizeof(asn_DEF_mapem_ts_Connection_tags_1) + /sizeof(asn_DEF_mapem_ts_Connection_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Connection_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Connection_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_Connection_1, + 5, /* Elements count */ + &asn_SPC_mapem_ts_Connection_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ConnectionManeuverAssist-addGrpC.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ConnectionManeuverAssist-addGrpC.c new file mode 100644 index 000000000..dde93ac82 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ConnectionManeuverAssist-addGrpC.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_ConnectionManeuverAssist_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct mapem_ts_ConnectionManeuverAssist_addGrpC, itsStationPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_ConnectionManeuverAssist_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_ConnectionManeuverAssist_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_ts_ConnectionManeuverAssist_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* itsStationPosition */ +}; +asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_ConnectionManeuverAssist_addGrpC_specs_1 = { + sizeof(struct mapem_ts_ConnectionManeuverAssist_addGrpC), + offsetof(struct mapem_ts_ConnectionManeuverAssist_addGrpC, _asn_ctx), + asn_MAP_mapem_ts_ConnectionManeuverAssist_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_mapem_ts_ConnectionManeuverAssist_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ConnectionManeuverAssist_addGrpC = { + "ConnectionManeuverAssist-addGrpC", + "ConnectionManeuverAssist-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_ConnectionManeuverAssist_addGrpC_tags_1, + sizeof(asn_DEF_mapem_ts_ConnectionManeuverAssist_addGrpC_tags_1) + /sizeof(asn_DEF_mapem_ts_ConnectionManeuverAssist_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ConnectionManeuverAssist_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ConnectionManeuverAssist_addGrpC_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_ConnectionManeuverAssist_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_mapem_ts_ConnectionManeuverAssist_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ConnectionManeuverAssist.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ConnectionManeuverAssist.c new file mode 100644 index 000000000..3ed594117 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ConnectionManeuverAssist.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_ts_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_regional_specs_7 = { + sizeof(struct mapem_ts_ConnectionManeuverAssist__regional), + offsetof(struct mapem_ts_ConnectionManeuverAssist__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mapem_ts_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_regional_tags_7, + sizeof(asn_DEF_mapem_ts_regional_tags_7) + /sizeof(asn_DEF_mapem_ts_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_mapem_ts_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_mapem_ts_regional_tags_7) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_regional_7, + 1, /* Single element */ + &asn_SPC_mapem_ts_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_ConnectionManeuverAssist_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_ConnectionManeuverAssist, connectionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ConnectionManeuverAssist, queueLength), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ConnectionManeuverAssist, availableStorageLength), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ConnectionManeuverAssist, waitOnStop), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ConnectionManeuverAssist, pedBicycleDetect), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ConnectionManeuverAssist, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_mapem_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_mapem_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_mapem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_mapem_ts_ConnectionManeuverAssist_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_ConnectionManeuverAssist_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_ConnectionManeuverAssist_specs_1 = { + sizeof(struct mapem_ts_ConnectionManeuverAssist), + offsetof(struct mapem_ts_ConnectionManeuverAssist, _asn_ctx), + asn_MAP_mapem_ts_ConnectionManeuverAssist_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_mapem_ts_ConnectionManeuverAssist_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ConnectionManeuverAssist = { + "ConnectionManeuverAssist", + "ConnectionManeuverAssist", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_ConnectionManeuverAssist_tags_1, + sizeof(asn_DEF_mapem_ts_ConnectionManeuverAssist_tags_1) + /sizeof(asn_DEF_mapem_ts_ConnectionManeuverAssist_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ConnectionManeuverAssist_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ConnectionManeuverAssist_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_ConnectionManeuverAssist_1, + 6, /* Elements count */ + &asn_SPC_mapem_ts_ConnectionManeuverAssist_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ConnectionTrajectory-addGrpC.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ConnectionTrajectory-addGrpC.c new file mode 100644 index 000000000..ab2800211 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ConnectionTrajectory-addGrpC.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_ConnectionTrajectory_addGrpC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_ConnectionTrajectory_addGrpC, nodes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ConnectionTrajectory_addGrpC, connectionID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_ConnectionTrajectory_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_ConnectionTrajectory_addGrpC_specs_1 = { + sizeof(struct mapem_ts_ConnectionTrajectory_addGrpC), + offsetof(struct mapem_ts_ConnectionTrajectory_addGrpC, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_ConnectionTrajectory_addGrpC = { + "ConnectionTrajectory-addGrpC", + "ConnectionTrajectory-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_ConnectionTrajectory_addGrpC_tags_1, + sizeof(asn_DEF_mapem_ts_ConnectionTrajectory_addGrpC_tags_1) + /sizeof(asn_DEF_mapem_ts_ConnectionTrajectory_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ConnectionTrajectory_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ConnectionTrajectory_addGrpC_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_ConnectionTrajectory_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_ConnectionTrajectory_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ConnectsToList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ConnectsToList.c new file mode 100644 index 000000000..72d474964 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ConnectsToList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_ConnectsToList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_ConnectsToList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_ConnectsToList_specs_1 = { + sizeof(struct mapem_ts_ConnectsToList), + offsetof(struct mapem_ts_ConnectsToList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ConnectsToList = { + "ConnectsToList", + "ConnectsToList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_ConnectsToList_tags_1, + sizeof(asn_DEF_mapem_ts_ConnectsToList_tags_1) + /sizeof(asn_DEF_mapem_ts_ConnectsToList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ConnectsToList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ConnectsToList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_ConnectsToList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_ConnectsToList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CountryCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CountryCode.c new file mode 100644 index 000000000..495affcd6 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_CountryCode.h" + +int +mapem_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_mapem_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_mapem_ts_CountryCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_CountryCode = { + "CountryCode", + "CountryCode", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_CountryCode_tags_1, + sizeof(asn_DEF_mapem_ts_CountryCode_tags_1) + /sizeof(asn_DEF_mapem_ts_CountryCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_CountryCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_CountryCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_CountryCode_constraint + }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Curvature.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Curvature.c new file mode 100644 index 000000000..6ceb391ef --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Curvature.h" + +static asn_TYPE_member_t asn_MBR_mapem_ts_Curvature_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Curvature, curvatureValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_Curvature, curvatureConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_Curvature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Curvature_specs_1 = { + sizeof(struct mapem_ts_Curvature), + offsetof(struct mapem_ts_Curvature, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Curvature = { + "Curvature", + "Curvature", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Curvature_tags_1, + sizeof(asn_DEF_mapem_ts_Curvature_tags_1) + /sizeof(asn_DEF_mapem_ts_Curvature_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Curvature_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Curvature_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_Curvature_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Curvature_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CurvatureCalculationMode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CurvatureCalculationMode.c new file mode 100644 index 000000000..cf0fb5718 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_ts_CurvatureCalculationMode_value2enum_1[] = { + { 0, 11, "yawRateUsed" }, + { 1, 14, "yawRateNotUsed" }, + { 2, 11, "unavailable" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_mapem_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_mapem_ts_CurvatureCalculationMode_specs_1 = { + asn_MAP_mapem_ts_CurvatureCalculationMode_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_CurvatureCalculationMode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_CurvatureCalculationMode = { + "CurvatureCalculationMode", + "CurvatureCalculationMode", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_CurvatureCalculationMode_tags_1, + sizeof(asn_DEF_mapem_ts_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_mapem_ts_CurvatureCalculationMode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_CurvatureCalculationMode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_CurvatureCalculationMode_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CurvatureConfidence.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CurvatureConfidence.c new file mode 100644 index 000000000..dbf4dd732 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_CurvatureConfidence_specs_1 = { + asn_MAP_mapem_ts_CurvatureConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_CurvatureConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_CurvatureConfidence = { + "CurvatureConfidence", + "CurvatureConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_CurvatureConfidence_tags_1, + sizeof(asn_DEF_mapem_ts_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_mapem_ts_CurvatureConfidence_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_CurvatureConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_CurvatureConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CurvatureValue.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_CurvatureValue.c new file mode 100644 index 000000000..32fa17b16 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_CurvatureValue.h" + +int +mapem_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_mapem_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_mapem_ts_CurvatureValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_CurvatureValue = { + "CurvatureValue", + "CurvatureValue", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_CurvatureValue_tags_1, + sizeof(asn_DEF_mapem_ts_CurvatureValue_tags_1) + /sizeof(asn_DEF_mapem_ts_CurvatureValue_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_CurvatureValue_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_CurvatureValue_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_CurvatureValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DDateTime.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DDateTime.c new file mode 100644 index 000000000..267712f4f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_DDateTime.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_DDateTime_1[] = { + { ATF_POINTER, 7, offsetof(struct mapem_ts_DDateTime, year), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_DDateTime, month), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_DDateTime, day), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_DDateTime, hour), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_DDateTime, minute), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_DDateTime, second), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_DDateTime, offset), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_DDateTime_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_DDateTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_DDateTime_specs_1 = { + sizeof(struct mapem_ts_DDateTime), + offsetof(struct mapem_ts_DDateTime, _asn_ctx), + asn_MAP_mapem_ts_DDateTime_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_mapem_ts_DDateTime_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DDateTime = { + "DDateTime", + "DDateTime", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_DDateTime_tags_1, + sizeof(asn_DEF_mapem_ts_DDateTime_tags_1) + /sizeof(asn_DEF_mapem_ts_DDateTime_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DDateTime_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DDateTime_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_DDateTime_1, + 7, /* Elements count */ + &asn_SPC_mapem_ts_DDateTime_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DDay.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DDay.c new file mode 100644 index 000000000..765b9ed95 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_DDay.h" + +int +mapem_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_mapem_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_mapem_ts_DDay_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DDay = { + "DDay", + "DDay", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_DDay_tags_1, + sizeof(asn_DEF_mapem_ts_DDay_tags_1) + /sizeof(asn_DEF_mapem_ts_DDay_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DDay_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DDay_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_DDay_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DHour.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DHour.c new file mode 100644 index 000000000..f17519868 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_DHour.h" + +int +mapem_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_mapem_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_mapem_ts_DHour_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DHour = { + "DHour", + "DHour", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_DHour_tags_1, + sizeof(asn_DEF_mapem_ts_DHour_tags_1) + /sizeof(asn_DEF_mapem_ts_DHour_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DHour_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DHour_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_DHour_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DMinute.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DMinute.c new file mode 100644 index 000000000..1f5f9397a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_DMinute.h" + +int +mapem_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_mapem_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_mapem_ts_DMinute_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DMinute = { + "DMinute", + "DMinute", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_DMinute_tags_1, + sizeof(asn_DEF_mapem_ts_DMinute_tags_1) + /sizeof(asn_DEF_mapem_ts_DMinute_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DMinute_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DMinute_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_DMinute_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DMonth.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DMonth.c new file mode 100644 index 000000000..708969f82 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_DMonth.h" + +int +mapem_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_mapem_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_mapem_ts_DMonth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DMonth = { + "DMonth", + "DMonth", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_DMonth_tags_1, + sizeof(asn_DEF_mapem_ts_DMonth_tags_1) + /sizeof(asn_DEF_mapem_ts_DMonth_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DMonth_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DMonth_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_DMonth_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DOffset.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DOffset.c new file mode 100644 index 000000000..80c585d3d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_DOffset.h" + +int +mapem_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_mapem_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_mapem_ts_DOffset_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DOffset = { + "DOffset", + "DOffset", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_DOffset_tags_1, + sizeof(asn_DEF_mapem_ts_DOffset_tags_1) + /sizeof(asn_DEF_mapem_ts_DOffset_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DOffset_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DOffset_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_DOffset_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DSRCmsgID.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DSRCmsgID.c new file mode 100644 index 000000000..bb7bac966 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_DSRCmsgID.h" + +int +mapem_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_mapem_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_mapem_ts_DSRCmsgID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DSRCmsgID = { + "DSRCmsgID", + "DSRCmsgID", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_DSRCmsgID_tags_1, + sizeof(asn_DEF_mapem_ts_DSRCmsgID_tags_1) + /sizeof(asn_DEF_mapem_ts_DSRCmsgID_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DSRCmsgID_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DSRCmsgID_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_DSRCmsgID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DSecond.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DSecond.c new file mode 100644 index 000000000..16ef1c7c2 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_DSecond.h" + +int +mapem_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_mapem_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_mapem_ts_DSecond_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DSecond = { + "DSecond", + "DSecond", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_DSecond_tags_1, + sizeof(asn_DEF_mapem_ts_DSecond_tags_1) + /sizeof(asn_DEF_mapem_ts_DSecond_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DSecond_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DSecond_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_DSecond_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DYear.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DYear.c new file mode 100644 index 000000000..159dce8bc --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_DYear.h" + +int +mapem_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_mapem_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_mapem_ts_DYear_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DYear = { + "DYear", + "DYear", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_DYear_tags_1, + sizeof(asn_DEF_mapem_ts_DYear_tags_1) + /sizeof(asn_DEF_mapem_ts_DYear_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DYear_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DYear_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_DYear_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DangerousEndOfQueueSubCauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DangerousEndOfQueueSubCauseCode.c new file mode 100644 index 000000000..98ea9de07 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_DangerousEndOfQueueSubCauseCode.h" + +int +mapem_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_mapem_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_mapem_ts_DangerousEndOfQueueSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DangerousEndOfQueueSubCauseCode = { + "DangerousEndOfQueueSubCauseCode", + "DangerousEndOfQueueSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_DangerousEndOfQueueSubCauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_DangerousEndOfQueueSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DangerousEndOfQueueSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_DangerousEndOfQueueSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DangerousGoodsBasic.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DangerousGoodsBasic.c new file mode 100644 index 000000000..a1314ecdd --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_DangerousGoodsBasic_specs_1 = { + asn_MAP_mapem_ts_DangerousGoodsBasic_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_DangerousGoodsBasic_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DangerousGoodsBasic = { + "DangerousGoodsBasic", + "DangerousGoodsBasic", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_DangerousGoodsBasic_tags_1, + sizeof(asn_DEF_mapem_ts_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_mapem_ts_DangerousGoodsBasic_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DangerousGoodsBasic_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_DangerousGoodsBasic_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DangerousGoodsExtended.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DangerousGoodsExtended.c new file mode 100644 index 000000000..332df0730 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_DangerousGoodsExtended_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_DangerousGoodsExtended, dangerousGoodsType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_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_mapem_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_mapem_ts_unNumber_constraint_1 + }, + 0, 0, /* No default value */ + "unNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct mapem_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 mapem_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 mapem_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 mapem_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_mapem_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_mapem_ts_emergencyActionCode_constraint_1 + }, + 0, 0, /* No default value */ + "emergencyActionCode" + }, + { ATF_POINTER, 2, offsetof(struct mapem_ts_DangerousGoodsExtended, phoneNumber), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_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_mapem_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_mapem_ts_companyName_constraint_1 + }, + 0, 0, /* No default value */ + "companyName" + }, +}; +static const int asn_MAP_mapem_ts_DangerousGoodsExtended_oms_1[] = { 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_DangerousGoodsExtended_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_DangerousGoodsExtended_specs_1 = { + sizeof(struct mapem_ts_DangerousGoodsExtended), + offsetof(struct mapem_ts_DangerousGoodsExtended, _asn_ctx), + asn_MAP_mapem_ts_DangerousGoodsExtended_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_mapem_ts_DangerousGoodsExtended_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DangerousGoodsExtended = { + "DangerousGoodsExtended", + "DangerousGoodsExtended", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_DangerousGoodsExtended_tags_1, + sizeof(asn_DEF_mapem_ts_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_mapem_ts_DangerousGoodsExtended_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DangerousGoodsExtended_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_DangerousGoodsExtended_1, + 8, /* Elements count */ + &asn_SPC_mapem_ts_DangerousGoodsExtended_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DangerousSituationSubCauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DangerousSituationSubCauseCode.c new file mode 100644 index 000000000..12f2e2fba --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_DangerousSituationSubCauseCode.h" + +int +mapem_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_mapem_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_mapem_ts_DangerousSituationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DangerousSituationSubCauseCode = { + "DangerousSituationSubCauseCode", + "DangerousSituationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_DangerousSituationSubCauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_DangerousSituationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DangerousSituationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_DangerousSituationSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DataParameters.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DataParameters.c new file mode 100644 index 000000000..e987ef613 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_DataParameters_1[] = { + { ATF_POINTER, 4, offsetof(struct mapem_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_mapem_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_mapem_ts_processMethod_constraint_1 + }, + 0, 0, /* No default value */ + "processMethod" + }, + { ATF_POINTER, 3, offsetof(struct mapem_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_mapem_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_mapem_ts_processAgency_constraint_1 + }, + 0, 0, /* No default value */ + "processAgency" + }, + { ATF_POINTER, 2, offsetof(struct mapem_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_mapem_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_mapem_ts_lastCheckedDate_constraint_1 + }, + 0, 0, /* No default value */ + "lastCheckedDate" + }, + { ATF_POINTER, 1, offsetof(struct mapem_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_mapem_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_mapem_ts_geoidUsed_constraint_1 + }, + 0, 0, /* No default value */ + "geoidUsed" + }, +}; +static const int asn_MAP_mapem_ts_DataParameters_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_DataParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_DataParameters_specs_1 = { + sizeof(struct mapem_ts_DataParameters), + offsetof(struct mapem_ts_DataParameters, _asn_ctx), + asn_MAP_mapem_ts_DataParameters_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_mapem_ts_DataParameters_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DataParameters = { + "DataParameters", + "DataParameters", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_DataParameters_tags_1, + sizeof(asn_DEF_mapem_ts_DataParameters_tags_1) + /sizeof(asn_DEF_mapem_ts_DataParameters_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DataParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DataParameters_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_DataParameters_1, + 4, /* Elements count */ + &asn_SPC_mapem_ts_DataParameters_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DeltaAltitude.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DeltaAltitude.c new file mode 100644 index 000000000..047d528e8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_DeltaAltitude.h" + +int +mapem_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_mapem_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_mapem_ts_DeltaAltitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DeltaAltitude = { + "DeltaAltitude", + "DeltaAltitude", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_DeltaAltitude_tags_1, + sizeof(asn_DEF_mapem_ts_DeltaAltitude_tags_1) + /sizeof(asn_DEF_mapem_ts_DeltaAltitude_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DeltaAltitude_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DeltaAltitude_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_DeltaAltitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DeltaAngle.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DeltaAngle.c new file mode 100644 index 000000000..dd1923051 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_DeltaAngle.h" + +int +mapem_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_mapem_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_mapem_ts_DeltaAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DeltaAngle = { + "DeltaAngle", + "DeltaAngle", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_DeltaAngle_tags_1, + sizeof(asn_DEF_mapem_ts_DeltaAngle_tags_1) + /sizeof(asn_DEF_mapem_ts_DeltaAngle_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DeltaAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DeltaAngle_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_DeltaAngle_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DeltaLatitude.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DeltaLatitude.c new file mode 100644 index 000000000..2749d2759 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_DeltaLatitude.h" + +int +mapem_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_mapem_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_mapem_ts_DeltaLatitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DeltaLatitude = { + "DeltaLatitude", + "DeltaLatitude", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_DeltaLatitude_tags_1, + sizeof(asn_DEF_mapem_ts_DeltaLatitude_tags_1) + /sizeof(asn_DEF_mapem_ts_DeltaLatitude_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DeltaLatitude_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DeltaLatitude_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_DeltaLatitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DeltaLongitude.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DeltaLongitude.c new file mode 100644 index 000000000..9f95fea12 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_DeltaLongitude.h" + +int +mapem_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_mapem_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_mapem_ts_DeltaLongitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DeltaLongitude = { + "DeltaLongitude", + "DeltaLongitude", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_DeltaLongitude_tags_1, + sizeof(asn_DEF_mapem_ts_DeltaLongitude_tags_1) + /sizeof(asn_DEF_mapem_ts_DeltaLongitude_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DeltaLongitude_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DeltaLongitude_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_DeltaLongitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DeltaReferencePosition.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DeltaReferencePosition.c new file mode 100644 index 000000000..e495263e9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_DeltaReferencePosition.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_DeltaReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_DeltaReferencePosition, deltaLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_DeltaReferencePosition, deltaLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_DeltaReferencePosition, deltaAltitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_DeltaReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_DeltaReferencePosition_specs_1 = { + sizeof(struct mapem_ts_DeltaReferencePosition), + offsetof(struct mapem_ts_DeltaReferencePosition, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_DeltaReferencePosition = { + "DeltaReferencePosition", + "DeltaReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_DeltaReferencePosition_tags_1, + sizeof(asn_DEF_mapem_ts_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_mapem_ts_DeltaReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DeltaReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_DeltaReferencePosition_1, + 3, /* Elements count */ + &asn_SPC_mapem_ts_DeltaReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DeltaTime.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DeltaTime.c new file mode 100644 index 000000000..1772863bd --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_DeltaTime.h" + +int +mapem_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_mapem_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_mapem_ts_DeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DeltaTime = { + "DeltaTime", + "DeltaTime", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_DeltaTime_tags_1, + sizeof(asn_DEF_mapem_ts_DeltaTime_tags_1) + /sizeof(asn_DEF_mapem_ts_DeltaTime_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DeltaTime_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_DeltaTime_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DescriptiveName.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DescriptiveName.c new file mode 100644 index 000000000..37552d1a4 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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 +mapem_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_mapem_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_mapem_ts_DescriptiveName_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DescriptiveName = { + "DescriptiveName", + "DescriptiveName", + &asn_OP_IA5String, + asn_DEF_mapem_ts_DescriptiveName_tags_1, + sizeof(asn_DEF_mapem_ts_DescriptiveName_tags_1) + /sizeof(asn_DEF_mapem_ts_DescriptiveName_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DescriptiveName_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DescriptiveName_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_DescriptiveName_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DigitalMap.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DigitalMap.c new file mode 100644 index 000000000..c1ee88e6c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_DigitalMap.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_DigitalMap_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_DigitalMap_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_DigitalMap_specs_1 = { + sizeof(struct mapem_ts_DigitalMap), + offsetof(struct mapem_ts_DigitalMap, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DigitalMap = { + "DigitalMap", + "DigitalMap", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_DigitalMap_tags_1, + sizeof(asn_DEF_mapem_ts_DigitalMap_tags_1) + /sizeof(asn_DEF_mapem_ts_DigitalMap_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DigitalMap_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DigitalMap_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_DigitalMap_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_DigitalMap_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DriveDirection.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DriveDirection.c new file mode 100644 index 000000000..fc135fd01 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_ts_DriveDirection_value2enum_1[] = { + { 0, 7, "forward" }, + { 1, 8, "backward" }, + { 2, 11, "unavailable" } +}; +static const unsigned int asn_MAP_mapem_ts_DriveDirection_enum2value_1[] = { + 1, /* backward(1) */ + 0, /* forward(0) */ + 2 /* unavailable(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_mapem_ts_DriveDirection_specs_1 = { + asn_MAP_mapem_ts_DriveDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_DriveDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DriveDirection = { + "DriveDirection", + "DriveDirection", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_DriveDirection_tags_1, + sizeof(asn_DEF_mapem_ts_DriveDirection_tags_1) + /sizeof(asn_DEF_mapem_ts_DriveDirection_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DriveDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DriveDirection_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_DriveDirection_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DrivenLineOffsetLg.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DrivenLineOffsetLg.c new file mode 100644 index 000000000..59fbf02a3 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_DrivenLineOffsetLg.h" + +int +mapem_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_mapem_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_mapem_ts_DrivenLineOffsetLg_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DrivenLineOffsetLg = { + "DrivenLineOffsetLg", + "DrivenLineOffsetLg", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_DrivenLineOffsetLg_tags_1, + sizeof(asn_DEF_mapem_ts_DrivenLineOffsetLg_tags_1) + /sizeof(asn_DEF_mapem_ts_DrivenLineOffsetLg_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DrivenLineOffsetLg_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DrivenLineOffsetLg_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_DrivenLineOffsetLg_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DrivenLineOffsetSm.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DrivenLineOffsetSm.c new file mode 100644 index 000000000..616012bbf --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_DrivenLineOffsetSm.h" + +int +mapem_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_mapem_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_mapem_ts_DrivenLineOffsetSm_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DrivenLineOffsetSm = { + "DrivenLineOffsetSm", + "DrivenLineOffsetSm", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_DrivenLineOffsetSm_tags_1, + sizeof(asn_DEF_mapem_ts_DrivenLineOffsetSm_tags_1) + /sizeof(asn_DEF_mapem_ts_DrivenLineOffsetSm_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DrivenLineOffsetSm_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DrivenLineOffsetSm_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_DrivenLineOffsetSm_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DrivingLaneStatus.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_DrivingLaneStatus.c new file mode 100644 index 000000000..f6b4fdf37 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_DrivingLaneStatus.h" + +int +mapem_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_mapem_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_mapem_ts_DrivingLaneStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_DrivingLaneStatus = { + "DrivingLaneStatus", + "DrivingLaneStatus", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_DrivingLaneStatus_tags_1, + sizeof(asn_DEF_mapem_ts_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_mapem_ts_DrivingLaneStatus_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_DrivingLaneStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_DrivingLaneStatus_constraint + }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EXTERNAL.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EXTERNAL.c new file mode 100644 index 000000000..3ce26fd72 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_EXTERNAL.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_encoding_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_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 mapem_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 mapem_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_mapem_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_mapem_ts_encoding_specs_5 = { + sizeof(struct mapem_ts_EXTERNAL__encoding), + offsetof(struct mapem_ts_EXTERNAL__encoding, _asn_ctx), + offsetof(struct mapem_ts_EXTERNAL__encoding, present), + sizeof(((struct mapem_ts_EXTERNAL__encoding *)0)->present), + asn_MAP_mapem_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_mapem_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_mapem_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_mapem_ts_encoding_5, + 3, /* Elements count */ + &asn_SPC_mapem_ts_encoding_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_mapem_ts_EXTERNAL_1[] = { + { ATF_POINTER, 3, offsetof(struct mapem_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 mapem_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 mapem_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 mapem_ts_EXTERNAL, encoding), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_mapem_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_mapem_ts_EXTERNAL_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_EXTERNAL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_EXTERNAL_specs_1 = { + sizeof(struct mapem_ts_EXTERNAL), + offsetof(struct mapem_ts_EXTERNAL, _asn_ctx), + asn_MAP_mapem_ts_EXTERNAL_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_mapem_ts_EXTERNAL_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_EXTERNAL = { + "EXTERNAL", + "EXTERNAL", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_EXTERNAL_tags_1, + sizeof(asn_DEF_mapem_ts_EXTERNAL_tags_1) + /sizeof(asn_DEF_mapem_ts_EXTERNAL_tags_1[0]) - 1, /* 1 */ + asn_DEF_mapem_ts_EXTERNAL_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_EXTERNAL_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_EXTERNAL_1, + 4, /* Elements count */ + &asn_SPC_mapem_ts_EXTERNAL_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Elevation.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Elevation.c new file mode 100644 index 000000000..19fcbec54 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Elevation.h" + +int +mapem_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_mapem_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_mapem_ts_Elevation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_Elevation = { + "Elevation", + "Elevation", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_Elevation_tags_1, + sizeof(asn_DEF_mapem_ts_Elevation_tags_1) + /sizeof(asn_DEF_mapem_ts_Elevation_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Elevation_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Elevation_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_Elevation_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ElevationConfidence.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ElevationConfidence.c new file mode 100644 index 000000000..64185ca7b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_ElevationConfidence_specs_1 = { + asn_MAP_mapem_ts_ElevationConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_ElevationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ElevationConfidence = { + "ElevationConfidence", + "ElevationConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_ElevationConfidence_tags_1, + sizeof(asn_DEF_mapem_ts_ElevationConfidence_tags_1) + /sizeof(asn_DEF_mapem_ts_ElevationConfidence_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ElevationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ElevationConfidence_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_ElevationConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EmbarkationStatus.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EmbarkationStatus.c new file mode 100644 index 000000000..dcc7f0895 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_EmbarkationStatus.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_mapem_ts_EmbarkationStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_EmbarkationStatus = { + "EmbarkationStatus", + "EmbarkationStatus", + &asn_OP_BOOLEAN, + asn_DEF_mapem_ts_EmbarkationStatus_tags_1, + sizeof(asn_DEF_mapem_ts_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_mapem_ts_EmbarkationStatus_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_EmbarkationStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_coding/src/mapem_ts_EmergencyPriority.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EmergencyPriority.c new file mode 100644 index 000000000..baf0a2e8c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_EmergencyPriority.h" + +int +mapem_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_mapem_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_mapem_ts_EmergencyPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_EmergencyPriority = { + "EmergencyPriority", + "EmergencyPriority", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_EmergencyPriority_tags_1, + sizeof(asn_DEF_mapem_ts_EmergencyPriority_tags_1) + /sizeof(asn_DEF_mapem_ts_EmergencyPriority_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_EmergencyPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_EmergencyPriority_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_EmergencyPriority_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EmergencyVehicleApproachingSubCauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EmergencyVehicleApproachingSubCauseCode.c new file mode 100644 index 000000000..611245dac --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_EmergencyVehicleApproachingSubCauseCode.h" + +int +mapem_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_mapem_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_mapem_ts_EmergencyVehicleApproachingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_EmergencyVehicleApproachingSubCauseCode = { + "EmergencyVehicleApproachingSubCauseCode", + "EmergencyVehicleApproachingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_EmergencyVehicleApproachingSubCauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_EmergencyVehicleApproachingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_EmergencyVehicleApproachingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_EmergencyVehicleApproachingSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EmissionType.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EmissionType.c new file mode 100644 index 000000000..90f97453d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_EmissionType_specs_1 = { + asn_MAP_mapem_ts_EmissionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_EmissionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_EmissionType = { + "EmissionType", + "EmissionType", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_EmissionType_tags_1, + sizeof(asn_DEF_mapem_ts_EmissionType_tags_1) + /sizeof(asn_DEF_mapem_ts_EmissionType_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_EmissionType_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_EmissionType_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_EmissionType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EnabledLaneList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EnabledLaneList.c new file mode 100644 index 000000000..cc33a1789 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_EnabledLaneList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_EnabledLaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_EnabledLaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_EnabledLaneList_specs_1 = { + sizeof(struct mapem_ts_EnabledLaneList), + offsetof(struct mapem_ts_EnabledLaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_EnabledLaneList = { + "EnabledLaneList", + "EnabledLaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_EnabledLaneList_tags_1, + sizeof(asn_DEF_mapem_ts_EnabledLaneList_tags_1) + /sizeof(asn_DEF_mapem_ts_EnabledLaneList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_EnabledLaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_EnabledLaneList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_EnabledLaneList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_EnabledLaneList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EnergyStorageType.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EnergyStorageType.c new file mode 100644 index 000000000..456a7a4fa --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_EnergyStorageType.h" + +int +mapem_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_mapem_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_mapem_ts_EnergyStorageType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_EnergyStorageType = { + "EnergyStorageType", + "EnergyStorageType", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_EnergyStorageType_tags_1, + sizeof(asn_DEF_mapem_ts_EnergyStorageType_tags_1) + /sizeof(asn_DEF_mapem_ts_EnergyStorageType_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_EnergyStorageType_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_EnergyStorageType_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_EnergyStorageType_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EuVehicleCategoryCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EuVehicleCategoryCode.c new file mode 100644 index 000000000..5ab69cd28 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_EuVehicleCategoryCode.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_mapem_ts_EuVehicleCategoryCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_mapem_ts_EuVehicleCategoryCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_EuVehicleCategoryCode, choice.euVehicleCategoryL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_EuVehicleCategoryCode, choice.euVehicleCategoryM), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_EuVehicleCategoryCode, choice.euVehicleCategoryN), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_EuVehicleCategoryCode, choice.euVehicleCategoryO), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_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 mapem_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_mapem_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 */ +}; +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_EuVehicleCategoryCode_specs_1 = { + sizeof(struct mapem_ts_EuVehicleCategoryCode), + offsetof(struct mapem_ts_EuVehicleCategoryCode, _asn_ctx), + offsetof(struct mapem_ts_EuVehicleCategoryCode, present), + sizeof(((struct mapem_ts_EuVehicleCategoryCode *)0)->present), + asn_MAP_mapem_ts_EuVehicleCategoryCode_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_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_mapem_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_mapem_ts_EuVehicleCategoryCode_1, + 6, /* Elements count */ + &asn_SPC_mapem_ts_EuVehicleCategoryCode_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EuVehicleCategoryL.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EuVehicleCategoryL.c new file mode 100644 index 000000000..26590c6e5 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_EuVehicleCategoryL_specs_1 = { + asn_MAP_mapem_ts_EuVehicleCategoryL_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_EuVehicleCategoryL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_EuVehicleCategoryL = { + "EuVehicleCategoryL", + "EuVehicleCategoryL", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_EuVehicleCategoryL_tags_1, + sizeof(asn_DEF_mapem_ts_EuVehicleCategoryL_tags_1) + /sizeof(asn_DEF_mapem_ts_EuVehicleCategoryL_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_EuVehicleCategoryL_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_EuVehicleCategoryL_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_EuVehicleCategoryL_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EuVehicleCategoryM.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EuVehicleCategoryM.c new file mode 100644 index 000000000..85fb756da --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_ts_EuVehicleCategoryM_value2enum_1[] = { + { 0, 2, "m1" }, + { 1, 2, "m2" }, + { 2, 2, "m3" } +}; +static const unsigned int asn_MAP_mapem_ts_EuVehicleCategoryM_enum2value_1[] = { + 0, /* m1(0) */ + 1, /* m2(1) */ + 2 /* m3(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_mapem_ts_EuVehicleCategoryM_specs_1 = { + asn_MAP_mapem_ts_EuVehicleCategoryM_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_EuVehicleCategoryM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_EuVehicleCategoryM = { + "EuVehicleCategoryM", + "EuVehicleCategoryM", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_EuVehicleCategoryM_tags_1, + sizeof(asn_DEF_mapem_ts_EuVehicleCategoryM_tags_1) + /sizeof(asn_DEF_mapem_ts_EuVehicleCategoryM_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_EuVehicleCategoryM_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_EuVehicleCategoryM_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_EuVehicleCategoryM_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EuVehicleCategoryN.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EuVehicleCategoryN.c new file mode 100644 index 000000000..106431d72 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_ts_EuVehicleCategoryN_value2enum_1[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n3" } +}; +static const unsigned int asn_MAP_mapem_ts_EuVehicleCategoryN_enum2value_1[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2 /* n3(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_mapem_ts_EuVehicleCategoryN_specs_1 = { + asn_MAP_mapem_ts_EuVehicleCategoryN_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_EuVehicleCategoryN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_EuVehicleCategoryN = { + "EuVehicleCategoryN", + "EuVehicleCategoryN", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_EuVehicleCategoryN_tags_1, + sizeof(asn_DEF_mapem_ts_EuVehicleCategoryN_tags_1) + /sizeof(asn_DEF_mapem_ts_EuVehicleCategoryN_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_EuVehicleCategoryN_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_EuVehicleCategoryN_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_EuVehicleCategoryN_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EuVehicleCategoryO.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EuVehicleCategoryO.c new file mode 100644 index 000000000..3de48ab31 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_ts_EuVehicleCategoryO_value2enum_1[] = { + { 0, 2, "o1" }, + { 1, 2, "o2" }, + { 2, 2, "o3" }, + { 3, 2, "o4" } +}; +static const unsigned int asn_MAP_mapem_ts_EuVehicleCategoryO_enum2value_1[] = { + 0, /* o1(0) */ + 1, /* o2(1) */ + 2, /* o3(2) */ + 3 /* o4(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_mapem_ts_EuVehicleCategoryO_specs_1 = { + asn_MAP_mapem_ts_EuVehicleCategoryO_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_EuVehicleCategoryO_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_EuVehicleCategoryO = { + "EuVehicleCategoryO", + "EuVehicleCategoryO", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_EuVehicleCategoryO_tags_1, + sizeof(asn_DEF_mapem_ts_EuVehicleCategoryO_tags_1) + /sizeof(asn_DEF_mapem_ts_EuVehicleCategoryO_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_EuVehicleCategoryO_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_EuVehicleCategoryO_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_EuVehicleCategoryO_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EventHistory.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EventHistory.c new file mode 100644 index 000000000..9e77f5de8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_EventHistory.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_EventHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_EventHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_EventHistory_specs_1 = { + sizeof(struct mapem_ts_EventHistory), + offsetof(struct mapem_ts_EventHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_EventHistory = { + "EventHistory", + "EventHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_EventHistory_tags_1, + sizeof(asn_DEF_mapem_ts_EventHistory_tags_1) + /sizeof(asn_DEF_mapem_ts_EventHistory_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_EventHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_EventHistory_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_EventHistory_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_EventHistory_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EventPoint.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_EventPoint.c new file mode 100644 index 000000000..05e390b77 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_EventPoint.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_EventPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_EventPoint, eventPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_EventPoint, eventDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_EventPoint, informationQuality), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_EventPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_EventPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_EventPoint_specs_1 = { + sizeof(struct mapem_ts_EventPoint), + offsetof(struct mapem_ts_EventPoint, _asn_ctx), + asn_MAP_mapem_ts_EventPoint_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_mapem_ts_EventPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_EventPoint = { + "EventPoint", + "EventPoint", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_EventPoint_tags_1, + sizeof(asn_DEF_mapem_ts_EventPoint_tags_1) + /sizeof(asn_DEF_mapem_ts_EventPoint_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_EventPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_EventPoint_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_EventPoint_1, + 3, /* Elements count */ + &asn_SPC_mapem_ts_EventPoint_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ExceptionalCondition.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ExceptionalCondition.c new file mode 100644 index 000000000..14dc12f4e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_ExceptionalCondition_specs_1 = { + asn_MAP_mapem_ts_ExceptionalCondition_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_ExceptionalCondition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ExceptionalCondition = { + "ExceptionalCondition", + "ExceptionalCondition", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_ExceptionalCondition_tags_1, + sizeof(asn_DEF_mapem_ts_ExceptionalCondition_tags_1) + /sizeof(asn_DEF_mapem_ts_ExceptionalCondition_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ExceptionalCondition_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ExceptionalCondition_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_ExceptionalCondition_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ExteriorLights.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ExteriorLights.c new file mode 100644 index 000000000..371c0bfd0 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ExteriorLights.h" + +int +mapem_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_mapem_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_mapem_ts_ExteriorLights_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ExteriorLights = { + "ExteriorLights", + "ExteriorLights", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_ExteriorLights_tags_1, + sizeof(asn_DEF_mapem_ts_ExteriorLights_tags_1) + /sizeof(asn_DEF_mapem_ts_ExteriorLights_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ExteriorLights_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ExteriorLights_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_ExteriorLights_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_FreightContainerData.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_FreightContainerData.c new file mode 100644 index 000000000..50b4dcb3e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_FreightContainerData.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_FreightContainerData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_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_mapem_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_mapem_ts_ownerCode_constraint_1 + }, + 0, 0, /* No default value */ + "ownerCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct mapem_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_mapem_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_mapem_ts_serialNumber_constraint_1 + }, + 0, 0, /* No default value */ + "serialNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct mapem_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_mapem_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_mapem_ts_checkDigit_constraint_1 + }, + 0, 0, /* No default value */ + "checkDigit" + }, + { ATF_NOFLAGS, 0, offsetof(struct mapem_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_mapem_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_mapem_ts_length_constraint_1 + }, + 0, 0, /* No default value */ + "length" + }, + { ATF_NOFLAGS, 0, offsetof(struct mapem_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_mapem_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_mapem_ts_height_constraint_1 + }, + 0, 0, /* No default value */ + "height" + }, + { ATF_NOFLAGS, 0, offsetof(struct mapem_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_mapem_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_mapem_ts_width_constraint_1 + }, + 0, 0, /* No default value */ + "width" + }, + { ATF_NOFLAGS, 0, offsetof(struct mapem_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_mapem_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_mapem_ts_containerTypeCode_constraint_1 + }, + 0, 0, /* No default value */ + "containerTypeCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct mapem_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_mapem_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_mapem_ts_maximumGrossMass_constraint_1 + }, + 0, 0, /* No default value */ + "maximumGrossMass" + }, + { ATF_NOFLAGS, 0, offsetof(struct mapem_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_mapem_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_mapem_ts_tareMass_constraint_1 + }, + 0, 0, /* No default value */ + "tareMass" + }, + { ATF_NOFLAGS, 0, offsetof(struct mapem_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_mapem_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_mapem_ts_fill_constraint_1 + }, + 0, 0, /* No default value */ + "fill" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_FreightContainerData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_FreightContainerData_specs_1 = { + sizeof(struct mapem_ts_FreightContainerData), + offsetof(struct mapem_ts_FreightContainerData, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_FreightContainerData = { + "FreightContainerData", + "FreightContainerData", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_FreightContainerData_tags_1, + sizeof(asn_DEF_mapem_ts_FreightContainerData_tags_1) + /sizeof(asn_DEF_mapem_ts_FreightContainerData_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_FreightContainerData_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_FreightContainerData_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_FreightContainerData_1, + 10, /* Elements count */ + &asn_SPC_mapem_ts_FreightContainerData_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_FuelType.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_FuelType.c new file mode 100644 index 000000000..8f3e4dd85 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_FuelType.h" + +int +mapem_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_mapem_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_mapem_ts_FuelType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_FuelType = { + "FuelType", + "FuelType", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_FuelType_tags_1, + sizeof(asn_DEF_mapem_ts_FuelType_tags_1) + /sizeof(asn_DEF_mapem_ts_FuelType_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_FuelType_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_FuelType_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_FuelType_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_FullPositionVector.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_FullPositionVector.c new file mode 100644 index 000000000..2f1c94e4a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_FullPositionVector.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_FullPositionVector_1[] = { + { ATF_POINTER, 1, offsetof(struct mapem_ts_FullPositionVector, utcTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_FullPositionVector, Long), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_FullPositionVector, lat), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_FullPositionVector, elevation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_FullPositionVector, heading), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_FullPositionVector, speed), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_FullPositionVector, posAccuracy), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_FullPositionVector, timeConfidence), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_FullPositionVector, posConfidence), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_FullPositionVector, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_FullPositionVector_oms_1[] = { 0, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_FullPositionVector_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_FullPositionVector_specs_1 = { + sizeof(struct mapem_ts_FullPositionVector), + offsetof(struct mapem_ts_FullPositionVector, _asn_ctx), + asn_MAP_mapem_ts_FullPositionVector_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_mapem_ts_FullPositionVector_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_FullPositionVector = { + "FullPositionVector", + "FullPositionVector", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_FullPositionVector_tags_1, + sizeof(asn_DEF_mapem_ts_FullPositionVector_tags_1) + /sizeof(asn_DEF_mapem_ts_FullPositionVector_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_FullPositionVector_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_FullPositionVector_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_FullPositionVector_1, + 10, /* Elements count */ + &asn_SPC_mapem_ts_FullPositionVector_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_GNSSstatus.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_GNSSstatus.c new file mode 100644 index 000000000..d8749e91e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_GNSSstatus.h" + +int +mapem_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_mapem_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_mapem_ts_GNSSstatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_GNSSstatus = { + "GNSSstatus", + "GNSSstatus", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_GNSSstatus_tags_1, + sizeof(asn_DEF_mapem_ts_GNSSstatus_tags_1) + /sizeof(asn_DEF_mapem_ts_GNSSstatus_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_GNSSstatus_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_GNSSstatus_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_GNSSstatus_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_GenericLane.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_GenericLane.c new file mode 100644 index 000000000..5b03981b6 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_GenericLane.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_ts_regional_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regional_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_regional_specs_11 = { + sizeof(struct mapem_ts_GenericLane__regional), + offsetof(struct mapem_ts_GenericLane__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mapem_ts_regional_11 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_regional_tags_11, + sizeof(asn_DEF_mapem_ts_regional_tags_11) + /sizeof(asn_DEF_mapem_ts_regional_tags_11[0]) - 1, /* 1 */ + asn_DEF_mapem_ts_regional_tags_11, /* Same as above */ + sizeof(asn_DEF_mapem_ts_regional_tags_11) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_regional_11, + 1, /* Single element */ + &asn_SPC_mapem_ts_regional_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_GenericLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_GenericLane, laneID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_GenericLane, name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_GenericLane, ingressApproach), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_GenericLane, egressApproach), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_GenericLane, laneAttributes), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_GenericLane, maneuvers), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_GenericLane, nodeList), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_GenericLane, connectsTo), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_GenericLane, overlays), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_GenericLane, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_mapem_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_mapem_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_mapem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_mapem_ts_GenericLane_oms_1[] = { 1, 2, 3, 5, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_GenericLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_GenericLane_specs_1 = { + sizeof(struct mapem_ts_GenericLane), + offsetof(struct mapem_ts_GenericLane, _asn_ctx), + asn_MAP_mapem_ts_GenericLane_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_mapem_ts_GenericLane_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_GenericLane = { + "GenericLane", + "GenericLane", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_GenericLane_tags_1, + sizeof(asn_DEF_mapem_ts_GenericLane_tags_1) + /sizeof(asn_DEF_mapem_ts_GenericLane_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_GenericLane_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_GenericLane_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_GenericLane_1, + 10, /* Elements count */ + &asn_SPC_mapem_ts_GenericLane_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_GeoGraphicalLimit.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_GeoGraphicalLimit.c new file mode 100644 index 000000000..dbc07d12b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_GeoGraphicalLimit.h" + +int +mapem_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_mapem_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_mapem_ts_GeoGraphicalLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_GeoGraphicalLimit = { + "GeoGraphicalLimit", + "GeoGraphicalLimit", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_GeoGraphicalLimit_tags_1, + sizeof(asn_DEF_mapem_ts_GeoGraphicalLimit_tags_1) + /sizeof(asn_DEF_mapem_ts_GeoGraphicalLimit_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_GeoGraphicalLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_GeoGraphicalLimit_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_GeoGraphicalLimit_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_HardShoulderStatus.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_HardShoulderStatus.c new file mode 100644 index 000000000..84c6db4de --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_ts_HardShoulderStatus_value2enum_1[] = { + { 0, 20, "availableForStopping" }, + { 1, 6, "closed" }, + { 2, 19, "availableForDriving" } +}; +static const unsigned int asn_MAP_mapem_ts_HardShoulderStatus_enum2value_1[] = { + 2, /* availableForDriving(2) */ + 0, /* availableForStopping(0) */ + 1 /* closed(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_mapem_ts_HardShoulderStatus_specs_1 = { + asn_MAP_mapem_ts_HardShoulderStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_HardShoulderStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_HardShoulderStatus = { + "HardShoulderStatus", + "HardShoulderStatus", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_HardShoulderStatus_tags_1, + sizeof(asn_DEF_mapem_ts_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_mapem_ts_HardShoulderStatus_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_HardShoulderStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_HardShoulderStatus_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.c new file mode 100644 index 000000000..da329b7e3 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.h" + +int +mapem_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_mapem_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_mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode = { + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_HazardousLocation-DangerousCurveSubCauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_HazardousLocation-DangerousCurveSubCauseCode.c new file mode 100644 index 000000000..6e4097c08 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_HazardousLocation-DangerousCurveSubCauseCode.h" + +int +mapem_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_mapem_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_mapem_ts_HazardousLocation_DangerousCurveSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_HazardousLocation_DangerousCurveSubCauseCode = { + "HazardousLocation-DangerousCurveSubCauseCode", + "HazardousLocation-DangerousCurveSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_HazardousLocation_DangerousCurveSubCauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_HazardousLocation_DangerousCurveSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_HazardousLocation_DangerousCurveSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_HazardousLocation_DangerousCurveSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.c new file mode 100644 index 000000000..31db4f778 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.h" + +int +mapem_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_mapem_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_mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode = { + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_HazardousLocation-SurfaceConditionSubCauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_HazardousLocation-SurfaceConditionSubCauseCode.c new file mode 100644 index 000000000..a495074a0 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_HazardousLocation-SurfaceConditionSubCauseCode.h" + +int +mapem_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_mapem_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_mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode = { + "HazardousLocation-SurfaceConditionSubCauseCode", + "HazardousLocation-SurfaceConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_HazardousLocation_SurfaceConditionSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Heading.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Heading.c new file mode 100644 index 000000000..baff05fbf --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Heading.h" + +static asn_TYPE_member_t asn_MBR_mapem_ts_Heading_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Heading, headingValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_Heading, headingConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_Heading_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_ts_Heading_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* headingValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* headingConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Heading_specs_1 = { + sizeof(struct mapem_ts_Heading), + offsetof(struct mapem_ts_Heading, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Heading = { + "Heading", + "Heading", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Heading_tags_1, + sizeof(asn_DEF_mapem_ts_Heading_tags_1) + /sizeof(asn_DEF_mapem_ts_Heading_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Heading_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Heading_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_Heading_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Heading_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_HeadingConfidence.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_HeadingConfidence.c new file mode 100644 index 000000000..60edf431a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_HeadingConfidence.h" + +int +mapem_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_mapem_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_mapem_ts_HeadingConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_HeadingConfidence = { + "HeadingConfidence", + "HeadingConfidence", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_HeadingConfidence_tags_1, + sizeof(asn_DEF_mapem_ts_HeadingConfidence_tags_1) + /sizeof(asn_DEF_mapem_ts_HeadingConfidence_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_HeadingConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_HeadingConfidence_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_HeadingConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_HeadingConfidenceDSRC.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_HeadingConfidenceDSRC.c new file mode 100644 index 000000000..1a3646fa4 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_HeadingConfidenceDSRC_specs_1 = { + asn_MAP_mapem_ts_HeadingConfidenceDSRC_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_HeadingConfidenceDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_HeadingConfidenceDSRC = { + "HeadingConfidenceDSRC", + "HeadingConfidenceDSRC", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_HeadingConfidenceDSRC_tags_1, + sizeof(asn_DEF_mapem_ts_HeadingConfidenceDSRC_tags_1) + /sizeof(asn_DEF_mapem_ts_HeadingConfidenceDSRC_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_HeadingConfidenceDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_HeadingConfidenceDSRC_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_HeadingConfidenceDSRC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_HeadingDSRC.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_HeadingDSRC.c new file mode 100644 index 000000000..8d2f6ad69 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_HeadingDSRC.h" + +int +mapem_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_mapem_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_mapem_ts_HeadingDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_HeadingDSRC = { + "HeadingDSRC", + "HeadingDSRC", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_HeadingDSRC_tags_1, + sizeof(asn_DEF_mapem_ts_HeadingDSRC_tags_1) + /sizeof(asn_DEF_mapem_ts_HeadingDSRC_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_HeadingDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_HeadingDSRC_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_HeadingDSRC_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_HeadingValue.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_HeadingValue.c new file mode 100644 index 000000000..5b3586d41 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_HeadingValue.h" + +int +mapem_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_mapem_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_mapem_ts_HeadingValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_HeadingValue = { + "HeadingValue", + "HeadingValue", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_HeadingValue_tags_1, + sizeof(asn_DEF_mapem_ts_HeadingValue_tags_1) + /sizeof(asn_DEF_mapem_ts_HeadingValue_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_HeadingValue_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_HeadingValue_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_HeadingValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_HeightLonCarr.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_HeightLonCarr.c new file mode 100644 index 000000000..16f468f16 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_HeightLonCarr.h" + +int +mapem_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_mapem_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_mapem_ts_HeightLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_HeightLonCarr = { + "HeightLonCarr", + "HeightLonCarr", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_HeightLonCarr_tags_1, + sizeof(asn_DEF_mapem_ts_HeightLonCarr_tags_1) + /sizeof(asn_DEF_mapem_ts_HeightLonCarr_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_HeightLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_HeightLonCarr_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_HeightLonCarr_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_HumanPresenceOnTheRoadSubCauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_HumanPresenceOnTheRoadSubCauseCode.c new file mode 100644 index 000000000..c54ec87cf --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_HumanPresenceOnTheRoadSubCauseCode.h" + +int +mapem_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_mapem_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_mapem_ts_HumanPresenceOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_HumanPresenceOnTheRoadSubCauseCode = { + "HumanPresenceOnTheRoadSubCauseCode", + "HumanPresenceOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_HumanPresenceOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_HumanPresenceOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_HumanPresenceOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_HumanPresenceOnTheRoadSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_HumanProblemSubCauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_HumanProblemSubCauseCode.c new file mode 100644 index 000000000..5a488c768 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_HumanProblemSubCauseCode.h" + +int +mapem_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_mapem_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_mapem_ts_HumanProblemSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_HumanProblemSubCauseCode = { + "HumanProblemSubCauseCode", + "HumanProblemSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_HumanProblemSubCauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_HumanProblemSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_HumanProblemSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_HumanProblemSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_InformationQuality.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_InformationQuality.c new file mode 100644 index 000000000..ad32ecaef --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_InformationQuality.h" + +int +mapem_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_mapem_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_mapem_ts_InformationQuality_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_InformationQuality = { + "InformationQuality", + "InformationQuality", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_InformationQuality_tags_1, + sizeof(asn_DEF_mapem_ts_InformationQuality_tags_1) + /sizeof(asn_DEF_mapem_ts_InformationQuality_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_InformationQuality_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_InformationQuality_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_InformationQuality_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_IntersectionAccessPoint.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_IntersectionAccessPoint.c new file mode 100644 index 000000000..d40b58184 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionAccessPoint.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_IntersectionAccessPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_IntersectionAccessPoint, choice.lane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_IntersectionAccessPoint, choice.approach), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_IntersectionAccessPoint, choice.connection), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_IntersectionAccessPoint_specs_1 = { + sizeof(struct mapem_ts_IntersectionAccessPoint), + offsetof(struct mapem_ts_IntersectionAccessPoint, _asn_ctx), + offsetof(struct mapem_ts_IntersectionAccessPoint, present), + sizeof(((struct mapem_ts_IntersectionAccessPoint *)0)->present), + asn_MAP_mapem_ts_IntersectionAccessPoint_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_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_mapem_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_mapem_ts_IntersectionAccessPoint_1, + 3, /* Elements count */ + &asn_SPC_mapem_ts_IntersectionAccessPoint_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_IntersectionGeometry.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_IntersectionGeometry.c new file mode 100644 index 000000000..063f01476 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionGeometry.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_ts_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_regional_specs_10 = { + sizeof(struct mapem_ts_IntersectionGeometry__regional), + offsetof(struct mapem_ts_IntersectionGeometry__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mapem_ts_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_regional_tags_10, + sizeof(asn_DEF_mapem_ts_regional_tags_10) + /sizeof(asn_DEF_mapem_ts_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_mapem_ts_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_mapem_ts_regional_tags_10) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_regional_10, + 1, /* Single element */ + &asn_SPC_mapem_ts_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_IntersectionGeometry_1[] = { + { ATF_POINTER, 1, offsetof(struct mapem_ts_IntersectionGeometry, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_IntersectionGeometry, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_IntersectionGeometry, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_IntersectionGeometry, refPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_IntersectionGeometry, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_IntersectionGeometry, speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_IntersectionGeometry, laneSet), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_IntersectionGeometry, preemptPriorityData), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_IntersectionGeometry, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_mapem_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_mapem_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_mapem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_mapem_ts_IntersectionGeometry_oms_1[] = { 0, 4, 5, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_IntersectionGeometry_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_IntersectionGeometry_specs_1 = { + sizeof(struct mapem_ts_IntersectionGeometry), + offsetof(struct mapem_ts_IntersectionGeometry, _asn_ctx), + asn_MAP_mapem_ts_IntersectionGeometry_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_mapem_ts_IntersectionGeometry_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_IntersectionGeometry = { + "IntersectionGeometry", + "IntersectionGeometry", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_IntersectionGeometry_tags_1, + sizeof(asn_DEF_mapem_ts_IntersectionGeometry_tags_1) + /sizeof(asn_DEF_mapem_ts_IntersectionGeometry_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_IntersectionGeometry_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_IntersectionGeometry_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_IntersectionGeometry_1, + 9, /* Elements count */ + &asn_SPC_mapem_ts_IntersectionGeometry_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_IntersectionGeometryList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_IntersectionGeometryList.c new file mode 100644 index 000000000..e6d269d61 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionGeometryList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_IntersectionGeometryList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_IntersectionGeometryList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_IntersectionGeometryList_specs_1 = { + sizeof(struct mapem_ts_IntersectionGeometryList), + offsetof(struct mapem_ts_IntersectionGeometryList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_IntersectionGeometryList = { + "IntersectionGeometryList", + "IntersectionGeometryList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_IntersectionGeometryList_tags_1, + sizeof(asn_DEF_mapem_ts_IntersectionGeometryList_tags_1) + /sizeof(asn_DEF_mapem_ts_IntersectionGeometryList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_IntersectionGeometryList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_IntersectionGeometryList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_IntersectionGeometryList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_IntersectionGeometryList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_IntersectionID.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_IntersectionID.c new file mode 100644 index 000000000..ae1d4c9b7 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionID.h" + +int +mapem_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_mapem_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_mapem_ts_IntersectionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_IntersectionID = { + "IntersectionID", + "IntersectionID", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_IntersectionID_tags_1, + sizeof(asn_DEF_mapem_ts_IntersectionID_tags_1) + /sizeof(asn_DEF_mapem_ts_IntersectionID_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_IntersectionID_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_IntersectionID_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_IntersectionID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_IntersectionReferenceID.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_IntersectionReferenceID.c new file mode 100644 index 000000000..d6a10b23d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionReferenceID.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_IntersectionReferenceID_1[] = { + { ATF_POINTER, 1, offsetof(struct mapem_ts_IntersectionReferenceID, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_IntersectionReferenceID, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_IntersectionReferenceID_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_IntersectionReferenceID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_IntersectionReferenceID_specs_1 = { + sizeof(struct mapem_ts_IntersectionReferenceID), + offsetof(struct mapem_ts_IntersectionReferenceID, _asn_ctx), + asn_MAP_mapem_ts_IntersectionReferenceID_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_mapem_ts_IntersectionReferenceID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_IntersectionReferenceID = { + "IntersectionReferenceID", + "IntersectionReferenceID", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_IntersectionReferenceID_tags_1, + sizeof(asn_DEF_mapem_ts_IntersectionReferenceID_tags_1) + /sizeof(asn_DEF_mapem_ts_IntersectionReferenceID_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_IntersectionReferenceID_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_IntersectionReferenceID_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_IntersectionReferenceID_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_IntersectionReferenceID_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_IntersectionState-addGrpC.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_IntersectionState-addGrpC.c new file mode 100644 index 000000000..dc59befed --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionState-addGrpC.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_IntersectionState_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct mapem_ts_IntersectionState_addGrpC, activePrioritizations), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_IntersectionState_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_IntersectionState_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_ts_IntersectionState_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* activePrioritizations */ +}; +asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_IntersectionState_addGrpC_specs_1 = { + sizeof(struct mapem_ts_IntersectionState_addGrpC), + offsetof(struct mapem_ts_IntersectionState_addGrpC, _asn_ctx), + asn_MAP_mapem_ts_IntersectionState_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_mapem_ts_IntersectionState_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_IntersectionState_addGrpC = { + "IntersectionState-addGrpC", + "IntersectionState-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_IntersectionState_addGrpC_tags_1, + sizeof(asn_DEF_mapem_ts_IntersectionState_addGrpC_tags_1) + /sizeof(asn_DEF_mapem_ts_IntersectionState_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_IntersectionState_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_IntersectionState_addGrpC_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_IntersectionState_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_mapem_ts_IntersectionState_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_IntersectionState.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_IntersectionState.c new file mode 100644 index 000000000..23edd3577 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionState.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_ts_regional_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regional_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_regional_specs_11 = { + sizeof(struct mapem_ts_IntersectionState__regional), + offsetof(struct mapem_ts_IntersectionState__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mapem_ts_regional_11 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_regional_tags_11, + sizeof(asn_DEF_mapem_ts_regional_tags_11) + /sizeof(asn_DEF_mapem_ts_regional_tags_11[0]) - 1, /* 1 */ + asn_DEF_mapem_ts_regional_tags_11, /* Same as above */ + sizeof(asn_DEF_mapem_ts_regional_tags_11) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_regional_11, + 1, /* Single element */ + &asn_SPC_mapem_ts_regional_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_IntersectionState_1[] = { + { ATF_POINTER, 1, offsetof(struct mapem_ts_IntersectionState, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_IntersectionState, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_IntersectionState, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_IntersectionState, status), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_IntersectionState, moy), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_IntersectionState, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_IntersectionState, enabledLanes), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_IntersectionState, states), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_IntersectionState, maneuverAssistList), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_IntersectionState, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_mapem_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_mapem_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_mapem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_mapem_ts_IntersectionState_oms_1[] = { 0, 4, 5, 6, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_IntersectionState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_IntersectionState_specs_1 = { + sizeof(struct mapem_ts_IntersectionState), + offsetof(struct mapem_ts_IntersectionState, _asn_ctx), + asn_MAP_mapem_ts_IntersectionState_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_mapem_ts_IntersectionState_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_IntersectionState = { + "IntersectionState", + "IntersectionState", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_IntersectionState_tags_1, + sizeof(asn_DEF_mapem_ts_IntersectionState_tags_1) + /sizeof(asn_DEF_mapem_ts_IntersectionState_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_IntersectionState_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_IntersectionState_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_IntersectionState_1, + 10, /* Elements count */ + &asn_SPC_mapem_ts_IntersectionState_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_IntersectionStateList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_IntersectionStateList.c new file mode 100644 index 000000000..86ae588b8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionStateList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_IntersectionStateList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_IntersectionStateList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_IntersectionStateList_specs_1 = { + sizeof(struct mapem_ts_IntersectionStateList), + offsetof(struct mapem_ts_IntersectionStateList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_IntersectionStateList = { + "IntersectionStateList", + "IntersectionStateList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_IntersectionStateList_tags_1, + sizeof(asn_DEF_mapem_ts_IntersectionStateList_tags_1) + /sizeof(asn_DEF_mapem_ts_IntersectionStateList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_IntersectionStateList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_IntersectionStateList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_IntersectionStateList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_IntersectionStateList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_IntersectionStatusObject.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_IntersectionStatusObject.c new file mode 100644 index 000000000..6c9d084e6 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_IntersectionStatusObject.h" + +int +mapem_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_mapem_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_mapem_ts_IntersectionStatusObject_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_IntersectionStatusObject = { + "IntersectionStatusObject", + "IntersectionStatusObject", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_IntersectionStatusObject_tags_1, + sizeof(asn_DEF_mapem_ts_IntersectionStatusObject_tags_1) + /sizeof(asn_DEF_mapem_ts_IntersectionStatusObject_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_IntersectionStatusObject_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_IntersectionStatusObject_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_IntersectionStatusObject_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Iso3833VehicleType.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Iso3833VehicleType.c new file mode 100644 index 000000000..431cadb4d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Iso3833VehicleType.h" + +int +mapem_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_mapem_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_mapem_ts_Iso3833VehicleType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_Iso3833VehicleType = { + "Iso3833VehicleType", + "Iso3833VehicleType", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_Iso3833VehicleType_tags_1, + sizeof(asn_DEF_mapem_ts_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_mapem_ts_Iso3833VehicleType_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Iso3833VehicleType_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_Iso3833VehicleType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_IssuerIdentifier.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_IssuerIdentifier.c new file mode 100644 index 000000000..219a6e449 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_IssuerIdentifier.h" + +int +mapem_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_mapem_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_mapem_ts_IssuerIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_IssuerIdentifier = { + "IssuerIdentifier", + "IssuerIdentifier", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_IssuerIdentifier_tags_1, + sizeof(asn_DEF_mapem_ts_IssuerIdentifier_tags_1) + /sizeof(asn_DEF_mapem_ts_IssuerIdentifier_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_IssuerIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_IssuerIdentifier_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_IssuerIdentifier_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ItineraryPath.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ItineraryPath.c new file mode 100644 index 000000000..e2f488492 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ItineraryPath.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_ItineraryPath_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_ItineraryPath_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_ItineraryPath_specs_1 = { + sizeof(struct mapem_ts_ItineraryPath), + offsetof(struct mapem_ts_ItineraryPath, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ItineraryPath = { + "ItineraryPath", + "ItineraryPath", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_ItineraryPath_tags_1, + sizeof(asn_DEF_mapem_ts_ItineraryPath_tags_1) + /sizeof(asn_DEF_mapem_ts_ItineraryPath_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ItineraryPath_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ItineraryPath_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_ItineraryPath_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_ItineraryPath_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ItsPduHeader.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ItsPduHeader.c new file mode 100644 index 000000000..55837bbf4 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ItsPduHeader.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_ItsPduHeader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_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_mapem_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_mapem_ts_protocolVersion_constraint_1 + }, + 0, 0, /* No default value */ + "protocolVersion" + }, + { ATF_NOFLAGS, 0, offsetof(struct mapem_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_mapem_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_mapem_ts_messageID_constraint_1 + }, + 0, 0, /* No default value */ + "messageID" + }, + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_ItsPduHeader, stationID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_ItsPduHeader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_ItsPduHeader_specs_1 = { + sizeof(struct mapem_ts_ItsPduHeader), + offsetof(struct mapem_ts_ItsPduHeader, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_ItsPduHeader = { + "ItsPduHeader", + "ItsPduHeader", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_ItsPduHeader_tags_1, + sizeof(asn_DEF_mapem_ts_ItsPduHeader_tags_1) + /sizeof(asn_DEF_mapem_ts_ItsPduHeader_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ItsPduHeader_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ItsPduHeader_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_ItsPduHeader_1, + 3, /* Elements count */ + &asn_SPC_mapem_ts_ItsPduHeader_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ItsStationPosition.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ItsStationPosition.c new file mode 100644 index 000000000..6034944d3 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ItsStationPosition.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_ItsStationPosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_ItsStationPosition, stationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ItsStationPosition, laneID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ItsStationPosition, nodeXY), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ItsStationPosition, timeReference), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_ItsStationPosition_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_ItsStationPosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_ItsStationPosition_specs_1 = { + sizeof(struct mapem_ts_ItsStationPosition), + offsetof(struct mapem_ts_ItsStationPosition, _asn_ctx), + asn_MAP_mapem_ts_ItsStationPosition_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_mapem_ts_ItsStationPosition_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ItsStationPosition = { + "ItsStationPosition", + "ItsStationPosition", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_ItsStationPosition_tags_1, + sizeof(asn_DEF_mapem_ts_ItsStationPosition_tags_1) + /sizeof(asn_DEF_mapem_ts_ItsStationPosition_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ItsStationPosition_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ItsStationPosition_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_ItsStationPosition_1, + 4, /* Elements count */ + &asn_SPC_mapem_ts_ItsStationPosition_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ItsStationPositionList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ItsStationPositionList.c new file mode 100644 index 000000000..b9a764aeb --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ItsStationPositionList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_ItsStationPositionList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_ItsStationPositionList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_ItsStationPositionList_specs_1 = { + sizeof(struct mapem_ts_ItsStationPositionList), + offsetof(struct mapem_ts_ItsStationPositionList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ItsStationPositionList = { + "ItsStationPositionList", + "ItsStationPositionList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_ItsStationPositionList_tags_1, + sizeof(asn_DEF_mapem_ts_ItsStationPositionList_tags_1) + /sizeof(asn_DEF_mapem_ts_ItsStationPositionList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ItsStationPositionList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ItsStationPositionList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_ItsStationPositionList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_ItsStationPositionList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneAttributes-Barrier.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneAttributes-Barrier.c new file mode 100644 index 000000000..6ddfd7037 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Barrier.h" + +int +mapem_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_mapem_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_mapem_ts_LaneAttributes_Barrier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneAttributes_Barrier = { + "LaneAttributes-Barrier", + "LaneAttributes-Barrier", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_LaneAttributes_Barrier_tags_1, + sizeof(asn_DEF_mapem_ts_LaneAttributes_Barrier_tags_1) + /sizeof(asn_DEF_mapem_ts_LaneAttributes_Barrier_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LaneAttributes_Barrier_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LaneAttributes_Barrier_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_LaneAttributes_Barrier_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneAttributes-Bike.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneAttributes-Bike.c new file mode 100644 index 000000000..1e3767c7a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Bike.h" + +int +mapem_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_mapem_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_mapem_ts_LaneAttributes_Bike_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneAttributes_Bike = { + "LaneAttributes-Bike", + "LaneAttributes-Bike", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_LaneAttributes_Bike_tags_1, + sizeof(asn_DEF_mapem_ts_LaneAttributes_Bike_tags_1) + /sizeof(asn_DEF_mapem_ts_LaneAttributes_Bike_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LaneAttributes_Bike_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LaneAttributes_Bike_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_LaneAttributes_Bike_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneAttributes-Crosswalk.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneAttributes-Crosswalk.c new file mode 100644 index 000000000..4fdab4145 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Crosswalk.h" + +int +mapem_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_mapem_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_mapem_ts_LaneAttributes_Crosswalk_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneAttributes_Crosswalk = { + "LaneAttributes-Crosswalk", + "LaneAttributes-Crosswalk", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_LaneAttributes_Crosswalk_tags_1, + sizeof(asn_DEF_mapem_ts_LaneAttributes_Crosswalk_tags_1) + /sizeof(asn_DEF_mapem_ts_LaneAttributes_Crosswalk_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LaneAttributes_Crosswalk_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LaneAttributes_Crosswalk_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_LaneAttributes_Crosswalk_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneAttributes-Parking.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneAttributes-Parking.c new file mode 100644 index 000000000..80f7902d8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Parking.h" + +int +mapem_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_mapem_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_mapem_ts_LaneAttributes_Parking_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneAttributes_Parking = { + "LaneAttributes-Parking", + "LaneAttributes-Parking", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_LaneAttributes_Parking_tags_1, + sizeof(asn_DEF_mapem_ts_LaneAttributes_Parking_tags_1) + /sizeof(asn_DEF_mapem_ts_LaneAttributes_Parking_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LaneAttributes_Parking_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LaneAttributes_Parking_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_LaneAttributes_Parking_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneAttributes-Sidewalk.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneAttributes-Sidewalk.c new file mode 100644 index 000000000..9b98b6b14 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Sidewalk.h" + +int +mapem_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_mapem_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_mapem_ts_LaneAttributes_Sidewalk_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneAttributes_Sidewalk = { + "LaneAttributes-Sidewalk", + "LaneAttributes-Sidewalk", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_LaneAttributes_Sidewalk_tags_1, + sizeof(asn_DEF_mapem_ts_LaneAttributes_Sidewalk_tags_1) + /sizeof(asn_DEF_mapem_ts_LaneAttributes_Sidewalk_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LaneAttributes_Sidewalk_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LaneAttributes_Sidewalk_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_LaneAttributes_Sidewalk_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneAttributes-Striping.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneAttributes-Striping.c new file mode 100644 index 000000000..cfb237370 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Striping.h" + +int +mapem_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_mapem_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_mapem_ts_LaneAttributes_Striping_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneAttributes_Striping = { + "LaneAttributes-Striping", + "LaneAttributes-Striping", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_LaneAttributes_Striping_tags_1, + sizeof(asn_DEF_mapem_ts_LaneAttributes_Striping_tags_1) + /sizeof(asn_DEF_mapem_ts_LaneAttributes_Striping_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LaneAttributes_Striping_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LaneAttributes_Striping_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_LaneAttributes_Striping_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneAttributes-TrackedVehicle.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneAttributes-TrackedVehicle.c new file mode 100644 index 000000000..a0c9297f5 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-TrackedVehicle.h" + +int +mapem_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_mapem_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_mapem_ts_LaneAttributes_TrackedVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneAttributes_TrackedVehicle = { + "LaneAttributes-TrackedVehicle", + "LaneAttributes-TrackedVehicle", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_LaneAttributes_TrackedVehicle_tags_1, + sizeof(asn_DEF_mapem_ts_LaneAttributes_TrackedVehicle_tags_1) + /sizeof(asn_DEF_mapem_ts_LaneAttributes_TrackedVehicle_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LaneAttributes_TrackedVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LaneAttributes_TrackedVehicle_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_LaneAttributes_TrackedVehicle_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneAttributes-Vehicle.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneAttributes-Vehicle.c new file mode 100644 index 000000000..ea17f3483 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-Vehicle.h" + +int +mapem_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_mapem_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_mapem_ts_LaneAttributes_Vehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneAttributes_Vehicle = { + "LaneAttributes-Vehicle", + "LaneAttributes-Vehicle", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_LaneAttributes_Vehicle_tags_1, + sizeof(asn_DEF_mapem_ts_LaneAttributes_Vehicle_tags_1) + /sizeof(asn_DEF_mapem_ts_LaneAttributes_Vehicle_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LaneAttributes_Vehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LaneAttributes_Vehicle_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_LaneAttributes_Vehicle_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneAttributes-addGrpC.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneAttributes-addGrpC.c new file mode 100644 index 000000000..49cb58cd6 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes-addGrpC.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_LaneAttributes_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct mapem_ts_LaneAttributes_addGrpC, maxVehicleHeight), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_LaneAttributes_addGrpC, maxVehicleWeight), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_LaneAttributes_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_LaneAttributes_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_LaneAttributes_addGrpC_specs_1 = { + sizeof(struct mapem_ts_LaneAttributes_addGrpC), + offsetof(struct mapem_ts_LaneAttributes_addGrpC, _asn_ctx), + asn_MAP_mapem_ts_LaneAttributes_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_mapem_ts_LaneAttributes_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneAttributes_addGrpC = { + "LaneAttributes-addGrpC", + "LaneAttributes-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_LaneAttributes_addGrpC_tags_1, + sizeof(asn_DEF_mapem_ts_LaneAttributes_addGrpC_tags_1) + /sizeof(asn_DEF_mapem_ts_LaneAttributes_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LaneAttributes_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LaneAttributes_addGrpC_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_LaneAttributes_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_LaneAttributes_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneAttributes.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneAttributes.c new file mode 100644 index 000000000..d50b92608 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneAttributes.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_LaneAttributes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_LaneAttributes, directionalUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_LaneAttributes, sharedWith), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_LaneAttributes, laneType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_LaneAttributes, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_LaneAttributes_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_LaneAttributes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_LaneAttributes_specs_1 = { + sizeof(struct mapem_ts_LaneAttributes), + offsetof(struct mapem_ts_LaneAttributes, _asn_ctx), + asn_MAP_mapem_ts_LaneAttributes_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_mapem_ts_LaneAttributes_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneAttributes = { + "LaneAttributes", + "LaneAttributes", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_LaneAttributes_tags_1, + sizeof(asn_DEF_mapem_ts_LaneAttributes_tags_1) + /sizeof(asn_DEF_mapem_ts_LaneAttributes_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LaneAttributes_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LaneAttributes_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_LaneAttributes_1, + 4, /* Elements count */ + &asn_SPC_mapem_ts_LaneAttributes_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneConnectionID.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneConnectionID.c new file mode 100644 index 000000000..5551e5e65 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneConnectionID.h" + +int +mapem_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_mapem_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_mapem_ts_LaneConnectionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneConnectionID = { + "LaneConnectionID", + "LaneConnectionID", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_LaneConnectionID_tags_1, + sizeof(asn_DEF_mapem_ts_LaneConnectionID_tags_1) + /sizeof(asn_DEF_mapem_ts_LaneConnectionID_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LaneConnectionID_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LaneConnectionID_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_LaneConnectionID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneDataAttribute.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneDataAttribute.c new file mode 100644 index 000000000..d69fd7191 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneDataAttribute.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_regional_specs_8 = { + sizeof(struct mapem_ts_LaneDataAttribute__regional), + offsetof(struct mapem_ts_LaneDataAttribute__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mapem_ts_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_regional_tags_8, + sizeof(asn_DEF_mapem_ts_regional_tags_8) + /sizeof(asn_DEF_mapem_ts_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_mapem_ts_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_mapem_ts_regional_tags_8) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_regional_8, + 1, /* Single element */ + &asn_SPC_mapem_ts_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_LaneDataAttribute_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_LaneDataAttribute, choice.pathEndPointAngle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_LaneDataAttribute, choice.laneCrownPointCenter), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_LaneDataAttribute, choice.laneCrownPointLeft), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_LaneDataAttribute, choice.laneCrownPointRight), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_LaneDataAttribute, choice.laneAngle), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_LaneDataAttribute, choice.speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_LaneDataAttribute, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_mapem_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_mapem_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_mapem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_LaneDataAttribute_specs_1 = { + sizeof(struct mapem_ts_LaneDataAttribute), + offsetof(struct mapem_ts_LaneDataAttribute, _asn_ctx), + offsetof(struct mapem_ts_LaneDataAttribute, present), + sizeof(((struct mapem_ts_LaneDataAttribute *)0)->present), + asn_MAP_mapem_ts_LaneDataAttribute_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, + 7 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_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_mapem_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_mapem_ts_LaneDataAttribute_1, + 7, /* Elements count */ + &asn_SPC_mapem_ts_LaneDataAttribute_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneDataAttributeList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneDataAttributeList.c new file mode 100644 index 000000000..7f7528453 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneDataAttributeList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_LaneDataAttributeList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_mapem_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_mapem_ts_LaneDataAttributeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_LaneDataAttributeList_specs_1 = { + sizeof(struct mapem_ts_LaneDataAttributeList), + offsetof(struct mapem_ts_LaneDataAttributeList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneDataAttributeList = { + "LaneDataAttributeList", + "LaneDataAttributeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_LaneDataAttributeList_tags_1, + sizeof(asn_DEF_mapem_ts_LaneDataAttributeList_tags_1) + /sizeof(asn_DEF_mapem_ts_LaneDataAttributeList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LaneDataAttributeList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LaneDataAttributeList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_LaneDataAttributeList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_LaneDataAttributeList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneDirection.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneDirection.c new file mode 100644 index 000000000..1f4041090 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneDirection.h" + +int +mapem_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_mapem_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_mapem_ts_LaneDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneDirection = { + "LaneDirection", + "LaneDirection", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_LaneDirection_tags_1, + sizeof(asn_DEF_mapem_ts_LaneDirection_tags_1) + /sizeof(asn_DEF_mapem_ts_LaneDirection_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LaneDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LaneDirection_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_LaneDirection_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneID.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneID.c new file mode 100644 index 000000000..3420eccae --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneID.h" + +int +mapem_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_mapem_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_mapem_ts_LaneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneID = { + "LaneID", + "LaneID", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_LaneID_tags_1, + sizeof(asn_DEF_mapem_ts_LaneID_tags_1) + /sizeof(asn_DEF_mapem_ts_LaneID_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LaneID_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LaneID_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_LaneID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneList.c new file mode 100644 index 000000000..cc14835a9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_LaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_LaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_LaneList_specs_1 = { + sizeof(struct mapem_ts_LaneList), + offsetof(struct mapem_ts_LaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneList = { + "LaneList", + "LaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_LaneList_tags_1, + sizeof(asn_DEF_mapem_ts_LaneList_tags_1) + /sizeof(asn_DEF_mapem_ts_LaneList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LaneList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_LaneList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_LaneList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LanePosition.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LanePosition.c new file mode 100644 index 000000000..4d57b2d24 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LanePosition.h" + +int +mapem_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) +static asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_LanePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_LanePosition = { + "LanePosition", + "LanePosition", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_LanePosition_tags_1, + sizeof(asn_DEF_mapem_ts_LanePosition_tags_1) + /sizeof(asn_DEF_mapem_ts_LanePosition_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LanePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LanePosition_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_LanePosition_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneSharing.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneSharing.c new file mode 100644 index 000000000..d2732d0f6 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneSharing.h" + +int +mapem_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_mapem_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_mapem_ts_LaneSharing_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneSharing = { + "LaneSharing", + "LaneSharing", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_LaneSharing_tags_1, + sizeof(asn_DEF_mapem_ts_LaneSharing_tags_1) + /sizeof(asn_DEF_mapem_ts_LaneSharing_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LaneSharing_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LaneSharing_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_LaneSharing_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneTypeAttributes.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneTypeAttributes.c new file mode 100644 index 000000000..7e1261043 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneTypeAttributes.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_LaneTypeAttributes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_LaneTypeAttributes, choice.vehicle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_LaneTypeAttributes, choice.crosswalk), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_LaneTypeAttributes, choice.bikeLane), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_LaneTypeAttributes, choice.sidewalk), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_LaneTypeAttributes, choice.median), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_LaneTypeAttributes, choice.striping), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_LaneTypeAttributes, choice.trackedVehicle), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_LaneTypeAttributes, choice.parking), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_LaneTypeAttributes_specs_1 = { + sizeof(struct mapem_ts_LaneTypeAttributes), + offsetof(struct mapem_ts_LaneTypeAttributes, _asn_ctx), + offsetof(struct mapem_ts_LaneTypeAttributes, present), + sizeof(((struct mapem_ts_LaneTypeAttributes *)0)->present), + asn_MAP_mapem_ts_LaneTypeAttributes_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + 8 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_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_mapem_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_mapem_ts_LaneTypeAttributes_1, + 8, /* Elements count */ + &asn_SPC_mapem_ts_LaneTypeAttributes_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneWidth.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LaneWidth.c new file mode 100644 index 000000000..e5706154f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LaneWidth.h" + +int +mapem_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_mapem_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_mapem_ts_LaneWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_LaneWidth = { + "LaneWidth", + "LaneWidth", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_LaneWidth_tags_1, + sizeof(asn_DEF_mapem_ts_LaneWidth_tags_1) + /sizeof(asn_DEF_mapem_ts_LaneWidth_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LaneWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LaneWidth_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_LaneWidth_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LateralAcceleration.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LateralAcceleration.c new file mode 100644 index 000000000..17d51072f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LateralAcceleration.h" + +static asn_TYPE_member_t asn_MBR_mapem_ts_LateralAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_LateralAcceleration, lateralAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_LateralAcceleration, lateralAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_LateralAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_LateralAcceleration_specs_1 = { + sizeof(struct mapem_ts_LateralAcceleration), + offsetof(struct mapem_ts_LateralAcceleration, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_LateralAcceleration = { + "LateralAcceleration", + "LateralAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_LateralAcceleration_tags_1, + sizeof(asn_DEF_mapem_ts_LateralAcceleration_tags_1) + /sizeof(asn_DEF_mapem_ts_LateralAcceleration_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LateralAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LateralAcceleration_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_LateralAcceleration_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_LateralAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LateralAccelerationValue.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LateralAccelerationValue.c new file mode 100644 index 000000000..6f36fdd79 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LateralAccelerationValue.h" + +int +mapem_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_mapem_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_mapem_ts_LateralAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_LateralAccelerationValue = { + "LateralAccelerationValue", + "LateralAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_LateralAccelerationValue_tags_1, + sizeof(asn_DEF_mapem_ts_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_mapem_ts_LateralAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LateralAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_LateralAccelerationValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Latitude.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Latitude.c new file mode 100644 index 000000000..51fc27d97 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Latitude.h" + +int +mapem_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_mapem_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_mapem_ts_Latitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_Latitude = { + "Latitude", + "Latitude", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_Latitude_tags_1, + sizeof(asn_DEF_mapem_ts_Latitude_tags_1) + /sizeof(asn_DEF_mapem_ts_Latitude_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Latitude_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Latitude_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_Latitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LayerID.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LayerID.c new file mode 100644 index 000000000..64cd05198 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LayerID.h" + +int +mapem_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_mapem_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_mapem_ts_LayerID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_LayerID = { + "LayerID", + "LayerID", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_LayerID_tags_1, + sizeof(asn_DEF_mapem_ts_LayerID_tags_1) + /sizeof(asn_DEF_mapem_ts_LayerID_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LayerID_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LayerID_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_LayerID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LayerType.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LayerType.c new file mode 100644 index 000000000..bb35fe9b4 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_LayerType_specs_1 = { + asn_MAP_mapem_ts_LayerType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_LayerType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_LayerType = { + "LayerType", + "LayerType", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_LayerType_tags_1, + sizeof(asn_DEF_mapem_ts_LayerType_tags_1) + /sizeof(asn_DEF_mapem_ts_LayerType_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LayerType_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LayerType_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_LayerType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LicPlateNumber.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LicPlateNumber.c new file mode 100644 index 000000000..84964abfa --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_ts_LicPlateNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_LicPlateNumber = { + "LicPlateNumber", + "LicPlateNumber", + &asn_OP_OCTET_STRING, + asn_DEF_mapem_ts_LicPlateNumber_tags_1, + sizeof(asn_DEF_mapem_ts_LicPlateNumber_tags_1) + /sizeof(asn_DEF_mapem_ts_LicPlateNumber_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LicPlateNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LicPlateNumber_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_coding/src/mapem_ts_LightBarSirenInUse.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LightBarSirenInUse.c new file mode 100644 index 000000000..2f2b59fde --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LightBarSirenInUse.h" + +int +mapem_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_mapem_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_mapem_ts_LightBarSirenInUse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_LightBarSirenInUse = { + "LightBarSirenInUse", + "LightBarSirenInUse", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_LightBarSirenInUse_tags_1, + sizeof(asn_DEF_mapem_ts_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_mapem_ts_LightBarSirenInUse_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LightBarSirenInUse_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_LightBarSirenInUse_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Longitude.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Longitude.c new file mode 100644 index 000000000..d300f8736 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Longitude.h" + +int +mapem_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_mapem_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_mapem_ts_Longitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_Longitude = { + "Longitude", + "Longitude", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_Longitude_tags_1, + sizeof(asn_DEF_mapem_ts_Longitude_tags_1) + /sizeof(asn_DEF_mapem_ts_Longitude_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Longitude_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Longitude_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_Longitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LongitudinalAcceleration.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LongitudinalAcceleration.c new file mode 100644 index 000000000..4e560ab89 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LongitudinalAcceleration.h" + +static asn_TYPE_member_t asn_MBR_mapem_ts_LongitudinalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_LongitudinalAcceleration, longitudinalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_LongitudinalAcceleration, longitudinalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_LongitudinalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_LongitudinalAcceleration_specs_1 = { + sizeof(struct mapem_ts_LongitudinalAcceleration), + offsetof(struct mapem_ts_LongitudinalAcceleration, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_LongitudinalAcceleration = { + "LongitudinalAcceleration", + "LongitudinalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_LongitudinalAcceleration_tags_1, + sizeof(asn_DEF_mapem_ts_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_mapem_ts_LongitudinalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LongitudinalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_LongitudinalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_LongitudinalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LongitudinalAccelerationValue.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_LongitudinalAccelerationValue.c new file mode 100644 index 000000000..3faf33477 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_LongitudinalAccelerationValue.h" + +int +mapem_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_mapem_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_mapem_ts_LongitudinalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_LongitudinalAccelerationValue = { + "LongitudinalAccelerationValue", + "LongitudinalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_LongitudinalAccelerationValue_tags_1, + sizeof(asn_DEF_mapem_ts_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_mapem_ts_LongitudinalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_LongitudinalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_LongitudinalAccelerationValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MAPEM.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MAPEM.c new file mode 100644 index 000000000..92bad568a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MAPEM.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "MAPEM-PDU-Descriptions" + * found in "/input/MAPEM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_MAPEM.h" + +static asn_TYPE_member_t asn_MBR_mapem_ts_MAPEM_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_MAPEM, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_MAPEM, map), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_ts_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 */ + "map" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_MAPEM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_ts_MAPEM_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* map */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_MAPEM_specs_1 = { + sizeof(struct mapem_ts_MAPEM), + offsetof(struct mapem_ts_MAPEM, _asn_ctx), + asn_MAP_mapem_ts_MAPEM_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_mapem_ts_MAPEM = { + "MAPEM", + "MAPEM", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_MAPEM_tags_1, + sizeof(asn_DEF_mapem_ts_MAPEM_tags_1) + /sizeof(asn_DEF_mapem_ts_MAPEM_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_MAPEM_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_MAPEM_tags_1) + /sizeof(asn_DEF_mapem_ts_MAPEM_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_mapem_ts_MAPEM_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_MAPEM_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ManeuverAssistList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ManeuverAssistList.c new file mode 100644 index 000000000..a601d23d2 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ManeuverAssistList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_ManeuverAssistList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_ManeuverAssistList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_ManeuverAssistList_specs_1 = { + sizeof(struct mapem_ts_ManeuverAssistList), + offsetof(struct mapem_ts_ManeuverAssistList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ManeuverAssistList = { + "ManeuverAssistList", + "ManeuverAssistList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_ManeuverAssistList_tags_1, + sizeof(asn_DEF_mapem_ts_ManeuverAssistList_tags_1) + /sizeof(asn_DEF_mapem_ts_ManeuverAssistList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ManeuverAssistList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ManeuverAssistList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_ManeuverAssistList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_ManeuverAssistList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ManufacturerIdentifier.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ManufacturerIdentifier.c new file mode 100644 index 000000000..2653fd3ce --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ManufacturerIdentifier.h" + +int +mapem_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_mapem_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_mapem_ts_ManufacturerIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ManufacturerIdentifier = { + "ManufacturerIdentifier", + "ManufacturerIdentifier", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_ManufacturerIdentifier_tags_1, + sizeof(asn_DEF_mapem_ts_ManufacturerIdentifier_tags_1) + /sizeof(asn_DEF_mapem_ts_ManufacturerIdentifier_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ManufacturerIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ManufacturerIdentifier_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_ManufacturerIdentifier_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MapData-addGrpC.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MapData-addGrpC.c new file mode 100644 index 000000000..27e10289e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_MapData-addGrpC.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_MapData_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct mapem_ts_MapData_addGrpC, signalHeadLocations), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_MapData_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_MapData_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_ts_MapData_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* signalHeadLocations */ +}; +asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_MapData_addGrpC_specs_1 = { + sizeof(struct mapem_ts_MapData_addGrpC), + offsetof(struct mapem_ts_MapData_addGrpC, _asn_ctx), + asn_MAP_mapem_ts_MapData_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_mapem_ts_MapData_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_MapData_addGrpC = { + "MapData-addGrpC", + "MapData-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_MapData_addGrpC_tags_1, + sizeof(asn_DEF_mapem_ts_MapData_addGrpC_tags_1) + /sizeof(asn_DEF_mapem_ts_MapData_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_MapData_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_MapData_addGrpC_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_MapData_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_mapem_ts_MapData_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MapData.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MapData.c new file mode 100644 index 000000000..e6a015e86 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_MapData.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_ts_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_regional_specs_10 = { + sizeof(struct mapem_ts_MapData__regional), + offsetof(struct mapem_ts_MapData__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mapem_ts_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_regional_tags_10, + sizeof(asn_DEF_mapem_ts_regional_tags_10) + /sizeof(asn_DEF_mapem_ts_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_mapem_ts_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_mapem_ts_regional_tags_10) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_regional_10, + 1, /* Single element */ + &asn_SPC_mapem_ts_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_MapData_1[] = { + { ATF_POINTER, 1, offsetof(struct mapem_ts_MapData, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_MapData, msgIssueRevision), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_MapData, layerType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_MapData, layerID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_MapData, intersections), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_MapData, roadSegments), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_MapData, dataParameters), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_MapData, restrictionList), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_MapData, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_mapem_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_mapem_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_mapem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_mapem_ts_MapData_oms_1[] = { 0, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_MapData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_MapData_specs_1 = { + sizeof(struct mapem_ts_MapData), + offsetof(struct mapem_ts_MapData, _asn_ctx), + asn_MAP_mapem_ts_MapData_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_mapem_ts_MapData_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_MapData = { + "MapData", + "MapData", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_MapData_tags_1, + sizeof(asn_DEF_mapem_ts_MapData_tags_1) + /sizeof(asn_DEF_mapem_ts_MapData_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_MapData_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_MapData_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_MapData_1, + 9, /* Elements count */ + &asn_SPC_mapem_ts_MapData_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MergeDivergeNodeAngle.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MergeDivergeNodeAngle.c new file mode 100644 index 000000000..1e7da7183 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_MergeDivergeNodeAngle.h" + +int +mapem_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_mapem_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_mapem_ts_MergeDivergeNodeAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_MergeDivergeNodeAngle = { + "MergeDivergeNodeAngle", + "MergeDivergeNodeAngle", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_MergeDivergeNodeAngle_tags_1, + sizeof(asn_DEF_mapem_ts_MergeDivergeNodeAngle_tags_1) + /sizeof(asn_DEF_mapem_ts_MergeDivergeNodeAngle_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_MergeDivergeNodeAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_MergeDivergeNodeAngle_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_MergeDivergeNodeAngle_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MinuteOfTheYear.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MinuteOfTheYear.c new file mode 100644 index 000000000..8cc3a20c4 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_MinuteOfTheYear.h" + +int +mapem_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_mapem_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_mapem_ts_MinuteOfTheYear_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_MinuteOfTheYear = { + "MinuteOfTheYear", + "MinuteOfTheYear", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_MinuteOfTheYear_tags_1, + sizeof(asn_DEF_mapem_ts_MinuteOfTheYear_tags_1) + /sizeof(asn_DEF_mapem_ts_MinuteOfTheYear_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_MinuteOfTheYear_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_MinuteOfTheYear_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_MinuteOfTheYear_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MovementEvent-addGrpC.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MovementEvent-addGrpC.c new file mode 100644 index 000000000..fa0704449 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_MovementEvent-addGrpC.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_MovementEvent_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct mapem_ts_MovementEvent_addGrpC, stateChangeReason), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_MovementEvent_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_MovementEvent_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_ts_MovementEvent_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* stateChangeReason */ +}; +asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_MovementEvent_addGrpC_specs_1 = { + sizeof(struct mapem_ts_MovementEvent_addGrpC), + offsetof(struct mapem_ts_MovementEvent_addGrpC, _asn_ctx), + asn_MAP_mapem_ts_MovementEvent_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_mapem_ts_MovementEvent_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_MovementEvent_addGrpC = { + "MovementEvent-addGrpC", + "MovementEvent-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_MovementEvent_addGrpC_tags_1, + sizeof(asn_DEF_mapem_ts_MovementEvent_addGrpC_tags_1) + /sizeof(asn_DEF_mapem_ts_MovementEvent_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_MovementEvent_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_MovementEvent_addGrpC_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_MovementEvent_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_mapem_ts_MovementEvent_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MovementEvent.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MovementEvent.c new file mode 100644 index 000000000..56de4ca97 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_MovementEvent.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_ts_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_regional_specs_5 = { + sizeof(struct mapem_ts_MovementEvent__regional), + offsetof(struct mapem_ts_MovementEvent__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mapem_ts_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_regional_tags_5, + sizeof(asn_DEF_mapem_ts_regional_tags_5) + /sizeof(asn_DEF_mapem_ts_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_mapem_ts_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_mapem_ts_regional_tags_5) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_regional_5, + 1, /* Single element */ + &asn_SPC_mapem_ts_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_MovementEvent_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_MovementEvent, eventState), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_MovementEvent, timing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_MovementEvent, speeds), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_MovementEvent, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_mapem_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_mapem_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_mapem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_mapem_ts_MovementEvent_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_MovementEvent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_MovementEvent_specs_1 = { + sizeof(struct mapem_ts_MovementEvent), + offsetof(struct mapem_ts_MovementEvent, _asn_ctx), + asn_MAP_mapem_ts_MovementEvent_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_mapem_ts_MovementEvent_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_MovementEvent = { + "MovementEvent", + "MovementEvent", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_MovementEvent_tags_1, + sizeof(asn_DEF_mapem_ts_MovementEvent_tags_1) + /sizeof(asn_DEF_mapem_ts_MovementEvent_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_MovementEvent_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_MovementEvent_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_MovementEvent_1, + 4, /* Elements count */ + &asn_SPC_mapem_ts_MovementEvent_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MovementEventList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MovementEventList.c new file mode 100644 index 000000000..430bc0a65 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_MovementEventList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_MovementEventList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_MovementEventList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_MovementEventList_specs_1 = { + sizeof(struct mapem_ts_MovementEventList), + offsetof(struct mapem_ts_MovementEventList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_MovementEventList = { + "MovementEventList", + "MovementEventList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_MovementEventList_tags_1, + sizeof(asn_DEF_mapem_ts_MovementEventList_tags_1) + /sizeof(asn_DEF_mapem_ts_MovementEventList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_MovementEventList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_MovementEventList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_MovementEventList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_MovementEventList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MovementList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MovementList.c new file mode 100644 index 000000000..9a00bd330 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_MovementList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_MovementList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_MovementList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_MovementList_specs_1 = { + sizeof(struct mapem_ts_MovementList), + offsetof(struct mapem_ts_MovementList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_MovementList = { + "MovementList", + "MovementList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_MovementList_tags_1, + sizeof(asn_DEF_mapem_ts_MovementList_tags_1) + /sizeof(asn_DEF_mapem_ts_MovementList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_MovementList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_MovementList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_MovementList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_MovementList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MovementPhaseState.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MovementPhaseState.c new file mode 100644 index 000000000..25740fdc0 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_MovementPhaseState_specs_1 = { + asn_MAP_mapem_ts_MovementPhaseState_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_MovementPhaseState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_MovementPhaseState = { + "MovementPhaseState", + "MovementPhaseState", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_MovementPhaseState_tags_1, + sizeof(asn_DEF_mapem_ts_MovementPhaseState_tags_1) + /sizeof(asn_DEF_mapem_ts_MovementPhaseState_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_MovementPhaseState_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_MovementPhaseState_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_MovementPhaseState_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MovementState.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MovementState.c new file mode 100644 index 000000000..00fc8a5ff --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_MovementState.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_ts_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_regional_specs_6 = { + sizeof(struct mapem_ts_MovementState__regional), + offsetof(struct mapem_ts_MovementState__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mapem_ts_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_regional_tags_6, + sizeof(asn_DEF_mapem_ts_regional_tags_6) + /sizeof(asn_DEF_mapem_ts_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_mapem_ts_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_mapem_ts_regional_tags_6) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_regional_6, + 1, /* Single element */ + &asn_SPC_mapem_ts_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_MovementState_1[] = { + { ATF_POINTER, 1, offsetof(struct mapem_ts_MovementState, movementName), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_MovementState, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_MovementState, state_time_speed), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_MovementState, maneuverAssistList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_MovementState, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_mapem_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_mapem_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_mapem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_mapem_ts_MovementState_oms_1[] = { 0, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_MovementState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_MovementState_specs_1 = { + sizeof(struct mapem_ts_MovementState), + offsetof(struct mapem_ts_MovementState, _asn_ctx), + asn_MAP_mapem_ts_MovementState_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_mapem_ts_MovementState_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_MovementState = { + "MovementState", + "MovementState", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_MovementState_tags_1, + sizeof(asn_DEF_mapem_ts_MovementState_tags_1) + /sizeof(asn_DEF_mapem_ts_MovementState_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_MovementState_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_MovementState_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_MovementState_1, + 5, /* Elements count */ + &asn_SPC_mapem_ts_MovementState_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MsgCount.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_MsgCount.c new file mode 100644 index 000000000..3e5b2cc4d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_MsgCount.h" + +int +mapem_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_mapem_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_mapem_ts_MsgCount_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_MsgCount = { + "MsgCount", + "MsgCount", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_MsgCount_tags_1, + sizeof(asn_DEF_mapem_ts_MsgCount_tags_1) + /sizeof(asn_DEF_mapem_ts_MsgCount_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_MsgCount_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_MsgCount_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_MsgCount_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Node-LLmD-64b.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Node-LLmD-64b.c new file mode 100644 index 000000000..86c3c6694 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Node-LLmD-64b.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_Node_LLmD_64b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Node_LLmD_64b, lon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_Node_LLmD_64b, lat), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_Node_LLmD_64b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Node_LLmD_64b_specs_1 = { + sizeof(struct mapem_ts_Node_LLmD_64b), + offsetof(struct mapem_ts_Node_LLmD_64b, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Node_LLmD_64b = { + "Node-LLmD-64b", + "Node-LLmD-64b", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Node_LLmD_64b_tags_1, + sizeof(asn_DEF_mapem_ts_Node_LLmD_64b_tags_1) + /sizeof(asn_DEF_mapem_ts_Node_LLmD_64b_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Node_LLmD_64b_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Node_LLmD_64b_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_Node_LLmD_64b_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Node_LLmD_64b_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Node-XY-20b.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Node-XY-20b.c new file mode 100644 index 000000000..8e7d0868b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Node-XY-20b.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_Node_XY_20b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Node_XY_20b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_Node_XY_20b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_Node_XY_20b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Node_XY_20b_specs_1 = { + sizeof(struct mapem_ts_Node_XY_20b), + offsetof(struct mapem_ts_Node_XY_20b, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Node_XY_20b = { + "Node-XY-20b", + "Node-XY-20b", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Node_XY_20b_tags_1, + sizeof(asn_DEF_mapem_ts_Node_XY_20b_tags_1) + /sizeof(asn_DEF_mapem_ts_Node_XY_20b_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Node_XY_20b_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Node_XY_20b_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_Node_XY_20b_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Node_XY_20b_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Node-XY-22b.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Node-XY-22b.c new file mode 100644 index 000000000..24f8a476b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Node-XY-22b.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_Node_XY_22b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Node_XY_22b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_Node_XY_22b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_Node_XY_22b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Node_XY_22b_specs_1 = { + sizeof(struct mapem_ts_Node_XY_22b), + offsetof(struct mapem_ts_Node_XY_22b, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Node_XY_22b = { + "Node-XY-22b", + "Node-XY-22b", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Node_XY_22b_tags_1, + sizeof(asn_DEF_mapem_ts_Node_XY_22b_tags_1) + /sizeof(asn_DEF_mapem_ts_Node_XY_22b_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Node_XY_22b_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Node_XY_22b_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_Node_XY_22b_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Node_XY_22b_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Node-XY-24b.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Node-XY-24b.c new file mode 100644 index 000000000..a1a2285ab --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Node-XY-24b.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_Node_XY_24b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Node_XY_24b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_Node_XY_24b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_Node_XY_24b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Node_XY_24b_specs_1 = { + sizeof(struct mapem_ts_Node_XY_24b), + offsetof(struct mapem_ts_Node_XY_24b, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Node_XY_24b = { + "Node-XY-24b", + "Node-XY-24b", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Node_XY_24b_tags_1, + sizeof(asn_DEF_mapem_ts_Node_XY_24b_tags_1) + /sizeof(asn_DEF_mapem_ts_Node_XY_24b_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Node_XY_24b_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Node_XY_24b_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_Node_XY_24b_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Node_XY_24b_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Node-XY-26b.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Node-XY-26b.c new file mode 100644 index 000000000..f17edb12d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Node-XY-26b.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_Node_XY_26b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Node_XY_26b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_Node_XY_26b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_Node_XY_26b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Node_XY_26b_specs_1 = { + sizeof(struct mapem_ts_Node_XY_26b), + offsetof(struct mapem_ts_Node_XY_26b, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Node_XY_26b = { + "Node-XY-26b", + "Node-XY-26b", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Node_XY_26b_tags_1, + sizeof(asn_DEF_mapem_ts_Node_XY_26b_tags_1) + /sizeof(asn_DEF_mapem_ts_Node_XY_26b_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Node_XY_26b_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Node_XY_26b_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_Node_XY_26b_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Node_XY_26b_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Node-XY-28b.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Node-XY-28b.c new file mode 100644 index 000000000..917f55b38 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Node-XY-28b.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_Node_XY_28b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Node_XY_28b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_Node_XY_28b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_Node_XY_28b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Node_XY_28b_specs_1 = { + sizeof(struct mapem_ts_Node_XY_28b), + offsetof(struct mapem_ts_Node_XY_28b, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Node_XY_28b = { + "Node-XY-28b", + "Node-XY-28b", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Node_XY_28b_tags_1, + sizeof(asn_DEF_mapem_ts_Node_XY_28b_tags_1) + /sizeof(asn_DEF_mapem_ts_Node_XY_28b_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Node_XY_28b_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Node_XY_28b_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_Node_XY_28b_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Node_XY_28b_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Node-XY-32b.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Node-XY-32b.c new file mode 100644 index 000000000..7b698130a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Node-XY-32b.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_Node_XY_32b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Node_XY_32b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_Node_XY_32b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_Node_XY_32b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Node_XY_32b_specs_1 = { + sizeof(struct mapem_ts_Node_XY_32b), + offsetof(struct mapem_ts_Node_XY_32b, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Node_XY_32b = { + "Node-XY-32b", + "Node-XY-32b", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Node_XY_32b_tags_1, + sizeof(asn_DEF_mapem_ts_Node_XY_32b_tags_1) + /sizeof(asn_DEF_mapem_ts_Node_XY_32b_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Node_XY_32b_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Node_XY_32b_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_Node_XY_32b_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Node_XY_32b_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Node.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Node.c new file mode 100644 index 000000000..584211898 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Node.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_Node_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_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 mapem_ts_Node, lane), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_Node, connectionID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_Node, intersectionID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_Node_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Node_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Node_specs_1 = { + sizeof(struct mapem_ts_Node), + offsetof(struct mapem_ts_Node, _asn_ctx), + asn_MAP_mapem_ts_Node_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_mapem_ts_Node_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_Node = { + "Node", + "Node", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Node_tags_1, + sizeof(asn_DEF_mapem_ts_Node_tags_1) + /sizeof(asn_DEF_mapem_ts_Node_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Node_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Node_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_Node_1, + 4, /* Elements count */ + &asn_SPC_mapem_ts_Node_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_NodeAttributeSet-addGrpC.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_NodeAttributeSet-addGrpC.c new file mode 100644 index 000000000..0480e3418 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_NodeAttributeSet-addGrpC.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_NodeAttributeSet_addGrpC_1[] = { + { ATF_POINTER, 3, offsetof(struct mapem_ts_NodeAttributeSet_addGrpC, ptvRequest), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_NodeAttributeSet_addGrpC, nodeLink), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_NodeAttributeSet_addGrpC, node), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_NodeAttributeSet_addGrpC_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_NodeAttributeSet_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_NodeAttributeSet_addGrpC_specs_1 = { + sizeof(struct mapem_ts_NodeAttributeSet_addGrpC), + offsetof(struct mapem_ts_NodeAttributeSet_addGrpC, _asn_ctx), + asn_MAP_mapem_ts_NodeAttributeSet_addGrpC_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_mapem_ts_NodeAttributeSet_addGrpC_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_NodeAttributeSet_addGrpC = { + "NodeAttributeSet-addGrpC", + "NodeAttributeSet-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_NodeAttributeSet_addGrpC_tags_1, + sizeof(asn_DEF_mapem_ts_NodeAttributeSet_addGrpC_tags_1) + /sizeof(asn_DEF_mapem_ts_NodeAttributeSet_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_NodeAttributeSet_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_NodeAttributeSet_addGrpC_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_NodeAttributeSet_addGrpC_1, + 3, /* Elements count */ + &asn_SPC_mapem_ts_NodeAttributeSet_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_NodeAttributeSetXY.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_NodeAttributeSetXY.c new file mode 100644 index 000000000..6247dd1e9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_NodeAttributeSetXY.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_ts_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_regional_specs_8 = { + sizeof(struct mapem_ts_NodeAttributeSetXY__regional), + offsetof(struct mapem_ts_NodeAttributeSetXY__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mapem_ts_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_regional_tags_8, + sizeof(asn_DEF_mapem_ts_regional_tags_8) + /sizeof(asn_DEF_mapem_ts_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_mapem_ts_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_mapem_ts_regional_tags_8) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_regional_8, + 1, /* Single element */ + &asn_SPC_mapem_ts_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_NodeAttributeSetXY_1[] = { + { ATF_POINTER, 7, offsetof(struct mapem_ts_NodeAttributeSetXY, localNode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_NodeAttributeSetXY, disabled), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_NodeAttributeSetXY, enabled), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_NodeAttributeSetXY, data), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_NodeAttributeSetXY, dWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_NodeAttributeSetXY, dElevation), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_NodeAttributeSetXY, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_mapem_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_mapem_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_mapem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_mapem_ts_NodeAttributeSetXY_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_NodeAttributeSetXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_NodeAttributeSetXY_specs_1 = { + sizeof(struct mapem_ts_NodeAttributeSetXY), + offsetof(struct mapem_ts_NodeAttributeSetXY, _asn_ctx), + asn_MAP_mapem_ts_NodeAttributeSetXY_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_mapem_ts_NodeAttributeSetXY_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_NodeAttributeSetXY = { + "NodeAttributeSetXY", + "NodeAttributeSetXY", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_NodeAttributeSetXY_tags_1, + sizeof(asn_DEF_mapem_ts_NodeAttributeSetXY_tags_1) + /sizeof(asn_DEF_mapem_ts_NodeAttributeSetXY_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_NodeAttributeSetXY_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_NodeAttributeSetXY_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_NodeAttributeSetXY_1, + 7, /* Elements count */ + &asn_SPC_mapem_ts_NodeAttributeSetXY_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_NodeAttributeXY.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_NodeAttributeXY.c new file mode 100644 index 000000000..d67683e41 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_NodeAttributeXY_specs_1 = { + asn_MAP_mapem_ts_NodeAttributeXY_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_NodeAttributeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_NodeAttributeXY = { + "NodeAttributeXY", + "NodeAttributeXY", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_NodeAttributeXY_tags_1, + sizeof(asn_DEF_mapem_ts_NodeAttributeXY_tags_1) + /sizeof(asn_DEF_mapem_ts_NodeAttributeXY_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_NodeAttributeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_NodeAttributeXY_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_NodeAttributeXY_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_NodeAttributeXYList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_NodeAttributeXYList.c new file mode 100644 index 000000000..1c7b51736 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_NodeAttributeXYList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_NodeAttributeXYList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_NodeAttributeXYList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_NodeAttributeXYList_specs_1 = { + sizeof(struct mapem_ts_NodeAttributeXYList), + offsetof(struct mapem_ts_NodeAttributeXYList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_NodeAttributeXYList = { + "NodeAttributeXYList", + "NodeAttributeXYList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_NodeAttributeXYList_tags_1, + sizeof(asn_DEF_mapem_ts_NodeAttributeXYList_tags_1) + /sizeof(asn_DEF_mapem_ts_NodeAttributeXYList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_NodeAttributeXYList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_NodeAttributeXYList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_NodeAttributeXYList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_NodeAttributeXYList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_NodeLink.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_NodeLink.c new file mode 100644 index 000000000..6803054c2 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_NodeLink.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_NodeLink_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_NodeLink_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_NodeLink_specs_1 = { + sizeof(struct mapem_ts_NodeLink), + offsetof(struct mapem_ts_NodeLink, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_NodeLink = { + "NodeLink", + "NodeLink", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_NodeLink_tags_1, + sizeof(asn_DEF_mapem_ts_NodeLink_tags_1) + /sizeof(asn_DEF_mapem_ts_NodeLink_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_NodeLink_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_NodeLink_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_NodeLink_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_NodeLink_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_NodeListXY.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_NodeListXY.c new file mode 100644 index 000000000..725281a2d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_NodeListXY.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_NodeListXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_NodeListXY, choice.nodes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_NodeListXY, choice.computed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_NodeListXY_specs_1 = { + sizeof(struct mapem_ts_NodeListXY), + offsetof(struct mapem_ts_NodeListXY, _asn_ctx), + offsetof(struct mapem_ts_NodeListXY, present), + sizeof(((struct mapem_ts_NodeListXY *)0)->present), + asn_MAP_mapem_ts_NodeListXY_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_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_mapem_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_mapem_ts_NodeListXY_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_NodeListXY_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_NodeOffsetPointXY.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_NodeOffsetPointXY.c new file mode 100644 index 000000000..52bfbfdce --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_NodeOffsetPointXY.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_NodeOffsetPointXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_NodeOffsetPointXY, choice.node_XY1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_NodeOffsetPointXY, choice.node_XY2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_NodeOffsetPointXY, choice.node_XY3), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_NodeOffsetPointXY, choice.node_XY4), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_NodeOffsetPointXY, choice.node_XY5), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_NodeOffsetPointXY, choice.node_XY6), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_NodeOffsetPointXY, choice.node_LatLon), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_NodeOffsetPointXY, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_NodeOffsetPointXY_specs_1 = { + sizeof(struct mapem_ts_NodeOffsetPointXY), + offsetof(struct mapem_ts_NodeOffsetPointXY, _asn_ctx), + offsetof(struct mapem_ts_NodeOffsetPointXY, present), + sizeof(((struct mapem_ts_NodeOffsetPointXY *)0)->present), + asn_MAP_mapem_ts_NodeOffsetPointXY_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_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_mapem_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_mapem_ts_NodeOffsetPointXY_1, + 8, /* Elements count */ + &asn_SPC_mapem_ts_NodeOffsetPointXY_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_NodeSetXY.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_NodeSetXY.c new file mode 100644 index 000000000..96ea07923 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_NodeSetXY.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_NodeSetXY_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_NodeSetXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_NodeSetXY_specs_1 = { + sizeof(struct mapem_ts_NodeSetXY), + offsetof(struct mapem_ts_NodeSetXY, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_NodeSetXY = { + "NodeSetXY", + "NodeSetXY", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_NodeSetXY_tags_1, + sizeof(asn_DEF_mapem_ts_NodeSetXY_tags_1) + /sizeof(asn_DEF_mapem_ts_NodeSetXY_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_NodeSetXY_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_NodeSetXY_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_NodeSetXY_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_NodeSetXY_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_NodeXY.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_NodeXY.c new file mode 100644 index 000000000..5b0d0ffc4 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_NodeXY.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_NodeXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_NodeXY, delta), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_NodeXY, attributes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_NodeXY_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_NodeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_NodeXY_specs_1 = { + sizeof(struct mapem_ts_NodeXY), + offsetof(struct mapem_ts_NodeXY, _asn_ctx), + asn_MAP_mapem_ts_NodeXY_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_mapem_ts_NodeXY_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_NodeXY = { + "NodeXY", + "NodeXY", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_NodeXY_tags_1, + sizeof(asn_DEF_mapem_ts_NodeXY_tags_1) + /sizeof(asn_DEF_mapem_ts_NodeXY_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_NodeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_NodeXY_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_NodeXY_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_NodeXY_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_NumberOfOccupants.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_NumberOfOccupants.c new file mode 100644 index 000000000..b43f3ae4c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_NumberOfOccupants.h" + +int +mapem_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_mapem_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_mapem_ts_NumberOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_NumberOfOccupants = { + "NumberOfOccupants", + "NumberOfOccupants", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_NumberOfOccupants_tags_1, + sizeof(asn_DEF_mapem_ts_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_mapem_ts_NumberOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_NumberOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_NumberOfOccupants_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Offset-B09.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Offset-B09.c new file mode 100644 index 000000000..80bd4085f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Offset-B09.h" + +int +mapem_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_mapem_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_mapem_ts_Offset_B09_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_Offset_B09 = { + "Offset-B09", + "Offset-B09", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_Offset_B09_tags_1, + sizeof(asn_DEF_mapem_ts_Offset_B09_tags_1) + /sizeof(asn_DEF_mapem_ts_Offset_B09_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Offset_B09_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Offset_B09_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_Offset_B09_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Offset-B10.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Offset-B10.c new file mode 100644 index 000000000..9cdf40174 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Offset-B10.h" + +int +mapem_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_mapem_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_mapem_ts_Offset_B10_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_Offset_B10 = { + "Offset-B10", + "Offset-B10", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_Offset_B10_tags_1, + sizeof(asn_DEF_mapem_ts_Offset_B10_tags_1) + /sizeof(asn_DEF_mapem_ts_Offset_B10_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Offset_B10_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Offset_B10_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_Offset_B10_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Offset-B11.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Offset-B11.c new file mode 100644 index 000000000..c3fca1c4e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Offset-B11.h" + +int +mapem_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_mapem_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_mapem_ts_Offset_B11_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_Offset_B11 = { + "Offset-B11", + "Offset-B11", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_Offset_B11_tags_1, + sizeof(asn_DEF_mapem_ts_Offset_B11_tags_1) + /sizeof(asn_DEF_mapem_ts_Offset_B11_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Offset_B11_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Offset_B11_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_Offset_B11_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Offset-B12.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Offset-B12.c new file mode 100644 index 000000000..b96b4ee7e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Offset-B12.h" + +int +mapem_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_mapem_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_mapem_ts_Offset_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_Offset_B12 = { + "Offset-B12", + "Offset-B12", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_Offset_B12_tags_1, + sizeof(asn_DEF_mapem_ts_Offset_B12_tags_1) + /sizeof(asn_DEF_mapem_ts_Offset_B12_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Offset_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Offset_B12_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_Offset_B12_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Offset-B13.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Offset-B13.c new file mode 100644 index 000000000..7d3028af9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Offset-B13.h" + +int +mapem_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_mapem_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_mapem_ts_Offset_B13_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_Offset_B13 = { + "Offset-B13", + "Offset-B13", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_Offset_B13_tags_1, + sizeof(asn_DEF_mapem_ts_Offset_B13_tags_1) + /sizeof(asn_DEF_mapem_ts_Offset_B13_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Offset_B13_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Offset_B13_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_Offset_B13_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Offset-B14.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Offset-B14.c new file mode 100644 index 000000000..8b460aad9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Offset-B14.h" + +int +mapem_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_mapem_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_mapem_ts_Offset_B14_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_Offset_B14 = { + "Offset-B14", + "Offset-B14", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_Offset_B14_tags_1, + sizeof(asn_DEF_mapem_ts_Offset_B14_tags_1) + /sizeof(asn_DEF_mapem_ts_Offset_B14_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Offset_B14_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Offset_B14_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_Offset_B14_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Offset-B16.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Offset-B16.c new file mode 100644 index 000000000..f1cf978e5 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Offset-B16.h" + +int +mapem_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_mapem_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_mapem_ts_Offset_B16_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_Offset_B16 = { + "Offset-B16", + "Offset-B16", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_Offset_B16_tags_1, + sizeof(asn_DEF_mapem_ts_Offset_B16_tags_1) + /sizeof(asn_DEF_mapem_ts_Offset_B16_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Offset_B16_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Offset_B16_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_Offset_B16_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_OpeningDaysHours.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_OpeningDaysHours.c new file mode 100644 index 000000000..7730be3e6 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_OpeningDaysHours.h" + +/* + * This type is implemented using UTF8String, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_mapem_ts_OpeningDaysHours_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (12 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_OpeningDaysHours = { + "OpeningDaysHours", + "OpeningDaysHours", + &asn_OP_UTF8String, + asn_DEF_mapem_ts_OpeningDaysHours_tags_1, + sizeof(asn_DEF_mapem_ts_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_mapem_ts_OpeningDaysHours_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_OpeningDaysHours_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_coding/src/mapem_ts_OverlayLaneList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_OverlayLaneList.c new file mode 100644 index 000000000..08541b914 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_OverlayLaneList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_OverlayLaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_OverlayLaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_OverlayLaneList_specs_1 = { + sizeof(struct mapem_ts_OverlayLaneList), + offsetof(struct mapem_ts_OverlayLaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_OverlayLaneList = { + "OverlayLaneList", + "OverlayLaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_OverlayLaneList_tags_1, + sizeof(asn_DEF_mapem_ts_OverlayLaneList_tags_1) + /sizeof(asn_DEF_mapem_ts_OverlayLaneList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_OverlayLaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_OverlayLaneList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_OverlayLaneList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_OverlayLaneList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PathDeltaTime.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PathDeltaTime.c new file mode 100644 index 000000000..3ba047cfa --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_PathDeltaTime.h" + +int +mapem_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_mapem_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_mapem_ts_PathDeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_PathDeltaTime = { + "PathDeltaTime", + "PathDeltaTime", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_PathDeltaTime_tags_1, + sizeof(asn_DEF_mapem_ts_PathDeltaTime_tags_1) + /sizeof(asn_DEF_mapem_ts_PathDeltaTime_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PathDeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PathDeltaTime_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_PathDeltaTime_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PathHistory.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PathHistory.c new file mode 100644 index 000000000..2034b9864 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_PathHistory.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_PathHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_PathHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_PathHistory_specs_1 = { + sizeof(struct mapem_ts_PathHistory), + offsetof(struct mapem_ts_PathHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_PathHistory = { + "PathHistory", + "PathHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_PathHistory_tags_1, + sizeof(asn_DEF_mapem_ts_PathHistory_tags_1) + /sizeof(asn_DEF_mapem_ts_PathHistory_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PathHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PathHistory_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_PathHistory_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_PathHistory_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PathPoint.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PathPoint.c new file mode 100644 index 000000000..fb0312bd7 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_PathPoint.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_PathPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_PathPoint, pathPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_PathPoint, pathDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_PathPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_PathPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_PathPoint_specs_1 = { + sizeof(struct mapem_ts_PathPoint), + offsetof(struct mapem_ts_PathPoint, _asn_ctx), + asn_MAP_mapem_ts_PathPoint_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_mapem_ts_PathPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_PathPoint = { + "PathPoint", + "PathPoint", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_PathPoint_tags_1, + sizeof(asn_DEF_mapem_ts_PathPoint_tags_1) + /sizeof(asn_DEF_mapem_ts_PathPoint_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PathPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PathPoint_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_PathPoint_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_PathPoint_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PedestrianBicycleDetect.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PedestrianBicycleDetect.c new file mode 100644 index 000000000..8c473584e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_PedestrianBicycleDetect.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_mapem_ts_PedestrianBicycleDetect_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_PedestrianBicycleDetect = { + "PedestrianBicycleDetect", + "PedestrianBicycleDetect", + &asn_OP_BOOLEAN, + asn_DEF_mapem_ts_PedestrianBicycleDetect_tags_1, + sizeof(asn_DEF_mapem_ts_PedestrianBicycleDetect_tags_1) + /sizeof(asn_DEF_mapem_ts_PedestrianBicycleDetect_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PedestrianBicycleDetect_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PedestrianBicycleDetect_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_coding/src/mapem_ts_PerformanceClass.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PerformanceClass.c new file mode 100644 index 000000000..813caf76b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_PerformanceClass.h" + +int +mapem_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_mapem_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_mapem_ts_PerformanceClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_PerformanceClass = { + "PerformanceClass", + "PerformanceClass", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_PerformanceClass_tags_1, + sizeof(asn_DEF_mapem_ts_PerformanceClass_tags_1) + /sizeof(asn_DEF_mapem_ts_PerformanceClass_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PerformanceClass_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PerformanceClass_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_PerformanceClass_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PhoneNumber.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PhoneNumber.c new file mode 100644 index 000000000..d5709e5c0 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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 +mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_PhoneNumber_1_v2c, /* Value to PER code map */ + asn_PER_MAP_mapem_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_mapem_ts_PhoneNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (18 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_PhoneNumber = { + "PhoneNumber", + "PhoneNumber", + &asn_OP_NumericString, + asn_DEF_mapem_ts_PhoneNumber_tags_1, + sizeof(asn_DEF_mapem_ts_PhoneNumber_tags_1) + /sizeof(asn_DEF_mapem_ts_PhoneNumber_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PhoneNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PhoneNumber_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_PhoneNumber_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PosCentMass.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PosCentMass.c new file mode 100644 index 000000000..5e63a5e2f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_PosCentMass.h" + +int +mapem_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_mapem_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_mapem_ts_PosCentMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_PosCentMass = { + "PosCentMass", + "PosCentMass", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_PosCentMass_tags_1, + sizeof(asn_DEF_mapem_ts_PosCentMass_tags_1) + /sizeof(asn_DEF_mapem_ts_PosCentMass_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PosCentMass_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PosCentMass_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_PosCentMass_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PosConfidenceEllipse.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PosConfidenceEllipse.c new file mode 100644 index 000000000..44646fb5c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_PosConfidenceEllipse.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_PosConfidenceEllipse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_PosConfidenceEllipse, semiMajorConfidence), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_PosConfidenceEllipse, semiMinorConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_PosConfidenceEllipse, semiMajorOrientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_PosConfidenceEllipse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_PosConfidenceEllipse_specs_1 = { + sizeof(struct mapem_ts_PosConfidenceEllipse), + offsetof(struct mapem_ts_PosConfidenceEllipse, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_PosConfidenceEllipse = { + "PosConfidenceEllipse", + "PosConfidenceEllipse", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_PosConfidenceEllipse_tags_1, + sizeof(asn_DEF_mapem_ts_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_mapem_ts_PosConfidenceEllipse_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PosConfidenceEllipse_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_PosConfidenceEllipse_1, + 3, /* Elements count */ + &asn_SPC_mapem_ts_PosConfidenceEllipse_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PosFrontAx.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PosFrontAx.c new file mode 100644 index 000000000..5abd71ef8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_PosFrontAx.h" + +int +mapem_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_mapem_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_mapem_ts_PosFrontAx_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_PosFrontAx = { + "PosFrontAx", + "PosFrontAx", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_PosFrontAx_tags_1, + sizeof(asn_DEF_mapem_ts_PosFrontAx_tags_1) + /sizeof(asn_DEF_mapem_ts_PosFrontAx_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PosFrontAx_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PosFrontAx_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_PosFrontAx_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PosLonCarr.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PosLonCarr.c new file mode 100644 index 000000000..667219e4c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_PosLonCarr.h" + +int +mapem_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_mapem_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_mapem_ts_PosLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_PosLonCarr = { + "PosLonCarr", + "PosLonCarr", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_PosLonCarr_tags_1, + sizeof(asn_DEF_mapem_ts_PosLonCarr_tags_1) + /sizeof(asn_DEF_mapem_ts_PosLonCarr_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PosLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PosLonCarr_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_PosLonCarr_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PosPillar.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PosPillar.c new file mode 100644 index 000000000..36f0bb0d0 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_PosPillar.h" + +int +mapem_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_mapem_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_mapem_ts_PosPillar_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_PosPillar = { + "PosPillar", + "PosPillar", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_PosPillar_tags_1, + sizeof(asn_DEF_mapem_ts_PosPillar_tags_1) + /sizeof(asn_DEF_mapem_ts_PosPillar_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PosPillar_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PosPillar_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_PosPillar_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Position3D-addGrpC.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Position3D-addGrpC.c new file mode 100644 index 000000000..8ee6faea9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Position3D-addGrpC.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_Position3D_addGrpC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Position3D_addGrpC, altitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_Position3D_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_ts_Position3D_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Position3D_addGrpC_specs_1 = { + sizeof(struct mapem_ts_Position3D_addGrpC), + offsetof(struct mapem_ts_Position3D_addGrpC, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Position3D_addGrpC = { + "Position3D-addGrpC", + "Position3D-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Position3D_addGrpC_tags_1, + sizeof(asn_DEF_mapem_ts_Position3D_addGrpC_tags_1) + /sizeof(asn_DEF_mapem_ts_Position3D_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Position3D_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Position3D_addGrpC_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_Position3D_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_mapem_ts_Position3D_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Position3D.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Position3D.c new file mode 100644 index 000000000..54ba8b305 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Position3D.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_ts_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_regional_specs_5 = { + sizeof(struct mapem_ts_Position3D__regional), + offsetof(struct mapem_ts_Position3D__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mapem_ts_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_regional_tags_5, + sizeof(asn_DEF_mapem_ts_regional_tags_5) + /sizeof(asn_DEF_mapem_ts_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_mapem_ts_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_mapem_ts_regional_tags_5) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_regional_5, + 1, /* Single element */ + &asn_SPC_mapem_ts_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Position3D_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Position3D, lat), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_Position3D, Long), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_Position3D, elevation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_Position3D, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_mapem_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_mapem_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_mapem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_mapem_ts_Position3D_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Position3D_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Position3D_specs_1 = { + sizeof(struct mapem_ts_Position3D), + offsetof(struct mapem_ts_Position3D, _asn_ctx), + asn_MAP_mapem_ts_Position3D_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_mapem_ts_Position3D_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_Position3D = { + "Position3D", + "Position3D", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Position3D_tags_1, + sizeof(asn_DEF_mapem_ts_Position3D_tags_1) + /sizeof(asn_DEF_mapem_ts_Position3D_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Position3D_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Position3D_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_Position3D_1, + 4, /* Elements count */ + &asn_SPC_mapem_ts_Position3D_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PositionConfidence.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PositionConfidence.c new file mode 100644 index 000000000..b07ca423c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_PositionConfidence_specs_1 = { + asn_MAP_mapem_ts_PositionConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_PositionConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_PositionConfidence = { + "PositionConfidence", + "PositionConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_PositionConfidence_tags_1, + sizeof(asn_DEF_mapem_ts_PositionConfidence_tags_1) + /sizeof(asn_DEF_mapem_ts_PositionConfidence_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PositionConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PositionConfidence_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_PositionConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PositionConfidenceSet.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PositionConfidenceSet.c new file mode 100644 index 000000000..d7e2a63c8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_PositionConfidenceSet.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_PositionConfidenceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_PositionConfidenceSet, pos), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_PositionConfidenceSet, elevation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_PositionConfidenceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_PositionConfidenceSet_specs_1 = { + sizeof(struct mapem_ts_PositionConfidenceSet), + offsetof(struct mapem_ts_PositionConfidenceSet, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_PositionConfidenceSet = { + "PositionConfidenceSet", + "PositionConfidenceSet", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_PositionConfidenceSet_tags_1, + sizeof(asn_DEF_mapem_ts_PositionConfidenceSet_tags_1) + /sizeof(asn_DEF_mapem_ts_PositionConfidenceSet_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PositionConfidenceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PositionConfidenceSet_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_PositionConfidenceSet_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_PositionConfidenceSet_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PositionOfOccupants.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PositionOfOccupants.c new file mode 100644 index 000000000..98439e5cd --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_PositionOfOccupants.h" + +int +mapem_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_mapem_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_mapem_ts_PositionOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_PositionOfOccupants = { + "PositionOfOccupants", + "PositionOfOccupants", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_PositionOfOccupants_tags_1, + sizeof(asn_DEF_mapem_ts_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_mapem_ts_PositionOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PositionOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_PositionOfOccupants_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PositionOfPillars.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PositionOfPillars.c new file mode 100644 index 000000000..7f626ad90 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_PositionOfPillars.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_PositionOfPillars_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_PositionOfPillars_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_PositionOfPillars_specs_1 = { + sizeof(struct mapem_ts_PositionOfPillars), + offsetof(struct mapem_ts_PositionOfPillars, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_PositionOfPillars = { + "PositionOfPillars", + "PositionOfPillars", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_PositionOfPillars_tags_1, + sizeof(asn_DEF_mapem_ts_PositionOfPillars_tags_1) + /sizeof(asn_DEF_mapem_ts_PositionOfPillars_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PositionOfPillars_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PositionOfPillars_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_PositionOfPillars_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_PositionOfPillars_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PositionalAccuracy.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PositionalAccuracy.c new file mode 100644 index 000000000..42b3eabbc --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_PositionalAccuracy.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_PositionalAccuracy_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_PositionalAccuracy, semiMajor), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_PositionalAccuracy, semiMinor), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_PositionalAccuracy, orientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_PositionalAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_PositionalAccuracy_specs_1 = { + sizeof(struct mapem_ts_PositionalAccuracy), + offsetof(struct mapem_ts_PositionalAccuracy, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_PositionalAccuracy = { + "PositionalAccuracy", + "PositionalAccuracy", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_PositionalAccuracy_tags_1, + sizeof(asn_DEF_mapem_ts_PositionalAccuracy_tags_1) + /sizeof(asn_DEF_mapem_ts_PositionalAccuracy_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PositionalAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PositionalAccuracy_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_PositionalAccuracy_1, + 3, /* Elements count */ + &asn_SPC_mapem_ts_PositionalAccuracy_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PositioningSolutionType.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PositioningSolutionType.c new file mode 100644 index 000000000..e11015736 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_PositioningSolutionType_specs_1 = { + asn_MAP_mapem_ts_PositioningSolutionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_PositioningSolutionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_PositioningSolutionType = { + "PositioningSolutionType", + "PositioningSolutionType", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_PositioningSolutionType_tags_1, + sizeof(asn_DEF_mapem_ts_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_mapem_ts_PositioningSolutionType_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PositioningSolutionType_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_PositioningSolutionType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PostCrashSubCauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PostCrashSubCauseCode.c new file mode 100644 index 000000000..8333ddbe3 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_PostCrashSubCauseCode.h" + +int +mapem_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_mapem_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_mapem_ts_PostCrashSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_PostCrashSubCauseCode = { + "PostCrashSubCauseCode", + "PostCrashSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_PostCrashSubCauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_PostCrashSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PostCrashSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_PostCrashSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PreemptPriorityList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PreemptPriorityList.c new file mode 100644 index 000000000..21caaeb16 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_PreemptPriorityList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_PreemptPriorityList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_PreemptPriorityList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_PreemptPriorityList_specs_1 = { + sizeof(struct mapem_ts_PreemptPriorityList), + offsetof(struct mapem_ts_PreemptPriorityList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_PreemptPriorityList = { + "PreemptPriorityList", + "PreemptPriorityList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_PreemptPriorityList_tags_1, + sizeof(asn_DEF_mapem_ts_PreemptPriorityList_tags_1) + /sizeof(asn_DEF_mapem_ts_PreemptPriorityList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PreemptPriorityList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PreemptPriorityList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_PreemptPriorityList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_PreemptPriorityList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PrioritizationResponse.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PrioritizationResponse.c new file mode 100644 index 000000000..90c76a53c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_PrioritizationResponse.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_PrioritizationResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_PrioritizationResponse, stationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_PrioritizationResponse, priorState), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_PrioritizationResponse, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_PrioritizationResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_PrioritizationResponse_specs_1 = { + sizeof(struct mapem_ts_PrioritizationResponse), + offsetof(struct mapem_ts_PrioritizationResponse, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_PrioritizationResponse = { + "PrioritizationResponse", + "PrioritizationResponse", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_PrioritizationResponse_tags_1, + sizeof(asn_DEF_mapem_ts_PrioritizationResponse_tags_1) + /sizeof(asn_DEF_mapem_ts_PrioritizationResponse_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PrioritizationResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PrioritizationResponse_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_PrioritizationResponse_1, + 3, /* Elements count */ + &asn_SPC_mapem_ts_PrioritizationResponse_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PrioritizationResponseList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PrioritizationResponseList.c new file mode 100644 index 000000000..f23aaddb5 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_PrioritizationResponseList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_PrioritizationResponseList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_PrioritizationResponseList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_PrioritizationResponseList_specs_1 = { + sizeof(struct mapem_ts_PrioritizationResponseList), + offsetof(struct mapem_ts_PrioritizationResponseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_PrioritizationResponseList = { + "PrioritizationResponseList", + "PrioritizationResponseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_PrioritizationResponseList_tags_1, + sizeof(asn_DEF_mapem_ts_PrioritizationResponseList_tags_1) + /sizeof(asn_DEF_mapem_ts_PrioritizationResponseList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PrioritizationResponseList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PrioritizationResponseList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_PrioritizationResponseList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_PrioritizationResponseList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PrioritizationResponseStatus.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PrioritizationResponseStatus.c new file mode 100644 index 000000000..49658741c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_PrioritizationResponseStatus_specs_1 = { + asn_MAP_mapem_ts_PrioritizationResponseStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_PrioritizationResponseStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_PrioritizationResponseStatus = { + "PrioritizationResponseStatus", + "PrioritizationResponseStatus", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_PrioritizationResponseStatus_tags_1, + sizeof(asn_DEF_mapem_ts_PrioritizationResponseStatus_tags_1) + /sizeof(asn_DEF_mapem_ts_PrioritizationResponseStatus_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PrioritizationResponseStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PrioritizationResponseStatus_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_PrioritizationResponseStatus_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PriorityRequestType.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PriorityRequestType.c new file mode 100644 index 000000000..917d8f8b5 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_PriorityRequestType_specs_1 = { + asn_MAP_mapem_ts_PriorityRequestType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_PriorityRequestType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_PriorityRequestType = { + "PriorityRequestType", + "PriorityRequestType", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_PriorityRequestType_tags_1, + sizeof(asn_DEF_mapem_ts_PriorityRequestType_tags_1) + /sizeof(asn_DEF_mapem_ts_PriorityRequestType_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PriorityRequestType_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PriorityRequestType_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_PriorityRequestType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ProtectedCommunicationZone.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ProtectedCommunicationZone.c new file mode 100644 index 000000000..85ef0bdf9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ProtectedCommunicationZone.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_ProtectedCommunicationZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_ProtectedCommunicationZone, protectedZoneType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ProtectedCommunicationZone, expiryTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ProtectedCommunicationZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ProtectedCommunicationZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ProtectedCommunicationZone, protectedZoneRadius), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ProtectedCommunicationZone, protectedZoneID), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_ProtectedCommunicationZone_oms_1[] = { 1, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_ProtectedCommunicationZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_ProtectedCommunicationZone_specs_1 = { + sizeof(struct mapem_ts_ProtectedCommunicationZone), + offsetof(struct mapem_ts_ProtectedCommunicationZone, _asn_ctx), + asn_MAP_mapem_ts_ProtectedCommunicationZone_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_mapem_ts_ProtectedCommunicationZone_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ProtectedCommunicationZone = { + "ProtectedCommunicationZone", + "ProtectedCommunicationZone", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_ProtectedCommunicationZone_tags_1, + sizeof(asn_DEF_mapem_ts_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_mapem_ts_ProtectedCommunicationZone_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ProtectedCommunicationZone_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_ProtectedCommunicationZone_1, + 6, /* Elements count */ + &asn_SPC_mapem_ts_ProtectedCommunicationZone_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ProtectedCommunicationZonesRSU.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ProtectedCommunicationZonesRSU.c new file mode 100644 index 000000000..c9bfb5c5f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ProtectedCommunicationZonesRSU.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_ProtectedCommunicationZonesRSU_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_ProtectedCommunicationZonesRSU_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_ProtectedCommunicationZonesRSU_specs_1 = { + sizeof(struct mapem_ts_ProtectedCommunicationZonesRSU), + offsetof(struct mapem_ts_ProtectedCommunicationZonesRSU, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ProtectedCommunicationZonesRSU = { + "ProtectedCommunicationZonesRSU", + "ProtectedCommunicationZonesRSU", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_ProtectedCommunicationZonesRSU_tags_1, + sizeof(asn_DEF_mapem_ts_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_mapem_ts_ProtectedCommunicationZonesRSU_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ProtectedCommunicationZonesRSU_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_ProtectedCommunicationZonesRSU_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_ProtectedCommunicationZonesRSU_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ProtectedZoneID.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ProtectedZoneID.c new file mode 100644 index 000000000..63f8babfc --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ProtectedZoneID.h" + +int +mapem_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_mapem_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_mapem_ts_ProtectedZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ProtectedZoneID = { + "ProtectedZoneID", + "ProtectedZoneID", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_ProtectedZoneID_tags_1, + sizeof(asn_DEF_mapem_ts_ProtectedZoneID_tags_1) + /sizeof(asn_DEF_mapem_ts_ProtectedZoneID_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ProtectedZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ProtectedZoneID_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_ProtectedZoneID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ProtectedZoneRadius.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ProtectedZoneRadius.c new file mode 100644 index 000000000..9c35d7e85 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ProtectedZoneRadius.h" + +int +mapem_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_mapem_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_mapem_ts_ProtectedZoneRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ProtectedZoneRadius = { + "ProtectedZoneRadius", + "ProtectedZoneRadius", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_ProtectedZoneRadius_tags_1, + sizeof(asn_DEF_mapem_ts_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_mapem_ts_ProtectedZoneRadius_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ProtectedZoneRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_ProtectedZoneRadius_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ProtectedZoneType.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ProtectedZoneType.c new file mode 100644 index 000000000..31d1b6c7c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_ts_ProtectedZoneType_value2enum_1[] = { + { 0, 23, "permanentCenDsrcTolling" }, + { 1, 23, "temporaryCenDsrcTolling" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_mapem_ts_ProtectedZoneType_enum2value_1[] = { + 0, /* permanentCenDsrcTolling(0) */ + 1 /* temporaryCenDsrcTolling(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_mapem_ts_ProtectedZoneType_specs_1 = { + asn_MAP_mapem_ts_ProtectedZoneType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_ProtectedZoneType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ProtectedZoneType = { + "ProtectedZoneType", + "ProtectedZoneType", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_ProtectedZoneType_tags_1, + sizeof(asn_DEF_mapem_ts_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_mapem_ts_ProtectedZoneType_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ProtectedZoneType_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_ProtectedZoneType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PtActivation.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PtActivation.c new file mode 100644 index 000000000..a42ecf92c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_PtActivation.h" + +static asn_TYPE_member_t asn_MBR_mapem_ts_PtActivation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_PtActivation, ptActivationType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_PtActivation, ptActivationData), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_PtActivation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_PtActivation_specs_1 = { + sizeof(struct mapem_ts_PtActivation), + offsetof(struct mapem_ts_PtActivation, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_PtActivation = { + "PtActivation", + "PtActivation", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_PtActivation_tags_1, + sizeof(asn_DEF_mapem_ts_PtActivation_tags_1) + /sizeof(asn_DEF_mapem_ts_PtActivation_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PtActivation_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PtActivation_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_PtActivation_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_PtActivation_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PtActivationData.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PtActivationData.c new file mode 100644 index 000000000..4fb53b8e0 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_PtActivationData.h" + +int +mapem_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_mapem_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_mapem_ts_PtActivationData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_PtActivationData = { + "PtActivationData", + "PtActivationData", + &asn_OP_OCTET_STRING, + asn_DEF_mapem_ts_PtActivationData_tags_1, + sizeof(asn_DEF_mapem_ts_PtActivationData_tags_1) + /sizeof(asn_DEF_mapem_ts_PtActivationData_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PtActivationData_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PtActivationData_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_PtActivationData_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PtActivationType.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PtActivationType.c new file mode 100644 index 000000000..0cce41a01 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_PtActivationType.h" + +int +mapem_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_mapem_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_mapem_ts_PtActivationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_PtActivationType = { + "PtActivationType", + "PtActivationType", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_PtActivationType_tags_1, + sizeof(asn_DEF_mapem_ts_PtActivationType_tags_1) + /sizeof(asn_DEF_mapem_ts_PtActivationType_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PtActivationType_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PtActivationType_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_PtActivationType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PtvRequestType.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_PtvRequestType.c new file mode 100644 index 000000000..05fab0268 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_PtvRequestType_specs_1 = { + asn_MAP_mapem_ts_PtvRequestType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_PtvRequestType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_PtvRequestType = { + "PtvRequestType", + "PtvRequestType", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_PtvRequestType_tags_1, + sizeof(asn_DEF_mapem_ts_PtvRequestType_tags_1) + /sizeof(asn_DEF_mapem_ts_PtvRequestType_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_PtvRequestType_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_PtvRequestType_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_PtvRequestType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RTCM-Revision.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RTCM-Revision.c new file mode 100644 index 000000000..c352b00f3 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_RTCM_Revision_specs_1 = { + asn_MAP_mapem_ts_RTCM_Revision_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_RTCM_Revision_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RTCM_Revision = { + "RTCM-Revision", + "RTCM-Revision", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_RTCM_Revision_tags_1, + sizeof(asn_DEF_mapem_ts_RTCM_Revision_tags_1) + /sizeof(asn_DEF_mapem_ts_RTCM_Revision_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RTCM_Revision_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RTCM_Revision_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_RTCM_Revision_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RTCMcorrections.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RTCMcorrections.c new file mode 100644 index 000000000..1b6dfa704 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RTCMcorrections.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_ts_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_regional_specs_8 = { + sizeof(struct mapem_ts_RTCMcorrections__regional), + offsetof(struct mapem_ts_RTCMcorrections__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mapem_ts_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_regional_tags_8, + sizeof(asn_DEF_mapem_ts_regional_tags_8) + /sizeof(asn_DEF_mapem_ts_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_mapem_ts_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_mapem_ts_regional_tags_8) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_regional_8, + 1, /* Single element */ + &asn_SPC_mapem_ts_regional_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_mapem_ts_RTCMcorrections_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_RTCMcorrections, msgCnt), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RTCMcorrections, rev), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RTCMcorrections, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RTCMcorrections, anchorPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RTCMcorrections, rtcmHeader), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RTCMcorrections, msgs), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RTCMcorrections, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_mapem_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_mapem_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_mapem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_mapem_ts_RTCMcorrections_oms_1[] = { 2, 3, 4, 6 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_RTCMcorrections_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_RTCMcorrections_specs_1 = { + sizeof(struct mapem_ts_RTCMcorrections), + offsetof(struct mapem_ts_RTCMcorrections, _asn_ctx), + asn_MAP_mapem_ts_RTCMcorrections_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_mapem_ts_RTCMcorrections_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RTCMcorrections = { + "RTCMcorrections", + "RTCMcorrections", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_RTCMcorrections_tags_1, + sizeof(asn_DEF_mapem_ts_RTCMcorrections_tags_1) + /sizeof(asn_DEF_mapem_ts_RTCMcorrections_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RTCMcorrections_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RTCMcorrections_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_RTCMcorrections_1, + 7, /* Elements count */ + &asn_SPC_mapem_ts_RTCMcorrections_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RTCMheader.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RTCMheader.c new file mode 100644 index 000000000..cbb51252d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RTCMheader.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_RTCMheader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_RTCMheader, status), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RTCMheader, offsetSet), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_RTCMheader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_RTCMheader_specs_1 = { + sizeof(struct mapem_ts_RTCMheader), + offsetof(struct mapem_ts_RTCMheader, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_RTCMheader = { + "RTCMheader", + "RTCMheader", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_RTCMheader_tags_1, + sizeof(asn_DEF_mapem_ts_RTCMheader_tags_1) + /sizeof(asn_DEF_mapem_ts_RTCMheader_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RTCMheader_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RTCMheader_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_RTCMheader_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_RTCMheader_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RTCMmessage.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RTCMmessage.c new file mode 100644 index 000000000..e03f51fb7 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RTCMmessage.h" + +int +mapem_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_mapem_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_mapem_ts_RTCMmessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RTCMmessage = { + "RTCMmessage", + "RTCMmessage", + &asn_OP_OCTET_STRING, + asn_DEF_mapem_ts_RTCMmessage_tags_1, + sizeof(asn_DEF_mapem_ts_RTCMmessage_tags_1) + /sizeof(asn_DEF_mapem_ts_RTCMmessage_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RTCMmessage_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RTCMmessage_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_RTCMmessage_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RTCMmessageList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RTCMmessageList.c new file mode 100644 index 000000000..a70a2deec --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RTCMmessageList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_RTCMmessageList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_RTCMmessageList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_RTCMmessageList_specs_1 = { + sizeof(struct mapem_ts_RTCMmessageList), + offsetof(struct mapem_ts_RTCMmessageList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RTCMmessageList = { + "RTCMmessageList", + "RTCMmessageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_RTCMmessageList_tags_1, + sizeof(asn_DEF_mapem_ts_RTCMmessageList_tags_1) + /sizeof(asn_DEF_mapem_ts_RTCMmessageList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RTCMmessageList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RTCMmessageList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_RTCMmessageList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_RTCMmessageList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ReferencePosition.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ReferencePosition.c new file mode 100644 index 000000000..59e180299 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ReferencePosition.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_ReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_ReferencePosition, latitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ReferencePosition, longitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ReferencePosition, positionConfidenceEllipse), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_ReferencePosition, altitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_ReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_ReferencePosition_specs_1 = { + sizeof(struct mapem_ts_ReferencePosition), + offsetof(struct mapem_ts_ReferencePosition, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_ReferencePosition = { + "ReferencePosition", + "ReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_ReferencePosition_tags_1, + sizeof(asn_DEF_mapem_ts_ReferencePosition_tags_1) + /sizeof(asn_DEF_mapem_ts_ReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ReferencePosition_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_ReferencePosition_1, + 4, /* Elements count */ + &asn_SPC_mapem_ts_ReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RegionId.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RegionId.c new file mode 100644 index 000000000..76d60a119 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionId.h" + +int +mapem_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_mapem_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_mapem_ts_RegionId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RegionId = { + "RegionId", + "RegionId", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_RegionId_tags_1, + sizeof(asn_DEF_mapem_ts_RegionId_tags_1) + /sizeof(asn_DEF_mapem_ts_RegionId_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RegionId_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RegionId_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_RegionId_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RegionalExtension.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RegionalExtension.c new file mode 100644 index 000000000..22a21f384 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + +static const long asn_VAL_5_mapem_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_mapem_ts_Reg_MapData_1_rows[] = { + { "&id", aioc__value, &asn_DEF_mapem_ts_RegionId, &asn_VAL_5_mapem_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_mapem_ts_MapData_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_mapem_ts_Reg_MapData_1[] = { + { 1, 2, asn_IOS_mapem_ts_Reg_MapData_1_rows } +}; +static const long asn_VAL_1_mapem_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_mapem_ts_Reg_ConnectionManeuverAssist_1_rows[] = { + { "&id", aioc__value, &asn_DEF_mapem_ts_RegionId, &asn_VAL_1_mapem_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_mapem_ts_ConnectionManeuverAssist_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_mapem_ts_Reg_ConnectionManeuverAssist_1[] = { + { 1, 2, asn_IOS_mapem_ts_Reg_ConnectionManeuverAssist_1_rows } +}; +static const long asn_VAL_2_mapem_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_mapem_ts_Reg_GenericLane_1_rows[] = { + { "&id", aioc__value, &asn_DEF_mapem_ts_RegionId, &asn_VAL_2_mapem_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_mapem_ts_ConnectionTrajectory_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_mapem_ts_Reg_GenericLane_1[] = { + { 1, 2, asn_IOS_mapem_ts_Reg_GenericLane_1_rows } +}; +static const long asn_VAL_3_mapem_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_mapem_ts_Reg_IntersectionState_1_rows[] = { + { "&id", aioc__value, &asn_DEF_mapem_ts_RegionId, &asn_VAL_3_mapem_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_mapem_ts_IntersectionState_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_mapem_ts_Reg_IntersectionState_1[] = { + { 1, 2, asn_IOS_mapem_ts_Reg_IntersectionState_1_rows } +}; +static const long asn_VAL_4_mapem_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_mapem_ts_Reg_LaneAttributes_1_rows[] = { + { "&id", aioc__value, &asn_DEF_mapem_ts_RegionId, &asn_VAL_4_mapem_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_mapem_ts_LaneAttributes_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_mapem_ts_Reg_LaneAttributes_1[] = { + { 1, 2, asn_IOS_mapem_ts_Reg_LaneAttributes_1_rows } +}; +static const long asn_VAL_6_mapem_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_mapem_ts_Reg_MovementEvent_1_rows[] = { + { "&id", aioc__value, &asn_DEF_mapem_ts_RegionId, &asn_VAL_6_mapem_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_mapem_ts_MovementEvent_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_mapem_ts_Reg_MovementEvent_1[] = { + { 1, 2, asn_IOS_mapem_ts_Reg_MovementEvent_1_rows } +}; +static const long asn_VAL_7_mapem_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_mapem_ts_Reg_NodeAttributeSetXY_1_rows[] = { + { "&id", aioc__value, &asn_DEF_mapem_ts_RegionId, &asn_VAL_7_mapem_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_mapem_ts_NodeAttributeSet_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_mapem_ts_Reg_NodeAttributeSetXY_1[] = { + { 1, 2, asn_IOS_mapem_ts_Reg_NodeAttributeSetXY_1_rows } +}; +static const long asn_VAL_8_mapem_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_mapem_ts_Reg_Position3D_1_rows[] = { + { "&id", aioc__value, &asn_DEF_mapem_ts_RegionId, &asn_VAL_8_mapem_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_mapem_ts_Position3D_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_mapem_ts_Reg_Position3D_1[] = { + { 1, 2, asn_IOS_mapem_ts_Reg_Position3D_1_rows } +}; +static const long asn_VAL_9_mapem_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_mapem_ts_Reg_RequestorDescription_1_rows[] = { + { "&id", aioc__value, &asn_DEF_mapem_ts_RegionId, &asn_VAL_9_mapem_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_mapem_ts_RequestorDescription_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_mapem_ts_Reg_RequestorDescription_1[] = { + { 1, 2, asn_IOS_mapem_ts_Reg_RequestorDescription_1_rows } +}; +static const long asn_VAL_10_mapem_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_mapem_ts_Reg_RestrictionUserType_1_rows[] = { + { "&id", aioc__value, &asn_DEF_mapem_ts_RegionId, &asn_VAL_10_mapem_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_mapem_ts_RestrictionUserType_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_mapem_ts_Reg_RestrictionUserType_1[] = { + { 1, 2, asn_IOS_mapem_ts_Reg_RestrictionUserType_1_rows } +}; +static const long asn_VAL_11_mapem_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_mapem_ts_Reg_SignalStatusPackage_1_rows[] = { + { "&id", aioc__value, &asn_DEF_mapem_ts_RegionId, &asn_VAL_11_mapem_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_mapem_ts_SignalStatusPackage_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_mapem_ts_Reg_SignalStatusPackage_1[] = { + { 1, 2, asn_IOS_mapem_ts_Reg_SignalStatusPackage_1_rows } +}; +static int +memb_mapem_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_mapem_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_mapem_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 mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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 mapem_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_mapem_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_mapem_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_mapem_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_mapem_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 mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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 mapem_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_mapem_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_mapem_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_mapem_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_mapem_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 mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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 mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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 mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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 mapem_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_mapem_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_mapem_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_mapem_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_mapem_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 mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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 mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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 mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_regExtValue_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_MapData__regExtValue, choice.MapData_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regExtValue_tag2el_3[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MapData-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_3 = { + sizeof(struct mapem_ts_Reg_MapData__regExtValue), + offsetof(struct mapem_ts_Reg_MapData__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_MapData__regExtValue, present), + sizeof(((struct mapem_ts_Reg_MapData__regExtValue *)0)->present), + asn_MAP_mapem_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_mapem_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_mapem_ts_regExtValue_3, + 1, /* Elements count */ + &asn_SPC_mapem_ts_regExtValue_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_MapData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_MapData, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_1 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_MapData, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_ts_regExtValue_3, + select_Reg_MapData_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_1 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_MapData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_MapData_specs_1 = { + sizeof(struct mapem_ts_Reg_MapData), + offsetof(struct mapem_ts_Reg_MapData, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_MapData = { + "Reg-MapData", + "Reg-MapData", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_MapData_tags_1, + sizeof(asn_DEF_mapem_ts_Reg_MapData_tags_1) + /sizeof(asn_DEF_mapem_ts_Reg_MapData_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_MapData_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_MapData_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_MapData_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_MapData_specs_1 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_6 = { + sizeof(struct mapem_ts_Reg_RTCMcorrections__regExtValue), + offsetof(struct mapem_ts_Reg_RTCMcorrections__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_RTCMcorrections__regExtValue, present), + sizeof(((struct mapem_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_mapem_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_mapem_ts_regExtValue_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_RTCMcorrections_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_RTCMcorrections, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_4 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_RTCMcorrections, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_4 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_RTCMcorrections_tags_4[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_RTCMcorrections_specs_4 = { + sizeof(struct mapem_ts_Reg_RTCMcorrections), + offsetof(struct mapem_ts_Reg_RTCMcorrections, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_RTCMcorrections = { + "Reg-RTCMcorrections", + "Reg-RTCMcorrections", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_RTCMcorrections_tags_4, + sizeof(asn_DEF_mapem_ts_Reg_RTCMcorrections_tags_4) + /sizeof(asn_DEF_mapem_ts_Reg_RTCMcorrections_tags_4[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_RTCMcorrections_tags_4, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_RTCMcorrections_tags_4) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_RTCMcorrections_4, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_RTCMcorrections_specs_4 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_9 = { + sizeof(struct mapem_ts_Reg_SPAT__regExtValue), + offsetof(struct mapem_ts_Reg_SPAT__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_SPAT__regExtValue, present), + sizeof(((struct mapem_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_mapem_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_mapem_ts_regExtValue_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_SPAT_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_SPAT, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_7 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_SPAT, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_7 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_SPAT_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_SPAT_specs_7 = { + sizeof(struct mapem_ts_Reg_SPAT), + offsetof(struct mapem_ts_Reg_SPAT, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_SPAT = { + "Reg-SPAT", + "Reg-SPAT", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_SPAT_tags_7, + sizeof(asn_DEF_mapem_ts_Reg_SPAT_tags_7) + /sizeof(asn_DEF_mapem_ts_Reg_SPAT_tags_7[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_SPAT_tags_7, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_SPAT_tags_7) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_SPAT_7, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_SPAT_specs_7 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_12 = { + sizeof(struct mapem_ts_Reg_SignalRequestMessage__regExtValue), + offsetof(struct mapem_ts_Reg_SignalRequestMessage__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_SignalRequestMessage__regExtValue, present), + sizeof(((struct mapem_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_mapem_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_mapem_ts_regExtValue_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_SignalRequestMessage_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_SignalRequestMessage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_10 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_SignalRequestMessage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_10 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_SignalRequestMessage_tags_10[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_SignalRequestMessage_specs_10 = { + sizeof(struct mapem_ts_Reg_SignalRequestMessage), + offsetof(struct mapem_ts_Reg_SignalRequestMessage, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_SignalRequestMessage = { + "Reg-SignalRequestMessage", + "Reg-SignalRequestMessage", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_SignalRequestMessage_tags_10, + sizeof(asn_DEF_mapem_ts_Reg_SignalRequestMessage_tags_10) + /sizeof(asn_DEF_mapem_ts_Reg_SignalRequestMessage_tags_10[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_SignalRequestMessage_tags_10, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_SignalRequestMessage_tags_10) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_SignalRequestMessage_10, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_SignalRequestMessage_specs_10 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_15 = { + sizeof(struct mapem_ts_Reg_SignalStatusMessage__regExtValue), + offsetof(struct mapem_ts_Reg_SignalStatusMessage__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_SignalStatusMessage__regExtValue, present), + sizeof(((struct mapem_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_mapem_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_mapem_ts_regExtValue_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_SignalStatusMessage_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_SignalStatusMessage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_13 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_SignalStatusMessage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_13 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_SignalStatusMessage_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_SignalStatusMessage_specs_13 = { + sizeof(struct mapem_ts_Reg_SignalStatusMessage), + offsetof(struct mapem_ts_Reg_SignalStatusMessage, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_SignalStatusMessage = { + "Reg-SignalStatusMessage", + "Reg-SignalStatusMessage", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_SignalStatusMessage_tags_13, + sizeof(asn_DEF_mapem_ts_Reg_SignalStatusMessage_tags_13) + /sizeof(asn_DEF_mapem_ts_Reg_SignalStatusMessage_tags_13[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_SignalStatusMessage_tags_13, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_SignalStatusMessage_tags_13) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_SignalStatusMessage_13, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_SignalStatusMessage_specs_13 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_18 = { + sizeof(struct mapem_ts_Reg_AdvisorySpeed__regExtValue), + offsetof(struct mapem_ts_Reg_AdvisorySpeed__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_AdvisorySpeed__regExtValue, present), + sizeof(((struct mapem_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_mapem_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_mapem_ts_regExtValue_specs_18 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_AdvisorySpeed_16[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_AdvisorySpeed, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_16 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_AdvisorySpeed, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_16 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_AdvisorySpeed_tags_16[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_AdvisorySpeed_specs_16 = { + sizeof(struct mapem_ts_Reg_AdvisorySpeed), + offsetof(struct mapem_ts_Reg_AdvisorySpeed, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_AdvisorySpeed = { + "Reg-AdvisorySpeed", + "Reg-AdvisorySpeed", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_AdvisorySpeed_tags_16, + sizeof(asn_DEF_mapem_ts_Reg_AdvisorySpeed_tags_16) + /sizeof(asn_DEF_mapem_ts_Reg_AdvisorySpeed_tags_16[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_AdvisorySpeed_tags_16, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_AdvisorySpeed_tags_16) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_AdvisorySpeed_16, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_AdvisorySpeed_specs_16 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_21 = { + sizeof(struct mapem_ts_Reg_ComputedLane__regExtValue), + offsetof(struct mapem_ts_Reg_ComputedLane__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_ComputedLane__regExtValue, present), + sizeof(((struct mapem_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_mapem_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_mapem_ts_regExtValue_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_ComputedLane_19[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_ComputedLane, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_19 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_ComputedLane, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_19 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_ComputedLane_tags_19[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_ComputedLane_specs_19 = { + sizeof(struct mapem_ts_Reg_ComputedLane), + offsetof(struct mapem_ts_Reg_ComputedLane, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_ComputedLane = { + "Reg-ComputedLane", + "Reg-ComputedLane", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_ComputedLane_tags_19, + sizeof(asn_DEF_mapem_ts_Reg_ComputedLane_tags_19) + /sizeof(asn_DEF_mapem_ts_Reg_ComputedLane_tags_19[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_ComputedLane_tags_19, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_ComputedLane_tags_19) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_ComputedLane_19, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_ComputedLane_specs_19 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_mapem_ts_regExtValue_24[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_ConnectionManeuverAssist__regExtValue, choice.ConnectionManeuverAssist_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regExtValue_tag2el_24[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ConnectionManeuverAssist-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_24 = { + sizeof(struct mapem_ts_Reg_ConnectionManeuverAssist__regExtValue), + offsetof(struct mapem_ts_Reg_ConnectionManeuverAssist__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_ConnectionManeuverAssist__regExtValue, present), + sizeof(((struct mapem_ts_Reg_ConnectionManeuverAssist__regExtValue *)0)->present), + asn_MAP_mapem_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_mapem_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_mapem_ts_regExtValue_24, + 1, /* Elements count */ + &asn_SPC_mapem_ts_regExtValue_specs_24 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_ConnectionManeuverAssist_22[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_ConnectionManeuverAssist, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_22 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_ConnectionManeuverAssist, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_ts_regExtValue_24, + select_Reg_ConnectionManeuverAssist_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_22 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_ConnectionManeuverAssist_tags_22[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_ConnectionManeuverAssist_specs_22 = { + sizeof(struct mapem_ts_Reg_ConnectionManeuverAssist), + offsetof(struct mapem_ts_Reg_ConnectionManeuverAssist, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_ConnectionManeuverAssist = { + "Reg-ConnectionManeuverAssist", + "Reg-ConnectionManeuverAssist", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_ConnectionManeuverAssist_tags_22, + sizeof(asn_DEF_mapem_ts_Reg_ConnectionManeuverAssist_tags_22) + /sizeof(asn_DEF_mapem_ts_Reg_ConnectionManeuverAssist_tags_22[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_ConnectionManeuverAssist_tags_22, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_ConnectionManeuverAssist_tags_22) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_ConnectionManeuverAssist_22, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_ConnectionManeuverAssist_specs_22 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_mapem_ts_regExtValue_27[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_GenericLane__regExtValue, choice.ConnectionTrajectory_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regExtValue_tag2el_27[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ConnectionTrajectory-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_27 = { + sizeof(struct mapem_ts_Reg_GenericLane__regExtValue), + offsetof(struct mapem_ts_Reg_GenericLane__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_GenericLane__regExtValue, present), + sizeof(((struct mapem_ts_Reg_GenericLane__regExtValue *)0)->present), + asn_MAP_mapem_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_mapem_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_mapem_ts_regExtValue_27, + 1, /* Elements count */ + &asn_SPC_mapem_ts_regExtValue_specs_27 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_GenericLane_25[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_GenericLane, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_25 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_GenericLane, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_ts_regExtValue_27, + select_Reg_GenericLane_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_25 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_GenericLane_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_GenericLane_specs_25 = { + sizeof(struct mapem_ts_Reg_GenericLane), + offsetof(struct mapem_ts_Reg_GenericLane, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_GenericLane = { + "Reg-GenericLane", + "Reg-GenericLane", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_GenericLane_tags_25, + sizeof(asn_DEF_mapem_ts_Reg_GenericLane_tags_25) + /sizeof(asn_DEF_mapem_ts_Reg_GenericLane_tags_25[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_GenericLane_tags_25, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_GenericLane_tags_25) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_GenericLane_25, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_GenericLane_specs_25 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_30 = { + sizeof(struct mapem_ts_Reg_IntersectionGeometry__regExtValue), + offsetof(struct mapem_ts_Reg_IntersectionGeometry__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_IntersectionGeometry__regExtValue, present), + sizeof(((struct mapem_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_mapem_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_mapem_ts_regExtValue_specs_30 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_IntersectionGeometry_28[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_IntersectionGeometry, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_28 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_IntersectionGeometry, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_28 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_IntersectionGeometry_tags_28[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_IntersectionGeometry_specs_28 = { + sizeof(struct mapem_ts_Reg_IntersectionGeometry), + offsetof(struct mapem_ts_Reg_IntersectionGeometry, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_IntersectionGeometry = { + "Reg-IntersectionGeometry", + "Reg-IntersectionGeometry", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_IntersectionGeometry_tags_28, + sizeof(asn_DEF_mapem_ts_Reg_IntersectionGeometry_tags_28) + /sizeof(asn_DEF_mapem_ts_Reg_IntersectionGeometry_tags_28[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_IntersectionGeometry_tags_28, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_IntersectionGeometry_tags_28) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_IntersectionGeometry_28, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_IntersectionGeometry_specs_28 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_mapem_ts_regExtValue_33[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_IntersectionState__regExtValue, choice.IntersectionState_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regExtValue_tag2el_33[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* IntersectionState-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_33 = { + sizeof(struct mapem_ts_Reg_IntersectionState__regExtValue), + offsetof(struct mapem_ts_Reg_IntersectionState__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_IntersectionState__regExtValue, present), + sizeof(((struct mapem_ts_Reg_IntersectionState__regExtValue *)0)->present), + asn_MAP_mapem_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_mapem_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_mapem_ts_regExtValue_33, + 1, /* Elements count */ + &asn_SPC_mapem_ts_regExtValue_specs_33 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_IntersectionState_31[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_IntersectionState, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_31 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_IntersectionState, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_ts_regExtValue_33, + select_Reg_IntersectionState_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_31 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_IntersectionState_tags_31[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_IntersectionState_specs_31 = { + sizeof(struct mapem_ts_Reg_IntersectionState), + offsetof(struct mapem_ts_Reg_IntersectionState, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_IntersectionState = { + "Reg-IntersectionState", + "Reg-IntersectionState", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_IntersectionState_tags_31, + sizeof(asn_DEF_mapem_ts_Reg_IntersectionState_tags_31) + /sizeof(asn_DEF_mapem_ts_Reg_IntersectionState_tags_31[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_IntersectionState_tags_31, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_IntersectionState_tags_31) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_IntersectionState_31, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_IntersectionState_specs_31 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_mapem_ts_regExtValue_36[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_LaneAttributes__regExtValue, choice.LaneAttributes_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regExtValue_tag2el_36[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* LaneAttributes-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_36 = { + sizeof(struct mapem_ts_Reg_LaneAttributes__regExtValue), + offsetof(struct mapem_ts_Reg_LaneAttributes__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_LaneAttributes__regExtValue, present), + sizeof(((struct mapem_ts_Reg_LaneAttributes__regExtValue *)0)->present), + asn_MAP_mapem_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_mapem_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_mapem_ts_regExtValue_36, + 1, /* Elements count */ + &asn_SPC_mapem_ts_regExtValue_specs_36 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_LaneAttributes_34[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_LaneAttributes, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_34 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_LaneAttributes, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_ts_regExtValue_36, + select_Reg_LaneAttributes_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_34 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_LaneAttributes_tags_34[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_LaneAttributes_specs_34 = { + sizeof(struct mapem_ts_Reg_LaneAttributes), + offsetof(struct mapem_ts_Reg_LaneAttributes, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_LaneAttributes = { + "Reg-LaneAttributes", + "Reg-LaneAttributes", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_LaneAttributes_tags_34, + sizeof(asn_DEF_mapem_ts_Reg_LaneAttributes_tags_34) + /sizeof(asn_DEF_mapem_ts_Reg_LaneAttributes_tags_34[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_LaneAttributes_tags_34, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_LaneAttributes_tags_34) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_LaneAttributes_34, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_LaneAttributes_specs_34 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_39 = { + sizeof(struct mapem_ts_Reg_LaneDataAttribute__regExtValue), + offsetof(struct mapem_ts_Reg_LaneDataAttribute__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_LaneDataAttribute__regExtValue, present), + sizeof(((struct mapem_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_mapem_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_mapem_ts_regExtValue_specs_39 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_LaneDataAttribute_37[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_LaneDataAttribute, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_37 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_LaneDataAttribute, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_37 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_LaneDataAttribute_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_LaneDataAttribute_specs_37 = { + sizeof(struct mapem_ts_Reg_LaneDataAttribute), + offsetof(struct mapem_ts_Reg_LaneDataAttribute, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_LaneDataAttribute = { + "Reg-LaneDataAttribute", + "Reg-LaneDataAttribute", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_LaneDataAttribute_tags_37, + sizeof(asn_DEF_mapem_ts_Reg_LaneDataAttribute_tags_37) + /sizeof(asn_DEF_mapem_ts_Reg_LaneDataAttribute_tags_37[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_LaneDataAttribute_tags_37, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_LaneDataAttribute_tags_37) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_LaneDataAttribute_37, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_LaneDataAttribute_specs_37 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_mapem_ts_regExtValue_42[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_MovementEvent__regExtValue, choice.MovementEvent_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regExtValue_tag2el_42[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MovementEvent-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_42 = { + sizeof(struct mapem_ts_Reg_MovementEvent__regExtValue), + offsetof(struct mapem_ts_Reg_MovementEvent__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_MovementEvent__regExtValue, present), + sizeof(((struct mapem_ts_Reg_MovementEvent__regExtValue *)0)->present), + asn_MAP_mapem_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_mapem_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_mapem_ts_regExtValue_42, + 1, /* Elements count */ + &asn_SPC_mapem_ts_regExtValue_specs_42 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_MovementEvent_40[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_MovementEvent, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_40 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_MovementEvent, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_ts_regExtValue_42, + select_Reg_MovementEvent_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_40 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_MovementEvent_tags_40[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_MovementEvent_specs_40 = { + sizeof(struct mapem_ts_Reg_MovementEvent), + offsetof(struct mapem_ts_Reg_MovementEvent, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_MovementEvent = { + "Reg-MovementEvent", + "Reg-MovementEvent", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_MovementEvent_tags_40, + sizeof(asn_DEF_mapem_ts_Reg_MovementEvent_tags_40) + /sizeof(asn_DEF_mapem_ts_Reg_MovementEvent_tags_40[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_MovementEvent_tags_40, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_MovementEvent_tags_40) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_MovementEvent_40, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_MovementEvent_specs_40 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_45 = { + sizeof(struct mapem_ts_Reg_MovementState__regExtValue), + offsetof(struct mapem_ts_Reg_MovementState__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_MovementState__regExtValue, present), + sizeof(((struct mapem_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_mapem_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_mapem_ts_regExtValue_specs_45 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_MovementState_43[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_MovementState, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_43 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_MovementState, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_43 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_MovementState_tags_43[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_MovementState_specs_43 = { + sizeof(struct mapem_ts_Reg_MovementState), + offsetof(struct mapem_ts_Reg_MovementState, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_MovementState = { + "Reg-MovementState", + "Reg-MovementState", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_MovementState_tags_43, + sizeof(asn_DEF_mapem_ts_Reg_MovementState_tags_43) + /sizeof(asn_DEF_mapem_ts_Reg_MovementState_tags_43[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_MovementState_tags_43, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_MovementState_tags_43) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_MovementState_43, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_MovementState_specs_43 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_mapem_ts_regExtValue_48[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_NodeAttributeSetXY__regExtValue, choice.NodeAttributeSet_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regExtValue_tag2el_48[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* NodeAttributeSet-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_48 = { + sizeof(struct mapem_ts_Reg_NodeAttributeSetXY__regExtValue), + offsetof(struct mapem_ts_Reg_NodeAttributeSetXY__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_NodeAttributeSetXY__regExtValue, present), + sizeof(((struct mapem_ts_Reg_NodeAttributeSetXY__regExtValue *)0)->present), + asn_MAP_mapem_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_mapem_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_mapem_ts_regExtValue_48, + 1, /* Elements count */ + &asn_SPC_mapem_ts_regExtValue_specs_48 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_NodeAttributeSetXY_46[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_NodeAttributeSetXY, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_46 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_NodeAttributeSetXY, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_ts_regExtValue_48, + select_Reg_NodeAttributeSetXY_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_46 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_NodeAttributeSetXY_tags_46[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_NodeAttributeSetXY_specs_46 = { + sizeof(struct mapem_ts_Reg_NodeAttributeSetXY), + offsetof(struct mapem_ts_Reg_NodeAttributeSetXY, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_NodeAttributeSetXY = { + "Reg-NodeAttributeSetXY", + "Reg-NodeAttributeSetXY", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_NodeAttributeSetXY_tags_46, + sizeof(asn_DEF_mapem_ts_Reg_NodeAttributeSetXY_tags_46) + /sizeof(asn_DEF_mapem_ts_Reg_NodeAttributeSetXY_tags_46[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_NodeAttributeSetXY_tags_46, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_NodeAttributeSetXY_tags_46) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_NodeAttributeSetXY_46, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_NodeAttributeSetXY_specs_46 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_51 = { + sizeof(struct mapem_ts_Reg_NodeOffsetPointXY__regExtValue), + offsetof(struct mapem_ts_Reg_NodeOffsetPointXY__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_NodeOffsetPointXY__regExtValue, present), + sizeof(((struct mapem_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_mapem_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_mapem_ts_regExtValue_specs_51 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_NodeOffsetPointXY_49[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_NodeOffsetPointXY, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_49 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_NodeOffsetPointXY, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_49 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_NodeOffsetPointXY_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_NodeOffsetPointXY_specs_49 = { + sizeof(struct mapem_ts_Reg_NodeOffsetPointXY), + offsetof(struct mapem_ts_Reg_NodeOffsetPointXY, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_NodeOffsetPointXY = { + "Reg-NodeOffsetPointXY", + "Reg-NodeOffsetPointXY", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_NodeOffsetPointXY_tags_49, + sizeof(asn_DEF_mapem_ts_Reg_NodeOffsetPointXY_tags_49) + /sizeof(asn_DEF_mapem_ts_Reg_NodeOffsetPointXY_tags_49[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_NodeOffsetPointXY_tags_49, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_NodeOffsetPointXY_tags_49) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_NodeOffsetPointXY_49, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_NodeOffsetPointXY_specs_49 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_mapem_ts_regExtValue_54[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_Position3D__regExtValue, choice.Position3D_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regExtValue_tag2el_54[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Position3D-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_54 = { + sizeof(struct mapem_ts_Reg_Position3D__regExtValue), + offsetof(struct mapem_ts_Reg_Position3D__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_Position3D__regExtValue, present), + sizeof(((struct mapem_ts_Reg_Position3D__regExtValue *)0)->present), + asn_MAP_mapem_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_mapem_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_mapem_ts_regExtValue_54, + 1, /* Elements count */ + &asn_SPC_mapem_ts_regExtValue_specs_54 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_Position3D_52[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_Position3D, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_52 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_Position3D, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_ts_regExtValue_54, + select_Reg_Position3D_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_52 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_Position3D_tags_52[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_Position3D_specs_52 = { + sizeof(struct mapem_ts_Reg_Position3D), + offsetof(struct mapem_ts_Reg_Position3D, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_Position3D = { + "Reg-Position3D", + "Reg-Position3D", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_Position3D_tags_52, + sizeof(asn_DEF_mapem_ts_Reg_Position3D_tags_52) + /sizeof(asn_DEF_mapem_ts_Reg_Position3D_tags_52[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_Position3D_tags_52, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_Position3D_tags_52) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_Position3D_52, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_Position3D_specs_52 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_mapem_ts_regExtValue_57[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_RequestorDescription__regExtValue, choice.RequestorDescription_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regExtValue_tag2el_57[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RequestorDescription-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_57 = { + sizeof(struct mapem_ts_Reg_RequestorDescription__regExtValue), + offsetof(struct mapem_ts_Reg_RequestorDescription__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_RequestorDescription__regExtValue, present), + sizeof(((struct mapem_ts_Reg_RequestorDescription__regExtValue *)0)->present), + asn_MAP_mapem_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_mapem_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_mapem_ts_regExtValue_57, + 1, /* Elements count */ + &asn_SPC_mapem_ts_regExtValue_specs_57 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_RequestorDescription_55[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_RequestorDescription, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_55 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_RequestorDescription, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_ts_regExtValue_57, + select_Reg_RequestorDescription_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_55 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_RequestorDescription_tags_55[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_RequestorDescription_specs_55 = { + sizeof(struct mapem_ts_Reg_RequestorDescription), + offsetof(struct mapem_ts_Reg_RequestorDescription, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_RequestorDescription = { + "Reg-RequestorDescription", + "Reg-RequestorDescription", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_RequestorDescription_tags_55, + sizeof(asn_DEF_mapem_ts_Reg_RequestorDescription_tags_55) + /sizeof(asn_DEF_mapem_ts_Reg_RequestorDescription_tags_55[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_RequestorDescription_tags_55, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_RequestorDescription_tags_55) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_RequestorDescription_55, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_RequestorDescription_specs_55 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_60 = { + sizeof(struct mapem_ts_Reg_RequestorType__regExtValue), + offsetof(struct mapem_ts_Reg_RequestorType__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_RequestorType__regExtValue, present), + sizeof(((struct mapem_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_mapem_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_mapem_ts_regExtValue_specs_60 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_RequestorType_58[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_RequestorType, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_58 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_RequestorType, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_58 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_RequestorType_tags_58[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_RequestorType_specs_58 = { + sizeof(struct mapem_ts_Reg_RequestorType), + offsetof(struct mapem_ts_Reg_RequestorType, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_RequestorType = { + "Reg-RequestorType", + "Reg-RequestorType", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_RequestorType_tags_58, + sizeof(asn_DEF_mapem_ts_Reg_RequestorType_tags_58) + /sizeof(asn_DEF_mapem_ts_Reg_RequestorType_tags_58[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_RequestorType_tags_58, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_RequestorType_tags_58) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_RequestorType_58, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_RequestorType_specs_58 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_mapem_ts_regExtValue_63[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_RestrictionUserType__regExtValue, choice.RestrictionUserType_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regExtValue_tag2el_63[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RestrictionUserType-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_63 = { + sizeof(struct mapem_ts_Reg_RestrictionUserType__regExtValue), + offsetof(struct mapem_ts_Reg_RestrictionUserType__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_RestrictionUserType__regExtValue, present), + sizeof(((struct mapem_ts_Reg_RestrictionUserType__regExtValue *)0)->present), + asn_MAP_mapem_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_mapem_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_mapem_ts_regExtValue_63, + 1, /* Elements count */ + &asn_SPC_mapem_ts_regExtValue_specs_63 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_RestrictionUserType_61[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_RestrictionUserType, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_61 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_RestrictionUserType, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_ts_regExtValue_63, + select_Reg_RestrictionUserType_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_61 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_RestrictionUserType_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_RestrictionUserType_specs_61 = { + sizeof(struct mapem_ts_Reg_RestrictionUserType), + offsetof(struct mapem_ts_Reg_RestrictionUserType, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_RestrictionUserType = { + "Reg-RestrictionUserType", + "Reg-RestrictionUserType", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_RestrictionUserType_tags_61, + sizeof(asn_DEF_mapem_ts_Reg_RestrictionUserType_tags_61) + /sizeof(asn_DEF_mapem_ts_Reg_RestrictionUserType_tags_61[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_RestrictionUserType_tags_61, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_RestrictionUserType_tags_61) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_RestrictionUserType_61, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_RestrictionUserType_specs_61 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_66 = { + sizeof(struct mapem_ts_Reg_RoadSegment__regExtValue), + offsetof(struct mapem_ts_Reg_RoadSegment__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_RoadSegment__regExtValue, present), + sizeof(((struct mapem_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_mapem_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_mapem_ts_regExtValue_specs_66 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_RoadSegment_64[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_RoadSegment, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_64 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_RoadSegment, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_64 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_RoadSegment_tags_64[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_RoadSegment_specs_64 = { + sizeof(struct mapem_ts_Reg_RoadSegment), + offsetof(struct mapem_ts_Reg_RoadSegment, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_RoadSegment = { + "Reg-RoadSegment", + "Reg-RoadSegment", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_RoadSegment_tags_64, + sizeof(asn_DEF_mapem_ts_Reg_RoadSegment_tags_64) + /sizeof(asn_DEF_mapem_ts_Reg_RoadSegment_tags_64[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_RoadSegment_tags_64, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_RoadSegment_tags_64) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_RoadSegment_64, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_RoadSegment_specs_64 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_69 = { + sizeof(struct mapem_ts_Reg_SignalControlZone__regExtValue), + offsetof(struct mapem_ts_Reg_SignalControlZone__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_SignalControlZone__regExtValue, present), + sizeof(((struct mapem_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_mapem_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_mapem_ts_regExtValue_specs_69 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_SignalControlZone_67[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_SignalControlZone, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_67 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_SignalControlZone, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_67 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_SignalControlZone_tags_67[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_SignalControlZone_specs_67 = { + sizeof(struct mapem_ts_Reg_SignalControlZone), + offsetof(struct mapem_ts_Reg_SignalControlZone, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_SignalControlZone = { + "Reg-SignalControlZone", + "Reg-SignalControlZone", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_SignalControlZone_tags_67, + sizeof(asn_DEF_mapem_ts_Reg_SignalControlZone_tags_67) + /sizeof(asn_DEF_mapem_ts_Reg_SignalControlZone_tags_67[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_SignalControlZone_tags_67, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_SignalControlZone_tags_67) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_SignalControlZone_67, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_SignalControlZone_specs_67 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_72 = { + sizeof(struct mapem_ts_Reg_SignalRequest__regExtValue), + offsetof(struct mapem_ts_Reg_SignalRequest__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_SignalRequest__regExtValue, present), + sizeof(((struct mapem_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_mapem_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_mapem_ts_regExtValue_specs_72 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_SignalRequest_70[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_SignalRequest, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_70 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_SignalRequest, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_70 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_SignalRequest_tags_70[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_SignalRequest_specs_70 = { + sizeof(struct mapem_ts_Reg_SignalRequest), + offsetof(struct mapem_ts_Reg_SignalRequest, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_SignalRequest = { + "Reg-SignalRequest", + "Reg-SignalRequest", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_SignalRequest_tags_70, + sizeof(asn_DEF_mapem_ts_Reg_SignalRequest_tags_70) + /sizeof(asn_DEF_mapem_ts_Reg_SignalRequest_tags_70[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_SignalRequest_tags_70, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_SignalRequest_tags_70) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_SignalRequest_70, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_SignalRequest_specs_70 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_75 = { + sizeof(struct mapem_ts_Reg_SignalRequestPackage__regExtValue), + offsetof(struct mapem_ts_Reg_SignalRequestPackage__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_SignalRequestPackage__regExtValue, present), + sizeof(((struct mapem_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_mapem_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_mapem_ts_regExtValue_specs_75 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_SignalRequestPackage_73[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_SignalRequestPackage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_73 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_SignalRequestPackage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_73 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_SignalRequestPackage_tags_73[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_SignalRequestPackage_specs_73 = { + sizeof(struct mapem_ts_Reg_SignalRequestPackage), + offsetof(struct mapem_ts_Reg_SignalRequestPackage, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_SignalRequestPackage = { + "Reg-SignalRequestPackage", + "Reg-SignalRequestPackage", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_SignalRequestPackage_tags_73, + sizeof(asn_DEF_mapem_ts_Reg_SignalRequestPackage_tags_73) + /sizeof(asn_DEF_mapem_ts_Reg_SignalRequestPackage_tags_73[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_SignalRequestPackage_tags_73, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_SignalRequestPackage_tags_73) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_SignalRequestPackage_73, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_SignalRequestPackage_specs_73 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_78 = { + sizeof(struct mapem_ts_Reg_SignalStatus__regExtValue), + offsetof(struct mapem_ts_Reg_SignalStatus__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_SignalStatus__regExtValue, present), + sizeof(((struct mapem_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_mapem_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_mapem_ts_regExtValue_specs_78 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_SignalStatus_76[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_SignalStatus, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_76 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_SignalStatus, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_76 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_SignalStatus_tags_76[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_SignalStatus_specs_76 = { + sizeof(struct mapem_ts_Reg_SignalStatus), + offsetof(struct mapem_ts_Reg_SignalStatus, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_SignalStatus = { + "Reg-SignalStatus", + "Reg-SignalStatus", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_SignalStatus_tags_76, + sizeof(asn_DEF_mapem_ts_Reg_SignalStatus_tags_76) + /sizeof(asn_DEF_mapem_ts_Reg_SignalStatus_tags_76[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_SignalStatus_tags_76, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_SignalStatus_tags_76) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_SignalStatus_76, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_SignalStatus_specs_76 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_mapem_ts_regExtValue_81[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_SignalStatusPackage__regExtValue, choice.SignalStatusPackage_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regExtValue_tag2el_81[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SignalStatusPackage-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_mapem_ts_regExtValue_specs_81 = { + sizeof(struct mapem_ts_Reg_SignalStatusPackage__regExtValue), + offsetof(struct mapem_ts_Reg_SignalStatusPackage__regExtValue, _asn_ctx), + offsetof(struct mapem_ts_Reg_SignalStatusPackage__regExtValue, present), + sizeof(((struct mapem_ts_Reg_SignalStatusPackage__regExtValue *)0)->present), + asn_MAP_mapem_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_mapem_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_mapem_ts_regExtValue_81, + 1, /* Elements count */ + &asn_SPC_mapem_ts_regExtValue_specs_81 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_Reg_SignalStatusPackage_79[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_SignalStatusPackage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_regionId_constraint_79 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Reg_SignalStatusPackage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_ts_regExtValue_81, + select_Reg_SignalStatusPackage_mapem_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_mapem_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_mapem_ts_regExtValue_constraint_79 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_Reg_SignalStatusPackage_tags_79[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_Reg_SignalStatusPackage_specs_79 = { + sizeof(struct mapem_ts_Reg_SignalStatusPackage), + offsetof(struct mapem_ts_Reg_SignalStatusPackage, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Reg_SignalStatusPackage = { + "Reg-SignalStatusPackage", + "Reg-SignalStatusPackage", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Reg_SignalStatusPackage_tags_79, + sizeof(asn_DEF_mapem_ts_Reg_SignalStatusPackage_tags_79) + /sizeof(asn_DEF_mapem_ts_Reg_SignalStatusPackage_tags_79[0]), /* 1 */ + asn_DEF_mapem_ts_Reg_SignalStatusPackage_tags_79, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Reg_SignalStatusPackage_tags_79) + /sizeof(asn_DEF_mapem_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_mapem_ts_Reg_SignalStatusPackage_79, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Reg_SignalStatusPackage_specs_79 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RegulatorySpeedLimit.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RegulatorySpeedLimit.c new file mode 100644 index 000000000..218aa2f69 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RegulatorySpeedLimit.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_RegulatorySpeedLimit_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_RegulatorySpeedLimit, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RegulatorySpeedLimit, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_RegulatorySpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_RegulatorySpeedLimit_specs_1 = { + sizeof(struct mapem_ts_RegulatorySpeedLimit), + offsetof(struct mapem_ts_RegulatorySpeedLimit, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_RegulatorySpeedLimit = { + "RegulatorySpeedLimit", + "RegulatorySpeedLimit", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_RegulatorySpeedLimit_tags_1, + sizeof(asn_DEF_mapem_ts_RegulatorySpeedLimit_tags_1) + /sizeof(asn_DEF_mapem_ts_RegulatorySpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RegulatorySpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RegulatorySpeedLimit_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_RegulatorySpeedLimit_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_RegulatorySpeedLimit_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RejectedReason.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RejectedReason.c new file mode 100644 index 000000000..9bb64ab77 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_RejectedReason_specs_1 = { + asn_MAP_mapem_ts_RejectedReason_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_RejectedReason_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RejectedReason = { + "RejectedReason", + "RejectedReason", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_RejectedReason_tags_1, + sizeof(asn_DEF_mapem_ts_RejectedReason_tags_1) + /sizeof(asn_DEF_mapem_ts_RejectedReason_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RejectedReason_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RejectedReason_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_RejectedReason_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RelevanceDistance.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RelevanceDistance.c new file mode 100644 index 000000000..20cee36ce --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_RelevanceDistance_specs_1 = { + asn_MAP_mapem_ts_RelevanceDistance_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_RelevanceDistance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RelevanceDistance = { + "RelevanceDistance", + "RelevanceDistance", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_RelevanceDistance_tags_1, + sizeof(asn_DEF_mapem_ts_RelevanceDistance_tags_1) + /sizeof(asn_DEF_mapem_ts_RelevanceDistance_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RelevanceDistance_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RelevanceDistance_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_RelevanceDistance_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RelevanceTrafficDirection.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RelevanceTrafficDirection.c new file mode 100644 index 000000000..5abfa0027 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_ts_RelevanceTrafficDirection_value2enum_1[] = { + { 0, 20, "allTrafficDirections" }, + { 1, 15, "upstreamTraffic" }, + { 2, 17, "downstreamTraffic" }, + { 3, 15, "oppositeTraffic" } +}; +static const unsigned int asn_MAP_mapem_ts_RelevanceTrafficDirection_enum2value_1[] = { + 0, /* allTrafficDirections(0) */ + 2, /* downstreamTraffic(2) */ + 3, /* oppositeTraffic(3) */ + 1 /* upstreamTraffic(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_mapem_ts_RelevanceTrafficDirection_specs_1 = { + asn_MAP_mapem_ts_RelevanceTrafficDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_RelevanceTrafficDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RelevanceTrafficDirection = { + "RelevanceTrafficDirection", + "RelevanceTrafficDirection", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_RelevanceTrafficDirection_tags_1, + sizeof(asn_DEF_mapem_ts_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_mapem_ts_RelevanceTrafficDirection_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RelevanceTrafficDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_RelevanceTrafficDirection_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RequestID.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RequestID.c new file mode 100644 index 000000000..d7c5639c6 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RequestID.h" + +int +mapem_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_mapem_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_mapem_ts_RequestID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RequestID = { + "RequestID", + "RequestID", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_RequestID_tags_1, + sizeof(asn_DEF_mapem_ts_RequestID_tags_1) + /sizeof(asn_DEF_mapem_ts_RequestID_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RequestID_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RequestID_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_RequestID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RequestImportanceLevel.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RequestImportanceLevel.c new file mode 100644 index 000000000..f5b14e61d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_RequestImportanceLevel_specs_1 = { + asn_MAP_mapem_ts_RequestImportanceLevel_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_RequestImportanceLevel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RequestImportanceLevel = { + "RequestImportanceLevel", + "RequestImportanceLevel", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_RequestImportanceLevel_tags_1, + sizeof(asn_DEF_mapem_ts_RequestImportanceLevel_tags_1) + /sizeof(asn_DEF_mapem_ts_RequestImportanceLevel_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RequestImportanceLevel_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RequestImportanceLevel_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_RequestImportanceLevel_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RequestResponseIndication.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RequestResponseIndication.c new file mode 100644 index 000000000..4307595d1 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_ts_RequestResponseIndication_value2enum_1[] = { + { 0, 7, "request" }, + { 1, 8, "response" } +}; +static const unsigned int asn_MAP_mapem_ts_RequestResponseIndication_enum2value_1[] = { + 0, /* request(0) */ + 1 /* response(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_mapem_ts_RequestResponseIndication_specs_1 = { + asn_MAP_mapem_ts_RequestResponseIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_RequestResponseIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RequestResponseIndication = { + "RequestResponseIndication", + "RequestResponseIndication", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_RequestResponseIndication_tags_1, + sizeof(asn_DEF_mapem_ts_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_mapem_ts_RequestResponseIndication_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RequestResponseIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_RequestResponseIndication_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RequestSubRole.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RequestSubRole.c new file mode 100644 index 000000000..b72b75da1 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_RequestSubRole_specs_1 = { + asn_MAP_mapem_ts_RequestSubRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_RequestSubRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RequestSubRole = { + "RequestSubRole", + "RequestSubRole", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_RequestSubRole_tags_1, + sizeof(asn_DEF_mapem_ts_RequestSubRole_tags_1) + /sizeof(asn_DEF_mapem_ts_RequestSubRole_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RequestSubRole_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RequestSubRole_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_RequestSubRole_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RequestorDescription-addGrpC.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RequestorDescription-addGrpC.c new file mode 100644 index 000000000..2ab2ff7f0 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RequestorDescription-addGrpC.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_RequestorDescription_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct mapem_ts_RequestorDescription_addGrpC, fuel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RequestorDescription_addGrpC, batteryStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_RequestorDescription_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_RequestorDescription_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_RequestorDescription_addGrpC_specs_1 = { + sizeof(struct mapem_ts_RequestorDescription_addGrpC), + offsetof(struct mapem_ts_RequestorDescription_addGrpC, _asn_ctx), + asn_MAP_mapem_ts_RequestorDescription_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_mapem_ts_RequestorDescription_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RequestorDescription_addGrpC = { + "RequestorDescription-addGrpC", + "RequestorDescription-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_RequestorDescription_addGrpC_tags_1, + sizeof(asn_DEF_mapem_ts_RequestorDescription_addGrpC_tags_1) + /sizeof(asn_DEF_mapem_ts_RequestorDescription_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RequestorDescription_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RequestorDescription_addGrpC_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_RequestorDescription_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_RequestorDescription_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RequestorDescription.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RequestorDescription.c new file mode 100644 index 000000000..bcbd8dd1e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RequestorDescription.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_ts_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_regional_specs_10 = { + sizeof(struct mapem_ts_RequestorDescription__regional), + offsetof(struct mapem_ts_RequestorDescription__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mapem_ts_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_regional_tags_10, + sizeof(asn_DEF_mapem_ts_regional_tags_10) + /sizeof(asn_DEF_mapem_ts_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_mapem_ts_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_mapem_ts_regional_tags_10) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_regional_10, + 1, /* Single element */ + &asn_SPC_mapem_ts_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_RequestorDescription_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_RequestorDescription, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RequestorDescription, type), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RequestorDescription, position), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RequestorDescription, name), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RequestorDescription, routeName), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RequestorDescription, transitStatus), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RequestorDescription, transitOccupancy), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RequestorDescription, transitSchedule), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RequestorDescription, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_mapem_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_mapem_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_mapem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_mapem_ts_RequestorDescription_oms_1[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_RequestorDescription_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_RequestorDescription_specs_1 = { + sizeof(struct mapem_ts_RequestorDescription), + offsetof(struct mapem_ts_RequestorDescription, _asn_ctx), + asn_MAP_mapem_ts_RequestorDescription_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_mapem_ts_RequestorDescription_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RequestorDescription = { + "RequestorDescription", + "RequestorDescription", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_RequestorDescription_tags_1, + sizeof(asn_DEF_mapem_ts_RequestorDescription_tags_1) + /sizeof(asn_DEF_mapem_ts_RequestorDescription_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RequestorDescription_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RequestorDescription_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_RequestorDescription_1, + 9, /* Elements count */ + &asn_SPC_mapem_ts_RequestorDescription_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RequestorPositionVector.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RequestorPositionVector.c new file mode 100644 index 000000000..922da7e16 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RequestorPositionVector.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_RequestorPositionVector_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_RequestorPositionVector, position), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RequestorPositionVector, heading), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RequestorPositionVector, speed), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_RequestorPositionVector_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_RequestorPositionVector_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_RequestorPositionVector_specs_1 = { + sizeof(struct mapem_ts_RequestorPositionVector), + offsetof(struct mapem_ts_RequestorPositionVector, _asn_ctx), + asn_MAP_mapem_ts_RequestorPositionVector_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_mapem_ts_RequestorPositionVector_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RequestorPositionVector = { + "RequestorPositionVector", + "RequestorPositionVector", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_RequestorPositionVector_tags_1, + sizeof(asn_DEF_mapem_ts_RequestorPositionVector_tags_1) + /sizeof(asn_DEF_mapem_ts_RequestorPositionVector_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RequestorPositionVector_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RequestorPositionVector_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_RequestorPositionVector_1, + 3, /* Elements count */ + &asn_SPC_mapem_ts_RequestorPositionVector_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RequestorType.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RequestorType.c new file mode 100644 index 000000000..1b818e6e2 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RequestorType.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_RequestorType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_RequestorType, role), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RequestorType, subrole), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RequestorType, request), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RequestorType, iso3883), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RequestorType, hpmsType), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RequestorType, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_RequestorType_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_RequestorType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_RequestorType_specs_1 = { + sizeof(struct mapem_ts_RequestorType), + offsetof(struct mapem_ts_RequestorType, _asn_ctx), + asn_MAP_mapem_ts_RequestorType_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_mapem_ts_RequestorType_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RequestorType = { + "RequestorType", + "RequestorType", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_RequestorType_tags_1, + sizeof(asn_DEF_mapem_ts_RequestorType_tags_1) + /sizeof(asn_DEF_mapem_ts_RequestorType_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RequestorType_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RequestorType_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_RequestorType_1, + 6, /* Elements count */ + &asn_SPC_mapem_ts_RequestorType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode.c new file mode 100644 index 000000000..051145833 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode.h" + +int +mapem_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_mapem_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_mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode = { + "RescueAndRecoveryWorkInProgressSubCauseCode", + "RescueAndRecoveryWorkInProgressSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RestrictedTypes.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RestrictedTypes.c new file mode 100644 index 000000000..bc5cb0b3c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RestrictedTypes.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_RestrictedTypes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_mapem_ts_StationType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_RestrictedTypes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_RestrictedTypes_specs_1 = { + sizeof(struct mapem_ts_RestrictedTypes), + offsetof(struct mapem_ts_RestrictedTypes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RestrictedTypes = { + "RestrictedTypes", + "RestrictedTypes", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_RestrictedTypes_tags_1, + sizeof(asn_DEF_mapem_ts_RestrictedTypes_tags_1) + /sizeof(asn_DEF_mapem_ts_RestrictedTypes_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RestrictedTypes_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RestrictedTypes_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_RestrictedTypes_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_RestrictedTypes_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RestrictionAppliesTo.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RestrictionAppliesTo.c new file mode 100644 index 000000000..632e618f9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_RestrictionAppliesTo_specs_1 = { + asn_MAP_mapem_ts_RestrictionAppliesTo_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_RestrictionAppliesTo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RestrictionAppliesTo = { + "RestrictionAppliesTo", + "RestrictionAppliesTo", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_RestrictionAppliesTo_tags_1, + sizeof(asn_DEF_mapem_ts_RestrictionAppliesTo_tags_1) + /sizeof(asn_DEF_mapem_ts_RestrictionAppliesTo_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RestrictionAppliesTo_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RestrictionAppliesTo_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_RestrictionAppliesTo_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RestrictionClassAssignment.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RestrictionClassAssignment.c new file mode 100644 index 000000000..e4562ec67 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RestrictionClassAssignment.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_RestrictionClassAssignment_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_RestrictionClassAssignment, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RestrictionClassAssignment, users), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_RestrictionClassAssignment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_RestrictionClassAssignment_specs_1 = { + sizeof(struct mapem_ts_RestrictionClassAssignment), + offsetof(struct mapem_ts_RestrictionClassAssignment, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_RestrictionClassAssignment = { + "RestrictionClassAssignment", + "RestrictionClassAssignment", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_RestrictionClassAssignment_tags_1, + sizeof(asn_DEF_mapem_ts_RestrictionClassAssignment_tags_1) + /sizeof(asn_DEF_mapem_ts_RestrictionClassAssignment_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RestrictionClassAssignment_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RestrictionClassAssignment_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_RestrictionClassAssignment_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_RestrictionClassAssignment_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RestrictionClassID.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RestrictionClassID.c new file mode 100644 index 000000000..d1cad358d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RestrictionClassID.h" + +int +mapem_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_mapem_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_mapem_ts_RestrictionClassID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RestrictionClassID = { + "RestrictionClassID", + "RestrictionClassID", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_RestrictionClassID_tags_1, + sizeof(asn_DEF_mapem_ts_RestrictionClassID_tags_1) + /sizeof(asn_DEF_mapem_ts_RestrictionClassID_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RestrictionClassID_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RestrictionClassID_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_RestrictionClassID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RestrictionClassList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RestrictionClassList.c new file mode 100644 index 000000000..14c4039b6 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RestrictionClassList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_RestrictionClassList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_RestrictionClassList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_RestrictionClassList_specs_1 = { + sizeof(struct mapem_ts_RestrictionClassList), + offsetof(struct mapem_ts_RestrictionClassList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RestrictionClassList = { + "RestrictionClassList", + "RestrictionClassList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_RestrictionClassList_tags_1, + sizeof(asn_DEF_mapem_ts_RestrictionClassList_tags_1) + /sizeof(asn_DEF_mapem_ts_RestrictionClassList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RestrictionClassList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RestrictionClassList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_RestrictionClassList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_RestrictionClassList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RestrictionUserType-addGrpC.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RestrictionUserType-addGrpC.c new file mode 100644 index 000000000..38985baab --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RestrictionUserType-addGrpC.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_RestrictionUserType_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct mapem_ts_RestrictionUserType_addGrpC, emission), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RestrictionUserType_addGrpC, fuel), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_RestrictionUserType_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_RestrictionUserType_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_RestrictionUserType_addGrpC_specs_1 = { + sizeof(struct mapem_ts_RestrictionUserType_addGrpC), + offsetof(struct mapem_ts_RestrictionUserType_addGrpC, _asn_ctx), + asn_MAP_mapem_ts_RestrictionUserType_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_mapem_ts_RestrictionUserType_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RestrictionUserType_addGrpC = { + "RestrictionUserType-addGrpC", + "RestrictionUserType-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_RestrictionUserType_addGrpC_tags_1, + sizeof(asn_DEF_mapem_ts_RestrictionUserType_addGrpC_tags_1) + /sizeof(asn_DEF_mapem_ts_RestrictionUserType_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RestrictionUserType_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RestrictionUserType_addGrpC_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_RestrictionUserType_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_RestrictionUserType_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RestrictionUserType.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RestrictionUserType.c new file mode 100644 index 000000000..52dbc39ab --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RestrictionUserType.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_regional_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regional_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_regional_specs_3 = { + sizeof(struct mapem_ts_RestrictionUserType__regional), + offsetof(struct mapem_ts_RestrictionUserType__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mapem_ts_regional_3 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_regional_tags_3, + sizeof(asn_DEF_mapem_ts_regional_tags_3) + /sizeof(asn_DEF_mapem_ts_regional_tags_3[0]) - 1, /* 1 */ + asn_DEF_mapem_ts_regional_tags_3, /* Same as above */ + sizeof(asn_DEF_mapem_ts_regional_tags_3) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_regional_3, + 1, /* Single element */ + &asn_SPC_mapem_ts_regional_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_RestrictionUserType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_RestrictionUserType, choice.basicType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RestrictionUserType, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_mapem_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_mapem_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_mapem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_RestrictionUserType_specs_1 = { + sizeof(struct mapem_ts_RestrictionUserType), + offsetof(struct mapem_ts_RestrictionUserType, _asn_ctx), + offsetof(struct mapem_ts_RestrictionUserType, present), + sizeof(((struct mapem_ts_RestrictionUserType *)0)->present), + asn_MAP_mapem_ts_RestrictionUserType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_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_mapem_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_mapem_ts_RestrictionUserType_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_RestrictionUserType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RestrictionUserTypeList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RestrictionUserTypeList.c new file mode 100644 index 000000000..82f4c8e8d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RestrictionUserTypeList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_RestrictionUserTypeList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_mapem_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_mapem_ts_RestrictionUserTypeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_RestrictionUserTypeList_specs_1 = { + sizeof(struct mapem_ts_RestrictionUserTypeList), + offsetof(struct mapem_ts_RestrictionUserTypeList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RestrictionUserTypeList = { + "RestrictionUserTypeList", + "RestrictionUserTypeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_RestrictionUserTypeList_tags_1, + sizeof(asn_DEF_mapem_ts_RestrictionUserTypeList_tags_1) + /sizeof(asn_DEF_mapem_ts_RestrictionUserTypeList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RestrictionUserTypeList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RestrictionUserTypeList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_RestrictionUserTypeList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_RestrictionUserTypeList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RoadLaneSetList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RoadLaneSetList.c new file mode 100644 index 000000000..acc4d8432 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RoadLaneSetList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_RoadLaneSetList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_RoadLaneSetList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_RoadLaneSetList_specs_1 = { + sizeof(struct mapem_ts_RoadLaneSetList), + offsetof(struct mapem_ts_RoadLaneSetList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RoadLaneSetList = { + "RoadLaneSetList", + "RoadLaneSetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_RoadLaneSetList_tags_1, + sizeof(asn_DEF_mapem_ts_RoadLaneSetList_tags_1) + /sizeof(asn_DEF_mapem_ts_RoadLaneSetList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RoadLaneSetList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RoadLaneSetList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_RoadLaneSetList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_RoadLaneSetList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RoadRegulatorID.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RoadRegulatorID.c new file mode 100644 index 000000000..df50b4ff1 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RoadRegulatorID.h" + +int +mapem_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_mapem_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_mapem_ts_RoadRegulatorID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RoadRegulatorID = { + "RoadRegulatorID", + "RoadRegulatorID", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_RoadRegulatorID_tags_1, + sizeof(asn_DEF_mapem_ts_RoadRegulatorID_tags_1) + /sizeof(asn_DEF_mapem_ts_RoadRegulatorID_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RoadRegulatorID_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RoadRegulatorID_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_RoadRegulatorID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RoadSegment.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RoadSegment.c new file mode 100644 index 000000000..6098ef3e2 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RoadSegment.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_ts_regional_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regional_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_regional_specs_9 = { + sizeof(struct mapem_ts_RoadSegment__regional), + offsetof(struct mapem_ts_RoadSegment__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mapem_ts_regional_9 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_regional_tags_9, + sizeof(asn_DEF_mapem_ts_regional_tags_9) + /sizeof(asn_DEF_mapem_ts_regional_tags_9[0]) - 1, /* 1 */ + asn_DEF_mapem_ts_regional_tags_9, /* Same as above */ + sizeof(asn_DEF_mapem_ts_regional_tags_9) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_regional_9, + 1, /* Single element */ + &asn_SPC_mapem_ts_regional_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_RoadSegment_1[] = { + { ATF_POINTER, 1, offsetof(struct mapem_ts_RoadSegment, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RoadSegment, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RoadSegment, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RoadSegment, refPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RoadSegment, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RoadSegment, speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RoadSegment, roadLaneSet), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RoadSegment, regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_mapem_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_mapem_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_mapem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_mapem_ts_RoadSegment_oms_1[] = { 0, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_RoadSegment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_RoadSegment_specs_1 = { + sizeof(struct mapem_ts_RoadSegment), + offsetof(struct mapem_ts_RoadSegment, _asn_ctx), + asn_MAP_mapem_ts_RoadSegment_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_mapem_ts_RoadSegment_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RoadSegment = { + "RoadSegment", + "RoadSegment", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_RoadSegment_tags_1, + sizeof(asn_DEF_mapem_ts_RoadSegment_tags_1) + /sizeof(asn_DEF_mapem_ts_RoadSegment_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RoadSegment_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RoadSegment_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_RoadSegment_1, + 8, /* Elements count */ + &asn_SPC_mapem_ts_RoadSegment_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RoadSegmentID.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RoadSegmentID.c new file mode 100644 index 000000000..ca34b1c48 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RoadSegmentID.h" + +int +mapem_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_mapem_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_mapem_ts_RoadSegmentID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RoadSegmentID = { + "RoadSegmentID", + "RoadSegmentID", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_RoadSegmentID_tags_1, + sizeof(asn_DEF_mapem_ts_RoadSegmentID_tags_1) + /sizeof(asn_DEF_mapem_ts_RoadSegmentID_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RoadSegmentID_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RoadSegmentID_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_RoadSegmentID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RoadSegmentList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RoadSegmentList.c new file mode 100644 index 000000000..6cdef8edf --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RoadSegmentList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_RoadSegmentList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_RoadSegmentList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_RoadSegmentList_specs_1 = { + sizeof(struct mapem_ts_RoadSegmentList), + offsetof(struct mapem_ts_RoadSegmentList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RoadSegmentList = { + "RoadSegmentList", + "RoadSegmentList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_RoadSegmentList_tags_1, + sizeof(asn_DEF_mapem_ts_RoadSegmentList_tags_1) + /sizeof(asn_DEF_mapem_ts_RoadSegmentList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RoadSegmentList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RoadSegmentList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_RoadSegmentList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_RoadSegmentList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RoadSegmentReferenceID.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RoadSegmentReferenceID.c new file mode 100644 index 000000000..16bb7ac8a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RoadSegmentReferenceID.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_RoadSegmentReferenceID_1[] = { + { ATF_POINTER, 1, offsetof(struct mapem_ts_RoadSegmentReferenceID, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_RoadSegmentReferenceID, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_RoadSegmentReferenceID_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_RoadSegmentReferenceID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_RoadSegmentReferenceID_specs_1 = { + sizeof(struct mapem_ts_RoadSegmentReferenceID), + offsetof(struct mapem_ts_RoadSegmentReferenceID, _asn_ctx), + asn_MAP_mapem_ts_RoadSegmentReferenceID_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_mapem_ts_RoadSegmentReferenceID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RoadSegmentReferenceID = { + "RoadSegmentReferenceID", + "RoadSegmentReferenceID", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_RoadSegmentReferenceID_tags_1, + sizeof(asn_DEF_mapem_ts_RoadSegmentReferenceID_tags_1) + /sizeof(asn_DEF_mapem_ts_RoadSegmentReferenceID_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RoadSegmentReferenceID_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RoadSegmentReferenceID_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_RoadSegmentReferenceID_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_RoadSegmentReferenceID_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RoadType.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RoadType.c new file mode 100644 index 000000000..5305bfcd3 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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) +static asn_per_constraints_t asn_PER_type_mapem_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_mapem_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_mapem_ts_RoadType_enum2value_1[] = { + 2, /* nonUrban-NoStructuralSeparationToOppositeLanes(2) */ + 3, /* nonUrban-WithStructuralSeparationToOppositeLanes(3) */ + 0, /* urban-NoStructuralSeparationToOppositeLanes(0) */ + 1 /* urban-WithStructuralSeparationToOppositeLanes(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_mapem_ts_RoadType_specs_1 = { + asn_MAP_mapem_ts_RoadType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_RoadType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RoadType = { + "RoadType", + "RoadType", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_RoadType_tags_1, + sizeof(asn_DEF_mapem_ts_RoadType_tags_1) + /sizeof(asn_DEF_mapem_ts_RoadType_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RoadType_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RoadType_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_RoadType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RoadwayCrownAngle.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RoadwayCrownAngle.c new file mode 100644 index 000000000..0e0cae307 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RoadwayCrownAngle.h" + +int +mapem_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_mapem_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_mapem_ts_RoadwayCrownAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RoadwayCrownAngle = { + "RoadwayCrownAngle", + "RoadwayCrownAngle", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_RoadwayCrownAngle_tags_1, + sizeof(asn_DEF_mapem_ts_RoadwayCrownAngle_tags_1) + /sizeof(asn_DEF_mapem_ts_RoadwayCrownAngle_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RoadwayCrownAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RoadwayCrownAngle_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_RoadwayCrownAngle_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RoadworksSubCauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_RoadworksSubCauseCode.c new file mode 100644 index 000000000..f2ceca11f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_RoadworksSubCauseCode.h" + +int +mapem_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_mapem_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_mapem_ts_RoadworksSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_RoadworksSubCauseCode = { + "RoadworksSubCauseCode", + "RoadworksSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_RoadworksSubCauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_RoadworksSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_RoadworksSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_RoadworksSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SPAT.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SPAT.c new file mode 100644 index 000000000..6625326f1 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SPAT.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_ts_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_regional_specs_5 = { + sizeof(struct mapem_ts_SPAT__regional), + offsetof(struct mapem_ts_SPAT__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mapem_ts_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_regional_tags_5, + sizeof(asn_DEF_mapem_ts_regional_tags_5) + /sizeof(asn_DEF_mapem_ts_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_mapem_ts_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_mapem_ts_regional_tags_5) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_regional_5, + 1, /* Single element */ + &asn_SPC_mapem_ts_regional_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_mapem_ts_SPAT_1[] = { + { ATF_POINTER, 2, offsetof(struct mapem_ts_SPAT, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SPAT, name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SPAT, intersections), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SPAT, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_mapem_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_mapem_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_mapem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_mapem_ts_SPAT_oms_1[] = { 0, 1, 3 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_SPAT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_SPAT_specs_1 = { + sizeof(struct mapem_ts_SPAT), + offsetof(struct mapem_ts_SPAT, _asn_ctx), + asn_MAP_mapem_ts_SPAT_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_mapem_ts_SPAT_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SPAT = { + "SPAT", + "SPAT", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_SPAT_tags_1, + sizeof(asn_DEF_mapem_ts_SPAT_tags_1) + /sizeof(asn_DEF_mapem_ts_SPAT_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SPAT_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SPAT_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_SPAT_1, + 4, /* Elements count */ + &asn_SPC_mapem_ts_SPAT_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Scale-B12.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Scale-B12.c new file mode 100644 index 000000000..6dd07e2ad --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Scale-B12.h" + +int +mapem_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_mapem_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_mapem_ts_Scale_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_Scale_B12 = { + "Scale-B12", + "Scale-B12", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_Scale_B12_tags_1, + sizeof(asn_DEF_mapem_ts_Scale_B12_tags_1) + /sizeof(asn_DEF_mapem_ts_Scale_B12_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Scale_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Scale_B12_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_Scale_B12_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SegmentAttributeXY.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SegmentAttributeXY.c new file mode 100644 index 000000000..3a4f51e9c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_SegmentAttributeXY_specs_1 = { + asn_MAP_mapem_ts_SegmentAttributeXY_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_SegmentAttributeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SegmentAttributeXY = { + "SegmentAttributeXY", + "SegmentAttributeXY", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_SegmentAttributeXY_tags_1, + sizeof(asn_DEF_mapem_ts_SegmentAttributeXY_tags_1) + /sizeof(asn_DEF_mapem_ts_SegmentAttributeXY_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SegmentAttributeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SegmentAttributeXY_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_SegmentAttributeXY_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SegmentAttributeXYList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SegmentAttributeXYList.c new file mode 100644 index 000000000..94bf67dee --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SegmentAttributeXYList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_SegmentAttributeXYList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_SegmentAttributeXYList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_SegmentAttributeXYList_specs_1 = { + sizeof(struct mapem_ts_SegmentAttributeXYList), + offsetof(struct mapem_ts_SegmentAttributeXYList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SegmentAttributeXYList = { + "SegmentAttributeXYList", + "SegmentAttributeXYList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_SegmentAttributeXYList_tags_1, + sizeof(asn_DEF_mapem_ts_SegmentAttributeXYList_tags_1) + /sizeof(asn_DEF_mapem_ts_SegmentAttributeXYList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SegmentAttributeXYList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SegmentAttributeXYList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_SegmentAttributeXYList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_SegmentAttributeXYList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SemiAxisLength.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SemiAxisLength.c new file mode 100644 index 000000000..cf6e4fd4c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SemiAxisLength.h" + +int +mapem_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_mapem_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_mapem_ts_SemiAxisLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SemiAxisLength = { + "SemiAxisLength", + "SemiAxisLength", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_SemiAxisLength_tags_1, + sizeof(asn_DEF_mapem_ts_SemiAxisLength_tags_1) + /sizeof(asn_DEF_mapem_ts_SemiAxisLength_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SemiAxisLength_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SemiAxisLength_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_SemiAxisLength_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SemiMajorAxisAccuracy.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SemiMajorAxisAccuracy.c new file mode 100644 index 000000000..d8cbe0957 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SemiMajorAxisAccuracy.h" + +int +mapem_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_mapem_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_mapem_ts_SemiMajorAxisAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SemiMajorAxisAccuracy = { + "SemiMajorAxisAccuracy", + "SemiMajorAxisAccuracy", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_SemiMajorAxisAccuracy_tags_1, + sizeof(asn_DEF_mapem_ts_SemiMajorAxisAccuracy_tags_1) + /sizeof(asn_DEF_mapem_ts_SemiMajorAxisAccuracy_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SemiMajorAxisAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SemiMajorAxisAccuracy_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_SemiMajorAxisAccuracy_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SemiMajorAxisOrientation.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SemiMajorAxisOrientation.c new file mode 100644 index 000000000..d82b9fbf7 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SemiMajorAxisOrientation.h" + +int +mapem_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_mapem_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_mapem_ts_SemiMajorAxisOrientation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SemiMajorAxisOrientation = { + "SemiMajorAxisOrientation", + "SemiMajorAxisOrientation", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_SemiMajorAxisOrientation_tags_1, + sizeof(asn_DEF_mapem_ts_SemiMajorAxisOrientation_tags_1) + /sizeof(asn_DEF_mapem_ts_SemiMajorAxisOrientation_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SemiMajorAxisOrientation_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SemiMajorAxisOrientation_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_SemiMajorAxisOrientation_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SemiMinorAxisAccuracy.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SemiMinorAxisAccuracy.c new file mode 100644 index 000000000..5d114d915 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SemiMinorAxisAccuracy.h" + +int +mapem_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_mapem_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_mapem_ts_SemiMinorAxisAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SemiMinorAxisAccuracy = { + "SemiMinorAxisAccuracy", + "SemiMinorAxisAccuracy", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_SemiMinorAxisAccuracy_tags_1, + sizeof(asn_DEF_mapem_ts_SemiMinorAxisAccuracy_tags_1) + /sizeof(asn_DEF_mapem_ts_SemiMinorAxisAccuracy_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SemiMinorAxisAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SemiMinorAxisAccuracy_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_SemiMinorAxisAccuracy_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SequenceNumber.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SequenceNumber.c new file mode 100644 index 000000000..4d3a54e3e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SequenceNumber.h" + +int +mapem_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_mapem_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_mapem_ts_SequenceNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SequenceNumber = { + "SequenceNumber", + "SequenceNumber", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_SequenceNumber_tags_1, + sizeof(asn_DEF_mapem_ts_SequenceNumber_tags_1) + /sizeof(asn_DEF_mapem_ts_SequenceNumber_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SequenceNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SequenceNumber_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_SequenceNumber_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ServiceApplicationLimit.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ServiceApplicationLimit.c new file mode 100644 index 000000000..5a484ebca --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ServiceApplicationLimit.h" + +int +mapem_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_mapem_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_mapem_ts_ServiceApplicationLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ServiceApplicationLimit = { + "ServiceApplicationLimit", + "ServiceApplicationLimit", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_ServiceApplicationLimit_tags_1, + sizeof(asn_DEF_mapem_ts_ServiceApplicationLimit_tags_1) + /sizeof(asn_DEF_mapem_ts_ServiceApplicationLimit_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ServiceApplicationLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ServiceApplicationLimit_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_ServiceApplicationLimit_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ServiceNumber.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ServiceNumber.c new file mode 100644 index 000000000..65d7cd2aa --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ServiceNumber.h" + +int +mapem_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_mapem_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_mapem_ts_ServiceNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ServiceNumber = { + "ServiceNumber", + "ServiceNumber", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_ServiceNumber_tags_1, + sizeof(asn_DEF_mapem_ts_ServiceNumber_tags_1) + /sizeof(asn_DEF_mapem_ts_ServiceNumber_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ServiceNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ServiceNumber_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_ServiceNumber_constraint + }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalControlZone.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalControlZone.c new file mode 100644 index 000000000..ed3583089 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalControlZone.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_SignalControlZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_SignalControlZone, zone), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_SignalControlZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_ts_SignalControlZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* zone */ +}; +asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_SignalControlZone_specs_1 = { + sizeof(struct mapem_ts_SignalControlZone), + offsetof(struct mapem_ts_SignalControlZone, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_SignalControlZone = { + "SignalControlZone", + "SignalControlZone", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_SignalControlZone_tags_1, + sizeof(asn_DEF_mapem_ts_SignalControlZone_tags_1) + /sizeof(asn_DEF_mapem_ts_SignalControlZone_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SignalControlZone_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SignalControlZone_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_SignalControlZone_1, + 1, /* Elements count */ + &asn_SPC_mapem_ts_SignalControlZone_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalGroupID.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalGroupID.c new file mode 100644 index 000000000..9cf691c23 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalGroupID.h" + +int +mapem_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_mapem_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_mapem_ts_SignalGroupID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalGroupID = { + "SignalGroupID", + "SignalGroupID", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_SignalGroupID_tags_1, + sizeof(asn_DEF_mapem_ts_SignalGroupID_tags_1) + /sizeof(asn_DEF_mapem_ts_SignalGroupID_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SignalGroupID_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SignalGroupID_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_SignalGroupID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalHeadLocation.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalHeadLocation.c new file mode 100644 index 000000000..21ebf3bc1 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalHeadLocation.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_SignalHeadLocation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_SignalHeadLocation, nodeXY), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalHeadLocation, nodeZ), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalHeadLocation, signalGroupID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_SignalHeadLocation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_SignalHeadLocation_specs_1 = { + sizeof(struct mapem_ts_SignalHeadLocation), + offsetof(struct mapem_ts_SignalHeadLocation, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_SignalHeadLocation = { + "SignalHeadLocation", + "SignalHeadLocation", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_SignalHeadLocation_tags_1, + sizeof(asn_DEF_mapem_ts_SignalHeadLocation_tags_1) + /sizeof(asn_DEF_mapem_ts_SignalHeadLocation_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SignalHeadLocation_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SignalHeadLocation_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_SignalHeadLocation_1, + 3, /* Elements count */ + &asn_SPC_mapem_ts_SignalHeadLocation_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalHeadLocationList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalHeadLocationList.c new file mode 100644 index 000000000..03a5eed67 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalHeadLocationList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_SignalHeadLocationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_SignalHeadLocationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_SignalHeadLocationList_specs_1 = { + sizeof(struct mapem_ts_SignalHeadLocationList), + offsetof(struct mapem_ts_SignalHeadLocationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalHeadLocationList = { + "SignalHeadLocationList", + "SignalHeadLocationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_SignalHeadLocationList_tags_1, + sizeof(asn_DEF_mapem_ts_SignalHeadLocationList_tags_1) + /sizeof(asn_DEF_mapem_ts_SignalHeadLocationList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SignalHeadLocationList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SignalHeadLocationList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_SignalHeadLocationList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_SignalHeadLocationList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalRequest.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalRequest.c new file mode 100644 index 000000000..939bb2d8d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalRequest.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_ts_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_regional_specs_7 = { + sizeof(struct mapem_ts_SignalRequest__regional), + offsetof(struct mapem_ts_SignalRequest__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mapem_ts_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_regional_tags_7, + sizeof(asn_DEF_mapem_ts_regional_tags_7) + /sizeof(asn_DEF_mapem_ts_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_mapem_ts_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_mapem_ts_regional_tags_7) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_regional_7, + 1, /* Single element */ + &asn_SPC_mapem_ts_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_SignalRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_SignalRequest, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalRequest, requestID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalRequest, requestType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalRequest, inBoundLane), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalRequest, outBoundLane), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalRequest, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_mapem_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_mapem_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_mapem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_mapem_ts_SignalRequest_oms_1[] = { 4, 5 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_SignalRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_SignalRequest_specs_1 = { + sizeof(struct mapem_ts_SignalRequest), + offsetof(struct mapem_ts_SignalRequest, _asn_ctx), + asn_MAP_mapem_ts_SignalRequest_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_mapem_ts_SignalRequest_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalRequest = { + "SignalRequest", + "SignalRequest", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_SignalRequest_tags_1, + sizeof(asn_DEF_mapem_ts_SignalRequest_tags_1) + /sizeof(asn_DEF_mapem_ts_SignalRequest_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SignalRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SignalRequest_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_SignalRequest_1, + 6, /* Elements count */ + &asn_SPC_mapem_ts_SignalRequest_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalRequestList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalRequestList.c new file mode 100644 index 000000000..200b9b0a4 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalRequestList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_SignalRequestList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_SignalRequestList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_SignalRequestList_specs_1 = { + sizeof(struct mapem_ts_SignalRequestList), + offsetof(struct mapem_ts_SignalRequestList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalRequestList = { + "SignalRequestList", + "SignalRequestList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_SignalRequestList_tags_1, + sizeof(asn_DEF_mapem_ts_SignalRequestList_tags_1) + /sizeof(asn_DEF_mapem_ts_SignalRequestList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SignalRequestList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SignalRequestList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_SignalRequestList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_SignalRequestList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalRequestMessage.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalRequestMessage.c new file mode 100644 index 000000000..0dbc16415 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalRequestMessage.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_ts_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_regional_specs_7 = { + sizeof(struct mapem_ts_SignalRequestMessage__regional), + offsetof(struct mapem_ts_SignalRequestMessage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mapem_ts_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_regional_tags_7, + sizeof(asn_DEF_mapem_ts_regional_tags_7) + /sizeof(asn_DEF_mapem_ts_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_mapem_ts_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_mapem_ts_regional_tags_7) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_regional_7, + 1, /* Single element */ + &asn_SPC_mapem_ts_regional_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_mapem_ts_SignalRequestMessage_1[] = { + { ATF_POINTER, 1, offsetof(struct mapem_ts_SignalRequestMessage, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalRequestMessage, second), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalRequestMessage, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalRequestMessage, requests), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalRequestMessage, requestor), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalRequestMessage, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_mapem_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_mapem_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_mapem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_mapem_ts_SignalRequestMessage_oms_1[] = { 0, 2, 3, 5 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_SignalRequestMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_SignalRequestMessage_specs_1 = { + sizeof(struct mapem_ts_SignalRequestMessage), + offsetof(struct mapem_ts_SignalRequestMessage, _asn_ctx), + asn_MAP_mapem_ts_SignalRequestMessage_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_mapem_ts_SignalRequestMessage_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalRequestMessage = { + "SignalRequestMessage", + "SignalRequestMessage", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_SignalRequestMessage_tags_1, + sizeof(asn_DEF_mapem_ts_SignalRequestMessage_tags_1) + /sizeof(asn_DEF_mapem_ts_SignalRequestMessage_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SignalRequestMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SignalRequestMessage_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_SignalRequestMessage_1, + 6, /* Elements count */ + &asn_SPC_mapem_ts_SignalRequestMessage_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalRequestPackage.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalRequestPackage.c new file mode 100644 index 000000000..f06568105 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalRequestPackage.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_ts_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_regional_specs_6 = { + sizeof(struct mapem_ts_SignalRequestPackage__regional), + offsetof(struct mapem_ts_SignalRequestPackage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mapem_ts_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_regional_tags_6, + sizeof(asn_DEF_mapem_ts_regional_tags_6) + /sizeof(asn_DEF_mapem_ts_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_mapem_ts_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_mapem_ts_regional_tags_6) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_regional_6, + 1, /* Single element */ + &asn_SPC_mapem_ts_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_SignalRequestPackage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_SignalRequestPackage, request), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalRequestPackage, minute), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalRequestPackage, second), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalRequestPackage, duration), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalRequestPackage, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_mapem_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_mapem_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_mapem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_mapem_ts_SignalRequestPackage_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_SignalRequestPackage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_SignalRequestPackage_specs_1 = { + sizeof(struct mapem_ts_SignalRequestPackage), + offsetof(struct mapem_ts_SignalRequestPackage, _asn_ctx), + asn_MAP_mapem_ts_SignalRequestPackage_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_mapem_ts_SignalRequestPackage_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalRequestPackage = { + "SignalRequestPackage", + "SignalRequestPackage", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_SignalRequestPackage_tags_1, + sizeof(asn_DEF_mapem_ts_SignalRequestPackage_tags_1) + /sizeof(asn_DEF_mapem_ts_SignalRequestPackage_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SignalRequestPackage_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SignalRequestPackage_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_SignalRequestPackage_1, + 5, /* Elements count */ + &asn_SPC_mapem_ts_SignalRequestPackage_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalRequesterInfo.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalRequesterInfo.c new file mode 100644 index 000000000..59d3bc2c0 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalRequesterInfo.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_SignalRequesterInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_SignalRequesterInfo, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalRequesterInfo, request), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalRequesterInfo, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalRequesterInfo, role), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalRequesterInfo, typeData), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_SignalRequesterInfo_oms_1[] = { 3, 4 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_SignalRequesterInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_SignalRequesterInfo_specs_1 = { + sizeof(struct mapem_ts_SignalRequesterInfo), + offsetof(struct mapem_ts_SignalRequesterInfo, _asn_ctx), + asn_MAP_mapem_ts_SignalRequesterInfo_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_mapem_ts_SignalRequesterInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalRequesterInfo = { + "SignalRequesterInfo", + "SignalRequesterInfo", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_SignalRequesterInfo_tags_1, + sizeof(asn_DEF_mapem_ts_SignalRequesterInfo_tags_1) + /sizeof(asn_DEF_mapem_ts_SignalRequesterInfo_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SignalRequesterInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SignalRequesterInfo_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_SignalRequesterInfo_1, + 5, /* Elements count */ + &asn_SPC_mapem_ts_SignalRequesterInfo_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalStatus.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalStatus.c new file mode 100644 index 000000000..742c56261 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalStatus.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_ts_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_regional_specs_5 = { + sizeof(struct mapem_ts_SignalStatus__regional), + offsetof(struct mapem_ts_SignalStatus__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mapem_ts_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_regional_tags_5, + sizeof(asn_DEF_mapem_ts_regional_tags_5) + /sizeof(asn_DEF_mapem_ts_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_mapem_ts_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_mapem_ts_regional_tags_5) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_regional_5, + 1, /* Single element */ + &asn_SPC_mapem_ts_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_SignalStatus_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_SignalStatus, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalStatus, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalStatus, sigStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalStatus, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_mapem_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_mapem_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_mapem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_mapem_ts_SignalStatus_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_SignalStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_SignalStatus_specs_1 = { + sizeof(struct mapem_ts_SignalStatus), + offsetof(struct mapem_ts_SignalStatus, _asn_ctx), + asn_MAP_mapem_ts_SignalStatus_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_mapem_ts_SignalStatus_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalStatus = { + "SignalStatus", + "SignalStatus", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_SignalStatus_tags_1, + sizeof(asn_DEF_mapem_ts_SignalStatus_tags_1) + /sizeof(asn_DEF_mapem_ts_SignalStatus_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SignalStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SignalStatus_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_SignalStatus_1, + 4, /* Elements count */ + &asn_SPC_mapem_ts_SignalStatus_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalStatusList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalStatusList.c new file mode 100644 index 000000000..bd3745f55 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalStatusList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_SignalStatusList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_SignalStatusList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_SignalStatusList_specs_1 = { + sizeof(struct mapem_ts_SignalStatusList), + offsetof(struct mapem_ts_SignalStatusList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalStatusList = { + "SignalStatusList", + "SignalStatusList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_SignalStatusList_tags_1, + sizeof(asn_DEF_mapem_ts_SignalStatusList_tags_1) + /sizeof(asn_DEF_mapem_ts_SignalStatusList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SignalStatusList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SignalStatusList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_SignalStatusList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_SignalStatusList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalStatusMessage.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalStatusMessage.c new file mode 100644 index 000000000..e7a13f747 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalStatusMessage.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_ts_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_regional_specs_6 = { + sizeof(struct mapem_ts_SignalStatusMessage__regional), + offsetof(struct mapem_ts_SignalStatusMessage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mapem_ts_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_regional_tags_6, + sizeof(asn_DEF_mapem_ts_regional_tags_6) + /sizeof(asn_DEF_mapem_ts_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_mapem_ts_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_mapem_ts_regional_tags_6) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_regional_6, + 1, /* Single element */ + &asn_SPC_mapem_ts_regional_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_mapem_ts_SignalStatusMessage_1[] = { + { ATF_POINTER, 1, offsetof(struct mapem_ts_SignalStatusMessage, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalStatusMessage, second), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalStatusMessage, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalStatusMessage, status), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalStatusMessage, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_mapem_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_mapem_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_mapem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_mapem_ts_SignalStatusMessage_oms_1[] = { 0, 2, 4 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_SignalStatusMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_SignalStatusMessage_specs_1 = { + sizeof(struct mapem_ts_SignalStatusMessage), + offsetof(struct mapem_ts_SignalStatusMessage, _asn_ctx), + asn_MAP_mapem_ts_SignalStatusMessage_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_mapem_ts_SignalStatusMessage_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalStatusMessage = { + "SignalStatusMessage", + "SignalStatusMessage", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_SignalStatusMessage_tags_1, + sizeof(asn_DEF_mapem_ts_SignalStatusMessage_tags_1) + /sizeof(asn_DEF_mapem_ts_SignalStatusMessage_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SignalStatusMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SignalStatusMessage_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_SignalStatusMessage_1, + 5, /* Elements count */ + &asn_SPC_mapem_ts_SignalStatusMessage_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalStatusPackage-addGrpC.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalStatusPackage-addGrpC.c new file mode 100644 index 000000000..ae7cfaa27 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalStatusPackage-addGrpC.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_SignalStatusPackage_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct mapem_ts_SignalStatusPackage_addGrpC, synchToSchedule), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalStatusPackage_addGrpC, rejectedReason), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_SignalStatusPackage_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_SignalStatusPackage_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_SignalStatusPackage_addGrpC_specs_1 = { + sizeof(struct mapem_ts_SignalStatusPackage_addGrpC), + offsetof(struct mapem_ts_SignalStatusPackage_addGrpC, _asn_ctx), + asn_MAP_mapem_ts_SignalStatusPackage_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_mapem_ts_SignalStatusPackage_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalStatusPackage_addGrpC = { + "SignalStatusPackage-addGrpC", + "SignalStatusPackage-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_SignalStatusPackage_addGrpC_tags_1, + sizeof(asn_DEF_mapem_ts_SignalStatusPackage_addGrpC_tags_1) + /sizeof(asn_DEF_mapem_ts_SignalStatusPackage_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SignalStatusPackage_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SignalStatusPackage_addGrpC_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_SignalStatusPackage_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_SignalStatusPackage_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalStatusPackage.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalStatusPackage.c new file mode 100644 index 000000000..e47ad3ac9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalStatusPackage.h" + +static int +memb_mapem_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_mapem_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_mapem_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_mapem_ts_regional_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_regional_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_regional_specs_9 = { + sizeof(struct mapem_ts_SignalStatusPackage__regional), + offsetof(struct mapem_ts_SignalStatusPackage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_mapem_ts_regional_9 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_regional_tags_9, + sizeof(asn_DEF_mapem_ts_regional_tags_9) + /sizeof(asn_DEF_mapem_ts_regional_tags_9[0]) - 1, /* 1 */ + asn_DEF_mapem_ts_regional_tags_9, /* Same as above */ + sizeof(asn_DEF_mapem_ts_regional_tags_9) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_regional_9, + 1, /* Single element */ + &asn_SPC_mapem_ts_regional_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_mapem_ts_SignalStatusPackage_1[] = { + { ATF_POINTER, 1, offsetof(struct mapem_ts_SignalStatusPackage, requester), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalStatusPackage, inboundOn), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalStatusPackage, outboundOn), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalStatusPackage, minute), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalStatusPackage, second), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalStatusPackage, duration), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalStatusPackage, status), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SignalStatusPackage, regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_mapem_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_mapem_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_mapem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_mapem_ts_SignalStatusPackage_oms_1[] = { 0, 2, 3, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_SignalStatusPackage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_SignalStatusPackage_specs_1 = { + sizeof(struct mapem_ts_SignalStatusPackage), + offsetof(struct mapem_ts_SignalStatusPackage, _asn_ctx), + asn_MAP_mapem_ts_SignalStatusPackage_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_mapem_ts_SignalStatusPackage_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalStatusPackage = { + "SignalStatusPackage", + "SignalStatusPackage", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_SignalStatusPackage_tags_1, + sizeof(asn_DEF_mapem_ts_SignalStatusPackage_tags_1) + /sizeof(asn_DEF_mapem_ts_SignalStatusPackage_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SignalStatusPackage_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SignalStatusPackage_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_SignalStatusPackage_1, + 8, /* Elements count */ + &asn_SPC_mapem_ts_SignalStatusPackage_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalStatusPackageList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalStatusPackageList.c new file mode 100644 index 000000000..a550b551b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalStatusPackageList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_SignalStatusPackageList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_SignalStatusPackageList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_SignalStatusPackageList_specs_1 = { + sizeof(struct mapem_ts_SignalStatusPackageList), + offsetof(struct mapem_ts_SignalStatusPackageList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalStatusPackageList = { + "SignalStatusPackageList", + "SignalStatusPackageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_SignalStatusPackageList_tags_1, + sizeof(asn_DEF_mapem_ts_SignalStatusPackageList_tags_1) + /sizeof(asn_DEF_mapem_ts_SignalStatusPackageList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SignalStatusPackageList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SignalStatusPackageList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_SignalStatusPackageList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_SignalStatusPackageList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalViolationSubCauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SignalViolationSubCauseCode.c new file mode 100644 index 000000000..23aca214e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SignalViolationSubCauseCode.h" + +int +mapem_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_mapem_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_mapem_ts_SignalViolationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SignalViolationSubCauseCode = { + "SignalViolationSubCauseCode", + "SignalViolationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_SignalViolationSubCauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_SignalViolationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SignalViolationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_SignalViolationSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SlowVehicleSubCauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SlowVehicleSubCauseCode.c new file mode 100644 index 000000000..b0f88bf2a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SlowVehicleSubCauseCode.h" + +int +mapem_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_mapem_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_mapem_ts_SlowVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SlowVehicleSubCauseCode = { + "SlowVehicleSubCauseCode", + "SlowVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_SlowVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_SlowVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SlowVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_SlowVehicleSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SpecialTransportType.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SpecialTransportType.c new file mode 100644 index 000000000..3e6e16820 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SpecialTransportType.h" + +int +mapem_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) +static asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_SpecialTransportType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SpecialTransportType = { + "SpecialTransportType", + "SpecialTransportType", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_SpecialTransportType_tags_1, + sizeof(asn_DEF_mapem_ts_SpecialTransportType_tags_1) + /sizeof(asn_DEF_mapem_ts_SpecialTransportType_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SpecialTransportType_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SpecialTransportType_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_SpecialTransportType_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Speed.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Speed.c new file mode 100644 index 000000000..b662a22ee --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Speed.h" + +static asn_TYPE_member_t asn_MBR_mapem_ts_Speed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_Speed, speedValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_Speed, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_Speed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_ts_Speed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* speedValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speedConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_mapem_ts_Speed_specs_1 = { + sizeof(struct mapem_ts_Speed), + offsetof(struct mapem_ts_Speed, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_Speed = { + "Speed", + "Speed", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_Speed_tags_1, + sizeof(asn_DEF_mapem_ts_Speed_tags_1) + /sizeof(asn_DEF_mapem_ts_Speed_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Speed_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Speed_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_Speed_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_Speed_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SpeedAdvice.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SpeedAdvice.c new file mode 100644 index 000000000..d78b5786b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SpeedAdvice.h" + +int +mapem_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_mapem_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_mapem_ts_SpeedAdvice_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SpeedAdvice = { + "SpeedAdvice", + "SpeedAdvice", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_SpeedAdvice_tags_1, + sizeof(asn_DEF_mapem_ts_SpeedAdvice_tags_1) + /sizeof(asn_DEF_mapem_ts_SpeedAdvice_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SpeedAdvice_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SpeedAdvice_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_SpeedAdvice_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SpeedConfidence.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SpeedConfidence.c new file mode 100644 index 000000000..fc6d0ed5f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SpeedConfidence.h" + +int +mapem_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_mapem_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_mapem_ts_SpeedConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SpeedConfidence = { + "SpeedConfidence", + "SpeedConfidence", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_SpeedConfidence_tags_1, + sizeof(asn_DEF_mapem_ts_SpeedConfidence_tags_1) + /sizeof(asn_DEF_mapem_ts_SpeedConfidence_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SpeedConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SpeedConfidence_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_SpeedConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SpeedConfidenceDSRC.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SpeedConfidenceDSRC.c new file mode 100644 index 000000000..bf6f9ca82 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_SpeedConfidenceDSRC_specs_1 = { + asn_MAP_mapem_ts_SpeedConfidenceDSRC_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_SpeedConfidenceDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SpeedConfidenceDSRC = { + "SpeedConfidenceDSRC", + "SpeedConfidenceDSRC", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_SpeedConfidenceDSRC_tags_1, + sizeof(asn_DEF_mapem_ts_SpeedConfidenceDSRC_tags_1) + /sizeof(asn_DEF_mapem_ts_SpeedConfidenceDSRC_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SpeedConfidenceDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SpeedConfidenceDSRC_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_SpeedConfidenceDSRC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SpeedLimit.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SpeedLimit.c new file mode 100644 index 000000000..f10365b38 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SpeedLimit.h" + +int +mapem_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_mapem_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_mapem_ts_SpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SpeedLimit = { + "SpeedLimit", + "SpeedLimit", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_SpeedLimit_tags_1, + sizeof(asn_DEF_mapem_ts_SpeedLimit_tags_1) + /sizeof(asn_DEF_mapem_ts_SpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SpeedLimit_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_SpeedLimit_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SpeedLimitList.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SpeedLimitList.c new file mode 100644 index 000000000..0a9bb610f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SpeedLimitList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_SpeedLimitList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_SpeedLimitList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_mapem_ts_SpeedLimitList_specs_1 = { + sizeof(struct mapem_ts_SpeedLimitList), + offsetof(struct mapem_ts_SpeedLimitList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SpeedLimitList = { + "SpeedLimitList", + "SpeedLimitList", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_SpeedLimitList_tags_1, + sizeof(asn_DEF_mapem_ts_SpeedLimitList_tags_1) + /sizeof(asn_DEF_mapem_ts_SpeedLimitList_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SpeedLimitList_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SpeedLimitList_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_SpeedLimitList_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_SpeedLimitList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SpeedLimitType.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SpeedLimitType.c new file mode 100644 index 000000000..122cbbfec --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_SpeedLimitType_specs_1 = { + asn_MAP_mapem_ts_SpeedLimitType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_SpeedLimitType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SpeedLimitType = { + "SpeedLimitType", + "SpeedLimitType", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_SpeedLimitType_tags_1, + sizeof(asn_DEF_mapem_ts_SpeedLimitType_tags_1) + /sizeof(asn_DEF_mapem_ts_SpeedLimitType_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SpeedLimitType_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SpeedLimitType_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_SpeedLimitType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SpeedValue.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SpeedValue.c new file mode 100644 index 000000000..fadd6ab18 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SpeedValue.h" + +int +mapem_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_mapem_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_mapem_ts_SpeedValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SpeedValue = { + "SpeedValue", + "SpeedValue", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_SpeedValue_tags_1, + sizeof(asn_DEF_mapem_ts_SpeedValue_tags_1) + /sizeof(asn_DEF_mapem_ts_SpeedValue_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SpeedValue_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SpeedValue_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_SpeedValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SpeedandHeadingandThrottleConfidence.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SpeedandHeadingandThrottleConfidence.c new file mode 100644 index 000000000..cf6802f9d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SpeedandHeadingandThrottleConfidence.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_SpeedandHeadingandThrottleConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_SpeedandHeadingandThrottleConfidence, heading), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SpeedandHeadingandThrottleConfidence, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SpeedandHeadingandThrottleConfidence, throttle), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_SpeedandHeadingandThrottleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_SpeedandHeadingandThrottleConfidence_specs_1 = { + sizeof(struct mapem_ts_SpeedandHeadingandThrottleConfidence), + offsetof(struct mapem_ts_SpeedandHeadingandThrottleConfidence, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_SpeedandHeadingandThrottleConfidence = { + "SpeedandHeadingandThrottleConfidence", + "SpeedandHeadingandThrottleConfidence", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_SpeedandHeadingandThrottleConfidence_tags_1, + sizeof(asn_DEF_mapem_ts_SpeedandHeadingandThrottleConfidence_tags_1) + /sizeof(asn_DEF_mapem_ts_SpeedandHeadingandThrottleConfidence_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SpeedandHeadingandThrottleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SpeedandHeadingandThrottleConfidence_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_SpeedandHeadingandThrottleConfidence_1, + 3, /* Elements count */ + &asn_SPC_mapem_ts_SpeedandHeadingandThrottleConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_StartTime.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_StartTime.c new file mode 100644 index 000000000..2b87723a8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_StartTime.h" + +int +mapem_ts_StartTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const mapem_ts_AviEriDateTime_t *st = (const mapem_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 mapem_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_mapem_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_mapem_ts_StartTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_StartTime = { + "StartTime", + "StartTime", + &asn_OP_OCTET_STRING, + asn_DEF_mapem_ts_StartTime_tags_1, + sizeof(asn_DEF_mapem_ts_StartTime_tags_1) + /sizeof(asn_DEF_mapem_ts_StartTime_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_StartTime_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_StartTime_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_StartTime_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_StationID.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_StationID.c new file mode 100644 index 000000000..e474aeffd --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_StationID.h" + +int +mapem_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_mapem_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_mapem_ts_StationID_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_mapem_ts_StationID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_StationID = { + "StationID", + "StationID", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_StationID_tags_1, + sizeof(asn_DEF_mapem_ts_StationID_tags_1) + /sizeof(asn_DEF_mapem_ts_StationID_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_StationID_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_StationID_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_StationID_constraint + }, + 0, 0, /* No members */ + &asn_SPC_mapem_ts_StationID_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_StationType.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_StationType.c new file mode 100644 index 000000000..05d49252d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_StationType.h" + +int +mapem_ts_StationType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_ts_StationType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_mapem_ts_StationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_StationType = { + "StationType", + "StationType", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_StationType_tags_1, + sizeof(asn_DEF_mapem_ts_StationType_tags_1) + /sizeof(asn_DEF_mapem_ts_StationType_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_StationType_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_StationType_tags_1) + /sizeof(asn_DEF_mapem_ts_StationType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_mapem_ts_StationType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + mapem_ts_StationType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_StationarySince.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_StationarySince.c new file mode 100644 index 000000000..3ae1250b0 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_ts_StationarySince_value2enum_1[] = { + { 0, 15, "lessThan1Minute" }, + { 1, 16, "lessThan2Minutes" }, + { 2, 17, "lessThan15Minutes" }, + { 3, 23, "equalOrGreater15Minutes" } +}; +static const unsigned int asn_MAP_mapem_ts_StationarySince_enum2value_1[] = { + 3, /* equalOrGreater15Minutes(3) */ + 2, /* lessThan15Minutes(2) */ + 0, /* lessThan1Minute(0) */ + 1 /* lessThan2Minutes(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_mapem_ts_StationarySince_specs_1 = { + asn_MAP_mapem_ts_StationarySince_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_StationarySince_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_StationarySince = { + "StationarySince", + "StationarySince", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_StationarySince_tags_1, + sizeof(asn_DEF_mapem_ts_StationarySince_tags_1) + /sizeof(asn_DEF_mapem_ts_StationarySince_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_StationarySince_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_StationarySince_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_StationarySince_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_StationaryVehicleSubCauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_StationaryVehicleSubCauseCode.c new file mode 100644 index 000000000..ddcd15ab3 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_StationaryVehicleSubCauseCode.h" + +int +mapem_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_mapem_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_mapem_ts_StationaryVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_StationaryVehicleSubCauseCode = { + "StationaryVehicleSubCauseCode", + "StationaryVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_StationaryVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_StationaryVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_StationaryVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_StationaryVehicleSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SteeringWheelAngle.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SteeringWheelAngle.c new file mode 100644 index 000000000..05b90645e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SteeringWheelAngle.h" + +static asn_TYPE_member_t asn_MBR_mapem_ts_SteeringWheelAngle_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_SteeringWheelAngle, steeringWheelAngleValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_SteeringWheelAngle, steeringWheelAngleConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_SteeringWheelAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_SteeringWheelAngle_specs_1 = { + sizeof(struct mapem_ts_SteeringWheelAngle), + offsetof(struct mapem_ts_SteeringWheelAngle, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_SteeringWheelAngle = { + "SteeringWheelAngle", + "SteeringWheelAngle", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_SteeringWheelAngle_tags_1, + sizeof(asn_DEF_mapem_ts_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_mapem_ts_SteeringWheelAngle_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SteeringWheelAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_SteeringWheelAngle_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_SteeringWheelAngle_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SteeringWheelAngleConfidence.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SteeringWheelAngleConfidence.c new file mode 100644 index 000000000..f8a317344 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SteeringWheelAngleConfidence.h" + +int +mapem_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_mapem_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_mapem_ts_SteeringWheelAngleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SteeringWheelAngleConfidence = { + "SteeringWheelAngleConfidence", + "SteeringWheelAngleConfidence", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_SteeringWheelAngleConfidence_tags_1, + sizeof(asn_DEF_mapem_ts_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_mapem_ts_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SteeringWheelAngleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_SteeringWheelAngleConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SteeringWheelAngleValue.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SteeringWheelAngleValue.c new file mode 100644 index 000000000..42f5c5598 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SteeringWheelAngleValue.h" + +int +mapem_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_mapem_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_mapem_ts_SteeringWheelAngleValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SteeringWheelAngleValue = { + "SteeringWheelAngleValue", + "SteeringWheelAngleValue", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_SteeringWheelAngleValue_tags_1, + sizeof(asn_DEF_mapem_ts_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_mapem_ts_SteeringWheelAngleValue_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SteeringWheelAngleValue_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_SteeringWheelAngleValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_StopTime.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_StopTime.c new file mode 100644 index 000000000..b46c010e9 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_StopTime.h" + +int +mapem_ts_StopTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const mapem_ts_AviEriDateTime_t *st = (const mapem_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 mapem_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_mapem_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_mapem_ts_StopTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_StopTime = { + "StopTime", + "StopTime", + &asn_OP_OCTET_STRING, + asn_DEF_mapem_ts_StopTime_tags_1, + sizeof(asn_DEF_mapem_ts_StopTime_tags_1) + /sizeof(asn_DEF_mapem_ts_StopTime_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_StopTime_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_StopTime_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_StopTime_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SubCauseCodeType.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_SubCauseCodeType.c new file mode 100644 index 000000000..9c7b9fc89 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_SubCauseCodeType.h" + +int +mapem_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_mapem_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_mapem_ts_SubCauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_SubCauseCodeType = { + "SubCauseCodeType", + "SubCauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_SubCauseCodeType_tags_1, + sizeof(asn_DEF_mapem_ts_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_mapem_ts_SubCauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_SubCauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_SubCauseCodeType_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TaxCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TaxCode.c new file mode 100644 index 000000000..5d3d6d778 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_ts_TaxCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_TaxCode = { + "TaxCode", + "TaxCode", + &asn_OP_OCTET_STRING, + asn_DEF_mapem_ts_TaxCode_tags_1, + sizeof(asn_DEF_mapem_ts_TaxCode_tags_1) + /sizeof(asn_DEF_mapem_ts_TaxCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_TaxCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_TaxCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_coding/src/mapem_ts_Temperature.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Temperature.c new file mode 100644 index 000000000..d7bf52672 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Temperature.h" + +int +mapem_ts_Temperature_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -60L && value <= 67L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_mapem_ts_Temperature_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, -60, 67 } /* (-60..67) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_mapem_ts_Temperature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_Temperature = { + "Temperature", + "Temperature", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_Temperature_tags_1, + sizeof(asn_DEF_mapem_ts_Temperature_tags_1) + /sizeof(asn_DEF_mapem_ts_Temperature_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Temperature_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Temperature_tags_1) + /sizeof(asn_DEF_mapem_ts_Temperature_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_mapem_ts_Temperature_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + mapem_ts_Temperature_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TemporaryID.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TemporaryID.c new file mode 100644 index 000000000..f683540dd --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_TemporaryID.h" + +int +mapem_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_mapem_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_mapem_ts_TemporaryID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_TemporaryID = { + "TemporaryID", + "TemporaryID", + &asn_OP_OCTET_STRING, + asn_DEF_mapem_ts_TemporaryID_tags_1, + sizeof(asn_DEF_mapem_ts_TemporaryID_tags_1) + /sizeof(asn_DEF_mapem_ts_TemporaryID_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_TemporaryID_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_TemporaryID_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_TemporaryID_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ThrottleConfidence.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ThrottleConfidence.c new file mode 100644 index 000000000..272e6e1c7 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_ts_ThrottleConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 13, "prec10percent" }, + { 2, 12, "prec1percent" }, + { 3, 14, "prec0-5percent" } +}; +static const unsigned int asn_MAP_mapem_ts_ThrottleConfidence_enum2value_1[] = { + 3, /* prec0-5percent(3) */ + 1, /* prec10percent(1) */ + 2, /* prec1percent(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_mapem_ts_ThrottleConfidence_specs_1 = { + asn_MAP_mapem_ts_ThrottleConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_ThrottleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ThrottleConfidence = { + "ThrottleConfidence", + "ThrottleConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_ThrottleConfidence_tags_1, + sizeof(asn_DEF_mapem_ts_ThrottleConfidence_tags_1) + /sizeof(asn_DEF_mapem_ts_ThrottleConfidence_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ThrottleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ThrottleConfidence_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_ThrottleConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TimeChangeDetails.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TimeChangeDetails.c new file mode 100644 index 000000000..ed0162694 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_TimeChangeDetails.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_TimeChangeDetails_1[] = { + { ATF_POINTER, 1, offsetof(struct mapem_ts_TimeChangeDetails, startTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_TimeChangeDetails, minEndTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_TimeChangeDetails, maxEndTime), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_TimeChangeDetails, likelyTime), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_TimeChangeDetails, confidence), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_TimeChangeDetails, nextTime), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_TimeChangeDetails_oms_1[] = { 0, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_TimeChangeDetails_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_TimeChangeDetails_specs_1 = { + sizeof(struct mapem_ts_TimeChangeDetails), + offsetof(struct mapem_ts_TimeChangeDetails, _asn_ctx), + asn_MAP_mapem_ts_TimeChangeDetails_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_mapem_ts_TimeChangeDetails_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_TimeChangeDetails = { + "TimeChangeDetails", + "TimeChangeDetails", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_TimeChangeDetails_tags_1, + sizeof(asn_DEF_mapem_ts_TimeChangeDetails_tags_1) + /sizeof(asn_DEF_mapem_ts_TimeChangeDetails_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_TimeChangeDetails_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_TimeChangeDetails_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_TimeChangeDetails_1, + 6, /* Elements count */ + &asn_SPC_mapem_ts_TimeChangeDetails_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TimeConfidence.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TimeConfidence.c new file mode 100644 index 000000000..6334adb57 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_TimeConfidence_specs_1 = { + asn_MAP_mapem_ts_TimeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_TimeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_TimeConfidence = { + "TimeConfidence", + "TimeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_TimeConfidence_tags_1, + sizeof(asn_DEF_mapem_ts_TimeConfidence_tags_1) + /sizeof(asn_DEF_mapem_ts_TimeConfidence_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_TimeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_TimeConfidence_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_TimeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TimeIntervalConfidence.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TimeIntervalConfidence.c new file mode 100644 index 000000000..f9de7cea6 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_TimeIntervalConfidence.h" + +int +mapem_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_mapem_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_mapem_ts_TimeIntervalConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_TimeIntervalConfidence = { + "TimeIntervalConfidence", + "TimeIntervalConfidence", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_TimeIntervalConfidence_tags_1, + sizeof(asn_DEF_mapem_ts_TimeIntervalConfidence_tags_1) + /sizeof(asn_DEF_mapem_ts_TimeIntervalConfidence_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_TimeIntervalConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_TimeIntervalConfidence_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_TimeIntervalConfidence_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TimeMark.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TimeMark.c new file mode 100644 index 000000000..ff7232688 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_TimeMark.h" + +int +mapem_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_mapem_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_mapem_ts_TimeMark_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_TimeMark = { + "TimeMark", + "TimeMark", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_TimeMark_tags_1, + sizeof(asn_DEF_mapem_ts_TimeMark_tags_1) + /sizeof(asn_DEF_mapem_ts_TimeMark_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_TimeMark_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_TimeMark_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_TimeMark_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TimeReference.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TimeReference.c new file mode 100644 index 000000000..0451ad2f8 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_TimeReference.h" + +int +mapem_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_mapem_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_mapem_ts_TimeReference_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_TimeReference = { + "TimeReference", + "TimeReference", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_TimeReference_tags_1, + sizeof(asn_DEF_mapem_ts_TimeReference_tags_1) + /sizeof(asn_DEF_mapem_ts_TimeReference_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_TimeReference_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_TimeReference_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_TimeReference_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TimestampIts.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TimestampIts.c new file mode 100644 index 000000000..0daa59416 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_TimestampIts.h" + +int +mapem_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_mapem_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_mapem_ts_TimestampIts_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_TimestampIts = { + "TimestampIts", + "TimestampIts", + &asn_OP_INTEGER, + asn_DEF_mapem_ts_TimestampIts_tags_1, + sizeof(asn_DEF_mapem_ts_TimestampIts_tags_1) + /sizeof(asn_DEF_mapem_ts_TimestampIts_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_TimestampIts_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_TimestampIts_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_TimestampIts_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Traces.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Traces.c new file mode 100644 index 000000000..81b1996c1 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Traces.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_Traces_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_mapem_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_mapem_ts_Traces_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_mapem_ts_Traces_specs_1 = { + sizeof(struct mapem_ts_Traces), + offsetof(struct mapem_ts_Traces, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_Traces = { + "Traces", + "Traces", + &asn_OP_SEQUENCE_OF, + asn_DEF_mapem_ts_Traces_tags_1, + sizeof(asn_DEF_mapem_ts_Traces_tags_1) + /sizeof(asn_DEF_mapem_ts_Traces_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Traces_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Traces_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_Traces_1, + 1, /* Single element */ + &asn_SPC_mapem_ts_Traces_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TrafficConditionSubCauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TrafficConditionSubCauseCode.c new file mode 100644 index 000000000..88d25c695 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_TrafficConditionSubCauseCode.h" + +int +mapem_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_mapem_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_mapem_ts_TrafficConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_TrafficConditionSubCauseCode = { + "TrafficConditionSubCauseCode", + "TrafficConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_TrafficConditionSubCauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_TrafficConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_TrafficConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_TrafficConditionSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TrafficRule.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TrafficRule.c new file mode 100644 index 000000000..957f4bd15 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_TrafficRule_specs_1 = { + asn_MAP_mapem_ts_TrafficRule_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_TrafficRule_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_TrafficRule = { + "TrafficRule", + "TrafficRule", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_TrafficRule_tags_1, + sizeof(asn_DEF_mapem_ts_TrafficRule_tags_1) + /sizeof(asn_DEF_mapem_ts_TrafficRule_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_TrafficRule_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_TrafficRule_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_TrafficRule_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TransitVehicleOccupancy.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TransitVehicleOccupancy.c new file mode 100644 index 000000000..7337bf15a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_TransitVehicleOccupancy_specs_1 = { + asn_MAP_mapem_ts_TransitVehicleOccupancy_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_TransitVehicleOccupancy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_TransitVehicleOccupancy = { + "TransitVehicleOccupancy", + "TransitVehicleOccupancy", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_TransitVehicleOccupancy_tags_1, + sizeof(asn_DEF_mapem_ts_TransitVehicleOccupancy_tags_1) + /sizeof(asn_DEF_mapem_ts_TransitVehicleOccupancy_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_TransitVehicleOccupancy_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_TransitVehicleOccupancy_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_TransitVehicleOccupancy_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TransitVehicleStatus.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TransitVehicleStatus.c new file mode 100644 index 000000000..d32ef895a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_TransitVehicleStatus.h" + +int +mapem_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_mapem_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_mapem_ts_TransitVehicleStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_TransitVehicleStatus = { + "TransitVehicleStatus", + "TransitVehicleStatus", + &asn_OP_BIT_STRING, + asn_DEF_mapem_ts_TransitVehicleStatus_tags_1, + sizeof(asn_DEF_mapem_ts_TransitVehicleStatus_tags_1) + /sizeof(asn_DEF_mapem_ts_TransitVehicleStatus_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_TransitVehicleStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_TransitVehicleStatus_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_TransitVehicleStatus_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TransmissionAndSpeed.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TransmissionAndSpeed.c new file mode 100644 index 000000000..fbaf90d8f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_TransmissionAndSpeed.h" + +asn_TYPE_member_t asn_MBR_mapem_ts_TransmissionAndSpeed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_TransmissionAndSpeed, transmisson), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_TransmissionAndSpeed, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_TransmissionAndSpeed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_TransmissionAndSpeed_specs_1 = { + sizeof(struct mapem_ts_TransmissionAndSpeed), + offsetof(struct mapem_ts_TransmissionAndSpeed, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_TransmissionAndSpeed = { + "TransmissionAndSpeed", + "TransmissionAndSpeed", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_TransmissionAndSpeed_tags_1, + sizeof(asn_DEF_mapem_ts_TransmissionAndSpeed_tags_1) + /sizeof(asn_DEF_mapem_ts_TransmissionAndSpeed_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_TransmissionAndSpeed_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_TransmissionAndSpeed_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_TransmissionAndSpeed_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_TransmissionAndSpeed_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TransmissionInterval.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TransmissionInterval.c new file mode 100644 index 000000000..cccfe3776 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_TransmissionInterval.h" + +int +mapem_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_mapem_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_mapem_ts_TransmissionInterval_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_TransmissionInterval = { + "TransmissionInterval", + "TransmissionInterval", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_TransmissionInterval_tags_1, + sizeof(asn_DEF_mapem_ts_TransmissionInterval_tags_1) + /sizeof(asn_DEF_mapem_ts_TransmissionInterval_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_TransmissionInterval_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_TransmissionInterval_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_TransmissionInterval_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TransmissionState.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TransmissionState.c new file mode 100644 index 000000000..a58d01194 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_TransmissionState_specs_1 = { + asn_MAP_mapem_ts_TransmissionState_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_TransmissionState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_TransmissionState = { + "TransmissionState", + "TransmissionState", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_TransmissionState_tags_1, + sizeof(asn_DEF_mapem_ts_TransmissionState_tags_1) + /sizeof(asn_DEF_mapem_ts_TransmissionState_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_TransmissionState_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_TransmissionState_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_TransmissionState_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TurningRadius.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_TurningRadius.c new file mode 100644 index 000000000..451d2f352 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_TurningRadius.h" + +int +mapem_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_mapem_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_mapem_ts_TurningRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_TurningRadius = { + "TurningRadius", + "TurningRadius", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_TurningRadius_tags_1, + sizeof(asn_DEF_mapem_ts_TurningRadius_tags_1) + /sizeof(asn_DEF_mapem_ts_TurningRadius_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_TurningRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_TurningRadius_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_TurningRadius_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VDS.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VDS.c new file mode 100644 index 000000000..54d76b7cd --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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 +mapem_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_mapem_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_mapem_ts_VDS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_VDS = { + "VDS", + "VDS", + &asn_OP_IA5String, + asn_DEF_mapem_ts_VDS_tags_1, + sizeof(asn_DEF_mapem_ts_VDS_tags_1) + /sizeof(asn_DEF_mapem_ts_VDS_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_VDS_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_VDS_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_VDS_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ValidityDuration.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ValidityDuration.c new file mode 100644 index 000000000..43e7c04bf --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ValidityDuration.h" + +int +mapem_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_mapem_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_mapem_ts_ValidityDuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ValidityDuration = { + "ValidityDuration", + "ValidityDuration", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_ValidityDuration_tags_1, + sizeof(asn_DEF_mapem_ts_ValidityDuration_tags_1) + /sizeof(asn_DEF_mapem_ts_ValidityDuration_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ValidityDuration_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ValidityDuration_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_ValidityDuration_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VehicleBreakdownSubCauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VehicleBreakdownSubCauseCode.c new file mode 100644 index 000000000..dc9aabe53 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_VehicleBreakdownSubCauseCode.h" + +int +mapem_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_mapem_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_mapem_ts_VehicleBreakdownSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_VehicleBreakdownSubCauseCode = { + "VehicleBreakdownSubCauseCode", + "VehicleBreakdownSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_VehicleBreakdownSubCauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_VehicleBreakdownSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_VehicleBreakdownSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_VehicleBreakdownSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VehicleHeight.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VehicleHeight.c new file mode 100644 index 000000000..4ebda5730 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_VehicleHeight.h" + +int +mapem_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_mapem_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_mapem_ts_VehicleHeight_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_VehicleHeight = { + "VehicleHeight", + "VehicleHeight", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_VehicleHeight_tags_1, + sizeof(asn_DEF_mapem_ts_VehicleHeight_tags_1) + /sizeof(asn_DEF_mapem_ts_VehicleHeight_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_VehicleHeight_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_VehicleHeight_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_VehicleHeight_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VehicleID.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VehicleID.c new file mode 100644 index 000000000..012644e00 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_VehicleID.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_mapem_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_mapem_ts_VehicleID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_VehicleID, choice.entityID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_VehicleID, choice.stationID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_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_mapem_ts_VehicleID_specs_1 = { + sizeof(struct mapem_ts_VehicleID), + offsetof(struct mapem_ts_VehicleID, _asn_ctx), + offsetof(struct mapem_ts_VehicleID, present), + sizeof(((struct mapem_ts_VehicleID *)0)->present), + asn_MAP_mapem_ts_VehicleID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_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_mapem_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_mapem_ts_VehicleID_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_VehicleID_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VehicleIdentification.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VehicleIdentification.c new file mode 100644 index 000000000..ff4545b78 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_VehicleIdentification.h" + +static asn_TYPE_member_t asn_MBR_mapem_ts_VehicleIdentification_1[] = { + { ATF_POINTER, 2, offsetof(struct mapem_ts_VehicleIdentification, wMInumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_VehicleIdentification, vDS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_VehicleIdentification_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_mapem_ts_VehicleIdentification_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_VehicleIdentification_specs_1 = { + sizeof(struct mapem_ts_VehicleIdentification), + offsetof(struct mapem_ts_VehicleIdentification, _asn_ctx), + asn_MAP_mapem_ts_VehicleIdentification_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_mapem_ts_VehicleIdentification_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_VehicleIdentification = { + "VehicleIdentification", + "VehicleIdentification", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_VehicleIdentification_tags_1, + sizeof(asn_DEF_mapem_ts_VehicleIdentification_tags_1) + /sizeof(asn_DEF_mapem_ts_VehicleIdentification_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_VehicleIdentification_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_VehicleIdentification_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_VehicleIdentification_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_VehicleIdentification_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VehicleLength.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VehicleLength.c new file mode 100644 index 000000000..b7040e215 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_VehicleLength.h" + +static asn_TYPE_member_t asn_MBR_mapem_ts_VehicleLength_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_VehicleLength, vehicleLengthValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_VehicleLength, vehicleLengthConfidenceIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_VehicleLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_VehicleLength_specs_1 = { + sizeof(struct mapem_ts_VehicleLength), + offsetof(struct mapem_ts_VehicleLength, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_VehicleLength = { + "VehicleLength", + "VehicleLength", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_VehicleLength_tags_1, + sizeof(asn_DEF_mapem_ts_VehicleLength_tags_1) + /sizeof(asn_DEF_mapem_ts_VehicleLength_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_VehicleLength_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_VehicleLength_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_VehicleLength_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_VehicleLength_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VehicleLengthConfidenceIndication.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VehicleLengthConfidenceIndication.c new file mode 100644 index 000000000..aa5e61c0c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_VehicleLengthConfidenceIndication_specs_1 = { + asn_MAP_mapem_ts_VehicleLengthConfidenceIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_VehicleLengthConfidenceIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_VehicleLengthConfidenceIndication = { + "VehicleLengthConfidenceIndication", + "VehicleLengthConfidenceIndication", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_VehicleLengthConfidenceIndication_tags_1, + sizeof(asn_DEF_mapem_ts_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_mapem_ts_VehicleLengthConfidenceIndication_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_VehicleLengthConfidenceIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_VehicleLengthConfidenceIndication_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VehicleLengthValue.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VehicleLengthValue.c new file mode 100644 index 000000000..daece2728 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_VehicleLengthValue.h" + +int +mapem_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_mapem_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_mapem_ts_VehicleLengthValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_VehicleLengthValue = { + "VehicleLengthValue", + "VehicleLengthValue", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_VehicleLengthValue_tags_1, + sizeof(asn_DEF_mapem_ts_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_mapem_ts_VehicleLengthValue_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_VehicleLengthValue_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_VehicleLengthValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VehicleMass.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VehicleMass.c new file mode 100644 index 000000000..75e035f5e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_VehicleMass.h" + +int +mapem_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_mapem_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_mapem_ts_VehicleMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_VehicleMass = { + "VehicleMass", + "VehicleMass", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_VehicleMass_tags_1, + sizeof(asn_DEF_mapem_ts_VehicleMass_tags_1) + /sizeof(asn_DEF_mapem_ts_VehicleMass_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_VehicleMass_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_VehicleMass_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_VehicleMass_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VehicleRole.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VehicleRole.c new file mode 100644 index 000000000..40fffb15e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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) +static asn_per_constraints_t asn_PER_type_mapem_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_mapem_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_mapem_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) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_mapem_ts_VehicleRole_specs_1 = { + asn_MAP_mapem_ts_VehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_VehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_VehicleRole = { + "VehicleRole", + "VehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_VehicleRole_tags_1, + sizeof(asn_DEF_mapem_ts_VehicleRole_tags_1) + /sizeof(asn_DEF_mapem_ts_VehicleRole_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_VehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_VehicleRole_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_VehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VehicleType.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VehicleType.c new file mode 100644 index 000000000..52c125b60 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_VehicleType_specs_1 = { + asn_MAP_mapem_ts_VehicleType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_VehicleType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_VehicleType = { + "VehicleType", + "VehicleType", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_VehicleType_tags_1, + sizeof(asn_DEF_mapem_ts_VehicleType_tags_1) + /sizeof(asn_DEF_mapem_ts_VehicleType_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_VehicleType_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_VehicleType_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_VehicleType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VehicleWidth.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VehicleWidth.c new file mode 100644 index 000000000..74a4424f1 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_VehicleWidth.h" + +int +mapem_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_mapem_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_mapem_ts_VehicleWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_VehicleWidth = { + "VehicleWidth", + "VehicleWidth", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_VehicleWidth_tags_1, + sizeof(asn_DEF_mapem_ts_VehicleWidth_tags_1) + /sizeof(asn_DEF_mapem_ts_VehicleWidth_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_VehicleWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_VehicleWidth_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_VehicleWidth_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Velocity.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_Velocity.c new file mode 100644 index 000000000..d502bce6a --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_Velocity.h" + +int +mapem_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_mapem_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_mapem_ts_Velocity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_Velocity = { + "Velocity", + "Velocity", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_Velocity_tags_1, + sizeof(asn_DEF_mapem_ts_Velocity_tags_1) + /sizeof(asn_DEF_mapem_ts_Velocity_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_Velocity_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_Velocity_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_Velocity_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VerticalAcceleration.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VerticalAcceleration.c new file mode 100644 index 000000000..18750c0aa --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_VerticalAcceleration.h" + +static asn_TYPE_member_t asn_MBR_mapem_ts_VerticalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_VerticalAcceleration, verticalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_VerticalAcceleration, verticalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_VerticalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_VerticalAcceleration_specs_1 = { + sizeof(struct mapem_ts_VerticalAcceleration), + offsetof(struct mapem_ts_VerticalAcceleration, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_VerticalAcceleration = { + "VerticalAcceleration", + "VerticalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_VerticalAcceleration_tags_1, + sizeof(asn_DEF_mapem_ts_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_mapem_ts_VerticalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_VerticalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_VerticalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_VerticalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VerticalAccelerationValue.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_VerticalAccelerationValue.c new file mode 100644 index 000000000..679d8a41d --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_VerticalAccelerationValue.h" + +int +mapem_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_mapem_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_mapem_ts_VerticalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_VerticalAccelerationValue = { + "VerticalAccelerationValue", + "VerticalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_VerticalAccelerationValue_tags_1, + sizeof(asn_DEF_mapem_ts_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_mapem_ts_VerticalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_VerticalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_VerticalAccelerationValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_WMInumber.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_WMInumber.c new file mode 100644 index 000000000..b069219be --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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 +mapem_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_mapem_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_mapem_ts_WMInumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_WMInumber = { + "WMInumber", + "WMInumber", + &asn_OP_IA5String, + asn_DEF_mapem_ts_WMInumber_tags_1, + sizeof(asn_DEF_mapem_ts_WMInumber_tags_1) + /sizeof(asn_DEF_mapem_ts_WMInumber_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_WMInumber_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_WMInumber_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_WMInumber_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_WaitOnStopline.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_WaitOnStopline.c new file mode 100644 index 000000000..0d52c2eaf --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_WaitOnStopline.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_mapem_ts_WaitOnStopline_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_WaitOnStopline = { + "WaitOnStopline", + "WaitOnStopline", + &asn_OP_BOOLEAN, + asn_DEF_mapem_ts_WaitOnStopline_tags_1, + sizeof(asn_DEF_mapem_ts_WaitOnStopline_tags_1) + /sizeof(asn_DEF_mapem_ts_WaitOnStopline_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_WaitOnStopline_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_WaitOnStopline_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_coding/src/mapem_ts_WheelBaseVehicle.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_WheelBaseVehicle.c new file mode 100644 index 000000000..90754ba6c --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_WheelBaseVehicle.h" + +int +mapem_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_mapem_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_mapem_ts_WheelBaseVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_WheelBaseVehicle = { + "WheelBaseVehicle", + "WheelBaseVehicle", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_WheelBaseVehicle_tags_1, + sizeof(asn_DEF_mapem_ts_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_mapem_ts_WheelBaseVehicle_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_WheelBaseVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_WheelBaseVehicle_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_WrongWayDrivingSubCauseCode.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_WrongWayDrivingSubCauseCode.c new file mode 100644 index 000000000..b5aec4f5f --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_WrongWayDrivingSubCauseCode.h" + +int +mapem_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_mapem_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_mapem_ts_WrongWayDrivingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_WrongWayDrivingSubCauseCode = { + "WrongWayDrivingSubCauseCode", + "WrongWayDrivingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_WrongWayDrivingSubCauseCode_tags_1, + sizeof(asn_DEF_mapem_ts_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_ts_WrongWayDrivingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_WrongWayDrivingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_WrongWayDrivingSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_YawRate.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_YawRate.c new file mode 100644 index 000000000..151eb39f0 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_YawRate.h" + +static asn_TYPE_member_t asn_MBR_mapem_ts_YawRate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct mapem_ts_YawRate, yawRateValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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 mapem_ts_YawRate, yawRateConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_mapem_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_mapem_ts_YawRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_mapem_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_mapem_ts_YawRate_specs_1 = { + sizeof(struct mapem_ts_YawRate), + offsetof(struct mapem_ts_YawRate, _asn_ctx), + asn_MAP_mapem_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_mapem_ts_YawRate = { + "YawRate", + "YawRate", + &asn_OP_SEQUENCE, + asn_DEF_mapem_ts_YawRate_tags_1, + sizeof(asn_DEF_mapem_ts_YawRate_tags_1) + /sizeof(asn_DEF_mapem_ts_YawRate_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_YawRate_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_YawRate_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_ts_YawRate_1, + 2, /* Elements count */ + &asn_SPC_mapem_ts_YawRate_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_YawRateConfidence.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_YawRateConfidence.c new file mode 100644 index 000000000..6264da69e --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_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_mapem_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_mapem_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_mapem_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_mapem_ts_YawRateConfidence_specs_1 = { + asn_MAP_mapem_ts_YawRateConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_mapem_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_mapem_ts_YawRateConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_YawRateConfidence = { + "YawRateConfidence", + "YawRateConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_mapem_ts_YawRateConfidence_tags_1, + sizeof(asn_DEF_mapem_ts_YawRateConfidence_tags_1) + /sizeof(asn_DEF_mapem_ts_YawRateConfidence_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_YawRateConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_YawRateConfidence_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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_mapem_ts_YawRateConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_YawRateValue.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_YawRateValue.c new file mode 100644 index 000000000..96699f3f3 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_YawRateValue.h" + +int +mapem_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_mapem_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_mapem_ts_YawRateValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_YawRateValue = { + "YawRateValue", + "YawRateValue", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_YawRateValue_tags_1, + sizeof(asn_DEF_mapem_ts_YawRateValue_tags_1) + /sizeof(asn_DEF_mapem_ts_YawRateValue_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_YawRateValue_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_YawRateValue_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_YawRateValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ZoneLength.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_ts_ZoneLength.c new file mode 100644 index 000000000..5df6cde07 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/mapem_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=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_mapem_ts_coding/mapem_ts_ZoneLength.h" + +int +mapem_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_mapem_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_mapem_ts_ZoneLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_mapem_ts_ZoneLength = { + "ZoneLength", + "ZoneLength", + &asn_OP_NativeInteger, + asn_DEF_mapem_ts_ZoneLength_tags_1, + sizeof(asn_DEF_mapem_ts_ZoneLength_tags_1) + /sizeof(asn_DEF_mapem_ts_ZoneLength_tags_1[0]), /* 1 */ + asn_DEF_mapem_ts_ZoneLength_tags_1, /* Same as above */ + sizeof(asn_DEF_mapem_ts_ZoneLength_tags_1) + /sizeof(asn_DEF_mapem_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_mapem_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) */ + mapem_ts_ZoneLength_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/per_decoder.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/per_decoder.c new file mode 100644 index 000000000..7f8142811 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/per_decoder.c @@ -0,0 +1,5 @@ +#include +#include +#include + +// Absolutely nothing diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/src/per_encoder.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/per_encoder.c new file mode 100644 index 000000000..1d66b73a5 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/per_opentype.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/per_opentype.c new file mode 100644 index 000000000..120c2d20b --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/per_support.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/per_support.c new file mode 100644 index 000000000..9c0a2fd37 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/uper_decoder.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/uper_decoder.c new file mode 100644 index 000000000..e5b94e449 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/uper_encoder.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/uper_encoder.c new file mode 100644 index 000000000..486107504 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/uper_opentype.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/uper_opentype.c new file mode 100644 index 000000000..d8fa07891 --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_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_mapem_ts_coding/src/uper_support.c b/etsi_its_coding/etsi_its_mapem_ts_coding/src/uper_support.c new file mode 100644 index 000000000..f9f9b0ade --- /dev/null +++ b/etsi_its_coding/etsi_its_mapem_ts_coding/src/uper_support.c @@ -0,0 +1,311 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * X.691-201508 #10.9 General rules for encoding a length determinant. + * Get the optionally constrained length "n" from the stream. + */ +ssize_t +uper_get_length(asn_per_data_t *pd, int ebits, size_t lower_bound, + int *repeat) { + ssize_t value; + + *repeat = 0; + + /* #11.9.4.1 Encoding if constrained (according to effective bits) */ + if(ebits >= 0 && ebits <= 16) { + value = per_get_few_bits(pd, ebits); + if(value >= 0) value += lower_bound; + return value; + } + + value = per_get_few_bits(pd, 8); + if((value & 0x80) == 0) { /* #11.9.3.6 */ + return (value & 0x7F); + } else if((value & 0x40) == 0) { /* #11.9.3.7 */ + /* bit 8 ... set to 1 and bit 7 ... set to zero */ + value = ((value & 0x3f) << 8) | per_get_few_bits(pd, 8); + return value; /* potential -1 from per_get_few_bits passes through. */ + } else if(value < 0) { + ASN_DEBUG("END of stream reached for PER"); + return -1; + } + value &= 0x3f; /* this is "m" from X.691, #11.9.3.8 */ + if(value < 1 || value > 4) { + return -1; /* Prohibited by #11.9.3.8 */ + } + *repeat = 1; + return (16384 * value); +} + +/* + * Get the normally small length "n". + * This procedure used to decode length of extensions bit-maps + * for SET and SEQUENCE types. + */ +ssize_t +uper_get_nslength(asn_per_data_t *pd) { + ssize_t length; + + ASN_DEBUG("Getting normally small length"); + + if(per_get_few_bits(pd, 1) == 0) { + length = per_get_few_bits(pd, 6) + 1; + if(length <= 0) return -1; + ASN_DEBUG("l=%d", (int)length); + return length; + } else { + int repeat; + length = uper_get_length(pd, -1, 0, &repeat); + if(length >= 0 && !repeat) return length; + return -1; /* Error, or do not support >16K extensions */ + } +} + +/* + * Get the normally small non-negative whole number. + * X.691, #10.6 + */ +ssize_t +uper_get_nsnnwn(asn_per_data_t *pd) { + ssize_t value; + + value = per_get_few_bits(pd, 7); + if(value & 64) { /* implicit (value < 0) */ + value &= 63; + value <<= 2; + value |= per_get_few_bits(pd, 2); + if(value & 128) /* implicit (value < 0) */ + return -1; + if(value == 0) + return 0; + if(value >= 3) + return -1; + value = per_get_few_bits(pd, 8 * value); + return value; + } + + return value; +} + +/* + * X.691-11/2008, #11.6 + * Encoding of a normally small non-negative whole number + */ +int +uper_put_nsnnwn(asn_per_outp_t *po, int n) { + int bytes; + + if(n <= 63) { + if(n < 0) return -1; + return per_put_few_bits(po, n, 7); + } + if(n < 256) + bytes = 1; + else if(n < 65536) + bytes = 2; + else if(n < 256 * 65536) + bytes = 3; + else + return -1; /* This is not a "normally small" value */ + if(per_put_few_bits(po, bytes, 8)) + return -1; + + return per_put_few_bits(po, n, 8 * bytes); +} + + +/* X.691-2008/11, #11.5.6 -> #11.3 */ +int uper_get_constrained_whole_number(asn_per_data_t *pd, uintmax_t *out_value, int nbits) { + uintmax_t lhalf; /* Lower half of the number*/ + intmax_t half; + + if(nbits <= 31) { + half = per_get_few_bits(pd, nbits); + if(half < 0) return -1; + *out_value = half; + return 0; + } + + if((size_t)nbits > 8 * sizeof(*out_value)) + return -1; /* RANGE */ + + half = per_get_few_bits(pd, 31); + if(half < 0) return -1; + + if(uper_get_constrained_whole_number(pd, &lhalf, nbits - 31)) + return -1; + + *out_value = ((uintmax_t)half << (nbits - 31)) | lhalf; + return 0; +} + + +/* X.691-2008/11, #11.5.6 -> #11.3 */ +int +uper_put_constrained_whole_number_u(asn_per_outp_t *po, uintmax_t v, + int nbits) { + if(nbits <= 31) { + return per_put_few_bits(po, v, nbits); + } else { + /* Put higher portion first, followed by lower 31-bit */ + if(uper_put_constrained_whole_number_u(po, v >> 31, nbits - 31)) + return -1; + return per_put_few_bits(po, v, 31); + } +} + +/* + * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" + * Put the length "n" (or part of it) into the stream. + */ +ssize_t +uper_put_length(asn_per_outp_t *po, size_t length, int *need_eom) { + int dummy = 0; + if(!need_eom) need_eom = &dummy; + + if(length <= 127) { /* #11.9.3.6 */ + *need_eom = 0; + return per_put_few_bits(po, length, 8) + ? -1 : (ssize_t)length; + } else if(length < 16384) { /* #10.9.3.7 */ + *need_eom = 0; + return per_put_few_bits(po, length|0x8000, 16) + ? -1 : (ssize_t)length; + } + + *need_eom = 0 == (length & 16383); + length >>= 14; + if(length > 4) { + *need_eom = 0; + length = 4; + } + + return per_put_few_bits(po, 0xC0 | length, 8) + ? -1 : (ssize_t)(length << 14); + +} + + +/* + * Put the normally small length "n" into the stream. + * This procedure used to encode length of extensions bit-maps + * for SET and SEQUENCE types. + */ +int +uper_put_nslength(asn_per_outp_t *po, size_t length) { + if(length <= 64) { + /* #11.9.3.4 */ + if(length == 0) return -1; + return per_put_few_bits(po, length - 1, 7) ? -1 : 0; + } else { + int need_eom = 0; + if(uper_put_length(po, length, &need_eom) != (ssize_t)length + || need_eom) { + /* This might happen in case of >16K extensions */ + return -1; + } + } + + return 0; +} + +static int +per__imax_range(intmax_t lb, intmax_t ub, uintmax_t *range_r) { + uintmax_t bounds_range; + if((ub < 0) == (lb < 0)) { + bounds_range = ub - lb; + } else if(lb < 0) { + assert(ub >= 0); + bounds_range = 1 + ((uintmax_t)ub + (uintmax_t)-(lb + 1)); + } else { + assert(!"Unreachable"); + return -1; + } + *range_r = bounds_range; + return 0; +} + +int +per_imax_range_rebase(intmax_t v, intmax_t lb, intmax_t ub, uintmax_t *output) { + uintmax_t range; + + assert(lb <= ub); + + if(v < lb || v > ub || per__imax_range(lb, ub, &range) < 0) { + /* Range error. */ + return -1; + } + + /* + * Fundamentally what we're doing is returning (v-lb). + * However, this triggers undefined behavior when the word width + * of signed (v) is the same as the size of unsigned (*output). + * In practice, it triggers the UndefinedSanitizer. Therefore we shall + * compute the ranges accurately to avoid C's undefined behavior. + */ + if((v < 0) == (lb < 0)) { + *output = v-lb; + return 0; + } else if(v < 0) { + uintmax_t rebased = 1 + (uintmax_t)-(v+1) + (uintmax_t)lb; + assert(rebased <= range); /* By construction */ + *output = rebased; + return 0; + } else if(lb < 0) { + uintmax_t rebased = 1 + (uintmax_t)-(lb+1) + (uintmax_t)v; + assert(rebased <= range); /* By construction */ + *output = rebased; + return 0; + } else { + assert(!"Unreachable"); + return -1; + } +} + +int +per_long_range_rebase(long v, intmax_t lb, intmax_t ub, unsigned long *output) { + uintmax_t tmp = *output; + int rc = per_imax_range_rebase((intmax_t)v, lb, ub, &tmp); + *output = tmp; + return rc; +} + +int +per_imax_range_unrebase(uintmax_t inp, intmax_t lb, intmax_t ub, intmax_t *outp) { + uintmax_t range; + + if(per__imax_range(lb, ub, &range) != 0) { + return -1; + } + + if(inp > range) { + /* + * We can encode something in the given number of bits that technically + * exceeds the range. This is an avenue for security errors, + * so we don't allow that. + */ + return -1; + } + + if(inp <= INTMAX_MAX) { + *outp = (intmax_t)inp + lb; + } else { + *outp = (lb + INTMAX_MAX + 1) + (intmax_t)((inp - INTMAX_MAX) - 1); + } + + return 0; +} + +int +per_long_range_unrebase(unsigned long inp, intmax_t lb, intmax_t ub, long *outp) { + intmax_t tmp = *outp; + int rc = per_imax_range_unrebase((uintmax_t)inp, lb, ub, &tmp); + *outp = tmp; + return rc; +} diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/CMakeLists.txt b/etsi_its_coding/etsi_its_spatem_ts_coding/CMakeLists.txt new file mode 100644 index 000000000..ea7471e70 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/CMakeLists.txt @@ -0,0 +1,69 @@ +cmake_minimum_required(VERSION 3.5) +project(etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/ANY.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/ANY.h new file mode 100644 index 000000000..934895351 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/BIT_STRING.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/BIT_STRING.h new file mode 100644 index 000000000..2c9945fd7 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/BOOLEAN.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/BOOLEAN.h new file mode 100644 index 000000000..1baa2387e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/ENUMERATED.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/ENUMERATED.h new file mode 100644 index 000000000..32bd0bd75 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/GraphicString.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/GraphicString.h new file mode 100644 index 000000000..549866599 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/IA5String.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/IA5String.h new file mode 100644 index 000000000..c183bf537 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/INTEGER.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/INTEGER.h new file mode 100644 index 000000000..71ecb989b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/NULL.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/NULL.h new file mode 100644 index 000000000..4d9f7cd7b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/NativeEnumerated.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/NativeEnumerated.h new file mode 100644 index 000000000..2daf68c31 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/NativeInteger.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/NativeInteger.h new file mode 100644 index 000000000..ab5a60f54 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/NumericString.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/NumericString.h new file mode 100644 index 000000000..d07dd90ca --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/OBJECT_IDENTIFIER.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/OBJECT_IDENTIFIER.h new file mode 100644 index 000000000..3a72f622e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/OCTET_STRING.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/OCTET_STRING.h new file mode 100644 index 000000000..436eac0f1 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/OPEN_TYPE.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/OPEN_TYPE.h new file mode 100644 index 000000000..22ad145ed --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/ObjectDescriptor.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/ObjectDescriptor.h new file mode 100644 index 000000000..4a89a195c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/UTF8String.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/UTF8String.h new file mode 100644 index 000000000..dc31cab4f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/VisibleString.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/VisibleString.h new file mode 100644 index 000000000..43c8a9c9c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/aper_decoder.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/aper_decoder.h new file mode 100644 index 000000000..d47645d28 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/aper_encoder.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/aper_encoder.h new file mode 100644 index 000000000..c4c8c806f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/aper_opentype.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/aper_opentype.h new file mode 100644 index 000000000..c7106a038 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/aper_support.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/aper_support.h new file mode 100644 index 000000000..7127b42a7 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/asn_SEQUENCE_OF.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/asn_SEQUENCE_OF.h new file mode 100644 index 000000000..4040800f9 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/asn_SET_OF.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/asn_SET_OF.h new file mode 100644 index 000000000..882e1a47d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/asn_application.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/asn_application.h new file mode 100644 index 000000000..4f606d5f0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/asn_system.h" /* for platform-dependent types */ +#include "etsi_its_spatem_ts_coding/asn_codecs.h" /* for ASN.1 codecs specifics */ +#include "etsi_its_spatem_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_spatem_ts_coding/constr_TYPE.h" /* for asn_TYPE_descriptor_t */ + +#endif /* ASN_APPLICATION_H */ diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/asn_bit_data.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/asn_bit_data.h new file mode 100644 index 000000000..d8236faae --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/asn_codecs.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/asn_codecs.h new file mode 100644 index 000000000..e75c2709c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/asn_codecs_prim.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/asn_codecs_prim.h new file mode 100644 index 000000000..7de8489e3 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/asn_config.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/asn_config.h new file mode 100644 index 000000000..ddcac9026 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/asn_internal.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/asn_internal.h new file mode 100644 index 000000000..f5e3f1a74 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/asn_ioc.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/asn_ioc.h new file mode 100644 index 000000000..156f6a844 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/asn_random_fill.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/asn_random_fill.h new file mode 100644 index 000000000..47f9b8af0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/asn_system.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/asn_system.h new file mode 100644 index 000000000..194f96a5f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/ber_tlv_length.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/ber_tlv_length.h new file mode 100644 index 000000000..d1e4d48dd --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/ber_tlv_tag.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/ber_tlv_tag.h new file mode 100644 index 000000000..ce227add6 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/constr_CHOICE.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/constr_CHOICE.h new file mode 100644 index 000000000..0d2cbc2e0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/constr_SEQUENCE.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/constr_SEQUENCE.h new file mode 100644 index 000000000..b76146664 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/constr_SEQUENCE_OF.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/constr_SEQUENCE_OF.h new file mode 100644 index 000000000..d8bb9203e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/constr_SET_OF.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/constr_SET_OF.h new file mode 100644 index 000000000..e6098cf0d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/constr_TYPE.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/constr_TYPE.h new file mode 100644 index 000000000..9a1ff0a7c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/constraints.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/constraints.h new file mode 100644 index 000000000..bfbe4562d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/per_decoder.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/per_decoder.h new file mode 100644 index 000000000..310d36506 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/per_encoder.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/per_encoder.h new file mode 100644 index 000000000..f53c04d77 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/per_opentype.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/per_opentype.h new file mode 100644 index 000000000..5aefce818 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/per_support.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/per_support.h new file mode 100644 index 000000000..7b966a719 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AccelerationConfidence.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AccelerationConfidence.h new file mode 100644 index 000000000..f1bd62adb --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_AccelerationConfidence_H_ +#define _spatem_ts_AccelerationConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_AccelerationConfidence { + spatem_ts_AccelerationConfidence_pointOneMeterPerSecSquared = 1, + spatem_ts_AccelerationConfidence_outOfRange = 101, + spatem_ts_AccelerationConfidence_unavailable = 102 +} e_spatem_ts_AccelerationConfidence; + +/* spatem_ts_AccelerationConfidence */ +typedef long spatem_ts_AccelerationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_AccelerationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_AccelerationConfidence; +asn_struct_free_f spatem_ts_AccelerationConfidence_free; +asn_struct_print_f spatem_ts_AccelerationConfidence_print; +asn_constr_check_f spatem_ts_AccelerationConfidence_constraint; +per_type_decoder_f spatem_ts_AccelerationConfidence_decode_uper; +per_type_encoder_f spatem_ts_AccelerationConfidence_encode_uper; +per_type_decoder_f spatem_ts_AccelerationConfidence_decode_aper; +per_type_encoder_f spatem_ts_AccelerationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_AccelerationConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AccelerationControl.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AccelerationControl.h new file mode 100644 index 000000000..7245a514e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_AccelerationControl_H_ +#define _spatem_ts_AccelerationControl_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_AccelerationControl { + spatem_ts_AccelerationControl_brakePedalEngaged = 0, + spatem_ts_AccelerationControl_gasPedalEngaged = 1, + spatem_ts_AccelerationControl_emergencyBrakeEngaged = 2, + spatem_ts_AccelerationControl_collisionWarningEngaged = 3, + spatem_ts_AccelerationControl_accEngaged = 4, + spatem_ts_AccelerationControl_cruiseControlEngaged = 5, + spatem_ts_AccelerationControl_speedLimiterEngaged = 6 +} e_spatem_ts_AccelerationControl; + +/* spatem_ts_AccelerationControl */ +typedef BIT_STRING_t spatem_ts_AccelerationControl_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_AccelerationControl; +asn_struct_free_f spatem_ts_AccelerationControl_free; +asn_struct_print_f spatem_ts_AccelerationControl_print; +asn_constr_check_f spatem_ts_AccelerationControl_constraint; +per_type_decoder_f spatem_ts_AccelerationControl_decode_uper; +per_type_encoder_f spatem_ts_AccelerationControl_encode_uper; +per_type_decoder_f spatem_ts_AccelerationControl_decode_aper; +per_type_encoder_f spatem_ts_AccelerationControl_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_AccelerationControl_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AccidentSubCauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AccidentSubCauseCode.h new file mode 100644 index 000000000..6d4fd2866 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_AccidentSubCauseCode_H_ +#define _spatem_ts_AccidentSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_AccidentSubCauseCode { + spatem_ts_AccidentSubCauseCode_unavailable = 0, + spatem_ts_AccidentSubCauseCode_multiVehicleAccident = 1, + spatem_ts_AccidentSubCauseCode_heavyAccident = 2, + spatem_ts_AccidentSubCauseCode_accidentInvolvingLorry = 3, + spatem_ts_AccidentSubCauseCode_accidentInvolvingBus = 4, + spatem_ts_AccidentSubCauseCode_accidentInvolvingHazardousMaterials = 5, + spatem_ts_AccidentSubCauseCode_accidentOnOppositeLane = 6, + spatem_ts_AccidentSubCauseCode_unsecuredAccident = 7, + spatem_ts_AccidentSubCauseCode_assistanceRequested = 8 +} e_spatem_ts_AccidentSubCauseCode; + +/* spatem_ts_AccidentSubCauseCode */ +typedef long spatem_ts_AccidentSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_AccidentSubCauseCode; +asn_struct_free_f spatem_ts_AccidentSubCauseCode_free; +asn_struct_print_f spatem_ts_AccidentSubCauseCode_print; +asn_constr_check_f spatem_ts_AccidentSubCauseCode_constraint; +per_type_decoder_f spatem_ts_AccidentSubCauseCode_decode_uper; +per_type_encoder_f spatem_ts_AccidentSubCauseCode_encode_uper; +per_type_decoder_f spatem_ts_AccidentSubCauseCode_decode_aper; +per_type_encoder_f spatem_ts_AccidentSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_AccidentSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ActionID.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ActionID.h new file mode 100644 index 000000000..6036c25a9 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ActionID.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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ActionID_H_ +#define _spatem_ts_ActionID_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_StationID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_SequenceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_ActionID */ +typedef struct spatem_ts_ActionID { + spatem_ts_StationID_t originatingStationID; + spatem_ts_SequenceNumber_t sequenceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_ActionID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ActionID; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_ActionID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AdverseWeatherCondition-AdhesionSubCauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AdverseWeatherCondition-AdhesionSubCauseCode.h new file mode 100644 index 000000000..19da2bd9c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_H_ +#define _spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode { + spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_unavailable = 0, + spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_heavyFrostOnRoad = 1, + spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_fuelOnRoad = 2, + spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_mudOnRoad = 3, + spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_snowOnRoad = 4, + spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_iceOnRoad = 5, + spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_blackIceOnRoad = 6, + spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_oilOnRoad = 7, + spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_looseChippings = 8, + spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_instantBlackIce = 9, + spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_roadsSalted = 10 +} e_spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode; + +/* spatem_ts_AdverseWeatherCondition-AdhesionSubCauseCode */ +typedef long spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode; +asn_struct_free_f spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_free; +asn_struct_print_f spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_print; +asn_constr_check_f spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_constraint; +per_type_decoder_f spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_decode_uper; +per_type_encoder_f spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_encode_uper; +per_type_decoder_f spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_decode_aper; +per_type_encoder_f spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h new file mode 100644 index 000000000..64eb146fe --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ +#define _spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode { + spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_unavailable = 0, + spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_strongWinds = 1, + spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_damagingHail = 2, + spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_hurricane = 3, + spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_thunderstorm = 4, + spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tornado = 5, + spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_blizzard = 6 +} e_spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; + +/* spatem_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode */ +typedef long spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode; +asn_struct_free_f spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_free; +asn_struct_print_f spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_print; +asn_constr_check_f spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint; +per_type_decoder_f spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_uper; +per_type_encoder_f spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_uper; +per_type_decoder_f spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_decode_aper; +per_type_encoder_f spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.h new file mode 100644 index 000000000..dd8d95e20 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_H_ +#define _spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode { + spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_unavailable = 0, + spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_heavyRain = 1, + spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_heavySnowfall = 2, + spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_softHail = 3 +} e_spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode; + +/* spatem_ts_AdverseWeatherCondition-PrecipitationSubCauseCode */ +typedef long spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode; +asn_struct_free_f spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_free; +asn_struct_print_f spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_print; +asn_constr_check_f spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_constraint; +per_type_decoder_f spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_decode_uper; +per_type_encoder_f spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_encode_uper; +per_type_decoder_f spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_decode_aper; +per_type_encoder_f spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AdverseWeatherCondition-VisibilitySubCauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AdverseWeatherCondition-VisibilitySubCauseCode.h new file mode 100644 index 000000000..e35a71cb6 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_H_ +#define _spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode { + spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_unavailable = 0, + spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_fog = 1, + spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_smoke = 2, + spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_heavySnowfall = 3, + spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_heavyRain = 4, + spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_heavyHail = 5, + spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_lowSunGlare = 6, + spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_sandstorms = 7, + spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_swarmsOfInsects = 8 +} e_spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode; + +/* spatem_ts_AdverseWeatherCondition-VisibilitySubCauseCode */ +typedef long spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode; +asn_struct_free_f spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_free; +asn_struct_print_f spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_print; +asn_constr_check_f spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_constraint; +per_type_decoder_f spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_decode_uper; +per_type_encoder_f spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_encode_uper; +per_type_decoder_f spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_decode_aper; +per_type_encoder_f spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AdvisorySpeed.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AdvisorySpeed.h new file mode 100644 index 000000000..7f1a1bc7d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_AdvisorySpeed_H_ +#define _spatem_ts_AdvisorySpeed_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_AdvisorySpeedType.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_SpeedAdvice.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_SpeedConfidenceDSRC.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_ZoneLength.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RestrictionClassID.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_Reg_AdvisorySpeed; + +/* spatem_ts_AdvisorySpeed */ +typedef struct spatem_ts_AdvisorySpeed { + spatem_ts_AdvisorySpeedType_t type; + spatem_ts_SpeedAdvice_t *speed; /* OPTIONAL */ + spatem_ts_SpeedConfidenceDSRC_t *confidence; /* OPTIONAL */ + spatem_ts_ZoneLength_t *distance; /* OPTIONAL */ + spatem_ts_RestrictionClassID_t *Class; /* OPTIONAL */ + struct spatem_ts_AdvisorySpeed__regional { + A_SEQUENCE_OF(struct spatem_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; +} spatem_ts_AdvisorySpeed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_AdvisorySpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_AdvisorySpeed_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_AdvisorySpeed_1[6]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_AdvisorySpeed_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AdvisorySpeedList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AdvisorySpeedList.h new file mode 100644 index 000000000..37c7cbe72 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_AdvisorySpeedList_H_ +#define _spatem_ts_AdvisorySpeedList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_AdvisorySpeed; + +/* spatem_ts_AdvisorySpeedList */ +typedef struct spatem_ts_AdvisorySpeedList { + A_SEQUENCE_OF(struct spatem_ts_AdvisorySpeed) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_AdvisorySpeedList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_AdvisorySpeedList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_AdvisorySpeedList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_AdvisorySpeedList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_AdvisorySpeedList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_AdvisorySpeed.h" + +#endif /* _spatem_ts_AdvisorySpeedList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AdvisorySpeedType.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AdvisorySpeedType.h new file mode 100644 index 000000000..bd5af70c8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_AdvisorySpeedType_H_ +#define _spatem_ts_AdvisorySpeedType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_AdvisorySpeedType { + spatem_ts_AdvisorySpeedType_none = 0, + spatem_ts_AdvisorySpeedType_greenwave = 1, + spatem_ts_AdvisorySpeedType_ecoDrive = 2, + spatem_ts_AdvisorySpeedType_transit = 3 + /* + * Enumeration is extensible + */ +} e_spatem_ts_AdvisorySpeedType; + +/* spatem_ts_AdvisorySpeedType */ +typedef long spatem_ts_AdvisorySpeedType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_AdvisorySpeedType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_AdvisorySpeedType; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_AdvisorySpeedType_specs_1; +asn_struct_free_f spatem_ts_AdvisorySpeedType_free; +asn_struct_print_f spatem_ts_AdvisorySpeedType_print; +asn_constr_check_f spatem_ts_AdvisorySpeedType_constraint; +per_type_decoder_f spatem_ts_AdvisorySpeedType_decode_uper; +per_type_encoder_f spatem_ts_AdvisorySpeedType_encode_uper; +per_type_decoder_f spatem_ts_AdvisorySpeedType_decode_aper; +per_type_encoder_f spatem_ts_AdvisorySpeedType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_AdvisorySpeedType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AllowedManeuvers.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AllowedManeuvers.h new file mode 100644 index 000000000..7349ae1e9 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_AllowedManeuvers_H_ +#define _spatem_ts_AllowedManeuvers_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_AllowedManeuvers { + spatem_ts_AllowedManeuvers_maneuverStraightAllowed = 0, + spatem_ts_AllowedManeuvers_maneuverLeftAllowed = 1, + spatem_ts_AllowedManeuvers_maneuverRightAllowed = 2, + spatem_ts_AllowedManeuvers_maneuverUTurnAllowed = 3, + spatem_ts_AllowedManeuvers_maneuverLeftTurnOnRedAllowed = 4, + spatem_ts_AllowedManeuvers_maneuverRightTurnOnRedAllowed = 5, + spatem_ts_AllowedManeuvers_maneuverLaneChangeAllowed = 6, + spatem_ts_AllowedManeuvers_maneuverNoStoppingAllowed = 7, + spatem_ts_AllowedManeuvers_yieldAllwaysRequired = 8, + spatem_ts_AllowedManeuvers_goWithHalt = 9, + spatem_ts_AllowedManeuvers_caution = 10, + spatem_ts_AllowedManeuvers_reserved1 = 11 +} e_spatem_ts_AllowedManeuvers; + +/* spatem_ts_AllowedManeuvers */ +typedef BIT_STRING_t spatem_ts_AllowedManeuvers_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_AllowedManeuvers_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_AllowedManeuvers; +asn_struct_free_f spatem_ts_AllowedManeuvers_free; +asn_struct_print_f spatem_ts_AllowedManeuvers_print; +asn_constr_check_f spatem_ts_AllowedManeuvers_constraint; +per_type_decoder_f spatem_ts_AllowedManeuvers_decode_uper; +per_type_encoder_f spatem_ts_AllowedManeuvers_encode_uper; +per_type_decoder_f spatem_ts_AllowedManeuvers_decode_aper; +per_type_encoder_f spatem_ts_AllowedManeuvers_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_AllowedManeuvers_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AlphabetIndicator.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AlphabetIndicator.h new file mode 100644 index 000000000..ce5c48b8d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_AlphabetIndicator_H_ +#define _spatem_ts_AlphabetIndicator_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_AlphabetIndicator { + spatem_ts_AlphabetIndicator_latinAlphabetNo1 = 0, + spatem_ts_AlphabetIndicator_latinAlphabetNo2 = 1, + spatem_ts_AlphabetIndicator_latinAlphabetNo3 = 2, + spatem_ts_AlphabetIndicator_latinAlphabetNo4 = 3, + spatem_ts_AlphabetIndicator_latinCyrillicAlphabet = 4, + spatem_ts_AlphabetIndicator_latinArabicAlphabet = 5, + spatem_ts_AlphabetIndicator_latinGreekAlphabet = 6, + spatem_ts_AlphabetIndicator_latinHebrewAlphabet = 7, + spatem_ts_AlphabetIndicator_latinAlphabetNo5 = 8, + spatem_ts_AlphabetIndicator_latinAlphabetNo6 = 9, + spatem_ts_AlphabetIndicator_twoOctetBMP = 10, + spatem_ts_AlphabetIndicator_fourOctetCanonical = 11 +} e_spatem_ts_AlphabetIndicator; + +/* spatem_ts_AlphabetIndicator */ +typedef long spatem_ts_AlphabetIndicator_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_AlphabetIndicator_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_AlphabetIndicator; +asn_struct_free_f spatem_ts_AlphabetIndicator_free; +asn_struct_print_f spatem_ts_AlphabetIndicator_print; +asn_constr_check_f spatem_ts_AlphabetIndicator_constraint; +per_type_decoder_f spatem_ts_AlphabetIndicator_decode_uper; +per_type_encoder_f spatem_ts_AlphabetIndicator_encode_uper; +per_type_decoder_f spatem_ts_AlphabetIndicator_decode_aper; +per_type_encoder_f spatem_ts_AlphabetIndicator_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_AlphabetIndicator_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Altitude.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Altitude.h new file mode 100644 index 000000000..0d9b28804 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Altitude_H_ +#define _spatem_ts_Altitude_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_AltitudeValue.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_AltitudeConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_Altitude */ +typedef struct spatem_ts_Altitude { + spatem_ts_AltitudeValue_t altitudeValue; + spatem_ts_AltitudeConfidence_t altitudeConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_Altitude_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Altitude; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Altitude_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Altitude_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Altitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AltitudeConfidence.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AltitudeConfidence.h new file mode 100644 index 000000000..4c41be4f3 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_AltitudeConfidence_H_ +#define _spatem_ts_AltitudeConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_AltitudeConfidence { + spatem_ts_AltitudeConfidence_alt_000_01 = 0, + spatem_ts_AltitudeConfidence_alt_000_02 = 1, + spatem_ts_AltitudeConfidence_alt_000_05 = 2, + spatem_ts_AltitudeConfidence_alt_000_10 = 3, + spatem_ts_AltitudeConfidence_alt_000_20 = 4, + spatem_ts_AltitudeConfidence_alt_000_50 = 5, + spatem_ts_AltitudeConfidence_alt_001_00 = 6, + spatem_ts_AltitudeConfidence_alt_002_00 = 7, + spatem_ts_AltitudeConfidence_alt_005_00 = 8, + spatem_ts_AltitudeConfidence_alt_010_00 = 9, + spatem_ts_AltitudeConfidence_alt_020_00 = 10, + spatem_ts_AltitudeConfidence_alt_050_00 = 11, + spatem_ts_AltitudeConfidence_alt_100_00 = 12, + spatem_ts_AltitudeConfidence_alt_200_00 = 13, + spatem_ts_AltitudeConfidence_outOfRange = 14, + spatem_ts_AltitudeConfidence_unavailable = 15 +} e_spatem_ts_AltitudeConfidence; + +/* spatem_ts_AltitudeConfidence */ +typedef long spatem_ts_AltitudeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_AltitudeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_AltitudeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_AltitudeConfidence_specs_1; +asn_struct_free_f spatem_ts_AltitudeConfidence_free; +asn_struct_print_f spatem_ts_AltitudeConfidence_print; +asn_constr_check_f spatem_ts_AltitudeConfidence_constraint; +per_type_decoder_f spatem_ts_AltitudeConfidence_decode_uper; +per_type_encoder_f spatem_ts_AltitudeConfidence_encode_uper; +per_type_decoder_f spatem_ts_AltitudeConfidence_decode_aper; +per_type_encoder_f spatem_ts_AltitudeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_AltitudeConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AltitudeValue.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AltitudeValue.h new file mode 100644 index 000000000..73db4fec7 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_AltitudeValue_H_ +#define _spatem_ts_AltitudeValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_AltitudeValue { + spatem_ts_AltitudeValue_referenceEllipsoidSurface = 0, + spatem_ts_AltitudeValue_oneCentimeter = 1, + spatem_ts_AltitudeValue_unavailable = 800001 +} e_spatem_ts_AltitudeValue; + +/* spatem_ts_AltitudeValue */ +typedef long spatem_ts_AltitudeValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_AltitudeValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_AltitudeValue; +asn_struct_free_f spatem_ts_AltitudeValue_free; +asn_struct_print_f spatem_ts_AltitudeValue_print; +asn_constr_check_f spatem_ts_AltitudeValue_constraint; +per_type_decoder_f spatem_ts_AltitudeValue_decode_uper; +per_type_encoder_f spatem_ts_AltitudeValue_encode_uper; +per_type_decoder_f spatem_ts_AltitudeValue_decode_aper; +per_type_encoder_f spatem_ts_AltitudeValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_AltitudeValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Angle.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Angle.h new file mode 100644 index 000000000..7f4fe9bb8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Angle_H_ +#define _spatem_ts_Angle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_Angle */ +typedef long spatem_ts_Angle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_Angle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Angle; +asn_struct_free_f spatem_ts_Angle_free; +asn_struct_print_f spatem_ts_Angle_print; +asn_constr_check_f spatem_ts_Angle_constraint; +per_type_decoder_f spatem_ts_Angle_decode_uper; +per_type_encoder_f spatem_ts_Angle_encode_uper; +per_type_decoder_f spatem_ts_Angle_decode_aper; +per_type_encoder_f spatem_ts_Angle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Angle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AntennaOffsetSet.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AntennaOffsetSet.h new file mode 100644 index 000000000..eeedb8681 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_AntennaOffsetSet_H_ +#define _spatem_ts_AntennaOffsetSet_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_Offset-B12.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Offset-B09.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Offset-B10.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_AntennaOffsetSet */ +typedef struct spatem_ts_AntennaOffsetSet { + spatem_ts_Offset_B12_t antOffsetX; + spatem_ts_Offset_B09_t antOffsetY; + spatem_ts_Offset_B10_t antOffsetZ; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_AntennaOffsetSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_AntennaOffsetSet; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_AntennaOffsetSet_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_AntennaOffsetSet_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_AntennaOffsetSet_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ApproachID.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ApproachID.h new file mode 100644 index 000000000..074891c82 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ApproachID_H_ +#define _spatem_ts_ApproachID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_ApproachID */ +typedef long spatem_ts_ApproachID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_ApproachID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ApproachID; +asn_struct_free_f spatem_ts_ApproachID_free; +asn_struct_print_f spatem_ts_ApproachID_print; +asn_constr_check_f spatem_ts_ApproachID_constraint; +per_type_decoder_f spatem_ts_ApproachID_decode_uper; +per_type_encoder_f spatem_ts_ApproachID_encode_uper; +per_type_decoder_f spatem_ts_ApproachID_decode_aper; +per_type_encoder_f spatem_ts_ApproachID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_ApproachID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AviEriDateTime.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_AviEriDateTime.h new file mode 100644 index 000000000..492c0e646 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_AviEriDateTime_H_ +#define _spatem_ts_AviEriDateTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_AviEriDateTime */ +typedef OCTET_STRING_t spatem_ts_AviEriDateTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_AviEriDateTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_AviEriDateTime; +asn_struct_free_f spatem_ts_AviEriDateTime_free; +asn_struct_print_f spatem_ts_AviEriDateTime_print; +asn_constr_check_f spatem_ts_AviEriDateTime_constraint; +per_type_decoder_f spatem_ts_AviEriDateTime_decode_uper; +per_type_encoder_f spatem_ts_AviEriDateTime_encode_uper; +per_type_decoder_f spatem_ts_AviEriDateTime_decode_aper; +per_type_encoder_f spatem_ts_AviEriDateTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_AviEriDateTime_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_BasicVehicleRole.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_BasicVehicleRole.h new file mode 100644 index 000000000..140eac874 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_BasicVehicleRole_H_ +#define _spatem_ts_BasicVehicleRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_BasicVehicleRole { + spatem_ts_BasicVehicleRole_basicVehicle = 0, + spatem_ts_BasicVehicleRole_publicTransport = 1, + spatem_ts_BasicVehicleRole_specialTransport = 2, + spatem_ts_BasicVehicleRole_dangerousGoods = 3, + spatem_ts_BasicVehicleRole_roadWork = 4, + spatem_ts_BasicVehicleRole_roadRescue = 5, + spatem_ts_BasicVehicleRole_emergency = 6, + spatem_ts_BasicVehicleRole_safetyCar = 7, + spatem_ts_BasicVehicleRole_none_unknown = 8, + spatem_ts_BasicVehicleRole_truck = 9, + spatem_ts_BasicVehicleRole_motorcycle = 10, + spatem_ts_BasicVehicleRole_roadSideSource = 11, + spatem_ts_BasicVehicleRole_police = 12, + spatem_ts_BasicVehicleRole_fire = 13, + spatem_ts_BasicVehicleRole_ambulance = 14, + spatem_ts_BasicVehicleRole_dot = 15, + spatem_ts_BasicVehicleRole_transit = 16, + spatem_ts_BasicVehicleRole_slowMoving = 17, + spatem_ts_BasicVehicleRole_stopNgo = 18, + spatem_ts_BasicVehicleRole_cyclist = 19, + spatem_ts_BasicVehicleRole_pedestrian = 20, + spatem_ts_BasicVehicleRole_nonMotorized = 21, + spatem_ts_BasicVehicleRole_military = 22 + /* + * Enumeration is extensible + */ +} e_spatem_ts_BasicVehicleRole; + +/* spatem_ts_BasicVehicleRole */ +typedef long spatem_ts_BasicVehicleRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_BasicVehicleRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_BasicVehicleRole; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_BasicVehicleRole_specs_1; +asn_struct_free_f spatem_ts_BasicVehicleRole_free; +asn_struct_print_f spatem_ts_BasicVehicleRole_print; +asn_constr_check_f spatem_ts_BasicVehicleRole_constraint; +per_type_decoder_f spatem_ts_BasicVehicleRole_decode_uper; +per_type_encoder_f spatem_ts_BasicVehicleRole_encode_uper; +per_type_decoder_f spatem_ts_BasicVehicleRole_decode_aper; +per_type_encoder_f spatem_ts_BasicVehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_BasicVehicleRole_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_BatteryStatus.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_BatteryStatus.h new file mode 100644 index 000000000..977ff1195 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_BatteryStatus_H_ +#define _spatem_ts_BatteryStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_BatteryStatus { + spatem_ts_BatteryStatus_unknown = 0, + spatem_ts_BatteryStatus_critical = 1, + spatem_ts_BatteryStatus_low = 2, + spatem_ts_BatteryStatus_good = 3 + /* + * Enumeration is extensible + */ +} e_spatem_ts_BatteryStatus; + +/* spatem_ts_BatteryStatus */ +typedef long spatem_ts_BatteryStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_BatteryStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_BatteryStatus; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_BatteryStatus_specs_1; +asn_struct_free_f spatem_ts_BatteryStatus_free; +asn_struct_print_f spatem_ts_BatteryStatus_print; +asn_constr_check_f spatem_ts_BatteryStatus_constraint; +per_type_decoder_f spatem_ts_BatteryStatus_decode_uper; +per_type_encoder_f spatem_ts_BatteryStatus_encode_uper; +per_type_decoder_f spatem_ts_BatteryStatus_decode_aper; +per_type_encoder_f spatem_ts_BatteryStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_BatteryStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CS1.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CS1.h new file mode 100644 index 000000000..67c86f8ee --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_CS1_H_ +#define _spatem_ts_CS1_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_CountryCode.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_IssuerIdentifier.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_ServiceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_CS1 */ +typedef struct spatem_ts_CS1 { + spatem_ts_CountryCode_t countryCode; + spatem_ts_IssuerIdentifier_t issuerIdentifier; + spatem_ts_ServiceNumber_t serviceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_CS1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_CS1; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_CS1_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CS2.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CS2.h new file mode 100644 index 000000000..d5032d408 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_CS2_H_ +#define _spatem_ts_CS2_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_ManufacturerIdentifier.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_ServiceNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_CS2 */ +typedef struct spatem_ts_CS2 { + spatem_ts_ManufacturerIdentifier_t manufacturerIdentifier; + spatem_ts_ServiceNumber_t serviceNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_CS2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_CS2; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_CS2_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CS3.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CS3.h new file mode 100644 index 000000000..2ef9da944 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_CS3_H_ +#define _spatem_ts_CS3_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_StartTime.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_StopTime.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_GeoGraphicalLimit.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_ServiceApplicationLimit.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_CS3 */ +typedef struct spatem_ts_CS3 { + spatem_ts_StartTime_t startTime; + spatem_ts_StopTime_t stopTime; + spatem_ts_GeoGraphicalLimit_t geographLimit; + spatem_ts_ServiceApplicationLimit_t serviceAppLimit; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_CS3_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_CS3; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_CS3_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CS4.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CS4.h new file mode 100644 index 000000000..b52f507d0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_CS4_H_ +#define _spatem_ts_CS4_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_CountryCode.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_AlphabetIndicator.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_LicPlateNumber.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_CS4 */ +typedef struct spatem_ts_CS4 { + spatem_ts_CountryCode_t countryCode; + spatem_ts_AlphabetIndicator_t alphabetIndicator; + spatem_ts_LicPlateNumber_t licPlateNumber; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_CS4_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_CS4; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_CS4_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CS5.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CS5.h new file mode 100644 index 000000000..178a49472 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CS5.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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_CS5_H_ +#define _spatem_ts_CS5_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_CS5 */ +typedef struct spatem_ts_CS5 { + VisibleString_t vin; + BIT_STRING_t fill; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_CS5_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_CS5; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_CS5_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CS7.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CS7.h new file mode 100644 index 000000000..ccab9e9fb --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_CS7_H_ +#define _spatem_ts_CS7_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_FreightContainerData.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_CS7 */ +typedef spatem_ts_FreightContainerData_t spatem_ts_CS7_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_CS7; +asn_struct_free_f spatem_ts_CS7_free; +asn_struct_print_f spatem_ts_CS7_print; +asn_constr_check_f spatem_ts_CS7_constraint; +per_type_decoder_f spatem_ts_CS7_decode_uper; +per_type_encoder_f spatem_ts_CS7_encode_uper; +per_type_decoder_f spatem_ts_CS7_decode_aper; +per_type_encoder_f spatem_ts_CS7_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_CS7_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CS8.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CS8.h new file mode 100644 index 000000000..6c4f402df --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_CS8_H_ +#define _spatem_ts_CS8_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_spatem_ts_coding/spatem_ts_CountryCode.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_TaxCode.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_CS8 */ +typedef struct spatem_ts_CS8 { + BIT_STRING_t fill; + spatem_ts_CountryCode_t countryCode; + spatem_ts_TaxCode_t taxCode; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_CS8_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_CS8; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_CS8_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CauseCode.h new file mode 100644 index 000000000..0cc26c669 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_CauseCode_H_ +#define _spatem_ts_CauseCode_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_CauseCodeType.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_SubCauseCodeType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_CauseCode */ +typedef struct spatem_ts_CauseCode { + spatem_ts_CauseCodeType_t causeCode; + spatem_ts_SubCauseCodeType_t subCauseCode; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_CauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_CauseCode; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_CauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CauseCodeType.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CauseCodeType.h new file mode 100644 index 000000000..653496476 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_CauseCodeType_H_ +#define _spatem_ts_CauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_CauseCodeType { + spatem_ts_CauseCodeType_reserved = 0, + spatem_ts_CauseCodeType_trafficCondition = 1, + spatem_ts_CauseCodeType_accident = 2, + spatem_ts_CauseCodeType_roadworks = 3, + spatem_ts_CauseCodeType_impassability = 5, + spatem_ts_CauseCodeType_adverseWeatherCondition_Adhesion = 6, + spatem_ts_CauseCodeType_aquaplannning = 7, + spatem_ts_CauseCodeType_hazardousLocation_SurfaceCondition = 9, + spatem_ts_CauseCodeType_hazardousLocation_ObstacleOnTheRoad = 10, + spatem_ts_CauseCodeType_hazardousLocation_AnimalOnTheRoad = 11, + spatem_ts_CauseCodeType_humanPresenceOnTheRoad = 12, + spatem_ts_CauseCodeType_wrongWayDriving = 14, + spatem_ts_CauseCodeType_rescueAndRecoveryWorkInProgress = 15, + spatem_ts_CauseCodeType_adverseWeatherCondition_ExtremeWeatherCondition = 17, + spatem_ts_CauseCodeType_adverseWeatherCondition_Visibility = 18, + spatem_ts_CauseCodeType_adverseWeatherCondition_Precipitation = 19, + spatem_ts_CauseCodeType_slowVehicle = 26, + spatem_ts_CauseCodeType_dangerousEndOfQueue = 27, + spatem_ts_CauseCodeType_vehicleBreakdown = 91, + spatem_ts_CauseCodeType_postCrash = 92, + spatem_ts_CauseCodeType_humanProblem = 93, + spatem_ts_CauseCodeType_stationaryVehicle = 94, + spatem_ts_CauseCodeType_emergencyVehicleApproaching = 95, + spatem_ts_CauseCodeType_hazardousLocation_DangerousCurve = 96, + spatem_ts_CauseCodeType_collisionRisk = 97, + spatem_ts_CauseCodeType_signalViolation = 98, + spatem_ts_CauseCodeType_dangerousSituation = 99 +} e_spatem_ts_CauseCodeType; + +/* spatem_ts_CauseCodeType */ +typedef long spatem_ts_CauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_CauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_CauseCodeType; +asn_struct_free_f spatem_ts_CauseCodeType_free; +asn_struct_print_f spatem_ts_CauseCodeType_print; +asn_constr_check_f spatem_ts_CauseCodeType_constraint; +per_type_decoder_f spatem_ts_CauseCodeType_decode_uper; +per_type_encoder_f spatem_ts_CauseCodeType_encode_uper; +per_type_decoder_f spatem_ts_CauseCodeType_decode_aper; +per_type_encoder_f spatem_ts_CauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_CauseCodeType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CenDsrcTollingZone.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CenDsrcTollingZone.h new file mode 100644 index 000000000..29f968e4b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_CenDsrcTollingZone_H_ +#define _spatem_ts_CenDsrcTollingZone_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_Latitude.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Longitude.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_CenDsrcTollingZoneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_CenDsrcTollingZone */ +typedef struct spatem_ts_CenDsrcTollingZone { + spatem_ts_Latitude_t protectedZoneLatitude; + spatem_ts_Longitude_t protectedZoneLongitude; + spatem_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; +} spatem_ts_CenDsrcTollingZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_CenDsrcTollingZone; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_CenDsrcTollingZone_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CenDsrcTollingZoneID.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CenDsrcTollingZoneID.h new file mode 100644 index 000000000..5a0d54aec --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_CenDsrcTollingZoneID_H_ +#define _spatem_ts_CenDsrcTollingZoneID_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_ProtectedZoneID.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_CenDsrcTollingZoneID */ +typedef spatem_ts_ProtectedZoneID_t spatem_ts_CenDsrcTollingZoneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_CenDsrcTollingZoneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_CenDsrcTollingZoneID; +asn_struct_free_f spatem_ts_CenDsrcTollingZoneID_free; +asn_struct_print_f spatem_ts_CenDsrcTollingZoneID_print; +asn_constr_check_f spatem_ts_CenDsrcTollingZoneID_constraint; +per_type_decoder_f spatem_ts_CenDsrcTollingZoneID_decode_uper; +per_type_encoder_f spatem_ts_CenDsrcTollingZoneID_encode_uper; +per_type_decoder_f spatem_ts_CenDsrcTollingZoneID_decode_aper; +per_type_encoder_f spatem_ts_CenDsrcTollingZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_CenDsrcTollingZoneID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ClosedLanes.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ClosedLanes.h new file mode 100644 index 000000000..080aa1049 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ClosedLanes_H_ +#define _spatem_ts_ClosedLanes_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_HardShoulderStatus.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_DrivingLaneStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_ClosedLanes */ +typedef struct spatem_ts_ClosedLanes { + spatem_ts_HardShoulderStatus_t *innerhardShoulderStatus; /* OPTIONAL */ + spatem_ts_HardShoulderStatus_t *outerhardShoulderStatus; /* OPTIONAL */ + spatem_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; +} spatem_ts_ClosedLanes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ClosedLanes; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_ClosedLanes_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CollisionRiskSubCauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CollisionRiskSubCauseCode.h new file mode 100644 index 000000000..e8c669313 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_CollisionRiskSubCauseCode_H_ +#define _spatem_ts_CollisionRiskSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_CollisionRiskSubCauseCode { + spatem_ts_CollisionRiskSubCauseCode_unavailable = 0, + spatem_ts_CollisionRiskSubCauseCode_longitudinalCollisionRisk = 1, + spatem_ts_CollisionRiskSubCauseCode_crossingCollisionRisk = 2, + spatem_ts_CollisionRiskSubCauseCode_lateralCollisionRisk = 3, + spatem_ts_CollisionRiskSubCauseCode_vulnerableRoadUser = 4 +} e_spatem_ts_CollisionRiskSubCauseCode; + +/* spatem_ts_CollisionRiskSubCauseCode */ +typedef long spatem_ts_CollisionRiskSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_CollisionRiskSubCauseCode; +asn_struct_free_f spatem_ts_CollisionRiskSubCauseCode_free; +asn_struct_print_f spatem_ts_CollisionRiskSubCauseCode_print; +asn_constr_check_f spatem_ts_CollisionRiskSubCauseCode_constraint; +per_type_decoder_f spatem_ts_CollisionRiskSubCauseCode_decode_uper; +per_type_encoder_f spatem_ts_CollisionRiskSubCauseCode_encode_uper; +per_type_decoder_f spatem_ts_CollisionRiskSubCauseCode_decode_aper; +per_type_encoder_f spatem_ts_CollisionRiskSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_CollisionRiskSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ComputedLane.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ComputedLane.h new file mode 100644 index 000000000..c919ae91a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ComputedLane_H_ +#define _spatem_ts_ComputedLane_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Angle.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Scale-B12.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_DrivenLineOffsetSm.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_DrivenLineOffsetLg.h" +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_ComputedLane__offsetXaxis_PR { + spatem_ts_ComputedLane__offsetXaxis_PR_NOTHING, /* No components present */ + spatem_ts_ComputedLane__offsetXaxis_PR_small, + spatem_ts_ComputedLane__offsetXaxis_PR_large +} spatem_ts_ComputedLane__offsetXaxis_PR; +typedef enum spatem_ts_ComputedLane__offsetYaxis_PR { + spatem_ts_ComputedLane__offsetYaxis_PR_NOTHING, /* No components present */ + spatem_ts_ComputedLane__offsetYaxis_PR_small, + spatem_ts_ComputedLane__offsetYaxis_PR_large +} spatem_ts_ComputedLane__offsetYaxis_PR; + +/* Forward declarations */ +struct spatem_ts_Reg_ComputedLane; + +/* spatem_ts_ComputedLane */ +typedef struct spatem_ts_ComputedLane { + spatem_ts_LaneID_t referenceLaneId; + struct spatem_ts_ComputedLane__offsetXaxis { + spatem_ts_ComputedLane__offsetXaxis_PR present; + union spatem_ts_ComputedLane__spatem_ts_offsetXaxis_u { + spatem_ts_DrivenLineOffsetSm_t small; + spatem_ts_DrivenLineOffsetLg_t large; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } offsetXaxis; + struct spatem_ts_ComputedLane__offsetYaxis { + spatem_ts_ComputedLane__offsetYaxis_PR present; + union spatem_ts_ComputedLane__spatem_ts_offsetYaxis_u { + spatem_ts_DrivenLineOffsetSm_t small; + spatem_ts_DrivenLineOffsetLg_t large; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } offsetYaxis; + spatem_ts_Angle_t *rotateXY; /* OPTIONAL */ + spatem_ts_Scale_B12_t *scaleXaxis; /* OPTIONAL */ + spatem_ts_Scale_B12_t *scaleYaxis; /* OPTIONAL */ + struct spatem_ts_ComputedLane__regional { + A_SEQUENCE_OF(struct spatem_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; +} spatem_ts_ComputedLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ComputedLane; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_ComputedLane_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_ComputedLane_1[7]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_ComputedLane_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ConnectingLane.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ConnectingLane.h new file mode 100644 index 000000000..27f52c0df --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ConnectingLane_H_ +#define _spatem_ts_ConnectingLane_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_AllowedManeuvers.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_ConnectingLane */ +typedef struct spatem_ts_ConnectingLane { + spatem_ts_LaneID_t lane; + spatem_ts_AllowedManeuvers_t *maneuver; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_ConnectingLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ConnectingLane; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_ConnectingLane_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_ConnectingLane_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_ConnectingLane_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Connection.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Connection.h new file mode 100644 index 000000000..2239c2b17 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Connection_H_ +#define _spatem_ts_Connection_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_ConnectingLane.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalGroupID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RestrictionClassID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_IntersectionReferenceID; + +/* spatem_ts_Connection */ +typedef struct spatem_ts_Connection { + spatem_ts_ConnectingLane_t connectingLane; + struct spatem_ts_IntersectionReferenceID *remoteIntersection; /* OPTIONAL */ + spatem_ts_SignalGroupID_t *signalGroup; /* OPTIONAL */ + spatem_ts_RestrictionClassID_t *userClass; /* OPTIONAL */ + spatem_ts_LaneConnectionID_t *connectionID; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_Connection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Connection; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Connection_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Connection_1[5]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionReferenceID.h" + +#endif /* _spatem_ts_Connection_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ConnectionManeuverAssist-addGrpC.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ConnectionManeuverAssist-addGrpC.h new file mode 100644 index 000000000..212d306d9 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ConnectionManeuverAssist_addGrpC_H_ +#define _spatem_ts_ConnectionManeuverAssist_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_ItsStationPositionList; + +/* spatem_ts_ConnectionManeuverAssist-addGrpC */ +typedef struct spatem_ts_ConnectionManeuverAssist_addGrpC { + struct spatem_ts_ItsStationPositionList *itsStationPosition; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_ConnectionManeuverAssist_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ConnectionManeuverAssist_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_ConnectionManeuverAssist_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_ConnectionManeuverAssist_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_ItsStationPositionList.h" + +#endif /* _spatem_ts_ConnectionManeuverAssist_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ConnectionManeuverAssist.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ConnectionManeuverAssist.h new file mode 100644 index 000000000..fd8dd0a1d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ConnectionManeuverAssist_H_ +#define _spatem_ts_ConnectionManeuverAssist_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneConnectionID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_ZoneLength.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_WaitOnStopline.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_PedestrianBicycleDetect.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_Reg_ConnectionManeuverAssist; + +/* spatem_ts_ConnectionManeuverAssist */ +typedef struct spatem_ts_ConnectionManeuverAssist { + spatem_ts_LaneConnectionID_t connectionID; + spatem_ts_ZoneLength_t *queueLength; /* OPTIONAL */ + spatem_ts_ZoneLength_t *availableStorageLength; /* OPTIONAL */ + spatem_ts_WaitOnStopline_t *waitOnStop; /* OPTIONAL */ + spatem_ts_PedestrianBicycleDetect_t *pedBicycleDetect; /* OPTIONAL */ + struct spatem_ts_ConnectionManeuverAssist__regional { + A_SEQUENCE_OF(struct spatem_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; +} spatem_ts_ConnectionManeuverAssist_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ConnectionManeuverAssist; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_ConnectionManeuverAssist_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_ConnectionManeuverAssist_1[6]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_ConnectionManeuverAssist_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ConnectionTrajectory-addGrpC.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ConnectionTrajectory-addGrpC.h new file mode 100644 index 000000000..0e09834b3 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_NodeSetXY.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneConnectionID.h" +#include + +#ifndef _spatem_ts_ConnectionTrajectory_addGrpC_H_ +#define _spatem_ts_ConnectionTrajectory_addGrpC_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_ConnectionTrajectory-addGrpC */ +typedef struct spatem_ts_ConnectionTrajectory_addGrpC { + spatem_ts_NodeSetXY_t nodes; + spatem_ts_LaneConnectionID_t connectionID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_ConnectionTrajectory_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ConnectionTrajectory_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_ConnectionTrajectory_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_ConnectionTrajectory_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_ConnectionTrajectory_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ConnectsToList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ConnectsToList.h new file mode 100644 index 000000000..01a006556 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ConnectsToList_H_ +#define _spatem_ts_ConnectsToList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_Connection; + +/* spatem_ts_ConnectsToList */ +typedef struct spatem_ts_ConnectsToList { + A_SEQUENCE_OF(struct spatem_ts_Connection) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_ConnectsToList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ConnectsToList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_ConnectsToList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_ConnectsToList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_ConnectsToList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_Connection.h" + +#endif /* _spatem_ts_ConnectsToList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CountryCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CountryCode.h new file mode 100644 index 000000000..6e828166a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_CountryCode_H_ +#define _spatem_ts_CountryCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_CountryCode */ +typedef BIT_STRING_t spatem_ts_CountryCode_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_CountryCode_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_CountryCode; +asn_struct_free_f spatem_ts_CountryCode_free; +asn_struct_print_f spatem_ts_CountryCode_print; +asn_constr_check_f spatem_ts_CountryCode_constraint; +per_type_decoder_f spatem_ts_CountryCode_decode_uper; +per_type_encoder_f spatem_ts_CountryCode_encode_uper; +per_type_decoder_f spatem_ts_CountryCode_decode_aper; +per_type_encoder_f spatem_ts_CountryCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_CountryCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Curvature.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Curvature.h new file mode 100644 index 000000000..1ff52543b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Curvature_H_ +#define _spatem_ts_Curvature_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_CurvatureValue.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_CurvatureConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_Curvature */ +typedef struct spatem_ts_Curvature { + spatem_ts_CurvatureValue_t curvatureValue; + spatem_ts_CurvatureConfidence_t curvatureConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_Curvature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Curvature; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Curvature_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CurvatureCalculationMode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CurvatureCalculationMode.h new file mode 100644 index 000000000..7c5ea612a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_CurvatureCalculationMode_H_ +#define _spatem_ts_CurvatureCalculationMode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_CurvatureCalculationMode { + spatem_ts_CurvatureCalculationMode_yawRateUsed = 0, + spatem_ts_CurvatureCalculationMode_yawRateNotUsed = 1, + spatem_ts_CurvatureCalculationMode_unavailable = 2 + /* + * Enumeration is extensible + */ +} e_spatem_ts_CurvatureCalculationMode; + +/* spatem_ts_CurvatureCalculationMode */ +typedef long spatem_ts_CurvatureCalculationMode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_CurvatureCalculationMode; +asn_struct_free_f spatem_ts_CurvatureCalculationMode_free; +asn_struct_print_f spatem_ts_CurvatureCalculationMode_print; +asn_constr_check_f spatem_ts_CurvatureCalculationMode_constraint; +per_type_decoder_f spatem_ts_CurvatureCalculationMode_decode_uper; +per_type_encoder_f spatem_ts_CurvatureCalculationMode_encode_uper; +per_type_decoder_f spatem_ts_CurvatureCalculationMode_decode_aper; +per_type_encoder_f spatem_ts_CurvatureCalculationMode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_CurvatureCalculationMode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CurvatureConfidence.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CurvatureConfidence.h new file mode 100644 index 000000000..d4ea90879 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_CurvatureConfidence_H_ +#define _spatem_ts_CurvatureConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_CurvatureConfidence { + spatem_ts_CurvatureConfidence_onePerMeter_0_00002 = 0, + spatem_ts_CurvatureConfidence_onePerMeter_0_0001 = 1, + spatem_ts_CurvatureConfidence_onePerMeter_0_0005 = 2, + spatem_ts_CurvatureConfidence_onePerMeter_0_002 = 3, + spatem_ts_CurvatureConfidence_onePerMeter_0_01 = 4, + spatem_ts_CurvatureConfidence_onePerMeter_0_1 = 5, + spatem_ts_CurvatureConfidence_outOfRange = 6, + spatem_ts_CurvatureConfidence_unavailable = 7 +} e_spatem_ts_CurvatureConfidence; + +/* spatem_ts_CurvatureConfidence */ +typedef long spatem_ts_CurvatureConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_CurvatureConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_CurvatureConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_CurvatureConfidence_specs_1; +asn_struct_free_f spatem_ts_CurvatureConfidence_free; +asn_struct_print_f spatem_ts_CurvatureConfidence_print; +asn_constr_check_f spatem_ts_CurvatureConfidence_constraint; +per_type_decoder_f spatem_ts_CurvatureConfidence_decode_uper; +per_type_encoder_f spatem_ts_CurvatureConfidence_encode_uper; +per_type_decoder_f spatem_ts_CurvatureConfidence_decode_aper; +per_type_encoder_f spatem_ts_CurvatureConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_CurvatureConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CurvatureValue.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_CurvatureValue.h new file mode 100644 index 000000000..8f65860d0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_CurvatureValue_H_ +#define _spatem_ts_CurvatureValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_CurvatureValue { + spatem_ts_CurvatureValue_straight = 0, + spatem_ts_CurvatureValue_unavailable = 1023 +} e_spatem_ts_CurvatureValue; + +/* spatem_ts_CurvatureValue */ +typedef long spatem_ts_CurvatureValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_CurvatureValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_CurvatureValue; +asn_struct_free_f spatem_ts_CurvatureValue_free; +asn_struct_print_f spatem_ts_CurvatureValue_print; +asn_constr_check_f spatem_ts_CurvatureValue_constraint; +per_type_decoder_f spatem_ts_CurvatureValue_decode_uper; +per_type_encoder_f spatem_ts_CurvatureValue_encode_uper; +per_type_decoder_f spatem_ts_CurvatureValue_decode_aper; +per_type_encoder_f spatem_ts_CurvatureValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_CurvatureValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DDateTime.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DDateTime.h new file mode 100644 index 000000000..78b3cea6a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DDateTime_H_ +#define _spatem_ts_DDateTime_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_DYear.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_DMonth.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_DDay.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_DHour.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_DMinute.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_DSecond.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_DOffset.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_DDateTime */ +typedef struct spatem_ts_DDateTime { + spatem_ts_DYear_t *year; /* OPTIONAL */ + spatem_ts_DMonth_t *month; /* OPTIONAL */ + spatem_ts_DDay_t *day; /* OPTIONAL */ + spatem_ts_DHour_t *hour; /* OPTIONAL */ + spatem_ts_DMinute_t *minute; /* OPTIONAL */ + spatem_ts_DSecond_t *second; /* OPTIONAL */ + spatem_ts_DOffset_t *offset; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_DDateTime_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DDateTime; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_DDateTime_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_DDateTime_1[7]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DDateTime_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DDay.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DDay.h new file mode 100644 index 000000000..09edb4b11 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DDay_H_ +#define _spatem_ts_DDay_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_DDay */ +typedef long spatem_ts_DDay_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_DDay_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DDay; +asn_struct_free_f spatem_ts_DDay_free; +asn_struct_print_f spatem_ts_DDay_print; +asn_constr_check_f spatem_ts_DDay_constraint; +per_type_decoder_f spatem_ts_DDay_decode_uper; +per_type_encoder_f spatem_ts_DDay_encode_uper; +per_type_decoder_f spatem_ts_DDay_decode_aper; +per_type_encoder_f spatem_ts_DDay_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DDay_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DHour.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DHour.h new file mode 100644 index 000000000..d2d465a51 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DHour_H_ +#define _spatem_ts_DHour_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_DHour */ +typedef long spatem_ts_DHour_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_DHour_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DHour; +asn_struct_free_f spatem_ts_DHour_free; +asn_struct_print_f spatem_ts_DHour_print; +asn_constr_check_f spatem_ts_DHour_constraint; +per_type_decoder_f spatem_ts_DHour_decode_uper; +per_type_encoder_f spatem_ts_DHour_encode_uper; +per_type_decoder_f spatem_ts_DHour_decode_aper; +per_type_encoder_f spatem_ts_DHour_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DHour_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DMinute.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DMinute.h new file mode 100644 index 000000000..f8d43de4a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DMinute_H_ +#define _spatem_ts_DMinute_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_DMinute */ +typedef long spatem_ts_DMinute_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_DMinute_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DMinute; +asn_struct_free_f spatem_ts_DMinute_free; +asn_struct_print_f spatem_ts_DMinute_print; +asn_constr_check_f spatem_ts_DMinute_constraint; +per_type_decoder_f spatem_ts_DMinute_decode_uper; +per_type_encoder_f spatem_ts_DMinute_encode_uper; +per_type_decoder_f spatem_ts_DMinute_decode_aper; +per_type_encoder_f spatem_ts_DMinute_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DMinute_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DMonth.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DMonth.h new file mode 100644 index 000000000..3bd8e6798 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DMonth_H_ +#define _spatem_ts_DMonth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_DMonth */ +typedef long spatem_ts_DMonth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_DMonth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DMonth; +asn_struct_free_f spatem_ts_DMonth_free; +asn_struct_print_f spatem_ts_DMonth_print; +asn_constr_check_f spatem_ts_DMonth_constraint; +per_type_decoder_f spatem_ts_DMonth_decode_uper; +per_type_encoder_f spatem_ts_DMonth_encode_uper; +per_type_decoder_f spatem_ts_DMonth_decode_aper; +per_type_encoder_f spatem_ts_DMonth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DMonth_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DOffset.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DOffset.h new file mode 100644 index 000000000..ca1d4a627 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DOffset_H_ +#define _spatem_ts_DOffset_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_DOffset */ +typedef long spatem_ts_DOffset_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_DOffset_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DOffset; +asn_struct_free_f spatem_ts_DOffset_free; +asn_struct_print_f spatem_ts_DOffset_print; +asn_constr_check_f spatem_ts_DOffset_constraint; +per_type_decoder_f spatem_ts_DOffset_decode_uper; +per_type_encoder_f spatem_ts_DOffset_encode_uper; +per_type_decoder_f spatem_ts_DOffset_decode_aper; +per_type_encoder_f spatem_ts_DOffset_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DOffset_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DSRCmsgID.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DSRCmsgID.h new file mode 100644 index 000000000..e9d9e79a2 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DSRCmsgID_H_ +#define _spatem_ts_DSRCmsgID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_DSRCmsgID */ +typedef long spatem_ts_DSRCmsgID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_DSRCmsgID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DSRCmsgID; +asn_struct_free_f spatem_ts_DSRCmsgID_free; +asn_struct_print_f spatem_ts_DSRCmsgID_print; +asn_constr_check_f spatem_ts_DSRCmsgID_constraint; +per_type_decoder_f spatem_ts_DSRCmsgID_decode_uper; +per_type_encoder_f spatem_ts_DSRCmsgID_encode_uper; +per_type_decoder_f spatem_ts_DSRCmsgID_decode_aper; +per_type_encoder_f spatem_ts_DSRCmsgID_encode_aper; +#define spatem_ts_DSRCmsgID_mapData ((spatem_ts_DSRCmsgID_t)18) +#define spatem_ts_DSRCmsgID_rtcmCorrections ((spatem_ts_DSRCmsgID_t)28) +#define spatem_ts_DSRCmsgID_signalPhaseAndTimingMessage ((spatem_ts_DSRCmsgID_t)19) +#define spatem_ts_DSRCmsgID_signalRequestMessage ((spatem_ts_DSRCmsgID_t)29) +#define spatem_ts_DSRCmsgID_signalStatusMessage ((spatem_ts_DSRCmsgID_t)30) + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DSRCmsgID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DSecond.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DSecond.h new file mode 100644 index 000000000..76a8a4ed1 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DSecond_H_ +#define _spatem_ts_DSecond_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_DSecond */ +typedef long spatem_ts_DSecond_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_DSecond_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DSecond; +asn_struct_free_f spatem_ts_DSecond_free; +asn_struct_print_f spatem_ts_DSecond_print; +asn_constr_check_f spatem_ts_DSecond_constraint; +per_type_decoder_f spatem_ts_DSecond_decode_uper; +per_type_encoder_f spatem_ts_DSecond_encode_uper; +per_type_decoder_f spatem_ts_DSecond_decode_aper; +per_type_encoder_f spatem_ts_DSecond_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DSecond_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DYear.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DYear.h new file mode 100644 index 000000000..887595089 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DYear_H_ +#define _spatem_ts_DYear_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_DYear */ +typedef long spatem_ts_DYear_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_DYear_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DYear; +asn_struct_free_f spatem_ts_DYear_free; +asn_struct_print_f spatem_ts_DYear_print; +asn_constr_check_f spatem_ts_DYear_constraint; +per_type_decoder_f spatem_ts_DYear_decode_uper; +per_type_encoder_f spatem_ts_DYear_encode_uper; +per_type_decoder_f spatem_ts_DYear_decode_aper; +per_type_encoder_f spatem_ts_DYear_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DYear_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DangerousEndOfQueueSubCauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DangerousEndOfQueueSubCauseCode.h new file mode 100644 index 000000000..499726796 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DangerousEndOfQueueSubCauseCode_H_ +#define _spatem_ts_DangerousEndOfQueueSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_DangerousEndOfQueueSubCauseCode { + spatem_ts_DangerousEndOfQueueSubCauseCode_unavailable = 0, + spatem_ts_DangerousEndOfQueueSubCauseCode_suddenEndOfQueue = 1, + spatem_ts_DangerousEndOfQueueSubCauseCode_queueOverHill = 2, + spatem_ts_DangerousEndOfQueueSubCauseCode_queueAroundBend = 3, + spatem_ts_DangerousEndOfQueueSubCauseCode_queueInTunnel = 4 +} e_spatem_ts_DangerousEndOfQueueSubCauseCode; + +/* spatem_ts_DangerousEndOfQueueSubCauseCode */ +typedef long spatem_ts_DangerousEndOfQueueSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DangerousEndOfQueueSubCauseCode; +asn_struct_free_f spatem_ts_DangerousEndOfQueueSubCauseCode_free; +asn_struct_print_f spatem_ts_DangerousEndOfQueueSubCauseCode_print; +asn_constr_check_f spatem_ts_DangerousEndOfQueueSubCauseCode_constraint; +per_type_decoder_f spatem_ts_DangerousEndOfQueueSubCauseCode_decode_uper; +per_type_encoder_f spatem_ts_DangerousEndOfQueueSubCauseCode_encode_uper; +per_type_decoder_f spatem_ts_DangerousEndOfQueueSubCauseCode_decode_aper; +per_type_encoder_f spatem_ts_DangerousEndOfQueueSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DangerousEndOfQueueSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DangerousGoodsBasic.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DangerousGoodsBasic.h new file mode 100644 index 000000000..034c567df --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DangerousGoodsBasic_H_ +#define _spatem_ts_DangerousGoodsBasic_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_DangerousGoodsBasic { + spatem_ts_DangerousGoodsBasic_explosives1 = 0, + spatem_ts_DangerousGoodsBasic_explosives2 = 1, + spatem_ts_DangerousGoodsBasic_explosives3 = 2, + spatem_ts_DangerousGoodsBasic_explosives4 = 3, + spatem_ts_DangerousGoodsBasic_explosives5 = 4, + spatem_ts_DangerousGoodsBasic_explosives6 = 5, + spatem_ts_DangerousGoodsBasic_flammableGases = 6, + spatem_ts_DangerousGoodsBasic_nonFlammableGases = 7, + spatem_ts_DangerousGoodsBasic_toxicGases = 8, + spatem_ts_DangerousGoodsBasic_flammableLiquids = 9, + spatem_ts_DangerousGoodsBasic_flammableSolids = 10, + spatem_ts_DangerousGoodsBasic_substancesLiableToSpontaneousCombustion = 11, + spatem_ts_DangerousGoodsBasic_substancesEmittingFlammableGasesUponContactWithWater = 12, + spatem_ts_DangerousGoodsBasic_oxidizingSubstances = 13, + spatem_ts_DangerousGoodsBasic_organicPeroxides = 14, + spatem_ts_DangerousGoodsBasic_toxicSubstances = 15, + spatem_ts_DangerousGoodsBasic_infectiousSubstances = 16, + spatem_ts_DangerousGoodsBasic_radioactiveMaterial = 17, + spatem_ts_DangerousGoodsBasic_corrosiveSubstances = 18, + spatem_ts_DangerousGoodsBasic_miscellaneousDangerousSubstances = 19 +} e_spatem_ts_DangerousGoodsBasic; + +/* spatem_ts_DangerousGoodsBasic */ +typedef long spatem_ts_DangerousGoodsBasic_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_DangerousGoodsBasic_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DangerousGoodsBasic; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_DangerousGoodsBasic_specs_1; +asn_struct_free_f spatem_ts_DangerousGoodsBasic_free; +asn_struct_print_f spatem_ts_DangerousGoodsBasic_print; +asn_constr_check_f spatem_ts_DangerousGoodsBasic_constraint; +per_type_decoder_f spatem_ts_DangerousGoodsBasic_decode_uper; +per_type_encoder_f spatem_ts_DangerousGoodsBasic_encode_uper; +per_type_decoder_f spatem_ts_DangerousGoodsBasic_decode_aper; +per_type_encoder_f spatem_ts_DangerousGoodsBasic_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DangerousGoodsBasic_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DangerousGoodsExtended.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DangerousGoodsExtended.h new file mode 100644 index 000000000..f7ac32da8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DangerousGoodsExtended_H_ +#define _spatem_ts_DangerousGoodsExtended_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_DangerousGoodsBasic.h" +#include +#include +#include +#include "etsi_its_spatem_ts_coding/spatem_ts_PhoneNumber.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_DangerousGoodsExtended */ +typedef struct spatem_ts_DangerousGoodsExtended { + spatem_ts_DangerousGoodsBasic_t dangerousGoodsType; + long unNumber; + BOOLEAN_t elevatedTemperature; + BOOLEAN_t tunnelsRestricted; + BOOLEAN_t limitedQuantity; + IA5String_t *emergencyActionCode; /* OPTIONAL */ + spatem_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; +} spatem_ts_DangerousGoodsExtended_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DangerousGoodsExtended; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DangerousGoodsExtended_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DangerousSituationSubCauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DangerousSituationSubCauseCode.h new file mode 100644 index 000000000..7063f4a61 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DangerousSituationSubCauseCode_H_ +#define _spatem_ts_DangerousSituationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_DangerousSituationSubCauseCode { + spatem_ts_DangerousSituationSubCauseCode_unavailable = 0, + spatem_ts_DangerousSituationSubCauseCode_emergencyElectronicBrakeEngaged = 1, + spatem_ts_DangerousSituationSubCauseCode_preCrashSystemEngaged = 2, + spatem_ts_DangerousSituationSubCauseCode_espEngaged = 3, + spatem_ts_DangerousSituationSubCauseCode_absEngaged = 4, + spatem_ts_DangerousSituationSubCauseCode_aebEngaged = 5, + spatem_ts_DangerousSituationSubCauseCode_brakeWarningEngaged = 6, + spatem_ts_DangerousSituationSubCauseCode_collisionRiskWarningEngaged = 7 +} e_spatem_ts_DangerousSituationSubCauseCode; + +/* spatem_ts_DangerousSituationSubCauseCode */ +typedef long spatem_ts_DangerousSituationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DangerousSituationSubCauseCode; +asn_struct_free_f spatem_ts_DangerousSituationSubCauseCode_free; +asn_struct_print_f spatem_ts_DangerousSituationSubCauseCode_print; +asn_constr_check_f spatem_ts_DangerousSituationSubCauseCode_constraint; +per_type_decoder_f spatem_ts_DangerousSituationSubCauseCode_decode_uper; +per_type_encoder_f spatem_ts_DangerousSituationSubCauseCode_encode_uper; +per_type_decoder_f spatem_ts_DangerousSituationSubCauseCode_decode_aper; +per_type_encoder_f spatem_ts_DangerousSituationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DangerousSituationSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DataParameters.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DataParameters.h new file mode 100644 index 000000000..2456a04f2 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DataParameters_H_ +#define _spatem_ts_DataParameters_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_DataParameters */ +typedef struct spatem_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; +} spatem_ts_DataParameters_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DataParameters; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_DataParameters_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_DataParameters_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DataParameters_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DeltaAltitude.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DeltaAltitude.h new file mode 100644 index 000000000..6b8ff8c38 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DeltaAltitude_H_ +#define _spatem_ts_DeltaAltitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_DeltaAltitude { + spatem_ts_DeltaAltitude_oneCentimeterUp = 1, + spatem_ts_DeltaAltitude_oneCentimeterDown = -1, + spatem_ts_DeltaAltitude_unavailable = 12800 +} e_spatem_ts_DeltaAltitude; + +/* spatem_ts_DeltaAltitude */ +typedef long spatem_ts_DeltaAltitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_DeltaAltitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DeltaAltitude; +asn_struct_free_f spatem_ts_DeltaAltitude_free; +asn_struct_print_f spatem_ts_DeltaAltitude_print; +asn_constr_check_f spatem_ts_DeltaAltitude_constraint; +per_type_decoder_f spatem_ts_DeltaAltitude_decode_uper; +per_type_encoder_f spatem_ts_DeltaAltitude_encode_uper; +per_type_decoder_f spatem_ts_DeltaAltitude_decode_aper; +per_type_encoder_f spatem_ts_DeltaAltitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DeltaAltitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DeltaAngle.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DeltaAngle.h new file mode 100644 index 000000000..cecbe25a2 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DeltaAngle_H_ +#define _spatem_ts_DeltaAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_DeltaAngle */ +typedef long spatem_ts_DeltaAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_DeltaAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DeltaAngle; +asn_struct_free_f spatem_ts_DeltaAngle_free; +asn_struct_print_f spatem_ts_DeltaAngle_print; +asn_constr_check_f spatem_ts_DeltaAngle_constraint; +per_type_decoder_f spatem_ts_DeltaAngle_decode_uper; +per_type_encoder_f spatem_ts_DeltaAngle_encode_uper; +per_type_decoder_f spatem_ts_DeltaAngle_decode_aper; +per_type_encoder_f spatem_ts_DeltaAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DeltaAngle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DeltaLatitude.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DeltaLatitude.h new file mode 100644 index 000000000..dfcaa08b5 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DeltaLatitude_H_ +#define _spatem_ts_DeltaLatitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_DeltaLatitude { + spatem_ts_DeltaLatitude_oneMicrodegreeNorth = 10, + spatem_ts_DeltaLatitude_oneMicrodegreeSouth = -10, + spatem_ts_DeltaLatitude_unavailable = 131072 +} e_spatem_ts_DeltaLatitude; + +/* spatem_ts_DeltaLatitude */ +typedef long spatem_ts_DeltaLatitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_DeltaLatitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DeltaLatitude; +asn_struct_free_f spatem_ts_DeltaLatitude_free; +asn_struct_print_f spatem_ts_DeltaLatitude_print; +asn_constr_check_f spatem_ts_DeltaLatitude_constraint; +per_type_decoder_f spatem_ts_DeltaLatitude_decode_uper; +per_type_encoder_f spatem_ts_DeltaLatitude_encode_uper; +per_type_decoder_f spatem_ts_DeltaLatitude_decode_aper; +per_type_encoder_f spatem_ts_DeltaLatitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DeltaLatitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DeltaLongitude.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DeltaLongitude.h new file mode 100644 index 000000000..b3ce07d85 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DeltaLongitude_H_ +#define _spatem_ts_DeltaLongitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_DeltaLongitude { + spatem_ts_DeltaLongitude_oneMicrodegreeEast = 10, + spatem_ts_DeltaLongitude_oneMicrodegreeWest = -10, + spatem_ts_DeltaLongitude_unavailable = 131072 +} e_spatem_ts_DeltaLongitude; + +/* spatem_ts_DeltaLongitude */ +typedef long spatem_ts_DeltaLongitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_DeltaLongitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DeltaLongitude; +asn_struct_free_f spatem_ts_DeltaLongitude_free; +asn_struct_print_f spatem_ts_DeltaLongitude_print; +asn_constr_check_f spatem_ts_DeltaLongitude_constraint; +per_type_decoder_f spatem_ts_DeltaLongitude_decode_uper; +per_type_encoder_f spatem_ts_DeltaLongitude_encode_uper; +per_type_decoder_f spatem_ts_DeltaLongitude_decode_aper; +per_type_encoder_f spatem_ts_DeltaLongitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DeltaLongitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DeltaReferencePosition.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DeltaReferencePosition.h new file mode 100644 index 000000000..660ea57a0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DeltaReferencePosition_H_ +#define _spatem_ts_DeltaReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_DeltaLatitude.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_DeltaLongitude.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_DeltaAltitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_DeltaReferencePosition */ +typedef struct spatem_ts_DeltaReferencePosition { + spatem_ts_DeltaLatitude_t deltaLatitude; + spatem_ts_DeltaLongitude_t deltaLongitude; + spatem_ts_DeltaAltitude_t deltaAltitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_DeltaReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DeltaReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_DeltaReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_DeltaReferencePosition_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DeltaReferencePosition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DeltaTime.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DeltaTime.h new file mode 100644 index 000000000..7f8bcab45 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DeltaTime_H_ +#define _spatem_ts_DeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_DeltaTime */ +typedef long spatem_ts_DeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_DeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DeltaTime; +asn_struct_free_f spatem_ts_DeltaTime_free; +asn_struct_print_f spatem_ts_DeltaTime_print; +asn_constr_check_f spatem_ts_DeltaTime_constraint; +per_type_decoder_f spatem_ts_DeltaTime_decode_uper; +per_type_encoder_f spatem_ts_DeltaTime_encode_uper; +per_type_decoder_f spatem_ts_DeltaTime_decode_aper; +per_type_encoder_f spatem_ts_DeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DeltaTime_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DescriptiveName.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DescriptiveName.h new file mode 100644 index 000000000..fb8462800 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DescriptiveName_H_ +#define _spatem_ts_DescriptiveName_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_DescriptiveName */ +typedef IA5String_t spatem_ts_DescriptiveName_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_DescriptiveName_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DescriptiveName; +asn_struct_free_f spatem_ts_DescriptiveName_free; +asn_struct_print_f spatem_ts_DescriptiveName_print; +asn_constr_check_f spatem_ts_DescriptiveName_constraint; +per_type_decoder_f spatem_ts_DescriptiveName_decode_uper; +per_type_encoder_f spatem_ts_DescriptiveName_encode_uper; +per_type_decoder_f spatem_ts_DescriptiveName_decode_aper; +per_type_encoder_f spatem_ts_DescriptiveName_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DescriptiveName_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DigitalMap.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DigitalMap.h new file mode 100644 index 000000000..59e6c986b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DigitalMap_H_ +#define _spatem_ts_DigitalMap_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_ReferencePosition; + +/* spatem_ts_DigitalMap */ +typedef struct spatem_ts_DigitalMap { + A_SEQUENCE_OF(struct spatem_ts_ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_DigitalMap_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DigitalMap; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_ReferencePosition.h" + +#endif /* _spatem_ts_DigitalMap_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DriveDirection.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DriveDirection.h new file mode 100644 index 000000000..2a93f8a01 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DriveDirection_H_ +#define _spatem_ts_DriveDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_DriveDirection { + spatem_ts_DriveDirection_forward = 0, + spatem_ts_DriveDirection_backward = 1, + spatem_ts_DriveDirection_unavailable = 2 +} e_spatem_ts_DriveDirection; + +/* spatem_ts_DriveDirection */ +typedef long spatem_ts_DriveDirection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DriveDirection; +asn_struct_free_f spatem_ts_DriveDirection_free; +asn_struct_print_f spatem_ts_DriveDirection_print; +asn_constr_check_f spatem_ts_DriveDirection_constraint; +per_type_decoder_f spatem_ts_DriveDirection_decode_uper; +per_type_encoder_f spatem_ts_DriveDirection_encode_uper; +per_type_decoder_f spatem_ts_DriveDirection_decode_aper; +per_type_encoder_f spatem_ts_DriveDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DriveDirection_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DrivenLineOffsetLg.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DrivenLineOffsetLg.h new file mode 100644 index 000000000..3b33a0128 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DrivenLineOffsetLg_H_ +#define _spatem_ts_DrivenLineOffsetLg_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_DrivenLineOffsetLg */ +typedef long spatem_ts_DrivenLineOffsetLg_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_DrivenLineOffsetLg_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DrivenLineOffsetLg; +asn_struct_free_f spatem_ts_DrivenLineOffsetLg_free; +asn_struct_print_f spatem_ts_DrivenLineOffsetLg_print; +asn_constr_check_f spatem_ts_DrivenLineOffsetLg_constraint; +per_type_decoder_f spatem_ts_DrivenLineOffsetLg_decode_uper; +per_type_encoder_f spatem_ts_DrivenLineOffsetLg_encode_uper; +per_type_decoder_f spatem_ts_DrivenLineOffsetLg_decode_aper; +per_type_encoder_f spatem_ts_DrivenLineOffsetLg_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DrivenLineOffsetLg_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DrivenLineOffsetSm.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DrivenLineOffsetSm.h new file mode 100644 index 000000000..5fa4b9d2b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DrivenLineOffsetSm_H_ +#define _spatem_ts_DrivenLineOffsetSm_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_DrivenLineOffsetSm */ +typedef long spatem_ts_DrivenLineOffsetSm_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_DrivenLineOffsetSm_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DrivenLineOffsetSm; +asn_struct_free_f spatem_ts_DrivenLineOffsetSm_free; +asn_struct_print_f spatem_ts_DrivenLineOffsetSm_print; +asn_constr_check_f spatem_ts_DrivenLineOffsetSm_constraint; +per_type_decoder_f spatem_ts_DrivenLineOffsetSm_decode_uper; +per_type_encoder_f spatem_ts_DrivenLineOffsetSm_encode_uper; +per_type_decoder_f spatem_ts_DrivenLineOffsetSm_decode_aper; +per_type_encoder_f spatem_ts_DrivenLineOffsetSm_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DrivenLineOffsetSm_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DrivingLaneStatus.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_DrivingLaneStatus.h new file mode 100644 index 000000000..3f5ed1a44 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_DrivingLaneStatus_H_ +#define _spatem_ts_DrivingLaneStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_DrivingLaneStatus */ +typedef BIT_STRING_t spatem_ts_DrivingLaneStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_DrivingLaneStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_DrivingLaneStatus; +asn_struct_free_f spatem_ts_DrivingLaneStatus_free; +asn_struct_print_f spatem_ts_DrivingLaneStatus_print; +asn_constr_check_f spatem_ts_DrivingLaneStatus_constraint; +per_type_decoder_f spatem_ts_DrivingLaneStatus_decode_uper; +per_type_encoder_f spatem_ts_DrivingLaneStatus_encode_uper; +per_type_decoder_f spatem_ts_DrivingLaneStatus_decode_aper; +per_type_encoder_f spatem_ts_DrivingLaneStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_DrivingLaneStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EXTERNAL.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EXTERNAL.h new file mode 100644 index 000000000..4cf40f446 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_EXTERNAL_H_ +#define _spatem_ts_EXTERNAL_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_EXTERNAL__encoding_PR { + spatem_ts_EXTERNAL__encoding_PR_NOTHING, /* No components present */ + spatem_ts_EXTERNAL__encoding_PR_single_ASN1_type, + spatem_ts_EXTERNAL__encoding_PR_octet_aligned, + spatem_ts_EXTERNAL__encoding_PR_arbitrary +} spatem_ts_EXTERNAL__encoding_PR; + +/* spatem_ts_EXTERNAL */ +typedef struct spatem_ts_EXTERNAL { + OBJECT_IDENTIFIER_t *direct_reference; /* OPTIONAL */ + long *indirect_reference; /* OPTIONAL */ + ObjectDescriptor_t *data_value_descriptor; /* OPTIONAL */ + struct spatem_ts_EXTERNAL__encoding { + spatem_ts_EXTERNAL__encoding_PR present; + union spatem_ts_EXTERNAL__spatem_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; +} spatem_ts_EXTERNAL_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_EXTERNAL; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_EXTERNAL_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Elevation.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Elevation.h new file mode 100644 index 000000000..9bcc9dd43 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Elevation_H_ +#define _spatem_ts_Elevation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_Elevation */ +typedef long spatem_ts_Elevation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_Elevation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Elevation; +asn_struct_free_f spatem_ts_Elevation_free; +asn_struct_print_f spatem_ts_Elevation_print; +asn_constr_check_f spatem_ts_Elevation_constraint; +per_type_decoder_f spatem_ts_Elevation_decode_uper; +per_type_encoder_f spatem_ts_Elevation_encode_uper; +per_type_decoder_f spatem_ts_Elevation_decode_aper; +per_type_encoder_f spatem_ts_Elevation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Elevation_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ElevationConfidence.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ElevationConfidence.h new file mode 100644 index 000000000..c21cefddb --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ElevationConfidence_H_ +#define _spatem_ts_ElevationConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_ElevationConfidence { + spatem_ts_ElevationConfidence_unavailable = 0, + spatem_ts_ElevationConfidence_elev_500_00 = 1, + spatem_ts_ElevationConfidence_elev_200_00 = 2, + spatem_ts_ElevationConfidence_elev_100_00 = 3, + spatem_ts_ElevationConfidence_elev_050_00 = 4, + spatem_ts_ElevationConfidence_elev_020_00 = 5, + spatem_ts_ElevationConfidence_elev_010_00 = 6, + spatem_ts_ElevationConfidence_elev_005_00 = 7, + spatem_ts_ElevationConfidence_elev_002_00 = 8, + spatem_ts_ElevationConfidence_elev_001_00 = 9, + spatem_ts_ElevationConfidence_elev_000_50 = 10, + spatem_ts_ElevationConfidence_elev_000_20 = 11, + spatem_ts_ElevationConfidence_elev_000_10 = 12, + spatem_ts_ElevationConfidence_elev_000_05 = 13, + spatem_ts_ElevationConfidence_elev_000_02 = 14, + spatem_ts_ElevationConfidence_elev_000_01 = 15 +} e_spatem_ts_ElevationConfidence; + +/* spatem_ts_ElevationConfidence */ +typedef long spatem_ts_ElevationConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_ElevationConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ElevationConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_ElevationConfidence_specs_1; +asn_struct_free_f spatem_ts_ElevationConfidence_free; +asn_struct_print_f spatem_ts_ElevationConfidence_print; +asn_constr_check_f spatem_ts_ElevationConfidence_constraint; +per_type_decoder_f spatem_ts_ElevationConfidence_decode_uper; +per_type_encoder_f spatem_ts_ElevationConfidence_encode_uper; +per_type_decoder_f spatem_ts_ElevationConfidence_decode_aper; +per_type_encoder_f spatem_ts_ElevationConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_ElevationConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EmbarkationStatus.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EmbarkationStatus.h new file mode 100644 index 000000000..6ac930b2f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_EmbarkationStatus_H_ +#define _spatem_ts_EmbarkationStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_EmbarkationStatus */ +typedef BOOLEAN_t spatem_ts_EmbarkationStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_EmbarkationStatus; +asn_struct_free_f spatem_ts_EmbarkationStatus_free; +asn_struct_print_f spatem_ts_EmbarkationStatus_print; +asn_constr_check_f spatem_ts_EmbarkationStatus_constraint; +per_type_decoder_f spatem_ts_EmbarkationStatus_decode_uper; +per_type_encoder_f spatem_ts_EmbarkationStatus_encode_uper; +per_type_decoder_f spatem_ts_EmbarkationStatus_decode_aper; +per_type_encoder_f spatem_ts_EmbarkationStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_EmbarkationStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EmergencyPriority.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EmergencyPriority.h new file mode 100644 index 000000000..5145559d8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_EmergencyPriority_H_ +#define _spatem_ts_EmergencyPriority_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_EmergencyPriority { + spatem_ts_EmergencyPriority_requestForRightOfWay = 0, + spatem_ts_EmergencyPriority_requestForFreeCrossingAtATrafficLight = 1 +} e_spatem_ts_EmergencyPriority; + +/* spatem_ts_EmergencyPriority */ +typedef BIT_STRING_t spatem_ts_EmergencyPriority_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_EmergencyPriority; +asn_struct_free_f spatem_ts_EmergencyPriority_free; +asn_struct_print_f spatem_ts_EmergencyPriority_print; +asn_constr_check_f spatem_ts_EmergencyPriority_constraint; +per_type_decoder_f spatem_ts_EmergencyPriority_decode_uper; +per_type_encoder_f spatem_ts_EmergencyPriority_encode_uper; +per_type_decoder_f spatem_ts_EmergencyPriority_decode_aper; +per_type_encoder_f spatem_ts_EmergencyPriority_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_EmergencyPriority_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EmergencyVehicleApproachingSubCauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EmergencyVehicleApproachingSubCauseCode.h new file mode 100644 index 000000000..eff582a86 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_EmergencyVehicleApproachingSubCauseCode_H_ +#define _spatem_ts_EmergencyVehicleApproachingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_EmergencyVehicleApproachingSubCauseCode { + spatem_ts_EmergencyVehicleApproachingSubCauseCode_unavailable = 0, + spatem_ts_EmergencyVehicleApproachingSubCauseCode_emergencyVehicleApproaching = 1, + spatem_ts_EmergencyVehicleApproachingSubCauseCode_prioritizedVehicleApproaching = 2 +} e_spatem_ts_EmergencyVehicleApproachingSubCauseCode; + +/* spatem_ts_EmergencyVehicleApproachingSubCauseCode */ +typedef long spatem_ts_EmergencyVehicleApproachingSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_EmergencyVehicleApproachingSubCauseCode; +asn_struct_free_f spatem_ts_EmergencyVehicleApproachingSubCauseCode_free; +asn_struct_print_f spatem_ts_EmergencyVehicleApproachingSubCauseCode_print; +asn_constr_check_f spatem_ts_EmergencyVehicleApproachingSubCauseCode_constraint; +per_type_decoder_f spatem_ts_EmergencyVehicleApproachingSubCauseCode_decode_uper; +per_type_encoder_f spatem_ts_EmergencyVehicleApproachingSubCauseCode_encode_uper; +per_type_decoder_f spatem_ts_EmergencyVehicleApproachingSubCauseCode_decode_aper; +per_type_encoder_f spatem_ts_EmergencyVehicleApproachingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_EmergencyVehicleApproachingSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EmissionType.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EmissionType.h new file mode 100644 index 000000000..24bdb30f5 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_EmissionType_H_ +#define _spatem_ts_EmissionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_EmissionType { + spatem_ts_EmissionType_euro1 = 0, + spatem_ts_EmissionType_euro2 = 1, + spatem_ts_EmissionType_euro3 = 2, + spatem_ts_EmissionType_euro4 = 3, + spatem_ts_EmissionType_euro5 = 4, + spatem_ts_EmissionType_euro6 = 5 + /* + * Enumeration is extensible + */ +} e_spatem_ts_EmissionType; + +/* spatem_ts_EmissionType */ +typedef long spatem_ts_EmissionType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_EmissionType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_EmissionType; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_EmissionType_specs_1; +asn_struct_free_f spatem_ts_EmissionType_free; +asn_struct_print_f spatem_ts_EmissionType_print; +asn_constr_check_f spatem_ts_EmissionType_constraint; +per_type_decoder_f spatem_ts_EmissionType_decode_uper; +per_type_encoder_f spatem_ts_EmissionType_encode_uper; +per_type_decoder_f spatem_ts_EmissionType_decode_aper; +per_type_encoder_f spatem_ts_EmissionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_EmissionType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EnabledLaneList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EnabledLaneList.h new file mode 100644 index 000000000..d35340763 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_EnabledLaneList_H_ +#define _spatem_ts_EnabledLaneList_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_EnabledLaneList */ +typedef struct spatem_ts_EnabledLaneList { + A_SEQUENCE_OF(spatem_ts_LaneID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_EnabledLaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_EnabledLaneList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_EnabledLaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_EnabledLaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_EnabledLaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_EnabledLaneList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EnergyStorageType.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EnergyStorageType.h new file mode 100644 index 000000000..e7f917e08 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_EnergyStorageType_H_ +#define _spatem_ts_EnergyStorageType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_EnergyStorageType { + spatem_ts_EnergyStorageType_hydrogenStorage = 0, + spatem_ts_EnergyStorageType_electricEnergyStorage = 1, + spatem_ts_EnergyStorageType_liquidPropaneGas = 2, + spatem_ts_EnergyStorageType_compressedNaturalGas = 3, + spatem_ts_EnergyStorageType_diesel = 4, + spatem_ts_EnergyStorageType_gasoline = 5, + spatem_ts_EnergyStorageType_ammonia = 6 +} e_spatem_ts_EnergyStorageType; + +/* spatem_ts_EnergyStorageType */ +typedef BIT_STRING_t spatem_ts_EnergyStorageType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_EnergyStorageType; +asn_struct_free_f spatem_ts_EnergyStorageType_free; +asn_struct_print_f spatem_ts_EnergyStorageType_print; +asn_constr_check_f spatem_ts_EnergyStorageType_constraint; +per_type_decoder_f spatem_ts_EnergyStorageType_decode_uper; +per_type_encoder_f spatem_ts_EnergyStorageType_encode_uper; +per_type_decoder_f spatem_ts_EnergyStorageType_decode_aper; +per_type_encoder_f spatem_ts_EnergyStorageType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_EnergyStorageType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EuVehicleCategoryCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EuVehicleCategoryCode.h new file mode 100644 index 000000000..5b456e023 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EuVehicleCategoryCode.h @@ -0,0 +1,61 @@ +/* + * 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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_EuVehicleCategoryCode_H_ +#define _spatem_ts_EuVehicleCategoryCode_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_EuVehicleCategoryL.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_EuVehicleCategoryM.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_EuVehicleCategoryN.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_EuVehicleCategoryO.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_EuVehicleCategoryCode_PR { + spatem_ts_EuVehicleCategoryCode_PR_NOTHING, /* No components present */ + spatem_ts_EuVehicleCategoryCode_PR_euVehicleCategoryL, + spatem_ts_EuVehicleCategoryCode_PR_euVehicleCategoryM, + spatem_ts_EuVehicleCategoryCode_PR_euVehicleCategoryN, + spatem_ts_EuVehicleCategoryCode_PR_euVehicleCategoryO, + spatem_ts_EuVehicleCategoryCode_PR_euVehilcleCategoryT, + spatem_ts_EuVehicleCategoryCode_PR_euVehilcleCategoryG +} spatem_ts_EuVehicleCategoryCode_PR; + +/* spatem_ts_EuVehicleCategoryCode */ +typedef struct spatem_ts_EuVehicleCategoryCode { + spatem_ts_EuVehicleCategoryCode_PR present; + union spatem_ts_EuVehicleCategoryCode_u { + spatem_ts_EuVehicleCategoryL_t euVehicleCategoryL; + spatem_ts_EuVehicleCategoryM_t euVehicleCategoryM; + spatem_ts_EuVehicleCategoryN_t euVehicleCategoryN; + spatem_ts_EuVehicleCategoryO_t euVehicleCategoryO; + NULL_t euVehilcleCategoryT; + NULL_t euVehilcleCategoryG; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_EuVehicleCategoryCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_EuVehicleCategoryCode; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_EuVehicleCategoryCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EuVehicleCategoryL.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EuVehicleCategoryL.h new file mode 100644 index 000000000..f8882b9cc --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_EuVehicleCategoryL_H_ +#define _spatem_ts_EuVehicleCategoryL_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_EuVehicleCategoryL { + spatem_ts_EuVehicleCategoryL_l1 = 0, + spatem_ts_EuVehicleCategoryL_l2 = 1, + spatem_ts_EuVehicleCategoryL_l3 = 2, + spatem_ts_EuVehicleCategoryL_l4 = 3, + spatem_ts_EuVehicleCategoryL_l5 = 4, + spatem_ts_EuVehicleCategoryL_l6 = 5, + spatem_ts_EuVehicleCategoryL_l7 = 6 +} e_spatem_ts_EuVehicleCategoryL; + +/* spatem_ts_EuVehicleCategoryL */ +typedef long spatem_ts_EuVehicleCategoryL_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_EuVehicleCategoryL_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_EuVehicleCategoryL; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_EuVehicleCategoryL_specs_1; +asn_struct_free_f spatem_ts_EuVehicleCategoryL_free; +asn_struct_print_f spatem_ts_EuVehicleCategoryL_print; +asn_constr_check_f spatem_ts_EuVehicleCategoryL_constraint; +per_type_decoder_f spatem_ts_EuVehicleCategoryL_decode_uper; +per_type_encoder_f spatem_ts_EuVehicleCategoryL_encode_uper; +per_type_decoder_f spatem_ts_EuVehicleCategoryL_decode_aper; +per_type_encoder_f spatem_ts_EuVehicleCategoryL_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_EuVehicleCategoryL_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EuVehicleCategoryM.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EuVehicleCategoryM.h new file mode 100644 index 000000000..618e5877a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_EuVehicleCategoryM_H_ +#define _spatem_ts_EuVehicleCategoryM_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_EuVehicleCategoryM { + spatem_ts_EuVehicleCategoryM_m1 = 0, + spatem_ts_EuVehicleCategoryM_m2 = 1, + spatem_ts_EuVehicleCategoryM_m3 = 2 +} e_spatem_ts_EuVehicleCategoryM; + +/* spatem_ts_EuVehicleCategoryM */ +typedef long spatem_ts_EuVehicleCategoryM_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_EuVehicleCategoryM_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_EuVehicleCategoryM; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_EuVehicleCategoryM_specs_1; +asn_struct_free_f spatem_ts_EuVehicleCategoryM_free; +asn_struct_print_f spatem_ts_EuVehicleCategoryM_print; +asn_constr_check_f spatem_ts_EuVehicleCategoryM_constraint; +per_type_decoder_f spatem_ts_EuVehicleCategoryM_decode_uper; +per_type_encoder_f spatem_ts_EuVehicleCategoryM_encode_uper; +per_type_decoder_f spatem_ts_EuVehicleCategoryM_decode_aper; +per_type_encoder_f spatem_ts_EuVehicleCategoryM_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_EuVehicleCategoryM_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EuVehicleCategoryN.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EuVehicleCategoryN.h new file mode 100644 index 000000000..effe6a2ea --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_EuVehicleCategoryN_H_ +#define _spatem_ts_EuVehicleCategoryN_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_EuVehicleCategoryN { + spatem_ts_EuVehicleCategoryN_n1 = 0, + spatem_ts_EuVehicleCategoryN_n2 = 1, + spatem_ts_EuVehicleCategoryN_n3 = 2 +} e_spatem_ts_EuVehicleCategoryN; + +/* spatem_ts_EuVehicleCategoryN */ +typedef long spatem_ts_EuVehicleCategoryN_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_EuVehicleCategoryN_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_EuVehicleCategoryN; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_EuVehicleCategoryN_specs_1; +asn_struct_free_f spatem_ts_EuVehicleCategoryN_free; +asn_struct_print_f spatem_ts_EuVehicleCategoryN_print; +asn_constr_check_f spatem_ts_EuVehicleCategoryN_constraint; +per_type_decoder_f spatem_ts_EuVehicleCategoryN_decode_uper; +per_type_encoder_f spatem_ts_EuVehicleCategoryN_encode_uper; +per_type_decoder_f spatem_ts_EuVehicleCategoryN_decode_aper; +per_type_encoder_f spatem_ts_EuVehicleCategoryN_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_EuVehicleCategoryN_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EuVehicleCategoryO.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EuVehicleCategoryO.h new file mode 100644 index 000000000..d0f15875b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_EuVehicleCategoryO_H_ +#define _spatem_ts_EuVehicleCategoryO_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_EuVehicleCategoryO { + spatem_ts_EuVehicleCategoryO_o1 = 0, + spatem_ts_EuVehicleCategoryO_o2 = 1, + spatem_ts_EuVehicleCategoryO_o3 = 2, + spatem_ts_EuVehicleCategoryO_o4 = 3 +} e_spatem_ts_EuVehicleCategoryO; + +/* spatem_ts_EuVehicleCategoryO */ +typedef long spatem_ts_EuVehicleCategoryO_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_EuVehicleCategoryO_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_EuVehicleCategoryO; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_EuVehicleCategoryO_specs_1; +asn_struct_free_f spatem_ts_EuVehicleCategoryO_free; +asn_struct_print_f spatem_ts_EuVehicleCategoryO_print; +asn_constr_check_f spatem_ts_EuVehicleCategoryO_constraint; +per_type_decoder_f spatem_ts_EuVehicleCategoryO_decode_uper; +per_type_encoder_f spatem_ts_EuVehicleCategoryO_encode_uper; +per_type_decoder_f spatem_ts_EuVehicleCategoryO_decode_aper; +per_type_encoder_f spatem_ts_EuVehicleCategoryO_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_EuVehicleCategoryO_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EventHistory.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EventHistory.h new file mode 100644 index 000000000..a1c733fd6 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_EventHistory_H_ +#define _spatem_ts_EventHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_EventPoint; + +/* spatem_ts_EventHistory */ +typedef struct spatem_ts_EventHistory { + A_SEQUENCE_OF(struct spatem_ts_EventPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_EventHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_EventHistory; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_EventPoint.h" + +#endif /* _spatem_ts_EventHistory_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EventPoint.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_EventPoint.h new file mode 100644 index 000000000..2dfd9e4b3 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_EventPoint_H_ +#define _spatem_ts_EventPoint_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_DeltaReferencePosition.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_PathDeltaTime.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_InformationQuality.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_EventPoint */ +typedef struct spatem_ts_EventPoint { + spatem_ts_DeltaReferencePosition_t eventPosition; + spatem_ts_PathDeltaTime_t *eventDeltaTime; /* OPTIONAL */ + spatem_ts_InformationQuality_t informationQuality; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_EventPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_EventPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_EventPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_EventPoint_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_EventPoint_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ExceptionalCondition.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ExceptionalCondition.h new file mode 100644 index 000000000..5e4b9f5c1 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ExceptionalCondition_H_ +#define _spatem_ts_ExceptionalCondition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_ExceptionalCondition { + spatem_ts_ExceptionalCondition_unknown = 0, + spatem_ts_ExceptionalCondition_publicTransportPriority = 1, + spatem_ts_ExceptionalCondition_emergencyVehiclePriority = 2, + spatem_ts_ExceptionalCondition_trainPriority = 3, + spatem_ts_ExceptionalCondition_bridgeOpen = 4, + spatem_ts_ExceptionalCondition_vehicleHeight = 5, + spatem_ts_ExceptionalCondition_weather = 6, + spatem_ts_ExceptionalCondition_trafficJam = 7, + spatem_ts_ExceptionalCondition_tunnelClosure = 8, + spatem_ts_ExceptionalCondition_meteringActive = 9, + spatem_ts_ExceptionalCondition_truckPriority = 10, + spatem_ts_ExceptionalCondition_bicyclePlatoonPriority = 11, + spatem_ts_ExceptionalCondition_vehiclePlatoonPriority = 12 + /* + * Enumeration is extensible + */ +} e_spatem_ts_ExceptionalCondition; + +/* spatem_ts_ExceptionalCondition */ +typedef long spatem_ts_ExceptionalCondition_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_ExceptionalCondition_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ExceptionalCondition; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_ExceptionalCondition_specs_1; +asn_struct_free_f spatem_ts_ExceptionalCondition_free; +asn_struct_print_f spatem_ts_ExceptionalCondition_print; +asn_constr_check_f spatem_ts_ExceptionalCondition_constraint; +per_type_decoder_f spatem_ts_ExceptionalCondition_decode_uper; +per_type_encoder_f spatem_ts_ExceptionalCondition_encode_uper; +per_type_decoder_f spatem_ts_ExceptionalCondition_decode_aper; +per_type_encoder_f spatem_ts_ExceptionalCondition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_ExceptionalCondition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ExteriorLights.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ExteriorLights.h new file mode 100644 index 000000000..609ee01f0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ExteriorLights_H_ +#define _spatem_ts_ExteriorLights_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_ExteriorLights { + spatem_ts_ExteriorLights_lowBeamHeadlightsOn = 0, + spatem_ts_ExteriorLights_highBeamHeadlightsOn = 1, + spatem_ts_ExteriorLights_leftTurnSignalOn = 2, + spatem_ts_ExteriorLights_rightTurnSignalOn = 3, + spatem_ts_ExteriorLights_daytimeRunningLightsOn = 4, + spatem_ts_ExteriorLights_reverseLightOn = 5, + spatem_ts_ExteriorLights_fogLightOn = 6, + spatem_ts_ExteriorLights_parkingLightsOn = 7 +} e_spatem_ts_ExteriorLights; + +/* spatem_ts_ExteriorLights */ +typedef BIT_STRING_t spatem_ts_ExteriorLights_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ExteriorLights; +asn_struct_free_f spatem_ts_ExteriorLights_free; +asn_struct_print_f spatem_ts_ExteriorLights_print; +asn_constr_check_f spatem_ts_ExteriorLights_constraint; +per_type_decoder_f spatem_ts_ExteriorLights_decode_uper; +per_type_encoder_f spatem_ts_ExteriorLights_encode_uper; +per_type_decoder_f spatem_ts_ExteriorLights_decode_aper; +per_type_encoder_f spatem_ts_ExteriorLights_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_ExteriorLights_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_FreightContainerData.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_FreightContainerData.h new file mode 100644 index 000000000..e429e086d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_FreightContainerData_H_ +#define _spatem_ts_FreightContainerData_H_ + + +#include + +/* Including external dependencies */ +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_FreightContainerData */ +typedef struct spatem_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; +} spatem_ts_FreightContainerData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_FreightContainerData; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_FreightContainerData_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_FreightContainerData_1[10]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_FreightContainerData_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_FuelType.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_FuelType.h new file mode 100644 index 000000000..c5fec389c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_FuelType_H_ +#define _spatem_ts_FuelType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_FuelType */ +typedef long spatem_ts_FuelType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_FuelType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_FuelType; +asn_struct_free_f spatem_ts_FuelType_free; +asn_struct_print_f spatem_ts_FuelType_print; +asn_constr_check_f spatem_ts_FuelType_constraint; +per_type_decoder_f spatem_ts_FuelType_decode_uper; +per_type_encoder_f spatem_ts_FuelType_encode_uper; +per_type_decoder_f spatem_ts_FuelType_decode_aper; +per_type_encoder_f spatem_ts_FuelType_encode_aper; +#define spatem_ts_FuelType_unknownFuel ((spatem_ts_FuelType_t)0) +#define spatem_ts_FuelType_gasoline ((spatem_ts_FuelType_t)1) +#define spatem_ts_FuelType_ethanol ((spatem_ts_FuelType_t)2) +#define spatem_ts_FuelType_diesel ((spatem_ts_FuelType_t)3) +#define spatem_ts_FuelType_electric ((spatem_ts_FuelType_t)4) +#define spatem_ts_FuelType_hybrid ((spatem_ts_FuelType_t)5) +#define spatem_ts_FuelType_hydrogen ((spatem_ts_FuelType_t)6) +#define spatem_ts_FuelType_natGasLiquid ((spatem_ts_FuelType_t)7) +#define spatem_ts_FuelType_natGasComp ((spatem_ts_FuelType_t)8) +#define spatem_ts_FuelType_propane ((spatem_ts_FuelType_t)9) + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_FuelType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_FullPositionVector.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_FullPositionVector.h new file mode 100644 index 000000000..46b1233ca --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_FullPositionVector_H_ +#define _spatem_ts_FullPositionVector_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_Longitude.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Latitude.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Elevation.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_HeadingDSRC.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_TimeConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_DDateTime; +struct spatem_ts_TransmissionAndSpeed; +struct spatem_ts_PositionalAccuracy; +struct spatem_ts_PositionConfidenceSet; +struct spatem_ts_SpeedandHeadingandThrottleConfidence; + +/* spatem_ts_FullPositionVector */ +typedef struct spatem_ts_FullPositionVector { + struct spatem_ts_DDateTime *utcTime; /* OPTIONAL */ + spatem_ts_Longitude_t Long; + spatem_ts_Latitude_t lat; + spatem_ts_Elevation_t *elevation; /* OPTIONAL */ + spatem_ts_HeadingDSRC_t *heading; /* OPTIONAL */ + struct spatem_ts_TransmissionAndSpeed *speed; /* OPTIONAL */ + struct spatem_ts_PositionalAccuracy *posAccuracy; /* OPTIONAL */ + spatem_ts_TimeConfidence_t *timeConfidence; /* OPTIONAL */ + struct spatem_ts_PositionConfidenceSet *posConfidence; /* OPTIONAL */ + struct spatem_ts_SpeedandHeadingandThrottleConfidence *speedConfidence; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_FullPositionVector_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_FullPositionVector; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_FullPositionVector_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_FullPositionVector_1[10]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_DDateTime.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_TransmissionAndSpeed.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_PositionalAccuracy.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_PositionConfidenceSet.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_SpeedandHeadingandThrottleConfidence.h" + +#endif /* _spatem_ts_FullPositionVector_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_GNSSstatus.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_GNSSstatus.h new file mode 100644 index 000000000..7d74efc29 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_GNSSstatus_H_ +#define _spatem_ts_GNSSstatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_GNSSstatus { + spatem_ts_GNSSstatus_unavailable = 0, + spatem_ts_GNSSstatus_isHealthy = 1, + spatem_ts_GNSSstatus_isMonitored = 2, + spatem_ts_GNSSstatus_baseStationType = 3, + spatem_ts_GNSSstatus_aPDOPofUnder5 = 4, + spatem_ts_GNSSstatus_inViewOfUnder5 = 5, + spatem_ts_GNSSstatus_localCorrectionsPresent = 6, + spatem_ts_GNSSstatus_networkCorrectionsPresent = 7 +} e_spatem_ts_GNSSstatus; + +/* spatem_ts_GNSSstatus */ +typedef BIT_STRING_t spatem_ts_GNSSstatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_GNSSstatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_GNSSstatus; +asn_struct_free_f spatem_ts_GNSSstatus_free; +asn_struct_print_f spatem_ts_GNSSstatus_print; +asn_constr_check_f spatem_ts_GNSSstatus_constraint; +per_type_decoder_f spatem_ts_GNSSstatus_decode_uper; +per_type_encoder_f spatem_ts_GNSSstatus_encode_uper; +per_type_decoder_f spatem_ts_GNSSstatus_decode_aper; +per_type_encoder_f spatem_ts_GNSSstatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_GNSSstatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_GenericLane.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_GenericLane.h new file mode 100644 index 000000000..a4b5b8cfa --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_GenericLane_H_ +#define _spatem_ts_GenericLane_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_DescriptiveName.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_ApproachID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_AllowedManeuvers.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_NodeListXY.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_ConnectsToList; +struct spatem_ts_OverlayLaneList; +struct spatem_ts_Reg_GenericLane; + +/* spatem_ts_GenericLane */ +typedef struct spatem_ts_GenericLane { + spatem_ts_LaneID_t laneID; + spatem_ts_DescriptiveName_t *name; /* OPTIONAL */ + spatem_ts_ApproachID_t *ingressApproach; /* OPTIONAL */ + spatem_ts_ApproachID_t *egressApproach; /* OPTIONAL */ + spatem_ts_LaneAttributes_t laneAttributes; + spatem_ts_AllowedManeuvers_t *maneuvers; /* OPTIONAL */ + spatem_ts_NodeListXY_t nodeList; + struct spatem_ts_ConnectsToList *connectsTo; /* OPTIONAL */ + struct spatem_ts_OverlayLaneList *overlays; /* OPTIONAL */ + struct spatem_ts_GenericLane__regional { + A_SEQUENCE_OF(struct spatem_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; +} spatem_ts_GenericLane_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_GenericLane; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_GenericLane_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_GenericLane_1[10]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_ConnectsToList.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_OverlayLaneList.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_GenericLane_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_GeoGraphicalLimit.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_GeoGraphicalLimit.h new file mode 100644 index 000000000..dc9c3ee07 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_GeoGraphicalLimit_H_ +#define _spatem_ts_GeoGraphicalLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_GeoGraphicalLimit { + spatem_ts_GeoGraphicalLimit_globalRestriction = 0, + spatem_ts_GeoGraphicalLimit_regionalRestriction = 1, + spatem_ts_GeoGraphicalLimit_nationalRestriction = 2, + spatem_ts_GeoGraphicalLimit_district = 3, + spatem_ts_GeoGraphicalLimit_issuerCoverageRestriction = 4, + spatem_ts_GeoGraphicalLimit_reservedForCEN1 = 5, + spatem_ts_GeoGraphicalLimit_reservedForCEN2 = 6, + spatem_ts_GeoGraphicalLimit_issuerSpecificRestriction = 7 +} e_spatem_ts_GeoGraphicalLimit; + +/* spatem_ts_GeoGraphicalLimit */ +typedef BIT_STRING_t spatem_ts_GeoGraphicalLimit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_GeoGraphicalLimit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_GeoGraphicalLimit; +asn_struct_free_f spatem_ts_GeoGraphicalLimit_free; +asn_struct_print_f spatem_ts_GeoGraphicalLimit_print; +asn_constr_check_f spatem_ts_GeoGraphicalLimit_constraint; +per_type_decoder_f spatem_ts_GeoGraphicalLimit_decode_uper; +per_type_encoder_f spatem_ts_GeoGraphicalLimit_encode_uper; +per_type_decoder_f spatem_ts_GeoGraphicalLimit_decode_aper; +per_type_encoder_f spatem_ts_GeoGraphicalLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_GeoGraphicalLimit_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_HardShoulderStatus.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_HardShoulderStatus.h new file mode 100644 index 000000000..5db4a67f1 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_HardShoulderStatus_H_ +#define _spatem_ts_HardShoulderStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_HardShoulderStatus { + spatem_ts_HardShoulderStatus_availableForStopping = 0, + spatem_ts_HardShoulderStatus_closed = 1, + spatem_ts_HardShoulderStatus_availableForDriving = 2 +} e_spatem_ts_HardShoulderStatus; + +/* spatem_ts_HardShoulderStatus */ +typedef long spatem_ts_HardShoulderStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_HardShoulderStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_HardShoulderStatus; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_HardShoulderStatus_specs_1; +asn_struct_free_f spatem_ts_HardShoulderStatus_free; +asn_struct_print_f spatem_ts_HardShoulderStatus_print; +asn_constr_check_f spatem_ts_HardShoulderStatus_constraint; +per_type_decoder_f spatem_ts_HardShoulderStatus_decode_uper; +per_type_encoder_f spatem_ts_HardShoulderStatus_encode_uper; +per_type_decoder_f spatem_ts_HardShoulderStatus_decode_aper; +per_type_encoder_f spatem_ts_HardShoulderStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_HardShoulderStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.h new file mode 100644 index 000000000..83dfc0d2f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ +#define _spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode { + spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_unavailable = 0, + spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_wildAnimals = 1, + spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_herdOfAnimals = 2, + spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_smallAnimals = 3, + spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_largeAnimals = 4 +} e_spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode; + +/* spatem_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode */ +typedef long spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode; +asn_struct_free_f spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_free; +asn_struct_print_f spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_print; +asn_constr_check_f spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint; +per_type_decoder_f spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_HazardousLocation-DangerousCurveSubCauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_HazardousLocation-DangerousCurveSubCauseCode.h new file mode 100644 index 000000000..881cd56c3 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_HazardousLocation_DangerousCurveSubCauseCode_H_ +#define _spatem_ts_HazardousLocation_DangerousCurveSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_HazardousLocation_DangerousCurveSubCauseCode { + spatem_ts_HazardousLocation_DangerousCurveSubCauseCode_unavailable = 0, + spatem_ts_HazardousLocation_DangerousCurveSubCauseCode_dangerousLeftTurnCurve = 1, + spatem_ts_HazardousLocation_DangerousCurveSubCauseCode_dangerousRightTurnCurve = 2, + spatem_ts_HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithUnknownTurningDirection = 3, + spatem_ts_HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithLeftTurn = 4, + spatem_ts_HazardousLocation_DangerousCurveSubCauseCode_multipleCurvesStartingWithRightTurn = 5 +} e_spatem_ts_HazardousLocation_DangerousCurveSubCauseCode; + +/* spatem_ts_HazardousLocation-DangerousCurveSubCauseCode */ +typedef long spatem_ts_HazardousLocation_DangerousCurveSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_HazardousLocation_DangerousCurveSubCauseCode; +asn_struct_free_f spatem_ts_HazardousLocation_DangerousCurveSubCauseCode_free; +asn_struct_print_f spatem_ts_HazardousLocation_DangerousCurveSubCauseCode_print; +asn_constr_check_f spatem_ts_HazardousLocation_DangerousCurveSubCauseCode_constraint; +per_type_decoder_f spatem_ts_HazardousLocation_DangerousCurveSubCauseCode_decode_uper; +per_type_encoder_f spatem_ts_HazardousLocation_DangerousCurveSubCauseCode_encode_uper; +per_type_decoder_f spatem_ts_HazardousLocation_DangerousCurveSubCauseCode_decode_aper; +per_type_encoder_f spatem_ts_HazardousLocation_DangerousCurveSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_HazardousLocation_DangerousCurveSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.h new file mode 100644 index 000000000..1fcee4c3f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ +#define _spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode { + spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_unavailable = 0, + spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_shedLoad = 1, + spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfVehicles = 2, + spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_partsOfTyres = 3, + spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_bigObjects = 4, + spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_fallenTrees = 5, + spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_hubCaps = 6, + spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_waitingVehicles = 7 +} e_spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode; + +/* spatem_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode */ +typedef long spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode; +asn_struct_free_f spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_free; +asn_struct_print_f spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_print; +asn_constr_check_f spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint; +per_type_decoder_f spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_HazardousLocation-SurfaceConditionSubCauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_HazardousLocation-SurfaceConditionSubCauseCode.h new file mode 100644 index 000000000..bcbcda229 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_H_ +#define _spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode { + spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_unavailable = 0, + spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_rockfalls = 1, + spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_earthquakeDamage = 2, + spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_sewerCollapse = 3, + spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_subsidence = 4, + spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_snowDrifts = 5, + spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_stormDamage = 6, + spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_burstPipe = 7, + spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_volcanoEruption = 8, + spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_fallingIce = 9 +} e_spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode; + +/* spatem_ts_HazardousLocation-SurfaceConditionSubCauseCode */ +typedef long spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode; +asn_struct_free_f spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_free; +asn_struct_print_f spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_print; +asn_constr_check_f spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_constraint; +per_type_decoder_f spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_decode_uper; +per_type_encoder_f spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_encode_uper; +per_type_decoder_f spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_decode_aper; +per_type_encoder_f spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Heading.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Heading.h new file mode 100644 index 000000000..45202e719 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Heading.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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Heading_H_ +#define _spatem_ts_Heading_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_HeadingValue.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_HeadingConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_Heading */ +typedef struct spatem_ts_Heading { + spatem_ts_HeadingValue_t headingValue; + spatem_ts_HeadingConfidence_t headingConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_Heading_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Heading; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Heading_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_HeadingConfidence.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_HeadingConfidence.h new file mode 100644 index 000000000..697e32ead --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_HeadingConfidence_H_ +#define _spatem_ts_HeadingConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_HeadingConfidence { + spatem_ts_HeadingConfidence_equalOrWithinZeroPointOneDegree = 1, + spatem_ts_HeadingConfidence_equalOrWithinOneDegree = 10, + spatem_ts_HeadingConfidence_outOfRange = 126, + spatem_ts_HeadingConfidence_unavailable = 127 +} e_spatem_ts_HeadingConfidence; + +/* spatem_ts_HeadingConfidence */ +typedef long spatem_ts_HeadingConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_HeadingConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_HeadingConfidence; +asn_struct_free_f spatem_ts_HeadingConfidence_free; +asn_struct_print_f spatem_ts_HeadingConfidence_print; +asn_constr_check_f spatem_ts_HeadingConfidence_constraint; +per_type_decoder_f spatem_ts_HeadingConfidence_decode_uper; +per_type_encoder_f spatem_ts_HeadingConfidence_encode_uper; +per_type_decoder_f spatem_ts_HeadingConfidence_decode_aper; +per_type_encoder_f spatem_ts_HeadingConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_HeadingConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_HeadingConfidenceDSRC.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_HeadingConfidenceDSRC.h new file mode 100644 index 000000000..8274bdd22 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_HeadingConfidenceDSRC_H_ +#define _spatem_ts_HeadingConfidenceDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_HeadingConfidenceDSRC { + spatem_ts_HeadingConfidenceDSRC_unavailable = 0, + spatem_ts_HeadingConfidenceDSRC_prec10deg = 1, + spatem_ts_HeadingConfidenceDSRC_prec05deg = 2, + spatem_ts_HeadingConfidenceDSRC_prec01deg = 3, + spatem_ts_HeadingConfidenceDSRC_prec0_1deg = 4, + spatem_ts_HeadingConfidenceDSRC_prec0_05deg = 5, + spatem_ts_HeadingConfidenceDSRC_prec0_01deg = 6, + spatem_ts_HeadingConfidenceDSRC_prec0_0125deg = 7 +} e_spatem_ts_HeadingConfidenceDSRC; + +/* spatem_ts_HeadingConfidenceDSRC */ +typedef long spatem_ts_HeadingConfidenceDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_HeadingConfidenceDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_HeadingConfidenceDSRC; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_HeadingConfidenceDSRC_specs_1; +asn_struct_free_f spatem_ts_HeadingConfidenceDSRC_free; +asn_struct_print_f spatem_ts_HeadingConfidenceDSRC_print; +asn_constr_check_f spatem_ts_HeadingConfidenceDSRC_constraint; +per_type_decoder_f spatem_ts_HeadingConfidenceDSRC_decode_uper; +per_type_encoder_f spatem_ts_HeadingConfidenceDSRC_encode_uper; +per_type_decoder_f spatem_ts_HeadingConfidenceDSRC_decode_aper; +per_type_encoder_f spatem_ts_HeadingConfidenceDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_HeadingConfidenceDSRC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_HeadingDSRC.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_HeadingDSRC.h new file mode 100644 index 000000000..9b6882b67 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_HeadingDSRC_H_ +#define _spatem_ts_HeadingDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_HeadingDSRC */ +typedef long spatem_ts_HeadingDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_HeadingDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_HeadingDSRC; +asn_struct_free_f spatem_ts_HeadingDSRC_free; +asn_struct_print_f spatem_ts_HeadingDSRC_print; +asn_constr_check_f spatem_ts_HeadingDSRC_constraint; +per_type_decoder_f spatem_ts_HeadingDSRC_decode_uper; +per_type_encoder_f spatem_ts_HeadingDSRC_encode_uper; +per_type_decoder_f spatem_ts_HeadingDSRC_decode_aper; +per_type_encoder_f spatem_ts_HeadingDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_HeadingDSRC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_HeadingValue.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_HeadingValue.h new file mode 100644 index 000000000..3eb22f99d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_HeadingValue_H_ +#define _spatem_ts_HeadingValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_HeadingValue { + spatem_ts_HeadingValue_wgs84North = 0, + spatem_ts_HeadingValue_wgs84East = 900, + spatem_ts_HeadingValue_wgs84South = 1800, + spatem_ts_HeadingValue_wgs84West = 2700, + spatem_ts_HeadingValue_unavailable = 3601 +} e_spatem_ts_HeadingValue; + +/* spatem_ts_HeadingValue */ +typedef long spatem_ts_HeadingValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_HeadingValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_HeadingValue; +asn_struct_free_f spatem_ts_HeadingValue_free; +asn_struct_print_f spatem_ts_HeadingValue_print; +asn_constr_check_f spatem_ts_HeadingValue_constraint; +per_type_decoder_f spatem_ts_HeadingValue_decode_uper; +per_type_encoder_f spatem_ts_HeadingValue_encode_uper; +per_type_decoder_f spatem_ts_HeadingValue_decode_aper; +per_type_encoder_f spatem_ts_HeadingValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_HeadingValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_HeightLonCarr.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_HeightLonCarr.h new file mode 100644 index 000000000..e66636a50 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_HeightLonCarr_H_ +#define _spatem_ts_HeightLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_HeightLonCarr { + spatem_ts_HeightLonCarr_oneCentimeter = 1, + spatem_ts_HeightLonCarr_unavailable = 100 +} e_spatem_ts_HeightLonCarr; + +/* spatem_ts_HeightLonCarr */ +typedef long spatem_ts_HeightLonCarr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_HeightLonCarr; +asn_struct_free_f spatem_ts_HeightLonCarr_free; +asn_struct_print_f spatem_ts_HeightLonCarr_print; +asn_constr_check_f spatem_ts_HeightLonCarr_constraint; +per_type_decoder_f spatem_ts_HeightLonCarr_decode_uper; +per_type_encoder_f spatem_ts_HeightLonCarr_encode_uper; +per_type_decoder_f spatem_ts_HeightLonCarr_decode_aper; +per_type_encoder_f spatem_ts_HeightLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_HeightLonCarr_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_HumanPresenceOnTheRoadSubCauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_HumanPresenceOnTheRoadSubCauseCode.h new file mode 100644 index 000000000..cae60538c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_HumanPresenceOnTheRoadSubCauseCode_H_ +#define _spatem_ts_HumanPresenceOnTheRoadSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_HumanPresenceOnTheRoadSubCauseCode { + spatem_ts_HumanPresenceOnTheRoadSubCauseCode_unavailable = 0, + spatem_ts_HumanPresenceOnTheRoadSubCauseCode_childrenOnRoadway = 1, + spatem_ts_HumanPresenceOnTheRoadSubCauseCode_cyclistOnRoadway = 2, + spatem_ts_HumanPresenceOnTheRoadSubCauseCode_motorcyclistOnRoadway = 3 +} e_spatem_ts_HumanPresenceOnTheRoadSubCauseCode; + +/* spatem_ts_HumanPresenceOnTheRoadSubCauseCode */ +typedef long spatem_ts_HumanPresenceOnTheRoadSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_HumanPresenceOnTheRoadSubCauseCode; +asn_struct_free_f spatem_ts_HumanPresenceOnTheRoadSubCauseCode_free; +asn_struct_print_f spatem_ts_HumanPresenceOnTheRoadSubCauseCode_print; +asn_constr_check_f spatem_ts_HumanPresenceOnTheRoadSubCauseCode_constraint; +per_type_decoder_f spatem_ts_HumanPresenceOnTheRoadSubCauseCode_decode_uper; +per_type_encoder_f spatem_ts_HumanPresenceOnTheRoadSubCauseCode_encode_uper; +per_type_decoder_f spatem_ts_HumanPresenceOnTheRoadSubCauseCode_decode_aper; +per_type_encoder_f spatem_ts_HumanPresenceOnTheRoadSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_HumanPresenceOnTheRoadSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_HumanProblemSubCauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_HumanProblemSubCauseCode.h new file mode 100644 index 000000000..e56ed1b54 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_HumanProblemSubCauseCode_H_ +#define _spatem_ts_HumanProblemSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_HumanProblemSubCauseCode { + spatem_ts_HumanProblemSubCauseCode_unavailable = 0, + spatem_ts_HumanProblemSubCauseCode_glycemiaProblem = 1, + spatem_ts_HumanProblemSubCauseCode_heartProblem = 2 +} e_spatem_ts_HumanProblemSubCauseCode; + +/* spatem_ts_HumanProblemSubCauseCode */ +typedef long spatem_ts_HumanProblemSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_HumanProblemSubCauseCode; +asn_struct_free_f spatem_ts_HumanProblemSubCauseCode_free; +asn_struct_print_f spatem_ts_HumanProblemSubCauseCode_print; +asn_constr_check_f spatem_ts_HumanProblemSubCauseCode_constraint; +per_type_decoder_f spatem_ts_HumanProblemSubCauseCode_decode_uper; +per_type_encoder_f spatem_ts_HumanProblemSubCauseCode_encode_uper; +per_type_decoder_f spatem_ts_HumanProblemSubCauseCode_decode_aper; +per_type_encoder_f spatem_ts_HumanProblemSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_HumanProblemSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_InformationQuality.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_InformationQuality.h new file mode 100644 index 000000000..a18c2a2b6 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_InformationQuality_H_ +#define _spatem_ts_InformationQuality_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_InformationQuality { + spatem_ts_InformationQuality_unavailable = 0, + spatem_ts_InformationQuality_lowest = 1, + spatem_ts_InformationQuality_highest = 7 +} e_spatem_ts_InformationQuality; + +/* spatem_ts_InformationQuality */ +typedef long spatem_ts_InformationQuality_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_InformationQuality_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_InformationQuality; +asn_struct_free_f spatem_ts_InformationQuality_free; +asn_struct_print_f spatem_ts_InformationQuality_print; +asn_constr_check_f spatem_ts_InformationQuality_constraint; +per_type_decoder_f spatem_ts_InformationQuality_decode_uper; +per_type_encoder_f spatem_ts_InformationQuality_encode_uper; +per_type_decoder_f spatem_ts_InformationQuality_decode_aper; +per_type_encoder_f spatem_ts_InformationQuality_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_InformationQuality_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_IntersectionAccessPoint.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_IntersectionAccessPoint.h new file mode 100644 index 000000000..d4ad40d26 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_IntersectionAccessPoint_H_ +#define _spatem_ts_IntersectionAccessPoint_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_ApproachID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneConnectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_IntersectionAccessPoint_PR { + spatem_ts_IntersectionAccessPoint_PR_NOTHING, /* No components present */ + spatem_ts_IntersectionAccessPoint_PR_lane, + spatem_ts_IntersectionAccessPoint_PR_approach, + spatem_ts_IntersectionAccessPoint_PR_connection + /* Extensions may appear below */ + +} spatem_ts_IntersectionAccessPoint_PR; + +/* spatem_ts_IntersectionAccessPoint */ +typedef struct spatem_ts_IntersectionAccessPoint { + spatem_ts_IntersectionAccessPoint_PR present; + union spatem_ts_IntersectionAccessPoint_u { + spatem_ts_LaneID_t lane; + spatem_ts_ApproachID_t approach; + spatem_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; +} spatem_ts_IntersectionAccessPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_IntersectionAccessPoint; +extern asn_CHOICE_specifics_t asn_SPC_spatem_ts_IntersectionAccessPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_IntersectionAccessPoint_1[3]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_IntersectionAccessPoint_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_IntersectionAccessPoint_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_IntersectionGeometry.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_IntersectionGeometry.h new file mode 100644 index 000000000..00a668581 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_IntersectionGeometry_H_ +#define _spatem_ts_IntersectionGeometry_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_DescriptiveName.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionReferenceID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_MsgCount.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Position3D.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneWidth.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_SpeedLimitList; +struct spatem_ts_PreemptPriorityList; +struct spatem_ts_Reg_IntersectionGeometry; + +/* spatem_ts_IntersectionGeometry */ +typedef struct spatem_ts_IntersectionGeometry { + spatem_ts_DescriptiveName_t *name; /* OPTIONAL */ + spatem_ts_IntersectionReferenceID_t id; + spatem_ts_MsgCount_t revision; + spatem_ts_Position3D_t refPoint; + spatem_ts_LaneWidth_t *laneWidth; /* OPTIONAL */ + struct spatem_ts_SpeedLimitList *speedLimits; /* OPTIONAL */ + spatem_ts_LaneList_t laneSet; + struct spatem_ts_PreemptPriorityList *preemptPriorityData; /* OPTIONAL */ + struct spatem_ts_IntersectionGeometry__regional { + A_SEQUENCE_OF(struct spatem_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; +} spatem_ts_IntersectionGeometry_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_IntersectionGeometry; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_IntersectionGeometry_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_IntersectionGeometry_1[9]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_SpeedLimitList.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_PreemptPriorityList.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_IntersectionGeometry_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_IntersectionGeometryList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_IntersectionGeometryList.h new file mode 100644 index 000000000..706f16986 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_IntersectionGeometryList_H_ +#define _spatem_ts_IntersectionGeometryList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_IntersectionGeometry; + +/* spatem_ts_IntersectionGeometryList */ +typedef struct spatem_ts_IntersectionGeometryList { + A_SEQUENCE_OF(struct spatem_ts_IntersectionGeometry) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_IntersectionGeometryList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_IntersectionGeometryList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_IntersectionGeometryList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_IntersectionGeometryList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_IntersectionGeometryList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionGeometry.h" + +#endif /* _spatem_ts_IntersectionGeometryList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_IntersectionID.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_IntersectionID.h new file mode 100644 index 000000000..86d91e24d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_IntersectionID_H_ +#define _spatem_ts_IntersectionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_IntersectionID */ +typedef long spatem_ts_IntersectionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_IntersectionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_IntersectionID; +asn_struct_free_f spatem_ts_IntersectionID_free; +asn_struct_print_f spatem_ts_IntersectionID_print; +asn_constr_check_f spatem_ts_IntersectionID_constraint; +per_type_decoder_f spatem_ts_IntersectionID_decode_uper; +per_type_encoder_f spatem_ts_IntersectionID_encode_uper; +per_type_decoder_f spatem_ts_IntersectionID_decode_aper; +per_type_encoder_f spatem_ts_IntersectionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_IntersectionID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_IntersectionReferenceID.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_IntersectionReferenceID.h new file mode 100644 index 000000000..7e968dafa --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_IntersectionReferenceID_H_ +#define _spatem_ts_IntersectionReferenceID_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RoadRegulatorID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_IntersectionReferenceID */ +typedef struct spatem_ts_IntersectionReferenceID { + spatem_ts_RoadRegulatorID_t *region; /* OPTIONAL */ + spatem_ts_IntersectionID_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_IntersectionReferenceID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_IntersectionReferenceID; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_IntersectionReferenceID_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_IntersectionReferenceID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_IntersectionReferenceID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_IntersectionState-addGrpC.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_IntersectionState-addGrpC.h new file mode 100644 index 000000000..70ae545b4 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_IntersectionState_addGrpC_H_ +#define _spatem_ts_IntersectionState_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_PrioritizationResponseList; + +/* spatem_ts_IntersectionState-addGrpC */ +typedef struct spatem_ts_IntersectionState_addGrpC { + struct spatem_ts_PrioritizationResponseList *activePrioritizations; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_IntersectionState_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_IntersectionState_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_IntersectionState_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_IntersectionState_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_PrioritizationResponseList.h" + +#endif /* _spatem_ts_IntersectionState_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_IntersectionState.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_IntersectionState.h new file mode 100644 index 000000000..206daa7ff --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_IntersectionState_H_ +#define _spatem_ts_IntersectionState_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_DescriptiveName.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionReferenceID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_MsgCount.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionStatusObject.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_MinuteOfTheYear.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_DSecond.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_MovementList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_EnabledLaneList; +struct spatem_ts_ManeuverAssistList; +struct spatem_ts_Reg_IntersectionState; + +/* spatem_ts_IntersectionState */ +typedef struct spatem_ts_IntersectionState { + spatem_ts_DescriptiveName_t *name; /* OPTIONAL */ + spatem_ts_IntersectionReferenceID_t id; + spatem_ts_MsgCount_t revision; + spatem_ts_IntersectionStatusObject_t status; + spatem_ts_MinuteOfTheYear_t *moy; /* OPTIONAL */ + spatem_ts_DSecond_t *timeStamp; /* OPTIONAL */ + struct spatem_ts_EnabledLaneList *enabledLanes; /* OPTIONAL */ + spatem_ts_MovementList_t states; + struct spatem_ts_ManeuverAssistList *maneuverAssistList; /* OPTIONAL */ + struct spatem_ts_IntersectionState__regional { + A_SEQUENCE_OF(struct spatem_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; +} spatem_ts_IntersectionState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_IntersectionState; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_IntersectionState_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_IntersectionState_1[10]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_EnabledLaneList.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_ManeuverAssistList.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_IntersectionState_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_IntersectionStateList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_IntersectionStateList.h new file mode 100644 index 000000000..274045a67 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_IntersectionStateList_H_ +#define _spatem_ts_IntersectionStateList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_IntersectionState; + +/* spatem_ts_IntersectionStateList */ +typedef struct spatem_ts_IntersectionStateList { + A_SEQUENCE_OF(struct spatem_ts_IntersectionState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_IntersectionStateList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_IntersectionStateList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_IntersectionStateList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_IntersectionStateList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_IntersectionStateList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionState.h" + +#endif /* _spatem_ts_IntersectionStateList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_IntersectionStatusObject.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_IntersectionStatusObject.h new file mode 100644 index 000000000..7eeb5b8e2 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_IntersectionStatusObject_H_ +#define _spatem_ts_IntersectionStatusObject_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_IntersectionStatusObject { + spatem_ts_IntersectionStatusObject_manualControlIsEnabled = 0, + spatem_ts_IntersectionStatusObject_stopTimeIsActivated = 1, + spatem_ts_IntersectionStatusObject_failureFlash = 2, + spatem_ts_IntersectionStatusObject_preemptIsActive = 3, + spatem_ts_IntersectionStatusObject_signalPriorityIsActive = 4, + spatem_ts_IntersectionStatusObject_fixedTimeOperation = 5, + spatem_ts_IntersectionStatusObject_trafficDependentOperation = 6, + spatem_ts_IntersectionStatusObject_standbyOperation = 7, + spatem_ts_IntersectionStatusObject_failureMode = 8, + spatem_ts_IntersectionStatusObject_off = 9, + spatem_ts_IntersectionStatusObject_recentMAPmessageUpdate = 10, + spatem_ts_IntersectionStatusObject_recentChangeInMAPassignedLanesIDsUsed = 11, + spatem_ts_IntersectionStatusObject_noValidMAPisAvailableAtThisTime = 12, + spatem_ts_IntersectionStatusObject_noValidSPATisAvailableAtThisTime = 13 +} e_spatem_ts_IntersectionStatusObject; + +/* spatem_ts_IntersectionStatusObject */ +typedef BIT_STRING_t spatem_ts_IntersectionStatusObject_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_IntersectionStatusObject_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_IntersectionStatusObject; +asn_struct_free_f spatem_ts_IntersectionStatusObject_free; +asn_struct_print_f spatem_ts_IntersectionStatusObject_print; +asn_constr_check_f spatem_ts_IntersectionStatusObject_constraint; +per_type_decoder_f spatem_ts_IntersectionStatusObject_decode_uper; +per_type_encoder_f spatem_ts_IntersectionStatusObject_encode_uper; +per_type_decoder_f spatem_ts_IntersectionStatusObject_decode_aper; +per_type_encoder_f spatem_ts_IntersectionStatusObject_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_IntersectionStatusObject_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Iso3833VehicleType.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Iso3833VehicleType.h new file mode 100644 index 000000000..3c696f63b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Iso3833VehicleType_H_ +#define _spatem_ts_Iso3833VehicleType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_Iso3833VehicleType { + spatem_ts_Iso3833VehicleType_passengerCar = 0, + spatem_ts_Iso3833VehicleType_saloon = 1, + spatem_ts_Iso3833VehicleType_convertibleSaloon = 2, + spatem_ts_Iso3833VehicleType_pullmanSaloon = 3, + spatem_ts_Iso3833VehicleType_stationWagon = 4, + spatem_ts_Iso3833VehicleType_truckStationWagon = 5, + spatem_ts_Iso3833VehicleType_coupe = 6, + spatem_ts_Iso3833VehicleType_convertible = 7, + spatem_ts_Iso3833VehicleType_multipurposePassengerCar = 8, + spatem_ts_Iso3833VehicleType_forwardControlPassengerCar = 9, + spatem_ts_Iso3833VehicleType_specialPassengerCar = 10, + spatem_ts_Iso3833VehicleType_bus = 11, + spatem_ts_Iso3833VehicleType_minibus = 12, + spatem_ts_Iso3833VehicleType_urbanBus = 13, + spatem_ts_Iso3833VehicleType_interurbanCoach = 14, + spatem_ts_Iso3833VehicleType_longDistanceCoach = 15, + spatem_ts_Iso3833VehicleType_articulatedBus = 16, + spatem_ts_Iso3833VehicleType_trolleyBus = 17, + spatem_ts_Iso3833VehicleType_specialBus = 18, + spatem_ts_Iso3833VehicleType_commercialVehicle = 19, + spatem_ts_Iso3833VehicleType_specialCommercialVehicle = 20, + spatem_ts_Iso3833VehicleType_specialVehicle = 21, + spatem_ts_Iso3833VehicleType_trailingTowingVehicle = 22, + spatem_ts_Iso3833VehicleType_semiTrailerTowingVehicle = 23, + spatem_ts_Iso3833VehicleType_trailer = 24, + spatem_ts_Iso3833VehicleType_busTrailer = 25, + spatem_ts_Iso3833VehicleType_generalPurposeTrailer = 26, + spatem_ts_Iso3833VehicleType_caravan = 27, + spatem_ts_Iso3833VehicleType_specialTrailer = 28, + spatem_ts_Iso3833VehicleType_semiTrailer = 29, + spatem_ts_Iso3833VehicleType_busSemiTrailer = 30, + spatem_ts_Iso3833VehicleType_generalPurposeSemiTrailer = 31, + spatem_ts_Iso3833VehicleType_specialSemiTrailer = 32, + spatem_ts_Iso3833VehicleType_roadTrain = 33, + spatem_ts_Iso3833VehicleType_passengerRoadTrain = 34, + spatem_ts_Iso3833VehicleType_articulatedRoadTrain = 35, + spatem_ts_Iso3833VehicleType_doubleRoadTrain = 36, + spatem_ts_Iso3833VehicleType_compositeRoadTrain = 37, + spatem_ts_Iso3833VehicleType_specialRoadTrain = 38, + spatem_ts_Iso3833VehicleType_moped = 39, + spatem_ts_Iso3833VehicleType_motorCycle = 40 +} e_spatem_ts_Iso3833VehicleType; + +/* spatem_ts_Iso3833VehicleType */ +typedef long spatem_ts_Iso3833VehicleType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_Iso3833VehicleType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Iso3833VehicleType; +asn_struct_free_f spatem_ts_Iso3833VehicleType_free; +asn_struct_print_f spatem_ts_Iso3833VehicleType_print; +asn_constr_check_f spatem_ts_Iso3833VehicleType_constraint; +per_type_decoder_f spatem_ts_Iso3833VehicleType_decode_uper; +per_type_encoder_f spatem_ts_Iso3833VehicleType_encode_uper; +per_type_decoder_f spatem_ts_Iso3833VehicleType_decode_aper; +per_type_encoder_f spatem_ts_Iso3833VehicleType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Iso3833VehicleType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_IssuerIdentifier.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_IssuerIdentifier.h new file mode 100644 index 000000000..54297af56 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_IssuerIdentifier_H_ +#define _spatem_ts_IssuerIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_IssuerIdentifier */ +typedef long spatem_ts_IssuerIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_IssuerIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_IssuerIdentifier; +asn_struct_free_f spatem_ts_IssuerIdentifier_free; +asn_struct_print_f spatem_ts_IssuerIdentifier_print; +asn_constr_check_f spatem_ts_IssuerIdentifier_constraint; +per_type_decoder_f spatem_ts_IssuerIdentifier_decode_uper; +per_type_encoder_f spatem_ts_IssuerIdentifier_encode_uper; +per_type_decoder_f spatem_ts_IssuerIdentifier_decode_aper; +per_type_encoder_f spatem_ts_IssuerIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_IssuerIdentifier_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ItineraryPath.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ItineraryPath.h new file mode 100644 index 000000000..2f9ba35a0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ItineraryPath_H_ +#define _spatem_ts_ItineraryPath_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_ReferencePosition; + +/* spatem_ts_ItineraryPath */ +typedef struct spatem_ts_ItineraryPath { + A_SEQUENCE_OF(struct spatem_ts_ReferencePosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_ItineraryPath_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ItineraryPath; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_ReferencePosition.h" + +#endif /* _spatem_ts_ItineraryPath_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ItsPduHeader.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ItsPduHeader.h new file mode 100644 index 000000000..b0e092098 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ItsPduHeader_H_ +#define _spatem_ts_ItsPduHeader_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_spatem_ts_coding/spatem_ts_StationID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_ItsPduHeader__messageID { + spatem_ts_ItsPduHeader__messageID_denm = 1, + spatem_ts_ItsPduHeader__messageID_cam = 2, + spatem_ts_ItsPduHeader__messageID_poi = 3, + spatem_ts_ItsPduHeader__messageID_spatem = 4, + spatem_ts_ItsPduHeader__messageID_mapem = 5, + spatem_ts_ItsPduHeader__messageID_ivim = 6, + spatem_ts_ItsPduHeader__messageID_ev_rsr = 7, + spatem_ts_ItsPduHeader__messageID_tistpgtransaction = 8, + spatem_ts_ItsPduHeader__messageID_srem = 9, + spatem_ts_ItsPduHeader__messageID_ssem = 10, + spatem_ts_ItsPduHeader__messageID_evcsn = 11, + spatem_ts_ItsPduHeader__messageID_saem = 12, + spatem_ts_ItsPduHeader__messageID_rtcmem = 13 +} e_spatem_ts_ItsPduHeader__messageID; + +/* spatem_ts_ItsPduHeader */ +typedef struct spatem_ts_ItsPduHeader { + long protocolVersion; + long messageID; + spatem_ts_StationID_t stationID; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_ItsPduHeader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ItsPduHeader; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_ItsPduHeader_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_ItsPduHeader_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_ItsPduHeader_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ItsStationPosition.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ItsStationPosition.h new file mode 100644 index 000000000..aa7bf8df0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ItsStationPosition_H_ +#define _spatem_ts_ItsStationPosition_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_StationID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_TimeReference.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_NodeOffsetPointXY; + +/* spatem_ts_ItsStationPosition */ +typedef struct spatem_ts_ItsStationPosition { + spatem_ts_StationID_t stationID; + spatem_ts_LaneID_t *laneID; /* OPTIONAL */ + struct spatem_ts_NodeOffsetPointXY *nodeXY; /* OPTIONAL */ + spatem_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; +} spatem_ts_ItsStationPosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ItsStationPosition; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_ItsStationPosition_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_ItsStationPosition_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_NodeOffsetPointXY.h" + +#endif /* _spatem_ts_ItsStationPosition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ItsStationPositionList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ItsStationPositionList.h new file mode 100644 index 000000000..180eea8fe --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ItsStationPositionList_H_ +#define _spatem_ts_ItsStationPositionList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_ItsStationPosition; + +/* spatem_ts_ItsStationPositionList */ +typedef struct spatem_ts_ItsStationPositionList { + A_SEQUENCE_OF(struct spatem_ts_ItsStationPosition) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_ItsStationPositionList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ItsStationPositionList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_ItsStationPositionList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_ItsStationPositionList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_ItsStationPositionList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_ItsStationPosition.h" + +#endif /* _spatem_ts_ItsStationPositionList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Barrier.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Barrier.h new file mode 100644 index 000000000..4eff2b543 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LaneAttributes_Barrier_H_ +#define _spatem_ts_LaneAttributes_Barrier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_LaneAttributes_Barrier { + spatem_ts_LaneAttributes_Barrier_median_RevocableLane = 0, + spatem_ts_LaneAttributes_Barrier_median = 1, + spatem_ts_LaneAttributes_Barrier_whiteLineHashing = 2, + spatem_ts_LaneAttributes_Barrier_stripedLines = 3, + spatem_ts_LaneAttributes_Barrier_doubleStripedLines = 4, + spatem_ts_LaneAttributes_Barrier_trafficCones = 5, + spatem_ts_LaneAttributes_Barrier_constructionBarrier = 6, + spatem_ts_LaneAttributes_Barrier_trafficChannels = 7, + spatem_ts_LaneAttributes_Barrier_lowCurbs = 8, + spatem_ts_LaneAttributes_Barrier_highCurbs = 9 +} e_spatem_ts_LaneAttributes_Barrier; + +/* spatem_ts_LaneAttributes-Barrier */ +typedef BIT_STRING_t spatem_ts_LaneAttributes_Barrier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_LaneAttributes_Barrier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneAttributes_Barrier; +asn_struct_free_f spatem_ts_LaneAttributes_Barrier_free; +asn_struct_print_f spatem_ts_LaneAttributes_Barrier_print; +asn_constr_check_f spatem_ts_LaneAttributes_Barrier_constraint; +per_type_decoder_f spatem_ts_LaneAttributes_Barrier_decode_uper; +per_type_encoder_f spatem_ts_LaneAttributes_Barrier_encode_uper; +per_type_decoder_f spatem_ts_LaneAttributes_Barrier_decode_aper; +per_type_encoder_f spatem_ts_LaneAttributes_Barrier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_LaneAttributes_Barrier_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Bike.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Bike.h new file mode 100644 index 000000000..6212f1b68 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LaneAttributes_Bike_H_ +#define _spatem_ts_LaneAttributes_Bike_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_LaneAttributes_Bike { + spatem_ts_LaneAttributes_Bike_bikeRevocableLane = 0, + spatem_ts_LaneAttributes_Bike_pedestrianUseAllowed = 1, + spatem_ts_LaneAttributes_Bike_isBikeFlyOverLane = 2, + spatem_ts_LaneAttributes_Bike_fixedCycleTime = 3, + spatem_ts_LaneAttributes_Bike_biDirectionalCycleTimes = 4, + spatem_ts_LaneAttributes_Bike_isolatedByBarrier = 5, + spatem_ts_LaneAttributes_Bike_unsignalizedSegmentsPresent = 6 +} e_spatem_ts_LaneAttributes_Bike; + +/* spatem_ts_LaneAttributes-Bike */ +typedef BIT_STRING_t spatem_ts_LaneAttributes_Bike_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_LaneAttributes_Bike_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneAttributes_Bike; +asn_struct_free_f spatem_ts_LaneAttributes_Bike_free; +asn_struct_print_f spatem_ts_LaneAttributes_Bike_print; +asn_constr_check_f spatem_ts_LaneAttributes_Bike_constraint; +per_type_decoder_f spatem_ts_LaneAttributes_Bike_decode_uper; +per_type_encoder_f spatem_ts_LaneAttributes_Bike_encode_uper; +per_type_decoder_f spatem_ts_LaneAttributes_Bike_decode_aper; +per_type_encoder_f spatem_ts_LaneAttributes_Bike_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_LaneAttributes_Bike_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Crosswalk.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Crosswalk.h new file mode 100644 index 000000000..7af1a2432 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LaneAttributes_Crosswalk_H_ +#define _spatem_ts_LaneAttributes_Crosswalk_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_LaneAttributes_Crosswalk { + spatem_ts_LaneAttributes_Crosswalk_crosswalkRevocableLane = 0, + spatem_ts_LaneAttributes_Crosswalk_bicyleUseAllowed = 1, + spatem_ts_LaneAttributes_Crosswalk_isXwalkFlyOverLane = 2, + spatem_ts_LaneAttributes_Crosswalk_fixedCycleTime = 3, + spatem_ts_LaneAttributes_Crosswalk_biDirectionalCycleTimes = 4, + spatem_ts_LaneAttributes_Crosswalk_hasPushToWalkButton = 5, + spatem_ts_LaneAttributes_Crosswalk_audioSupport = 6, + spatem_ts_LaneAttributes_Crosswalk_rfSignalRequestPresent = 7, + spatem_ts_LaneAttributes_Crosswalk_unsignalizedSegmentsPresent = 8 +} e_spatem_ts_LaneAttributes_Crosswalk; + +/* spatem_ts_LaneAttributes-Crosswalk */ +typedef BIT_STRING_t spatem_ts_LaneAttributes_Crosswalk_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_LaneAttributes_Crosswalk_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneAttributes_Crosswalk; +asn_struct_free_f spatem_ts_LaneAttributes_Crosswalk_free; +asn_struct_print_f spatem_ts_LaneAttributes_Crosswalk_print; +asn_constr_check_f spatem_ts_LaneAttributes_Crosswalk_constraint; +per_type_decoder_f spatem_ts_LaneAttributes_Crosswalk_decode_uper; +per_type_encoder_f spatem_ts_LaneAttributes_Crosswalk_encode_uper; +per_type_decoder_f spatem_ts_LaneAttributes_Crosswalk_decode_aper; +per_type_encoder_f spatem_ts_LaneAttributes_Crosswalk_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_LaneAttributes_Crosswalk_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Parking.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Parking.h new file mode 100644 index 000000000..2d438f85e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LaneAttributes_Parking_H_ +#define _spatem_ts_LaneAttributes_Parking_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_LaneAttributes_Parking { + spatem_ts_LaneAttributes_Parking_parkingRevocableLane = 0, + spatem_ts_LaneAttributes_Parking_parallelParkingInUse = 1, + spatem_ts_LaneAttributes_Parking_headInParkingInUse = 2, + spatem_ts_LaneAttributes_Parking_doNotParkZone = 3, + spatem_ts_LaneAttributes_Parking_parkingForBusUse = 4, + spatem_ts_LaneAttributes_Parking_parkingForTaxiUse = 5, + spatem_ts_LaneAttributes_Parking_noPublicParkingUse = 6 +} e_spatem_ts_LaneAttributes_Parking; + +/* spatem_ts_LaneAttributes-Parking */ +typedef BIT_STRING_t spatem_ts_LaneAttributes_Parking_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_LaneAttributes_Parking_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneAttributes_Parking; +asn_struct_free_f spatem_ts_LaneAttributes_Parking_free; +asn_struct_print_f spatem_ts_LaneAttributes_Parking_print; +asn_constr_check_f spatem_ts_LaneAttributes_Parking_constraint; +per_type_decoder_f spatem_ts_LaneAttributes_Parking_decode_uper; +per_type_encoder_f spatem_ts_LaneAttributes_Parking_encode_uper; +per_type_decoder_f spatem_ts_LaneAttributes_Parking_decode_aper; +per_type_encoder_f spatem_ts_LaneAttributes_Parking_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_LaneAttributes_Parking_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Sidewalk.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Sidewalk.h new file mode 100644 index 000000000..15d70b924 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LaneAttributes_Sidewalk_H_ +#define _spatem_ts_LaneAttributes_Sidewalk_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_LaneAttributes_Sidewalk { + spatem_ts_LaneAttributes_Sidewalk_sidewalk_RevocableLane = 0, + spatem_ts_LaneAttributes_Sidewalk_bicyleUseAllowed = 1, + spatem_ts_LaneAttributes_Sidewalk_isSidewalkFlyOverLane = 2, + spatem_ts_LaneAttributes_Sidewalk_walkBikes = 3 +} e_spatem_ts_LaneAttributes_Sidewalk; + +/* spatem_ts_LaneAttributes-Sidewalk */ +typedef BIT_STRING_t spatem_ts_LaneAttributes_Sidewalk_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_LaneAttributes_Sidewalk_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneAttributes_Sidewalk; +asn_struct_free_f spatem_ts_LaneAttributes_Sidewalk_free; +asn_struct_print_f spatem_ts_LaneAttributes_Sidewalk_print; +asn_constr_check_f spatem_ts_LaneAttributes_Sidewalk_constraint; +per_type_decoder_f spatem_ts_LaneAttributes_Sidewalk_decode_uper; +per_type_encoder_f spatem_ts_LaneAttributes_Sidewalk_encode_uper; +per_type_decoder_f spatem_ts_LaneAttributes_Sidewalk_decode_aper; +per_type_encoder_f spatem_ts_LaneAttributes_Sidewalk_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_LaneAttributes_Sidewalk_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Striping.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Striping.h new file mode 100644 index 000000000..f4c1bb24e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LaneAttributes_Striping_H_ +#define _spatem_ts_LaneAttributes_Striping_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_LaneAttributes_Striping { + spatem_ts_LaneAttributes_Striping_stripeToConnectingLanesRevocableLane = 0, + spatem_ts_LaneAttributes_Striping_stripeDrawOnLeft = 1, + spatem_ts_LaneAttributes_Striping_stripeDrawOnRight = 2, + spatem_ts_LaneAttributes_Striping_stripeToConnectingLanesLeft = 3, + spatem_ts_LaneAttributes_Striping_stripeToConnectingLanesRight = 4, + spatem_ts_LaneAttributes_Striping_stripeToConnectingLanesAhead = 5 +} e_spatem_ts_LaneAttributes_Striping; + +/* spatem_ts_LaneAttributes-Striping */ +typedef BIT_STRING_t spatem_ts_LaneAttributes_Striping_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_LaneAttributes_Striping_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneAttributes_Striping; +asn_struct_free_f spatem_ts_LaneAttributes_Striping_free; +asn_struct_print_f spatem_ts_LaneAttributes_Striping_print; +asn_constr_check_f spatem_ts_LaneAttributes_Striping_constraint; +per_type_decoder_f spatem_ts_LaneAttributes_Striping_decode_uper; +per_type_encoder_f spatem_ts_LaneAttributes_Striping_encode_uper; +per_type_decoder_f spatem_ts_LaneAttributes_Striping_decode_aper; +per_type_encoder_f spatem_ts_LaneAttributes_Striping_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_LaneAttributes_Striping_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-TrackedVehicle.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-TrackedVehicle.h new file mode 100644 index 000000000..227fd586f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LaneAttributes_TrackedVehicle_H_ +#define _spatem_ts_LaneAttributes_TrackedVehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_LaneAttributes_TrackedVehicle { + spatem_ts_LaneAttributes_TrackedVehicle_spec_RevocableLane = 0, + spatem_ts_LaneAttributes_TrackedVehicle_spec_commuterRailRoadTrack = 1, + spatem_ts_LaneAttributes_TrackedVehicle_spec_lightRailRoadTrack = 2, + spatem_ts_LaneAttributes_TrackedVehicle_spec_heavyRailRoadTrack = 3, + spatem_ts_LaneAttributes_TrackedVehicle_spec_otherRailType = 4 +} e_spatem_ts_LaneAttributes_TrackedVehicle; + +/* spatem_ts_LaneAttributes-TrackedVehicle */ +typedef BIT_STRING_t spatem_ts_LaneAttributes_TrackedVehicle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_LaneAttributes_TrackedVehicle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneAttributes_TrackedVehicle; +asn_struct_free_f spatem_ts_LaneAttributes_TrackedVehicle_free; +asn_struct_print_f spatem_ts_LaneAttributes_TrackedVehicle_print; +asn_constr_check_f spatem_ts_LaneAttributes_TrackedVehicle_constraint; +per_type_decoder_f spatem_ts_LaneAttributes_TrackedVehicle_decode_uper; +per_type_encoder_f spatem_ts_LaneAttributes_TrackedVehicle_encode_uper; +per_type_decoder_f spatem_ts_LaneAttributes_TrackedVehicle_decode_aper; +per_type_encoder_f spatem_ts_LaneAttributes_TrackedVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_LaneAttributes_TrackedVehicle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Vehicle.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Vehicle.h new file mode 100644 index 000000000..6fb84e2fa --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LaneAttributes_Vehicle_H_ +#define _spatem_ts_LaneAttributes_Vehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_LaneAttributes_Vehicle { + spatem_ts_LaneAttributes_Vehicle_isVehicleRevocableLane = 0, + spatem_ts_LaneAttributes_Vehicle_isVehicleFlyOverLane = 1, + spatem_ts_LaneAttributes_Vehicle_hovLaneUseOnly = 2, + spatem_ts_LaneAttributes_Vehicle_restrictedToBusUse = 3, + spatem_ts_LaneAttributes_Vehicle_restrictedToTaxiUse = 4, + spatem_ts_LaneAttributes_Vehicle_restrictedFromPublicUse = 5, + spatem_ts_LaneAttributes_Vehicle_hasIRbeaconCoverage = 6, + spatem_ts_LaneAttributes_Vehicle_permissionOnRequest = 7 +} e_spatem_ts_LaneAttributes_Vehicle; + +/* spatem_ts_LaneAttributes-Vehicle */ +typedef BIT_STRING_t spatem_ts_LaneAttributes_Vehicle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_LaneAttributes_Vehicle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneAttributes_Vehicle; +asn_struct_free_f spatem_ts_LaneAttributes_Vehicle_free; +asn_struct_print_f spatem_ts_LaneAttributes_Vehicle_print; +asn_constr_check_f spatem_ts_LaneAttributes_Vehicle_constraint; +per_type_decoder_f spatem_ts_LaneAttributes_Vehicle_decode_uper; +per_type_encoder_f spatem_ts_LaneAttributes_Vehicle_encode_uper; +per_type_decoder_f spatem_ts_LaneAttributes_Vehicle_decode_aper; +per_type_encoder_f spatem_ts_LaneAttributes_Vehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_LaneAttributes_Vehicle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-addGrpC.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-addGrpC.h new file mode 100644 index 000000000..625e0d25b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LaneAttributes_addGrpC_H_ +#define _spatem_ts_LaneAttributes_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_VehicleHeight.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_VehicleMass.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_LaneAttributes-addGrpC */ +typedef struct spatem_ts_LaneAttributes_addGrpC { + spatem_ts_VehicleHeight_t *maxVehicleHeight; /* OPTIONAL */ + spatem_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; +} spatem_ts_LaneAttributes_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneAttributes_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_LaneAttributes_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_LaneAttributes_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_LaneAttributes_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes.h new file mode 100644 index 000000000..fcb09af33 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LaneAttributes_H_ +#define _spatem_ts_LaneAttributes_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneDirection.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneSharing.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneTypeAttributes.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_Reg_LaneAttributes; + +/* spatem_ts_LaneAttributes */ +typedef struct spatem_ts_LaneAttributes { + spatem_ts_LaneDirection_t directionalUse; + spatem_ts_LaneSharing_t sharedWith; + spatem_ts_LaneTypeAttributes_t laneType; + struct spatem_ts_Reg_LaneAttributes *regional; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_LaneAttributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneAttributes; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_LaneAttributes_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_LaneAttributes_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_LaneAttributes_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneConnectionID.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneConnectionID.h new file mode 100644 index 000000000..b31ae82c8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LaneConnectionID_H_ +#define _spatem_ts_LaneConnectionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_LaneConnectionID */ +typedef long spatem_ts_LaneConnectionID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_LaneConnectionID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneConnectionID; +asn_struct_free_f spatem_ts_LaneConnectionID_free; +asn_struct_print_f spatem_ts_LaneConnectionID_print; +asn_constr_check_f spatem_ts_LaneConnectionID_constraint; +per_type_decoder_f spatem_ts_LaneConnectionID_decode_uper; +per_type_encoder_f spatem_ts_LaneConnectionID_encode_uper; +per_type_decoder_f spatem_ts_LaneConnectionID_decode_aper; +per_type_encoder_f spatem_ts_LaneConnectionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_LaneConnectionID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneDataAttribute.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneDataAttribute.h new file mode 100644 index 000000000..08171712a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LaneDataAttribute_H_ +#define _spatem_ts_LaneDataAttribute_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_DeltaAngle.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RoadwayCrownAngle.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_MergeDivergeNodeAngle.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_SpeedLimitList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_LaneDataAttribute_PR { + spatem_ts_LaneDataAttribute_PR_NOTHING, /* No components present */ + spatem_ts_LaneDataAttribute_PR_pathEndPointAngle, + spatem_ts_LaneDataAttribute_PR_laneCrownPointCenter, + spatem_ts_LaneDataAttribute_PR_laneCrownPointLeft, + spatem_ts_LaneDataAttribute_PR_laneCrownPointRight, + spatem_ts_LaneDataAttribute_PR_laneAngle, + spatem_ts_LaneDataAttribute_PR_speedLimits, + spatem_ts_LaneDataAttribute_PR_regional + /* Extensions may appear below */ + +} spatem_ts_LaneDataAttribute_PR; + +/* Forward declarations */ +struct spatem_ts_Reg_LaneDataAttribute; + +/* spatem_ts_LaneDataAttribute */ +typedef struct spatem_ts_LaneDataAttribute { + spatem_ts_LaneDataAttribute_PR present; + union spatem_ts_LaneDataAttribute_u { + spatem_ts_DeltaAngle_t pathEndPointAngle; + spatem_ts_RoadwayCrownAngle_t laneCrownPointCenter; + spatem_ts_RoadwayCrownAngle_t laneCrownPointLeft; + spatem_ts_RoadwayCrownAngle_t laneCrownPointRight; + spatem_ts_MergeDivergeNodeAngle_t laneAngle; + spatem_ts_SpeedLimitList_t speedLimits; + struct spatem_ts_LaneDataAttribute__regional { + A_SEQUENCE_OF(struct spatem_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; +} spatem_ts_LaneDataAttribute_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneDataAttribute; +extern asn_CHOICE_specifics_t asn_SPC_spatem_ts_LaneDataAttribute_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_LaneDataAttribute_1[7]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_LaneDataAttribute_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_LaneDataAttribute_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneDataAttributeList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneDataAttributeList.h new file mode 100644 index 000000000..6c58fdc45 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LaneDataAttributeList_H_ +#define _spatem_ts_LaneDataAttributeList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_LaneDataAttribute; + +/* spatem_ts_LaneDataAttributeList */ +typedef struct spatem_ts_LaneDataAttributeList { + A_SEQUENCE_OF(struct spatem_ts_LaneDataAttribute) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_LaneDataAttributeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneDataAttributeList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_LaneDataAttributeList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_LaneDataAttributeList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_LaneDataAttributeList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneDataAttribute.h" + +#endif /* _spatem_ts_LaneDataAttributeList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneDirection.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneDirection.h new file mode 100644 index 000000000..b0b7c15f5 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LaneDirection_H_ +#define _spatem_ts_LaneDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_LaneDirection { + spatem_ts_LaneDirection_ingressPath = 0, + spatem_ts_LaneDirection_egressPath = 1 +} e_spatem_ts_LaneDirection; + +/* spatem_ts_LaneDirection */ +typedef BIT_STRING_t spatem_ts_LaneDirection_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_LaneDirection_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneDirection; +asn_struct_free_f spatem_ts_LaneDirection_free; +asn_struct_print_f spatem_ts_LaneDirection_print; +asn_constr_check_f spatem_ts_LaneDirection_constraint; +per_type_decoder_f spatem_ts_LaneDirection_decode_uper; +per_type_encoder_f spatem_ts_LaneDirection_encode_uper; +per_type_decoder_f spatem_ts_LaneDirection_decode_aper; +per_type_encoder_f spatem_ts_LaneDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_LaneDirection_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneID.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneID.h new file mode 100644 index 000000000..6e7e1c9fb --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LaneID_H_ +#define _spatem_ts_LaneID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_LaneID */ +typedef long spatem_ts_LaneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_LaneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneID; +asn_struct_free_f spatem_ts_LaneID_free; +asn_struct_print_f spatem_ts_LaneID_print; +asn_constr_check_f spatem_ts_LaneID_constraint; +per_type_decoder_f spatem_ts_LaneID_decode_uper; +per_type_encoder_f spatem_ts_LaneID_encode_uper; +per_type_decoder_f spatem_ts_LaneID_decode_aper; +per_type_encoder_f spatem_ts_LaneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_LaneID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneList.h new file mode 100644 index 000000000..ed19ed2fb --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LaneList_H_ +#define _spatem_ts_LaneList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_GenericLane; + +/* spatem_ts_LaneList */ +typedef struct spatem_ts_LaneList { + A_SEQUENCE_OF(struct spatem_ts_GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_LaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_LaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_LaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_LaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_GenericLane.h" + +#endif /* _spatem_ts_LaneList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LanePosition.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LanePosition.h new file mode 100644 index 000000000..16ad3780b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LanePosition.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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LanePosition_H_ +#define _spatem_ts_LanePosition_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_LanePosition { + spatem_ts_LanePosition_offTheRoad = -1, + spatem_ts_LanePosition_hardShoulder = 0, + spatem_ts_LanePosition_outermostDrivingLane = 1, + spatem_ts_LanePosition_secondLaneFromOutside = 2 +} e_spatem_ts_LanePosition; + +/* spatem_ts_LanePosition */ +typedef long spatem_ts_LanePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LanePosition; +asn_struct_free_f spatem_ts_LanePosition_free; +asn_struct_print_f spatem_ts_LanePosition_print; +asn_constr_check_f spatem_ts_LanePosition_constraint; +per_type_decoder_f spatem_ts_LanePosition_decode_uper; +per_type_encoder_f spatem_ts_LanePosition_encode_uper; +per_type_decoder_f spatem_ts_LanePosition_decode_aper; +per_type_encoder_f spatem_ts_LanePosition_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_LanePosition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneSharing.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneSharing.h new file mode 100644 index 000000000..28b4c754e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LaneSharing_H_ +#define _spatem_ts_LaneSharing_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_LaneSharing { + spatem_ts_LaneSharing_overlappingLaneDescriptionProvided = 0, + spatem_ts_LaneSharing_multipleLanesTreatedAsOneLane = 1, + spatem_ts_LaneSharing_otherNonMotorizedTrafficTypes = 2, + spatem_ts_LaneSharing_individualMotorizedVehicleTraffic = 3, + spatem_ts_LaneSharing_busVehicleTraffic = 4, + spatem_ts_LaneSharing_taxiVehicleTraffic = 5, + spatem_ts_LaneSharing_pedestriansTraffic = 6, + spatem_ts_LaneSharing_cyclistVehicleTraffic = 7, + spatem_ts_LaneSharing_trackedVehicleTraffic = 8, + spatem_ts_LaneSharing_pedestrianTraffic = 9 +} e_spatem_ts_LaneSharing; + +/* spatem_ts_LaneSharing */ +typedef BIT_STRING_t spatem_ts_LaneSharing_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_LaneSharing_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneSharing; +asn_struct_free_f spatem_ts_LaneSharing_free; +asn_struct_print_f spatem_ts_LaneSharing_print; +asn_constr_check_f spatem_ts_LaneSharing_constraint; +per_type_decoder_f spatem_ts_LaneSharing_decode_uper; +per_type_encoder_f spatem_ts_LaneSharing_encode_uper; +per_type_decoder_f spatem_ts_LaneSharing_decode_aper; +per_type_encoder_f spatem_ts_LaneSharing_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_LaneSharing_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneTypeAttributes.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneTypeAttributes.h new file mode 100644 index 000000000..b300264d4 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LaneTypeAttributes_H_ +#define _spatem_ts_LaneTypeAttributes_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Vehicle.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Crosswalk.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Bike.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Sidewalk.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Barrier.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Striping.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-TrackedVehicle.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Parking.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_LaneTypeAttributes_PR { + spatem_ts_LaneTypeAttributes_PR_NOTHING, /* No components present */ + spatem_ts_LaneTypeAttributes_PR_vehicle, + spatem_ts_LaneTypeAttributes_PR_crosswalk, + spatem_ts_LaneTypeAttributes_PR_bikeLane, + spatem_ts_LaneTypeAttributes_PR_sidewalk, + spatem_ts_LaneTypeAttributes_PR_median, + spatem_ts_LaneTypeAttributes_PR_striping, + spatem_ts_LaneTypeAttributes_PR_trackedVehicle, + spatem_ts_LaneTypeAttributes_PR_parking + /* Extensions may appear below */ + +} spatem_ts_LaneTypeAttributes_PR; + +/* spatem_ts_LaneTypeAttributes */ +typedef struct spatem_ts_LaneTypeAttributes { + spatem_ts_LaneTypeAttributes_PR present; + union spatem_ts_LaneTypeAttributes_u { + spatem_ts_LaneAttributes_Vehicle_t vehicle; + spatem_ts_LaneAttributes_Crosswalk_t crosswalk; + spatem_ts_LaneAttributes_Bike_t bikeLane; + spatem_ts_LaneAttributes_Sidewalk_t sidewalk; + spatem_ts_LaneAttributes_Barrier_t median; + spatem_ts_LaneAttributes_Striping_t striping; + spatem_ts_LaneAttributes_TrackedVehicle_t trackedVehicle; + spatem_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; +} spatem_ts_LaneTypeAttributes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneTypeAttributes; +extern asn_CHOICE_specifics_t asn_SPC_spatem_ts_LaneTypeAttributes_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_LaneTypeAttributes_1[8]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_LaneTypeAttributes_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_LaneTypeAttributes_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneWidth.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LaneWidth.h new file mode 100644 index 000000000..89e91cc57 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LaneWidth_H_ +#define _spatem_ts_LaneWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_LaneWidth */ +typedef long spatem_ts_LaneWidth_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_LaneWidth_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneWidth; +asn_struct_free_f spatem_ts_LaneWidth_free; +asn_struct_print_f spatem_ts_LaneWidth_print; +asn_constr_check_f spatem_ts_LaneWidth_constraint; +per_type_decoder_f spatem_ts_LaneWidth_decode_uper; +per_type_encoder_f spatem_ts_LaneWidth_encode_uper; +per_type_decoder_f spatem_ts_LaneWidth_decode_aper; +per_type_encoder_f spatem_ts_LaneWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_LaneWidth_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LateralAcceleration.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LateralAcceleration.h new file mode 100644 index 000000000..81fe35ca6 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LateralAcceleration_H_ +#define _spatem_ts_LateralAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_LateralAccelerationValue.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_LateralAcceleration */ +typedef struct spatem_ts_LateralAcceleration { + spatem_ts_LateralAccelerationValue_t lateralAccelerationValue; + spatem_ts_AccelerationConfidence_t lateralAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_LateralAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LateralAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_LateralAcceleration_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LateralAccelerationValue.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LateralAccelerationValue.h new file mode 100644 index 000000000..ecf7eb306 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LateralAccelerationValue_H_ +#define _spatem_ts_LateralAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_LateralAccelerationValue { + spatem_ts_LateralAccelerationValue_pointOneMeterPerSecSquaredToRight = -1, + spatem_ts_LateralAccelerationValue_pointOneMeterPerSecSquaredToLeft = 1, + spatem_ts_LateralAccelerationValue_unavailable = 161 +} e_spatem_ts_LateralAccelerationValue; + +/* spatem_ts_LateralAccelerationValue */ +typedef long spatem_ts_LateralAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_LateralAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LateralAccelerationValue; +asn_struct_free_f spatem_ts_LateralAccelerationValue_free; +asn_struct_print_f spatem_ts_LateralAccelerationValue_print; +asn_constr_check_f spatem_ts_LateralAccelerationValue_constraint; +per_type_decoder_f spatem_ts_LateralAccelerationValue_decode_uper; +per_type_encoder_f spatem_ts_LateralAccelerationValue_encode_uper; +per_type_decoder_f spatem_ts_LateralAccelerationValue_decode_aper; +per_type_encoder_f spatem_ts_LateralAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_LateralAccelerationValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Latitude.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Latitude.h new file mode 100644 index 000000000..384c17392 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Latitude_H_ +#define _spatem_ts_Latitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_Latitude { + spatem_ts_Latitude_oneMicrodegreeNorth = 10, + spatem_ts_Latitude_oneMicrodegreeSouth = -10, + spatem_ts_Latitude_unavailable = 900000001 +} e_spatem_ts_Latitude; + +/* spatem_ts_Latitude */ +typedef long spatem_ts_Latitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_Latitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Latitude; +asn_struct_free_f spatem_ts_Latitude_free; +asn_struct_print_f spatem_ts_Latitude_print; +asn_constr_check_f spatem_ts_Latitude_constraint; +per_type_decoder_f spatem_ts_Latitude_decode_uper; +per_type_encoder_f spatem_ts_Latitude_encode_uper; +per_type_decoder_f spatem_ts_Latitude_decode_aper; +per_type_encoder_f spatem_ts_Latitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Latitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LayerID.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LayerID.h new file mode 100644 index 000000000..c65eb7d29 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LayerID_H_ +#define _spatem_ts_LayerID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_LayerID */ +typedef long spatem_ts_LayerID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_LayerID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LayerID; +asn_struct_free_f spatem_ts_LayerID_free; +asn_struct_print_f spatem_ts_LayerID_print; +asn_constr_check_f spatem_ts_LayerID_constraint; +per_type_decoder_f spatem_ts_LayerID_decode_uper; +per_type_encoder_f spatem_ts_LayerID_encode_uper; +per_type_decoder_f spatem_ts_LayerID_decode_aper; +per_type_encoder_f spatem_ts_LayerID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_LayerID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LayerType.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LayerType.h new file mode 100644 index 000000000..cecc90383 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LayerType_H_ +#define _spatem_ts_LayerType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_LayerType { + spatem_ts_LayerType_none = 0, + spatem_ts_LayerType_mixedContent = 1, + spatem_ts_LayerType_generalMapData = 2, + spatem_ts_LayerType_intersectionData = 3, + spatem_ts_LayerType_curveData = 4, + spatem_ts_LayerType_roadwaySectionData = 5, + spatem_ts_LayerType_parkingAreaData = 6, + spatem_ts_LayerType_sharedLaneData = 7 + /* + * Enumeration is extensible + */ +} e_spatem_ts_LayerType; + +/* spatem_ts_LayerType */ +typedef long spatem_ts_LayerType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_LayerType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LayerType; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_LayerType_specs_1; +asn_struct_free_f spatem_ts_LayerType_free; +asn_struct_print_f spatem_ts_LayerType_print; +asn_constr_check_f spatem_ts_LayerType_constraint; +per_type_decoder_f spatem_ts_LayerType_decode_uper; +per_type_encoder_f spatem_ts_LayerType_encode_uper; +per_type_decoder_f spatem_ts_LayerType_decode_aper; +per_type_encoder_f spatem_ts_LayerType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_LayerType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LicPlateNumber.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LicPlateNumber.h new file mode 100644 index 000000000..d8ee38930 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LicPlateNumber_H_ +#define _spatem_ts_LicPlateNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_LicPlateNumber */ +typedef OCTET_STRING_t spatem_ts_LicPlateNumber_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LicPlateNumber; +asn_struct_free_f spatem_ts_LicPlateNumber_free; +asn_struct_print_f spatem_ts_LicPlateNumber_print; +asn_constr_check_f spatem_ts_LicPlateNumber_constraint; +per_type_decoder_f spatem_ts_LicPlateNumber_decode_uper; +per_type_encoder_f spatem_ts_LicPlateNumber_encode_uper; +per_type_decoder_f spatem_ts_LicPlateNumber_decode_aper; +per_type_encoder_f spatem_ts_LicPlateNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_LicPlateNumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LightBarSirenInUse.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LightBarSirenInUse.h new file mode 100644 index 000000000..be638632d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LightBarSirenInUse_H_ +#define _spatem_ts_LightBarSirenInUse_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_LightBarSirenInUse { + spatem_ts_LightBarSirenInUse_lightBarActivated = 0, + spatem_ts_LightBarSirenInUse_sirenActivated = 1 +} e_spatem_ts_LightBarSirenInUse; + +/* spatem_ts_LightBarSirenInUse */ +typedef BIT_STRING_t spatem_ts_LightBarSirenInUse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LightBarSirenInUse; +asn_struct_free_f spatem_ts_LightBarSirenInUse_free; +asn_struct_print_f spatem_ts_LightBarSirenInUse_print; +asn_constr_check_f spatem_ts_LightBarSirenInUse_constraint; +per_type_decoder_f spatem_ts_LightBarSirenInUse_decode_uper; +per_type_encoder_f spatem_ts_LightBarSirenInUse_encode_uper; +per_type_decoder_f spatem_ts_LightBarSirenInUse_decode_aper; +per_type_encoder_f spatem_ts_LightBarSirenInUse_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_LightBarSirenInUse_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Longitude.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Longitude.h new file mode 100644 index 000000000..0f14c214e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Longitude_H_ +#define _spatem_ts_Longitude_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_Longitude { + spatem_ts_Longitude_oneMicrodegreeEast = 10, + spatem_ts_Longitude_oneMicrodegreeWest = -10, + spatem_ts_Longitude_unavailable = 1800000001 +} e_spatem_ts_Longitude; + +/* spatem_ts_Longitude */ +typedef long spatem_ts_Longitude_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_Longitude_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Longitude; +asn_struct_free_f spatem_ts_Longitude_free; +asn_struct_print_f spatem_ts_Longitude_print; +asn_constr_check_f spatem_ts_Longitude_constraint; +per_type_decoder_f spatem_ts_Longitude_decode_uper; +per_type_encoder_f spatem_ts_Longitude_encode_uper; +per_type_decoder_f spatem_ts_Longitude_decode_aper; +per_type_encoder_f spatem_ts_Longitude_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Longitude_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LongitudinalAcceleration.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LongitudinalAcceleration.h new file mode 100644 index 000000000..3151a5125 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LongitudinalAcceleration_H_ +#define _spatem_ts_LongitudinalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_LongitudinalAccelerationValue.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_LongitudinalAcceleration */ +typedef struct spatem_ts_LongitudinalAcceleration { + spatem_ts_LongitudinalAccelerationValue_t longitudinalAccelerationValue; + spatem_ts_AccelerationConfidence_t longitudinalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_LongitudinalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LongitudinalAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_LongitudinalAcceleration_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LongitudinalAccelerationValue.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_LongitudinalAccelerationValue.h new file mode 100644 index 000000000..c340cff20 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_LongitudinalAccelerationValue_H_ +#define _spatem_ts_LongitudinalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_LongitudinalAccelerationValue { + spatem_ts_LongitudinalAccelerationValue_pointOneMeterPerSecSquaredForward = 1, + spatem_ts_LongitudinalAccelerationValue_pointOneMeterPerSecSquaredBackward = -1, + spatem_ts_LongitudinalAccelerationValue_unavailable = 161 +} e_spatem_ts_LongitudinalAccelerationValue; + +/* spatem_ts_LongitudinalAccelerationValue */ +typedef long spatem_ts_LongitudinalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_LongitudinalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_LongitudinalAccelerationValue; +asn_struct_free_f spatem_ts_LongitudinalAccelerationValue_free; +asn_struct_print_f spatem_ts_LongitudinalAccelerationValue_print; +asn_constr_check_f spatem_ts_LongitudinalAccelerationValue_constraint; +per_type_decoder_f spatem_ts_LongitudinalAccelerationValue_decode_uper; +per_type_encoder_f spatem_ts_LongitudinalAccelerationValue_encode_uper; +per_type_decoder_f spatem_ts_LongitudinalAccelerationValue_decode_aper; +per_type_encoder_f spatem_ts_LongitudinalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_LongitudinalAccelerationValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ManeuverAssistList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ManeuverAssistList.h new file mode 100644 index 000000000..56ff2a1ee --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ManeuverAssistList_H_ +#define _spatem_ts_ManeuverAssistList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_ConnectionManeuverAssist; + +/* spatem_ts_ManeuverAssistList */ +typedef struct spatem_ts_ManeuverAssistList { + A_SEQUENCE_OF(struct spatem_ts_ConnectionManeuverAssist) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_ManeuverAssistList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ManeuverAssistList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_ManeuverAssistList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_ManeuverAssistList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_ManeuverAssistList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_ConnectionManeuverAssist.h" + +#endif /* _spatem_ts_ManeuverAssistList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ManufacturerIdentifier.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ManufacturerIdentifier.h new file mode 100644 index 000000000..bc36eacd4 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ManufacturerIdentifier_H_ +#define _spatem_ts_ManufacturerIdentifier_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_ManufacturerIdentifier */ +typedef long spatem_ts_ManufacturerIdentifier_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_ManufacturerIdentifier_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ManufacturerIdentifier; +asn_struct_free_f spatem_ts_ManufacturerIdentifier_free; +asn_struct_print_f spatem_ts_ManufacturerIdentifier_print; +asn_constr_check_f spatem_ts_ManufacturerIdentifier_constraint; +per_type_decoder_f spatem_ts_ManufacturerIdentifier_decode_uper; +per_type_encoder_f spatem_ts_ManufacturerIdentifier_encode_uper; +per_type_decoder_f spatem_ts_ManufacturerIdentifier_decode_aper; +per_type_encoder_f spatem_ts_ManufacturerIdentifier_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_ManufacturerIdentifier_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_MapData-addGrpC.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_MapData-addGrpC.h new file mode 100644 index 000000000..fa700f44c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_MapData_addGrpC_H_ +#define _spatem_ts_MapData_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_SignalHeadLocationList; + +/* spatem_ts_MapData-addGrpC */ +typedef struct spatem_ts_MapData_addGrpC { + struct spatem_ts_SignalHeadLocationList *signalHeadLocations; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_MapData_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_MapData_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_MapData_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_MapData_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalHeadLocationList.h" + +#endif /* _spatem_ts_MapData_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_MapData.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_MapData.h new file mode 100644 index 000000000..ac4e0245d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_MapData_H_ +#define _spatem_ts_MapData_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_MinuteOfTheYear.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_MsgCount.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_LayerType.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_LayerID.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_IntersectionGeometryList; +struct spatem_ts_RoadSegmentList; +struct spatem_ts_DataParameters; +struct spatem_ts_RestrictionClassList; +struct spatem_ts_Reg_MapData; + +/* spatem_ts_MapData */ +typedef struct spatem_ts_MapData { + spatem_ts_MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + spatem_ts_MsgCount_t msgIssueRevision; + spatem_ts_LayerType_t *layerType; /* OPTIONAL */ + spatem_ts_LayerID_t *layerID; /* OPTIONAL */ + struct spatem_ts_IntersectionGeometryList *intersections; /* OPTIONAL */ + struct spatem_ts_RoadSegmentList *roadSegments; /* OPTIONAL */ + struct spatem_ts_DataParameters *dataParameters; /* OPTIONAL */ + struct spatem_ts_RestrictionClassList *restrictionList; /* OPTIONAL */ + struct spatem_ts_MapData__regional { + A_SEQUENCE_OF(struct spatem_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; +} spatem_ts_MapData_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_MapData; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionGeometryList.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RoadSegmentList.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_DataParameters.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RestrictionClassList.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_MapData_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_MergeDivergeNodeAngle.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_MergeDivergeNodeAngle.h new file mode 100644 index 000000000..7eb8a27d1 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_MergeDivergeNodeAngle_H_ +#define _spatem_ts_MergeDivergeNodeAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_MergeDivergeNodeAngle */ +typedef long spatem_ts_MergeDivergeNodeAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_MergeDivergeNodeAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_MergeDivergeNodeAngle; +asn_struct_free_f spatem_ts_MergeDivergeNodeAngle_free; +asn_struct_print_f spatem_ts_MergeDivergeNodeAngle_print; +asn_constr_check_f spatem_ts_MergeDivergeNodeAngle_constraint; +per_type_decoder_f spatem_ts_MergeDivergeNodeAngle_decode_uper; +per_type_encoder_f spatem_ts_MergeDivergeNodeAngle_encode_uper; +per_type_decoder_f spatem_ts_MergeDivergeNodeAngle_decode_aper; +per_type_encoder_f spatem_ts_MergeDivergeNodeAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_MergeDivergeNodeAngle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_MinuteOfTheYear.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_MinuteOfTheYear.h new file mode 100644 index 000000000..3e6fb8012 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_MinuteOfTheYear_H_ +#define _spatem_ts_MinuteOfTheYear_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_MinuteOfTheYear */ +typedef long spatem_ts_MinuteOfTheYear_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_MinuteOfTheYear_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_MinuteOfTheYear; +asn_struct_free_f spatem_ts_MinuteOfTheYear_free; +asn_struct_print_f spatem_ts_MinuteOfTheYear_print; +asn_constr_check_f spatem_ts_MinuteOfTheYear_constraint; +per_type_decoder_f spatem_ts_MinuteOfTheYear_decode_uper; +per_type_encoder_f spatem_ts_MinuteOfTheYear_encode_uper; +per_type_decoder_f spatem_ts_MinuteOfTheYear_decode_aper; +per_type_encoder_f spatem_ts_MinuteOfTheYear_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_MinuteOfTheYear_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_MovementEvent-addGrpC.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_MovementEvent-addGrpC.h new file mode 100644 index 000000000..18a17ba93 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_MovementEvent_addGrpC_H_ +#define _spatem_ts_MovementEvent_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_ExceptionalCondition.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_MovementEvent-addGrpC */ +typedef struct spatem_ts_MovementEvent_addGrpC { + spatem_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; +} spatem_ts_MovementEvent_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_MovementEvent_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_MovementEvent_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_MovementEvent_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_MovementEvent_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_MovementEvent.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_MovementEvent.h new file mode 100644 index 000000000..3b6a79aba --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_MovementEvent_H_ +#define _spatem_ts_MovementEvent_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_MovementPhaseState.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_TimeChangeDetails; +struct spatem_ts_AdvisorySpeedList; +struct spatem_ts_Reg_MovementEvent; + +/* spatem_ts_MovementEvent */ +typedef struct spatem_ts_MovementEvent { + spatem_ts_MovementPhaseState_t eventState; + struct spatem_ts_TimeChangeDetails *timing; /* OPTIONAL */ + struct spatem_ts_AdvisorySpeedList *speeds; /* OPTIONAL */ + struct spatem_ts_MovementEvent__regional { + A_SEQUENCE_OF(struct spatem_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; +} spatem_ts_MovementEvent_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_MovementEvent; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_MovementEvent_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_MovementEvent_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_TimeChangeDetails.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_AdvisorySpeedList.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_MovementEvent_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_MovementEventList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_MovementEventList.h new file mode 100644 index 000000000..ed2285344 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_MovementEventList_H_ +#define _spatem_ts_MovementEventList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_MovementEvent; + +/* spatem_ts_MovementEventList */ +typedef struct spatem_ts_MovementEventList { + A_SEQUENCE_OF(struct spatem_ts_MovementEvent) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_MovementEventList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_MovementEventList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_MovementEventList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_MovementEventList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_MovementEventList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_MovementEvent.h" + +#endif /* _spatem_ts_MovementEventList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_MovementList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_MovementList.h new file mode 100644 index 000000000..1362701ad --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_MovementList_H_ +#define _spatem_ts_MovementList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_MovementState; + +/* spatem_ts_MovementList */ +typedef struct spatem_ts_MovementList { + A_SEQUENCE_OF(struct spatem_ts_MovementState) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_MovementList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_MovementList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_MovementList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_MovementList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_MovementList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_MovementState.h" + +#endif /* _spatem_ts_MovementList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_MovementPhaseState.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_MovementPhaseState.h new file mode 100644 index 000000000..04d1e0df4 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_MovementPhaseState_H_ +#define _spatem_ts_MovementPhaseState_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_MovementPhaseState { + spatem_ts_MovementPhaseState_unavailable = 0, + spatem_ts_MovementPhaseState_dark = 1, + spatem_ts_MovementPhaseState_stop_Then_Proceed = 2, + spatem_ts_MovementPhaseState_stop_And_Remain = 3, + spatem_ts_MovementPhaseState_pre_Movement = 4, + spatem_ts_MovementPhaseState_permissive_Movement_Allowed = 5, + spatem_ts_MovementPhaseState_protected_Movement_Allowed = 6, + spatem_ts_MovementPhaseState_permissive_clearance = 7, + spatem_ts_MovementPhaseState_protected_clearance = 8, + spatem_ts_MovementPhaseState_caution_Conflicting_Traffic = 9 +} e_spatem_ts_MovementPhaseState; + +/* spatem_ts_MovementPhaseState */ +typedef long spatem_ts_MovementPhaseState_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_MovementPhaseState_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_MovementPhaseState; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_MovementPhaseState_specs_1; +asn_struct_free_f spatem_ts_MovementPhaseState_free; +asn_struct_print_f spatem_ts_MovementPhaseState_print; +asn_constr_check_f spatem_ts_MovementPhaseState_constraint; +per_type_decoder_f spatem_ts_MovementPhaseState_decode_uper; +per_type_encoder_f spatem_ts_MovementPhaseState_encode_uper; +per_type_decoder_f spatem_ts_MovementPhaseState_decode_aper; +per_type_encoder_f spatem_ts_MovementPhaseState_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_MovementPhaseState_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_MovementState.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_MovementState.h new file mode 100644 index 000000000..e8f6147cb --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_MovementState_H_ +#define _spatem_ts_MovementState_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_DescriptiveName.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalGroupID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_MovementEventList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_ManeuverAssistList; +struct spatem_ts_Reg_MovementState; + +/* spatem_ts_MovementState */ +typedef struct spatem_ts_MovementState { + spatem_ts_DescriptiveName_t *movementName; /* OPTIONAL */ + spatem_ts_SignalGroupID_t signalGroup; + spatem_ts_MovementEventList_t state_time_speed; + struct spatem_ts_ManeuverAssistList *maneuverAssistList; /* OPTIONAL */ + struct spatem_ts_MovementState__regional { + A_SEQUENCE_OF(struct spatem_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; +} spatem_ts_MovementState_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_MovementState; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_MovementState_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_MovementState_1[5]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_ManeuverAssistList.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_MovementState_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_MsgCount.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_MsgCount.h new file mode 100644 index 000000000..cad7c2428 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_MsgCount_H_ +#define _spatem_ts_MsgCount_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_MsgCount */ +typedef long spatem_ts_MsgCount_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_MsgCount_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_MsgCount; +asn_struct_free_f spatem_ts_MsgCount_free; +asn_struct_print_f spatem_ts_MsgCount_print; +asn_constr_check_f spatem_ts_MsgCount_constraint; +per_type_decoder_f spatem_ts_MsgCount_decode_uper; +per_type_encoder_f spatem_ts_MsgCount_encode_uper; +per_type_decoder_f spatem_ts_MsgCount_decode_aper; +per_type_encoder_f spatem_ts_MsgCount_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_MsgCount_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Node-LLmD-64b.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Node-LLmD-64b.h new file mode 100644 index 000000000..c24af9396 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Node_LLmD_64b_H_ +#define _spatem_ts_Node_LLmD_64b_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_Longitude.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Latitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_Node-LLmD-64b */ +typedef struct spatem_ts_Node_LLmD_64b { + spatem_ts_Longitude_t lon; + spatem_ts_Latitude_t lat; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_Node_LLmD_64b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Node_LLmD_64b; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Node_LLmD_64b_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Node_LLmD_64b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Node_LLmD_64b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Node-XY-20b.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Node-XY-20b.h new file mode 100644 index 000000000..ac271854b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Node_XY_20b_H_ +#define _spatem_ts_Node_XY_20b_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_Offset-B10.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_Node-XY-20b */ +typedef struct spatem_ts_Node_XY_20b { + spatem_ts_Offset_B10_t x; + spatem_ts_Offset_B10_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_Node_XY_20b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Node_XY_20b; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Node_XY_20b_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Node_XY_20b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Node_XY_20b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Node-XY-22b.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Node-XY-22b.h new file mode 100644 index 000000000..2e85979a5 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Node_XY_22b_H_ +#define _spatem_ts_Node_XY_22b_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_Offset-B11.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_Node-XY-22b */ +typedef struct spatem_ts_Node_XY_22b { + spatem_ts_Offset_B11_t x; + spatem_ts_Offset_B11_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_Node_XY_22b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Node_XY_22b; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Node_XY_22b_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Node_XY_22b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Node_XY_22b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Node-XY-24b.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Node-XY-24b.h new file mode 100644 index 000000000..19d8c2162 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Node_XY_24b_H_ +#define _spatem_ts_Node_XY_24b_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_Offset-B12.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_Node-XY-24b */ +typedef struct spatem_ts_Node_XY_24b { + spatem_ts_Offset_B12_t x; + spatem_ts_Offset_B12_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_Node_XY_24b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Node_XY_24b; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Node_XY_24b_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Node_XY_24b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Node_XY_24b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Node-XY-26b.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Node-XY-26b.h new file mode 100644 index 000000000..e7b96e70c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Node_XY_26b_H_ +#define _spatem_ts_Node_XY_26b_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_Offset-B13.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_Node-XY-26b */ +typedef struct spatem_ts_Node_XY_26b { + spatem_ts_Offset_B13_t x; + spatem_ts_Offset_B13_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_Node_XY_26b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Node_XY_26b; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Node_XY_26b_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Node_XY_26b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Node_XY_26b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Node-XY-28b.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Node-XY-28b.h new file mode 100644 index 000000000..4cdc63f56 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Node_XY_28b_H_ +#define _spatem_ts_Node_XY_28b_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_Offset-B14.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_Node-XY-28b */ +typedef struct spatem_ts_Node_XY_28b { + spatem_ts_Offset_B14_t x; + spatem_ts_Offset_B14_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_Node_XY_28b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Node_XY_28b; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Node_XY_28b_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Node_XY_28b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Node_XY_28b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Node-XY-32b.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Node-XY-32b.h new file mode 100644 index 000000000..a7b681417 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Node_XY_32b_H_ +#define _spatem_ts_Node_XY_32b_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_Offset-B16.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_Node-XY-32b */ +typedef struct spatem_ts_Node_XY_32b { + spatem_ts_Offset_B16_t x; + spatem_ts_Offset_B16_t y; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_Node_XY_32b_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Node_XY_32b; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Node_XY_32b_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Node_XY_32b_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Node_XY_32b_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Node.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Node.h new file mode 100644 index 000000000..ed010b916 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Node_H_ +#define _spatem_ts_Node_H_ + + +#include + +/* Including external dependencies */ +#include +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneConnectionID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_Node */ +typedef struct spatem_ts_Node { + long id; + spatem_ts_LaneID_t *lane; /* OPTIONAL */ + spatem_ts_LaneConnectionID_t *connectionID; /* OPTIONAL */ + spatem_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; +} spatem_ts_Node_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Node; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Node_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Node_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Node_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_NodeAttributeSet-addGrpC.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_NodeAttributeSet-addGrpC.h new file mode 100644 index 000000000..aa6f8ffb6 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_NodeAttributeSet_addGrpC_H_ +#define _spatem_ts_NodeAttributeSet_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_PtvRequestType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_NodeLink; +struct spatem_ts_Node; + +/* spatem_ts_NodeAttributeSet-addGrpC */ +typedef struct spatem_ts_NodeAttributeSet_addGrpC { + spatem_ts_PtvRequestType_t *ptvRequest; /* OPTIONAL */ + struct spatem_ts_NodeLink *nodeLink; /* OPTIONAL */ + struct spatem_ts_Node *node; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_NodeAttributeSet_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_NodeAttributeSet_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_NodeAttributeSet_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_NodeAttributeSet_addGrpC_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_NodeLink.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Node.h" + +#endif /* _spatem_ts_NodeAttributeSet_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_NodeAttributeSetXY.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_NodeAttributeSetXY.h new file mode 100644 index 000000000..a155d1a3f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_NodeAttributeSetXY_H_ +#define _spatem_ts_NodeAttributeSetXY_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_Offset-B10.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_NodeAttributeXYList; +struct spatem_ts_SegmentAttributeXYList; +struct spatem_ts_LaneDataAttributeList; +struct spatem_ts_Reg_NodeAttributeSetXY; + +/* spatem_ts_NodeAttributeSetXY */ +typedef struct spatem_ts_NodeAttributeSetXY { + struct spatem_ts_NodeAttributeXYList *localNode; /* OPTIONAL */ + struct spatem_ts_SegmentAttributeXYList *disabled; /* OPTIONAL */ + struct spatem_ts_SegmentAttributeXYList *enabled; /* OPTIONAL */ + struct spatem_ts_LaneDataAttributeList *data; /* OPTIONAL */ + spatem_ts_Offset_B10_t *dWidth; /* OPTIONAL */ + spatem_ts_Offset_B10_t *dElevation; /* OPTIONAL */ + struct spatem_ts_NodeAttributeSetXY__regional { + A_SEQUENCE_OF(struct spatem_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; +} spatem_ts_NodeAttributeSetXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_NodeAttributeSetXY; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_NodeAttributeSetXY_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_NodeAttributeSetXY_1[7]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_NodeAttributeXYList.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_SegmentAttributeXYList.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneDataAttributeList.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_NodeAttributeSetXY_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_NodeAttributeXY.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_NodeAttributeXY.h new file mode 100644 index 000000000..9901e8374 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_NodeAttributeXY_H_ +#define _spatem_ts_NodeAttributeXY_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_NodeAttributeXY { + spatem_ts_NodeAttributeXY_reserved = 0, + spatem_ts_NodeAttributeXY_stopLine = 1, + spatem_ts_NodeAttributeXY_roundedCapStyleA = 2, + spatem_ts_NodeAttributeXY_roundedCapStyleB = 3, + spatem_ts_NodeAttributeXY_mergePoint = 4, + spatem_ts_NodeAttributeXY_divergePoint = 5, + spatem_ts_NodeAttributeXY_downstreamStopLine = 6, + spatem_ts_NodeAttributeXY_downstreamStartNode = 7, + spatem_ts_NodeAttributeXY_closedToTraffic = 8, + spatem_ts_NodeAttributeXY_safeIsland = 9, + spatem_ts_NodeAttributeXY_curbPresentAtStepOff = 10, + spatem_ts_NodeAttributeXY_hydrantPresent = 11 + /* + * Enumeration is extensible + */ +} e_spatem_ts_NodeAttributeXY; + +/* spatem_ts_NodeAttributeXY */ +typedef long spatem_ts_NodeAttributeXY_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_NodeAttributeXY_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_NodeAttributeXY; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_NodeAttributeXY_specs_1; +asn_struct_free_f spatem_ts_NodeAttributeXY_free; +asn_struct_print_f spatem_ts_NodeAttributeXY_print; +asn_constr_check_f spatem_ts_NodeAttributeXY_constraint; +per_type_decoder_f spatem_ts_NodeAttributeXY_decode_uper; +per_type_encoder_f spatem_ts_NodeAttributeXY_encode_uper; +per_type_decoder_f spatem_ts_NodeAttributeXY_decode_aper; +per_type_encoder_f spatem_ts_NodeAttributeXY_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_NodeAttributeXY_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_NodeAttributeXYList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_NodeAttributeXYList.h new file mode 100644 index 000000000..065a60de0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_NodeAttributeXYList_H_ +#define _spatem_ts_NodeAttributeXYList_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_NodeAttributeXY.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_NodeAttributeXYList */ +typedef struct spatem_ts_NodeAttributeXYList { + A_SEQUENCE_OF(spatem_ts_NodeAttributeXY_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_NodeAttributeXYList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_NodeAttributeXYList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_NodeAttributeXYList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_NodeAttributeXYList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_NodeAttributeXYList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_NodeAttributeXYList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_NodeLink.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_NodeLink.h new file mode 100644 index 000000000..641dc492a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_NodeLink_H_ +#define _spatem_ts_NodeLink_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_Node; + +/* spatem_ts_NodeLink */ +typedef struct spatem_ts_NodeLink { + A_SEQUENCE_OF(struct spatem_ts_Node) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_NodeLink_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_NodeLink; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_NodeLink_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_NodeLink_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_NodeLink_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_Node.h" + +#endif /* _spatem_ts_NodeLink_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_NodeListXY.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_NodeListXY.h new file mode 100644 index 000000000..0c47257f4 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_NodeListXY_H_ +#define _spatem_ts_NodeListXY_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_NodeSetXY.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_ComputedLane.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_NodeListXY_PR { + spatem_ts_NodeListXY_PR_NOTHING, /* No components present */ + spatem_ts_NodeListXY_PR_nodes, + spatem_ts_NodeListXY_PR_computed + /* Extensions may appear below */ + +} spatem_ts_NodeListXY_PR; + +/* spatem_ts_NodeListXY */ +typedef struct spatem_ts_NodeListXY { + spatem_ts_NodeListXY_PR present; + union spatem_ts_NodeListXY_u { + spatem_ts_NodeSetXY_t nodes; + spatem_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; +} spatem_ts_NodeListXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_NodeListXY; +extern asn_CHOICE_specifics_t asn_SPC_spatem_ts_NodeListXY_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_NodeListXY_1[2]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_NodeListXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_NodeListXY_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_NodeOffsetPointXY.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_NodeOffsetPointXY.h new file mode 100644 index 000000000..3e7db2248 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_Node-XY-20b.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Node-XY-22b.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Node-XY-24b.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Node-XY-26b.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Node-XY-28b.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Node-XY-32b.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Node-LLmD-64b.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" +#include +#ifndef _spatem_ts_NodeOffsetPointXY_H_ +#define _spatem_ts_NodeOffsetPointXY_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_NodeOffsetPointXY_PR { + spatem_ts_NodeOffsetPointXY_PR_NOTHING, /* No components present */ + spatem_ts_NodeOffsetPointXY_PR_node_XY1, + spatem_ts_NodeOffsetPointXY_PR_node_XY2, + spatem_ts_NodeOffsetPointXY_PR_node_XY3, + spatem_ts_NodeOffsetPointXY_PR_node_XY4, + spatem_ts_NodeOffsetPointXY_PR_node_XY5, + spatem_ts_NodeOffsetPointXY_PR_node_XY6, + spatem_ts_NodeOffsetPointXY_PR_node_LatLon, + spatem_ts_NodeOffsetPointXY_PR_regional +} spatem_ts_NodeOffsetPointXY_PR; + +/* spatem_ts_NodeOffsetPointXY */ +typedef struct spatem_ts_NodeOffsetPointXY { + spatem_ts_NodeOffsetPointXY_PR present; + union spatem_ts_NodeOffsetPointXY_u { + spatem_ts_Node_XY_20b_t node_XY1; + spatem_ts_Node_XY_22b_t node_XY2; + spatem_ts_Node_XY_24b_t node_XY3; + spatem_ts_Node_XY_26b_t node_XY4; + spatem_ts_Node_XY_28b_t node_XY5; + spatem_ts_Node_XY_32b_t node_XY6; + spatem_ts_Node_LLmD_64b_t node_LatLon; + spatem_ts_Reg_NodeOffsetPointXY_t regional; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_NodeOffsetPointXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_NodeOffsetPointXY; +extern asn_CHOICE_specifics_t asn_SPC_spatem_ts_NodeOffsetPointXY_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_NodeOffsetPointXY_1[8]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_NodeOffsetPointXY_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_NodeOffsetPointXY_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_NodeSetXY.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_NodeSetXY.h new file mode 100644 index 000000000..9b22790dd --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_NodeSetXY_H_ +#define _spatem_ts_NodeSetXY_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_NodeXY; + +/* spatem_ts_NodeSetXY */ +typedef struct spatem_ts_NodeSetXY { + A_SEQUENCE_OF(struct spatem_ts_NodeXY) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_NodeSetXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_NodeSetXY; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_NodeSetXY_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_NodeSetXY_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_NodeSetXY_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_NodeXY.h" + +#endif /* _spatem_ts_NodeSetXY_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_NodeXY.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_NodeXY.h new file mode 100644 index 000000000..e0096b851 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_NodeXY_H_ +#define _spatem_ts_NodeXY_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_NodeOffsetPointXY.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_NodeAttributeSetXY; + +/* spatem_ts_NodeXY */ +typedef struct spatem_ts_NodeXY { + spatem_ts_NodeOffsetPointXY_t delta; + struct spatem_ts_NodeAttributeSetXY *attributes; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_NodeXY_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_NodeXY; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_NodeXY_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_NodeXY_1[2]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_NodeAttributeSetXY.h" + +#endif /* _spatem_ts_NodeXY_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_NumberOfOccupants.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_NumberOfOccupants.h new file mode 100644 index 000000000..a105240a2 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_NumberOfOccupants_H_ +#define _spatem_ts_NumberOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_NumberOfOccupants { + spatem_ts_NumberOfOccupants_oneOccupant = 1, + spatem_ts_NumberOfOccupants_unavailable = 127 +} e_spatem_ts_NumberOfOccupants; + +/* spatem_ts_NumberOfOccupants */ +typedef long spatem_ts_NumberOfOccupants_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_NumberOfOccupants; +asn_struct_free_f spatem_ts_NumberOfOccupants_free; +asn_struct_print_f spatem_ts_NumberOfOccupants_print; +asn_constr_check_f spatem_ts_NumberOfOccupants_constraint; +per_type_decoder_f spatem_ts_NumberOfOccupants_decode_uper; +per_type_encoder_f spatem_ts_NumberOfOccupants_encode_uper; +per_type_decoder_f spatem_ts_NumberOfOccupants_decode_aper; +per_type_encoder_f spatem_ts_NumberOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_NumberOfOccupants_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Offset-B09.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Offset-B09.h new file mode 100644 index 000000000..78a6f20dd --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Offset_B09_H_ +#define _spatem_ts_Offset_B09_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_Offset-B09 */ +typedef long spatem_ts_Offset_B09_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_Offset_B09_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Offset_B09; +asn_struct_free_f spatem_ts_Offset_B09_free; +asn_struct_print_f spatem_ts_Offset_B09_print; +asn_constr_check_f spatem_ts_Offset_B09_constraint; +per_type_decoder_f spatem_ts_Offset_B09_decode_uper; +per_type_encoder_f spatem_ts_Offset_B09_encode_uper; +per_type_decoder_f spatem_ts_Offset_B09_decode_aper; +per_type_encoder_f spatem_ts_Offset_B09_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Offset_B09_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Offset-B10.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Offset-B10.h new file mode 100644 index 000000000..cf2e2aca9 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Offset_B10_H_ +#define _spatem_ts_Offset_B10_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_Offset-B10 */ +typedef long spatem_ts_Offset_B10_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_Offset_B10_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Offset_B10; +asn_struct_free_f spatem_ts_Offset_B10_free; +asn_struct_print_f spatem_ts_Offset_B10_print; +asn_constr_check_f spatem_ts_Offset_B10_constraint; +per_type_decoder_f spatem_ts_Offset_B10_decode_uper; +per_type_encoder_f spatem_ts_Offset_B10_encode_uper; +per_type_decoder_f spatem_ts_Offset_B10_decode_aper; +per_type_encoder_f spatem_ts_Offset_B10_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Offset_B10_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Offset-B11.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Offset-B11.h new file mode 100644 index 000000000..4b8b57f64 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Offset_B11_H_ +#define _spatem_ts_Offset_B11_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_Offset-B11 */ +typedef long spatem_ts_Offset_B11_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_Offset_B11_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Offset_B11; +asn_struct_free_f spatem_ts_Offset_B11_free; +asn_struct_print_f spatem_ts_Offset_B11_print; +asn_constr_check_f spatem_ts_Offset_B11_constraint; +per_type_decoder_f spatem_ts_Offset_B11_decode_uper; +per_type_encoder_f spatem_ts_Offset_B11_encode_uper; +per_type_decoder_f spatem_ts_Offset_B11_decode_aper; +per_type_encoder_f spatem_ts_Offset_B11_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Offset_B11_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Offset-B12.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Offset-B12.h new file mode 100644 index 000000000..806ebfb6c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Offset_B12_H_ +#define _spatem_ts_Offset_B12_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_Offset-B12 */ +typedef long spatem_ts_Offset_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_Offset_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Offset_B12; +asn_struct_free_f spatem_ts_Offset_B12_free; +asn_struct_print_f spatem_ts_Offset_B12_print; +asn_constr_check_f spatem_ts_Offset_B12_constraint; +per_type_decoder_f spatem_ts_Offset_B12_decode_uper; +per_type_encoder_f spatem_ts_Offset_B12_encode_uper; +per_type_decoder_f spatem_ts_Offset_B12_decode_aper; +per_type_encoder_f spatem_ts_Offset_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Offset_B12_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Offset-B13.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Offset-B13.h new file mode 100644 index 000000000..85a240c2f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Offset_B13_H_ +#define _spatem_ts_Offset_B13_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_Offset-B13 */ +typedef long spatem_ts_Offset_B13_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_Offset_B13_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Offset_B13; +asn_struct_free_f spatem_ts_Offset_B13_free; +asn_struct_print_f spatem_ts_Offset_B13_print; +asn_constr_check_f spatem_ts_Offset_B13_constraint; +per_type_decoder_f spatem_ts_Offset_B13_decode_uper; +per_type_encoder_f spatem_ts_Offset_B13_encode_uper; +per_type_decoder_f spatem_ts_Offset_B13_decode_aper; +per_type_encoder_f spatem_ts_Offset_B13_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Offset_B13_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Offset-B14.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Offset-B14.h new file mode 100644 index 000000000..6b1c49ed3 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Offset_B14_H_ +#define _spatem_ts_Offset_B14_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_Offset-B14 */ +typedef long spatem_ts_Offset_B14_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_Offset_B14_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Offset_B14; +asn_struct_free_f spatem_ts_Offset_B14_free; +asn_struct_print_f spatem_ts_Offset_B14_print; +asn_constr_check_f spatem_ts_Offset_B14_constraint; +per_type_decoder_f spatem_ts_Offset_B14_decode_uper; +per_type_encoder_f spatem_ts_Offset_B14_encode_uper; +per_type_decoder_f spatem_ts_Offset_B14_decode_aper; +per_type_encoder_f spatem_ts_Offset_B14_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Offset_B14_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Offset-B16.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Offset-B16.h new file mode 100644 index 000000000..246dc1346 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Offset_B16_H_ +#define _spatem_ts_Offset_B16_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_Offset-B16 */ +typedef long spatem_ts_Offset_B16_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_Offset_B16_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Offset_B16; +asn_struct_free_f spatem_ts_Offset_B16_free; +asn_struct_print_f spatem_ts_Offset_B16_print; +asn_constr_check_f spatem_ts_Offset_B16_constraint; +per_type_decoder_f spatem_ts_Offset_B16_decode_uper; +per_type_encoder_f spatem_ts_Offset_B16_encode_uper; +per_type_decoder_f spatem_ts_Offset_B16_decode_aper; +per_type_encoder_f spatem_ts_Offset_B16_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Offset_B16_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_OpeningDaysHours.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_OpeningDaysHours.h new file mode 100644 index 000000000..7fdf40c12 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_OpeningDaysHours_H_ +#define _spatem_ts_OpeningDaysHours_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_OpeningDaysHours */ +typedef UTF8String_t spatem_ts_OpeningDaysHours_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_OpeningDaysHours; +asn_struct_free_f spatem_ts_OpeningDaysHours_free; +asn_struct_print_f spatem_ts_OpeningDaysHours_print; +asn_constr_check_f spatem_ts_OpeningDaysHours_constraint; +per_type_decoder_f spatem_ts_OpeningDaysHours_decode_uper; +per_type_encoder_f spatem_ts_OpeningDaysHours_encode_uper; +per_type_decoder_f spatem_ts_OpeningDaysHours_decode_aper; +per_type_encoder_f spatem_ts_OpeningDaysHours_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_OpeningDaysHours_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_OverlayLaneList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_OverlayLaneList.h new file mode 100644 index 000000000..4032f06db --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_OverlayLaneList_H_ +#define _spatem_ts_OverlayLaneList_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneID.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_OverlayLaneList */ +typedef struct spatem_ts_OverlayLaneList { + A_SEQUENCE_OF(spatem_ts_LaneID_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_OverlayLaneList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_OverlayLaneList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_OverlayLaneList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_OverlayLaneList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_OverlayLaneList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_OverlayLaneList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PathDeltaTime.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PathDeltaTime.h new file mode 100644 index 000000000..06bbefb91 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PathDeltaTime_H_ +#define _spatem_ts_PathDeltaTime_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_PathDeltaTime { + spatem_ts_PathDeltaTime_tenMilliSecondsInPast = 1 +} e_spatem_ts_PathDeltaTime; + +/* spatem_ts_PathDeltaTime */ +typedef long spatem_ts_PathDeltaTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_PathDeltaTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PathDeltaTime; +asn_struct_free_f spatem_ts_PathDeltaTime_free; +asn_struct_print_f spatem_ts_PathDeltaTime_print; +asn_constr_check_f spatem_ts_PathDeltaTime_constraint; +per_type_decoder_f spatem_ts_PathDeltaTime_decode_uper; +per_type_encoder_f spatem_ts_PathDeltaTime_encode_uper; +per_type_decoder_f spatem_ts_PathDeltaTime_decode_aper; +per_type_encoder_f spatem_ts_PathDeltaTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_PathDeltaTime_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PathHistory.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PathHistory.h new file mode 100644 index 000000000..a6ca56737 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PathHistory_H_ +#define _spatem_ts_PathHistory_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_PathPoint; + +/* spatem_ts_PathHistory */ +typedef struct spatem_ts_PathHistory { + A_SEQUENCE_OF(struct spatem_ts_PathPoint) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_PathHistory_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PathHistory; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_PathHistory_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_PathHistory_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_PathHistory_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_PathPoint.h" + +#endif /* _spatem_ts_PathHistory_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PathPoint.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PathPoint.h new file mode 100644 index 000000000..586672386 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PathPoint_H_ +#define _spatem_ts_PathPoint_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_DeltaReferencePosition.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_PathDeltaTime.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_PathPoint */ +typedef struct spatem_ts_PathPoint { + spatem_ts_DeltaReferencePosition_t pathPosition; + spatem_ts_PathDeltaTime_t *pathDeltaTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_PathPoint_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PathPoint; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_PathPoint_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_PathPoint_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_PathPoint_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PedestrianBicycleDetect.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PedestrianBicycleDetect.h new file mode 100644 index 000000000..74677bf89 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PedestrianBicycleDetect_H_ +#define _spatem_ts_PedestrianBicycleDetect_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_PedestrianBicycleDetect */ +typedef BOOLEAN_t spatem_ts_PedestrianBicycleDetect_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PedestrianBicycleDetect; +asn_struct_free_f spatem_ts_PedestrianBicycleDetect_free; +asn_struct_print_f spatem_ts_PedestrianBicycleDetect_print; +asn_constr_check_f spatem_ts_PedestrianBicycleDetect_constraint; +per_type_decoder_f spatem_ts_PedestrianBicycleDetect_decode_uper; +per_type_encoder_f spatem_ts_PedestrianBicycleDetect_encode_uper; +per_type_decoder_f spatem_ts_PedestrianBicycleDetect_decode_aper; +per_type_encoder_f spatem_ts_PedestrianBicycleDetect_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_PedestrianBicycleDetect_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PerformanceClass.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PerformanceClass.h new file mode 100644 index 000000000..f2e98b853 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PerformanceClass_H_ +#define _spatem_ts_PerformanceClass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_PerformanceClass { + spatem_ts_PerformanceClass_unavailable = 0, + spatem_ts_PerformanceClass_performanceClassA = 1, + spatem_ts_PerformanceClass_performanceClassB = 2 +} e_spatem_ts_PerformanceClass; + +/* spatem_ts_PerformanceClass */ +typedef long spatem_ts_PerformanceClass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PerformanceClass; +asn_struct_free_f spatem_ts_PerformanceClass_free; +asn_struct_print_f spatem_ts_PerformanceClass_print; +asn_constr_check_f spatem_ts_PerformanceClass_constraint; +per_type_decoder_f spatem_ts_PerformanceClass_decode_uper; +per_type_encoder_f spatem_ts_PerformanceClass_encode_uper; +per_type_decoder_f spatem_ts_PerformanceClass_decode_aper; +per_type_encoder_f spatem_ts_PerformanceClass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_PerformanceClass_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PhoneNumber.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PhoneNumber.h new file mode 100644 index 000000000..f63d2790f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PhoneNumber_H_ +#define _spatem_ts_PhoneNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_PhoneNumber */ +typedef NumericString_t spatem_ts_PhoneNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_PhoneNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PhoneNumber; +asn_struct_free_f spatem_ts_PhoneNumber_free; +asn_struct_print_f spatem_ts_PhoneNumber_print; +asn_constr_check_f spatem_ts_PhoneNumber_constraint; +per_type_decoder_f spatem_ts_PhoneNumber_decode_uper; +per_type_encoder_f spatem_ts_PhoneNumber_encode_uper; +per_type_decoder_f spatem_ts_PhoneNumber_decode_aper; +per_type_encoder_f spatem_ts_PhoneNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_PhoneNumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PosCentMass.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PosCentMass.h new file mode 100644 index 000000000..183c8624b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PosCentMass_H_ +#define _spatem_ts_PosCentMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_PosCentMass { + spatem_ts_PosCentMass_tenCentimeters = 1, + spatem_ts_PosCentMass_unavailable = 63 +} e_spatem_ts_PosCentMass; + +/* spatem_ts_PosCentMass */ +typedef long spatem_ts_PosCentMass_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PosCentMass; +asn_struct_free_f spatem_ts_PosCentMass_free; +asn_struct_print_f spatem_ts_PosCentMass_print; +asn_constr_check_f spatem_ts_PosCentMass_constraint; +per_type_decoder_f spatem_ts_PosCentMass_decode_uper; +per_type_encoder_f spatem_ts_PosCentMass_encode_uper; +per_type_decoder_f spatem_ts_PosCentMass_decode_aper; +per_type_encoder_f spatem_ts_PosCentMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_PosCentMass_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PosConfidenceEllipse.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PosConfidenceEllipse.h new file mode 100644 index 000000000..3206c549e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PosConfidenceEllipse_H_ +#define _spatem_ts_PosConfidenceEllipse_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_SemiAxisLength.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_HeadingValue.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_PosConfidenceEllipse */ +typedef struct spatem_ts_PosConfidenceEllipse { + spatem_ts_SemiAxisLength_t semiMajorConfidence; + spatem_ts_SemiAxisLength_t semiMinorConfidence; + spatem_ts_HeadingValue_t semiMajorOrientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_PosConfidenceEllipse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PosConfidenceEllipse; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_PosConfidenceEllipse_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_PosConfidenceEllipse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_PosConfidenceEllipse_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PosFrontAx.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PosFrontAx.h new file mode 100644 index 000000000..c20bd54a3 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PosFrontAx_H_ +#define _spatem_ts_PosFrontAx_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_PosFrontAx { + spatem_ts_PosFrontAx_tenCentimeters = 1, + spatem_ts_PosFrontAx_unavailable = 20 +} e_spatem_ts_PosFrontAx; + +/* spatem_ts_PosFrontAx */ +typedef long spatem_ts_PosFrontAx_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PosFrontAx; +asn_struct_free_f spatem_ts_PosFrontAx_free; +asn_struct_print_f spatem_ts_PosFrontAx_print; +asn_constr_check_f spatem_ts_PosFrontAx_constraint; +per_type_decoder_f spatem_ts_PosFrontAx_decode_uper; +per_type_encoder_f spatem_ts_PosFrontAx_encode_uper; +per_type_decoder_f spatem_ts_PosFrontAx_decode_aper; +per_type_encoder_f spatem_ts_PosFrontAx_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_PosFrontAx_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PosLonCarr.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PosLonCarr.h new file mode 100644 index 000000000..7a5a81fba --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PosLonCarr_H_ +#define _spatem_ts_PosLonCarr_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_PosLonCarr { + spatem_ts_PosLonCarr_oneCentimeter = 1, + spatem_ts_PosLonCarr_unavailable = 127 +} e_spatem_ts_PosLonCarr; + +/* spatem_ts_PosLonCarr */ +typedef long spatem_ts_PosLonCarr_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PosLonCarr; +asn_struct_free_f spatem_ts_PosLonCarr_free; +asn_struct_print_f spatem_ts_PosLonCarr_print; +asn_constr_check_f spatem_ts_PosLonCarr_constraint; +per_type_decoder_f spatem_ts_PosLonCarr_decode_uper; +per_type_encoder_f spatem_ts_PosLonCarr_encode_uper; +per_type_decoder_f spatem_ts_PosLonCarr_decode_aper; +per_type_encoder_f spatem_ts_PosLonCarr_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_PosLonCarr_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PosPillar.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PosPillar.h new file mode 100644 index 000000000..6943855f3 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PosPillar_H_ +#define _spatem_ts_PosPillar_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_PosPillar { + spatem_ts_PosPillar_tenCentimeters = 1, + spatem_ts_PosPillar_unavailable = 30 +} e_spatem_ts_PosPillar; + +/* spatem_ts_PosPillar */ +typedef long spatem_ts_PosPillar_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_PosPillar_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PosPillar; +asn_struct_free_f spatem_ts_PosPillar_free; +asn_struct_print_f spatem_ts_PosPillar_print; +asn_constr_check_f spatem_ts_PosPillar_constraint; +per_type_decoder_f spatem_ts_PosPillar_decode_uper; +per_type_encoder_f spatem_ts_PosPillar_encode_uper; +per_type_decoder_f spatem_ts_PosPillar_decode_aper; +per_type_encoder_f spatem_ts_PosPillar_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_PosPillar_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Position3D-addGrpC.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Position3D-addGrpC.h new file mode 100644 index 000000000..703039090 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Position3D_addGrpC_H_ +#define _spatem_ts_Position3D_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_Position3D-addGrpC */ +typedef struct spatem_ts_Position3D_addGrpC { + spatem_ts_Altitude_t altitude; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_Position3D_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Position3D_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Position3D_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Position3D_addGrpC_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Position3D_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Position3D.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Position3D.h new file mode 100644 index 000000000..59a111715 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Position3D_H_ +#define _spatem_ts_Position3D_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_Latitude.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Longitude.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Elevation.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_Reg_Position3D; + +/* spatem_ts_Position3D */ +typedef struct spatem_ts_Position3D { + spatem_ts_Latitude_t lat; + spatem_ts_Longitude_t Long; + spatem_ts_Elevation_t *elevation; /* OPTIONAL */ + struct spatem_ts_Position3D__regional { + A_SEQUENCE_OF(struct spatem_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; +} spatem_ts_Position3D_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Position3D; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Position3D_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Position3D_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_Position3D_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PositionConfidence.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PositionConfidence.h new file mode 100644 index 000000000..1da3a96c8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PositionConfidence_H_ +#define _spatem_ts_PositionConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_PositionConfidence { + spatem_ts_PositionConfidence_unavailable = 0, + spatem_ts_PositionConfidence_a500m = 1, + spatem_ts_PositionConfidence_a200m = 2, + spatem_ts_PositionConfidence_a100m = 3, + spatem_ts_PositionConfidence_a50m = 4, + spatem_ts_PositionConfidence_a20m = 5, + spatem_ts_PositionConfidence_a10m = 6, + spatem_ts_PositionConfidence_a5m = 7, + spatem_ts_PositionConfidence_a2m = 8, + spatem_ts_PositionConfidence_a1m = 9, + spatem_ts_PositionConfidence_a50cm = 10, + spatem_ts_PositionConfidence_a20cm = 11, + spatem_ts_PositionConfidence_a10cm = 12, + spatem_ts_PositionConfidence_a5cm = 13, + spatem_ts_PositionConfidence_a2cm = 14, + spatem_ts_PositionConfidence_a1cm = 15 +} e_spatem_ts_PositionConfidence; + +/* spatem_ts_PositionConfidence */ +typedef long spatem_ts_PositionConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_PositionConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PositionConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_PositionConfidence_specs_1; +asn_struct_free_f spatem_ts_PositionConfidence_free; +asn_struct_print_f spatem_ts_PositionConfidence_print; +asn_constr_check_f spatem_ts_PositionConfidence_constraint; +per_type_decoder_f spatem_ts_PositionConfidence_decode_uper; +per_type_encoder_f spatem_ts_PositionConfidence_encode_uper; +per_type_decoder_f spatem_ts_PositionConfidence_decode_aper; +per_type_encoder_f spatem_ts_PositionConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_PositionConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PositionConfidenceSet.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PositionConfidenceSet.h new file mode 100644 index 000000000..b2473a4a1 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PositionConfidenceSet_H_ +#define _spatem_ts_PositionConfidenceSet_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_PositionConfidence.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_ElevationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_PositionConfidenceSet */ +typedef struct spatem_ts_PositionConfidenceSet { + spatem_ts_PositionConfidence_t pos; + spatem_ts_ElevationConfidence_t elevation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_PositionConfidenceSet_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PositionConfidenceSet; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_PositionConfidenceSet_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_PositionConfidenceSet_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_PositionConfidenceSet_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PositionOfOccupants.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PositionOfOccupants.h new file mode 100644 index 000000000..88540fc30 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PositionOfOccupants_H_ +#define _spatem_ts_PositionOfOccupants_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_PositionOfOccupants { + spatem_ts_PositionOfOccupants_row1LeftOccupied = 0, + spatem_ts_PositionOfOccupants_row1RightOccupied = 1, + spatem_ts_PositionOfOccupants_row1MidOccupied = 2, + spatem_ts_PositionOfOccupants_row1NotDetectable = 3, + spatem_ts_PositionOfOccupants_row1NotPresent = 4, + spatem_ts_PositionOfOccupants_row2LeftOccupied = 5, + spatem_ts_PositionOfOccupants_row2RightOccupied = 6, + spatem_ts_PositionOfOccupants_row2MidOccupied = 7, + spatem_ts_PositionOfOccupants_row2NotDetectable = 8, + spatem_ts_PositionOfOccupants_row2NotPresent = 9, + spatem_ts_PositionOfOccupants_row3LeftOccupied = 10, + spatem_ts_PositionOfOccupants_row3RightOccupied = 11, + spatem_ts_PositionOfOccupants_row3MidOccupied = 12, + spatem_ts_PositionOfOccupants_row3NotDetectable = 13, + spatem_ts_PositionOfOccupants_row3NotPresent = 14, + spatem_ts_PositionOfOccupants_row4LeftOccupied = 15, + spatem_ts_PositionOfOccupants_row4RightOccupied = 16, + spatem_ts_PositionOfOccupants_row4MidOccupied = 17, + spatem_ts_PositionOfOccupants_row4NotDetectable = 18, + spatem_ts_PositionOfOccupants_row4NotPresent = 19 +} e_spatem_ts_PositionOfOccupants; + +/* spatem_ts_PositionOfOccupants */ +typedef BIT_STRING_t spatem_ts_PositionOfOccupants_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PositionOfOccupants; +asn_struct_free_f spatem_ts_PositionOfOccupants_free; +asn_struct_print_f spatem_ts_PositionOfOccupants_print; +asn_constr_check_f spatem_ts_PositionOfOccupants_constraint; +per_type_decoder_f spatem_ts_PositionOfOccupants_decode_uper; +per_type_encoder_f spatem_ts_PositionOfOccupants_encode_uper; +per_type_decoder_f spatem_ts_PositionOfOccupants_decode_aper; +per_type_encoder_f spatem_ts_PositionOfOccupants_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_PositionOfOccupants_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PositionOfPillars.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PositionOfPillars.h new file mode 100644 index 000000000..ce9cc793c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PositionOfPillars_H_ +#define _spatem_ts_PositionOfPillars_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_PosPillar.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_PositionOfPillars */ +typedef struct spatem_ts_PositionOfPillars { + A_SEQUENCE_OF(spatem_ts_PosPillar_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_PositionOfPillars_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PositionOfPillars; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_PositionOfPillars_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PositionalAccuracy.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PositionalAccuracy.h new file mode 100644 index 000000000..89326d638 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PositionalAccuracy_H_ +#define _spatem_ts_PositionalAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_SemiMajorAxisAccuracy.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_SemiMinorAxisAccuracy.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_SemiMajorAxisOrientation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_PositionalAccuracy */ +typedef struct spatem_ts_PositionalAccuracy { + spatem_ts_SemiMajorAxisAccuracy_t semiMajor; + spatem_ts_SemiMinorAxisAccuracy_t semiMinor; + spatem_ts_SemiMajorAxisOrientation_t orientation; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_PositionalAccuracy_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PositionalAccuracy; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_PositionalAccuracy_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_PositionalAccuracy_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_PositionalAccuracy_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PositioningSolutionType.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PositioningSolutionType.h new file mode 100644 index 000000000..1df95a5d4 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PositioningSolutionType_H_ +#define _spatem_ts_PositioningSolutionType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_PositioningSolutionType { + spatem_ts_PositioningSolutionType_noPositioningSolution = 0, + spatem_ts_PositioningSolutionType_sGNSS = 1, + spatem_ts_PositioningSolutionType_dGNSS = 2, + spatem_ts_PositioningSolutionType_sGNSSplusDR = 3, + spatem_ts_PositioningSolutionType_dGNSSplusDR = 4, + spatem_ts_PositioningSolutionType_dR = 5 + /* + * Enumeration is extensible + */ +} e_spatem_ts_PositioningSolutionType; + +/* spatem_ts_PositioningSolutionType */ +typedef long spatem_ts_PositioningSolutionType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PositioningSolutionType; +asn_struct_free_f spatem_ts_PositioningSolutionType_free; +asn_struct_print_f spatem_ts_PositioningSolutionType_print; +asn_constr_check_f spatem_ts_PositioningSolutionType_constraint; +per_type_decoder_f spatem_ts_PositioningSolutionType_decode_uper; +per_type_encoder_f spatem_ts_PositioningSolutionType_encode_uper; +per_type_decoder_f spatem_ts_PositioningSolutionType_decode_aper; +per_type_encoder_f spatem_ts_PositioningSolutionType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_PositioningSolutionType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PostCrashSubCauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PostCrashSubCauseCode.h new file mode 100644 index 000000000..a8e0a4ca6 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PostCrashSubCauseCode_H_ +#define _spatem_ts_PostCrashSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_PostCrashSubCauseCode { + spatem_ts_PostCrashSubCauseCode_unavailable = 0, + spatem_ts_PostCrashSubCauseCode_accidentWithoutECallTriggered = 1, + spatem_ts_PostCrashSubCauseCode_accidentWithECallManuallyTriggered = 2, + spatem_ts_PostCrashSubCauseCode_accidentWithECallAutomaticallyTriggered = 3, + spatem_ts_PostCrashSubCauseCode_accidentWithECallTriggeredWithoutAccessToCellularNetwork = 4 +} e_spatem_ts_PostCrashSubCauseCode; + +/* spatem_ts_PostCrashSubCauseCode */ +typedef long spatem_ts_PostCrashSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PostCrashSubCauseCode; +asn_struct_free_f spatem_ts_PostCrashSubCauseCode_free; +asn_struct_print_f spatem_ts_PostCrashSubCauseCode_print; +asn_constr_check_f spatem_ts_PostCrashSubCauseCode_constraint; +per_type_decoder_f spatem_ts_PostCrashSubCauseCode_decode_uper; +per_type_encoder_f spatem_ts_PostCrashSubCauseCode_encode_uper; +per_type_decoder_f spatem_ts_PostCrashSubCauseCode_decode_aper; +per_type_encoder_f spatem_ts_PostCrashSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_PostCrashSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PreemptPriorityList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PreemptPriorityList.h new file mode 100644 index 000000000..5081bc649 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PreemptPriorityList_H_ +#define _spatem_ts_PreemptPriorityList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_SignalControlZone; + +/* spatem_ts_PreemptPriorityList */ +typedef struct spatem_ts_PreemptPriorityList { + A_SEQUENCE_OF(struct spatem_ts_SignalControlZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_PreemptPriorityList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PreemptPriorityList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_PreemptPriorityList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_PreemptPriorityList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_PreemptPriorityList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalControlZone.h" + +#endif /* _spatem_ts_PreemptPriorityList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PrioritizationResponse.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PrioritizationResponse.h new file mode 100644 index 000000000..215126ad3 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PrioritizationResponse_H_ +#define _spatem_ts_PrioritizationResponse_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_StationID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_PrioritizationResponseStatus.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalGroupID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_PrioritizationResponse */ +typedef struct spatem_ts_PrioritizationResponse { + spatem_ts_StationID_t stationID; + spatem_ts_PrioritizationResponseStatus_t priorState; + spatem_ts_SignalGroupID_t signalGroup; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_PrioritizationResponse_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PrioritizationResponse; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_PrioritizationResponse_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_PrioritizationResponse_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_PrioritizationResponse_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PrioritizationResponseList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PrioritizationResponseList.h new file mode 100644 index 000000000..fa58acf38 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PrioritizationResponseList_H_ +#define _spatem_ts_PrioritizationResponseList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_PrioritizationResponse; + +/* spatem_ts_PrioritizationResponseList */ +typedef struct spatem_ts_PrioritizationResponseList { + A_SEQUENCE_OF(struct spatem_ts_PrioritizationResponse) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_PrioritizationResponseList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PrioritizationResponseList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_PrioritizationResponseList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_PrioritizationResponseList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_PrioritizationResponseList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_PrioritizationResponse.h" + +#endif /* _spatem_ts_PrioritizationResponseList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PrioritizationResponseStatus.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PrioritizationResponseStatus.h new file mode 100644 index 000000000..228cb28a5 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PrioritizationResponseStatus_H_ +#define _spatem_ts_PrioritizationResponseStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_PrioritizationResponseStatus { + spatem_ts_PrioritizationResponseStatus_unknown = 0, + spatem_ts_PrioritizationResponseStatus_requested = 1, + spatem_ts_PrioritizationResponseStatus_processing = 2, + spatem_ts_PrioritizationResponseStatus_watchOtherTraffic = 3, + spatem_ts_PrioritizationResponseStatus_granted = 4, + spatem_ts_PrioritizationResponseStatus_rejected = 5, + spatem_ts_PrioritizationResponseStatus_maxPresence = 6, + spatem_ts_PrioritizationResponseStatus_reserviceLocked = 7 + /* + * Enumeration is extensible + */ +} e_spatem_ts_PrioritizationResponseStatus; + +/* spatem_ts_PrioritizationResponseStatus */ +typedef long spatem_ts_PrioritizationResponseStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_PrioritizationResponseStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PrioritizationResponseStatus; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_PrioritizationResponseStatus_specs_1; +asn_struct_free_f spatem_ts_PrioritizationResponseStatus_free; +asn_struct_print_f spatem_ts_PrioritizationResponseStatus_print; +asn_constr_check_f spatem_ts_PrioritizationResponseStatus_constraint; +per_type_decoder_f spatem_ts_PrioritizationResponseStatus_decode_uper; +per_type_encoder_f spatem_ts_PrioritizationResponseStatus_encode_uper; +per_type_decoder_f spatem_ts_PrioritizationResponseStatus_decode_aper; +per_type_encoder_f spatem_ts_PrioritizationResponseStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_PrioritizationResponseStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PriorityRequestType.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PriorityRequestType.h new file mode 100644 index 000000000..f5f3e24ad --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PriorityRequestType_H_ +#define _spatem_ts_PriorityRequestType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_PriorityRequestType { + spatem_ts_PriorityRequestType_priorityRequestTypeReserved = 0, + spatem_ts_PriorityRequestType_priorityRequest = 1, + spatem_ts_PriorityRequestType_priorityRequestUpdate = 2, + spatem_ts_PriorityRequestType_priorityCancellation = 3 + /* + * Enumeration is extensible + */ +} e_spatem_ts_PriorityRequestType; + +/* spatem_ts_PriorityRequestType */ +typedef long spatem_ts_PriorityRequestType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_PriorityRequestType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PriorityRequestType; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_PriorityRequestType_specs_1; +asn_struct_free_f spatem_ts_PriorityRequestType_free; +asn_struct_print_f spatem_ts_PriorityRequestType_print; +asn_constr_check_f spatem_ts_PriorityRequestType_constraint; +per_type_decoder_f spatem_ts_PriorityRequestType_decode_uper; +per_type_encoder_f spatem_ts_PriorityRequestType_encode_uper; +per_type_decoder_f spatem_ts_PriorityRequestType_decode_aper; +per_type_encoder_f spatem_ts_PriorityRequestType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_PriorityRequestType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ProtectedCommunicationZone.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ProtectedCommunicationZone.h new file mode 100644 index 000000000..15bc0e91f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ProtectedCommunicationZone_H_ +#define _spatem_ts_ProtectedCommunicationZone_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_ProtectedZoneType.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_TimestampIts.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Latitude.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Longitude.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_ProtectedZoneRadius.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_ProtectedZoneID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_ProtectedCommunicationZone */ +typedef struct spatem_ts_ProtectedCommunicationZone { + spatem_ts_ProtectedZoneType_t protectedZoneType; + spatem_ts_TimestampIts_t *expiryTime; /* OPTIONAL */ + spatem_ts_Latitude_t protectedZoneLatitude; + spatem_ts_Longitude_t protectedZoneLongitude; + spatem_ts_ProtectedZoneRadius_t *protectedZoneRadius; /* OPTIONAL */ + spatem_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; +} spatem_ts_ProtectedCommunicationZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ProtectedCommunicationZone; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_ProtectedCommunicationZone_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_ProtectedCommunicationZone_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_ProtectedCommunicationZone_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ProtectedCommunicationZonesRSU.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ProtectedCommunicationZonesRSU.h new file mode 100644 index 000000000..0b9f09556 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ProtectedCommunicationZonesRSU_H_ +#define _spatem_ts_ProtectedCommunicationZonesRSU_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_ProtectedCommunicationZone; + +/* spatem_ts_ProtectedCommunicationZonesRSU */ +typedef struct spatem_ts_ProtectedCommunicationZonesRSU { + A_SEQUENCE_OF(struct spatem_ts_ProtectedCommunicationZone) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_ProtectedCommunicationZonesRSU_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ProtectedCommunicationZonesRSU; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_ProtectedCommunicationZone.h" + +#endif /* _spatem_ts_ProtectedCommunicationZonesRSU_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ProtectedZoneID.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ProtectedZoneID.h new file mode 100644 index 000000000..dbe1e70d2 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ProtectedZoneID_H_ +#define _spatem_ts_ProtectedZoneID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_ProtectedZoneID */ +typedef long spatem_ts_ProtectedZoneID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_ProtectedZoneID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ProtectedZoneID; +asn_struct_free_f spatem_ts_ProtectedZoneID_free; +asn_struct_print_f spatem_ts_ProtectedZoneID_print; +asn_constr_check_f spatem_ts_ProtectedZoneID_constraint; +per_type_decoder_f spatem_ts_ProtectedZoneID_decode_uper; +per_type_encoder_f spatem_ts_ProtectedZoneID_encode_uper; +per_type_decoder_f spatem_ts_ProtectedZoneID_decode_aper; +per_type_encoder_f spatem_ts_ProtectedZoneID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_ProtectedZoneID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ProtectedZoneRadius.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ProtectedZoneRadius.h new file mode 100644 index 000000000..35a404ac6 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ProtectedZoneRadius_H_ +#define _spatem_ts_ProtectedZoneRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_ProtectedZoneRadius { + spatem_ts_ProtectedZoneRadius_oneMeter = 1 +} e_spatem_ts_ProtectedZoneRadius; + +/* spatem_ts_ProtectedZoneRadius */ +typedef long spatem_ts_ProtectedZoneRadius_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_ProtectedZoneRadius_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ProtectedZoneRadius; +asn_struct_free_f spatem_ts_ProtectedZoneRadius_free; +asn_struct_print_f spatem_ts_ProtectedZoneRadius_print; +asn_constr_check_f spatem_ts_ProtectedZoneRadius_constraint; +per_type_decoder_f spatem_ts_ProtectedZoneRadius_decode_uper; +per_type_encoder_f spatem_ts_ProtectedZoneRadius_encode_uper; +per_type_decoder_f spatem_ts_ProtectedZoneRadius_decode_aper; +per_type_encoder_f spatem_ts_ProtectedZoneRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_ProtectedZoneRadius_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ProtectedZoneType.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ProtectedZoneType.h new file mode 100644 index 000000000..5d45d3e0e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ProtectedZoneType_H_ +#define _spatem_ts_ProtectedZoneType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_ProtectedZoneType { + spatem_ts_ProtectedZoneType_permanentCenDsrcTolling = 0, + /* + * Enumeration is extensible + */ + spatem_ts_ProtectedZoneType_temporaryCenDsrcTolling = 1 +} e_spatem_ts_ProtectedZoneType; + +/* spatem_ts_ProtectedZoneType */ +typedef long spatem_ts_ProtectedZoneType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_ProtectedZoneType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ProtectedZoneType; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_ProtectedZoneType_specs_1; +asn_struct_free_f spatem_ts_ProtectedZoneType_free; +asn_struct_print_f spatem_ts_ProtectedZoneType_print; +asn_constr_check_f spatem_ts_ProtectedZoneType_constraint; +per_type_decoder_f spatem_ts_ProtectedZoneType_decode_uper; +per_type_encoder_f spatem_ts_ProtectedZoneType_encode_uper; +per_type_decoder_f spatem_ts_ProtectedZoneType_decode_aper; +per_type_encoder_f spatem_ts_ProtectedZoneType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_ProtectedZoneType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PtActivation.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PtActivation.h new file mode 100644 index 000000000..2f6cb96b1 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PtActivation_H_ +#define _spatem_ts_PtActivation_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_PtActivationType.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_PtActivationData.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_PtActivation */ +typedef struct spatem_ts_PtActivation { + spatem_ts_PtActivationType_t ptActivationType; + spatem_ts_PtActivationData_t ptActivationData; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_PtActivation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PtActivation; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_PtActivation_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PtActivationData.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PtActivationData.h new file mode 100644 index 000000000..3df628825 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PtActivationData_H_ +#define _spatem_ts_PtActivationData_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_PtActivationData */ +typedef OCTET_STRING_t spatem_ts_PtActivationData_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_PtActivationData_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PtActivationData; +asn_struct_free_f spatem_ts_PtActivationData_free; +asn_struct_print_f spatem_ts_PtActivationData_print; +asn_constr_check_f spatem_ts_PtActivationData_constraint; +per_type_decoder_f spatem_ts_PtActivationData_decode_uper; +per_type_encoder_f spatem_ts_PtActivationData_encode_uper; +per_type_decoder_f spatem_ts_PtActivationData_decode_aper; +per_type_encoder_f spatem_ts_PtActivationData_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_PtActivationData_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PtActivationType.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PtActivationType.h new file mode 100644 index 000000000..447218409 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PtActivationType_H_ +#define _spatem_ts_PtActivationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_PtActivationType { + spatem_ts_PtActivationType_undefinedCodingType = 0, + spatem_ts_PtActivationType_r09_16CodingType = 1, + spatem_ts_PtActivationType_vdv_50149CodingType = 2 +} e_spatem_ts_PtActivationType; + +/* spatem_ts_PtActivationType */ +typedef long spatem_ts_PtActivationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_PtActivationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PtActivationType; +asn_struct_free_f spatem_ts_PtActivationType_free; +asn_struct_print_f spatem_ts_PtActivationType_print; +asn_constr_check_f spatem_ts_PtActivationType_constraint; +per_type_decoder_f spatem_ts_PtActivationType_decode_uper; +per_type_encoder_f spatem_ts_PtActivationType_encode_uper; +per_type_decoder_f spatem_ts_PtActivationType_decode_aper; +per_type_encoder_f spatem_ts_PtActivationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_PtActivationType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PtvRequestType.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_PtvRequestType.h new file mode 100644 index 000000000..bb5361301 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_PtvRequestType_H_ +#define _spatem_ts_PtvRequestType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_PtvRequestType { + spatem_ts_PtvRequestType_preRequest = 0, + spatem_ts_PtvRequestType_mainRequest = 1, + spatem_ts_PtvRequestType_doorCloseRequest = 2, + spatem_ts_PtvRequestType_cancelRequest = 3, + spatem_ts_PtvRequestType_emergencyRequest = 4 + /* + * Enumeration is extensible + */ +} e_spatem_ts_PtvRequestType; + +/* spatem_ts_PtvRequestType */ +typedef long spatem_ts_PtvRequestType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_PtvRequestType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_PtvRequestType; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_PtvRequestType_specs_1; +asn_struct_free_f spatem_ts_PtvRequestType_free; +asn_struct_print_f spatem_ts_PtvRequestType_print; +asn_constr_check_f spatem_ts_PtvRequestType_constraint; +per_type_decoder_f spatem_ts_PtvRequestType_decode_uper; +per_type_encoder_f spatem_ts_PtvRequestType_encode_uper; +per_type_decoder_f spatem_ts_PtvRequestType_decode_aper; +per_type_encoder_f spatem_ts_PtvRequestType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_PtvRequestType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RTCM-Revision.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RTCM-Revision.h new file mode 100644 index 000000000..1ad184509 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RTCM_Revision_H_ +#define _spatem_ts_RTCM_Revision_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_RTCM_Revision { + spatem_ts_RTCM_Revision_unknown = 0, + spatem_ts_RTCM_Revision_rtcmRev2 = 1, + spatem_ts_RTCM_Revision_rtcmRev3 = 2, + spatem_ts_RTCM_Revision_reserved = 3 + /* + * Enumeration is extensible + */ +} e_spatem_ts_RTCM_Revision; + +/* spatem_ts_RTCM-Revision */ +typedef long spatem_ts_RTCM_Revision_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_RTCM_Revision_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RTCM_Revision; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_RTCM_Revision_specs_1; +asn_struct_free_f spatem_ts_RTCM_Revision_free; +asn_struct_print_f spatem_ts_RTCM_Revision_print; +asn_constr_check_f spatem_ts_RTCM_Revision_constraint; +per_type_decoder_f spatem_ts_RTCM_Revision_decode_uper; +per_type_encoder_f spatem_ts_RTCM_Revision_encode_uper; +per_type_decoder_f spatem_ts_RTCM_Revision_decode_aper; +per_type_encoder_f spatem_ts_RTCM_Revision_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RTCM_Revision_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RTCMcorrections.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RTCMcorrections.h new file mode 100644 index 000000000..a5db1f1d3 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RTCMcorrections_H_ +#define _spatem_ts_RTCMcorrections_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_MsgCount.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RTCM-Revision.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_MinuteOfTheYear.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RTCMmessageList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_FullPositionVector; +struct spatem_ts_RTCMheader; +struct spatem_ts_Reg_RTCMcorrections; + +/* spatem_ts_RTCMcorrections */ +typedef struct spatem_ts_RTCMcorrections { + spatem_ts_MsgCount_t msgCnt; + spatem_ts_RTCM_Revision_t rev; + spatem_ts_MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + struct spatem_ts_FullPositionVector *anchorPoint; /* OPTIONAL */ + struct spatem_ts_RTCMheader *rtcmHeader; /* OPTIONAL */ + spatem_ts_RTCMmessageList_t msgs; + struct spatem_ts_RTCMcorrections__regional { + A_SEQUENCE_OF(struct spatem_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; +} spatem_ts_RTCMcorrections_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RTCMcorrections; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_FullPositionVector.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RTCMheader.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_RTCMcorrections_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RTCMheader.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RTCMheader.h new file mode 100644 index 000000000..d5752fad5 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RTCMheader_H_ +#define _spatem_ts_RTCMheader_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_GNSSstatus.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_AntennaOffsetSet.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_RTCMheader */ +typedef struct spatem_ts_RTCMheader { + spatem_ts_GNSSstatus_t status; + spatem_ts_AntennaOffsetSet_t offsetSet; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_RTCMheader_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RTCMheader; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_RTCMheader_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_RTCMheader_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RTCMheader_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RTCMmessage.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RTCMmessage.h new file mode 100644 index 000000000..19146e745 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RTCMmessage_H_ +#define _spatem_ts_RTCMmessage_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_RTCMmessage */ +typedef OCTET_STRING_t spatem_ts_RTCMmessage_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_RTCMmessage_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RTCMmessage; +asn_struct_free_f spatem_ts_RTCMmessage_free; +asn_struct_print_f spatem_ts_RTCMmessage_print; +asn_constr_check_f spatem_ts_RTCMmessage_constraint; +per_type_decoder_f spatem_ts_RTCMmessage_decode_uper; +per_type_encoder_f spatem_ts_RTCMmessage_encode_uper; +per_type_decoder_f spatem_ts_RTCMmessage_decode_aper; +per_type_encoder_f spatem_ts_RTCMmessage_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RTCMmessage_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RTCMmessageList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RTCMmessageList.h new file mode 100644 index 000000000..9e79548e6 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RTCMmessageList_H_ +#define _spatem_ts_RTCMmessageList_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RTCMmessage.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_RTCMmessageList */ +typedef struct spatem_ts_RTCMmessageList { + A_SEQUENCE_OF(spatem_ts_RTCMmessage_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_RTCMmessageList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RTCMmessageList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_RTCMmessageList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_RTCMmessageList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_RTCMmessageList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RTCMmessageList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ReferencePosition.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ReferencePosition.h new file mode 100644 index 000000000..8a26afc80 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ReferencePosition_H_ +#define _spatem_ts_ReferencePosition_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_Latitude.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Longitude.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_PosConfidenceEllipse.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Altitude.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_ReferencePosition */ +typedef struct spatem_ts_ReferencePosition { + spatem_ts_Latitude_t latitude; + spatem_ts_Longitude_t longitude; + spatem_ts_PosConfidenceEllipse_t positionConfidenceEllipse; + spatem_ts_Altitude_t altitude; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_ReferencePosition_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ReferencePosition; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_ReferencePosition_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_ReferencePosition_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_ReferencePosition_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RegionId.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RegionId.h new file mode 100644 index 000000000..9fdf0bd61 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RegionId_H_ +#define _spatem_ts_RegionId_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_RegionId */ +typedef long spatem_ts_RegionId_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_RegionId_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RegionId; +asn_struct_free_f spatem_ts_RegionId_free; +asn_struct_print_f spatem_ts_RegionId_print; +asn_constr_check_f spatem_ts_RegionId_constraint; +per_type_decoder_f spatem_ts_RegionId_decode_uper; +per_type_encoder_f spatem_ts_RegionId_encode_uper; +per_type_decoder_f spatem_ts_RegionId_decode_aper; +per_type_encoder_f spatem_ts_RegionId_encode_aper; +#define spatem_ts_RegionId_noRegion ((spatem_ts_RegionId_t)0) +#define spatem_ts_RegionId_addGrpA ((spatem_ts_RegionId_t)1) +#define spatem_ts_RegionId_addGrpB ((spatem_ts_RegionId_t)2) +#define spatem_ts_RegionId_addGrpC ((spatem_ts_RegionId_t)3) + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RegionId_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h new file mode 100644 index 000000000..7bc58ce8b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionId.h" +#include +#include +#include "etsi_its_spatem_ts_coding/spatem_ts_MapData-addGrpC.h" +#include +#include +#include +#include "etsi_its_spatem_ts_coding/spatem_ts_ConnectionManeuverAssist-addGrpC.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_ConnectionTrajectory-addGrpC.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionState-addGrpC.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-addGrpC.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_MovementEvent-addGrpC.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_NodeAttributeSet-addGrpC.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Position3D-addGrpC.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RequestorDescription-addGrpC.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RestrictionUserType-addGrpC.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalStatusPackage-addGrpC.h" +#ifndef _spatem_ts_RegionalExtension_H_ +#define _spatem_ts_RegionalExtension_H_ + + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_Reg_MapData__regExtValue_PR { + spatem_ts_Reg_MapData__regExtValue_PR_NOTHING, /* No components present */ + spatem_ts_Reg_MapData__regExtValue_PR_MapData_addGrpC +} spatem_ts_Reg_MapData__regExtValue_PR; +typedef enum spatem_ts_Reg_RTCMcorrections__regExtValue_PR { + spatem_ts_Reg_RTCMcorrections__regExtValue_PR_NOTHING /* No components present */ + +} spatem_ts_Reg_RTCMcorrections__regExtValue_PR; +typedef enum spatem_ts_Reg_SPAT__regExtValue_PR { + spatem_ts_Reg_SPAT__regExtValue_PR_NOTHING /* No components present */ + +} spatem_ts_Reg_SPAT__regExtValue_PR; +typedef enum spatem_ts_Reg_SignalRequestMessage__regExtValue_PR { + spatem_ts_Reg_SignalRequestMessage__regExtValue_PR_NOTHING /* No components present */ + +} spatem_ts_Reg_SignalRequestMessage__regExtValue_PR; +typedef enum spatem_ts_Reg_SignalStatusMessage__regExtValue_PR { + spatem_ts_Reg_SignalStatusMessage__regExtValue_PR_NOTHING /* No components present */ + +} spatem_ts_Reg_SignalStatusMessage__regExtValue_PR; +typedef enum spatem_ts_Reg_AdvisorySpeed__regExtValue_PR { + spatem_ts_Reg_AdvisorySpeed__regExtValue_PR_NOTHING /* No components present */ + +} spatem_ts_Reg_AdvisorySpeed__regExtValue_PR; +typedef enum spatem_ts_Reg_ComputedLane__regExtValue_PR { + spatem_ts_Reg_ComputedLane__regExtValue_PR_NOTHING /* No components present */ + +} spatem_ts_Reg_ComputedLane__regExtValue_PR; +typedef enum spatem_ts_Reg_ConnectionManeuverAssist__regExtValue_PR { + spatem_ts_Reg_ConnectionManeuverAssist__regExtValue_PR_NOTHING, /* No components present */ + spatem_ts_Reg_ConnectionManeuverAssist__regExtValue_PR_ConnectionManeuverAssist_addGrpC +} spatem_ts_Reg_ConnectionManeuverAssist__regExtValue_PR; +typedef enum spatem_ts_Reg_GenericLane__regExtValue_PR { + spatem_ts_Reg_GenericLane__regExtValue_PR_NOTHING, /* No components present */ + spatem_ts_Reg_GenericLane__regExtValue_PR_ConnectionTrajectory_addGrpC +} spatem_ts_Reg_GenericLane__regExtValue_PR; +typedef enum spatem_ts_Reg_IntersectionGeometry__regExtValue_PR { + spatem_ts_Reg_IntersectionGeometry__regExtValue_PR_NOTHING /* No components present */ + +} spatem_ts_Reg_IntersectionGeometry__regExtValue_PR; +typedef enum spatem_ts_Reg_IntersectionState__regExtValue_PR { + spatem_ts_Reg_IntersectionState__regExtValue_PR_NOTHING, /* No components present */ + spatem_ts_Reg_IntersectionState__regExtValue_PR_IntersectionState_addGrpC +} spatem_ts_Reg_IntersectionState__regExtValue_PR; +typedef enum spatem_ts_Reg_LaneAttributes__regExtValue_PR { + spatem_ts_Reg_LaneAttributes__regExtValue_PR_NOTHING, /* No components present */ + spatem_ts_Reg_LaneAttributes__regExtValue_PR_LaneAttributes_addGrpC +} spatem_ts_Reg_LaneAttributes__regExtValue_PR; +typedef enum spatem_ts_Reg_LaneDataAttribute__regExtValue_PR { + spatem_ts_Reg_LaneDataAttribute__regExtValue_PR_NOTHING /* No components present */ + +} spatem_ts_Reg_LaneDataAttribute__regExtValue_PR; +typedef enum spatem_ts_Reg_MovementEvent__regExtValue_PR { + spatem_ts_Reg_MovementEvent__regExtValue_PR_NOTHING, /* No components present */ + spatem_ts_Reg_MovementEvent__regExtValue_PR_MovementEvent_addGrpC +} spatem_ts_Reg_MovementEvent__regExtValue_PR; +typedef enum spatem_ts_Reg_MovementState__regExtValue_PR { + spatem_ts_Reg_MovementState__regExtValue_PR_NOTHING /* No components present */ + +} spatem_ts_Reg_MovementState__regExtValue_PR; +typedef enum spatem_ts_Reg_NodeAttributeSetXY__regExtValue_PR { + spatem_ts_Reg_NodeAttributeSetXY__regExtValue_PR_NOTHING, /* No components present */ + spatem_ts_Reg_NodeAttributeSetXY__regExtValue_PR_NodeAttributeSet_addGrpC +} spatem_ts_Reg_NodeAttributeSetXY__regExtValue_PR; +typedef enum spatem_ts_Reg_NodeOffsetPointXY__regExtValue_PR { + spatem_ts_Reg_NodeOffsetPointXY__regExtValue_PR_NOTHING /* No components present */ + +} spatem_ts_Reg_NodeOffsetPointXY__regExtValue_PR; +typedef enum spatem_ts_Reg_Position3D__regExtValue_PR { + spatem_ts_Reg_Position3D__regExtValue_PR_NOTHING, /* No components present */ + spatem_ts_Reg_Position3D__regExtValue_PR_Position3D_addGrpC +} spatem_ts_Reg_Position3D__regExtValue_PR; +typedef enum spatem_ts_Reg_RequestorDescription__regExtValue_PR { + spatem_ts_Reg_RequestorDescription__regExtValue_PR_NOTHING, /* No components present */ + spatem_ts_Reg_RequestorDescription__regExtValue_PR_RequestorDescription_addGrpC +} spatem_ts_Reg_RequestorDescription__regExtValue_PR; +typedef enum spatem_ts_Reg_RequestorType__regExtValue_PR { + spatem_ts_Reg_RequestorType__regExtValue_PR_NOTHING /* No components present */ + +} spatem_ts_Reg_RequestorType__regExtValue_PR; +typedef enum spatem_ts_Reg_RestrictionUserType__regExtValue_PR { + spatem_ts_Reg_RestrictionUserType__regExtValue_PR_NOTHING, /* No components present */ + spatem_ts_Reg_RestrictionUserType__regExtValue_PR_RestrictionUserType_addGrpC +} spatem_ts_Reg_RestrictionUserType__regExtValue_PR; +typedef enum spatem_ts_Reg_RoadSegment__regExtValue_PR { + spatem_ts_Reg_RoadSegment__regExtValue_PR_NOTHING /* No components present */ + +} spatem_ts_Reg_RoadSegment__regExtValue_PR; +typedef enum spatem_ts_Reg_SignalControlZone__regExtValue_PR { + spatem_ts_Reg_SignalControlZone__regExtValue_PR_NOTHING /* No components present */ + +} spatem_ts_Reg_SignalControlZone__regExtValue_PR; +typedef enum spatem_ts_Reg_SignalRequest__regExtValue_PR { + spatem_ts_Reg_SignalRequest__regExtValue_PR_NOTHING /* No components present */ + +} spatem_ts_Reg_SignalRequest__regExtValue_PR; +typedef enum spatem_ts_Reg_SignalRequestPackage__regExtValue_PR { + spatem_ts_Reg_SignalRequestPackage__regExtValue_PR_NOTHING /* No components present */ + +} spatem_ts_Reg_SignalRequestPackage__regExtValue_PR; +typedef enum spatem_ts_Reg_SignalStatus__regExtValue_PR { + spatem_ts_Reg_SignalStatus__regExtValue_PR_NOTHING /* No components present */ + +} spatem_ts_Reg_SignalStatus__regExtValue_PR; +typedef enum spatem_ts_Reg_SignalStatusPackage__regExtValue_PR { + spatem_ts_Reg_SignalStatusPackage__regExtValue_PR_NOTHING, /* No components present */ + spatem_ts_Reg_SignalStatusPackage__regExtValue_PR_SignalStatusPackage_addGrpC +} spatem_ts_Reg_SignalStatusPackage__regExtValue_PR; + +/* spatem_ts_RegionalExtension */ +typedef struct spatem_ts_Reg_MapData { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_MapData__regExtValue { + spatem_ts_Reg_MapData__regExtValue_PR present; + union spatem_ts_Reg_MapData__spatem_ts_regExtValue_u { + spatem_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; +} spatem_ts_Reg_MapData_t; +typedef struct spatem_ts_Reg_RTCMcorrections { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_RTCMcorrections__regExtValue { + spatem_ts_Reg_RTCMcorrections__regExtValue_PR present; + union spatem_ts_Reg_RTCMcorrections__spatem_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; +} spatem_ts_Reg_RTCMcorrections_t; +typedef struct spatem_ts_Reg_SPAT { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_SPAT__regExtValue { + spatem_ts_Reg_SPAT__regExtValue_PR present; + union spatem_ts_Reg_SPAT__spatem_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; +} spatem_ts_Reg_SPAT_t; +typedef struct spatem_ts_Reg_SignalRequestMessage { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_SignalRequestMessage__regExtValue { + spatem_ts_Reg_SignalRequestMessage__regExtValue_PR present; + union spatem_ts_Reg_SignalRequestMessage__spatem_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; +} spatem_ts_Reg_SignalRequestMessage_t; +typedef struct spatem_ts_Reg_SignalStatusMessage { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_SignalStatusMessage__regExtValue { + spatem_ts_Reg_SignalStatusMessage__regExtValue_PR present; + union spatem_ts_Reg_SignalStatusMessage__spatem_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; +} spatem_ts_Reg_SignalStatusMessage_t; +typedef struct spatem_ts_Reg_AdvisorySpeed { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_AdvisorySpeed__regExtValue { + spatem_ts_Reg_AdvisorySpeed__regExtValue_PR present; + union spatem_ts_Reg_AdvisorySpeed__spatem_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; +} spatem_ts_Reg_AdvisorySpeed_t; +typedef struct spatem_ts_Reg_ComputedLane { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_ComputedLane__regExtValue { + spatem_ts_Reg_ComputedLane__regExtValue_PR present; + union spatem_ts_Reg_ComputedLane__spatem_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; +} spatem_ts_Reg_ComputedLane_t; +typedef struct spatem_ts_Reg_ConnectionManeuverAssist { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_ConnectionManeuverAssist__regExtValue { + spatem_ts_Reg_ConnectionManeuverAssist__regExtValue_PR present; + union spatem_ts_Reg_ConnectionManeuverAssist__spatem_ts_regExtValue_u { + spatem_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; +} spatem_ts_Reg_ConnectionManeuverAssist_t; +typedef struct spatem_ts_Reg_GenericLane { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_GenericLane__regExtValue { + spatem_ts_Reg_GenericLane__regExtValue_PR present; + union spatem_ts_Reg_GenericLane__spatem_ts_regExtValue_u { + spatem_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; +} spatem_ts_Reg_GenericLane_t; +typedef struct spatem_ts_Reg_IntersectionGeometry { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_IntersectionGeometry__regExtValue { + spatem_ts_Reg_IntersectionGeometry__regExtValue_PR present; + union spatem_ts_Reg_IntersectionGeometry__spatem_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; +} spatem_ts_Reg_IntersectionGeometry_t; +typedef struct spatem_ts_Reg_IntersectionState { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_IntersectionState__regExtValue { + spatem_ts_Reg_IntersectionState__regExtValue_PR present; + union spatem_ts_Reg_IntersectionState__spatem_ts_regExtValue_u { + spatem_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; +} spatem_ts_Reg_IntersectionState_t; +typedef struct spatem_ts_Reg_LaneAttributes { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_LaneAttributes__regExtValue { + spatem_ts_Reg_LaneAttributes__regExtValue_PR present; + union spatem_ts_Reg_LaneAttributes__spatem_ts_regExtValue_u { + spatem_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; +} spatem_ts_Reg_LaneAttributes_t; +typedef struct spatem_ts_Reg_LaneDataAttribute { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_LaneDataAttribute__regExtValue { + spatem_ts_Reg_LaneDataAttribute__regExtValue_PR present; + union spatem_ts_Reg_LaneDataAttribute__spatem_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; +} spatem_ts_Reg_LaneDataAttribute_t; +typedef struct spatem_ts_Reg_MovementEvent { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_MovementEvent__regExtValue { + spatem_ts_Reg_MovementEvent__regExtValue_PR present; + union spatem_ts_Reg_MovementEvent__spatem_ts_regExtValue_u { + spatem_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; +} spatem_ts_Reg_MovementEvent_t; +typedef struct spatem_ts_Reg_MovementState { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_MovementState__regExtValue { + spatem_ts_Reg_MovementState__regExtValue_PR present; + union spatem_ts_Reg_MovementState__spatem_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; +} spatem_ts_Reg_MovementState_t; +typedef struct spatem_ts_Reg_NodeAttributeSetXY { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_NodeAttributeSetXY__regExtValue { + spatem_ts_Reg_NodeAttributeSetXY__regExtValue_PR present; + union spatem_ts_Reg_NodeAttributeSetXY__spatem_ts_regExtValue_u { + spatem_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; +} spatem_ts_Reg_NodeAttributeSetXY_t; +typedef struct spatem_ts_Reg_NodeOffsetPointXY { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_NodeOffsetPointXY__regExtValue { + spatem_ts_Reg_NodeOffsetPointXY__regExtValue_PR present; + union spatem_ts_Reg_NodeOffsetPointXY__spatem_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; +} spatem_ts_Reg_NodeOffsetPointXY_t; +typedef struct spatem_ts_Reg_Position3D { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_Position3D__regExtValue { + spatem_ts_Reg_Position3D__regExtValue_PR present; + union spatem_ts_Reg_Position3D__spatem_ts_regExtValue_u { + spatem_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; +} spatem_ts_Reg_Position3D_t; +typedef struct spatem_ts_Reg_RequestorDescription { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_RequestorDescription__regExtValue { + spatem_ts_Reg_RequestorDescription__regExtValue_PR present; + union spatem_ts_Reg_RequestorDescription__spatem_ts_regExtValue_u { + spatem_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; +} spatem_ts_Reg_RequestorDescription_t; +typedef struct spatem_ts_Reg_RequestorType { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_RequestorType__regExtValue { + spatem_ts_Reg_RequestorType__regExtValue_PR present; + union spatem_ts_Reg_RequestorType__spatem_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; +} spatem_ts_Reg_RequestorType_t; +typedef struct spatem_ts_Reg_RestrictionUserType { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_RestrictionUserType__regExtValue { + spatem_ts_Reg_RestrictionUserType__regExtValue_PR present; + union spatem_ts_Reg_RestrictionUserType__spatem_ts_regExtValue_u { + spatem_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; +} spatem_ts_Reg_RestrictionUserType_t; +typedef struct spatem_ts_Reg_RoadSegment { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_RoadSegment__regExtValue { + spatem_ts_Reg_RoadSegment__regExtValue_PR present; + union spatem_ts_Reg_RoadSegment__spatem_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; +} spatem_ts_Reg_RoadSegment_t; +typedef struct spatem_ts_Reg_SignalControlZone { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_SignalControlZone__regExtValue { + spatem_ts_Reg_SignalControlZone__regExtValue_PR present; + union spatem_ts_Reg_SignalControlZone__spatem_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; +} spatem_ts_Reg_SignalControlZone_t; +typedef struct spatem_ts_Reg_SignalRequest { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_SignalRequest__regExtValue { + spatem_ts_Reg_SignalRequest__regExtValue_PR present; + union spatem_ts_Reg_SignalRequest__spatem_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; +} spatem_ts_Reg_SignalRequest_t; +typedef struct spatem_ts_Reg_SignalRequestPackage { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_SignalRequestPackage__regExtValue { + spatem_ts_Reg_SignalRequestPackage__regExtValue_PR present; + union spatem_ts_Reg_SignalRequestPackage__spatem_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; +} spatem_ts_Reg_SignalRequestPackage_t; +typedef struct spatem_ts_Reg_SignalStatus { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_SignalStatus__regExtValue { + spatem_ts_Reg_SignalStatus__regExtValue_PR present; + union spatem_ts_Reg_SignalStatus__spatem_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; +} spatem_ts_Reg_SignalStatus_t; +typedef struct spatem_ts_Reg_SignalStatusPackage { + spatem_ts_RegionId_t regionId; + struct spatem_ts_Reg_SignalStatusPackage__regExtValue { + spatem_ts_Reg_SignalStatusPackage__regExtValue_PR present; + union spatem_ts_Reg_SignalStatusPackage__spatem_ts_regExtValue_u { + spatem_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; +} spatem_ts_Reg_SignalStatusPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_MapData; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_MapData_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_MapData_1[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_RTCMcorrections; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_RTCMcorrections_specs_4; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_RTCMcorrections_4[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_SPAT; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_SPAT_specs_7; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_SPAT_7[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_SignalRequestMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_SignalRequestMessage_specs_10; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_SignalRequestMessage_10[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_SignalStatusMessage; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_SignalStatusMessage_specs_13; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_SignalStatusMessage_13[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_AdvisorySpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_AdvisorySpeed_specs_16; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_AdvisorySpeed_16[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_ComputedLane; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_ComputedLane_specs_19; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_ComputedLane_19[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_ConnectionManeuverAssist; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_ConnectionManeuverAssist_specs_22; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_ConnectionManeuverAssist_22[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_GenericLane; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_GenericLane_specs_25; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_GenericLane_25[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_IntersectionGeometry; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_IntersectionGeometry_specs_28; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_IntersectionGeometry_28[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_IntersectionState; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_IntersectionState_specs_31; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_IntersectionState_31[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_LaneAttributes; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_LaneAttributes_specs_34; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_LaneAttributes_34[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_LaneDataAttribute; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_LaneDataAttribute_specs_37; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_LaneDataAttribute_37[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_MovementEvent; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_MovementEvent_specs_40; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_MovementEvent_40[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_MovementState; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_MovementState_specs_43; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_MovementState_43[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_NodeAttributeSetXY; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_NodeAttributeSetXY_specs_46; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_NodeAttributeSetXY_46[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_NodeOffsetPointXY; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_NodeOffsetPointXY_specs_49; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_NodeOffsetPointXY_49[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_Position3D; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_Position3D_specs_52; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_Position3D_52[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_RequestorDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_RequestorDescription_specs_55; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_RequestorDescription_55[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_RequestorType; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_RequestorType_specs_58; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_RequestorType_58[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_RestrictionUserType; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_RestrictionUserType_specs_61; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_RestrictionUserType_61[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_RoadSegment; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_RoadSegment_specs_64; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_RoadSegment_64[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_SignalControlZone; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_SignalControlZone_specs_67; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_SignalControlZone_67[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_SignalRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_SignalRequest_specs_70; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_SignalRequest_70[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_SignalRequestPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_SignalRequestPackage_specs_73; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_SignalRequestPackage_73[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_SignalStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_SignalStatus_specs_76; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_SignalStatus_76[2]; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Reg_SignalStatusPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Reg_SignalStatusPackage_specs_79; +extern asn_TYPE_member_t asn_MBR_spatem_ts_Reg_SignalStatusPackage_79[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RegionalExtension_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RegulatorySpeedLimit.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RegulatorySpeedLimit.h new file mode 100644 index 000000000..cd6827baf --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RegulatorySpeedLimit_H_ +#define _spatem_ts_RegulatorySpeedLimit_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_SpeedLimitType.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Velocity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_RegulatorySpeedLimit */ +typedef struct spatem_ts_RegulatorySpeedLimit { + spatem_ts_SpeedLimitType_t type; + spatem_ts_Velocity_t speed; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_RegulatorySpeedLimit_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RegulatorySpeedLimit; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_RegulatorySpeedLimit_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_RegulatorySpeedLimit_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RegulatorySpeedLimit_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RejectedReason.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RejectedReason.h new file mode 100644 index 000000000..8f107fe7b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RejectedReason_H_ +#define _spatem_ts_RejectedReason_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_RejectedReason { + spatem_ts_RejectedReason_unknown = 0, + spatem_ts_RejectedReason_exceptionalCondition = 1, + spatem_ts_RejectedReason_maxWaitingTimeExceeded = 2, + spatem_ts_RejectedReason_ptPriorityDisabled = 3, + spatem_ts_RejectedReason_higherPTPriorityGranted = 4, + spatem_ts_RejectedReason_vehicleTrackingUnknown = 5 + /* + * Enumeration is extensible + */ +} e_spatem_ts_RejectedReason; + +/* spatem_ts_RejectedReason */ +typedef long spatem_ts_RejectedReason_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_RejectedReason_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RejectedReason; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_RejectedReason_specs_1; +asn_struct_free_f spatem_ts_RejectedReason_free; +asn_struct_print_f spatem_ts_RejectedReason_print; +asn_constr_check_f spatem_ts_RejectedReason_constraint; +per_type_decoder_f spatem_ts_RejectedReason_decode_uper; +per_type_encoder_f spatem_ts_RejectedReason_encode_uper; +per_type_decoder_f spatem_ts_RejectedReason_decode_aper; +per_type_encoder_f spatem_ts_RejectedReason_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RejectedReason_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RelevanceDistance.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RelevanceDistance.h new file mode 100644 index 000000000..fc54b8b79 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RelevanceDistance_H_ +#define _spatem_ts_RelevanceDistance_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_RelevanceDistance { + spatem_ts_RelevanceDistance_lessThan50m = 0, + spatem_ts_RelevanceDistance_lessThan100m = 1, + spatem_ts_RelevanceDistance_lessThan200m = 2, + spatem_ts_RelevanceDistance_lessThan500m = 3, + spatem_ts_RelevanceDistance_lessThan1000m = 4, + spatem_ts_RelevanceDistance_lessThan5km = 5, + spatem_ts_RelevanceDistance_lessThan10km = 6, + spatem_ts_RelevanceDistance_over10km = 7 +} e_spatem_ts_RelevanceDistance; + +/* spatem_ts_RelevanceDistance */ +typedef long spatem_ts_RelevanceDistance_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RelevanceDistance; +asn_struct_free_f spatem_ts_RelevanceDistance_free; +asn_struct_print_f spatem_ts_RelevanceDistance_print; +asn_constr_check_f spatem_ts_RelevanceDistance_constraint; +per_type_decoder_f spatem_ts_RelevanceDistance_decode_uper; +per_type_encoder_f spatem_ts_RelevanceDistance_encode_uper; +per_type_decoder_f spatem_ts_RelevanceDistance_decode_aper; +per_type_encoder_f spatem_ts_RelevanceDistance_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RelevanceDistance_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RelevanceTrafficDirection.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RelevanceTrafficDirection.h new file mode 100644 index 000000000..c275e8bb3 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RelevanceTrafficDirection_H_ +#define _spatem_ts_RelevanceTrafficDirection_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_RelevanceTrafficDirection { + spatem_ts_RelevanceTrafficDirection_allTrafficDirections = 0, + spatem_ts_RelevanceTrafficDirection_upstreamTraffic = 1, + spatem_ts_RelevanceTrafficDirection_downstreamTraffic = 2, + spatem_ts_RelevanceTrafficDirection_oppositeTraffic = 3 +} e_spatem_ts_RelevanceTrafficDirection; + +/* spatem_ts_RelevanceTrafficDirection */ +typedef long spatem_ts_RelevanceTrafficDirection_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RelevanceTrafficDirection; +asn_struct_free_f spatem_ts_RelevanceTrafficDirection_free; +asn_struct_print_f spatem_ts_RelevanceTrafficDirection_print; +asn_constr_check_f spatem_ts_RelevanceTrafficDirection_constraint; +per_type_decoder_f spatem_ts_RelevanceTrafficDirection_decode_uper; +per_type_encoder_f spatem_ts_RelevanceTrafficDirection_encode_uper; +per_type_decoder_f spatem_ts_RelevanceTrafficDirection_decode_aper; +per_type_encoder_f spatem_ts_RelevanceTrafficDirection_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RelevanceTrafficDirection_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RequestID.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RequestID.h new file mode 100644 index 000000000..a50d60506 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RequestID_H_ +#define _spatem_ts_RequestID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_RequestID */ +typedef long spatem_ts_RequestID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_RequestID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RequestID; +asn_struct_free_f spatem_ts_RequestID_free; +asn_struct_print_f spatem_ts_RequestID_print; +asn_constr_check_f spatem_ts_RequestID_constraint; +per_type_decoder_f spatem_ts_RequestID_decode_uper; +per_type_encoder_f spatem_ts_RequestID_encode_uper; +per_type_decoder_f spatem_ts_RequestID_decode_aper; +per_type_encoder_f spatem_ts_RequestID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RequestID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RequestImportanceLevel.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RequestImportanceLevel.h new file mode 100644 index 000000000..5f5d8655b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RequestImportanceLevel_H_ +#define _spatem_ts_RequestImportanceLevel_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_RequestImportanceLevel { + spatem_ts_RequestImportanceLevel_requestImportanceLevelUnKnown = 0, + spatem_ts_RequestImportanceLevel_requestImportanceLevel1 = 1, + spatem_ts_RequestImportanceLevel_requestImportanceLevel2 = 2, + spatem_ts_RequestImportanceLevel_requestImportanceLevel3 = 3, + spatem_ts_RequestImportanceLevel_requestImportanceLevel4 = 4, + spatem_ts_RequestImportanceLevel_requestImportanceLevel5 = 5, + spatem_ts_RequestImportanceLevel_requestImportanceLevel6 = 6, + spatem_ts_RequestImportanceLevel_requestImportanceLevel7 = 7, + spatem_ts_RequestImportanceLevel_requestImportanceLevel8 = 8, + spatem_ts_RequestImportanceLevel_requestImportanceLevel9 = 9, + spatem_ts_RequestImportanceLevel_requestImportanceLevel10 = 10, + spatem_ts_RequestImportanceLevel_requestImportanceLevel11 = 11, + spatem_ts_RequestImportanceLevel_requestImportanceLevel12 = 12, + spatem_ts_RequestImportanceLevel_requestImportanceLevel13 = 13, + spatem_ts_RequestImportanceLevel_requestImportanceLevel14 = 14, + spatem_ts_RequestImportanceLevel_requestImportanceReserved = 15 +} e_spatem_ts_RequestImportanceLevel; + +/* spatem_ts_RequestImportanceLevel */ +typedef long spatem_ts_RequestImportanceLevel_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_RequestImportanceLevel_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RequestImportanceLevel; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_RequestImportanceLevel_specs_1; +asn_struct_free_f spatem_ts_RequestImportanceLevel_free; +asn_struct_print_f spatem_ts_RequestImportanceLevel_print; +asn_constr_check_f spatem_ts_RequestImportanceLevel_constraint; +per_type_decoder_f spatem_ts_RequestImportanceLevel_decode_uper; +per_type_encoder_f spatem_ts_RequestImportanceLevel_encode_uper; +per_type_decoder_f spatem_ts_RequestImportanceLevel_decode_aper; +per_type_encoder_f spatem_ts_RequestImportanceLevel_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RequestImportanceLevel_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RequestResponseIndication.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RequestResponseIndication.h new file mode 100644 index 000000000..ddf6cad59 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RequestResponseIndication_H_ +#define _spatem_ts_RequestResponseIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_RequestResponseIndication { + spatem_ts_RequestResponseIndication_request = 0, + spatem_ts_RequestResponseIndication_response = 1 +} e_spatem_ts_RequestResponseIndication; + +/* spatem_ts_RequestResponseIndication */ +typedef long spatem_ts_RequestResponseIndication_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RequestResponseIndication; +asn_struct_free_f spatem_ts_RequestResponseIndication_free; +asn_struct_print_f spatem_ts_RequestResponseIndication_print; +asn_constr_check_f spatem_ts_RequestResponseIndication_constraint; +per_type_decoder_f spatem_ts_RequestResponseIndication_decode_uper; +per_type_encoder_f spatem_ts_RequestResponseIndication_encode_uper; +per_type_decoder_f spatem_ts_RequestResponseIndication_decode_aper; +per_type_encoder_f spatem_ts_RequestResponseIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RequestResponseIndication_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RequestSubRole.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RequestSubRole.h new file mode 100644 index 000000000..1ec3423a8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RequestSubRole_H_ +#define _spatem_ts_RequestSubRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_RequestSubRole { + spatem_ts_RequestSubRole_requestSubRoleUnKnown = 0, + spatem_ts_RequestSubRole_requestSubRole1 = 1, + spatem_ts_RequestSubRole_requestSubRole2 = 2, + spatem_ts_RequestSubRole_requestSubRole3 = 3, + spatem_ts_RequestSubRole_requestSubRole4 = 4, + spatem_ts_RequestSubRole_requestSubRole5 = 5, + spatem_ts_RequestSubRole_requestSubRole6 = 6, + spatem_ts_RequestSubRole_requestSubRole7 = 7, + spatem_ts_RequestSubRole_requestSubRole8 = 8, + spatem_ts_RequestSubRole_requestSubRole9 = 9, + spatem_ts_RequestSubRole_requestSubRole10 = 10, + spatem_ts_RequestSubRole_requestSubRole11 = 11, + spatem_ts_RequestSubRole_requestSubRole12 = 12, + spatem_ts_RequestSubRole_requestSubRole13 = 13, + spatem_ts_RequestSubRole_requestSubRole14 = 14, + spatem_ts_RequestSubRole_requestSubRoleReserved = 15 +} e_spatem_ts_RequestSubRole; + +/* spatem_ts_RequestSubRole */ +typedef long spatem_ts_RequestSubRole_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_RequestSubRole_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RequestSubRole; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_RequestSubRole_specs_1; +asn_struct_free_f spatem_ts_RequestSubRole_free; +asn_struct_print_f spatem_ts_RequestSubRole_print; +asn_constr_check_f spatem_ts_RequestSubRole_constraint; +per_type_decoder_f spatem_ts_RequestSubRole_decode_uper; +per_type_encoder_f spatem_ts_RequestSubRole_encode_uper; +per_type_decoder_f spatem_ts_RequestSubRole_decode_aper; +per_type_encoder_f spatem_ts_RequestSubRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RequestSubRole_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RequestorDescription-addGrpC.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RequestorDescription-addGrpC.h new file mode 100644 index 000000000..49b5d800b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RequestorDescription_addGrpC_H_ +#define _spatem_ts_RequestorDescription_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_FuelType.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_BatteryStatus.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_RequestorDescription-addGrpC */ +typedef struct spatem_ts_RequestorDescription_addGrpC { + spatem_ts_FuelType_t *fuel; /* OPTIONAL */ + spatem_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; +} spatem_ts_RequestorDescription_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RequestorDescription_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_RequestorDescription_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_RequestorDescription_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RequestorDescription_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RequestorDescription.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RequestorDescription.h new file mode 100644 index 000000000..7153bc26b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RequestorDescription_H_ +#define _spatem_ts_RequestorDescription_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_VehicleID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_DescriptiveName.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_TransitVehicleStatus.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_TransitVehicleOccupancy.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_DeltaTime.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_RequestorType; +struct spatem_ts_RequestorPositionVector; +struct spatem_ts_Reg_RequestorDescription; + +/* spatem_ts_RequestorDescription */ +typedef struct spatem_ts_RequestorDescription { + spatem_ts_VehicleID_t id; + struct spatem_ts_RequestorType *type; /* OPTIONAL */ + struct spatem_ts_RequestorPositionVector *position; /* OPTIONAL */ + spatem_ts_DescriptiveName_t *name; /* OPTIONAL */ + spatem_ts_DescriptiveName_t *routeName; /* OPTIONAL */ + spatem_ts_TransitVehicleStatus_t *transitStatus; /* OPTIONAL */ + spatem_ts_TransitVehicleOccupancy_t *transitOccupancy; /* OPTIONAL */ + spatem_ts_DeltaTime_t *transitSchedule; /* OPTIONAL */ + struct spatem_ts_RequestorDescription__regional { + A_SEQUENCE_OF(struct spatem_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; +} spatem_ts_RequestorDescription_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RequestorDescription; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_RequestorDescription_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_RequestorDescription_1[9]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RequestorType.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RequestorPositionVector.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_RequestorDescription_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RequestorPositionVector.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RequestorPositionVector.h new file mode 100644 index 000000000..8fe376c1a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RequestorPositionVector_H_ +#define _spatem_ts_RequestorPositionVector_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_Position3D.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Angle.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_TransmissionAndSpeed; + +/* spatem_ts_RequestorPositionVector */ +typedef struct spatem_ts_RequestorPositionVector { + spatem_ts_Position3D_t position; + spatem_ts_Angle_t *heading; /* OPTIONAL */ + struct spatem_ts_TransmissionAndSpeed *speed; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_RequestorPositionVector_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RequestorPositionVector; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_RequestorPositionVector_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_RequestorPositionVector_1[3]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_TransmissionAndSpeed.h" + +#endif /* _spatem_ts_RequestorPositionVector_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RequestorType.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RequestorType.h new file mode 100644 index 000000000..9d06247fe --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RequestorType_H_ +#define _spatem_ts_RequestorType_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_BasicVehicleRole.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RequestSubRole.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RequestImportanceLevel.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Iso3833VehicleType.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_VehicleType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_Reg_RequestorType; + +/* spatem_ts_RequestorType */ +typedef struct spatem_ts_RequestorType { + spatem_ts_BasicVehicleRole_t role; + spatem_ts_RequestSubRole_t *subrole; /* OPTIONAL */ + spatem_ts_RequestImportanceLevel_t *request; /* OPTIONAL */ + spatem_ts_Iso3833VehicleType_t *iso3883; /* OPTIONAL */ + spatem_ts_VehicleType_t *hpmsType; /* OPTIONAL */ + struct spatem_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; +} spatem_ts_RequestorType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RequestorType; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_RequestorType_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_RequestorType_1[6]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_RequestorType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode.h new file mode 100644 index 000000000..29d1b3700 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_H_ +#define _spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode { + spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_unavailable = 0, + spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_emergencyVehicles = 1, + spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_rescueHelicopterLanding = 2, + spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_policeActivityOngoing = 3, + spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_medicalEmergencyOngoing = 4, + spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_childAbductionInProgress = 5 +} e_spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode; + +/* spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode */ +typedef long spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode; +asn_struct_free_f spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_free; +asn_struct_print_f spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_print; +asn_constr_check_f spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_constraint; +per_type_decoder_f spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_decode_uper; +per_type_encoder_f spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_encode_uper; +per_type_decoder_f spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_decode_aper; +per_type_encoder_f spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RestrictedTypes.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RestrictedTypes.h new file mode 100644 index 000000000..68555043b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RestrictedTypes_H_ +#define _spatem_ts_RestrictedTypes_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_StationType.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_RestrictedTypes */ +typedef struct spatem_ts_RestrictedTypes { + A_SEQUENCE_OF(spatem_ts_StationType_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_RestrictedTypes_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RestrictedTypes; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RestrictedTypes_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RestrictionAppliesTo.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RestrictionAppliesTo.h new file mode 100644 index 000000000..72c19a1ef --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RestrictionAppliesTo_H_ +#define _spatem_ts_RestrictionAppliesTo_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_RestrictionAppliesTo { + spatem_ts_RestrictionAppliesTo_none = 0, + spatem_ts_RestrictionAppliesTo_equippedTransit = 1, + spatem_ts_RestrictionAppliesTo_equippedTaxis = 2, + spatem_ts_RestrictionAppliesTo_equippedOther = 3, + spatem_ts_RestrictionAppliesTo_emissionCompliant = 4, + spatem_ts_RestrictionAppliesTo_equippedBicycle = 5, + spatem_ts_RestrictionAppliesTo_weightCompliant = 6, + spatem_ts_RestrictionAppliesTo_heightCompliant = 7, + spatem_ts_RestrictionAppliesTo_pedestrians = 8, + spatem_ts_RestrictionAppliesTo_slowMovingPersons = 9, + spatem_ts_RestrictionAppliesTo_wheelchairUsers = 10, + spatem_ts_RestrictionAppliesTo_visualDisabilities = 11, + spatem_ts_RestrictionAppliesTo_audioDisabilities = 12, + spatem_ts_RestrictionAppliesTo_otherUnknownDisabilities = 13 + /* + * Enumeration is extensible + */ +} e_spatem_ts_RestrictionAppliesTo; + +/* spatem_ts_RestrictionAppliesTo */ +typedef long spatem_ts_RestrictionAppliesTo_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_RestrictionAppliesTo_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RestrictionAppliesTo; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_RestrictionAppliesTo_specs_1; +asn_struct_free_f spatem_ts_RestrictionAppliesTo_free; +asn_struct_print_f spatem_ts_RestrictionAppliesTo_print; +asn_constr_check_f spatem_ts_RestrictionAppliesTo_constraint; +per_type_decoder_f spatem_ts_RestrictionAppliesTo_decode_uper; +per_type_encoder_f spatem_ts_RestrictionAppliesTo_encode_uper; +per_type_decoder_f spatem_ts_RestrictionAppliesTo_decode_aper; +per_type_encoder_f spatem_ts_RestrictionAppliesTo_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RestrictionAppliesTo_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RestrictionClassAssignment.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RestrictionClassAssignment.h new file mode 100644 index 000000000..a96301dce --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RestrictionClassAssignment_H_ +#define _spatem_ts_RestrictionClassAssignment_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RestrictionClassID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RestrictionUserTypeList.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_RestrictionClassAssignment */ +typedef struct spatem_ts_RestrictionClassAssignment { + spatem_ts_RestrictionClassID_t id; + spatem_ts_RestrictionUserTypeList_t users; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_RestrictionClassAssignment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RestrictionClassAssignment; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_RestrictionClassAssignment_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_RestrictionClassAssignment_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RestrictionClassAssignment_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RestrictionClassID.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RestrictionClassID.h new file mode 100644 index 000000000..eab12d99f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RestrictionClassID_H_ +#define _spatem_ts_RestrictionClassID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_RestrictionClassID */ +typedef long spatem_ts_RestrictionClassID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_RestrictionClassID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RestrictionClassID; +asn_struct_free_f spatem_ts_RestrictionClassID_free; +asn_struct_print_f spatem_ts_RestrictionClassID_print; +asn_constr_check_f spatem_ts_RestrictionClassID_constraint; +per_type_decoder_f spatem_ts_RestrictionClassID_decode_uper; +per_type_encoder_f spatem_ts_RestrictionClassID_encode_uper; +per_type_decoder_f spatem_ts_RestrictionClassID_decode_aper; +per_type_encoder_f spatem_ts_RestrictionClassID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RestrictionClassID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RestrictionClassList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RestrictionClassList.h new file mode 100644 index 000000000..dd08fb797 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RestrictionClassList_H_ +#define _spatem_ts_RestrictionClassList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_RestrictionClassAssignment; + +/* spatem_ts_RestrictionClassList */ +typedef struct spatem_ts_RestrictionClassList { + A_SEQUENCE_OF(struct spatem_ts_RestrictionClassAssignment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_RestrictionClassList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RestrictionClassList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_RestrictionClassList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_RestrictionClassList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_RestrictionClassList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RestrictionClassAssignment.h" + +#endif /* _spatem_ts_RestrictionClassList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RestrictionUserType-addGrpC.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RestrictionUserType-addGrpC.h new file mode 100644 index 000000000..7334b1458 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RestrictionUserType_addGrpC_H_ +#define _spatem_ts_RestrictionUserType_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_EmissionType.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_FuelType.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_RestrictionUserType-addGrpC */ +typedef struct spatem_ts_RestrictionUserType_addGrpC { + spatem_ts_EmissionType_t *emission; /* OPTIONAL */ + spatem_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; +} spatem_ts_RestrictionUserType_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RestrictionUserType_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_RestrictionUserType_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_RestrictionUserType_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RestrictionUserType_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RestrictionUserType.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RestrictionUserType.h new file mode 100644 index 000000000..7789ec0bd --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RestrictionUserType_H_ +#define _spatem_ts_RestrictionUserType_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RestrictionAppliesTo.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_RestrictionUserType_PR { + spatem_ts_RestrictionUserType_PR_NOTHING, /* No components present */ + spatem_ts_RestrictionUserType_PR_basicType, + spatem_ts_RestrictionUserType_PR_regional + /* Extensions may appear below */ + +} spatem_ts_RestrictionUserType_PR; + +/* Forward declarations */ +struct spatem_ts_Reg_RestrictionUserType; + +/* spatem_ts_RestrictionUserType */ +typedef struct spatem_ts_RestrictionUserType { + spatem_ts_RestrictionUserType_PR present; + union spatem_ts_RestrictionUserType_u { + spatem_ts_RestrictionAppliesTo_t basicType; + struct spatem_ts_RestrictionUserType__regional { + A_SEQUENCE_OF(struct spatem_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; +} spatem_ts_RestrictionUserType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RestrictionUserType; +extern asn_CHOICE_specifics_t asn_SPC_spatem_ts_RestrictionUserType_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_RestrictionUserType_1[2]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_RestrictionUserType_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_RestrictionUserType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RestrictionUserTypeList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RestrictionUserTypeList.h new file mode 100644 index 000000000..38dc673ee --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RestrictionUserTypeList_H_ +#define _spatem_ts_RestrictionUserTypeList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_RestrictionUserType; + +/* spatem_ts_RestrictionUserTypeList */ +typedef struct spatem_ts_RestrictionUserTypeList { + A_SEQUENCE_OF(struct spatem_ts_RestrictionUserType) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_RestrictionUserTypeList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RestrictionUserTypeList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_RestrictionUserTypeList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_RestrictionUserTypeList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_RestrictionUserTypeList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RestrictionUserType.h" + +#endif /* _spatem_ts_RestrictionUserTypeList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RoadLaneSetList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RoadLaneSetList.h new file mode 100644 index 000000000..4d32301d0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RoadLaneSetList_H_ +#define _spatem_ts_RoadLaneSetList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_GenericLane; + +/* spatem_ts_RoadLaneSetList */ +typedef struct spatem_ts_RoadLaneSetList { + A_SEQUENCE_OF(struct spatem_ts_GenericLane) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_RoadLaneSetList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RoadLaneSetList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_RoadLaneSetList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_RoadLaneSetList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_RoadLaneSetList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_GenericLane.h" + +#endif /* _spatem_ts_RoadLaneSetList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RoadRegulatorID.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RoadRegulatorID.h new file mode 100644 index 000000000..04ff2d44a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RoadRegulatorID_H_ +#define _spatem_ts_RoadRegulatorID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_RoadRegulatorID */ +typedef long spatem_ts_RoadRegulatorID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_RoadRegulatorID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RoadRegulatorID; +asn_struct_free_f spatem_ts_RoadRegulatorID_free; +asn_struct_print_f spatem_ts_RoadRegulatorID_print; +asn_constr_check_f spatem_ts_RoadRegulatorID_constraint; +per_type_decoder_f spatem_ts_RoadRegulatorID_decode_uper; +per_type_encoder_f spatem_ts_RoadRegulatorID_encode_uper; +per_type_decoder_f spatem_ts_RoadRegulatorID_decode_aper; +per_type_encoder_f spatem_ts_RoadRegulatorID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RoadRegulatorID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RoadSegment.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RoadSegment.h new file mode 100644 index 000000000..7446753f1 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RoadSegment_H_ +#define _spatem_ts_RoadSegment_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_DescriptiveName.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RoadSegmentReferenceID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_MsgCount.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Position3D.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneWidth.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RoadLaneSetList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_SpeedLimitList; +struct spatem_ts_Reg_RoadSegment; + +/* spatem_ts_RoadSegment */ +typedef struct spatem_ts_RoadSegment { + spatem_ts_DescriptiveName_t *name; /* OPTIONAL */ + spatem_ts_RoadSegmentReferenceID_t id; + spatem_ts_MsgCount_t revision; + spatem_ts_Position3D_t refPoint; + spatem_ts_LaneWidth_t *laneWidth; /* OPTIONAL */ + struct spatem_ts_SpeedLimitList *speedLimits; /* OPTIONAL */ + spatem_ts_RoadLaneSetList_t roadLaneSet; + struct spatem_ts_RoadSegment__regional { + A_SEQUENCE_OF(struct spatem_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; +} spatem_ts_RoadSegment_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RoadSegment; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_RoadSegment_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_RoadSegment_1[8]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_SpeedLimitList.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_RoadSegment_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RoadSegmentID.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RoadSegmentID.h new file mode 100644 index 000000000..709cd5e7f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RoadSegmentID_H_ +#define _spatem_ts_RoadSegmentID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_RoadSegmentID */ +typedef long spatem_ts_RoadSegmentID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_RoadSegmentID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RoadSegmentID; +asn_struct_free_f spatem_ts_RoadSegmentID_free; +asn_struct_print_f spatem_ts_RoadSegmentID_print; +asn_constr_check_f spatem_ts_RoadSegmentID_constraint; +per_type_decoder_f spatem_ts_RoadSegmentID_decode_uper; +per_type_encoder_f spatem_ts_RoadSegmentID_encode_uper; +per_type_decoder_f spatem_ts_RoadSegmentID_decode_aper; +per_type_encoder_f spatem_ts_RoadSegmentID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RoadSegmentID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RoadSegmentList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RoadSegmentList.h new file mode 100644 index 000000000..9227264c7 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RoadSegmentList_H_ +#define _spatem_ts_RoadSegmentList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_RoadSegment; + +/* spatem_ts_RoadSegmentList */ +typedef struct spatem_ts_RoadSegmentList { + A_SEQUENCE_OF(struct spatem_ts_RoadSegment) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_RoadSegmentList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RoadSegmentList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_RoadSegmentList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_RoadSegmentList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_RoadSegmentList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RoadSegment.h" + +#endif /* _spatem_ts_RoadSegmentList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RoadSegmentReferenceID.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RoadSegmentReferenceID.h new file mode 100644 index 000000000..2605cde0b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RoadSegmentReferenceID_H_ +#define _spatem_ts_RoadSegmentReferenceID_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RoadRegulatorID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RoadSegmentID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_RoadSegmentReferenceID */ +typedef struct spatem_ts_RoadSegmentReferenceID { + spatem_ts_RoadRegulatorID_t *region; /* OPTIONAL */ + spatem_ts_RoadSegmentID_t id; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_RoadSegmentReferenceID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RoadSegmentReferenceID; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_RoadSegmentReferenceID_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_RoadSegmentReferenceID_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RoadSegmentReferenceID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RoadType.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RoadType.h new file mode 100644 index 000000000..56514b134 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RoadType.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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RoadType_H_ +#define _spatem_ts_RoadType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_RoadType { + spatem_ts_RoadType_urban_NoStructuralSeparationToOppositeLanes = 0, + spatem_ts_RoadType_urban_WithStructuralSeparationToOppositeLanes = 1, + spatem_ts_RoadType_nonUrban_NoStructuralSeparationToOppositeLanes = 2, + spatem_ts_RoadType_nonUrban_WithStructuralSeparationToOppositeLanes = 3 +} e_spatem_ts_RoadType; + +/* spatem_ts_RoadType */ +typedef long spatem_ts_RoadType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RoadType; +asn_struct_free_f spatem_ts_RoadType_free; +asn_struct_print_f spatem_ts_RoadType_print; +asn_constr_check_f spatem_ts_RoadType_constraint; +per_type_decoder_f spatem_ts_RoadType_decode_uper; +per_type_encoder_f spatem_ts_RoadType_encode_uper; +per_type_decoder_f spatem_ts_RoadType_decode_aper; +per_type_encoder_f spatem_ts_RoadType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RoadType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RoadwayCrownAngle.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RoadwayCrownAngle.h new file mode 100644 index 000000000..37926e673 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RoadwayCrownAngle_H_ +#define _spatem_ts_RoadwayCrownAngle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_RoadwayCrownAngle */ +typedef long spatem_ts_RoadwayCrownAngle_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_RoadwayCrownAngle_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RoadwayCrownAngle; +asn_struct_free_f spatem_ts_RoadwayCrownAngle_free; +asn_struct_print_f spatem_ts_RoadwayCrownAngle_print; +asn_constr_check_f spatem_ts_RoadwayCrownAngle_constraint; +per_type_decoder_f spatem_ts_RoadwayCrownAngle_decode_uper; +per_type_encoder_f spatem_ts_RoadwayCrownAngle_encode_uper; +per_type_decoder_f spatem_ts_RoadwayCrownAngle_decode_aper; +per_type_encoder_f spatem_ts_RoadwayCrownAngle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RoadwayCrownAngle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RoadworksSubCauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RoadworksSubCauseCode.h new file mode 100644 index 000000000..eeda3ac24 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_RoadworksSubCauseCode_H_ +#define _spatem_ts_RoadworksSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_RoadworksSubCauseCode { + spatem_ts_RoadworksSubCauseCode_unavailable = 0, + spatem_ts_RoadworksSubCauseCode_majorRoadworks = 1, + spatem_ts_RoadworksSubCauseCode_roadMarkingWork = 2, + spatem_ts_RoadworksSubCauseCode_slowMovingRoadMaintenance = 3, + spatem_ts_RoadworksSubCauseCode_shortTermStationaryRoadworks = 4, + spatem_ts_RoadworksSubCauseCode_streetCleaning = 5, + spatem_ts_RoadworksSubCauseCode_winterService = 6 +} e_spatem_ts_RoadworksSubCauseCode; + +/* spatem_ts_RoadworksSubCauseCode */ +typedef long spatem_ts_RoadworksSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_RoadworksSubCauseCode; +asn_struct_free_f spatem_ts_RoadworksSubCauseCode_free; +asn_struct_print_f spatem_ts_RoadworksSubCauseCode_print; +asn_constr_check_f spatem_ts_RoadworksSubCauseCode_constraint; +per_type_decoder_f spatem_ts_RoadworksSubCauseCode_decode_uper; +per_type_encoder_f spatem_ts_RoadworksSubCauseCode_encode_uper; +per_type_decoder_f spatem_ts_RoadworksSubCauseCode_decode_aper; +per_type_encoder_f spatem_ts_RoadworksSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_RoadworksSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SPAT.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SPAT.h new file mode 100644 index 000000000..12cd39756 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SPAT.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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SPAT_H_ +#define _spatem_ts_SPAT_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_MinuteOfTheYear.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_DescriptiveName.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionStateList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_Reg_SPAT; + +/* spatem_ts_SPAT */ +typedef struct spatem_ts_SPAT { + spatem_ts_MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + spatem_ts_DescriptiveName_t *name; /* OPTIONAL */ + spatem_ts_IntersectionStateList_t intersections; + struct spatem_ts_SPAT__regional { + A_SEQUENCE_OF(struct spatem_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; +} spatem_ts_SPAT_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SPAT; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_SPAT_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_SPAT_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_SPAT_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SPATEM.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SPATEM.h new file mode 100644 index 000000000..ada9d4191 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SPATEM.h @@ -0,0 +1,40 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPATEM-PDU-Descriptions" + * found in "/input/SPATEM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SPATEM_H_ +#define _spatem_ts_SPATEM_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_ItsPduHeader.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_SPAT.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_SPATEM */ +typedef struct spatem_ts_SPATEM { + spatem_ts_ItsPduHeader_t header; + spatem_ts_SPAT_t spat; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_SPATEM_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SPATEM; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SPATEM_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Scale-B12.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Scale-B12.h new file mode 100644 index 000000000..b73b13b5a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Scale_B12_H_ +#define _spatem_ts_Scale_B12_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_Scale-B12 */ +typedef long spatem_ts_Scale_B12_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_Scale_B12_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Scale_B12; +asn_struct_free_f spatem_ts_Scale_B12_free; +asn_struct_print_f spatem_ts_Scale_B12_print; +asn_constr_check_f spatem_ts_Scale_B12_constraint; +per_type_decoder_f spatem_ts_Scale_B12_decode_uper; +per_type_encoder_f spatem_ts_Scale_B12_encode_uper; +per_type_decoder_f spatem_ts_Scale_B12_decode_aper; +per_type_encoder_f spatem_ts_Scale_B12_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Scale_B12_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SegmentAttributeXY.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SegmentAttributeXY.h new file mode 100644 index 000000000..225888ce3 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SegmentAttributeXY_H_ +#define _spatem_ts_SegmentAttributeXY_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_SegmentAttributeXY { + spatem_ts_SegmentAttributeXY_reserved = 0, + spatem_ts_SegmentAttributeXY_doNotBlock = 1, + spatem_ts_SegmentAttributeXY_whiteLine = 2, + spatem_ts_SegmentAttributeXY_mergingLaneLeft = 3, + spatem_ts_SegmentAttributeXY_mergingLaneRight = 4, + spatem_ts_SegmentAttributeXY_curbOnLeft = 5, + spatem_ts_SegmentAttributeXY_curbOnRight = 6, + spatem_ts_SegmentAttributeXY_loadingzoneOnLeft = 7, + spatem_ts_SegmentAttributeXY_loadingzoneOnRight = 8, + spatem_ts_SegmentAttributeXY_turnOutPointOnLeft = 9, + spatem_ts_SegmentAttributeXY_turnOutPointOnRight = 10, + spatem_ts_SegmentAttributeXY_adjacentParkingOnLeft = 11, + spatem_ts_SegmentAttributeXY_adjacentParkingOnRight = 12, + spatem_ts_SegmentAttributeXY_adjacentBikeLaneOnLeft = 13, + spatem_ts_SegmentAttributeXY_adjacentBikeLaneOnRight = 14, + spatem_ts_SegmentAttributeXY_sharedBikeLane = 15, + spatem_ts_SegmentAttributeXY_bikeBoxInFront = 16, + spatem_ts_SegmentAttributeXY_transitStopOnLeft = 17, + spatem_ts_SegmentAttributeXY_transitStopOnRight = 18, + spatem_ts_SegmentAttributeXY_transitStopInLane = 19, + spatem_ts_SegmentAttributeXY_sharedWithTrackedVehicle = 20, + spatem_ts_SegmentAttributeXY_safeIsland = 21, + spatem_ts_SegmentAttributeXY_lowCurbsPresent = 22, + spatem_ts_SegmentAttributeXY_rumbleStripPresent = 23, + spatem_ts_SegmentAttributeXY_audibleSignalingPresent = 24, + spatem_ts_SegmentAttributeXY_adaptiveTimingPresent = 25, + spatem_ts_SegmentAttributeXY_rfSignalRequestPresent = 26, + spatem_ts_SegmentAttributeXY_partialCurbIntrusion = 27, + spatem_ts_SegmentAttributeXY_taperToLeft = 28, + spatem_ts_SegmentAttributeXY_taperToRight = 29, + spatem_ts_SegmentAttributeXY_taperToCenterLine = 30, + spatem_ts_SegmentAttributeXY_parallelParking = 31, + spatem_ts_SegmentAttributeXY_headInParking = 32, + spatem_ts_SegmentAttributeXY_freeParking = 33, + spatem_ts_SegmentAttributeXY_timeRestrictionsOnParking = 34, + spatem_ts_SegmentAttributeXY_costToPark = 35, + spatem_ts_SegmentAttributeXY_midBlockCurbPresent = 36, + spatem_ts_SegmentAttributeXY_unEvenPavementPresent = 37 + /* + * Enumeration is extensible + */ +} e_spatem_ts_SegmentAttributeXY; + +/* spatem_ts_SegmentAttributeXY */ +typedef long spatem_ts_SegmentAttributeXY_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_SegmentAttributeXY_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SegmentAttributeXY; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_SegmentAttributeXY_specs_1; +asn_struct_free_f spatem_ts_SegmentAttributeXY_free; +asn_struct_print_f spatem_ts_SegmentAttributeXY_print; +asn_constr_check_f spatem_ts_SegmentAttributeXY_constraint; +per_type_decoder_f spatem_ts_SegmentAttributeXY_decode_uper; +per_type_encoder_f spatem_ts_SegmentAttributeXY_encode_uper; +per_type_decoder_f spatem_ts_SegmentAttributeXY_decode_aper; +per_type_encoder_f spatem_ts_SegmentAttributeXY_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SegmentAttributeXY_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SegmentAttributeXYList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SegmentAttributeXYList.h new file mode 100644 index 000000000..0d00495a0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SegmentAttributeXYList_H_ +#define _spatem_ts_SegmentAttributeXYList_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_SegmentAttributeXY.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_SegmentAttributeXYList */ +typedef struct spatem_ts_SegmentAttributeXYList { + A_SEQUENCE_OF(spatem_ts_SegmentAttributeXY_t) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_SegmentAttributeXYList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SegmentAttributeXYList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_SegmentAttributeXYList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_SegmentAttributeXYList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_SegmentAttributeXYList_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SegmentAttributeXYList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SemiAxisLength.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SemiAxisLength.h new file mode 100644 index 000000000..267bba682 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SemiAxisLength_H_ +#define _spatem_ts_SemiAxisLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_SemiAxisLength { + spatem_ts_SemiAxisLength_oneCentimeter = 1, + spatem_ts_SemiAxisLength_outOfRange = 4094, + spatem_ts_SemiAxisLength_unavailable = 4095 +} e_spatem_ts_SemiAxisLength; + +/* spatem_ts_SemiAxisLength */ +typedef long spatem_ts_SemiAxisLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_SemiAxisLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SemiAxisLength; +asn_struct_free_f spatem_ts_SemiAxisLength_free; +asn_struct_print_f spatem_ts_SemiAxisLength_print; +asn_constr_check_f spatem_ts_SemiAxisLength_constraint; +per_type_decoder_f spatem_ts_SemiAxisLength_decode_uper; +per_type_encoder_f spatem_ts_SemiAxisLength_encode_uper; +per_type_decoder_f spatem_ts_SemiAxisLength_decode_aper; +per_type_encoder_f spatem_ts_SemiAxisLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SemiAxisLength_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SemiMajorAxisAccuracy.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SemiMajorAxisAccuracy.h new file mode 100644 index 000000000..2dd1bb7de --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SemiMajorAxisAccuracy_H_ +#define _spatem_ts_SemiMajorAxisAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_SemiMajorAxisAccuracy */ +typedef long spatem_ts_SemiMajorAxisAccuracy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_SemiMajorAxisAccuracy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SemiMajorAxisAccuracy; +asn_struct_free_f spatem_ts_SemiMajorAxisAccuracy_free; +asn_struct_print_f spatem_ts_SemiMajorAxisAccuracy_print; +asn_constr_check_f spatem_ts_SemiMajorAxisAccuracy_constraint; +per_type_decoder_f spatem_ts_SemiMajorAxisAccuracy_decode_uper; +per_type_encoder_f spatem_ts_SemiMajorAxisAccuracy_encode_uper; +per_type_decoder_f spatem_ts_SemiMajorAxisAccuracy_decode_aper; +per_type_encoder_f spatem_ts_SemiMajorAxisAccuracy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SemiMajorAxisAccuracy_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SemiMajorAxisOrientation.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SemiMajorAxisOrientation.h new file mode 100644 index 000000000..d3575fe9f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SemiMajorAxisOrientation_H_ +#define _spatem_ts_SemiMajorAxisOrientation_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_SemiMajorAxisOrientation */ +typedef long spatem_ts_SemiMajorAxisOrientation_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_SemiMajorAxisOrientation_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SemiMajorAxisOrientation; +asn_struct_free_f spatem_ts_SemiMajorAxisOrientation_free; +asn_struct_print_f spatem_ts_SemiMajorAxisOrientation_print; +asn_constr_check_f spatem_ts_SemiMajorAxisOrientation_constraint; +per_type_decoder_f spatem_ts_SemiMajorAxisOrientation_decode_uper; +per_type_encoder_f spatem_ts_SemiMajorAxisOrientation_encode_uper; +per_type_decoder_f spatem_ts_SemiMajorAxisOrientation_decode_aper; +per_type_encoder_f spatem_ts_SemiMajorAxisOrientation_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SemiMajorAxisOrientation_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SemiMinorAxisAccuracy.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SemiMinorAxisAccuracy.h new file mode 100644 index 000000000..e8ff74f36 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SemiMinorAxisAccuracy_H_ +#define _spatem_ts_SemiMinorAxisAccuracy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_SemiMinorAxisAccuracy */ +typedef long spatem_ts_SemiMinorAxisAccuracy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_SemiMinorAxisAccuracy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SemiMinorAxisAccuracy; +asn_struct_free_f spatem_ts_SemiMinorAxisAccuracy_free; +asn_struct_print_f spatem_ts_SemiMinorAxisAccuracy_print; +asn_constr_check_f spatem_ts_SemiMinorAxisAccuracy_constraint; +per_type_decoder_f spatem_ts_SemiMinorAxisAccuracy_decode_uper; +per_type_encoder_f spatem_ts_SemiMinorAxisAccuracy_encode_uper; +per_type_decoder_f spatem_ts_SemiMinorAxisAccuracy_decode_aper; +per_type_encoder_f spatem_ts_SemiMinorAxisAccuracy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SemiMinorAxisAccuracy_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SequenceNumber.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SequenceNumber.h new file mode 100644 index 000000000..a024cef5d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SequenceNumber_H_ +#define _spatem_ts_SequenceNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_SequenceNumber */ +typedef long spatem_ts_SequenceNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_SequenceNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SequenceNumber; +asn_struct_free_f spatem_ts_SequenceNumber_free; +asn_struct_print_f spatem_ts_SequenceNumber_print; +asn_constr_check_f spatem_ts_SequenceNumber_constraint; +per_type_decoder_f spatem_ts_SequenceNumber_decode_uper; +per_type_encoder_f spatem_ts_SequenceNumber_encode_uper; +per_type_decoder_f spatem_ts_SequenceNumber_decode_aper; +per_type_encoder_f spatem_ts_SequenceNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SequenceNumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ServiceApplicationLimit.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ServiceApplicationLimit.h new file mode 100644 index 000000000..b3dd63620 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ServiceApplicationLimit_H_ +#define _spatem_ts_ServiceApplicationLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_ServiceApplicationLimit { + spatem_ts_ServiceApplicationLimit_notForPostpayment = 0, + spatem_ts_ServiceApplicationLimit_notForPrepayment = 1, + spatem_ts_ServiceApplicationLimit_notForVehicleaccess = 2, + spatem_ts_ServiceApplicationLimit_notForFleetcontrol = 3, + spatem_ts_ServiceApplicationLimit_issuerSpecificRestriction1 = 4, + spatem_ts_ServiceApplicationLimit_issuerSpecificRestriction2 = 5, + spatem_ts_ServiceApplicationLimit_issuerSpecificRestriction3 = 6, + spatem_ts_ServiceApplicationLimit_issuerSpecificRestriction4 = 7 +} e_spatem_ts_ServiceApplicationLimit; + +/* spatem_ts_ServiceApplicationLimit */ +typedef BIT_STRING_t spatem_ts_ServiceApplicationLimit_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_ServiceApplicationLimit_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ServiceApplicationLimit; +asn_struct_free_f spatem_ts_ServiceApplicationLimit_free; +asn_struct_print_f spatem_ts_ServiceApplicationLimit_print; +asn_constr_check_f spatem_ts_ServiceApplicationLimit_constraint; +per_type_decoder_f spatem_ts_ServiceApplicationLimit_decode_uper; +per_type_encoder_f spatem_ts_ServiceApplicationLimit_encode_uper; +per_type_decoder_f spatem_ts_ServiceApplicationLimit_decode_aper; +per_type_encoder_f spatem_ts_ServiceApplicationLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_ServiceApplicationLimit_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ServiceNumber.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ServiceNumber.h new file mode 100644 index 000000000..2b49f7b0a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ServiceNumber_H_ +#define _spatem_ts_ServiceNumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_ServiceNumber */ +typedef BIT_STRING_t spatem_ts_ServiceNumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_ServiceNumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ServiceNumber; +asn_struct_free_f spatem_ts_ServiceNumber_free; +asn_struct_print_f spatem_ts_ServiceNumber_print; +asn_constr_check_f spatem_ts_ServiceNumber_constraint; +per_type_decoder_f spatem_ts_ServiceNumber_decode_uper; +per_type_encoder_f spatem_ts_ServiceNumber_encode_uper; +per_type_decoder_f spatem_ts_ServiceNumber_decode_aper; +per_type_encoder_f spatem_ts_ServiceNumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_ServiceNumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalControlZone.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalControlZone.h new file mode 100644 index 000000000..a1ba1d814 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SignalControlZone_H_ +#define _spatem_ts_SignalControlZone_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_SignalControlZone */ +typedef struct spatem_ts_SignalControlZone { + spatem_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; +} spatem_ts_SignalControlZone_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalControlZone; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_SignalControlZone_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_SignalControlZone_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SignalControlZone_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalGroupID.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalGroupID.h new file mode 100644 index 000000000..53ea64b53 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SignalGroupID_H_ +#define _spatem_ts_SignalGroupID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_SignalGroupID */ +typedef long spatem_ts_SignalGroupID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_SignalGroupID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalGroupID; +asn_struct_free_f spatem_ts_SignalGroupID_free; +asn_struct_print_f spatem_ts_SignalGroupID_print; +asn_constr_check_f spatem_ts_SignalGroupID_constraint; +per_type_decoder_f spatem_ts_SignalGroupID_decode_uper; +per_type_encoder_f spatem_ts_SignalGroupID_encode_uper; +per_type_decoder_f spatem_ts_SignalGroupID_decode_aper; +per_type_encoder_f spatem_ts_SignalGroupID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SignalGroupID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalHeadLocation.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalHeadLocation.h new file mode 100644 index 000000000..255aa4bca --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SignalHeadLocation_H_ +#define _spatem_ts_SignalHeadLocation_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_NodeOffsetPointXY.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_DeltaAltitude.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalGroupID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_SignalHeadLocation */ +typedef struct spatem_ts_SignalHeadLocation { + spatem_ts_NodeOffsetPointXY_t nodeXY; + spatem_ts_DeltaAltitude_t nodeZ; + spatem_ts_SignalGroupID_t signalGroupID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_SignalHeadLocation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalHeadLocation; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_SignalHeadLocation_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_SignalHeadLocation_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SignalHeadLocation_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalHeadLocationList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalHeadLocationList.h new file mode 100644 index 000000000..03e7e7834 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SignalHeadLocationList_H_ +#define _spatem_ts_SignalHeadLocationList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_SignalHeadLocation; + +/* spatem_ts_SignalHeadLocationList */ +typedef struct spatem_ts_SignalHeadLocationList { + A_SEQUENCE_OF(struct spatem_ts_SignalHeadLocation) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_SignalHeadLocationList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalHeadLocationList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_SignalHeadLocationList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_SignalHeadLocationList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_SignalHeadLocationList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalHeadLocation.h" + +#endif /* _spatem_ts_SignalHeadLocationList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalRequest.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalRequest.h new file mode 100644 index 000000000..a6c70f8d3 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SignalRequest_H_ +#define _spatem_ts_SignalRequest_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionReferenceID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RequestID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_PriorityRequestType.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionAccessPoint.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_IntersectionAccessPoint; +struct spatem_ts_Reg_SignalRequest; + +/* spatem_ts_SignalRequest */ +typedef struct spatem_ts_SignalRequest { + spatem_ts_IntersectionReferenceID_t id; + spatem_ts_RequestID_t requestID; + spatem_ts_PriorityRequestType_t requestType; + spatem_ts_IntersectionAccessPoint_t inBoundLane; + struct spatem_ts_IntersectionAccessPoint *outBoundLane; /* OPTIONAL */ + struct spatem_ts_SignalRequest__regional { + A_SEQUENCE_OF(struct spatem_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; +} spatem_ts_SignalRequest_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalRequest; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_SignalRequest_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_SignalRequest_1[6]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionAccessPoint.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_SignalRequest_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalRequestList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalRequestList.h new file mode 100644 index 000000000..85c0041c8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SignalRequestList_H_ +#define _spatem_ts_SignalRequestList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_SignalRequestPackage; + +/* spatem_ts_SignalRequestList */ +typedef struct spatem_ts_SignalRequestList { + A_SEQUENCE_OF(struct spatem_ts_SignalRequestPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_SignalRequestList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalRequestList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_SignalRequestList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_SignalRequestList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_SignalRequestList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalRequestPackage.h" + +#endif /* _spatem_ts_SignalRequestList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalRequestMessage.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalRequestMessage.h new file mode 100644 index 000000000..e79049beb --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SignalRequestMessage_H_ +#define _spatem_ts_SignalRequestMessage_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_MinuteOfTheYear.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_DSecond.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_MsgCount.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RequestorDescription.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_SignalRequestList; +struct spatem_ts_Reg_SignalRequestMessage; + +/* spatem_ts_SignalRequestMessage */ +typedef struct spatem_ts_SignalRequestMessage { + spatem_ts_MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + spatem_ts_DSecond_t second; + spatem_ts_MsgCount_t *sequenceNumber; /* OPTIONAL */ + struct spatem_ts_SignalRequestList *requests; /* OPTIONAL */ + spatem_ts_RequestorDescription_t requestor; + struct spatem_ts_SignalRequestMessage__regional { + A_SEQUENCE_OF(struct spatem_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; +} spatem_ts_SignalRequestMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalRequestMessage; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalRequestList.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_SignalRequestMessage_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalRequestPackage.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalRequestPackage.h new file mode 100644 index 000000000..0aced8d1c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SignalRequestPackage_H_ +#define _spatem_ts_SignalRequestPackage_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalRequest.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_MinuteOfTheYear.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_DSecond.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_Reg_SignalRequestPackage; + +/* spatem_ts_SignalRequestPackage */ +typedef struct spatem_ts_SignalRequestPackage { + spatem_ts_SignalRequest_t request; + spatem_ts_MinuteOfTheYear_t *minute; /* OPTIONAL */ + spatem_ts_DSecond_t *second; /* OPTIONAL */ + spatem_ts_DSecond_t *duration; /* OPTIONAL */ + struct spatem_ts_SignalRequestPackage__regional { + A_SEQUENCE_OF(struct spatem_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; +} spatem_ts_SignalRequestPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalRequestPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_SignalRequestPackage_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_SignalRequestPackage_1[5]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_SignalRequestPackage_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalRequesterInfo.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalRequesterInfo.h new file mode 100644 index 000000000..9cbc934d9 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SignalRequesterInfo_H_ +#define _spatem_ts_SignalRequesterInfo_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_VehicleID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RequestID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_MsgCount.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_BasicVehicleRole.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_RequestorType; + +/* spatem_ts_SignalRequesterInfo */ +typedef struct spatem_ts_SignalRequesterInfo { + spatem_ts_VehicleID_t id; + spatem_ts_RequestID_t request; + spatem_ts_MsgCount_t sequenceNumber; + spatem_ts_BasicVehicleRole_t *role; /* OPTIONAL */ + struct spatem_ts_RequestorType *typeData; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_SignalRequesterInfo_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalRequesterInfo; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_SignalRequesterInfo_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_SignalRequesterInfo_1[5]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RequestorType.h" + +#endif /* _spatem_ts_SignalRequesterInfo_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalStatus.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalStatus.h new file mode 100644 index 000000000..69cb2a118 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SignalStatus_H_ +#define _spatem_ts_SignalStatus_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_MsgCount.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionReferenceID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalStatusPackageList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_Reg_SignalStatus; + +/* spatem_ts_SignalStatus */ +typedef struct spatem_ts_SignalStatus { + spatem_ts_MsgCount_t sequenceNumber; + spatem_ts_IntersectionReferenceID_t id; + spatem_ts_SignalStatusPackageList_t sigStatus; + struct spatem_ts_SignalStatus__regional { + A_SEQUENCE_OF(struct spatem_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; +} spatem_ts_SignalStatus_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalStatus; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_SignalStatus_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_SignalStatus_1[4]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_SignalStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalStatusList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalStatusList.h new file mode 100644 index 000000000..d3db61723 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SignalStatusList_H_ +#define _spatem_ts_SignalStatusList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_SignalStatus; + +/* spatem_ts_SignalStatusList */ +typedef struct spatem_ts_SignalStatusList { + A_SEQUENCE_OF(struct spatem_ts_SignalStatus) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_SignalStatusList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalStatusList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_SignalStatusList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_SignalStatusList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_SignalStatusList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalStatus.h" + +#endif /* _spatem_ts_SignalStatusList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalStatusMessage.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalStatusMessage.h new file mode 100644 index 000000000..5f24f07e8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SignalStatusMessage_H_ +#define _spatem_ts_SignalStatusMessage_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_MinuteOfTheYear.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_DSecond.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_MsgCount.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalStatusList.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_Reg_SignalStatusMessage; + +/* spatem_ts_SignalStatusMessage */ +typedef struct spatem_ts_SignalStatusMessage { + spatem_ts_MinuteOfTheYear_t *timeStamp; /* OPTIONAL */ + spatem_ts_DSecond_t second; + spatem_ts_MsgCount_t *sequenceNumber; /* OPTIONAL */ + spatem_ts_SignalStatusList_t status; + struct spatem_ts_SignalStatusMessage__regional { + A_SEQUENCE_OF(struct spatem_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; +} spatem_ts_SignalStatusMessage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalStatusMessage; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_SignalStatusMessage_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalStatusPackage-addGrpC.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalStatusPackage-addGrpC.h new file mode 100644 index 000000000..1b23bfc7a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SignalStatusPackage_addGrpC_H_ +#define _spatem_ts_SignalStatusPackage_addGrpC_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_DeltaTime.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RejectedReason.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_SignalStatusPackage-addGrpC */ +typedef struct spatem_ts_SignalStatusPackage_addGrpC { + spatem_ts_DeltaTime_t *synchToSchedule; /* OPTIONAL */ + spatem_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; +} spatem_ts_SignalStatusPackage_addGrpC_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalStatusPackage_addGrpC; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_SignalStatusPackage_addGrpC_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_SignalStatusPackage_addGrpC_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SignalStatusPackage_addGrpC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalStatusPackage.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalStatusPackage.h new file mode 100644 index 000000000..085146e72 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SignalStatusPackage_H_ +#define _spatem_ts_SignalStatusPackage_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionAccessPoint.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_MinuteOfTheYear.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_DSecond.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_PrioritizationResponseStatus.h" +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_SignalRequesterInfo; +struct spatem_ts_IntersectionAccessPoint; +struct spatem_ts_Reg_SignalStatusPackage; + +/* spatem_ts_SignalStatusPackage */ +typedef struct spatem_ts_SignalStatusPackage { + struct spatem_ts_SignalRequesterInfo *requester; /* OPTIONAL */ + spatem_ts_IntersectionAccessPoint_t inboundOn; + struct spatem_ts_IntersectionAccessPoint *outboundOn; /* OPTIONAL */ + spatem_ts_MinuteOfTheYear_t *minute; /* OPTIONAL */ + spatem_ts_DSecond_t *second; /* OPTIONAL */ + spatem_ts_DSecond_t *duration; /* OPTIONAL */ + spatem_ts_PrioritizationResponseStatus_t status; + struct spatem_ts_SignalStatusPackage__regional { + A_SEQUENCE_OF(struct spatem_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; +} spatem_ts_SignalStatusPackage_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalStatusPackage; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_SignalStatusPackage_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_SignalStatusPackage_1[8]; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalRequesterInfo.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionAccessPoint.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +#endif /* _spatem_ts_SignalStatusPackage_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalStatusPackageList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalStatusPackageList.h new file mode 100644 index 000000000..122151ac0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SignalStatusPackageList_H_ +#define _spatem_ts_SignalStatusPackageList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_SignalStatusPackage; + +/* spatem_ts_SignalStatusPackageList */ +typedef struct spatem_ts_SignalStatusPackageList { + A_SEQUENCE_OF(struct spatem_ts_SignalStatusPackage) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_SignalStatusPackageList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalStatusPackageList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_SignalStatusPackageList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_SignalStatusPackageList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_SignalStatusPackageList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalStatusPackage.h" + +#endif /* _spatem_ts_SignalStatusPackageList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalViolationSubCauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SignalViolationSubCauseCode.h new file mode 100644 index 000000000..6b95a87c2 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SignalViolationSubCauseCode_H_ +#define _spatem_ts_SignalViolationSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_SignalViolationSubCauseCode { + spatem_ts_SignalViolationSubCauseCode_unavailable = 0, + spatem_ts_SignalViolationSubCauseCode_stopSignViolation = 1, + spatem_ts_SignalViolationSubCauseCode_trafficLightViolation = 2, + spatem_ts_SignalViolationSubCauseCode_turningRegulationViolation = 3 +} e_spatem_ts_SignalViolationSubCauseCode; + +/* spatem_ts_SignalViolationSubCauseCode */ +typedef long spatem_ts_SignalViolationSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalViolationSubCauseCode; +asn_struct_free_f spatem_ts_SignalViolationSubCauseCode_free; +asn_struct_print_f spatem_ts_SignalViolationSubCauseCode_print; +asn_constr_check_f spatem_ts_SignalViolationSubCauseCode_constraint; +per_type_decoder_f spatem_ts_SignalViolationSubCauseCode_decode_uper; +per_type_encoder_f spatem_ts_SignalViolationSubCauseCode_encode_uper; +per_type_decoder_f spatem_ts_SignalViolationSubCauseCode_decode_aper; +per_type_encoder_f spatem_ts_SignalViolationSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SignalViolationSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SlowVehicleSubCauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SlowVehicleSubCauseCode.h new file mode 100644 index 000000000..d6bc5f5b6 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SlowVehicleSubCauseCode_H_ +#define _spatem_ts_SlowVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_SlowVehicleSubCauseCode { + spatem_ts_SlowVehicleSubCauseCode_unavailable = 0, + spatem_ts_SlowVehicleSubCauseCode_maintenanceVehicle = 1, + spatem_ts_SlowVehicleSubCauseCode_vehiclesSlowingToLookAtAccident = 2, + spatem_ts_SlowVehicleSubCauseCode_abnormalLoad = 3, + spatem_ts_SlowVehicleSubCauseCode_abnormalWideLoad = 4, + spatem_ts_SlowVehicleSubCauseCode_convoy = 5, + spatem_ts_SlowVehicleSubCauseCode_snowplough = 6, + spatem_ts_SlowVehicleSubCauseCode_deicing = 7, + spatem_ts_SlowVehicleSubCauseCode_saltingVehicles = 8 +} e_spatem_ts_SlowVehicleSubCauseCode; + +/* spatem_ts_SlowVehicleSubCauseCode */ +typedef long spatem_ts_SlowVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SlowVehicleSubCauseCode; +asn_struct_free_f spatem_ts_SlowVehicleSubCauseCode_free; +asn_struct_print_f spatem_ts_SlowVehicleSubCauseCode_print; +asn_constr_check_f spatem_ts_SlowVehicleSubCauseCode_constraint; +per_type_decoder_f spatem_ts_SlowVehicleSubCauseCode_decode_uper; +per_type_encoder_f spatem_ts_SlowVehicleSubCauseCode_encode_uper; +per_type_decoder_f spatem_ts_SlowVehicleSubCauseCode_decode_aper; +per_type_encoder_f spatem_ts_SlowVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SlowVehicleSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SpecialTransportType.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SpecialTransportType.h new file mode 100644 index 000000000..6165a6968 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SpecialTransportType.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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SpecialTransportType_H_ +#define _spatem_ts_SpecialTransportType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_SpecialTransportType { + spatem_ts_SpecialTransportType_heavyLoad = 0, + spatem_ts_SpecialTransportType_excessWidth = 1, + spatem_ts_SpecialTransportType_excessLength = 2, + spatem_ts_SpecialTransportType_excessHeight = 3 +} e_spatem_ts_SpecialTransportType; + +/* spatem_ts_SpecialTransportType */ +typedef BIT_STRING_t spatem_ts_SpecialTransportType_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SpecialTransportType; +asn_struct_free_f spatem_ts_SpecialTransportType_free; +asn_struct_print_f spatem_ts_SpecialTransportType_print; +asn_constr_check_f spatem_ts_SpecialTransportType_constraint; +per_type_decoder_f spatem_ts_SpecialTransportType_decode_uper; +per_type_encoder_f spatem_ts_SpecialTransportType_encode_uper; +per_type_decoder_f spatem_ts_SpecialTransportType_decode_aper; +per_type_encoder_f spatem_ts_SpecialTransportType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SpecialTransportType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Speed.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Speed.h new file mode 100644 index 000000000..07c1b1a8c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Speed.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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Speed_H_ +#define _spatem_ts_Speed_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_SpeedValue.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_SpeedConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_Speed */ +typedef struct spatem_ts_Speed { + spatem_ts_SpeedValue_t speedValue; + spatem_ts_SpeedConfidence_t speedConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_Speed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Speed; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Speed_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SpeedAdvice.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SpeedAdvice.h new file mode 100644 index 000000000..2b2143089 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SpeedAdvice_H_ +#define _spatem_ts_SpeedAdvice_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_SpeedAdvice */ +typedef long spatem_ts_SpeedAdvice_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_SpeedAdvice_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SpeedAdvice; +asn_struct_free_f spatem_ts_SpeedAdvice_free; +asn_struct_print_f spatem_ts_SpeedAdvice_print; +asn_constr_check_f spatem_ts_SpeedAdvice_constraint; +per_type_decoder_f spatem_ts_SpeedAdvice_decode_uper; +per_type_encoder_f spatem_ts_SpeedAdvice_encode_uper; +per_type_decoder_f spatem_ts_SpeedAdvice_decode_aper; +per_type_encoder_f spatem_ts_SpeedAdvice_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SpeedAdvice_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SpeedConfidence.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SpeedConfidence.h new file mode 100644 index 000000000..3d5c68cec --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SpeedConfidence_H_ +#define _spatem_ts_SpeedConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_SpeedConfidence { + spatem_ts_SpeedConfidence_equalOrWithinOneCentimeterPerSec = 1, + spatem_ts_SpeedConfidence_equalOrWithinOneMeterPerSec = 100, + spatem_ts_SpeedConfidence_outOfRange = 126, + spatem_ts_SpeedConfidence_unavailable = 127 +} e_spatem_ts_SpeedConfidence; + +/* spatem_ts_SpeedConfidence */ +typedef long spatem_ts_SpeedConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_SpeedConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SpeedConfidence; +asn_struct_free_f spatem_ts_SpeedConfidence_free; +asn_struct_print_f spatem_ts_SpeedConfidence_print; +asn_constr_check_f spatem_ts_SpeedConfidence_constraint; +per_type_decoder_f spatem_ts_SpeedConfidence_decode_uper; +per_type_encoder_f spatem_ts_SpeedConfidence_encode_uper; +per_type_decoder_f spatem_ts_SpeedConfidence_decode_aper; +per_type_encoder_f spatem_ts_SpeedConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SpeedConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SpeedConfidenceDSRC.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SpeedConfidenceDSRC.h new file mode 100644 index 000000000..ce8ad095f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SpeedConfidenceDSRC_H_ +#define _spatem_ts_SpeedConfidenceDSRC_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_SpeedConfidenceDSRC { + spatem_ts_SpeedConfidenceDSRC_unavailable = 0, + spatem_ts_SpeedConfidenceDSRC_prec100ms = 1, + spatem_ts_SpeedConfidenceDSRC_prec10ms = 2, + spatem_ts_SpeedConfidenceDSRC_prec5ms = 3, + spatem_ts_SpeedConfidenceDSRC_prec1ms = 4, + spatem_ts_SpeedConfidenceDSRC_prec0_1ms = 5, + spatem_ts_SpeedConfidenceDSRC_prec0_05ms = 6, + spatem_ts_SpeedConfidenceDSRC_prec0_01ms = 7 +} e_spatem_ts_SpeedConfidenceDSRC; + +/* spatem_ts_SpeedConfidenceDSRC */ +typedef long spatem_ts_SpeedConfidenceDSRC_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_SpeedConfidenceDSRC_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SpeedConfidenceDSRC; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_SpeedConfidenceDSRC_specs_1; +asn_struct_free_f spatem_ts_SpeedConfidenceDSRC_free; +asn_struct_print_f spatem_ts_SpeedConfidenceDSRC_print; +asn_constr_check_f spatem_ts_SpeedConfidenceDSRC_constraint; +per_type_decoder_f spatem_ts_SpeedConfidenceDSRC_decode_uper; +per_type_encoder_f spatem_ts_SpeedConfidenceDSRC_encode_uper; +per_type_decoder_f spatem_ts_SpeedConfidenceDSRC_decode_aper; +per_type_encoder_f spatem_ts_SpeedConfidenceDSRC_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SpeedConfidenceDSRC_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SpeedLimit.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SpeedLimit.h new file mode 100644 index 000000000..1f09a20c3 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SpeedLimit_H_ +#define _spatem_ts_SpeedLimit_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_SpeedLimit { + spatem_ts_SpeedLimit_oneKmPerHour = 1 +} e_spatem_ts_SpeedLimit; + +/* spatem_ts_SpeedLimit */ +typedef long spatem_ts_SpeedLimit_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SpeedLimit; +asn_struct_free_f spatem_ts_SpeedLimit_free; +asn_struct_print_f spatem_ts_SpeedLimit_print; +asn_constr_check_f spatem_ts_SpeedLimit_constraint; +per_type_decoder_f spatem_ts_SpeedLimit_decode_uper; +per_type_encoder_f spatem_ts_SpeedLimit_encode_uper; +per_type_decoder_f spatem_ts_SpeedLimit_decode_aper; +per_type_encoder_f spatem_ts_SpeedLimit_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SpeedLimit_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SpeedLimitList.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SpeedLimitList.h new file mode 100644 index 000000000..3d27ab519 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SpeedLimitList_H_ +#define _spatem_ts_SpeedLimitList_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_RegulatorySpeedLimit; + +/* spatem_ts_SpeedLimitList */ +typedef struct spatem_ts_SpeedLimitList { + A_SEQUENCE_OF(struct spatem_ts_RegulatorySpeedLimit) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_SpeedLimitList_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SpeedLimitList; +extern asn_SET_OF_specifics_t asn_SPC_spatem_ts_SpeedLimitList_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_SpeedLimitList_1[1]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_SpeedLimitList_constr_1; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_RegulatorySpeedLimit.h" + +#endif /* _spatem_ts_SpeedLimitList_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SpeedLimitType.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SpeedLimitType.h new file mode 100644 index 000000000..8ef398456 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SpeedLimitType_H_ +#define _spatem_ts_SpeedLimitType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_SpeedLimitType { + spatem_ts_SpeedLimitType_unknown = 0, + spatem_ts_SpeedLimitType_maxSpeedInSchoolZone = 1, + spatem_ts_SpeedLimitType_maxSpeedInSchoolZoneWhenChildrenArePresent = 2, + spatem_ts_SpeedLimitType_maxSpeedInConstructionZone = 3, + spatem_ts_SpeedLimitType_vehicleMinSpeed = 4, + spatem_ts_SpeedLimitType_vehicleMaxSpeed = 5, + spatem_ts_SpeedLimitType_vehicleNightMaxSpeed = 6, + spatem_ts_SpeedLimitType_truckMinSpeed = 7, + spatem_ts_SpeedLimitType_truckMaxSpeed = 8, + spatem_ts_SpeedLimitType_truckNightMaxSpeed = 9, + spatem_ts_SpeedLimitType_vehiclesWithTrailersMinSpeed = 10, + spatem_ts_SpeedLimitType_vehiclesWithTrailersMaxSpeed = 11, + spatem_ts_SpeedLimitType_vehiclesWithTrailersNightMaxSpeed = 12 + /* + * Enumeration is extensible + */ +} e_spatem_ts_SpeedLimitType; + +/* spatem_ts_SpeedLimitType */ +typedef long spatem_ts_SpeedLimitType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_SpeedLimitType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SpeedLimitType; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_SpeedLimitType_specs_1; +asn_struct_free_f spatem_ts_SpeedLimitType_free; +asn_struct_print_f spatem_ts_SpeedLimitType_print; +asn_constr_check_f spatem_ts_SpeedLimitType_constraint; +per_type_decoder_f spatem_ts_SpeedLimitType_decode_uper; +per_type_encoder_f spatem_ts_SpeedLimitType_encode_uper; +per_type_decoder_f spatem_ts_SpeedLimitType_decode_aper; +per_type_encoder_f spatem_ts_SpeedLimitType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SpeedLimitType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SpeedValue.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SpeedValue.h new file mode 100644 index 000000000..c4b96828c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SpeedValue_H_ +#define _spatem_ts_SpeedValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_SpeedValue { + spatem_ts_SpeedValue_standstill = 0, + spatem_ts_SpeedValue_oneCentimeterPerSec = 1, + spatem_ts_SpeedValue_unavailable = 16383 +} e_spatem_ts_SpeedValue; + +/* spatem_ts_SpeedValue */ +typedef long spatem_ts_SpeedValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_SpeedValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SpeedValue; +asn_struct_free_f spatem_ts_SpeedValue_free; +asn_struct_print_f spatem_ts_SpeedValue_print; +asn_constr_check_f spatem_ts_SpeedValue_constraint; +per_type_decoder_f spatem_ts_SpeedValue_decode_uper; +per_type_encoder_f spatem_ts_SpeedValue_encode_uper; +per_type_decoder_f spatem_ts_SpeedValue_decode_aper; +per_type_encoder_f spatem_ts_SpeedValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SpeedValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SpeedandHeadingandThrottleConfidence.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SpeedandHeadingandThrottleConfidence.h new file mode 100644 index 000000000..2629de38b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SpeedandHeadingandThrottleConfidence_H_ +#define _spatem_ts_SpeedandHeadingandThrottleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_HeadingConfidenceDSRC.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_SpeedConfidenceDSRC.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_ThrottleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_SpeedandHeadingandThrottleConfidence */ +typedef struct spatem_ts_SpeedandHeadingandThrottleConfidence { + spatem_ts_HeadingConfidenceDSRC_t heading; + spatem_ts_SpeedConfidenceDSRC_t speed; + spatem_ts_ThrottleConfidence_t throttle; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_SpeedandHeadingandThrottleConfidence_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SpeedandHeadingandThrottleConfidence; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_SpeedandHeadingandThrottleConfidence_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_SpeedandHeadingandThrottleConfidence_1[3]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SpeedandHeadingandThrottleConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_StartTime.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_StartTime.h new file mode 100644 index 000000000..28f2a9863 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_StartTime_H_ +#define _spatem_ts_StartTime_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_AviEriDateTime.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_StartTime */ +typedef spatem_ts_AviEriDateTime_t spatem_ts_StartTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_StartTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_StartTime; +asn_struct_free_f spatem_ts_StartTime_free; +asn_struct_print_f spatem_ts_StartTime_print; +asn_constr_check_f spatem_ts_StartTime_constraint; +per_type_decoder_f spatem_ts_StartTime_decode_uper; +per_type_encoder_f spatem_ts_StartTime_encode_uper; +per_type_decoder_f spatem_ts_StartTime_decode_aper; +per_type_encoder_f spatem_ts_StartTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_StartTime_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_StationID.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_StationID.h new file mode 100644 index 000000000..d0b16d869 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_StationID_H_ +#define _spatem_ts_StationID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_StationID */ +typedef unsigned long spatem_ts_StationID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_StationID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_StationID; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_StationID_specs_1; +asn_struct_free_f spatem_ts_StationID_free; +asn_struct_print_f spatem_ts_StationID_print; +asn_constr_check_f spatem_ts_StationID_constraint; +per_type_decoder_f spatem_ts_StationID_decode_uper; +per_type_encoder_f spatem_ts_StationID_encode_uper; +per_type_decoder_f spatem_ts_StationID_decode_aper; +per_type_encoder_f spatem_ts_StationID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_StationID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_StationType.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_StationType.h new file mode 100644 index 000000000..05b33637e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_StationType_H_ +#define _spatem_ts_StationType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_StationType { + spatem_ts_StationType_unknown = 0, + spatem_ts_StationType_pedestrian = 1, + spatem_ts_StationType_cyclist = 2, + spatem_ts_StationType_moped = 3, + spatem_ts_StationType_motorcycle = 4, + spatem_ts_StationType_passengerCar = 5, + spatem_ts_StationType_bus = 6, + spatem_ts_StationType_lightTruck = 7, + spatem_ts_StationType_heavyTruck = 8, + spatem_ts_StationType_trailer = 9, + spatem_ts_StationType_specialVehicles = 10, + spatem_ts_StationType_tram = 11, + spatem_ts_StationType_roadSideUnit = 15 +} e_spatem_ts_StationType; + +/* spatem_ts_StationType */ +typedef long spatem_ts_StationType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_StationType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_StationType; +asn_struct_free_f spatem_ts_StationType_free; +asn_struct_print_f spatem_ts_StationType_print; +asn_constr_check_f spatem_ts_StationType_constraint; +per_type_decoder_f spatem_ts_StationType_decode_uper; +per_type_encoder_f spatem_ts_StationType_encode_uper; +per_type_decoder_f spatem_ts_StationType_decode_aper; +per_type_encoder_f spatem_ts_StationType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_StationType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_StationarySince.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_StationarySince.h new file mode 100644 index 000000000..c59b46fdd --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_StationarySince_H_ +#define _spatem_ts_StationarySince_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_StationarySince { + spatem_ts_StationarySince_lessThan1Minute = 0, + spatem_ts_StationarySince_lessThan2Minutes = 1, + spatem_ts_StationarySince_lessThan15Minutes = 2, + spatem_ts_StationarySince_equalOrGreater15Minutes = 3 +} e_spatem_ts_StationarySince; + +/* spatem_ts_StationarySince */ +typedef long spatem_ts_StationarySince_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_StationarySince; +asn_struct_free_f spatem_ts_StationarySince_free; +asn_struct_print_f spatem_ts_StationarySince_print; +asn_constr_check_f spatem_ts_StationarySince_constraint; +per_type_decoder_f spatem_ts_StationarySince_decode_uper; +per_type_encoder_f spatem_ts_StationarySince_encode_uper; +per_type_decoder_f spatem_ts_StationarySince_decode_aper; +per_type_encoder_f spatem_ts_StationarySince_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_StationarySince_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_StationaryVehicleSubCauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_StationaryVehicleSubCauseCode.h new file mode 100644 index 000000000..fa251c713 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_StationaryVehicleSubCauseCode_H_ +#define _spatem_ts_StationaryVehicleSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_StationaryVehicleSubCauseCode { + spatem_ts_StationaryVehicleSubCauseCode_unavailable = 0, + spatem_ts_StationaryVehicleSubCauseCode_humanProblem = 1, + spatem_ts_StationaryVehicleSubCauseCode_vehicleBreakdown = 2, + spatem_ts_StationaryVehicleSubCauseCode_postCrash = 3, + spatem_ts_StationaryVehicleSubCauseCode_publicTransportStop = 4, + spatem_ts_StationaryVehicleSubCauseCode_carryingDangerousGoods = 5 +} e_spatem_ts_StationaryVehicleSubCauseCode; + +/* spatem_ts_StationaryVehicleSubCauseCode */ +typedef long spatem_ts_StationaryVehicleSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_StationaryVehicleSubCauseCode; +asn_struct_free_f spatem_ts_StationaryVehicleSubCauseCode_free; +asn_struct_print_f spatem_ts_StationaryVehicleSubCauseCode_print; +asn_constr_check_f spatem_ts_StationaryVehicleSubCauseCode_constraint; +per_type_decoder_f spatem_ts_StationaryVehicleSubCauseCode_decode_uper; +per_type_encoder_f spatem_ts_StationaryVehicleSubCauseCode_encode_uper; +per_type_decoder_f spatem_ts_StationaryVehicleSubCauseCode_decode_aper; +per_type_encoder_f spatem_ts_StationaryVehicleSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_StationaryVehicleSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SteeringWheelAngle.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SteeringWheelAngle.h new file mode 100644 index 000000000..8e3d4fce3 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SteeringWheelAngle_H_ +#define _spatem_ts_SteeringWheelAngle_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_SteeringWheelAngleValue.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_SteeringWheelAngleConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_SteeringWheelAngle */ +typedef struct spatem_ts_SteeringWheelAngle { + spatem_ts_SteeringWheelAngleValue_t steeringWheelAngleValue; + spatem_ts_SteeringWheelAngleConfidence_t steeringWheelAngleConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_SteeringWheelAngle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SteeringWheelAngle; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SteeringWheelAngle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SteeringWheelAngleConfidence.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SteeringWheelAngleConfidence.h new file mode 100644 index 000000000..8cadb8e27 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SteeringWheelAngleConfidence_H_ +#define _spatem_ts_SteeringWheelAngleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_SteeringWheelAngleConfidence { + spatem_ts_SteeringWheelAngleConfidence_equalOrWithinOnePointFiveDegree = 1, + spatem_ts_SteeringWheelAngleConfidence_outOfRange = 126, + spatem_ts_SteeringWheelAngleConfidence_unavailable = 127 +} e_spatem_ts_SteeringWheelAngleConfidence; + +/* spatem_ts_SteeringWheelAngleConfidence */ +typedef long spatem_ts_SteeringWheelAngleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_SteeringWheelAngleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SteeringWheelAngleConfidence; +asn_struct_free_f spatem_ts_SteeringWheelAngleConfidence_free; +asn_struct_print_f spatem_ts_SteeringWheelAngleConfidence_print; +asn_constr_check_f spatem_ts_SteeringWheelAngleConfidence_constraint; +per_type_decoder_f spatem_ts_SteeringWheelAngleConfidence_decode_uper; +per_type_encoder_f spatem_ts_SteeringWheelAngleConfidence_encode_uper; +per_type_decoder_f spatem_ts_SteeringWheelAngleConfidence_decode_aper; +per_type_encoder_f spatem_ts_SteeringWheelAngleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SteeringWheelAngleConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SteeringWheelAngleValue.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SteeringWheelAngleValue.h new file mode 100644 index 000000000..edc899afe --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SteeringWheelAngleValue_H_ +#define _spatem_ts_SteeringWheelAngleValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_SteeringWheelAngleValue { + spatem_ts_SteeringWheelAngleValue_straight = 0, + spatem_ts_SteeringWheelAngleValue_onePointFiveDegreesToRight = -1, + spatem_ts_SteeringWheelAngleValue_onePointFiveDegreesToLeft = 1, + spatem_ts_SteeringWheelAngleValue_unavailable = 512 +} e_spatem_ts_SteeringWheelAngleValue; + +/* spatem_ts_SteeringWheelAngleValue */ +typedef long spatem_ts_SteeringWheelAngleValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_SteeringWheelAngleValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SteeringWheelAngleValue; +asn_struct_free_f spatem_ts_SteeringWheelAngleValue_free; +asn_struct_print_f spatem_ts_SteeringWheelAngleValue_print; +asn_constr_check_f spatem_ts_SteeringWheelAngleValue_constraint; +per_type_decoder_f spatem_ts_SteeringWheelAngleValue_decode_uper; +per_type_encoder_f spatem_ts_SteeringWheelAngleValue_encode_uper; +per_type_decoder_f spatem_ts_SteeringWheelAngleValue_decode_aper; +per_type_encoder_f spatem_ts_SteeringWheelAngleValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SteeringWheelAngleValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_StopTime.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_StopTime.h new file mode 100644 index 000000000..e802c7d1d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_StopTime_H_ +#define _spatem_ts_StopTime_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_AviEriDateTime.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_StopTime */ +typedef spatem_ts_AviEriDateTime_t spatem_ts_StopTime_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_StopTime_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_StopTime; +asn_struct_free_f spatem_ts_StopTime_free; +asn_struct_print_f spatem_ts_StopTime_print; +asn_constr_check_f spatem_ts_StopTime_constraint; +per_type_decoder_f spatem_ts_StopTime_decode_uper; +per_type_encoder_f spatem_ts_StopTime_encode_uper; +per_type_decoder_f spatem_ts_StopTime_decode_aper; +per_type_encoder_f spatem_ts_StopTime_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_StopTime_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SubCauseCodeType.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_SubCauseCodeType.h new file mode 100644 index 000000000..a2067047d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_SubCauseCodeType_H_ +#define _spatem_ts_SubCauseCodeType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_SubCauseCodeType */ +typedef long spatem_ts_SubCauseCodeType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_SubCauseCodeType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_SubCauseCodeType; +asn_struct_free_f spatem_ts_SubCauseCodeType_free; +asn_struct_print_f spatem_ts_SubCauseCodeType_print; +asn_constr_check_f spatem_ts_SubCauseCodeType_constraint; +per_type_decoder_f spatem_ts_SubCauseCodeType_decode_uper; +per_type_encoder_f spatem_ts_SubCauseCodeType_encode_uper; +per_type_decoder_f spatem_ts_SubCauseCodeType_decode_aper; +per_type_encoder_f spatem_ts_SubCauseCodeType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_SubCauseCodeType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TaxCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TaxCode.h new file mode 100644 index 000000000..c6acc2f29 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_TaxCode_H_ +#define _spatem_ts_TaxCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_TaxCode */ +typedef OCTET_STRING_t spatem_ts_TaxCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_TaxCode; +asn_struct_free_f spatem_ts_TaxCode_free; +asn_struct_print_f spatem_ts_TaxCode_print; +asn_constr_check_f spatem_ts_TaxCode_constraint; +per_type_decoder_f spatem_ts_TaxCode_decode_uper; +per_type_encoder_f spatem_ts_TaxCode_encode_uper; +per_type_decoder_f spatem_ts_TaxCode_decode_aper; +per_type_encoder_f spatem_ts_TaxCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_TaxCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Temperature.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Temperature.h new file mode 100644 index 000000000..44ae647d3 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Temperature_H_ +#define _spatem_ts_Temperature_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_Temperature { + spatem_ts_Temperature_equalOrSmallerThanMinus60Deg = -60, + spatem_ts_Temperature_oneDegreeCelsius = 1, + spatem_ts_Temperature_equalOrGreaterThan67Deg = 67 +} e_spatem_ts_Temperature; + +/* spatem_ts_Temperature */ +typedef long spatem_ts_Temperature_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Temperature; +asn_struct_free_f spatem_ts_Temperature_free; +asn_struct_print_f spatem_ts_Temperature_print; +asn_constr_check_f spatem_ts_Temperature_constraint; +per_type_decoder_f spatem_ts_Temperature_decode_uper; +per_type_encoder_f spatem_ts_Temperature_encode_uper; +per_type_decoder_f spatem_ts_Temperature_decode_aper; +per_type_encoder_f spatem_ts_Temperature_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Temperature_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TemporaryID.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TemporaryID.h new file mode 100644 index 000000000..3337f2557 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_TemporaryID_H_ +#define _spatem_ts_TemporaryID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_TemporaryID */ +typedef OCTET_STRING_t spatem_ts_TemporaryID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_TemporaryID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_TemporaryID; +asn_struct_free_f spatem_ts_TemporaryID_free; +asn_struct_print_f spatem_ts_TemporaryID_print; +asn_constr_check_f spatem_ts_TemporaryID_constraint; +per_type_decoder_f spatem_ts_TemporaryID_decode_uper; +per_type_encoder_f spatem_ts_TemporaryID_encode_uper; +per_type_decoder_f spatem_ts_TemporaryID_decode_aper; +per_type_encoder_f spatem_ts_TemporaryID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_TemporaryID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ThrottleConfidence.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ThrottleConfidence.h new file mode 100644 index 000000000..76bf95c64 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ThrottleConfidence_H_ +#define _spatem_ts_ThrottleConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_ThrottleConfidence { + spatem_ts_ThrottleConfidence_unavailable = 0, + spatem_ts_ThrottleConfidence_prec10percent = 1, + spatem_ts_ThrottleConfidence_prec1percent = 2, + spatem_ts_ThrottleConfidence_prec0_5percent = 3 +} e_spatem_ts_ThrottleConfidence; + +/* spatem_ts_ThrottleConfidence */ +typedef long spatem_ts_ThrottleConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_ThrottleConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ThrottleConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_ThrottleConfidence_specs_1; +asn_struct_free_f spatem_ts_ThrottleConfidence_free; +asn_struct_print_f spatem_ts_ThrottleConfidence_print; +asn_constr_check_f spatem_ts_ThrottleConfidence_constraint; +per_type_decoder_f spatem_ts_ThrottleConfidence_decode_uper; +per_type_encoder_f spatem_ts_ThrottleConfidence_encode_uper; +per_type_decoder_f spatem_ts_ThrottleConfidence_decode_aper; +per_type_encoder_f spatem_ts_ThrottleConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_ThrottleConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TimeChangeDetails.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TimeChangeDetails.h new file mode 100644 index 000000000..2db86b8f8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_TimeChangeDetails_H_ +#define _spatem_ts_TimeChangeDetails_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_TimeMark.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_TimeIntervalConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_TimeChangeDetails */ +typedef struct spatem_ts_TimeChangeDetails { + spatem_ts_TimeMark_t *startTime; /* OPTIONAL */ + spatem_ts_TimeMark_t minEndTime; + spatem_ts_TimeMark_t *maxEndTime; /* OPTIONAL */ + spatem_ts_TimeMark_t *likelyTime; /* OPTIONAL */ + spatem_ts_TimeIntervalConfidence_t *confidence; /* OPTIONAL */ + spatem_ts_TimeMark_t *nextTime; /* OPTIONAL */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_TimeChangeDetails_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_TimeChangeDetails; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_TimeChangeDetails_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_TimeChangeDetails_1[6]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_TimeChangeDetails_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TimeConfidence.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TimeConfidence.h new file mode 100644 index 000000000..b0513d6fe --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_TimeConfidence_H_ +#define _spatem_ts_TimeConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_TimeConfidence { + spatem_ts_TimeConfidence_unavailable = 0, + spatem_ts_TimeConfidence_time_100_000 = 1, + spatem_ts_TimeConfidence_time_050_000 = 2, + spatem_ts_TimeConfidence_time_020_000 = 3, + spatem_ts_TimeConfidence_time_010_000 = 4, + spatem_ts_TimeConfidence_time_002_000 = 5, + spatem_ts_TimeConfidence_time_001_000 = 6, + spatem_ts_TimeConfidence_time_000_500 = 7, + spatem_ts_TimeConfidence_time_000_200 = 8, + spatem_ts_TimeConfidence_time_000_100 = 9, + spatem_ts_TimeConfidence_time_000_050 = 10, + spatem_ts_TimeConfidence_time_000_020 = 11, + spatem_ts_TimeConfidence_time_000_010 = 12, + spatem_ts_TimeConfidence_time_000_005 = 13, + spatem_ts_TimeConfidence_time_000_002 = 14, + spatem_ts_TimeConfidence_time_000_001 = 15, + spatem_ts_TimeConfidence_time_000_000_5 = 16, + spatem_ts_TimeConfidence_time_000_000_2 = 17, + spatem_ts_TimeConfidence_time_000_000_1 = 18, + spatem_ts_TimeConfidence_time_000_000_05 = 19, + spatem_ts_TimeConfidence_time_000_000_02 = 20, + spatem_ts_TimeConfidence_time_000_000_01 = 21, + spatem_ts_TimeConfidence_time_000_000_005 = 22, + spatem_ts_TimeConfidence_time_000_000_002 = 23, + spatem_ts_TimeConfidence_time_000_000_001 = 24, + spatem_ts_TimeConfidence_time_000_000_000_5 = 25, + spatem_ts_TimeConfidence_time_000_000_000_2 = 26, + spatem_ts_TimeConfidence_time_000_000_000_1 = 27, + spatem_ts_TimeConfidence_time_000_000_000_05 = 28, + spatem_ts_TimeConfidence_time_000_000_000_02 = 29, + spatem_ts_TimeConfidence_time_000_000_000_01 = 30, + spatem_ts_TimeConfidence_time_000_000_000_005 = 31, + spatem_ts_TimeConfidence_time_000_000_000_002 = 32, + spatem_ts_TimeConfidence_time_000_000_000_001 = 33, + spatem_ts_TimeConfidence_time_000_000_000_000_5 = 34, + spatem_ts_TimeConfidence_time_000_000_000_000_2 = 35, + spatem_ts_TimeConfidence_time_000_000_000_000_1 = 36, + spatem_ts_TimeConfidence_time_000_000_000_000_05 = 37, + spatem_ts_TimeConfidence_time_000_000_000_000_02 = 38, + spatem_ts_TimeConfidence_time_000_000_000_000_01 = 39 +} e_spatem_ts_TimeConfidence; + +/* spatem_ts_TimeConfidence */ +typedef long spatem_ts_TimeConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_TimeConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_TimeConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_TimeConfidence_specs_1; +asn_struct_free_f spatem_ts_TimeConfidence_free; +asn_struct_print_f spatem_ts_TimeConfidence_print; +asn_constr_check_f spatem_ts_TimeConfidence_constraint; +per_type_decoder_f spatem_ts_TimeConfidence_decode_uper; +per_type_encoder_f spatem_ts_TimeConfidence_encode_uper; +per_type_decoder_f spatem_ts_TimeConfidence_decode_aper; +per_type_encoder_f spatem_ts_TimeConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_TimeConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TimeIntervalConfidence.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TimeIntervalConfidence.h new file mode 100644 index 000000000..f91cfb580 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_TimeIntervalConfidence_H_ +#define _spatem_ts_TimeIntervalConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_TimeIntervalConfidence */ +typedef long spatem_ts_TimeIntervalConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_TimeIntervalConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_TimeIntervalConfidence; +asn_struct_free_f spatem_ts_TimeIntervalConfidence_free; +asn_struct_print_f spatem_ts_TimeIntervalConfidence_print; +asn_constr_check_f spatem_ts_TimeIntervalConfidence_constraint; +per_type_decoder_f spatem_ts_TimeIntervalConfidence_decode_uper; +per_type_encoder_f spatem_ts_TimeIntervalConfidence_encode_uper; +per_type_decoder_f spatem_ts_TimeIntervalConfidence_decode_aper; +per_type_encoder_f spatem_ts_TimeIntervalConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_TimeIntervalConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TimeMark.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TimeMark.h new file mode 100644 index 000000000..30afa7b66 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_TimeMark_H_ +#define _spatem_ts_TimeMark_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_TimeMark */ +typedef long spatem_ts_TimeMark_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_TimeMark_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_TimeMark; +asn_struct_free_f spatem_ts_TimeMark_free; +asn_struct_print_f spatem_ts_TimeMark_print; +asn_constr_check_f spatem_ts_TimeMark_constraint; +per_type_decoder_f spatem_ts_TimeMark_decode_uper; +per_type_encoder_f spatem_ts_TimeMark_encode_uper; +per_type_decoder_f spatem_ts_TimeMark_decode_aper; +per_type_encoder_f spatem_ts_TimeMark_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_TimeMark_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TimeReference.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TimeReference.h new file mode 100644 index 000000000..6653b3453 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_TimeReference_H_ +#define _spatem_ts_TimeReference_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_TimeReference { + spatem_ts_TimeReference_oneMilliSec = 1 +} e_spatem_ts_TimeReference; + +/* spatem_ts_TimeReference */ +typedef long spatem_ts_TimeReference_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_TimeReference_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_TimeReference; +asn_struct_free_f spatem_ts_TimeReference_free; +asn_struct_print_f spatem_ts_TimeReference_print; +asn_constr_check_f spatem_ts_TimeReference_constraint; +per_type_decoder_f spatem_ts_TimeReference_decode_uper; +per_type_encoder_f spatem_ts_TimeReference_encode_uper; +per_type_decoder_f spatem_ts_TimeReference_decode_aper; +per_type_encoder_f spatem_ts_TimeReference_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_TimeReference_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TimestampIts.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TimestampIts.h new file mode 100644 index 000000000..1afbbda7f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_TimestampIts_H_ +#define _spatem_ts_TimestampIts_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_TimestampIts { + spatem_ts_TimestampIts_utcStartOf2004 = 0, + spatem_ts_TimestampIts_oneMillisecAfterUTCStartOf2004 = 1 +} e_spatem_ts_TimestampIts; + +/* spatem_ts_TimestampIts */ +typedef INTEGER_t spatem_ts_TimestampIts_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_TimestampIts_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_TimestampIts; +asn_struct_free_f spatem_ts_TimestampIts_free; +asn_struct_print_f spatem_ts_TimestampIts_print; +asn_constr_check_f spatem_ts_TimestampIts_constraint; +per_type_decoder_f spatem_ts_TimestampIts_decode_uper; +per_type_encoder_f spatem_ts_TimestampIts_encode_uper; +per_type_decoder_f spatem_ts_TimestampIts_decode_aper; +per_type_encoder_f spatem_ts_TimestampIts_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_TimestampIts_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Traces.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Traces.h new file mode 100644 index 000000000..5be08a2bc --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Traces_H_ +#define _spatem_ts_Traces_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct spatem_ts_PathHistory; + +/* spatem_ts_Traces */ +typedef struct spatem_ts_Traces { + A_SEQUENCE_OF(struct spatem_ts_PathHistory) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_Traces_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Traces; + +#ifdef __cplusplus +} +#endif + +/* Referred external types */ +#include "etsi_its_spatem_ts_coding/spatem_ts_PathHistory.h" + +#endif /* _spatem_ts_Traces_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TrafficConditionSubCauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TrafficConditionSubCauseCode.h new file mode 100644 index 000000000..e1a7f9d7c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_TrafficConditionSubCauseCode_H_ +#define _spatem_ts_TrafficConditionSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_TrafficConditionSubCauseCode { + spatem_ts_TrafficConditionSubCauseCode_unavailable = 0, + spatem_ts_TrafficConditionSubCauseCode_increasedVolumeOfTraffic = 1, + spatem_ts_TrafficConditionSubCauseCode_trafficJamSlowlyIncreasing = 2, + spatem_ts_TrafficConditionSubCauseCode_trafficJamIncreasing = 3, + spatem_ts_TrafficConditionSubCauseCode_trafficJamStronglyIncreasing = 4, + spatem_ts_TrafficConditionSubCauseCode_trafficStationary = 5, + spatem_ts_TrafficConditionSubCauseCode_trafficJamSlightlyDecreasing = 6, + spatem_ts_TrafficConditionSubCauseCode_trafficJamDecreasing = 7, + spatem_ts_TrafficConditionSubCauseCode_trafficJamStronglyDecreasing = 8 +} e_spatem_ts_TrafficConditionSubCauseCode; + +/* spatem_ts_TrafficConditionSubCauseCode */ +typedef long spatem_ts_TrafficConditionSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_TrafficConditionSubCauseCode; +asn_struct_free_f spatem_ts_TrafficConditionSubCauseCode_free; +asn_struct_print_f spatem_ts_TrafficConditionSubCauseCode_print; +asn_constr_check_f spatem_ts_TrafficConditionSubCauseCode_constraint; +per_type_decoder_f spatem_ts_TrafficConditionSubCauseCode_decode_uper; +per_type_encoder_f spatem_ts_TrafficConditionSubCauseCode_encode_uper; +per_type_decoder_f spatem_ts_TrafficConditionSubCauseCode_decode_aper; +per_type_encoder_f spatem_ts_TrafficConditionSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_TrafficConditionSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TrafficRule.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TrafficRule.h new file mode 100644 index 000000000..d9047b27d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_TrafficRule_H_ +#define _spatem_ts_TrafficRule_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_TrafficRule { + spatem_ts_TrafficRule_noPassing = 0, + spatem_ts_TrafficRule_noPassingForTrucks = 1, + spatem_ts_TrafficRule_passToRight = 2, + spatem_ts_TrafficRule_passToLeft = 3 + /* + * Enumeration is extensible + */ +} e_spatem_ts_TrafficRule; + +/* spatem_ts_TrafficRule */ +typedef long spatem_ts_TrafficRule_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_TrafficRule; +asn_struct_free_f spatem_ts_TrafficRule_free; +asn_struct_print_f spatem_ts_TrafficRule_print; +asn_constr_check_f spatem_ts_TrafficRule_constraint; +per_type_decoder_f spatem_ts_TrafficRule_decode_uper; +per_type_encoder_f spatem_ts_TrafficRule_encode_uper; +per_type_decoder_f spatem_ts_TrafficRule_decode_aper; +per_type_encoder_f spatem_ts_TrafficRule_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_TrafficRule_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TransitVehicleOccupancy.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TransitVehicleOccupancy.h new file mode 100644 index 000000000..eacde4e78 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_TransitVehicleOccupancy_H_ +#define _spatem_ts_TransitVehicleOccupancy_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_TransitVehicleOccupancy { + spatem_ts_TransitVehicleOccupancy_occupancyUnknown = 0, + spatem_ts_TransitVehicleOccupancy_occupancyEmpty = 1, + spatem_ts_TransitVehicleOccupancy_occupancyVeryLow = 2, + spatem_ts_TransitVehicleOccupancy_occupancyLow = 3, + spatem_ts_TransitVehicleOccupancy_occupancyMed = 4, + spatem_ts_TransitVehicleOccupancy_occupancyHigh = 5, + spatem_ts_TransitVehicleOccupancy_occupancyNearlyFull = 6, + spatem_ts_TransitVehicleOccupancy_occupancyFull = 7 +} e_spatem_ts_TransitVehicleOccupancy; + +/* spatem_ts_TransitVehicleOccupancy */ +typedef long spatem_ts_TransitVehicleOccupancy_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_TransitVehicleOccupancy_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_TransitVehicleOccupancy; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_TransitVehicleOccupancy_specs_1; +asn_struct_free_f spatem_ts_TransitVehicleOccupancy_free; +asn_struct_print_f spatem_ts_TransitVehicleOccupancy_print; +asn_constr_check_f spatem_ts_TransitVehicleOccupancy_constraint; +per_type_decoder_f spatem_ts_TransitVehicleOccupancy_decode_uper; +per_type_encoder_f spatem_ts_TransitVehicleOccupancy_encode_uper; +per_type_decoder_f spatem_ts_TransitVehicleOccupancy_decode_aper; +per_type_encoder_f spatem_ts_TransitVehicleOccupancy_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_TransitVehicleOccupancy_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TransitVehicleStatus.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TransitVehicleStatus.h new file mode 100644 index 000000000..6050ed3dd --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_TransitVehicleStatus_H_ +#define _spatem_ts_TransitVehicleStatus_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_TransitVehicleStatus { + spatem_ts_TransitVehicleStatus_loading = 0, + spatem_ts_TransitVehicleStatus_anADAuse = 1, + spatem_ts_TransitVehicleStatus_aBikeLoad = 2, + spatem_ts_TransitVehicleStatus_doorOpen = 3, + spatem_ts_TransitVehicleStatus_charging = 4, + spatem_ts_TransitVehicleStatus_atStopLine = 5 +} e_spatem_ts_TransitVehicleStatus; + +/* spatem_ts_TransitVehicleStatus */ +typedef BIT_STRING_t spatem_ts_TransitVehicleStatus_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_TransitVehicleStatus_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_TransitVehicleStatus; +asn_struct_free_f spatem_ts_TransitVehicleStatus_free; +asn_struct_print_f spatem_ts_TransitVehicleStatus_print; +asn_constr_check_f spatem_ts_TransitVehicleStatus_constraint; +per_type_decoder_f spatem_ts_TransitVehicleStatus_decode_uper; +per_type_encoder_f spatem_ts_TransitVehicleStatus_encode_uper; +per_type_decoder_f spatem_ts_TransitVehicleStatus_decode_aper; +per_type_encoder_f spatem_ts_TransitVehicleStatus_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_TransitVehicleStatus_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TransmissionAndSpeed.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TransmissionAndSpeed.h new file mode 100644 index 000000000..f66278b37 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_TransmissionAndSpeed_H_ +#define _spatem_ts_TransmissionAndSpeed_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_TransmissionState.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_Velocity.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_TransmissionAndSpeed */ +typedef struct spatem_ts_TransmissionAndSpeed { + spatem_ts_TransmissionState_t transmisson; + spatem_ts_Velocity_t speed; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_TransmissionAndSpeed_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_TransmissionAndSpeed; +extern asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_TransmissionAndSpeed_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_TransmissionAndSpeed_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_TransmissionAndSpeed_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TransmissionInterval.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TransmissionInterval.h new file mode 100644 index 000000000..705f309fc --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_TransmissionInterval_H_ +#define _spatem_ts_TransmissionInterval_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_TransmissionInterval { + spatem_ts_TransmissionInterval_oneMilliSecond = 1, + spatem_ts_TransmissionInterval_tenSeconds = 10000 +} e_spatem_ts_TransmissionInterval; + +/* spatem_ts_TransmissionInterval */ +typedef long spatem_ts_TransmissionInterval_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_TransmissionInterval; +asn_struct_free_f spatem_ts_TransmissionInterval_free; +asn_struct_print_f spatem_ts_TransmissionInterval_print; +asn_constr_check_f spatem_ts_TransmissionInterval_constraint; +per_type_decoder_f spatem_ts_TransmissionInterval_decode_uper; +per_type_encoder_f spatem_ts_TransmissionInterval_encode_uper; +per_type_decoder_f spatem_ts_TransmissionInterval_decode_aper; +per_type_encoder_f spatem_ts_TransmissionInterval_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_TransmissionInterval_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TransmissionState.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TransmissionState.h new file mode 100644 index 000000000..e1af95a3b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_TransmissionState_H_ +#define _spatem_ts_TransmissionState_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_TransmissionState { + spatem_ts_TransmissionState_neutral = 0, + spatem_ts_TransmissionState_park = 1, + spatem_ts_TransmissionState_forwardGears = 2, + spatem_ts_TransmissionState_reverseGears = 3, + spatem_ts_TransmissionState_reserved1 = 4, + spatem_ts_TransmissionState_reserved2 = 5, + spatem_ts_TransmissionState_reserved3 = 6, + spatem_ts_TransmissionState_unavailable = 7 +} e_spatem_ts_TransmissionState; + +/* spatem_ts_TransmissionState */ +typedef long spatem_ts_TransmissionState_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_TransmissionState_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_TransmissionState; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_TransmissionState_specs_1; +asn_struct_free_f spatem_ts_TransmissionState_free; +asn_struct_print_f spatem_ts_TransmissionState_print; +asn_constr_check_f spatem_ts_TransmissionState_constraint; +per_type_decoder_f spatem_ts_TransmissionState_decode_uper; +per_type_encoder_f spatem_ts_TransmissionState_encode_uper; +per_type_decoder_f spatem_ts_TransmissionState_decode_aper; +per_type_encoder_f spatem_ts_TransmissionState_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_TransmissionState_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TurningRadius.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_TurningRadius.h new file mode 100644 index 000000000..15ac5d5c7 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_TurningRadius_H_ +#define _spatem_ts_TurningRadius_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_TurningRadius { + spatem_ts_TurningRadius_point4Meters = 1, + spatem_ts_TurningRadius_unavailable = 255 +} e_spatem_ts_TurningRadius; + +/* spatem_ts_TurningRadius */ +typedef long spatem_ts_TurningRadius_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_TurningRadius; +asn_struct_free_f spatem_ts_TurningRadius_free; +asn_struct_print_f spatem_ts_TurningRadius_print; +asn_constr_check_f spatem_ts_TurningRadius_constraint; +per_type_decoder_f spatem_ts_TurningRadius_decode_uper; +per_type_encoder_f spatem_ts_TurningRadius_encode_uper; +per_type_decoder_f spatem_ts_TurningRadius_decode_aper; +per_type_encoder_f spatem_ts_TurningRadius_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_TurningRadius_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VDS.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VDS.h new file mode 100644 index 000000000..6316d95de --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_VDS_H_ +#define _spatem_ts_VDS_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_VDS */ +typedef IA5String_t spatem_ts_VDS_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_VDS_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_VDS; +asn_struct_free_f spatem_ts_VDS_free; +asn_struct_print_f spatem_ts_VDS_print; +asn_constr_check_f spatem_ts_VDS_constraint; +per_type_decoder_f spatem_ts_VDS_decode_uper; +per_type_encoder_f spatem_ts_VDS_encode_uper; +per_type_decoder_f spatem_ts_VDS_decode_aper; +per_type_encoder_f spatem_ts_VDS_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_VDS_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ValidityDuration.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ValidityDuration.h new file mode 100644 index 000000000..a04529ec8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ValidityDuration_H_ +#define _spatem_ts_ValidityDuration_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_ValidityDuration { + spatem_ts_ValidityDuration_timeOfDetection = 0, + spatem_ts_ValidityDuration_oneSecondAfterDetection = 1 +} e_spatem_ts_ValidityDuration; + +/* spatem_ts_ValidityDuration */ +typedef long spatem_ts_ValidityDuration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ValidityDuration; +asn_struct_free_f spatem_ts_ValidityDuration_free; +asn_struct_print_f spatem_ts_ValidityDuration_print; +asn_constr_check_f spatem_ts_ValidityDuration_constraint; +per_type_decoder_f spatem_ts_ValidityDuration_decode_uper; +per_type_encoder_f spatem_ts_ValidityDuration_encode_uper; +per_type_decoder_f spatem_ts_ValidityDuration_decode_aper; +per_type_encoder_f spatem_ts_ValidityDuration_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_ValidityDuration_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VehicleBreakdownSubCauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VehicleBreakdownSubCauseCode.h new file mode 100644 index 000000000..5b5667241 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_VehicleBreakdownSubCauseCode_H_ +#define _spatem_ts_VehicleBreakdownSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_VehicleBreakdownSubCauseCode { + spatem_ts_VehicleBreakdownSubCauseCode_unavailable = 0, + spatem_ts_VehicleBreakdownSubCauseCode_lackOfFuel = 1, + spatem_ts_VehicleBreakdownSubCauseCode_lackOfBatteryPower = 2, + spatem_ts_VehicleBreakdownSubCauseCode_engineProblem = 3, + spatem_ts_VehicleBreakdownSubCauseCode_transmissionProblem = 4, + spatem_ts_VehicleBreakdownSubCauseCode_engineCoolingProblem = 5, + spatem_ts_VehicleBreakdownSubCauseCode_brakingSystemProblem = 6, + spatem_ts_VehicleBreakdownSubCauseCode_steeringProblem = 7, + spatem_ts_VehicleBreakdownSubCauseCode_tyrePuncture = 8, + spatem_ts_VehicleBreakdownSubCauseCode_tyrePressureProblem = 9 +} e_spatem_ts_VehicleBreakdownSubCauseCode; + +/* spatem_ts_VehicleBreakdownSubCauseCode */ +typedef long spatem_ts_VehicleBreakdownSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_VehicleBreakdownSubCauseCode; +asn_struct_free_f spatem_ts_VehicleBreakdownSubCauseCode_free; +asn_struct_print_f spatem_ts_VehicleBreakdownSubCauseCode_print; +asn_constr_check_f spatem_ts_VehicleBreakdownSubCauseCode_constraint; +per_type_decoder_f spatem_ts_VehicleBreakdownSubCauseCode_decode_uper; +per_type_encoder_f spatem_ts_VehicleBreakdownSubCauseCode_encode_uper; +per_type_decoder_f spatem_ts_VehicleBreakdownSubCauseCode_decode_aper; +per_type_encoder_f spatem_ts_VehicleBreakdownSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_VehicleBreakdownSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VehicleHeight.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VehicleHeight.h new file mode 100644 index 000000000..7077fc13d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_VehicleHeight_H_ +#define _spatem_ts_VehicleHeight_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_VehicleHeight */ +typedef long spatem_ts_VehicleHeight_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_VehicleHeight_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_VehicleHeight; +asn_struct_free_f spatem_ts_VehicleHeight_free; +asn_struct_print_f spatem_ts_VehicleHeight_print; +asn_constr_check_f spatem_ts_VehicleHeight_constraint; +per_type_decoder_f spatem_ts_VehicleHeight_decode_uper; +per_type_encoder_f spatem_ts_VehicleHeight_encode_uper; +per_type_decoder_f spatem_ts_VehicleHeight_decode_aper; +per_type_encoder_f spatem_ts_VehicleHeight_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_VehicleHeight_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VehicleID.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VehicleID.h new file mode 100644 index 000000000..3119e2034 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_VehicleID_H_ +#define _spatem_ts_VehicleID_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_TemporaryID.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_StationID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_VehicleID_PR { + spatem_ts_VehicleID_PR_NOTHING, /* No components present */ + spatem_ts_VehicleID_PR_entityID, + spatem_ts_VehicleID_PR_stationID +} spatem_ts_VehicleID_PR; + +/* spatem_ts_VehicleID */ +typedef struct spatem_ts_VehicleID { + spatem_ts_VehicleID_PR present; + union spatem_ts_VehicleID_u { + spatem_ts_TemporaryID_t entityID; + spatem_ts_StationID_t stationID; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_VehicleID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_VehicleID; +extern asn_CHOICE_specifics_t asn_SPC_spatem_ts_VehicleID_specs_1; +extern asn_TYPE_member_t asn_MBR_spatem_ts_VehicleID_1[2]; +extern asn_per_constraints_t asn_PER_type_spatem_ts_VehicleID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_VehicleID_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VehicleIdentification.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VehicleIdentification.h new file mode 100644 index 000000000..2088d55aa --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_VehicleIdentification_H_ +#define _spatem_ts_VehicleIdentification_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_WMInumber.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_VDS.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_VehicleIdentification */ +typedef struct spatem_ts_VehicleIdentification { + spatem_ts_WMInumber_t *wMInumber; /* OPTIONAL */ + spatem_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; +} spatem_ts_VehicleIdentification_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_VehicleIdentification; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_VehicleIdentification_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VehicleLength.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VehicleLength.h new file mode 100644 index 000000000..88187d520 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_VehicleLength_H_ +#define _spatem_ts_VehicleLength_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_VehicleLengthValue.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_VehicleLengthConfidenceIndication.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_VehicleLength */ +typedef struct spatem_ts_VehicleLength { + spatem_ts_VehicleLengthValue_t vehicleLengthValue; + spatem_ts_VehicleLengthConfidenceIndication_t vehicleLengthConfidenceIndication; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_VehicleLength_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_VehicleLength; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_VehicleLength_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VehicleLengthConfidenceIndication.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VehicleLengthConfidenceIndication.h new file mode 100644 index 000000000..922cc4182 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_VehicleLengthConfidenceIndication_H_ +#define _spatem_ts_VehicleLengthConfidenceIndication_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_VehicleLengthConfidenceIndication { + spatem_ts_VehicleLengthConfidenceIndication_noTrailerPresent = 0, + spatem_ts_VehicleLengthConfidenceIndication_trailerPresentWithKnownLength = 1, + spatem_ts_VehicleLengthConfidenceIndication_trailerPresentWithUnknownLength = 2, + spatem_ts_VehicleLengthConfidenceIndication_trailerPresenceIsUnknown = 3, + spatem_ts_VehicleLengthConfidenceIndication_unavailable = 4 +} e_spatem_ts_VehicleLengthConfidenceIndication; + +/* spatem_ts_VehicleLengthConfidenceIndication */ +typedef long spatem_ts_VehicleLengthConfidenceIndication_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_VehicleLengthConfidenceIndication_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_VehicleLengthConfidenceIndication; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_VehicleLengthConfidenceIndication_specs_1; +asn_struct_free_f spatem_ts_VehicleLengthConfidenceIndication_free; +asn_struct_print_f spatem_ts_VehicleLengthConfidenceIndication_print; +asn_constr_check_f spatem_ts_VehicleLengthConfidenceIndication_constraint; +per_type_decoder_f spatem_ts_VehicleLengthConfidenceIndication_decode_uper; +per_type_encoder_f spatem_ts_VehicleLengthConfidenceIndication_encode_uper; +per_type_decoder_f spatem_ts_VehicleLengthConfidenceIndication_decode_aper; +per_type_encoder_f spatem_ts_VehicleLengthConfidenceIndication_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_VehicleLengthConfidenceIndication_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VehicleLengthValue.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VehicleLengthValue.h new file mode 100644 index 000000000..64bd64557 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_VehicleLengthValue_H_ +#define _spatem_ts_VehicleLengthValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_VehicleLengthValue { + spatem_ts_VehicleLengthValue_tenCentimeters = 1, + spatem_ts_VehicleLengthValue_outOfRange = 1022, + spatem_ts_VehicleLengthValue_unavailable = 1023 +} e_spatem_ts_VehicleLengthValue; + +/* spatem_ts_VehicleLengthValue */ +typedef long spatem_ts_VehicleLengthValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_VehicleLengthValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_VehicleLengthValue; +asn_struct_free_f spatem_ts_VehicleLengthValue_free; +asn_struct_print_f spatem_ts_VehicleLengthValue_print; +asn_constr_check_f spatem_ts_VehicleLengthValue_constraint; +per_type_decoder_f spatem_ts_VehicleLengthValue_decode_uper; +per_type_encoder_f spatem_ts_VehicleLengthValue_encode_uper; +per_type_decoder_f spatem_ts_VehicleLengthValue_decode_aper; +per_type_encoder_f spatem_ts_VehicleLengthValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_VehicleLengthValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VehicleMass.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VehicleMass.h new file mode 100644 index 000000000..97641b0af --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_VehicleMass_H_ +#define _spatem_ts_VehicleMass_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_VehicleMass { + spatem_ts_VehicleMass_hundredKg = 1, + spatem_ts_VehicleMass_unavailable = 1024 +} e_spatem_ts_VehicleMass; + +/* spatem_ts_VehicleMass */ +typedef long spatem_ts_VehicleMass_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_VehicleMass_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_VehicleMass; +asn_struct_free_f spatem_ts_VehicleMass_free; +asn_struct_print_f spatem_ts_VehicleMass_print; +asn_constr_check_f spatem_ts_VehicleMass_constraint; +per_type_decoder_f spatem_ts_VehicleMass_decode_uper; +per_type_encoder_f spatem_ts_VehicleMass_encode_uper; +per_type_decoder_f spatem_ts_VehicleMass_decode_aper; +per_type_encoder_f spatem_ts_VehicleMass_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_VehicleMass_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VehicleRole.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VehicleRole.h new file mode 100644 index 000000000..f6a18b030 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VehicleRole.h @@ -0,0 +1,59 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "ITS-Container" + * found in "/input/ITS-Container.asn" + * `asn1c -fcompound-names -fprefix=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_VehicleRole_H_ +#define _spatem_ts_VehicleRole_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_VehicleRole { + spatem_ts_VehicleRole_default = 0, + spatem_ts_VehicleRole_publicTransport = 1, + spatem_ts_VehicleRole_specialTransport = 2, + spatem_ts_VehicleRole_dangerousGoods = 3, + spatem_ts_VehicleRole_roadWork = 4, + spatem_ts_VehicleRole_rescue = 5, + spatem_ts_VehicleRole_emergency = 6, + spatem_ts_VehicleRole_safetyCar = 7, + spatem_ts_VehicleRole_agriculture = 8, + spatem_ts_VehicleRole_commercial = 9, + spatem_ts_VehicleRole_military = 10, + spatem_ts_VehicleRole_roadOperator = 11, + spatem_ts_VehicleRole_taxi = 12, + spatem_ts_VehicleRole_reserved1 = 13, + spatem_ts_VehicleRole_reserved2 = 14, + spatem_ts_VehicleRole_reserved3 = 15 +} e_spatem_ts_VehicleRole; + +/* spatem_ts_VehicleRole */ +typedef long spatem_ts_VehicleRole_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_VehicleRole; +asn_struct_free_f spatem_ts_VehicleRole_free; +asn_struct_print_f spatem_ts_VehicleRole_print; +asn_constr_check_f spatem_ts_VehicleRole_constraint; +per_type_decoder_f spatem_ts_VehicleRole_decode_uper; +per_type_encoder_f spatem_ts_VehicleRole_encode_uper; +per_type_decoder_f spatem_ts_VehicleRole_decode_aper; +per_type_encoder_f spatem_ts_VehicleRole_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_VehicleRole_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VehicleType.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VehicleType.h new file mode 100644 index 000000000..e31a92d82 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_VehicleType_H_ +#define _spatem_ts_VehicleType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_VehicleType { + spatem_ts_VehicleType_none = 0, + spatem_ts_VehicleType_unknown = 1, + spatem_ts_VehicleType_special = 2, + spatem_ts_VehicleType_moto = 3, + spatem_ts_VehicleType_car = 4, + spatem_ts_VehicleType_carOther = 5, + spatem_ts_VehicleType_bus = 6, + spatem_ts_VehicleType_axleCnt2 = 7, + spatem_ts_VehicleType_axleCnt3 = 8, + spatem_ts_VehicleType_axleCnt4 = 9, + spatem_ts_VehicleType_axleCnt4Trailer = 10, + spatem_ts_VehicleType_axleCnt5Trailer = 11, + spatem_ts_VehicleType_axleCnt6Trailer = 12, + spatem_ts_VehicleType_axleCnt5MultiTrailer = 13, + spatem_ts_VehicleType_axleCnt6MultiTrailer = 14, + spatem_ts_VehicleType_axleCnt7MultiTrailer = 15 + /* + * Enumeration is extensible + */ +} e_spatem_ts_VehicleType; + +/* spatem_ts_VehicleType */ +typedef long spatem_ts_VehicleType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_VehicleType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_VehicleType; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_VehicleType_specs_1; +asn_struct_free_f spatem_ts_VehicleType_free; +asn_struct_print_f spatem_ts_VehicleType_print; +asn_constr_check_f spatem_ts_VehicleType_constraint; +per_type_decoder_f spatem_ts_VehicleType_decode_uper; +per_type_encoder_f spatem_ts_VehicleType_encode_uper; +per_type_decoder_f spatem_ts_VehicleType_decode_aper; +per_type_encoder_f spatem_ts_VehicleType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_VehicleType_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VehicleWidth.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VehicleWidth.h new file mode 100644 index 000000000..20275d469 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_VehicleWidth_H_ +#define _spatem_ts_VehicleWidth_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_VehicleWidth { + spatem_ts_VehicleWidth_tenCentimeters = 1, + spatem_ts_VehicleWidth_outOfRange = 61, + spatem_ts_VehicleWidth_unavailable = 62 +} e_spatem_ts_VehicleWidth; + +/* spatem_ts_VehicleWidth */ +typedef long spatem_ts_VehicleWidth_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_VehicleWidth; +asn_struct_free_f spatem_ts_VehicleWidth_free; +asn_struct_print_f spatem_ts_VehicleWidth_print; +asn_constr_check_f spatem_ts_VehicleWidth_constraint; +per_type_decoder_f spatem_ts_VehicleWidth_decode_uper; +per_type_encoder_f spatem_ts_VehicleWidth_encode_uper; +per_type_decoder_f spatem_ts_VehicleWidth_decode_aper; +per_type_encoder_f spatem_ts_VehicleWidth_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_VehicleWidth_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Velocity.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_Velocity.h new file mode 100644 index 000000000..0fc53a540 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_Velocity_H_ +#define _spatem_ts_Velocity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_Velocity */ +typedef long spatem_ts_Velocity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_Velocity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_Velocity; +asn_struct_free_f spatem_ts_Velocity_free; +asn_struct_print_f spatem_ts_Velocity_print; +asn_constr_check_f spatem_ts_Velocity_constraint; +per_type_decoder_f spatem_ts_Velocity_decode_uper; +per_type_encoder_f spatem_ts_Velocity_encode_uper; +per_type_decoder_f spatem_ts_Velocity_decode_aper; +per_type_encoder_f spatem_ts_Velocity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_Velocity_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VerticalAcceleration.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VerticalAcceleration.h new file mode 100644 index 000000000..1b9b25366 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_VerticalAcceleration_H_ +#define _spatem_ts_VerticalAcceleration_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_VerticalAccelerationValue.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_AccelerationConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_VerticalAcceleration */ +typedef struct spatem_ts_VerticalAcceleration { + spatem_ts_VerticalAccelerationValue_t verticalAccelerationValue; + spatem_ts_AccelerationConfidence_t verticalAccelerationConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_VerticalAcceleration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_VerticalAcceleration; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_VerticalAcceleration_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VerticalAccelerationValue.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_VerticalAccelerationValue.h new file mode 100644 index 000000000..93088f044 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_VerticalAccelerationValue_H_ +#define _spatem_ts_VerticalAccelerationValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_VerticalAccelerationValue { + spatem_ts_VerticalAccelerationValue_pointOneMeterPerSecSquaredUp = 1, + spatem_ts_VerticalAccelerationValue_pointOneMeterPerSecSquaredDown = -1, + spatem_ts_VerticalAccelerationValue_unavailable = 161 +} e_spatem_ts_VerticalAccelerationValue; + +/* spatem_ts_VerticalAccelerationValue */ +typedef long spatem_ts_VerticalAccelerationValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_VerticalAccelerationValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_VerticalAccelerationValue; +asn_struct_free_f spatem_ts_VerticalAccelerationValue_free; +asn_struct_print_f spatem_ts_VerticalAccelerationValue_print; +asn_constr_check_f spatem_ts_VerticalAccelerationValue_constraint; +per_type_decoder_f spatem_ts_VerticalAccelerationValue_decode_uper; +per_type_encoder_f spatem_ts_VerticalAccelerationValue_encode_uper; +per_type_decoder_f spatem_ts_VerticalAccelerationValue_decode_aper; +per_type_encoder_f spatem_ts_VerticalAccelerationValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_VerticalAccelerationValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_WMInumber.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_WMInumber.h new file mode 100644 index 000000000..6e1892da0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_WMInumber_H_ +#define _spatem_ts_WMInumber_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_WMInumber */ +typedef IA5String_t spatem_ts_WMInumber_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_WMInumber_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_WMInumber; +asn_struct_free_f spatem_ts_WMInumber_free; +asn_struct_print_f spatem_ts_WMInumber_print; +asn_constr_check_f spatem_ts_WMInumber_constraint; +per_type_decoder_f spatem_ts_WMInumber_decode_uper; +per_type_encoder_f spatem_ts_WMInumber_encode_uper; +per_type_decoder_f spatem_ts_WMInumber_decode_aper; +per_type_encoder_f spatem_ts_WMInumber_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_WMInumber_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_WaitOnStopline.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_WaitOnStopline.h new file mode 100644 index 000000000..f7c28a2af --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_WaitOnStopline_H_ +#define _spatem_ts_WaitOnStopline_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_WaitOnStopline */ +typedef BOOLEAN_t spatem_ts_WaitOnStopline_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_WaitOnStopline; +asn_struct_free_f spatem_ts_WaitOnStopline_free; +asn_struct_print_f spatem_ts_WaitOnStopline_print; +asn_constr_check_f spatem_ts_WaitOnStopline_constraint; +per_type_decoder_f spatem_ts_WaitOnStopline_decode_uper; +per_type_encoder_f spatem_ts_WaitOnStopline_encode_uper; +per_type_decoder_f spatem_ts_WaitOnStopline_decode_aper; +per_type_encoder_f spatem_ts_WaitOnStopline_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_WaitOnStopline_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_WheelBaseVehicle.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_WheelBaseVehicle.h new file mode 100644 index 000000000..e48553e9e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_WheelBaseVehicle_H_ +#define _spatem_ts_WheelBaseVehicle_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_WheelBaseVehicle { + spatem_ts_WheelBaseVehicle_tenCentimeters = 1, + spatem_ts_WheelBaseVehicle_unavailable = 127 +} e_spatem_ts_WheelBaseVehicle; + +/* spatem_ts_WheelBaseVehicle */ +typedef long spatem_ts_WheelBaseVehicle_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_WheelBaseVehicle; +asn_struct_free_f spatem_ts_WheelBaseVehicle_free; +asn_struct_print_f spatem_ts_WheelBaseVehicle_print; +asn_constr_check_f spatem_ts_WheelBaseVehicle_constraint; +per_type_decoder_f spatem_ts_WheelBaseVehicle_decode_uper; +per_type_encoder_f spatem_ts_WheelBaseVehicle_encode_uper; +per_type_decoder_f spatem_ts_WheelBaseVehicle_decode_aper; +per_type_encoder_f spatem_ts_WheelBaseVehicle_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_WheelBaseVehicle_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_WrongWayDrivingSubCauseCode.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_WrongWayDrivingSubCauseCode.h new file mode 100644 index 000000000..bc226b5eb --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_WrongWayDrivingSubCauseCode_H_ +#define _spatem_ts_WrongWayDrivingSubCauseCode_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_WrongWayDrivingSubCauseCode { + spatem_ts_WrongWayDrivingSubCauseCode_unavailable = 0, + spatem_ts_WrongWayDrivingSubCauseCode_wrongLane = 1, + spatem_ts_WrongWayDrivingSubCauseCode_wrongDirection = 2 +} e_spatem_ts_WrongWayDrivingSubCauseCode; + +/* spatem_ts_WrongWayDrivingSubCauseCode */ +typedef long spatem_ts_WrongWayDrivingSubCauseCode_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_WrongWayDrivingSubCauseCode; +asn_struct_free_f spatem_ts_WrongWayDrivingSubCauseCode_free; +asn_struct_print_f spatem_ts_WrongWayDrivingSubCauseCode_print; +asn_constr_check_f spatem_ts_WrongWayDrivingSubCauseCode_constraint; +per_type_decoder_f spatem_ts_WrongWayDrivingSubCauseCode_decode_uper; +per_type_encoder_f spatem_ts_WrongWayDrivingSubCauseCode_encode_uper; +per_type_decoder_f spatem_ts_WrongWayDrivingSubCauseCode_decode_aper; +per_type_encoder_f spatem_ts_WrongWayDrivingSubCauseCode_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_WrongWayDrivingSubCauseCode_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_YawRate.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_YawRate.h new file mode 100644 index 000000000..0dd8ed7bb --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_YawRate_H_ +#define _spatem_ts_YawRate_H_ + + +#include + +/* Including external dependencies */ +#include "etsi_its_spatem_ts_coding/spatem_ts_YawRateValue.h" +#include "etsi_its_spatem_ts_coding/spatem_ts_YawRateConfidence.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_YawRate */ +typedef struct spatem_ts_YawRate { + spatem_ts_YawRateValue_t yawRateValue; + spatem_ts_YawRateConfidence_t yawRateConfidence; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} spatem_ts_YawRate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_YawRate; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_YawRate_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_YawRateConfidence.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_YawRateConfidence.h new file mode 100644 index 000000000..973ebfdff --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_YawRateConfidence_H_ +#define _spatem_ts_YawRateConfidence_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_YawRateConfidence { + spatem_ts_YawRateConfidence_degSec_000_01 = 0, + spatem_ts_YawRateConfidence_degSec_000_05 = 1, + spatem_ts_YawRateConfidence_degSec_000_10 = 2, + spatem_ts_YawRateConfidence_degSec_001_00 = 3, + spatem_ts_YawRateConfidence_degSec_005_00 = 4, + spatem_ts_YawRateConfidence_degSec_010_00 = 5, + spatem_ts_YawRateConfidence_degSec_100_00 = 6, + spatem_ts_YawRateConfidence_outOfRange = 7, + spatem_ts_YawRateConfidence_unavailable = 8 +} e_spatem_ts_YawRateConfidence; + +/* spatem_ts_YawRateConfidence */ +typedef long spatem_ts_YawRateConfidence_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_YawRateConfidence_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_YawRateConfidence; +extern const asn_INTEGER_specifics_t asn_SPC_spatem_ts_YawRateConfidence_specs_1; +asn_struct_free_f spatem_ts_YawRateConfidence_free; +asn_struct_print_f spatem_ts_YawRateConfidence_print; +asn_constr_check_f spatem_ts_YawRateConfidence_constraint; +per_type_decoder_f spatem_ts_YawRateConfidence_decode_uper; +per_type_encoder_f spatem_ts_YawRateConfidence_encode_uper; +per_type_decoder_f spatem_ts_YawRateConfidence_decode_aper; +per_type_encoder_f spatem_ts_YawRateConfidence_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_YawRateConfidence_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_YawRateValue.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_YawRateValue.h new file mode 100644 index 000000000..3416a9d3c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_YawRateValue_H_ +#define _spatem_ts_YawRateValue_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum spatem_ts_YawRateValue { + spatem_ts_YawRateValue_straight = 0, + spatem_ts_YawRateValue_degSec_000_01ToRight = -1, + spatem_ts_YawRateValue_degSec_000_01ToLeft = 1, + spatem_ts_YawRateValue_unavailable = 32767 +} e_spatem_ts_YawRateValue; + +/* spatem_ts_YawRateValue */ +typedef long spatem_ts_YawRateValue_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_YawRateValue_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_YawRateValue; +asn_struct_free_f spatem_ts_YawRateValue_free; +asn_struct_print_f spatem_ts_YawRateValue_print; +asn_constr_check_f spatem_ts_YawRateValue_constraint; +per_type_decoder_f spatem_ts_YawRateValue_decode_uper; +per_type_encoder_f spatem_ts_YawRateValue_encode_uper; +per_type_decoder_f spatem_ts_YawRateValue_decode_aper; +per_type_encoder_f spatem_ts_YawRateValue_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_YawRateValue_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ZoneLength.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ZoneLength.h new file mode 100644 index 000000000..1cfacff2e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#ifndef _spatem_ts_ZoneLength_H_ +#define _spatem_ts_ZoneLength_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* spatem_ts_ZoneLength */ +typedef long spatem_ts_ZoneLength_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_spatem_ts_ZoneLength_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_spatem_ts_ZoneLength; +asn_struct_free_f spatem_ts_ZoneLength_free; +asn_struct_print_f spatem_ts_ZoneLength_print; +asn_constr_check_f spatem_ts_ZoneLength_constraint; +per_type_decoder_f spatem_ts_ZoneLength_decode_uper; +per_type_encoder_f spatem_ts_ZoneLength_encode_uper; +per_type_decoder_f spatem_ts_ZoneLength_decode_aper; +per_type_encoder_f spatem_ts_ZoneLength_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_ZoneLength_H_ */ +#include diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_asn_constant.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_asn_constant.h new file mode 100644 index 000000000..1c71d9634 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_asn_constant.h @@ -0,0 +1,265 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + */ + +#ifndef _spatem_ts_ASN_CONSTANT_H +#define _spatem_ts_ASN_CONSTANT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define min_val_spatem_ts_TimeReference (0) +#define max_val_spatem_ts_TimeReference (60000) +#define min_val_spatem_ts_TimeMark (0) +#define max_val_spatem_ts_TimeMark (36001) +#define min_val_spatem_ts_Angle (0) +#define max_val_spatem_ts_Angle (28800) +#define min_val_spatem_ts_ApproachID (0) +#define max_val_spatem_ts_ApproachID (15) +#define min_val_spatem_ts_DDay (0) +#define max_val_spatem_ts_DDay (31) +#define min_val_spatem_ts_DeltaAngle (-150) +#define max_val_spatem_ts_DeltaAngle (150) +#define min_val_spatem_ts_DeltaTime (-122) +#define max_val_spatem_ts_DeltaTime (121) +#define min_val_spatem_ts_DHour (0) +#define max_val_spatem_ts_DHour (31) +#define min_val_spatem_ts_DMinute (0) +#define max_val_spatem_ts_DMinute (60) +#define min_val_spatem_ts_DMonth (0) +#define max_val_spatem_ts_DMonth (12) +#define min_val_spatem_ts_DOffset (-840) +#define max_val_spatem_ts_DOffset (840) +#define min_val_spatem_ts_DrivenLineOffsetLg (-32767) +#define max_val_spatem_ts_DrivenLineOffsetLg (32767) +#define min_val_spatem_ts_DrivenLineOffsetSm (-2047) +#define max_val_spatem_ts_DrivenLineOffsetSm (2047) +#define min_val_spatem_ts_DSecond (0) +#define max_val_spatem_ts_DSecond (65535) +#define min_val_spatem_ts_DSRCmsgID (0) +#define max_val_spatem_ts_DSRCmsgID (32767) +#define min_val_spatem_ts_DYear (0) +#define max_val_spatem_ts_DYear (4095) +#define min_val_spatem_ts_Elevation (-4096) +#define max_val_spatem_ts_Elevation (61439) +#define min_val_spatem_ts_FuelType (0) +#define max_val_spatem_ts_FuelType (15) +#define min_val_spatem_ts_HeadingDSRC (0) +#define max_val_spatem_ts_HeadingDSRC (28800) +#define min_val_spatem_ts_IntersectionID (0) +#define max_val_spatem_ts_IntersectionID (65535) +#define min_val_spatem_ts_LaneConnectionID (0) +#define max_val_spatem_ts_LaneConnectionID (255) +#define min_val_spatem_ts_LaneID (0) +#define max_val_spatem_ts_LaneID (255) +#define min_val_spatem_ts_LayerID (0) +#define max_val_spatem_ts_LayerID (100) +#define min_val_spatem_ts_LaneWidth (0) +#define max_val_spatem_ts_LaneWidth (32767) +#define min_val_spatem_ts_MergeDivergeNodeAngle (-180) +#define max_val_spatem_ts_MergeDivergeNodeAngle (180) +#define min_val_spatem_ts_MinuteOfTheYear (0) +#define max_val_spatem_ts_MinuteOfTheYear (527040) +#define min_val_spatem_ts_MsgCount (0) +#define max_val_spatem_ts_MsgCount (127) +#define min_val_spatem_ts_Offset_B09 (-256) +#define max_val_spatem_ts_Offset_B09 (255) +#define min_val_spatem_ts_Offset_B10 (-512) +#define max_val_spatem_ts_Offset_B10 (511) +#define min_val_spatem_ts_Offset_B11 (-1024) +#define max_val_spatem_ts_Offset_B11 (1023) +#define min_val_spatem_ts_Offset_B12 (-2048) +#define max_val_spatem_ts_Offset_B12 (2047) +#define min_val_spatem_ts_Offset_B13 (-4096) +#define max_val_spatem_ts_Offset_B13 (4095) +#define min_val_spatem_ts_Offset_B14 (-8192) +#define max_val_spatem_ts_Offset_B14 (8191) +#define min_val_spatem_ts_Offset_B16 (-32768) +#define max_val_spatem_ts_Offset_B16 (32767) +#define min_val_spatem_ts_RegionId (0) +#define max_val_spatem_ts_RegionId (255) +#define min_val_spatem_ts_RequestID (0) +#define max_val_spatem_ts_RequestID (255) +#define min_val_spatem_ts_RestrictionClassID (0) +#define max_val_spatem_ts_RestrictionClassID (255) +#define min_val_spatem_ts_RoadRegulatorID (0) +#define max_val_spatem_ts_RoadRegulatorID (65535) +#define min_val_spatem_ts_RoadSegmentID (0) +#define max_val_spatem_ts_RoadSegmentID (65535) +#define min_val_spatem_ts_RoadwayCrownAngle (-128) +#define max_val_spatem_ts_RoadwayCrownAngle (127) +#define min_val_spatem_ts_Scale_B12 (-2048) +#define max_val_spatem_ts_Scale_B12 (2047) +#define min_val_spatem_ts_SignalGroupID (0) +#define max_val_spatem_ts_SignalGroupID (255) +#define min_val_spatem_ts_SemiMajorAxisAccuracy (0) +#define max_val_spatem_ts_SemiMajorAxisAccuracy (255) +#define min_val_spatem_ts_SemiMajorAxisOrientation (0) +#define max_val_spatem_ts_SemiMajorAxisOrientation (65535) +#define min_val_spatem_ts_SemiMinorAxisAccuracy (0) +#define max_val_spatem_ts_SemiMinorAxisAccuracy (255) +#define min_val_spatem_ts_SpeedAdvice (0) +#define max_val_spatem_ts_SpeedAdvice (500) +#define min_val_spatem_ts_TimeIntervalConfidence (0) +#define max_val_spatem_ts_TimeIntervalConfidence (15) +#define min_val_spatem_ts_VehicleHeight (0) +#define max_val_spatem_ts_VehicleHeight (127) +#define min_val_spatem_ts_Velocity (0) +#define max_val_spatem_ts_Velocity (8191) +#define min_val_spatem_ts_ZoneLength (0) +#define max_val_spatem_ts_ZoneLength (10000) +#define min_val_spatem_ts_IssuerIdentifier (0) +#define max_val_spatem_ts_IssuerIdentifier (16383) +#define min_val_spatem_ts_ManufacturerIdentifier (0) +#define max_val_spatem_ts_ManufacturerIdentifier (65535) +#define min_val_spatem_ts_AlphabetIndicator (0) +#define max_val_spatem_ts_AlphabetIndicator (63) +#define spatem_ts_version (1) +#define min_val_spatem_ts_Iso3833VehicleType (0) +#define max_val_spatem_ts_Iso3833VehicleType (255) +#define min_val_spatem_ts_StationID (0) +#define max_val_spatem_ts_StationID (4294967295) +#define min_val_spatem_ts_Longitude (-1800000000) +#define max_val_spatem_ts_Longitude (1800000001) +#define min_val_spatem_ts_Latitude (-900000000) +#define max_val_spatem_ts_Latitude (900000001) +#define min_val_spatem_ts_AltitudeValue (-100000) +#define max_val_spatem_ts_AltitudeValue (800001) +#define min_val_spatem_ts_DeltaLongitude (-131071) +#define max_val_spatem_ts_DeltaLongitude (131072) +#define min_val_spatem_ts_DeltaLatitude (-131071) +#define max_val_spatem_ts_DeltaLatitude (131072) +#define min_val_spatem_ts_DeltaAltitude (-12700) +#define max_val_spatem_ts_DeltaAltitude (12800) +#define min_val_spatem_ts_PtActivationType (0) +#define max_val_spatem_ts_PtActivationType (255) +#define min_val_spatem_ts_SemiAxisLength (0) +#define max_val_spatem_ts_SemiAxisLength (4095) +#define min_val_spatem_ts_CauseCodeType (0) +#define max_val_spatem_ts_CauseCodeType (255) +#define min_val_spatem_ts_SubCauseCodeType (0) +#define max_val_spatem_ts_SubCauseCodeType (255) +#define min_val_spatem_ts_TrafficConditionSubCauseCode (0) +#define max_val_spatem_ts_TrafficConditionSubCauseCode (255) +#define min_val_spatem_ts_AccidentSubCauseCode (0) +#define max_val_spatem_ts_AccidentSubCauseCode (255) +#define min_val_spatem_ts_RoadworksSubCauseCode (0) +#define max_val_spatem_ts_RoadworksSubCauseCode (255) +#define min_val_spatem_ts_HumanPresenceOnTheRoadSubCauseCode (0) +#define max_val_spatem_ts_HumanPresenceOnTheRoadSubCauseCode (255) +#define min_val_spatem_ts_WrongWayDrivingSubCauseCode (0) +#define max_val_spatem_ts_WrongWayDrivingSubCauseCode (255) +#define min_val_spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (0) +#define max_val_spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode (255) +#define min_val_spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode (0) +#define max_val_spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode (255) +#define min_val_spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode (0) +#define max_val_spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode (255) +#define min_val_spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode (0) +#define max_val_spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode (255) +#define min_val_spatem_ts_SlowVehicleSubCauseCode (0) +#define max_val_spatem_ts_SlowVehicleSubCauseCode (255) +#define min_val_spatem_ts_StationaryVehicleSubCauseCode (0) +#define max_val_spatem_ts_StationaryVehicleSubCauseCode (255) +#define min_val_spatem_ts_HumanProblemSubCauseCode (0) +#define max_val_spatem_ts_HumanProblemSubCauseCode (255) +#define min_val_spatem_ts_EmergencyVehicleApproachingSubCauseCode (0) +#define max_val_spatem_ts_EmergencyVehicleApproachingSubCauseCode (255) +#define min_val_spatem_ts_HazardousLocation_DangerousCurveSubCauseCode (0) +#define max_val_spatem_ts_HazardousLocation_DangerousCurveSubCauseCode (255) +#define min_val_spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode (0) +#define max_val_spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode (255) +#define min_val_spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode (0) +#define max_val_spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode (255) +#define min_val_spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode (0) +#define max_val_spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode (255) +#define min_val_spatem_ts_CollisionRiskSubCauseCode (0) +#define max_val_spatem_ts_CollisionRiskSubCauseCode (255) +#define min_val_spatem_ts_SignalViolationSubCauseCode (0) +#define max_val_spatem_ts_SignalViolationSubCauseCode (255) +#define min_val_spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode (0) +#define max_val_spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode (255) +#define min_val_spatem_ts_DangerousEndOfQueueSubCauseCode (0) +#define max_val_spatem_ts_DangerousEndOfQueueSubCauseCode (255) +#define min_val_spatem_ts_DangerousSituationSubCauseCode (0) +#define max_val_spatem_ts_DangerousSituationSubCauseCode (255) +#define min_val_spatem_ts_VehicleBreakdownSubCauseCode (0) +#define max_val_spatem_ts_VehicleBreakdownSubCauseCode (255) +#define min_val_spatem_ts_PostCrashSubCauseCode (0) +#define max_val_spatem_ts_PostCrashSubCauseCode (255) +#define min_val_spatem_ts_CurvatureValue (-1023) +#define max_val_spatem_ts_CurvatureValue (1023) +#define min_val_spatem_ts_HeadingValue (0) +#define max_val_spatem_ts_HeadingValue (3601) +#define min_val_spatem_ts_HeadingConfidence (1) +#define max_val_spatem_ts_HeadingConfidence (127) +#define min_val_spatem_ts_LanePosition (-1) +#define max_val_spatem_ts_LanePosition (14) +#define min_val_spatem_ts_PerformanceClass (0) +#define max_val_spatem_ts_PerformanceClass (7) +#define min_val_spatem_ts_SpeedValue (0) +#define max_val_spatem_ts_SpeedValue (16383) +#define min_val_spatem_ts_SpeedConfidence (1) +#define max_val_spatem_ts_SpeedConfidence (127) +#define min_val_spatem_ts_VehicleMass (1) +#define max_val_spatem_ts_VehicleMass (1024) +#define min_val_spatem_ts_LongitudinalAccelerationValue (-160) +#define max_val_spatem_ts_LongitudinalAccelerationValue (161) +#define min_val_spatem_ts_AccelerationConfidence (0) +#define max_val_spatem_ts_AccelerationConfidence (102) +#define min_val_spatem_ts_LateralAccelerationValue (-160) +#define max_val_spatem_ts_LateralAccelerationValue (161) +#define min_val_spatem_ts_VerticalAccelerationValue (-160) +#define max_val_spatem_ts_VerticalAccelerationValue (161) +#define min_val_spatem_ts_StationType (0) +#define max_val_spatem_ts_StationType (255) +#define min_val_spatem_ts_HeightLonCarr (1) +#define max_val_spatem_ts_HeightLonCarr (100) +#define min_val_spatem_ts_PosLonCarr (1) +#define max_val_spatem_ts_PosLonCarr (127) +#define min_val_spatem_ts_PosPillar (1) +#define max_val_spatem_ts_PosPillar (30) +#define min_val_spatem_ts_PosCentMass (1) +#define max_val_spatem_ts_PosCentMass (63) +#define min_val_spatem_ts_SpeedLimit (1) +#define max_val_spatem_ts_SpeedLimit (255) +#define min_val_spatem_ts_Temperature (-60) +#define max_val_spatem_ts_Temperature (67) +#define min_val_spatem_ts_WheelBaseVehicle (1) +#define max_val_spatem_ts_WheelBaseVehicle (127) +#define min_val_spatem_ts_TurningRadius (1) +#define max_val_spatem_ts_TurningRadius (255) +#define min_val_spatem_ts_PosFrontAx (1) +#define max_val_spatem_ts_PosFrontAx (20) +#define min_val_spatem_ts_VehicleLengthValue (1) +#define max_val_spatem_ts_VehicleLengthValue (1023) +#define min_val_spatem_ts_VehicleWidth (1) +#define max_val_spatem_ts_VehicleWidth (62) +#define min_val_spatem_ts_InformationQuality (0) +#define max_val_spatem_ts_InformationQuality (7) +#define min_val_spatem_ts_SteeringWheelAngleValue (-511) +#define max_val_spatem_ts_SteeringWheelAngleValue (512) +#define min_val_spatem_ts_SteeringWheelAngleConfidence (1) +#define max_val_spatem_ts_SteeringWheelAngleConfidence (127) +#define min_val_spatem_ts_TimestampIts (0) +#define max_val_spatem_ts_TimestampIts (4398046511103) +#define min_val_spatem_ts_YawRateValue (-32766) +#define max_val_spatem_ts_YawRateValue (32767) +#define min_val_spatem_ts_TransmissionInterval (1) +#define max_val_spatem_ts_TransmissionInterval (10000) +#define min_val_spatem_ts_ValidityDuration (0) +#define max_val_spatem_ts_ValidityDuration (86400) +#define min_val_spatem_ts_NumberOfOccupants (0) +#define max_val_spatem_ts_NumberOfOccupants (127) +#define min_val_spatem_ts_SequenceNumber (0) +#define max_val_spatem_ts_SequenceNumber (65535) +#define min_val_spatem_ts_ProtectedZoneID (0) +#define max_val_spatem_ts_ProtectedZoneID (134217727) + + +#ifdef __cplusplus +} +#endif + +#endif /* _spatem_ts_ASN_CONSTANT_H */ diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/uper_decoder.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/uper_decoder.h new file mode 100644 index 000000000..14089b7b2 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/uper_encoder.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/uper_encoder.h new file mode 100644 index 000000000..fdf7c6feb --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/uper_opentype.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/uper_opentype.h new file mode 100644 index 000000000..0c43bd0cc --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/include/etsi_its_spatem_ts_coding/uper_support.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/uper_support.h new file mode 100644 index 000000000..5916a15c7 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_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_spatem_ts_coding/package.xml b/etsi_its_coding/etsi_its_spatem_ts_coding/package.xml new file mode 100644 index 000000000..2a177d154 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/package.xml @@ -0,0 +1,28 @@ + + + + etsi_its_spatem_ts_coding + 2.1.0 + C++ compatible C source code for ETSI ITS SPATEMs (TS) generated from ASN.1 using asn1c + + Jean-Pierre Busch + Guido Küppers + Lennart Reiher + + Jean-Pierre Busch + Guido Küppers + Lennart Reiher + + MIT + + ros_environment + + catkin + ament_cmake + + + catkin + ament_cmake + + + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/ANY.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/ANY.c new file mode 100644 index 000000000..ea5a20885 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/ANY_aper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/ANY_aper.c new file mode 100644 index 000000000..b41a01dd2 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/ANY_uper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/ANY_uper.c new file mode 100644 index 000000000..cf2f0e5db --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/BIT_STRING.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/BIT_STRING.c new file mode 100644 index 000000000..60b4b2039 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/BIT_STRING_print.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/BIT_STRING_print.c new file mode 100644 index 000000000..2c20908b8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/BIT_STRING_rfill.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/BIT_STRING_rfill.c new file mode 100644 index 000000000..f0ad86342 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/BIT_STRING_uper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/BIT_STRING_uper.c new file mode 100644 index 000000000..a22867fd8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/BOOLEAN.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/BOOLEAN.c new file mode 100644 index 000000000..98434f728 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/BOOLEAN_aper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/BOOLEAN_aper.c new file mode 100644 index 000000000..44b58b4f6 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/BOOLEAN_print.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/BOOLEAN_print.c new file mode 100644 index 000000000..9214f13ca --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/BOOLEAN_rfill.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/BOOLEAN_rfill.c new file mode 100644 index 000000000..b6b4b91df --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/BOOLEAN_uper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/BOOLEAN_uper.c new file mode 100644 index 000000000..176f06f8f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/ENUMERATED.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/ENUMERATED.c new file mode 100644 index 000000000..94d296a4b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/ENUMERATED_aper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/ENUMERATED_aper.c new file mode 100644 index 000000000..2004f75cc --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/ENUMERATED_uper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/ENUMERATED_uper.c new file mode 100644 index 000000000..f409193f8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/GraphicString.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/GraphicString.c new file mode 100644 index 000000000..58ef5ed62 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/IA5String.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/IA5String.c new file mode 100644 index 000000000..532312ea3 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/INTEGER.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/INTEGER.c new file mode 100644 index 000000000..88e24e185 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/INTEGER_aper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/INTEGER_aper.c new file mode 100644 index 000000000..b08b41ee4 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/INTEGER_print.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/INTEGER_print.c new file mode 100644 index 000000000..a39732fdc --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/INTEGER_rfill.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/INTEGER_rfill.c new file mode 100644 index 000000000..7ef3ace2d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/INTEGER_uper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/INTEGER_uper.c new file mode 100644 index 000000000..f5ae916f9 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/NULL.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/NULL.c new file mode 100644 index 000000000..2b1efeb7c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/NULL_aper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/NULL_aper.c new file mode 100644 index 000000000..7af4f2393 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/NULL_print.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/NULL_print.c new file mode 100644 index 000000000..f2e79c759 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/NULL_rfill.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/NULL_rfill.c new file mode 100644 index 000000000..7cc0cac98 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/NULL_uper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/NULL_uper.c new file mode 100644 index 000000000..05acfa897 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/NativeEnumerated.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/NativeEnumerated.c new file mode 100644 index 000000000..06847578e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/NativeEnumerated_aper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/NativeEnumerated_aper.c new file mode 100644 index 000000000..89d7d75e1 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/NativeEnumerated_uper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/NativeEnumerated_uper.c new file mode 100644 index 000000000..179e5b70c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/NativeInteger.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/NativeInteger.c new file mode 100644 index 000000000..480502b13 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/NativeInteger_aper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/NativeInteger_aper.c new file mode 100644 index 000000000..86492bc3b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/NativeInteger_print.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/NativeInteger_print.c new file mode 100644 index 000000000..1fbbbfe37 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/NativeInteger_rfill.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/NativeInteger_rfill.c new file mode 100644 index 000000000..326f702a6 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/NativeInteger_uper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/NativeInteger_uper.c new file mode 100644 index 000000000..784f0ac30 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/NumericString.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/NumericString.c new file mode 100644 index 000000000..d41e1c755 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/OBJECT_IDENTIFIER.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/OBJECT_IDENTIFIER.c new file mode 100644 index 000000000..bec0bb388 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/OBJECT_IDENTIFIER_print.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/OBJECT_IDENTIFIER_print.c new file mode 100644 index 000000000..0af03dd36 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/OBJECT_IDENTIFIER_rfill.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/OBJECT_IDENTIFIER_rfill.c new file mode 100644 index 000000000..f41518a0b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/OCTET_STRING.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/OCTET_STRING.c new file mode 100644 index 000000000..7102b1607 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/OCTET_STRING_aper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/OCTET_STRING_aper.c new file mode 100644 index 000000000..6ffd107e4 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/OCTET_STRING_print.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/OCTET_STRING_print.c new file mode 100644 index 000000000..ce485b328 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/OCTET_STRING_rfill.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/OCTET_STRING_rfill.c new file mode 100644 index 000000000..eb6986c37 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/OCTET_STRING_uper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/OCTET_STRING_uper.c new file mode 100644 index 000000000..e6afc73e3 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/OPEN_TYPE.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/OPEN_TYPE.c new file mode 100644 index 000000000..6d053369e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/OPEN_TYPE_aper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/OPEN_TYPE_aper.c new file mode 100644 index 000000000..685ff8bf1 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/OPEN_TYPE_uper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/OPEN_TYPE_uper.c new file mode 100644 index 000000000..4438c8871 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/ObjectDescriptor.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/ObjectDescriptor.c new file mode 100644 index 000000000..18c285ddf --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/UTF8String.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/UTF8String.c new file mode 100644 index 000000000..82919a389 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/UTF8String_print.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/UTF8String_print.c new file mode 100644 index 000000000..56329e602 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/UTF8String_rfill.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/UTF8String_rfill.c new file mode 100644 index 000000000..5ae5fc954 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/VisibleString.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/VisibleString.c new file mode 100644 index 000000000..4380ef132 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/aper_decoder.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/aper_decoder.c new file mode 100644 index 000000000..1ed998c1c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/aper_encoder.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/aper_encoder.c new file mode 100644 index 000000000..ca16d21ba --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/aper_opentype.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/aper_opentype.c new file mode 100644 index 000000000..3ae6b10a8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/aper_support.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/aper_support.c new file mode 100644 index 000000000..492a6f1b2 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/asn_SEQUENCE_OF.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/asn_SEQUENCE_OF.c new file mode 100644 index 000000000..63c116fa5 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/asn_SET_OF.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/asn_SET_OF.c new file mode 100644 index 000000000..8712ca1a2 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/asn_application.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/asn_application.c new file mode 100644 index 000000000..e35a33f0e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/asn_bit_data.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/asn_bit_data.c new file mode 100644 index 000000000..49418eb60 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/asn_codecs_prim.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/asn_codecs_prim.c new file mode 100644 index 000000000..42ab7b240 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/asn_internal.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/asn_internal.c new file mode 100644 index 000000000..c793bebee --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/asn_random_fill.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/asn_random_fill.c new file mode 100644 index 000000000..611a04d13 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/ber_tlv_length.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/ber_tlv_length.c new file mode 100644 index 000000000..7b7475e1e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/ber_tlv_tag.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/ber_tlv_tag.c new file mode 100644 index 000000000..68067c8e1 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/constr_CHOICE.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/constr_CHOICE.c new file mode 100644 index 000000000..b5acd6523 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/constr_CHOICE_aper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/constr_CHOICE_aper.c new file mode 100644 index 000000000..f2f0642f0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/constr_CHOICE_print.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/constr_CHOICE_print.c new file mode 100644 index 000000000..7c847f9c7 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/constr_CHOICE_rfill.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/constr_CHOICE_rfill.c new file mode 100644 index 000000000..ab977656a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/constr_CHOICE_uper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/constr_CHOICE_uper.c new file mode 100644 index 000000000..db7129c5b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/constr_SEQUENCE.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/constr_SEQUENCE.c new file mode 100644 index 000000000..49ff0031f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/constr_SEQUENCE_OF.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/constr_SEQUENCE_OF.c new file mode 100644 index 000000000..931f3aa9c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/constr_SEQUENCE_OF_aper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/constr_SEQUENCE_OF_aper.c new file mode 100644 index 000000000..21b7780ad --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/constr_SEQUENCE_OF_uper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/constr_SEQUENCE_OF_uper.c new file mode 100644 index 000000000..7b07f1ed2 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/constr_SEQUENCE_aper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/constr_SEQUENCE_aper.c new file mode 100644 index 000000000..5578eefa8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/constr_SEQUENCE_print.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/constr_SEQUENCE_print.c new file mode 100644 index 000000000..e879b768a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/constr_SEQUENCE_rfill.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/constr_SEQUENCE_rfill.c new file mode 100644 index 000000000..2fc57e69a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/constr_SEQUENCE_uper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/constr_SEQUENCE_uper.c new file mode 100644 index 000000000..82c256b90 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/constr_SET_OF.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/constr_SET_OF.c new file mode 100644 index 000000000..e44d68805 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/constr_SET_OF_aper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/constr_SET_OF_aper.c new file mode 100644 index 000000000..d06281787 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/constr_SET_OF_print.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/constr_SET_OF_print.c new file mode 100644 index 000000000..58f5e7a33 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/constr_SET_OF_rfill.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/constr_SET_OF_rfill.c new file mode 100644 index 000000000..aa74e32bb --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/constr_SET_OF_uper.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/constr_SET_OF_uper.c new file mode 100644 index 000000000..bbbf1168f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/constr_TYPE.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/constr_TYPE.c new file mode 100644 index 000000000..b1def8103 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/constraints.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/constraints.c new file mode 100644 index 000000000..7f1b61678 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/per_decoder.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/per_decoder.c new file mode 100644 index 000000000..a329400bc --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/per_decoder.c @@ -0,0 +1,5 @@ +#include +#include +#include + +// Absolutely nothing diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/per_encoder.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/per_encoder.c new file mode 100644 index 000000000..8c3e9815a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/per_opentype.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/per_opentype.c new file mode 100644 index 000000000..e10d62e64 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/per_support.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/per_support.c new file mode 100644 index 000000000..e41be9c06 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/spatem_ts_AccelerationConfidence.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AccelerationConfidence.c new file mode 100644 index 000000000..e5c615d0e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_AccelerationConfidence.h" + +int +spatem_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_spatem_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_spatem_ts_AccelerationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_AccelerationConfidence = { + "AccelerationConfidence", + "AccelerationConfidence", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_AccelerationConfidence_tags_1, + sizeof(asn_DEF_spatem_ts_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_spatem_ts_AccelerationConfidence_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_AccelerationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_AccelerationConfidence_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_AccelerationConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AccelerationControl.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AccelerationControl.c new file mode 100644 index 000000000..09f97f712 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_AccelerationControl.h" + +int +spatem_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_spatem_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_spatem_ts_AccelerationControl_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_AccelerationControl = { + "AccelerationControl", + "AccelerationControl", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_AccelerationControl_tags_1, + sizeof(asn_DEF_spatem_ts_AccelerationControl_tags_1) + /sizeof(asn_DEF_spatem_ts_AccelerationControl_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_AccelerationControl_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_AccelerationControl_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_AccelerationControl_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AccidentSubCauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AccidentSubCauseCode.c new file mode 100644 index 000000000..ddb742c35 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_AccidentSubCauseCode.h" + +int +spatem_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_spatem_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_spatem_ts_AccidentSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_AccidentSubCauseCode = { + "AccidentSubCauseCode", + "AccidentSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_AccidentSubCauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_AccidentSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_AccidentSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_AccidentSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_AccidentSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ActionID.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ActionID.c new file mode 100644 index 000000000..bd9fd5336 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ActionID.h" + +static asn_TYPE_member_t asn_MBR_spatem_ts_ActionID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_ActionID, originatingStationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ActionID, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_ActionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_ts_ActionID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* originatingStationID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* sequenceNumber */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_ActionID_specs_1 = { + sizeof(struct spatem_ts_ActionID), + offsetof(struct spatem_ts_ActionID, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_ActionID = { + "ActionID", + "ActionID", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_ActionID_tags_1, + sizeof(asn_DEF_spatem_ts_ActionID_tags_1) + /sizeof(asn_DEF_spatem_ts_ActionID_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ActionID_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ActionID_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_ActionID_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_ActionID_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AdverseWeatherCondition-AdhesionSubCauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AdverseWeatherCondition-AdhesionSubCauseCode.c new file mode 100644 index 000000000..93df3d135 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_AdverseWeatherCondition-AdhesionSubCauseCode.h" + +int +spatem_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_spatem_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_spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode = { + "AdverseWeatherCondition-AdhesionSubCauseCode", + "AdverseWeatherCondition-AdhesionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_AdverseWeatherCondition_AdhesionSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.c new file mode 100644 index 000000000..b93af526d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode.h" + +int +spatem_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_spatem_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_spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode = { + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + "AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_AdverseWeatherCondition_ExtremeWeatherConditionSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.c new file mode 100644 index 000000000..acfee7530 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_AdverseWeatherCondition-PrecipitationSubCauseCode.h" + +int +spatem_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_spatem_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_spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode = { + "AdverseWeatherCondition-PrecipitationSubCauseCode", + "AdverseWeatherCondition-PrecipitationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_AdverseWeatherCondition_PrecipitationSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AdverseWeatherCondition-VisibilitySubCauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AdverseWeatherCondition-VisibilitySubCauseCode.c new file mode 100644 index 000000000..4afbf0388 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_AdverseWeatherCondition-VisibilitySubCauseCode.h" + +int +spatem_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_spatem_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_spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode = { + "AdverseWeatherCondition-VisibilitySubCauseCode", + "AdverseWeatherCondition-VisibilitySubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_AdverseWeatherCondition_VisibilitySubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AdvisorySpeed.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AdvisorySpeed.c new file mode 100644 index 000000000..ac3b53976 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_AdvisorySpeed.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_ts_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_regional_specs_7 = { + sizeof(struct spatem_ts_AdvisorySpeed__regional), + offsetof(struct spatem_ts_AdvisorySpeed__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatem_ts_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_regional_tags_7, + sizeof(asn_DEF_spatem_ts_regional_tags_7) + /sizeof(asn_DEF_spatem_ts_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_spatem_ts_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_spatem_ts_regional_tags_7) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_regional_7, + 1, /* Single element */ + &asn_SPC_spatem_ts_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_AdvisorySpeed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_AdvisorySpeed, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_AdvisorySpeed, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_AdvisorySpeed, confidence), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_AdvisorySpeed, distance), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_AdvisorySpeed, Class), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_AdvisorySpeed, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_spatem_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_spatem_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_spatem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_spatem_ts_AdvisorySpeed_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_AdvisorySpeed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_AdvisorySpeed_specs_1 = { + sizeof(struct spatem_ts_AdvisorySpeed), + offsetof(struct spatem_ts_AdvisorySpeed, _asn_ctx), + asn_MAP_spatem_ts_AdvisorySpeed_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_spatem_ts_AdvisorySpeed_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_AdvisorySpeed = { + "AdvisorySpeed", + "AdvisorySpeed", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_AdvisorySpeed_tags_1, + sizeof(asn_DEF_spatem_ts_AdvisorySpeed_tags_1) + /sizeof(asn_DEF_spatem_ts_AdvisorySpeed_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_AdvisorySpeed_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_AdvisorySpeed_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_AdvisorySpeed_1, + 6, /* Elements count */ + &asn_SPC_spatem_ts_AdvisorySpeed_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AdvisorySpeedList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AdvisorySpeedList.c new file mode 100644 index 000000000..e02ba2e3e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_AdvisorySpeedList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_AdvisorySpeedList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_AdvisorySpeedList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_AdvisorySpeedList_specs_1 = { + sizeof(struct spatem_ts_AdvisorySpeedList), + offsetof(struct spatem_ts_AdvisorySpeedList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_AdvisorySpeedList = { + "AdvisorySpeedList", + "AdvisorySpeedList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_AdvisorySpeedList_tags_1, + sizeof(asn_DEF_spatem_ts_AdvisorySpeedList_tags_1) + /sizeof(asn_DEF_spatem_ts_AdvisorySpeedList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_AdvisorySpeedList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_AdvisorySpeedList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_AdvisorySpeedList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_AdvisorySpeedList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AdvisorySpeedType.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AdvisorySpeedType.c new file mode 100644 index 000000000..1dc1e5c3c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_AdvisorySpeedType_specs_1 = { + asn_MAP_spatem_ts_AdvisorySpeedType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_AdvisorySpeedType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_AdvisorySpeedType = { + "AdvisorySpeedType", + "AdvisorySpeedType", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_AdvisorySpeedType_tags_1, + sizeof(asn_DEF_spatem_ts_AdvisorySpeedType_tags_1) + /sizeof(asn_DEF_spatem_ts_AdvisorySpeedType_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_AdvisorySpeedType_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_AdvisorySpeedType_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_AdvisorySpeedType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AllowedManeuvers.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AllowedManeuvers.c new file mode 100644 index 000000000..c0ce55fa0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_AllowedManeuvers.h" + +int +spatem_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_spatem_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_spatem_ts_AllowedManeuvers_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_AllowedManeuvers = { + "AllowedManeuvers", + "AllowedManeuvers", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_AllowedManeuvers_tags_1, + sizeof(asn_DEF_spatem_ts_AllowedManeuvers_tags_1) + /sizeof(asn_DEF_spatem_ts_AllowedManeuvers_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_AllowedManeuvers_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_AllowedManeuvers_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_AllowedManeuvers_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AlphabetIndicator.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AlphabetIndicator.c new file mode 100644 index 000000000..ee3918b91 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_AlphabetIndicator.h" + +int +spatem_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_spatem_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_spatem_ts_AlphabetIndicator_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_AlphabetIndicator = { + "AlphabetIndicator", + "AlphabetIndicator", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_AlphabetIndicator_tags_1, + sizeof(asn_DEF_spatem_ts_AlphabetIndicator_tags_1) + /sizeof(asn_DEF_spatem_ts_AlphabetIndicator_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_AlphabetIndicator_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_AlphabetIndicator_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_AlphabetIndicator_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Altitude.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Altitude.c new file mode 100644 index 000000000..c2c325c4b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Altitude.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_Altitude_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Altitude, altitudeValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_Altitude, altitudeConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_Altitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Altitude_specs_1 = { + sizeof(struct spatem_ts_Altitude), + offsetof(struct spatem_ts_Altitude, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Altitude = { + "Altitude", + "Altitude", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Altitude_tags_1, + sizeof(asn_DEF_spatem_ts_Altitude_tags_1) + /sizeof(asn_DEF_spatem_ts_Altitude_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Altitude_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Altitude_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_Altitude_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Altitude_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AltitudeConfidence.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AltitudeConfidence.c new file mode 100644 index 000000000..2d6ba8228 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_AltitudeConfidence_specs_1 = { + asn_MAP_spatem_ts_AltitudeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_AltitudeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_AltitudeConfidence = { + "AltitudeConfidence", + "AltitudeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_AltitudeConfidence_tags_1, + sizeof(asn_DEF_spatem_ts_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_spatem_ts_AltitudeConfidence_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_AltitudeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_AltitudeConfidence_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_AltitudeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AltitudeValue.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AltitudeValue.c new file mode 100644 index 000000000..0adaed4b7 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_AltitudeValue.h" + +int +spatem_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_spatem_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_spatem_ts_AltitudeValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_AltitudeValue = { + "AltitudeValue", + "AltitudeValue", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_AltitudeValue_tags_1, + sizeof(asn_DEF_spatem_ts_AltitudeValue_tags_1) + /sizeof(asn_DEF_spatem_ts_AltitudeValue_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_AltitudeValue_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_AltitudeValue_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_AltitudeValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Angle.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Angle.c new file mode 100644 index 000000000..e9e9f018b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Angle.h" + +int +spatem_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_spatem_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_spatem_ts_Angle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_Angle = { + "Angle", + "Angle", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_Angle_tags_1, + sizeof(asn_DEF_spatem_ts_Angle_tags_1) + /sizeof(asn_DEF_spatem_ts_Angle_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Angle_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Angle_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_Angle_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AntennaOffsetSet.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AntennaOffsetSet.c new file mode 100644 index 000000000..3cbcfe095 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_AntennaOffsetSet.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_AntennaOffsetSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_AntennaOffsetSet, antOffsetX), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_AntennaOffsetSet, antOffsetY), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_AntennaOffsetSet, antOffsetZ), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_AntennaOffsetSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_AntennaOffsetSet_specs_1 = { + sizeof(struct spatem_ts_AntennaOffsetSet), + offsetof(struct spatem_ts_AntennaOffsetSet, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_AntennaOffsetSet = { + "AntennaOffsetSet", + "AntennaOffsetSet", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_AntennaOffsetSet_tags_1, + sizeof(asn_DEF_spatem_ts_AntennaOffsetSet_tags_1) + /sizeof(asn_DEF_spatem_ts_AntennaOffsetSet_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_AntennaOffsetSet_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_AntennaOffsetSet_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_AntennaOffsetSet_1, + 3, /* Elements count */ + &asn_SPC_spatem_ts_AntennaOffsetSet_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ApproachID.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ApproachID.c new file mode 100644 index 000000000..74219beba --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ApproachID.h" + +int +spatem_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_spatem_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_spatem_ts_ApproachID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ApproachID = { + "ApproachID", + "ApproachID", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_ApproachID_tags_1, + sizeof(asn_DEF_spatem_ts_ApproachID_tags_1) + /sizeof(asn_DEF_spatem_ts_ApproachID_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ApproachID_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ApproachID_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_ApproachID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AviEriDateTime.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_AviEriDateTime.c new file mode 100644 index 000000000..60833f171 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_AviEriDateTime.h" + +int +spatem_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_spatem_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_spatem_ts_AviEriDateTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_AviEriDateTime = { + "AviEriDateTime", + "AviEriDateTime", + &asn_OP_OCTET_STRING, + asn_DEF_spatem_ts_AviEriDateTime_tags_1, + sizeof(asn_DEF_spatem_ts_AviEriDateTime_tags_1) + /sizeof(asn_DEF_spatem_ts_AviEriDateTime_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_AviEriDateTime_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_AviEriDateTime_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_AviEriDateTime_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_BasicVehicleRole.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_BasicVehicleRole.c new file mode 100644 index 000000000..735c61f54 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_BasicVehicleRole_specs_1 = { + asn_MAP_spatem_ts_BasicVehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_BasicVehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_BasicVehicleRole = { + "BasicVehicleRole", + "BasicVehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_BasicVehicleRole_tags_1, + sizeof(asn_DEF_spatem_ts_BasicVehicleRole_tags_1) + /sizeof(asn_DEF_spatem_ts_BasicVehicleRole_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_BasicVehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_BasicVehicleRole_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_BasicVehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_BatteryStatus.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_BatteryStatus.c new file mode 100644 index 000000000..bb2aa3b4d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_BatteryStatus_specs_1 = { + asn_MAP_spatem_ts_BatteryStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_BatteryStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_BatteryStatus = { + "BatteryStatus", + "BatteryStatus", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_BatteryStatus_tags_1, + sizeof(asn_DEF_spatem_ts_BatteryStatus_tags_1) + /sizeof(asn_DEF_spatem_ts_BatteryStatus_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_BatteryStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_BatteryStatus_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_BatteryStatus_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CS1.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CS1.c new file mode 100644 index 000000000..d8b50b867 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_CS1.h" + +static asn_TYPE_member_t asn_MBR_spatem_ts_CS1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_CS1, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_CS1, issuerIdentifier), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_CS1, serviceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_CS1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_CS1_specs_1 = { + sizeof(struct spatem_ts_CS1), + offsetof(struct spatem_ts_CS1, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_CS1 = { + "CS1", + "CS1", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_CS1_tags_1, + sizeof(asn_DEF_spatem_ts_CS1_tags_1) + /sizeof(asn_DEF_spatem_ts_CS1_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_CS1_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_CS1_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_CS1_1, + 3, /* Elements count */ + &asn_SPC_spatem_ts_CS1_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CS2.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CS2.c new file mode 100644 index 000000000..c91386c56 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_CS2.h" + +static asn_TYPE_member_t asn_MBR_spatem_ts_CS2_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_CS2, manufacturerIdentifier), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_CS2, serviceNumber), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_CS2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_CS2_specs_1 = { + sizeof(struct spatem_ts_CS2), + offsetof(struct spatem_ts_CS2, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_CS2 = { + "CS2", + "CS2", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_CS2_tags_1, + sizeof(asn_DEF_spatem_ts_CS2_tags_1) + /sizeof(asn_DEF_spatem_ts_CS2_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_CS2_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_CS2_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_CS2_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_CS2_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CS3.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CS3.c new file mode 100644 index 000000000..992e49b58 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_CS3.h" + +static asn_TYPE_member_t asn_MBR_spatem_ts_CS3_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_CS3, startTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_CS3, stopTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_CS3, geographLimit), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_CS3, serviceAppLimit), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_CS3_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_CS3_specs_1 = { + sizeof(struct spatem_ts_CS3), + offsetof(struct spatem_ts_CS3, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_CS3 = { + "CS3", + "CS3", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_CS3_tags_1, + sizeof(asn_DEF_spatem_ts_CS3_tags_1) + /sizeof(asn_DEF_spatem_ts_CS3_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_CS3_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_CS3_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_CS3_1, + 4, /* Elements count */ + &asn_SPC_spatem_ts_CS3_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CS4.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CS4.c new file mode 100644 index 000000000..d6cdad0d8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_CS4.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_CS4_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_CS4, countryCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_CS4, alphabetIndicator), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_CS4, licPlateNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_CS4_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_CS4_specs_1 = { + sizeof(struct spatem_ts_CS4), + offsetof(struct spatem_ts_CS4, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_CS4 = { + "CS4", + "CS4", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_CS4_tags_1, + sizeof(asn_DEF_spatem_ts_CS4_tags_1) + /sizeof(asn_DEF_spatem_ts_CS4_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_CS4_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_CS4_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_CS4_1, + 3, /* Elements count */ + &asn_SPC_spatem_ts_CS4_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CS5.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CS5.c new file mode 100644 index 000000000..a4183e725 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_CS5.h" + +static int +memb_spatem_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_spatem_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) */ +static asn_TYPE_member_t asn_MBR_spatem_ts_CS5_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_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 spatem_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_spatem_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_spatem_ts_fill_constraint_1 + }, + 0, 0, /* No default value */ + "fill" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_CS5_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_ts_CS5_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* vin */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* fill */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_CS5_specs_1 = { + sizeof(struct spatem_ts_CS5), + offsetof(struct spatem_ts_CS5, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_CS5 = { + "CS5", + "CS5", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_CS5_tags_1, + sizeof(asn_DEF_spatem_ts_CS5_tags_1) + /sizeof(asn_DEF_spatem_ts_CS5_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_CS5_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_CS5_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_CS5_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_CS5_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CS7.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CS7.c new file mode 100644 index 000000000..9d503a45d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_CS7.h" + +/* + * This type is implemented using spatem_ts_FreightContainerData, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_spatem_ts_CS7_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_CS7 = { + "CS7", + "CS7", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_CS7_tags_1, + sizeof(asn_DEF_spatem_ts_CS7_tags_1) + /sizeof(asn_DEF_spatem_ts_CS7_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_CS7_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_CS7_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_FreightContainerData_1, + 10, /* Elements count */ + &asn_SPC_spatem_ts_FreightContainerData_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CS8.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CS8.c new file mode 100644 index 000000000..52f461e58 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_CS8.h" + +static int +memb_spatem_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_spatem_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_spatem_ts_CS8_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_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_spatem_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_spatem_ts_fill_constraint_1 + }, + 0, 0, /* No default value */ + "fill" + }, + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_CS8, countryCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_CS8, taxCode), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_CS8_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_CS8_specs_1 = { + sizeof(struct spatem_ts_CS8), + offsetof(struct spatem_ts_CS8, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_CS8 = { + "CS8", + "CS8", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_CS8_tags_1, + sizeof(asn_DEF_spatem_ts_CS8_tags_1) + /sizeof(asn_DEF_spatem_ts_CS8_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_CS8_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_CS8_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_CS8_1, + 3, /* Elements count */ + &asn_SPC_spatem_ts_CS8_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CauseCode.c new file mode 100644 index 000000000..1c1cd52fe --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_CauseCode.h" + +static asn_TYPE_member_t asn_MBR_spatem_ts_CauseCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_CauseCode, causeCode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_CauseCode, subCauseCode), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_CauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_CauseCode_specs_1 = { + sizeof(struct spatem_ts_CauseCode), + offsetof(struct spatem_ts_CauseCode, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_CauseCode = { + "CauseCode", + "CauseCode", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_CauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_CauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_CauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_CauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_CauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_CauseCode_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_CauseCode_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CauseCodeType.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CauseCodeType.c new file mode 100644 index 000000000..f92a10f0b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_CauseCodeType.h" + +int +spatem_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_spatem_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_spatem_ts_CauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_CauseCodeType = { + "CauseCodeType", + "CauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_CauseCodeType_tags_1, + sizeof(asn_DEF_spatem_ts_CauseCodeType_tags_1) + /sizeof(asn_DEF_spatem_ts_CauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_CauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_CauseCodeType_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_CauseCodeType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CenDsrcTollingZone.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CenDsrcTollingZone.c new file mode 100644 index 000000000..42f51c8fd --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_CenDsrcTollingZone.h" + +static asn_TYPE_member_t asn_MBR_spatem_ts_CenDsrcTollingZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_CenDsrcTollingZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_CenDsrcTollingZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_CenDsrcTollingZone, cenDsrcTollingZoneID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_CenDsrcTollingZone_oms_1[] = { 2 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_CenDsrcTollingZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_CenDsrcTollingZone_specs_1 = { + sizeof(struct spatem_ts_CenDsrcTollingZone), + offsetof(struct spatem_ts_CenDsrcTollingZone, _asn_ctx), + asn_MAP_spatem_ts_CenDsrcTollingZone_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_spatem_ts_CenDsrcTollingZone_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_CenDsrcTollingZone = { + "CenDsrcTollingZone", + "CenDsrcTollingZone", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_CenDsrcTollingZone_tags_1, + sizeof(asn_DEF_spatem_ts_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_spatem_ts_CenDsrcTollingZone_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_CenDsrcTollingZone_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_CenDsrcTollingZone_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_CenDsrcTollingZone_1, + 3, /* Elements count */ + &asn_SPC_spatem_ts_CenDsrcTollingZone_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CenDsrcTollingZoneID.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CenDsrcTollingZoneID.c new file mode 100644 index 000000000..b6af23296 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_CenDsrcTollingZoneID.h" + +int +spatem_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 spatem_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_spatem_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_spatem_ts_CenDsrcTollingZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_CenDsrcTollingZoneID = { + "CenDsrcTollingZoneID", + "CenDsrcTollingZoneID", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_CenDsrcTollingZoneID_tags_1, + sizeof(asn_DEF_spatem_ts_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_spatem_ts_CenDsrcTollingZoneID_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_CenDsrcTollingZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_CenDsrcTollingZoneID_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_CenDsrcTollingZoneID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ClosedLanes.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ClosedLanes.c new file mode 100644 index 000000000..846a2eda8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ClosedLanes.h" + +static asn_TYPE_member_t asn_MBR_spatem_ts_ClosedLanes_1[] = { + { ATF_POINTER, 3, offsetof(struct spatem_ts_ClosedLanes, innerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ClosedLanes, outerhardShoulderStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ClosedLanes, drivingLaneStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_ClosedLanes_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_ClosedLanes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_ClosedLanes_specs_1 = { + sizeof(struct spatem_ts_ClosedLanes), + offsetof(struct spatem_ts_ClosedLanes, _asn_ctx), + asn_MAP_spatem_ts_ClosedLanes_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_spatem_ts_ClosedLanes_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ClosedLanes = { + "ClosedLanes", + "ClosedLanes", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_ClosedLanes_tags_1, + sizeof(asn_DEF_spatem_ts_ClosedLanes_tags_1) + /sizeof(asn_DEF_spatem_ts_ClosedLanes_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ClosedLanes_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ClosedLanes_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_ClosedLanes_1, + 3, /* Elements count */ + &asn_SPC_spatem_ts_ClosedLanes_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CollisionRiskSubCauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CollisionRiskSubCauseCode.c new file mode 100644 index 000000000..6572ddf7b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_CollisionRiskSubCauseCode.h" + +int +spatem_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_spatem_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_spatem_ts_CollisionRiskSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_CollisionRiskSubCauseCode = { + "CollisionRiskSubCauseCode", + "CollisionRiskSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_CollisionRiskSubCauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_CollisionRiskSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_CollisionRiskSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_CollisionRiskSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_CollisionRiskSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ComputedLane.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ComputedLane.c new file mode 100644 index 000000000..267ed8a09 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ComputedLane.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_offsetXaxis_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_ComputedLane__offsetXaxis, choice.small), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ComputedLane__offsetXaxis, choice.large), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_offsetXaxis_specs_3 = { + sizeof(struct spatem_ts_ComputedLane__offsetXaxis), + offsetof(struct spatem_ts_ComputedLane__offsetXaxis, _asn_ctx), + offsetof(struct spatem_ts_ComputedLane__offsetXaxis, present), + sizeof(((struct spatem_ts_ComputedLane__offsetXaxis *)0)->present), + asn_MAP_spatem_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_spatem_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_spatem_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_spatem_ts_offsetXaxis_3, + 2, /* Elements count */ + &asn_SPC_spatem_ts_offsetXaxis_specs_3 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_spatem_ts_offsetYaxis_6[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_ComputedLane__offsetYaxis, choice.small), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ComputedLane__offsetYaxis, choice.large), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_offsetYaxis_specs_6 = { + sizeof(struct spatem_ts_ComputedLane__offsetYaxis), + offsetof(struct spatem_ts_ComputedLane__offsetYaxis, _asn_ctx), + offsetof(struct spatem_ts_ComputedLane__offsetYaxis, present), + sizeof(((struct spatem_ts_ComputedLane__offsetYaxis *)0)->present), + asn_MAP_spatem_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_spatem_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_spatem_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_spatem_ts_offsetYaxis_6, + 2, /* Elements count */ + &asn_SPC_spatem_ts_offsetYaxis_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_spatem_ts_regional_12[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regional_tags_12[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_regional_specs_12 = { + sizeof(struct spatem_ts_ComputedLane__regional), + offsetof(struct spatem_ts_ComputedLane__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatem_ts_regional_12 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_regional_tags_12, + sizeof(asn_DEF_spatem_ts_regional_tags_12) + /sizeof(asn_DEF_spatem_ts_regional_tags_12[0]) - 1, /* 1 */ + asn_DEF_spatem_ts_regional_tags_12, /* Same as above */ + sizeof(asn_DEF_spatem_ts_regional_tags_12) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_regional_12, + 1, /* Single element */ + &asn_SPC_spatem_ts_regional_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_ComputedLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_ComputedLane, referenceLaneId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ComputedLane, offsetXaxis), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ComputedLane, offsetYaxis), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ComputedLane, rotateXY), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ComputedLane, scaleXaxis), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ComputedLane, scaleYaxis), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ComputedLane, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_spatem_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_spatem_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_spatem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_spatem_ts_ComputedLane_oms_1[] = { 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_ComputedLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_ComputedLane_specs_1 = { + sizeof(struct spatem_ts_ComputedLane), + offsetof(struct spatem_ts_ComputedLane, _asn_ctx), + asn_MAP_spatem_ts_ComputedLane_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_spatem_ts_ComputedLane_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ComputedLane = { + "ComputedLane", + "ComputedLane", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_ComputedLane_tags_1, + sizeof(asn_DEF_spatem_ts_ComputedLane_tags_1) + /sizeof(asn_DEF_spatem_ts_ComputedLane_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ComputedLane_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ComputedLane_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_ComputedLane_1, + 7, /* Elements count */ + &asn_SPC_spatem_ts_ComputedLane_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ConnectingLane.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ConnectingLane.c new file mode 100644 index 000000000..341e5e24a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ConnectingLane.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_ConnectingLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_ConnectingLane, lane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ConnectingLane, maneuver), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_ConnectingLane_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_ConnectingLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_ConnectingLane_specs_1 = { + sizeof(struct spatem_ts_ConnectingLane), + offsetof(struct spatem_ts_ConnectingLane, _asn_ctx), + asn_MAP_spatem_ts_ConnectingLane_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_spatem_ts_ConnectingLane_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ConnectingLane = { + "ConnectingLane", + "ConnectingLane", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_ConnectingLane_tags_1, + sizeof(asn_DEF_spatem_ts_ConnectingLane_tags_1) + /sizeof(asn_DEF_spatem_ts_ConnectingLane_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ConnectingLane_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ConnectingLane_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_ConnectingLane_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_ConnectingLane_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Connection.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Connection.c new file mode 100644 index 000000000..c55f07a11 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Connection.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_Connection_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Connection, connectingLane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_Connection, remoteIntersection), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_Connection, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_Connection, userClass), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_Connection, connectionID), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_Connection_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Connection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Connection_specs_1 = { + sizeof(struct spatem_ts_Connection), + offsetof(struct spatem_ts_Connection, _asn_ctx), + asn_MAP_spatem_ts_Connection_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_spatem_ts_Connection_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_Connection = { + "Connection", + "Connection", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Connection_tags_1, + sizeof(asn_DEF_spatem_ts_Connection_tags_1) + /sizeof(asn_DEF_spatem_ts_Connection_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Connection_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Connection_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_Connection_1, + 5, /* Elements count */ + &asn_SPC_spatem_ts_Connection_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ConnectionManeuverAssist-addGrpC.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ConnectionManeuverAssist-addGrpC.c new file mode 100644 index 000000000..b6febeeac --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ConnectionManeuverAssist-addGrpC.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_ConnectionManeuverAssist_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct spatem_ts_ConnectionManeuverAssist_addGrpC, itsStationPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_ConnectionManeuverAssist_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_ConnectionManeuverAssist_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_ts_ConnectionManeuverAssist_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* itsStationPosition */ +}; +asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_ConnectionManeuverAssist_addGrpC_specs_1 = { + sizeof(struct spatem_ts_ConnectionManeuverAssist_addGrpC), + offsetof(struct spatem_ts_ConnectionManeuverAssist_addGrpC, _asn_ctx), + asn_MAP_spatem_ts_ConnectionManeuverAssist_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_spatem_ts_ConnectionManeuverAssist_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ConnectionManeuverAssist_addGrpC = { + "ConnectionManeuverAssist-addGrpC", + "ConnectionManeuverAssist-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_ConnectionManeuverAssist_addGrpC_tags_1, + sizeof(asn_DEF_spatem_ts_ConnectionManeuverAssist_addGrpC_tags_1) + /sizeof(asn_DEF_spatem_ts_ConnectionManeuverAssist_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ConnectionManeuverAssist_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ConnectionManeuverAssist_addGrpC_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_ConnectionManeuverAssist_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_spatem_ts_ConnectionManeuverAssist_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ConnectionManeuverAssist.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ConnectionManeuverAssist.c new file mode 100644 index 000000000..22bc2177c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ConnectionManeuverAssist.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_ts_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_regional_specs_7 = { + sizeof(struct spatem_ts_ConnectionManeuverAssist__regional), + offsetof(struct spatem_ts_ConnectionManeuverAssist__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatem_ts_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_regional_tags_7, + sizeof(asn_DEF_spatem_ts_regional_tags_7) + /sizeof(asn_DEF_spatem_ts_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_spatem_ts_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_spatem_ts_regional_tags_7) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_regional_7, + 1, /* Single element */ + &asn_SPC_spatem_ts_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_ConnectionManeuverAssist_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_ConnectionManeuverAssist, connectionID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ConnectionManeuverAssist, queueLength), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ConnectionManeuverAssist, availableStorageLength), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ConnectionManeuverAssist, waitOnStop), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ConnectionManeuverAssist, pedBicycleDetect), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ConnectionManeuverAssist, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_spatem_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_spatem_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_spatem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_spatem_ts_ConnectionManeuverAssist_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_ConnectionManeuverAssist_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_ConnectionManeuverAssist_specs_1 = { + sizeof(struct spatem_ts_ConnectionManeuverAssist), + offsetof(struct spatem_ts_ConnectionManeuverAssist, _asn_ctx), + asn_MAP_spatem_ts_ConnectionManeuverAssist_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_spatem_ts_ConnectionManeuverAssist_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ConnectionManeuverAssist = { + "ConnectionManeuverAssist", + "ConnectionManeuverAssist", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_ConnectionManeuverAssist_tags_1, + sizeof(asn_DEF_spatem_ts_ConnectionManeuverAssist_tags_1) + /sizeof(asn_DEF_spatem_ts_ConnectionManeuverAssist_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ConnectionManeuverAssist_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ConnectionManeuverAssist_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_ConnectionManeuverAssist_1, + 6, /* Elements count */ + &asn_SPC_spatem_ts_ConnectionManeuverAssist_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ConnectionTrajectory-addGrpC.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ConnectionTrajectory-addGrpC.c new file mode 100644 index 000000000..70c07eb1e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ConnectionTrajectory-addGrpC.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_ConnectionTrajectory_addGrpC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_ConnectionTrajectory_addGrpC, nodes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ConnectionTrajectory_addGrpC, connectionID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_ConnectionTrajectory_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_ConnectionTrajectory_addGrpC_specs_1 = { + sizeof(struct spatem_ts_ConnectionTrajectory_addGrpC), + offsetof(struct spatem_ts_ConnectionTrajectory_addGrpC, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_ConnectionTrajectory_addGrpC = { + "ConnectionTrajectory-addGrpC", + "ConnectionTrajectory-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_ConnectionTrajectory_addGrpC_tags_1, + sizeof(asn_DEF_spatem_ts_ConnectionTrajectory_addGrpC_tags_1) + /sizeof(asn_DEF_spatem_ts_ConnectionTrajectory_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ConnectionTrajectory_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ConnectionTrajectory_addGrpC_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_ConnectionTrajectory_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_ConnectionTrajectory_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ConnectsToList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ConnectsToList.c new file mode 100644 index 000000000..e66d2ba5b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ConnectsToList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_ConnectsToList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_ConnectsToList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_ConnectsToList_specs_1 = { + sizeof(struct spatem_ts_ConnectsToList), + offsetof(struct spatem_ts_ConnectsToList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ConnectsToList = { + "ConnectsToList", + "ConnectsToList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_ConnectsToList_tags_1, + sizeof(asn_DEF_spatem_ts_ConnectsToList_tags_1) + /sizeof(asn_DEF_spatem_ts_ConnectsToList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ConnectsToList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ConnectsToList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_ConnectsToList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_ConnectsToList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CountryCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CountryCode.c new file mode 100644 index 000000000..172fe9f12 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_CountryCode.h" + +int +spatem_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_spatem_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_spatem_ts_CountryCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_CountryCode = { + "CountryCode", + "CountryCode", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_CountryCode_tags_1, + sizeof(asn_DEF_spatem_ts_CountryCode_tags_1) + /sizeof(asn_DEF_spatem_ts_CountryCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_CountryCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_CountryCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_CountryCode_constraint + }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Curvature.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Curvature.c new file mode 100644 index 000000000..7344d3025 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Curvature.h" + +static asn_TYPE_member_t asn_MBR_spatem_ts_Curvature_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Curvature, curvatureValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_Curvature, curvatureConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_Curvature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Curvature_specs_1 = { + sizeof(struct spatem_ts_Curvature), + offsetof(struct spatem_ts_Curvature, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Curvature = { + "Curvature", + "Curvature", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Curvature_tags_1, + sizeof(asn_DEF_spatem_ts_Curvature_tags_1) + /sizeof(asn_DEF_spatem_ts_Curvature_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Curvature_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Curvature_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_Curvature_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Curvature_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CurvatureCalculationMode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CurvatureCalculationMode.c new file mode 100644 index 000000000..381e36b08 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_ts_CurvatureCalculationMode_value2enum_1[] = { + { 0, 11, "yawRateUsed" }, + { 1, 14, "yawRateNotUsed" }, + { 2, 11, "unavailable" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_spatem_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_spatem_ts_CurvatureCalculationMode_specs_1 = { + asn_MAP_spatem_ts_CurvatureCalculationMode_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_CurvatureCalculationMode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_CurvatureCalculationMode = { + "CurvatureCalculationMode", + "CurvatureCalculationMode", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_CurvatureCalculationMode_tags_1, + sizeof(asn_DEF_spatem_ts_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_spatem_ts_CurvatureCalculationMode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_CurvatureCalculationMode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_CurvatureCalculationMode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_CurvatureCalculationMode_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CurvatureConfidence.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CurvatureConfidence.c new file mode 100644 index 000000000..595d50f7d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_CurvatureConfidence_specs_1 = { + asn_MAP_spatem_ts_CurvatureConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_CurvatureConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_CurvatureConfidence = { + "CurvatureConfidence", + "CurvatureConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_CurvatureConfidence_tags_1, + sizeof(asn_DEF_spatem_ts_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_spatem_ts_CurvatureConfidence_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_CurvatureConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_CurvatureConfidence_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_CurvatureConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CurvatureValue.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_CurvatureValue.c new file mode 100644 index 000000000..b23699dbc --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_CurvatureValue.h" + +int +spatem_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_spatem_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_spatem_ts_CurvatureValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_CurvatureValue = { + "CurvatureValue", + "CurvatureValue", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_CurvatureValue_tags_1, + sizeof(asn_DEF_spatem_ts_CurvatureValue_tags_1) + /sizeof(asn_DEF_spatem_ts_CurvatureValue_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_CurvatureValue_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_CurvatureValue_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_CurvatureValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DDateTime.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DDateTime.c new file mode 100644 index 000000000..0dc69757e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_DDateTime.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_DDateTime_1[] = { + { ATF_POINTER, 7, offsetof(struct spatem_ts_DDateTime, year), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_DDateTime, month), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_DDateTime, day), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_DDateTime, hour), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_DDateTime, minute), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_DDateTime, second), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_DDateTime, offset), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_DDateTime_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_DDateTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_DDateTime_specs_1 = { + sizeof(struct spatem_ts_DDateTime), + offsetof(struct spatem_ts_DDateTime, _asn_ctx), + asn_MAP_spatem_ts_DDateTime_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_spatem_ts_DDateTime_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DDateTime = { + "DDateTime", + "DDateTime", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_DDateTime_tags_1, + sizeof(asn_DEF_spatem_ts_DDateTime_tags_1) + /sizeof(asn_DEF_spatem_ts_DDateTime_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DDateTime_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DDateTime_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_DDateTime_1, + 7, /* Elements count */ + &asn_SPC_spatem_ts_DDateTime_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DDay.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DDay.c new file mode 100644 index 000000000..3df738697 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_DDay.h" + +int +spatem_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_spatem_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_spatem_ts_DDay_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DDay = { + "DDay", + "DDay", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_DDay_tags_1, + sizeof(asn_DEF_spatem_ts_DDay_tags_1) + /sizeof(asn_DEF_spatem_ts_DDay_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DDay_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DDay_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_DDay_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DHour.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DHour.c new file mode 100644 index 000000000..59834c1a2 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_DHour.h" + +int +spatem_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_spatem_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_spatem_ts_DHour_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DHour = { + "DHour", + "DHour", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_DHour_tags_1, + sizeof(asn_DEF_spatem_ts_DHour_tags_1) + /sizeof(asn_DEF_spatem_ts_DHour_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DHour_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DHour_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_DHour_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DMinute.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DMinute.c new file mode 100644 index 000000000..3e45b0e5f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_DMinute.h" + +int +spatem_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_spatem_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_spatem_ts_DMinute_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DMinute = { + "DMinute", + "DMinute", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_DMinute_tags_1, + sizeof(asn_DEF_spatem_ts_DMinute_tags_1) + /sizeof(asn_DEF_spatem_ts_DMinute_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DMinute_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DMinute_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_DMinute_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DMonth.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DMonth.c new file mode 100644 index 000000000..599d08424 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_DMonth.h" + +int +spatem_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_spatem_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_spatem_ts_DMonth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DMonth = { + "DMonth", + "DMonth", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_DMonth_tags_1, + sizeof(asn_DEF_spatem_ts_DMonth_tags_1) + /sizeof(asn_DEF_spatem_ts_DMonth_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DMonth_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DMonth_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_DMonth_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DOffset.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DOffset.c new file mode 100644 index 000000000..928c9ad90 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_DOffset.h" + +int +spatem_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_spatem_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_spatem_ts_DOffset_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DOffset = { + "DOffset", + "DOffset", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_DOffset_tags_1, + sizeof(asn_DEF_spatem_ts_DOffset_tags_1) + /sizeof(asn_DEF_spatem_ts_DOffset_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DOffset_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DOffset_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_DOffset_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DSRCmsgID.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DSRCmsgID.c new file mode 100644 index 000000000..47f25dfe6 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_DSRCmsgID.h" + +int +spatem_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_spatem_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_spatem_ts_DSRCmsgID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DSRCmsgID = { + "DSRCmsgID", + "DSRCmsgID", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_DSRCmsgID_tags_1, + sizeof(asn_DEF_spatem_ts_DSRCmsgID_tags_1) + /sizeof(asn_DEF_spatem_ts_DSRCmsgID_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DSRCmsgID_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DSRCmsgID_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_DSRCmsgID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DSecond.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DSecond.c new file mode 100644 index 000000000..f931d39e7 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_DSecond.h" + +int +spatem_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_spatem_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_spatem_ts_DSecond_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DSecond = { + "DSecond", + "DSecond", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_DSecond_tags_1, + sizeof(asn_DEF_spatem_ts_DSecond_tags_1) + /sizeof(asn_DEF_spatem_ts_DSecond_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DSecond_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DSecond_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_DSecond_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DYear.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DYear.c new file mode 100644 index 000000000..748413b6a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_DYear.h" + +int +spatem_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_spatem_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_spatem_ts_DYear_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DYear = { + "DYear", + "DYear", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_DYear_tags_1, + sizeof(asn_DEF_spatem_ts_DYear_tags_1) + /sizeof(asn_DEF_spatem_ts_DYear_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DYear_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DYear_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_DYear_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DangerousEndOfQueueSubCauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DangerousEndOfQueueSubCauseCode.c new file mode 100644 index 000000000..ae5eaa375 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_DangerousEndOfQueueSubCauseCode.h" + +int +spatem_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_spatem_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_spatem_ts_DangerousEndOfQueueSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DangerousEndOfQueueSubCauseCode = { + "DangerousEndOfQueueSubCauseCode", + "DangerousEndOfQueueSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_DangerousEndOfQueueSubCauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_DangerousEndOfQueueSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DangerousEndOfQueueSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DangerousEndOfQueueSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_DangerousEndOfQueueSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DangerousGoodsBasic.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DangerousGoodsBasic.c new file mode 100644 index 000000000..7a8510418 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_DangerousGoodsBasic_specs_1 = { + asn_MAP_spatem_ts_DangerousGoodsBasic_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_DangerousGoodsBasic_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DangerousGoodsBasic = { + "DangerousGoodsBasic", + "DangerousGoodsBasic", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_DangerousGoodsBasic_tags_1, + sizeof(asn_DEF_spatem_ts_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_spatem_ts_DangerousGoodsBasic_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DangerousGoodsBasic_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DangerousGoodsBasic_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_DangerousGoodsBasic_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DangerousGoodsExtended.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DangerousGoodsExtended.c new file mode 100644 index 000000000..457f537f0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_DangerousGoodsExtended_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_DangerousGoodsExtended, dangerousGoodsType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_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_spatem_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_spatem_ts_unNumber_constraint_1 + }, + 0, 0, /* No default value */ + "unNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct spatem_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 spatem_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 spatem_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 spatem_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_spatem_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_spatem_ts_emergencyActionCode_constraint_1 + }, + 0, 0, /* No default value */ + "emergencyActionCode" + }, + { ATF_POINTER, 2, offsetof(struct spatem_ts_DangerousGoodsExtended, phoneNumber), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_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_spatem_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_spatem_ts_companyName_constraint_1 + }, + 0, 0, /* No default value */ + "companyName" + }, +}; +static const int asn_MAP_spatem_ts_DangerousGoodsExtended_oms_1[] = { 5, 6, 7 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_DangerousGoodsExtended_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_DangerousGoodsExtended_specs_1 = { + sizeof(struct spatem_ts_DangerousGoodsExtended), + offsetof(struct spatem_ts_DangerousGoodsExtended, _asn_ctx), + asn_MAP_spatem_ts_DangerousGoodsExtended_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_spatem_ts_DangerousGoodsExtended_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DangerousGoodsExtended = { + "DangerousGoodsExtended", + "DangerousGoodsExtended", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_DangerousGoodsExtended_tags_1, + sizeof(asn_DEF_spatem_ts_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_spatem_ts_DangerousGoodsExtended_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DangerousGoodsExtended_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DangerousGoodsExtended_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_DangerousGoodsExtended_1, + 8, /* Elements count */ + &asn_SPC_spatem_ts_DangerousGoodsExtended_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DangerousSituationSubCauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DangerousSituationSubCauseCode.c new file mode 100644 index 000000000..f015984de --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_DangerousSituationSubCauseCode.h" + +int +spatem_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_spatem_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_spatem_ts_DangerousSituationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DangerousSituationSubCauseCode = { + "DangerousSituationSubCauseCode", + "DangerousSituationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_DangerousSituationSubCauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_DangerousSituationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DangerousSituationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DangerousSituationSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_DangerousSituationSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DataParameters.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DataParameters.c new file mode 100644 index 000000000..f241d2a99 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_DataParameters_1[] = { + { ATF_POINTER, 4, offsetof(struct spatem_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_spatem_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_spatem_ts_processMethod_constraint_1 + }, + 0, 0, /* No default value */ + "processMethod" + }, + { ATF_POINTER, 3, offsetof(struct spatem_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_spatem_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_spatem_ts_processAgency_constraint_1 + }, + 0, 0, /* No default value */ + "processAgency" + }, + { ATF_POINTER, 2, offsetof(struct spatem_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_spatem_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_spatem_ts_lastCheckedDate_constraint_1 + }, + 0, 0, /* No default value */ + "lastCheckedDate" + }, + { ATF_POINTER, 1, offsetof(struct spatem_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_spatem_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_spatem_ts_geoidUsed_constraint_1 + }, + 0, 0, /* No default value */ + "geoidUsed" + }, +}; +static const int asn_MAP_spatem_ts_DataParameters_oms_1[] = { 0, 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_DataParameters_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_DataParameters_specs_1 = { + sizeof(struct spatem_ts_DataParameters), + offsetof(struct spatem_ts_DataParameters, _asn_ctx), + asn_MAP_spatem_ts_DataParameters_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_spatem_ts_DataParameters_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DataParameters = { + "DataParameters", + "DataParameters", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_DataParameters_tags_1, + sizeof(asn_DEF_spatem_ts_DataParameters_tags_1) + /sizeof(asn_DEF_spatem_ts_DataParameters_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DataParameters_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DataParameters_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_DataParameters_1, + 4, /* Elements count */ + &asn_SPC_spatem_ts_DataParameters_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DeltaAltitude.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DeltaAltitude.c new file mode 100644 index 000000000..c85a07f80 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_DeltaAltitude.h" + +int +spatem_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_spatem_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_spatem_ts_DeltaAltitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DeltaAltitude = { + "DeltaAltitude", + "DeltaAltitude", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_DeltaAltitude_tags_1, + sizeof(asn_DEF_spatem_ts_DeltaAltitude_tags_1) + /sizeof(asn_DEF_spatem_ts_DeltaAltitude_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DeltaAltitude_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DeltaAltitude_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_DeltaAltitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DeltaAngle.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DeltaAngle.c new file mode 100644 index 000000000..7e8f7e6d9 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_DeltaAngle.h" + +int +spatem_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_spatem_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_spatem_ts_DeltaAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DeltaAngle = { + "DeltaAngle", + "DeltaAngle", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_DeltaAngle_tags_1, + sizeof(asn_DEF_spatem_ts_DeltaAngle_tags_1) + /sizeof(asn_DEF_spatem_ts_DeltaAngle_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DeltaAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DeltaAngle_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_DeltaAngle_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DeltaLatitude.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DeltaLatitude.c new file mode 100644 index 000000000..9709f667f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_DeltaLatitude.h" + +int +spatem_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_spatem_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_spatem_ts_DeltaLatitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DeltaLatitude = { + "DeltaLatitude", + "DeltaLatitude", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_DeltaLatitude_tags_1, + sizeof(asn_DEF_spatem_ts_DeltaLatitude_tags_1) + /sizeof(asn_DEF_spatem_ts_DeltaLatitude_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DeltaLatitude_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DeltaLatitude_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_DeltaLatitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DeltaLongitude.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DeltaLongitude.c new file mode 100644 index 000000000..f788ec174 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_DeltaLongitude.h" + +int +spatem_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_spatem_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_spatem_ts_DeltaLongitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DeltaLongitude = { + "DeltaLongitude", + "DeltaLongitude", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_DeltaLongitude_tags_1, + sizeof(asn_DEF_spatem_ts_DeltaLongitude_tags_1) + /sizeof(asn_DEF_spatem_ts_DeltaLongitude_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DeltaLongitude_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DeltaLongitude_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_DeltaLongitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DeltaReferencePosition.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DeltaReferencePosition.c new file mode 100644 index 000000000..44472c69f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_DeltaReferencePosition.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_DeltaReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_DeltaReferencePosition, deltaLatitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_DeltaReferencePosition, deltaLongitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_DeltaReferencePosition, deltaAltitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_DeltaReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_DeltaReferencePosition_specs_1 = { + sizeof(struct spatem_ts_DeltaReferencePosition), + offsetof(struct spatem_ts_DeltaReferencePosition, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_DeltaReferencePosition = { + "DeltaReferencePosition", + "DeltaReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_DeltaReferencePosition_tags_1, + sizeof(asn_DEF_spatem_ts_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_spatem_ts_DeltaReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DeltaReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DeltaReferencePosition_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_DeltaReferencePosition_1, + 3, /* Elements count */ + &asn_SPC_spatem_ts_DeltaReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DeltaTime.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DeltaTime.c new file mode 100644 index 000000000..d04a210e7 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_DeltaTime.h" + +int +spatem_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_spatem_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_spatem_ts_DeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DeltaTime = { + "DeltaTime", + "DeltaTime", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_DeltaTime_tags_1, + sizeof(asn_DEF_spatem_ts_DeltaTime_tags_1) + /sizeof(asn_DEF_spatem_ts_DeltaTime_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DeltaTime_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_DeltaTime_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DescriptiveName.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DescriptiveName.c new file mode 100644 index 000000000..f46529617 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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 +spatem_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_spatem_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_spatem_ts_DescriptiveName_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DescriptiveName = { + "DescriptiveName", + "DescriptiveName", + &asn_OP_IA5String, + asn_DEF_spatem_ts_DescriptiveName_tags_1, + sizeof(asn_DEF_spatem_ts_DescriptiveName_tags_1) + /sizeof(asn_DEF_spatem_ts_DescriptiveName_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DescriptiveName_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DescriptiveName_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_DescriptiveName_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DigitalMap.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DigitalMap.c new file mode 100644 index 000000000..5e154afd9 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_DigitalMap.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_DigitalMap_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_DigitalMap_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_DigitalMap_specs_1 = { + sizeof(struct spatem_ts_DigitalMap), + offsetof(struct spatem_ts_DigitalMap, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DigitalMap = { + "DigitalMap", + "DigitalMap", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_DigitalMap_tags_1, + sizeof(asn_DEF_spatem_ts_DigitalMap_tags_1) + /sizeof(asn_DEF_spatem_ts_DigitalMap_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DigitalMap_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DigitalMap_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_DigitalMap_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_DigitalMap_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DriveDirection.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DriveDirection.c new file mode 100644 index 000000000..249cbe993 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_ts_DriveDirection_value2enum_1[] = { + { 0, 7, "forward" }, + { 1, 8, "backward" }, + { 2, 11, "unavailable" } +}; +static const unsigned int asn_MAP_spatem_ts_DriveDirection_enum2value_1[] = { + 1, /* backward(1) */ + 0, /* forward(0) */ + 2 /* unavailable(2) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_spatem_ts_DriveDirection_specs_1 = { + asn_MAP_spatem_ts_DriveDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_DriveDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DriveDirection = { + "DriveDirection", + "DriveDirection", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_DriveDirection_tags_1, + sizeof(asn_DEF_spatem_ts_DriveDirection_tags_1) + /sizeof(asn_DEF_spatem_ts_DriveDirection_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DriveDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DriveDirection_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_DriveDirection_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DrivenLineOffsetLg.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DrivenLineOffsetLg.c new file mode 100644 index 000000000..475a8bbee --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_DrivenLineOffsetLg.h" + +int +spatem_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_spatem_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_spatem_ts_DrivenLineOffsetLg_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DrivenLineOffsetLg = { + "DrivenLineOffsetLg", + "DrivenLineOffsetLg", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_DrivenLineOffsetLg_tags_1, + sizeof(asn_DEF_spatem_ts_DrivenLineOffsetLg_tags_1) + /sizeof(asn_DEF_spatem_ts_DrivenLineOffsetLg_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DrivenLineOffsetLg_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DrivenLineOffsetLg_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_DrivenLineOffsetLg_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DrivenLineOffsetSm.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DrivenLineOffsetSm.c new file mode 100644 index 000000000..a91a78c1a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_DrivenLineOffsetSm.h" + +int +spatem_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_spatem_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_spatem_ts_DrivenLineOffsetSm_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DrivenLineOffsetSm = { + "DrivenLineOffsetSm", + "DrivenLineOffsetSm", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_DrivenLineOffsetSm_tags_1, + sizeof(asn_DEF_spatem_ts_DrivenLineOffsetSm_tags_1) + /sizeof(asn_DEF_spatem_ts_DrivenLineOffsetSm_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DrivenLineOffsetSm_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DrivenLineOffsetSm_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_DrivenLineOffsetSm_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DrivingLaneStatus.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_DrivingLaneStatus.c new file mode 100644 index 000000000..e8846c771 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_DrivingLaneStatus.h" + +int +spatem_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_spatem_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_spatem_ts_DrivingLaneStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_DrivingLaneStatus = { + "DrivingLaneStatus", + "DrivingLaneStatus", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_DrivingLaneStatus_tags_1, + sizeof(asn_DEF_spatem_ts_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_spatem_ts_DrivingLaneStatus_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_DrivingLaneStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_DrivingLaneStatus_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_DrivingLaneStatus_constraint + }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EXTERNAL.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EXTERNAL.c new file mode 100644 index 000000000..2eca5d288 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_EXTERNAL.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_encoding_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_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 spatem_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 spatem_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_spatem_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_spatem_ts_encoding_specs_5 = { + sizeof(struct spatem_ts_EXTERNAL__encoding), + offsetof(struct spatem_ts_EXTERNAL__encoding, _asn_ctx), + offsetof(struct spatem_ts_EXTERNAL__encoding, present), + sizeof(((struct spatem_ts_EXTERNAL__encoding *)0)->present), + asn_MAP_spatem_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_spatem_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_spatem_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_spatem_ts_encoding_5, + 3, /* Elements count */ + &asn_SPC_spatem_ts_encoding_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_spatem_ts_EXTERNAL_1[] = { + { ATF_POINTER, 3, offsetof(struct spatem_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 spatem_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 spatem_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 spatem_ts_EXTERNAL, encoding), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_spatem_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_spatem_ts_EXTERNAL_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_EXTERNAL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_EXTERNAL_specs_1 = { + sizeof(struct spatem_ts_EXTERNAL), + offsetof(struct spatem_ts_EXTERNAL, _asn_ctx), + asn_MAP_spatem_ts_EXTERNAL_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_spatem_ts_EXTERNAL_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_EXTERNAL = { + "EXTERNAL", + "EXTERNAL", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_EXTERNAL_tags_1, + sizeof(asn_DEF_spatem_ts_EXTERNAL_tags_1) + /sizeof(asn_DEF_spatem_ts_EXTERNAL_tags_1[0]) - 1, /* 1 */ + asn_DEF_spatem_ts_EXTERNAL_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_EXTERNAL_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_EXTERNAL_1, + 4, /* Elements count */ + &asn_SPC_spatem_ts_EXTERNAL_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Elevation.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Elevation.c new file mode 100644 index 000000000..c74ca5aa4 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Elevation.h" + +int +spatem_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_spatem_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_spatem_ts_Elevation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_Elevation = { + "Elevation", + "Elevation", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_Elevation_tags_1, + sizeof(asn_DEF_spatem_ts_Elevation_tags_1) + /sizeof(asn_DEF_spatem_ts_Elevation_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Elevation_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Elevation_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_Elevation_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ElevationConfidence.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ElevationConfidence.c new file mode 100644 index 000000000..0a26c344f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_ElevationConfidence_specs_1 = { + asn_MAP_spatem_ts_ElevationConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_ElevationConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ElevationConfidence = { + "ElevationConfidence", + "ElevationConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_ElevationConfidence_tags_1, + sizeof(asn_DEF_spatem_ts_ElevationConfidence_tags_1) + /sizeof(asn_DEF_spatem_ts_ElevationConfidence_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ElevationConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ElevationConfidence_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_ElevationConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EmbarkationStatus.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EmbarkationStatus.c new file mode 100644 index 000000000..8f5e9e83e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_EmbarkationStatus.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_spatem_ts_EmbarkationStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_EmbarkationStatus = { + "EmbarkationStatus", + "EmbarkationStatus", + &asn_OP_BOOLEAN, + asn_DEF_spatem_ts_EmbarkationStatus_tags_1, + sizeof(asn_DEF_spatem_ts_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_spatem_ts_EmbarkationStatus_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_EmbarkationStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_EmbarkationStatus_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_coding/src/spatem_ts_EmergencyPriority.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EmergencyPriority.c new file mode 100644 index 000000000..a9353f0d7 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_EmergencyPriority.h" + +int +spatem_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_spatem_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_spatem_ts_EmergencyPriority_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_EmergencyPriority = { + "EmergencyPriority", + "EmergencyPriority", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_EmergencyPriority_tags_1, + sizeof(asn_DEF_spatem_ts_EmergencyPriority_tags_1) + /sizeof(asn_DEF_spatem_ts_EmergencyPriority_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_EmergencyPriority_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_EmergencyPriority_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_EmergencyPriority_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EmergencyVehicleApproachingSubCauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EmergencyVehicleApproachingSubCauseCode.c new file mode 100644 index 000000000..0e349a36e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_EmergencyVehicleApproachingSubCauseCode.h" + +int +spatem_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_spatem_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_spatem_ts_EmergencyVehicleApproachingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_EmergencyVehicleApproachingSubCauseCode = { + "EmergencyVehicleApproachingSubCauseCode", + "EmergencyVehicleApproachingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_EmergencyVehicleApproachingSubCauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_EmergencyVehicleApproachingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_EmergencyVehicleApproachingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_EmergencyVehicleApproachingSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_EmergencyVehicleApproachingSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EmissionType.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EmissionType.c new file mode 100644 index 000000000..df41af499 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_EmissionType_specs_1 = { + asn_MAP_spatem_ts_EmissionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_EmissionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_EmissionType = { + "EmissionType", + "EmissionType", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_EmissionType_tags_1, + sizeof(asn_DEF_spatem_ts_EmissionType_tags_1) + /sizeof(asn_DEF_spatem_ts_EmissionType_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_EmissionType_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_EmissionType_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_EmissionType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EnabledLaneList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EnabledLaneList.c new file mode 100644 index 000000000..12282f49f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_EnabledLaneList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_EnabledLaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_EnabledLaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_EnabledLaneList_specs_1 = { + sizeof(struct spatem_ts_EnabledLaneList), + offsetof(struct spatem_ts_EnabledLaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_EnabledLaneList = { + "EnabledLaneList", + "EnabledLaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_EnabledLaneList_tags_1, + sizeof(asn_DEF_spatem_ts_EnabledLaneList_tags_1) + /sizeof(asn_DEF_spatem_ts_EnabledLaneList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_EnabledLaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_EnabledLaneList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_EnabledLaneList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_EnabledLaneList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EnergyStorageType.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EnergyStorageType.c new file mode 100644 index 000000000..cdb75b3e8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_EnergyStorageType.h" + +int +spatem_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_spatem_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_spatem_ts_EnergyStorageType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_EnergyStorageType = { + "EnergyStorageType", + "EnergyStorageType", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_EnergyStorageType_tags_1, + sizeof(asn_DEF_spatem_ts_EnergyStorageType_tags_1) + /sizeof(asn_DEF_spatem_ts_EnergyStorageType_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_EnergyStorageType_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_EnergyStorageType_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_EnergyStorageType_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EuVehicleCategoryCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EuVehicleCategoryCode.c new file mode 100644 index 000000000..6ee13cf0c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_EuVehicleCategoryCode.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_spatem_ts_EuVehicleCategoryCode_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static asn_TYPE_member_t asn_MBR_spatem_ts_EuVehicleCategoryCode_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_EuVehicleCategoryCode, choice.euVehicleCategoryL), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_EuVehicleCategoryCode, choice.euVehicleCategoryM), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_EuVehicleCategoryCode, choice.euVehicleCategoryN), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_EuVehicleCategoryCode, choice.euVehicleCategoryO), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_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 spatem_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_spatem_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 */ +}; +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_EuVehicleCategoryCode_specs_1 = { + sizeof(struct spatem_ts_EuVehicleCategoryCode), + offsetof(struct spatem_ts_EuVehicleCategoryCode, _asn_ctx), + offsetof(struct spatem_ts_EuVehicleCategoryCode, present), + sizeof(((struct spatem_ts_EuVehicleCategoryCode *)0)->present), + asn_MAP_spatem_ts_EuVehicleCategoryCode_tag2el_1, + 6, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_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_spatem_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_spatem_ts_EuVehicleCategoryCode_1, + 6, /* Elements count */ + &asn_SPC_spatem_ts_EuVehicleCategoryCode_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EuVehicleCategoryL.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EuVehicleCategoryL.c new file mode 100644 index 000000000..ec8d6756d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_EuVehicleCategoryL_specs_1 = { + asn_MAP_spatem_ts_EuVehicleCategoryL_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_EuVehicleCategoryL_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_EuVehicleCategoryL = { + "EuVehicleCategoryL", + "EuVehicleCategoryL", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_EuVehicleCategoryL_tags_1, + sizeof(asn_DEF_spatem_ts_EuVehicleCategoryL_tags_1) + /sizeof(asn_DEF_spatem_ts_EuVehicleCategoryL_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_EuVehicleCategoryL_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_EuVehicleCategoryL_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_EuVehicleCategoryL_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EuVehicleCategoryM.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EuVehicleCategoryM.c new file mode 100644 index 000000000..de6177e35 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_ts_EuVehicleCategoryM_value2enum_1[] = { + { 0, 2, "m1" }, + { 1, 2, "m2" }, + { 2, 2, "m3" } +}; +static const unsigned int asn_MAP_spatem_ts_EuVehicleCategoryM_enum2value_1[] = { + 0, /* m1(0) */ + 1, /* m2(1) */ + 2 /* m3(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_spatem_ts_EuVehicleCategoryM_specs_1 = { + asn_MAP_spatem_ts_EuVehicleCategoryM_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_EuVehicleCategoryM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_EuVehicleCategoryM = { + "EuVehicleCategoryM", + "EuVehicleCategoryM", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_EuVehicleCategoryM_tags_1, + sizeof(asn_DEF_spatem_ts_EuVehicleCategoryM_tags_1) + /sizeof(asn_DEF_spatem_ts_EuVehicleCategoryM_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_EuVehicleCategoryM_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_EuVehicleCategoryM_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_EuVehicleCategoryM_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EuVehicleCategoryN.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EuVehicleCategoryN.c new file mode 100644 index 000000000..98f8b65c9 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_ts_EuVehicleCategoryN_value2enum_1[] = { + { 0, 2, "n1" }, + { 1, 2, "n2" }, + { 2, 2, "n3" } +}; +static const unsigned int asn_MAP_spatem_ts_EuVehicleCategoryN_enum2value_1[] = { + 0, /* n1(0) */ + 1, /* n2(1) */ + 2 /* n3(2) */ +}; +const asn_INTEGER_specifics_t asn_SPC_spatem_ts_EuVehicleCategoryN_specs_1 = { + asn_MAP_spatem_ts_EuVehicleCategoryN_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_EuVehicleCategoryN_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_EuVehicleCategoryN = { + "EuVehicleCategoryN", + "EuVehicleCategoryN", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_EuVehicleCategoryN_tags_1, + sizeof(asn_DEF_spatem_ts_EuVehicleCategoryN_tags_1) + /sizeof(asn_DEF_spatem_ts_EuVehicleCategoryN_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_EuVehicleCategoryN_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_EuVehicleCategoryN_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_EuVehicleCategoryN_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EuVehicleCategoryO.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EuVehicleCategoryO.c new file mode 100644 index 000000000..4a307af15 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_ts_EuVehicleCategoryO_value2enum_1[] = { + { 0, 2, "o1" }, + { 1, 2, "o2" }, + { 2, 2, "o3" }, + { 3, 2, "o4" } +}; +static const unsigned int asn_MAP_spatem_ts_EuVehicleCategoryO_enum2value_1[] = { + 0, /* o1(0) */ + 1, /* o2(1) */ + 2, /* o3(2) */ + 3 /* o4(3) */ +}; +const asn_INTEGER_specifics_t asn_SPC_spatem_ts_EuVehicleCategoryO_specs_1 = { + asn_MAP_spatem_ts_EuVehicleCategoryO_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_EuVehicleCategoryO_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_EuVehicleCategoryO = { + "EuVehicleCategoryO", + "EuVehicleCategoryO", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_EuVehicleCategoryO_tags_1, + sizeof(asn_DEF_spatem_ts_EuVehicleCategoryO_tags_1) + /sizeof(asn_DEF_spatem_ts_EuVehicleCategoryO_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_EuVehicleCategoryO_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_EuVehicleCategoryO_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_EuVehicleCategoryO_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EventHistory.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EventHistory.c new file mode 100644 index 000000000..9e12ccd78 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_EventHistory.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_EventHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_EventHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_EventHistory_specs_1 = { + sizeof(struct spatem_ts_EventHistory), + offsetof(struct spatem_ts_EventHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_EventHistory = { + "EventHistory", + "EventHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_EventHistory_tags_1, + sizeof(asn_DEF_spatem_ts_EventHistory_tags_1) + /sizeof(asn_DEF_spatem_ts_EventHistory_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_EventHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_EventHistory_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_EventHistory_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_EventHistory_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EventPoint.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_EventPoint.c new file mode 100644 index 000000000..f8f46bea3 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_EventPoint.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_EventPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_EventPoint, eventPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_EventPoint, eventDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_EventPoint, informationQuality), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_EventPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_EventPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_EventPoint_specs_1 = { + sizeof(struct spatem_ts_EventPoint), + offsetof(struct spatem_ts_EventPoint, _asn_ctx), + asn_MAP_spatem_ts_EventPoint_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_spatem_ts_EventPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_EventPoint = { + "EventPoint", + "EventPoint", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_EventPoint_tags_1, + sizeof(asn_DEF_spatem_ts_EventPoint_tags_1) + /sizeof(asn_DEF_spatem_ts_EventPoint_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_EventPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_EventPoint_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_EventPoint_1, + 3, /* Elements count */ + &asn_SPC_spatem_ts_EventPoint_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ExceptionalCondition.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ExceptionalCondition.c new file mode 100644 index 000000000..c7c2a4e77 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_ExceptionalCondition_specs_1 = { + asn_MAP_spatem_ts_ExceptionalCondition_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_ExceptionalCondition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ExceptionalCondition = { + "ExceptionalCondition", + "ExceptionalCondition", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_ExceptionalCondition_tags_1, + sizeof(asn_DEF_spatem_ts_ExceptionalCondition_tags_1) + /sizeof(asn_DEF_spatem_ts_ExceptionalCondition_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ExceptionalCondition_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ExceptionalCondition_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_ExceptionalCondition_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ExteriorLights.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ExteriorLights.c new file mode 100644 index 000000000..34dfce9ff --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ExteriorLights.h" + +int +spatem_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_spatem_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_spatem_ts_ExteriorLights_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ExteriorLights = { + "ExteriorLights", + "ExteriorLights", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_ExteriorLights_tags_1, + sizeof(asn_DEF_spatem_ts_ExteriorLights_tags_1) + /sizeof(asn_DEF_spatem_ts_ExteriorLights_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ExteriorLights_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ExteriorLights_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_ExteriorLights_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_FreightContainerData.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_FreightContainerData.c new file mode 100644 index 000000000..35bc04530 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_FreightContainerData.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_FreightContainerData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_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_spatem_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_spatem_ts_ownerCode_constraint_1 + }, + 0, 0, /* No default value */ + "ownerCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct spatem_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_spatem_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_spatem_ts_serialNumber_constraint_1 + }, + 0, 0, /* No default value */ + "serialNumber" + }, + { ATF_NOFLAGS, 0, offsetof(struct spatem_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_spatem_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_spatem_ts_checkDigit_constraint_1 + }, + 0, 0, /* No default value */ + "checkDigit" + }, + { ATF_NOFLAGS, 0, offsetof(struct spatem_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_spatem_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_spatem_ts_length_constraint_1 + }, + 0, 0, /* No default value */ + "length" + }, + { ATF_NOFLAGS, 0, offsetof(struct spatem_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_spatem_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_spatem_ts_height_constraint_1 + }, + 0, 0, /* No default value */ + "height" + }, + { ATF_NOFLAGS, 0, offsetof(struct spatem_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_spatem_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_spatem_ts_width_constraint_1 + }, + 0, 0, /* No default value */ + "width" + }, + { ATF_NOFLAGS, 0, offsetof(struct spatem_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_spatem_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_spatem_ts_containerTypeCode_constraint_1 + }, + 0, 0, /* No default value */ + "containerTypeCode" + }, + { ATF_NOFLAGS, 0, offsetof(struct spatem_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_spatem_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_spatem_ts_maximumGrossMass_constraint_1 + }, + 0, 0, /* No default value */ + "maximumGrossMass" + }, + { ATF_NOFLAGS, 0, offsetof(struct spatem_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_spatem_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_spatem_ts_tareMass_constraint_1 + }, + 0, 0, /* No default value */ + "tareMass" + }, + { ATF_NOFLAGS, 0, offsetof(struct spatem_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_spatem_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_spatem_ts_fill_constraint_1 + }, + 0, 0, /* No default value */ + "fill" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_FreightContainerData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_FreightContainerData_specs_1 = { + sizeof(struct spatem_ts_FreightContainerData), + offsetof(struct spatem_ts_FreightContainerData, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_FreightContainerData = { + "FreightContainerData", + "FreightContainerData", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_FreightContainerData_tags_1, + sizeof(asn_DEF_spatem_ts_FreightContainerData_tags_1) + /sizeof(asn_DEF_spatem_ts_FreightContainerData_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_FreightContainerData_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_FreightContainerData_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_FreightContainerData_1, + 10, /* Elements count */ + &asn_SPC_spatem_ts_FreightContainerData_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_FuelType.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_FuelType.c new file mode 100644 index 000000000..61ef1113c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_FuelType.h" + +int +spatem_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_spatem_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_spatem_ts_FuelType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_FuelType = { + "FuelType", + "FuelType", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_FuelType_tags_1, + sizeof(asn_DEF_spatem_ts_FuelType_tags_1) + /sizeof(asn_DEF_spatem_ts_FuelType_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_FuelType_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_FuelType_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_FuelType_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_FullPositionVector.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_FullPositionVector.c new file mode 100644 index 000000000..c30d998ac --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_FullPositionVector.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_FullPositionVector_1[] = { + { ATF_POINTER, 1, offsetof(struct spatem_ts_FullPositionVector, utcTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_FullPositionVector, Long), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_FullPositionVector, lat), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_FullPositionVector, elevation), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_FullPositionVector, heading), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_FullPositionVector, speed), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_FullPositionVector, posAccuracy), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_FullPositionVector, timeConfidence), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_FullPositionVector, posConfidence), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_FullPositionVector, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_FullPositionVector_oms_1[] = { 0, 3, 4, 5, 6, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_FullPositionVector_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_FullPositionVector_specs_1 = { + sizeof(struct spatem_ts_FullPositionVector), + offsetof(struct spatem_ts_FullPositionVector, _asn_ctx), + asn_MAP_spatem_ts_FullPositionVector_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_spatem_ts_FullPositionVector_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_FullPositionVector = { + "FullPositionVector", + "FullPositionVector", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_FullPositionVector_tags_1, + sizeof(asn_DEF_spatem_ts_FullPositionVector_tags_1) + /sizeof(asn_DEF_spatem_ts_FullPositionVector_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_FullPositionVector_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_FullPositionVector_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_FullPositionVector_1, + 10, /* Elements count */ + &asn_SPC_spatem_ts_FullPositionVector_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_GNSSstatus.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_GNSSstatus.c new file mode 100644 index 000000000..101029595 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_GNSSstatus.h" + +int +spatem_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_spatem_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_spatem_ts_GNSSstatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_GNSSstatus = { + "GNSSstatus", + "GNSSstatus", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_GNSSstatus_tags_1, + sizeof(asn_DEF_spatem_ts_GNSSstatus_tags_1) + /sizeof(asn_DEF_spatem_ts_GNSSstatus_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_GNSSstatus_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_GNSSstatus_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_GNSSstatus_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_GenericLane.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_GenericLane.c new file mode 100644 index 000000000..9ba8335f8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_GenericLane.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_ts_regional_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regional_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_regional_specs_11 = { + sizeof(struct spatem_ts_GenericLane__regional), + offsetof(struct spatem_ts_GenericLane__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatem_ts_regional_11 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_regional_tags_11, + sizeof(asn_DEF_spatem_ts_regional_tags_11) + /sizeof(asn_DEF_spatem_ts_regional_tags_11[0]) - 1, /* 1 */ + asn_DEF_spatem_ts_regional_tags_11, /* Same as above */ + sizeof(asn_DEF_spatem_ts_regional_tags_11) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_regional_11, + 1, /* Single element */ + &asn_SPC_spatem_ts_regional_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_GenericLane_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_GenericLane, laneID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_GenericLane, name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_GenericLane, ingressApproach), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_GenericLane, egressApproach), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_GenericLane, laneAttributes), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_GenericLane, maneuvers), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_GenericLane, nodeList), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_GenericLane, connectsTo), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_GenericLane, overlays), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_GenericLane, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_spatem_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_spatem_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_spatem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_spatem_ts_GenericLane_oms_1[] = { 1, 2, 3, 5, 7, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_GenericLane_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_GenericLane_specs_1 = { + sizeof(struct spatem_ts_GenericLane), + offsetof(struct spatem_ts_GenericLane, _asn_ctx), + asn_MAP_spatem_ts_GenericLane_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_spatem_ts_GenericLane_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_GenericLane = { + "GenericLane", + "GenericLane", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_GenericLane_tags_1, + sizeof(asn_DEF_spatem_ts_GenericLane_tags_1) + /sizeof(asn_DEF_spatem_ts_GenericLane_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_GenericLane_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_GenericLane_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_GenericLane_1, + 10, /* Elements count */ + &asn_SPC_spatem_ts_GenericLane_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_GeoGraphicalLimit.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_GeoGraphicalLimit.c new file mode 100644 index 000000000..ea9047b84 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_GeoGraphicalLimit.h" + +int +spatem_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_spatem_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_spatem_ts_GeoGraphicalLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_GeoGraphicalLimit = { + "GeoGraphicalLimit", + "GeoGraphicalLimit", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_GeoGraphicalLimit_tags_1, + sizeof(asn_DEF_spatem_ts_GeoGraphicalLimit_tags_1) + /sizeof(asn_DEF_spatem_ts_GeoGraphicalLimit_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_GeoGraphicalLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_GeoGraphicalLimit_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_GeoGraphicalLimit_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_HardShoulderStatus.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_HardShoulderStatus.c new file mode 100644 index 000000000..2e0ad73b2 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_ts_HardShoulderStatus_value2enum_1[] = { + { 0, 20, "availableForStopping" }, + { 1, 6, "closed" }, + { 2, 19, "availableForDriving" } +}; +static const unsigned int asn_MAP_spatem_ts_HardShoulderStatus_enum2value_1[] = { + 2, /* availableForDriving(2) */ + 0, /* availableForStopping(0) */ + 1 /* closed(1) */ +}; +const asn_INTEGER_specifics_t asn_SPC_spatem_ts_HardShoulderStatus_specs_1 = { + asn_MAP_spatem_ts_HardShoulderStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_HardShoulderStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_HardShoulderStatus = { + "HardShoulderStatus", + "HardShoulderStatus", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_HardShoulderStatus_tags_1, + sizeof(asn_DEF_spatem_ts_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_spatem_ts_HardShoulderStatus_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_HardShoulderStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_HardShoulderStatus_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_HardShoulderStatus_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.c new file mode 100644 index 000000000..d15d2508b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_HazardousLocation-AnimalOnTheRoadSubCauseCode.h" + +int +spatem_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_spatem_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_spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode = { + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + "HazardousLocation-AnimalOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_HazardousLocation_AnimalOnTheRoadSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_HazardousLocation-DangerousCurveSubCauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_HazardousLocation-DangerousCurveSubCauseCode.c new file mode 100644 index 000000000..db0a4645d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_HazardousLocation-DangerousCurveSubCauseCode.h" + +int +spatem_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_spatem_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_spatem_ts_HazardousLocation_DangerousCurveSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_HazardousLocation_DangerousCurveSubCauseCode = { + "HazardousLocation-DangerousCurveSubCauseCode", + "HazardousLocation-DangerousCurveSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_HazardousLocation_DangerousCurveSubCauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_HazardousLocation_DangerousCurveSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_HazardousLocation_DangerousCurveSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_HazardousLocation_DangerousCurveSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_HazardousLocation_DangerousCurveSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.c new file mode 100644 index 000000000..cc3e713c9 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_HazardousLocation-ObstacleOnTheRoadSubCauseCode.h" + +int +spatem_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_spatem_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_spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode = { + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + "HazardousLocation-ObstacleOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_HazardousLocation_ObstacleOnTheRoadSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_HazardousLocation-SurfaceConditionSubCauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_HazardousLocation-SurfaceConditionSubCauseCode.c new file mode 100644 index 000000000..4da321e35 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_HazardousLocation-SurfaceConditionSubCauseCode.h" + +int +spatem_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_spatem_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_spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode = { + "HazardousLocation-SurfaceConditionSubCauseCode", + "HazardousLocation-SurfaceConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_HazardousLocation_SurfaceConditionSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Heading.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Heading.c new file mode 100644 index 000000000..7c38fa7f6 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Heading.h" + +static asn_TYPE_member_t asn_MBR_spatem_ts_Heading_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Heading, headingValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_Heading, headingConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_Heading_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_ts_Heading_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* headingValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* headingConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Heading_specs_1 = { + sizeof(struct spatem_ts_Heading), + offsetof(struct spatem_ts_Heading, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Heading = { + "Heading", + "Heading", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Heading_tags_1, + sizeof(asn_DEF_spatem_ts_Heading_tags_1) + /sizeof(asn_DEF_spatem_ts_Heading_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Heading_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Heading_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_Heading_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Heading_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_HeadingConfidence.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_HeadingConfidence.c new file mode 100644 index 000000000..d277635f8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_HeadingConfidence.h" + +int +spatem_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_spatem_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_spatem_ts_HeadingConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_HeadingConfidence = { + "HeadingConfidence", + "HeadingConfidence", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_HeadingConfidence_tags_1, + sizeof(asn_DEF_spatem_ts_HeadingConfidence_tags_1) + /sizeof(asn_DEF_spatem_ts_HeadingConfidence_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_HeadingConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_HeadingConfidence_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_HeadingConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_HeadingConfidenceDSRC.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_HeadingConfidenceDSRC.c new file mode 100644 index 000000000..40dd6794c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_HeadingConfidenceDSRC_specs_1 = { + asn_MAP_spatem_ts_HeadingConfidenceDSRC_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_HeadingConfidenceDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_HeadingConfidenceDSRC = { + "HeadingConfidenceDSRC", + "HeadingConfidenceDSRC", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_HeadingConfidenceDSRC_tags_1, + sizeof(asn_DEF_spatem_ts_HeadingConfidenceDSRC_tags_1) + /sizeof(asn_DEF_spatem_ts_HeadingConfidenceDSRC_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_HeadingConfidenceDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_HeadingConfidenceDSRC_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_HeadingConfidenceDSRC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_HeadingDSRC.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_HeadingDSRC.c new file mode 100644 index 000000000..edff8da76 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_HeadingDSRC.h" + +int +spatem_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_spatem_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_spatem_ts_HeadingDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_HeadingDSRC = { + "HeadingDSRC", + "HeadingDSRC", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_HeadingDSRC_tags_1, + sizeof(asn_DEF_spatem_ts_HeadingDSRC_tags_1) + /sizeof(asn_DEF_spatem_ts_HeadingDSRC_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_HeadingDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_HeadingDSRC_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_HeadingDSRC_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_HeadingValue.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_HeadingValue.c new file mode 100644 index 000000000..0f531f209 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_HeadingValue.h" + +int +spatem_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_spatem_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_spatem_ts_HeadingValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_HeadingValue = { + "HeadingValue", + "HeadingValue", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_HeadingValue_tags_1, + sizeof(asn_DEF_spatem_ts_HeadingValue_tags_1) + /sizeof(asn_DEF_spatem_ts_HeadingValue_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_HeadingValue_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_HeadingValue_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_HeadingValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_HeightLonCarr.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_HeightLonCarr.c new file mode 100644 index 000000000..41e09f6d1 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_HeightLonCarr.h" + +int +spatem_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_spatem_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_spatem_ts_HeightLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_HeightLonCarr = { + "HeightLonCarr", + "HeightLonCarr", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_HeightLonCarr_tags_1, + sizeof(asn_DEF_spatem_ts_HeightLonCarr_tags_1) + /sizeof(asn_DEF_spatem_ts_HeightLonCarr_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_HeightLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_HeightLonCarr_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_HeightLonCarr_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_HumanPresenceOnTheRoadSubCauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_HumanPresenceOnTheRoadSubCauseCode.c new file mode 100644 index 000000000..92a7b353e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_HumanPresenceOnTheRoadSubCauseCode.h" + +int +spatem_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_spatem_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_spatem_ts_HumanPresenceOnTheRoadSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_HumanPresenceOnTheRoadSubCauseCode = { + "HumanPresenceOnTheRoadSubCauseCode", + "HumanPresenceOnTheRoadSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_HumanPresenceOnTheRoadSubCauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_HumanPresenceOnTheRoadSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_HumanPresenceOnTheRoadSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_HumanPresenceOnTheRoadSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_HumanPresenceOnTheRoadSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_HumanProblemSubCauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_HumanProblemSubCauseCode.c new file mode 100644 index 000000000..3a62c193f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_HumanProblemSubCauseCode.h" + +int +spatem_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_spatem_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_spatem_ts_HumanProblemSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_HumanProblemSubCauseCode = { + "HumanProblemSubCauseCode", + "HumanProblemSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_HumanProblemSubCauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_HumanProblemSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_HumanProblemSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_HumanProblemSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_HumanProblemSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_InformationQuality.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_InformationQuality.c new file mode 100644 index 000000000..441e9613c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_InformationQuality.h" + +int +spatem_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_spatem_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_spatem_ts_InformationQuality_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_InformationQuality = { + "InformationQuality", + "InformationQuality", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_InformationQuality_tags_1, + sizeof(asn_DEF_spatem_ts_InformationQuality_tags_1) + /sizeof(asn_DEF_spatem_ts_InformationQuality_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_InformationQuality_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_InformationQuality_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_InformationQuality_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_IntersectionAccessPoint.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_IntersectionAccessPoint.c new file mode 100644 index 000000000..1bb519d36 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionAccessPoint.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_IntersectionAccessPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_IntersectionAccessPoint, choice.lane), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_IntersectionAccessPoint, choice.approach), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_IntersectionAccessPoint, choice.connection), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_IntersectionAccessPoint_specs_1 = { + sizeof(struct spatem_ts_IntersectionAccessPoint), + offsetof(struct spatem_ts_IntersectionAccessPoint, _asn_ctx), + offsetof(struct spatem_ts_IntersectionAccessPoint, present), + sizeof(((struct spatem_ts_IntersectionAccessPoint *)0)->present), + asn_MAP_spatem_ts_IntersectionAccessPoint_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, + 3 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_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_spatem_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_spatem_ts_IntersectionAccessPoint_1, + 3, /* Elements count */ + &asn_SPC_spatem_ts_IntersectionAccessPoint_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_IntersectionGeometry.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_IntersectionGeometry.c new file mode 100644 index 000000000..56a1d56f0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionGeometry.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_ts_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_regional_specs_10 = { + sizeof(struct spatem_ts_IntersectionGeometry__regional), + offsetof(struct spatem_ts_IntersectionGeometry__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatem_ts_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_regional_tags_10, + sizeof(asn_DEF_spatem_ts_regional_tags_10) + /sizeof(asn_DEF_spatem_ts_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_spatem_ts_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_spatem_ts_regional_tags_10) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_regional_10, + 1, /* Single element */ + &asn_SPC_spatem_ts_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_IntersectionGeometry_1[] = { + { ATF_POINTER, 1, offsetof(struct spatem_ts_IntersectionGeometry, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_IntersectionGeometry, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_IntersectionGeometry, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_IntersectionGeometry, refPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_IntersectionGeometry, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_IntersectionGeometry, speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_IntersectionGeometry, laneSet), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_IntersectionGeometry, preemptPriorityData), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_IntersectionGeometry, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_spatem_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_spatem_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_spatem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_spatem_ts_IntersectionGeometry_oms_1[] = { 0, 4, 5, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_IntersectionGeometry_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_IntersectionGeometry_specs_1 = { + sizeof(struct spatem_ts_IntersectionGeometry), + offsetof(struct spatem_ts_IntersectionGeometry, _asn_ctx), + asn_MAP_spatem_ts_IntersectionGeometry_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_spatem_ts_IntersectionGeometry_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_IntersectionGeometry = { + "IntersectionGeometry", + "IntersectionGeometry", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_IntersectionGeometry_tags_1, + sizeof(asn_DEF_spatem_ts_IntersectionGeometry_tags_1) + /sizeof(asn_DEF_spatem_ts_IntersectionGeometry_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_IntersectionGeometry_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_IntersectionGeometry_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_IntersectionGeometry_1, + 9, /* Elements count */ + &asn_SPC_spatem_ts_IntersectionGeometry_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_IntersectionGeometryList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_IntersectionGeometryList.c new file mode 100644 index 000000000..4bdf3ac7f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionGeometryList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_IntersectionGeometryList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_IntersectionGeometryList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_IntersectionGeometryList_specs_1 = { + sizeof(struct spatem_ts_IntersectionGeometryList), + offsetof(struct spatem_ts_IntersectionGeometryList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_IntersectionGeometryList = { + "IntersectionGeometryList", + "IntersectionGeometryList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_IntersectionGeometryList_tags_1, + sizeof(asn_DEF_spatem_ts_IntersectionGeometryList_tags_1) + /sizeof(asn_DEF_spatem_ts_IntersectionGeometryList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_IntersectionGeometryList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_IntersectionGeometryList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_IntersectionGeometryList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_IntersectionGeometryList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_IntersectionID.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_IntersectionID.c new file mode 100644 index 000000000..e2b67b589 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionID.h" + +int +spatem_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_spatem_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_spatem_ts_IntersectionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_IntersectionID = { + "IntersectionID", + "IntersectionID", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_IntersectionID_tags_1, + sizeof(asn_DEF_spatem_ts_IntersectionID_tags_1) + /sizeof(asn_DEF_spatem_ts_IntersectionID_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_IntersectionID_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_IntersectionID_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_IntersectionID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_IntersectionReferenceID.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_IntersectionReferenceID.c new file mode 100644 index 000000000..8457cd2ac --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionReferenceID.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_IntersectionReferenceID_1[] = { + { ATF_POINTER, 1, offsetof(struct spatem_ts_IntersectionReferenceID, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_IntersectionReferenceID, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_IntersectionReferenceID_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_IntersectionReferenceID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_IntersectionReferenceID_specs_1 = { + sizeof(struct spatem_ts_IntersectionReferenceID), + offsetof(struct spatem_ts_IntersectionReferenceID, _asn_ctx), + asn_MAP_spatem_ts_IntersectionReferenceID_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_spatem_ts_IntersectionReferenceID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_IntersectionReferenceID = { + "IntersectionReferenceID", + "IntersectionReferenceID", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_IntersectionReferenceID_tags_1, + sizeof(asn_DEF_spatem_ts_IntersectionReferenceID_tags_1) + /sizeof(asn_DEF_spatem_ts_IntersectionReferenceID_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_IntersectionReferenceID_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_IntersectionReferenceID_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_IntersectionReferenceID_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_IntersectionReferenceID_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_IntersectionState-addGrpC.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_IntersectionState-addGrpC.c new file mode 100644 index 000000000..8ef3ca2bf --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionState-addGrpC.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_IntersectionState_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct spatem_ts_IntersectionState_addGrpC, activePrioritizations), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_IntersectionState_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_IntersectionState_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_ts_IntersectionState_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* activePrioritizations */ +}; +asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_IntersectionState_addGrpC_specs_1 = { + sizeof(struct spatem_ts_IntersectionState_addGrpC), + offsetof(struct spatem_ts_IntersectionState_addGrpC, _asn_ctx), + asn_MAP_spatem_ts_IntersectionState_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_spatem_ts_IntersectionState_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_IntersectionState_addGrpC = { + "IntersectionState-addGrpC", + "IntersectionState-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_IntersectionState_addGrpC_tags_1, + sizeof(asn_DEF_spatem_ts_IntersectionState_addGrpC_tags_1) + /sizeof(asn_DEF_spatem_ts_IntersectionState_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_IntersectionState_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_IntersectionState_addGrpC_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_IntersectionState_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_spatem_ts_IntersectionState_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_IntersectionState.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_IntersectionState.c new file mode 100644 index 000000000..17eb54d5f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionState.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_ts_regional_11[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regional_tags_11[] = { + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_regional_specs_11 = { + sizeof(struct spatem_ts_IntersectionState__regional), + offsetof(struct spatem_ts_IntersectionState__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatem_ts_regional_11 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_regional_tags_11, + sizeof(asn_DEF_spatem_ts_regional_tags_11) + /sizeof(asn_DEF_spatem_ts_regional_tags_11[0]) - 1, /* 1 */ + asn_DEF_spatem_ts_regional_tags_11, /* Same as above */ + sizeof(asn_DEF_spatem_ts_regional_tags_11) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_regional_11, + 1, /* Single element */ + &asn_SPC_spatem_ts_regional_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_IntersectionState_1[] = { + { ATF_POINTER, 1, offsetof(struct spatem_ts_IntersectionState, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_IntersectionState, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_IntersectionState, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_IntersectionState, status), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_IntersectionState, moy), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_IntersectionState, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_IntersectionState, enabledLanes), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_IntersectionState, states), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_IntersectionState, maneuverAssistList), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_IntersectionState, regional), + (ASN_TAG_CLASS_CONTEXT | (9 << 2)), + 0, + &asn_DEF_spatem_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_spatem_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_spatem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_spatem_ts_IntersectionState_oms_1[] = { 0, 4, 5, 6, 8, 9 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_IntersectionState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_IntersectionState_specs_1 = { + sizeof(struct spatem_ts_IntersectionState), + offsetof(struct spatem_ts_IntersectionState, _asn_ctx), + asn_MAP_spatem_ts_IntersectionState_tag2el_1, + 10, /* Count of tags in the map */ + asn_MAP_spatem_ts_IntersectionState_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 10, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_IntersectionState = { + "IntersectionState", + "IntersectionState", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_IntersectionState_tags_1, + sizeof(asn_DEF_spatem_ts_IntersectionState_tags_1) + /sizeof(asn_DEF_spatem_ts_IntersectionState_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_IntersectionState_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_IntersectionState_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_IntersectionState_1, + 10, /* Elements count */ + &asn_SPC_spatem_ts_IntersectionState_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_IntersectionStateList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_IntersectionStateList.c new file mode 100644 index 000000000..8fb602ad5 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionStateList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_IntersectionStateList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_IntersectionStateList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_IntersectionStateList_specs_1 = { + sizeof(struct spatem_ts_IntersectionStateList), + offsetof(struct spatem_ts_IntersectionStateList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_IntersectionStateList = { + "IntersectionStateList", + "IntersectionStateList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_IntersectionStateList_tags_1, + sizeof(asn_DEF_spatem_ts_IntersectionStateList_tags_1) + /sizeof(asn_DEF_spatem_ts_IntersectionStateList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_IntersectionStateList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_IntersectionStateList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_IntersectionStateList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_IntersectionStateList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_IntersectionStatusObject.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_IntersectionStatusObject.c new file mode 100644 index 000000000..940839235 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_IntersectionStatusObject.h" + +int +spatem_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_spatem_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_spatem_ts_IntersectionStatusObject_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_IntersectionStatusObject = { + "IntersectionStatusObject", + "IntersectionStatusObject", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_IntersectionStatusObject_tags_1, + sizeof(asn_DEF_spatem_ts_IntersectionStatusObject_tags_1) + /sizeof(asn_DEF_spatem_ts_IntersectionStatusObject_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_IntersectionStatusObject_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_IntersectionStatusObject_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_IntersectionStatusObject_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Iso3833VehicleType.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Iso3833VehicleType.c new file mode 100644 index 000000000..c96a68858 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Iso3833VehicleType.h" + +int +spatem_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_spatem_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_spatem_ts_Iso3833VehicleType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_Iso3833VehicleType = { + "Iso3833VehicleType", + "Iso3833VehicleType", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_Iso3833VehicleType_tags_1, + sizeof(asn_DEF_spatem_ts_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_spatem_ts_Iso3833VehicleType_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Iso3833VehicleType_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Iso3833VehicleType_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_Iso3833VehicleType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_IssuerIdentifier.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_IssuerIdentifier.c new file mode 100644 index 000000000..384e3d581 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_IssuerIdentifier.h" + +int +spatem_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_spatem_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_spatem_ts_IssuerIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_IssuerIdentifier = { + "IssuerIdentifier", + "IssuerIdentifier", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_IssuerIdentifier_tags_1, + sizeof(asn_DEF_spatem_ts_IssuerIdentifier_tags_1) + /sizeof(asn_DEF_spatem_ts_IssuerIdentifier_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_IssuerIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_IssuerIdentifier_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_IssuerIdentifier_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ItineraryPath.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ItineraryPath.c new file mode 100644 index 000000000..d87d21e63 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ItineraryPath.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_ItineraryPath_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_ItineraryPath_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_ItineraryPath_specs_1 = { + sizeof(struct spatem_ts_ItineraryPath), + offsetof(struct spatem_ts_ItineraryPath, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ItineraryPath = { + "ItineraryPath", + "ItineraryPath", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_ItineraryPath_tags_1, + sizeof(asn_DEF_spatem_ts_ItineraryPath_tags_1) + /sizeof(asn_DEF_spatem_ts_ItineraryPath_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ItineraryPath_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ItineraryPath_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_ItineraryPath_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_ItineraryPath_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ItsPduHeader.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ItsPduHeader.c new file mode 100644 index 000000000..8eaab9dde --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ItsPduHeader.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_ItsPduHeader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_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_spatem_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_spatem_ts_protocolVersion_constraint_1 + }, + 0, 0, /* No default value */ + "protocolVersion" + }, + { ATF_NOFLAGS, 0, offsetof(struct spatem_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_spatem_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_spatem_ts_messageID_constraint_1 + }, + 0, 0, /* No default value */ + "messageID" + }, + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_ItsPduHeader, stationID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_ItsPduHeader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_ItsPduHeader_specs_1 = { + sizeof(struct spatem_ts_ItsPduHeader), + offsetof(struct spatem_ts_ItsPduHeader, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_ItsPduHeader = { + "ItsPduHeader", + "ItsPduHeader", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_ItsPduHeader_tags_1, + sizeof(asn_DEF_spatem_ts_ItsPduHeader_tags_1) + /sizeof(asn_DEF_spatem_ts_ItsPduHeader_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ItsPduHeader_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ItsPduHeader_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_ItsPduHeader_1, + 3, /* Elements count */ + &asn_SPC_spatem_ts_ItsPduHeader_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ItsStationPosition.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ItsStationPosition.c new file mode 100644 index 000000000..0fb4c7abf --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ItsStationPosition.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_ItsStationPosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_ItsStationPosition, stationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ItsStationPosition, laneID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ItsStationPosition, nodeXY), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ItsStationPosition, timeReference), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_ItsStationPosition_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_ItsStationPosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_ItsStationPosition_specs_1 = { + sizeof(struct spatem_ts_ItsStationPosition), + offsetof(struct spatem_ts_ItsStationPosition, _asn_ctx), + asn_MAP_spatem_ts_ItsStationPosition_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_spatem_ts_ItsStationPosition_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ItsStationPosition = { + "ItsStationPosition", + "ItsStationPosition", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_ItsStationPosition_tags_1, + sizeof(asn_DEF_spatem_ts_ItsStationPosition_tags_1) + /sizeof(asn_DEF_spatem_ts_ItsStationPosition_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ItsStationPosition_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ItsStationPosition_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_ItsStationPosition_1, + 4, /* Elements count */ + &asn_SPC_spatem_ts_ItsStationPosition_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ItsStationPositionList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ItsStationPositionList.c new file mode 100644 index 000000000..7032a1aed --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ItsStationPositionList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_ItsStationPositionList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_ItsStationPositionList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_ItsStationPositionList_specs_1 = { + sizeof(struct spatem_ts_ItsStationPositionList), + offsetof(struct spatem_ts_ItsStationPositionList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ItsStationPositionList = { + "ItsStationPositionList", + "ItsStationPositionList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_ItsStationPositionList_tags_1, + sizeof(asn_DEF_spatem_ts_ItsStationPositionList_tags_1) + /sizeof(asn_DEF_spatem_ts_ItsStationPositionList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ItsStationPositionList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ItsStationPositionList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_ItsStationPositionList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_ItsStationPositionList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneAttributes-Barrier.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneAttributes-Barrier.c new file mode 100644 index 000000000..63ed18d3f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Barrier.h" + +int +spatem_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_spatem_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_spatem_ts_LaneAttributes_Barrier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneAttributes_Barrier = { + "LaneAttributes-Barrier", + "LaneAttributes-Barrier", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_LaneAttributes_Barrier_tags_1, + sizeof(asn_DEF_spatem_ts_LaneAttributes_Barrier_tags_1) + /sizeof(asn_DEF_spatem_ts_LaneAttributes_Barrier_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LaneAttributes_Barrier_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LaneAttributes_Barrier_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_LaneAttributes_Barrier_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneAttributes-Bike.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneAttributes-Bike.c new file mode 100644 index 000000000..c3c1f0f5c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Bike.h" + +int +spatem_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_spatem_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_spatem_ts_LaneAttributes_Bike_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneAttributes_Bike = { + "LaneAttributes-Bike", + "LaneAttributes-Bike", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_LaneAttributes_Bike_tags_1, + sizeof(asn_DEF_spatem_ts_LaneAttributes_Bike_tags_1) + /sizeof(asn_DEF_spatem_ts_LaneAttributes_Bike_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LaneAttributes_Bike_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LaneAttributes_Bike_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_LaneAttributes_Bike_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneAttributes-Crosswalk.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneAttributes-Crosswalk.c new file mode 100644 index 000000000..4bb5e4f50 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Crosswalk.h" + +int +spatem_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_spatem_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_spatem_ts_LaneAttributes_Crosswalk_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneAttributes_Crosswalk = { + "LaneAttributes-Crosswalk", + "LaneAttributes-Crosswalk", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_LaneAttributes_Crosswalk_tags_1, + sizeof(asn_DEF_spatem_ts_LaneAttributes_Crosswalk_tags_1) + /sizeof(asn_DEF_spatem_ts_LaneAttributes_Crosswalk_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LaneAttributes_Crosswalk_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LaneAttributes_Crosswalk_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_LaneAttributes_Crosswalk_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneAttributes-Parking.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneAttributes-Parking.c new file mode 100644 index 000000000..ed00f49d5 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Parking.h" + +int +spatem_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_spatem_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_spatem_ts_LaneAttributes_Parking_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneAttributes_Parking = { + "LaneAttributes-Parking", + "LaneAttributes-Parking", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_LaneAttributes_Parking_tags_1, + sizeof(asn_DEF_spatem_ts_LaneAttributes_Parking_tags_1) + /sizeof(asn_DEF_spatem_ts_LaneAttributes_Parking_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LaneAttributes_Parking_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LaneAttributes_Parking_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_LaneAttributes_Parking_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneAttributes-Sidewalk.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneAttributes-Sidewalk.c new file mode 100644 index 000000000..b055c47ec --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Sidewalk.h" + +int +spatem_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_spatem_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_spatem_ts_LaneAttributes_Sidewalk_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneAttributes_Sidewalk = { + "LaneAttributes-Sidewalk", + "LaneAttributes-Sidewalk", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_LaneAttributes_Sidewalk_tags_1, + sizeof(asn_DEF_spatem_ts_LaneAttributes_Sidewalk_tags_1) + /sizeof(asn_DEF_spatem_ts_LaneAttributes_Sidewalk_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LaneAttributes_Sidewalk_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LaneAttributes_Sidewalk_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_LaneAttributes_Sidewalk_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneAttributes-Striping.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneAttributes-Striping.c new file mode 100644 index 000000000..3a47c4c1b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Striping.h" + +int +spatem_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_spatem_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_spatem_ts_LaneAttributes_Striping_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneAttributes_Striping = { + "LaneAttributes-Striping", + "LaneAttributes-Striping", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_LaneAttributes_Striping_tags_1, + sizeof(asn_DEF_spatem_ts_LaneAttributes_Striping_tags_1) + /sizeof(asn_DEF_spatem_ts_LaneAttributes_Striping_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LaneAttributes_Striping_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LaneAttributes_Striping_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_LaneAttributes_Striping_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneAttributes-TrackedVehicle.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneAttributes-TrackedVehicle.c new file mode 100644 index 000000000..3ccafcb11 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-TrackedVehicle.h" + +int +spatem_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_spatem_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_spatem_ts_LaneAttributes_TrackedVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneAttributes_TrackedVehicle = { + "LaneAttributes-TrackedVehicle", + "LaneAttributes-TrackedVehicle", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_LaneAttributes_TrackedVehicle_tags_1, + sizeof(asn_DEF_spatem_ts_LaneAttributes_TrackedVehicle_tags_1) + /sizeof(asn_DEF_spatem_ts_LaneAttributes_TrackedVehicle_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LaneAttributes_TrackedVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LaneAttributes_TrackedVehicle_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_LaneAttributes_TrackedVehicle_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneAttributes-Vehicle.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneAttributes-Vehicle.c new file mode 100644 index 000000000..bf2588b1e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-Vehicle.h" + +int +spatem_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_spatem_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_spatem_ts_LaneAttributes_Vehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneAttributes_Vehicle = { + "LaneAttributes-Vehicle", + "LaneAttributes-Vehicle", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_LaneAttributes_Vehicle_tags_1, + sizeof(asn_DEF_spatem_ts_LaneAttributes_Vehicle_tags_1) + /sizeof(asn_DEF_spatem_ts_LaneAttributes_Vehicle_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LaneAttributes_Vehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LaneAttributes_Vehicle_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_LaneAttributes_Vehicle_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneAttributes-addGrpC.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneAttributes-addGrpC.c new file mode 100644 index 000000000..3d2b7c6a0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes-addGrpC.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_LaneAttributes_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct spatem_ts_LaneAttributes_addGrpC, maxVehicleHeight), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_LaneAttributes_addGrpC, maxVehicleWeight), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_LaneAttributes_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_LaneAttributes_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_LaneAttributes_addGrpC_specs_1 = { + sizeof(struct spatem_ts_LaneAttributes_addGrpC), + offsetof(struct spatem_ts_LaneAttributes_addGrpC, _asn_ctx), + asn_MAP_spatem_ts_LaneAttributes_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_spatem_ts_LaneAttributes_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneAttributes_addGrpC = { + "LaneAttributes-addGrpC", + "LaneAttributes-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_LaneAttributes_addGrpC_tags_1, + sizeof(asn_DEF_spatem_ts_LaneAttributes_addGrpC_tags_1) + /sizeof(asn_DEF_spatem_ts_LaneAttributes_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LaneAttributes_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LaneAttributes_addGrpC_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_LaneAttributes_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_LaneAttributes_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneAttributes.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneAttributes.c new file mode 100644 index 000000000..5f63c1a77 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneAttributes.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_LaneAttributes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_LaneAttributes, directionalUse), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_LaneAttributes, sharedWith), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_LaneAttributes, laneType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_LaneAttributes, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_LaneAttributes_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_LaneAttributes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_LaneAttributes_specs_1 = { + sizeof(struct spatem_ts_LaneAttributes), + offsetof(struct spatem_ts_LaneAttributes, _asn_ctx), + asn_MAP_spatem_ts_LaneAttributes_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_spatem_ts_LaneAttributes_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneAttributes = { + "LaneAttributes", + "LaneAttributes", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_LaneAttributes_tags_1, + sizeof(asn_DEF_spatem_ts_LaneAttributes_tags_1) + /sizeof(asn_DEF_spatem_ts_LaneAttributes_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LaneAttributes_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LaneAttributes_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_LaneAttributes_1, + 4, /* Elements count */ + &asn_SPC_spatem_ts_LaneAttributes_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneConnectionID.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneConnectionID.c new file mode 100644 index 000000000..c5e141ef1 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneConnectionID.h" + +int +spatem_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_spatem_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_spatem_ts_LaneConnectionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneConnectionID = { + "LaneConnectionID", + "LaneConnectionID", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_LaneConnectionID_tags_1, + sizeof(asn_DEF_spatem_ts_LaneConnectionID_tags_1) + /sizeof(asn_DEF_spatem_ts_LaneConnectionID_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LaneConnectionID_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LaneConnectionID_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_LaneConnectionID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneDataAttribute.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneDataAttribute.c new file mode 100644 index 000000000..5ba23a26e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneDataAttribute.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_regional_specs_8 = { + sizeof(struct spatem_ts_LaneDataAttribute__regional), + offsetof(struct spatem_ts_LaneDataAttribute__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatem_ts_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_regional_tags_8, + sizeof(asn_DEF_spatem_ts_regional_tags_8) + /sizeof(asn_DEF_spatem_ts_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_spatem_ts_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_spatem_ts_regional_tags_8) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_regional_8, + 1, /* Single element */ + &asn_SPC_spatem_ts_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_LaneDataAttribute_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_LaneDataAttribute, choice.pathEndPointAngle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_LaneDataAttribute, choice.laneCrownPointCenter), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_LaneDataAttribute, choice.laneCrownPointLeft), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_LaneDataAttribute, choice.laneCrownPointRight), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_LaneDataAttribute, choice.laneAngle), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_LaneDataAttribute, choice.speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_LaneDataAttribute, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_spatem_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_spatem_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_spatem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_LaneDataAttribute_specs_1 = { + sizeof(struct spatem_ts_LaneDataAttribute), + offsetof(struct spatem_ts_LaneDataAttribute, _asn_ctx), + offsetof(struct spatem_ts_LaneDataAttribute, present), + sizeof(((struct spatem_ts_LaneDataAttribute *)0)->present), + asn_MAP_spatem_ts_LaneDataAttribute_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, + 7 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_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_spatem_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_spatem_ts_LaneDataAttribute_1, + 7, /* Elements count */ + &asn_SPC_spatem_ts_LaneDataAttribute_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneDataAttributeList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneDataAttributeList.c new file mode 100644 index 000000000..56f9eca3f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneDataAttributeList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_LaneDataAttributeList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_spatem_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_spatem_ts_LaneDataAttributeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_LaneDataAttributeList_specs_1 = { + sizeof(struct spatem_ts_LaneDataAttributeList), + offsetof(struct spatem_ts_LaneDataAttributeList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneDataAttributeList = { + "LaneDataAttributeList", + "LaneDataAttributeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_LaneDataAttributeList_tags_1, + sizeof(asn_DEF_spatem_ts_LaneDataAttributeList_tags_1) + /sizeof(asn_DEF_spatem_ts_LaneDataAttributeList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LaneDataAttributeList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LaneDataAttributeList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_LaneDataAttributeList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_LaneDataAttributeList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneDirection.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneDirection.c new file mode 100644 index 000000000..7e991c361 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneDirection.h" + +int +spatem_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_spatem_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_spatem_ts_LaneDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneDirection = { + "LaneDirection", + "LaneDirection", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_LaneDirection_tags_1, + sizeof(asn_DEF_spatem_ts_LaneDirection_tags_1) + /sizeof(asn_DEF_spatem_ts_LaneDirection_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LaneDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LaneDirection_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_LaneDirection_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneID.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneID.c new file mode 100644 index 000000000..e4136dca9 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneID.h" + +int +spatem_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_spatem_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_spatem_ts_LaneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneID = { + "LaneID", + "LaneID", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_LaneID_tags_1, + sizeof(asn_DEF_spatem_ts_LaneID_tags_1) + /sizeof(asn_DEF_spatem_ts_LaneID_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LaneID_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LaneID_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_LaneID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneList.c new file mode 100644 index 000000000..9c92bc3a7 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_LaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_LaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_LaneList_specs_1 = { + sizeof(struct spatem_ts_LaneList), + offsetof(struct spatem_ts_LaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneList = { + "LaneList", + "LaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_LaneList_tags_1, + sizeof(asn_DEF_spatem_ts_LaneList_tags_1) + /sizeof(asn_DEF_spatem_ts_LaneList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LaneList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_LaneList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_LaneList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LanePosition.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LanePosition.c new file mode 100644 index 000000000..07bc2efca --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LanePosition.h" + +int +spatem_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) +static asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_LanePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_LanePosition = { + "LanePosition", + "LanePosition", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_LanePosition_tags_1, + sizeof(asn_DEF_spatem_ts_LanePosition_tags_1) + /sizeof(asn_DEF_spatem_ts_LanePosition_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LanePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LanePosition_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_LanePosition_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneSharing.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneSharing.c new file mode 100644 index 000000000..5dde7f810 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneSharing.h" + +int +spatem_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_spatem_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_spatem_ts_LaneSharing_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneSharing = { + "LaneSharing", + "LaneSharing", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_LaneSharing_tags_1, + sizeof(asn_DEF_spatem_ts_LaneSharing_tags_1) + /sizeof(asn_DEF_spatem_ts_LaneSharing_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LaneSharing_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LaneSharing_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_LaneSharing_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneTypeAttributes.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneTypeAttributes.c new file mode 100644 index 000000000..6b9e94839 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneTypeAttributes.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_LaneTypeAttributes_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_LaneTypeAttributes, choice.vehicle), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_LaneTypeAttributes, choice.crosswalk), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_LaneTypeAttributes, choice.bikeLane), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_LaneTypeAttributes, choice.sidewalk), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_LaneTypeAttributes, choice.median), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_LaneTypeAttributes, choice.striping), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_LaneTypeAttributes, choice.trackedVehicle), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_LaneTypeAttributes, choice.parking), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_LaneTypeAttributes_specs_1 = { + sizeof(struct spatem_ts_LaneTypeAttributes), + offsetof(struct spatem_ts_LaneTypeAttributes, _asn_ctx), + offsetof(struct spatem_ts_LaneTypeAttributes, present), + sizeof(((struct spatem_ts_LaneTypeAttributes *)0)->present), + asn_MAP_spatem_ts_LaneTypeAttributes_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + 8 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_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_spatem_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_spatem_ts_LaneTypeAttributes_1, + 8, /* Elements count */ + &asn_SPC_spatem_ts_LaneTypeAttributes_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneWidth.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LaneWidth.c new file mode 100644 index 000000000..95fb51af7 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LaneWidth.h" + +int +spatem_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_spatem_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_spatem_ts_LaneWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_LaneWidth = { + "LaneWidth", + "LaneWidth", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_LaneWidth_tags_1, + sizeof(asn_DEF_spatem_ts_LaneWidth_tags_1) + /sizeof(asn_DEF_spatem_ts_LaneWidth_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LaneWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LaneWidth_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_LaneWidth_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LateralAcceleration.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LateralAcceleration.c new file mode 100644 index 000000000..8284e651e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LateralAcceleration.h" + +static asn_TYPE_member_t asn_MBR_spatem_ts_LateralAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_LateralAcceleration, lateralAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_LateralAcceleration, lateralAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_LateralAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_LateralAcceleration_specs_1 = { + sizeof(struct spatem_ts_LateralAcceleration), + offsetof(struct spatem_ts_LateralAcceleration, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_LateralAcceleration = { + "LateralAcceleration", + "LateralAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_LateralAcceleration_tags_1, + sizeof(asn_DEF_spatem_ts_LateralAcceleration_tags_1) + /sizeof(asn_DEF_spatem_ts_LateralAcceleration_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LateralAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LateralAcceleration_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_LateralAcceleration_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_LateralAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LateralAccelerationValue.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LateralAccelerationValue.c new file mode 100644 index 000000000..b9db9b73b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LateralAccelerationValue.h" + +int +spatem_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_spatem_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_spatem_ts_LateralAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_LateralAccelerationValue = { + "LateralAccelerationValue", + "LateralAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_LateralAccelerationValue_tags_1, + sizeof(asn_DEF_spatem_ts_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_spatem_ts_LateralAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LateralAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LateralAccelerationValue_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_LateralAccelerationValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Latitude.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Latitude.c new file mode 100644 index 000000000..e028f41a1 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Latitude.h" + +int +spatem_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_spatem_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_spatem_ts_Latitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_Latitude = { + "Latitude", + "Latitude", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_Latitude_tags_1, + sizeof(asn_DEF_spatem_ts_Latitude_tags_1) + /sizeof(asn_DEF_spatem_ts_Latitude_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Latitude_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Latitude_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_Latitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LayerID.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LayerID.c new file mode 100644 index 000000000..2cd8afe30 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LayerID.h" + +int +spatem_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_spatem_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_spatem_ts_LayerID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_LayerID = { + "LayerID", + "LayerID", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_LayerID_tags_1, + sizeof(asn_DEF_spatem_ts_LayerID_tags_1) + /sizeof(asn_DEF_spatem_ts_LayerID_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LayerID_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LayerID_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_LayerID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LayerType.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LayerType.c new file mode 100644 index 000000000..412cc5f77 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_LayerType_specs_1 = { + asn_MAP_spatem_ts_LayerType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_LayerType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_LayerType = { + "LayerType", + "LayerType", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_LayerType_tags_1, + sizeof(asn_DEF_spatem_ts_LayerType_tags_1) + /sizeof(asn_DEF_spatem_ts_LayerType_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LayerType_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LayerType_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_LayerType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LicPlateNumber.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LicPlateNumber.c new file mode 100644 index 000000000..4f0667270 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_ts_LicPlateNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_LicPlateNumber = { + "LicPlateNumber", + "LicPlateNumber", + &asn_OP_OCTET_STRING, + asn_DEF_spatem_ts_LicPlateNumber_tags_1, + sizeof(asn_DEF_spatem_ts_LicPlateNumber_tags_1) + /sizeof(asn_DEF_spatem_ts_LicPlateNumber_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LicPlateNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LicPlateNumber_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_coding/src/spatem_ts_LightBarSirenInUse.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LightBarSirenInUse.c new file mode 100644 index 000000000..fa145216e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LightBarSirenInUse.h" + +int +spatem_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_spatem_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_spatem_ts_LightBarSirenInUse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_LightBarSirenInUse = { + "LightBarSirenInUse", + "LightBarSirenInUse", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_LightBarSirenInUse_tags_1, + sizeof(asn_DEF_spatem_ts_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_spatem_ts_LightBarSirenInUse_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LightBarSirenInUse_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LightBarSirenInUse_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_LightBarSirenInUse_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Longitude.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Longitude.c new file mode 100644 index 000000000..f678b8323 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Longitude.h" + +int +spatem_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_spatem_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_spatem_ts_Longitude_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_Longitude = { + "Longitude", + "Longitude", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_Longitude_tags_1, + sizeof(asn_DEF_spatem_ts_Longitude_tags_1) + /sizeof(asn_DEF_spatem_ts_Longitude_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Longitude_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Longitude_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_Longitude_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LongitudinalAcceleration.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LongitudinalAcceleration.c new file mode 100644 index 000000000..75833cebd --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LongitudinalAcceleration.h" + +static asn_TYPE_member_t asn_MBR_spatem_ts_LongitudinalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_LongitudinalAcceleration, longitudinalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_LongitudinalAcceleration, longitudinalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_LongitudinalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_LongitudinalAcceleration_specs_1 = { + sizeof(struct spatem_ts_LongitudinalAcceleration), + offsetof(struct spatem_ts_LongitudinalAcceleration, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_LongitudinalAcceleration = { + "LongitudinalAcceleration", + "LongitudinalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_LongitudinalAcceleration_tags_1, + sizeof(asn_DEF_spatem_ts_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_spatem_ts_LongitudinalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LongitudinalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LongitudinalAcceleration_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_LongitudinalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_LongitudinalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LongitudinalAccelerationValue.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_LongitudinalAccelerationValue.c new file mode 100644 index 000000000..6dbf53a32 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_LongitudinalAccelerationValue.h" + +int +spatem_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_spatem_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_spatem_ts_LongitudinalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_LongitudinalAccelerationValue = { + "LongitudinalAccelerationValue", + "LongitudinalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_LongitudinalAccelerationValue_tags_1, + sizeof(asn_DEF_spatem_ts_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_spatem_ts_LongitudinalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_LongitudinalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_LongitudinalAccelerationValue_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_LongitudinalAccelerationValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ManeuverAssistList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ManeuverAssistList.c new file mode 100644 index 000000000..6481a4d59 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ManeuverAssistList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_ManeuverAssistList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_ManeuverAssistList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_ManeuverAssistList_specs_1 = { + sizeof(struct spatem_ts_ManeuverAssistList), + offsetof(struct spatem_ts_ManeuverAssistList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ManeuverAssistList = { + "ManeuverAssistList", + "ManeuverAssistList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_ManeuverAssistList_tags_1, + sizeof(asn_DEF_spatem_ts_ManeuverAssistList_tags_1) + /sizeof(asn_DEF_spatem_ts_ManeuverAssistList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ManeuverAssistList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ManeuverAssistList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_ManeuverAssistList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_ManeuverAssistList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ManufacturerIdentifier.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ManufacturerIdentifier.c new file mode 100644 index 000000000..9d270d188 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ManufacturerIdentifier.h" + +int +spatem_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_spatem_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_spatem_ts_ManufacturerIdentifier_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ManufacturerIdentifier = { + "ManufacturerIdentifier", + "ManufacturerIdentifier", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_ManufacturerIdentifier_tags_1, + sizeof(asn_DEF_spatem_ts_ManufacturerIdentifier_tags_1) + /sizeof(asn_DEF_spatem_ts_ManufacturerIdentifier_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ManufacturerIdentifier_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ManufacturerIdentifier_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_ManufacturerIdentifier_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_MapData-addGrpC.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_MapData-addGrpC.c new file mode 100644 index 000000000..289affa79 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_MapData-addGrpC.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_MapData_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct spatem_ts_MapData_addGrpC, signalHeadLocations), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_MapData_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_MapData_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_ts_MapData_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* signalHeadLocations */ +}; +asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_MapData_addGrpC_specs_1 = { + sizeof(struct spatem_ts_MapData_addGrpC), + offsetof(struct spatem_ts_MapData_addGrpC, _asn_ctx), + asn_MAP_spatem_ts_MapData_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_spatem_ts_MapData_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_MapData_addGrpC = { + "MapData-addGrpC", + "MapData-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_MapData_addGrpC_tags_1, + sizeof(asn_DEF_spatem_ts_MapData_addGrpC_tags_1) + /sizeof(asn_DEF_spatem_ts_MapData_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_MapData_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_MapData_addGrpC_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_MapData_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_spatem_ts_MapData_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_MapData.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_MapData.c new file mode 100644 index 000000000..5c63683e9 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_MapData.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_ts_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_regional_specs_10 = { + sizeof(struct spatem_ts_MapData__regional), + offsetof(struct spatem_ts_MapData__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatem_ts_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_regional_tags_10, + sizeof(asn_DEF_spatem_ts_regional_tags_10) + /sizeof(asn_DEF_spatem_ts_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_spatem_ts_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_spatem_ts_regional_tags_10) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_regional_10, + 1, /* Single element */ + &asn_SPC_spatem_ts_regional_specs_10 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_spatem_ts_MapData_1[] = { + { ATF_POINTER, 1, offsetof(struct spatem_ts_MapData, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_MapData, msgIssueRevision), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_MapData, layerType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_MapData, layerID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_MapData, intersections), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_MapData, roadSegments), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_MapData, dataParameters), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_MapData, restrictionList), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_MapData, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_spatem_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_spatem_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_spatem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_spatem_ts_MapData_oms_1[] = { 0, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_MapData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_MapData_specs_1 = { + sizeof(struct spatem_ts_MapData), + offsetof(struct spatem_ts_MapData, _asn_ctx), + asn_MAP_spatem_ts_MapData_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_spatem_ts_MapData_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_MapData = { + "MapData", + "MapData", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_MapData_tags_1, + sizeof(asn_DEF_spatem_ts_MapData_tags_1) + /sizeof(asn_DEF_spatem_ts_MapData_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_MapData_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_MapData_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_MapData_1, + 9, /* Elements count */ + &asn_SPC_spatem_ts_MapData_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_MergeDivergeNodeAngle.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_MergeDivergeNodeAngle.c new file mode 100644 index 000000000..ce665b27d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_MergeDivergeNodeAngle.h" + +int +spatem_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_spatem_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_spatem_ts_MergeDivergeNodeAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_MergeDivergeNodeAngle = { + "MergeDivergeNodeAngle", + "MergeDivergeNodeAngle", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_MergeDivergeNodeAngle_tags_1, + sizeof(asn_DEF_spatem_ts_MergeDivergeNodeAngle_tags_1) + /sizeof(asn_DEF_spatem_ts_MergeDivergeNodeAngle_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_MergeDivergeNodeAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_MergeDivergeNodeAngle_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_MergeDivergeNodeAngle_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_MinuteOfTheYear.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_MinuteOfTheYear.c new file mode 100644 index 000000000..0ecbee295 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_MinuteOfTheYear.h" + +int +spatem_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_spatem_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_spatem_ts_MinuteOfTheYear_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_MinuteOfTheYear = { + "MinuteOfTheYear", + "MinuteOfTheYear", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_MinuteOfTheYear_tags_1, + sizeof(asn_DEF_spatem_ts_MinuteOfTheYear_tags_1) + /sizeof(asn_DEF_spatem_ts_MinuteOfTheYear_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_MinuteOfTheYear_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_MinuteOfTheYear_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_MinuteOfTheYear_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_MovementEvent-addGrpC.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_MovementEvent-addGrpC.c new file mode 100644 index 000000000..4a9314fe7 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_MovementEvent-addGrpC.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_MovementEvent_addGrpC_1[] = { + { ATF_POINTER, 1, offsetof(struct spatem_ts_MovementEvent_addGrpC, stateChangeReason), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_MovementEvent_addGrpC_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_MovementEvent_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_ts_MovementEvent_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* stateChangeReason */ +}; +asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_MovementEvent_addGrpC_specs_1 = { + sizeof(struct spatem_ts_MovementEvent_addGrpC), + offsetof(struct spatem_ts_MovementEvent_addGrpC, _asn_ctx), + asn_MAP_spatem_ts_MovementEvent_addGrpC_tag2el_1, + 1, /* Count of tags in the map */ + asn_MAP_spatem_ts_MovementEvent_addGrpC_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_MovementEvent_addGrpC = { + "MovementEvent-addGrpC", + "MovementEvent-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_MovementEvent_addGrpC_tags_1, + sizeof(asn_DEF_spatem_ts_MovementEvent_addGrpC_tags_1) + /sizeof(asn_DEF_spatem_ts_MovementEvent_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_MovementEvent_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_MovementEvent_addGrpC_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_MovementEvent_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_spatem_ts_MovementEvent_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_MovementEvent.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_MovementEvent.c new file mode 100644 index 000000000..6bad7cdc8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_MovementEvent.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_ts_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_regional_specs_5 = { + sizeof(struct spatem_ts_MovementEvent__regional), + offsetof(struct spatem_ts_MovementEvent__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatem_ts_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_regional_tags_5, + sizeof(asn_DEF_spatem_ts_regional_tags_5) + /sizeof(asn_DEF_spatem_ts_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_spatem_ts_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_spatem_ts_regional_tags_5) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_regional_5, + 1, /* Single element */ + &asn_SPC_spatem_ts_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_MovementEvent_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_MovementEvent, eventState), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_MovementEvent, timing), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_MovementEvent, speeds), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_MovementEvent, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_spatem_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_spatem_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_spatem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_spatem_ts_MovementEvent_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_MovementEvent_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_MovementEvent_specs_1 = { + sizeof(struct spatem_ts_MovementEvent), + offsetof(struct spatem_ts_MovementEvent, _asn_ctx), + asn_MAP_spatem_ts_MovementEvent_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_spatem_ts_MovementEvent_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_MovementEvent = { + "MovementEvent", + "MovementEvent", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_MovementEvent_tags_1, + sizeof(asn_DEF_spatem_ts_MovementEvent_tags_1) + /sizeof(asn_DEF_spatem_ts_MovementEvent_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_MovementEvent_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_MovementEvent_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_MovementEvent_1, + 4, /* Elements count */ + &asn_SPC_spatem_ts_MovementEvent_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_MovementEventList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_MovementEventList.c new file mode 100644 index 000000000..ac53813a4 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_MovementEventList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_MovementEventList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_MovementEventList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_MovementEventList_specs_1 = { + sizeof(struct spatem_ts_MovementEventList), + offsetof(struct spatem_ts_MovementEventList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_MovementEventList = { + "MovementEventList", + "MovementEventList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_MovementEventList_tags_1, + sizeof(asn_DEF_spatem_ts_MovementEventList_tags_1) + /sizeof(asn_DEF_spatem_ts_MovementEventList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_MovementEventList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_MovementEventList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_MovementEventList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_MovementEventList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_MovementList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_MovementList.c new file mode 100644 index 000000000..1eb9afe7b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_MovementList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_MovementList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_MovementList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_MovementList_specs_1 = { + sizeof(struct spatem_ts_MovementList), + offsetof(struct spatem_ts_MovementList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_MovementList = { + "MovementList", + "MovementList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_MovementList_tags_1, + sizeof(asn_DEF_spatem_ts_MovementList_tags_1) + /sizeof(asn_DEF_spatem_ts_MovementList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_MovementList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_MovementList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_MovementList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_MovementList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_MovementPhaseState.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_MovementPhaseState.c new file mode 100644 index 000000000..4fabfb352 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_MovementPhaseState_specs_1 = { + asn_MAP_spatem_ts_MovementPhaseState_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_MovementPhaseState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_MovementPhaseState = { + "MovementPhaseState", + "MovementPhaseState", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_MovementPhaseState_tags_1, + sizeof(asn_DEF_spatem_ts_MovementPhaseState_tags_1) + /sizeof(asn_DEF_spatem_ts_MovementPhaseState_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_MovementPhaseState_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_MovementPhaseState_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_MovementPhaseState_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_MovementState.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_MovementState.c new file mode 100644 index 000000000..6d42b337e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_MovementState.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_ts_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_regional_specs_6 = { + sizeof(struct spatem_ts_MovementState__regional), + offsetof(struct spatem_ts_MovementState__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatem_ts_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_regional_tags_6, + sizeof(asn_DEF_spatem_ts_regional_tags_6) + /sizeof(asn_DEF_spatem_ts_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_spatem_ts_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_spatem_ts_regional_tags_6) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_regional_6, + 1, /* Single element */ + &asn_SPC_spatem_ts_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_MovementState_1[] = { + { ATF_POINTER, 1, offsetof(struct spatem_ts_MovementState, movementName), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_MovementState, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_MovementState, state_time_speed), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_MovementState, maneuverAssistList), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_MovementState, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_spatem_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_spatem_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_spatem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_spatem_ts_MovementState_oms_1[] = { 0, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_MovementState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_MovementState_specs_1 = { + sizeof(struct spatem_ts_MovementState), + offsetof(struct spatem_ts_MovementState, _asn_ctx), + asn_MAP_spatem_ts_MovementState_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_spatem_ts_MovementState_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_MovementState = { + "MovementState", + "MovementState", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_MovementState_tags_1, + sizeof(asn_DEF_spatem_ts_MovementState_tags_1) + /sizeof(asn_DEF_spatem_ts_MovementState_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_MovementState_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_MovementState_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_MovementState_1, + 5, /* Elements count */ + &asn_SPC_spatem_ts_MovementState_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_MsgCount.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_MsgCount.c new file mode 100644 index 000000000..14f96c8ab --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_MsgCount.h" + +int +spatem_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_spatem_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_spatem_ts_MsgCount_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_MsgCount = { + "MsgCount", + "MsgCount", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_MsgCount_tags_1, + sizeof(asn_DEF_spatem_ts_MsgCount_tags_1) + /sizeof(asn_DEF_spatem_ts_MsgCount_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_MsgCount_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_MsgCount_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_MsgCount_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Node-LLmD-64b.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Node-LLmD-64b.c new file mode 100644 index 000000000..80027bf2c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Node-LLmD-64b.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_Node_LLmD_64b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Node_LLmD_64b, lon), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_Node_LLmD_64b, lat), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_Node_LLmD_64b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Node_LLmD_64b_specs_1 = { + sizeof(struct spatem_ts_Node_LLmD_64b), + offsetof(struct spatem_ts_Node_LLmD_64b, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Node_LLmD_64b = { + "Node-LLmD-64b", + "Node-LLmD-64b", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Node_LLmD_64b_tags_1, + sizeof(asn_DEF_spatem_ts_Node_LLmD_64b_tags_1) + /sizeof(asn_DEF_spatem_ts_Node_LLmD_64b_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Node_LLmD_64b_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Node_LLmD_64b_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_Node_LLmD_64b_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Node_LLmD_64b_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Node-XY-20b.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Node-XY-20b.c new file mode 100644 index 000000000..7f93ab7a4 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Node-XY-20b.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_Node_XY_20b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Node_XY_20b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_Node_XY_20b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_Node_XY_20b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Node_XY_20b_specs_1 = { + sizeof(struct spatem_ts_Node_XY_20b), + offsetof(struct spatem_ts_Node_XY_20b, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Node_XY_20b = { + "Node-XY-20b", + "Node-XY-20b", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Node_XY_20b_tags_1, + sizeof(asn_DEF_spatem_ts_Node_XY_20b_tags_1) + /sizeof(asn_DEF_spatem_ts_Node_XY_20b_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Node_XY_20b_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Node_XY_20b_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_Node_XY_20b_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Node_XY_20b_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Node-XY-22b.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Node-XY-22b.c new file mode 100644 index 000000000..318318f50 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Node-XY-22b.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_Node_XY_22b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Node_XY_22b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_Node_XY_22b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_Node_XY_22b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Node_XY_22b_specs_1 = { + sizeof(struct spatem_ts_Node_XY_22b), + offsetof(struct spatem_ts_Node_XY_22b, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Node_XY_22b = { + "Node-XY-22b", + "Node-XY-22b", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Node_XY_22b_tags_1, + sizeof(asn_DEF_spatem_ts_Node_XY_22b_tags_1) + /sizeof(asn_DEF_spatem_ts_Node_XY_22b_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Node_XY_22b_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Node_XY_22b_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_Node_XY_22b_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Node_XY_22b_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Node-XY-24b.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Node-XY-24b.c new file mode 100644 index 000000000..4f62f039a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Node-XY-24b.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_Node_XY_24b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Node_XY_24b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_Node_XY_24b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_Node_XY_24b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Node_XY_24b_specs_1 = { + sizeof(struct spatem_ts_Node_XY_24b), + offsetof(struct spatem_ts_Node_XY_24b, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Node_XY_24b = { + "Node-XY-24b", + "Node-XY-24b", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Node_XY_24b_tags_1, + sizeof(asn_DEF_spatem_ts_Node_XY_24b_tags_1) + /sizeof(asn_DEF_spatem_ts_Node_XY_24b_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Node_XY_24b_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Node_XY_24b_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_Node_XY_24b_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Node_XY_24b_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Node-XY-26b.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Node-XY-26b.c new file mode 100644 index 000000000..ccf91ae0d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Node-XY-26b.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_Node_XY_26b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Node_XY_26b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_Node_XY_26b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_Node_XY_26b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Node_XY_26b_specs_1 = { + sizeof(struct spatem_ts_Node_XY_26b), + offsetof(struct spatem_ts_Node_XY_26b, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Node_XY_26b = { + "Node-XY-26b", + "Node-XY-26b", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Node_XY_26b_tags_1, + sizeof(asn_DEF_spatem_ts_Node_XY_26b_tags_1) + /sizeof(asn_DEF_spatem_ts_Node_XY_26b_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Node_XY_26b_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Node_XY_26b_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_Node_XY_26b_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Node_XY_26b_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Node-XY-28b.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Node-XY-28b.c new file mode 100644 index 000000000..04d3f05f8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Node-XY-28b.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_Node_XY_28b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Node_XY_28b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_Node_XY_28b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_Node_XY_28b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Node_XY_28b_specs_1 = { + sizeof(struct spatem_ts_Node_XY_28b), + offsetof(struct spatem_ts_Node_XY_28b, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Node_XY_28b = { + "Node-XY-28b", + "Node-XY-28b", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Node_XY_28b_tags_1, + sizeof(asn_DEF_spatem_ts_Node_XY_28b_tags_1) + /sizeof(asn_DEF_spatem_ts_Node_XY_28b_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Node_XY_28b_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Node_XY_28b_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_Node_XY_28b_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Node_XY_28b_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Node-XY-32b.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Node-XY-32b.c new file mode 100644 index 000000000..32d030de7 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Node-XY-32b.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_Node_XY_32b_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Node_XY_32b, x), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_Node_XY_32b, y), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_Node_XY_32b_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Node_XY_32b_specs_1 = { + sizeof(struct spatem_ts_Node_XY_32b), + offsetof(struct spatem_ts_Node_XY_32b, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Node_XY_32b = { + "Node-XY-32b", + "Node-XY-32b", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Node_XY_32b_tags_1, + sizeof(asn_DEF_spatem_ts_Node_XY_32b_tags_1) + /sizeof(asn_DEF_spatem_ts_Node_XY_32b_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Node_XY_32b_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Node_XY_32b_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_Node_XY_32b_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Node_XY_32b_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Node.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Node.c new file mode 100644 index 000000000..c70ca40b2 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Node.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_Node_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_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 spatem_ts_Node, lane), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_Node, connectionID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_Node, intersectionID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_Node_oms_1[] = { 1, 2, 3 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Node_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Node_specs_1 = { + sizeof(struct spatem_ts_Node), + offsetof(struct spatem_ts_Node, _asn_ctx), + asn_MAP_spatem_ts_Node_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_spatem_ts_Node_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_Node = { + "Node", + "Node", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Node_tags_1, + sizeof(asn_DEF_spatem_ts_Node_tags_1) + /sizeof(asn_DEF_spatem_ts_Node_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Node_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Node_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_Node_1, + 4, /* Elements count */ + &asn_SPC_spatem_ts_Node_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_NodeAttributeSet-addGrpC.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_NodeAttributeSet-addGrpC.c new file mode 100644 index 000000000..0a4064b0e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_NodeAttributeSet-addGrpC.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_NodeAttributeSet_addGrpC_1[] = { + { ATF_POINTER, 3, offsetof(struct spatem_ts_NodeAttributeSet_addGrpC, ptvRequest), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_NodeAttributeSet_addGrpC, nodeLink), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_NodeAttributeSet_addGrpC, node), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_NodeAttributeSet_addGrpC_oms_1[] = { 0, 1, 2 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_NodeAttributeSet_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_NodeAttributeSet_addGrpC_specs_1 = { + sizeof(struct spatem_ts_NodeAttributeSet_addGrpC), + offsetof(struct spatem_ts_NodeAttributeSet_addGrpC, _asn_ctx), + asn_MAP_spatem_ts_NodeAttributeSet_addGrpC_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_spatem_ts_NodeAttributeSet_addGrpC_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_NodeAttributeSet_addGrpC = { + "NodeAttributeSet-addGrpC", + "NodeAttributeSet-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_NodeAttributeSet_addGrpC_tags_1, + sizeof(asn_DEF_spatem_ts_NodeAttributeSet_addGrpC_tags_1) + /sizeof(asn_DEF_spatem_ts_NodeAttributeSet_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_NodeAttributeSet_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_NodeAttributeSet_addGrpC_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_NodeAttributeSet_addGrpC_1, + 3, /* Elements count */ + &asn_SPC_spatem_ts_NodeAttributeSet_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_NodeAttributeSetXY.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_NodeAttributeSetXY.c new file mode 100644 index 000000000..e81a37642 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_NodeAttributeSetXY.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_ts_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_regional_specs_8 = { + sizeof(struct spatem_ts_NodeAttributeSetXY__regional), + offsetof(struct spatem_ts_NodeAttributeSetXY__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatem_ts_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_regional_tags_8, + sizeof(asn_DEF_spatem_ts_regional_tags_8) + /sizeof(asn_DEF_spatem_ts_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_spatem_ts_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_spatem_ts_regional_tags_8) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_regional_8, + 1, /* Single element */ + &asn_SPC_spatem_ts_regional_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_NodeAttributeSetXY_1[] = { + { ATF_POINTER, 7, offsetof(struct spatem_ts_NodeAttributeSetXY, localNode), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_NodeAttributeSetXY, disabled), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_NodeAttributeSetXY, enabled), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_NodeAttributeSetXY, data), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_NodeAttributeSetXY, dWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_NodeAttributeSetXY, dElevation), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_NodeAttributeSetXY, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_spatem_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_spatem_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_spatem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_spatem_ts_NodeAttributeSetXY_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_NodeAttributeSetXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_NodeAttributeSetXY_specs_1 = { + sizeof(struct spatem_ts_NodeAttributeSetXY), + offsetof(struct spatem_ts_NodeAttributeSetXY, _asn_ctx), + asn_MAP_spatem_ts_NodeAttributeSetXY_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_spatem_ts_NodeAttributeSetXY_oms_1, /* Optional members */ + 7, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_NodeAttributeSetXY = { + "NodeAttributeSetXY", + "NodeAttributeSetXY", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_NodeAttributeSetXY_tags_1, + sizeof(asn_DEF_spatem_ts_NodeAttributeSetXY_tags_1) + /sizeof(asn_DEF_spatem_ts_NodeAttributeSetXY_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_NodeAttributeSetXY_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_NodeAttributeSetXY_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_NodeAttributeSetXY_1, + 7, /* Elements count */ + &asn_SPC_spatem_ts_NodeAttributeSetXY_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_NodeAttributeXY.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_NodeAttributeXY.c new file mode 100644 index 000000000..01af50b3f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_NodeAttributeXY_specs_1 = { + asn_MAP_spatem_ts_NodeAttributeXY_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_NodeAttributeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_NodeAttributeXY = { + "NodeAttributeXY", + "NodeAttributeXY", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_NodeAttributeXY_tags_1, + sizeof(asn_DEF_spatem_ts_NodeAttributeXY_tags_1) + /sizeof(asn_DEF_spatem_ts_NodeAttributeXY_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_NodeAttributeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_NodeAttributeXY_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_NodeAttributeXY_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_NodeAttributeXYList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_NodeAttributeXYList.c new file mode 100644 index 000000000..bf51b155d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_NodeAttributeXYList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_NodeAttributeXYList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_NodeAttributeXYList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_NodeAttributeXYList_specs_1 = { + sizeof(struct spatem_ts_NodeAttributeXYList), + offsetof(struct spatem_ts_NodeAttributeXYList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_NodeAttributeXYList = { + "NodeAttributeXYList", + "NodeAttributeXYList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_NodeAttributeXYList_tags_1, + sizeof(asn_DEF_spatem_ts_NodeAttributeXYList_tags_1) + /sizeof(asn_DEF_spatem_ts_NodeAttributeXYList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_NodeAttributeXYList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_NodeAttributeXYList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_NodeAttributeXYList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_NodeAttributeXYList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_NodeLink.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_NodeLink.c new file mode 100644 index 000000000..4f4836d90 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_NodeLink.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_NodeLink_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_NodeLink_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_NodeLink_specs_1 = { + sizeof(struct spatem_ts_NodeLink), + offsetof(struct spatem_ts_NodeLink, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_NodeLink = { + "NodeLink", + "NodeLink", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_NodeLink_tags_1, + sizeof(asn_DEF_spatem_ts_NodeLink_tags_1) + /sizeof(asn_DEF_spatem_ts_NodeLink_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_NodeLink_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_NodeLink_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_NodeLink_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_NodeLink_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_NodeListXY.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_NodeListXY.c new file mode 100644 index 000000000..2c88cefd0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_NodeListXY.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_NodeListXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_NodeListXY, choice.nodes), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_NodeListXY, choice.computed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_NodeListXY_specs_1 = { + sizeof(struct spatem_ts_NodeListXY), + offsetof(struct spatem_ts_NodeListXY, _asn_ctx), + offsetof(struct spatem_ts_NodeListXY, present), + sizeof(((struct spatem_ts_NodeListXY *)0)->present), + asn_MAP_spatem_ts_NodeListXY_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_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_spatem_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_spatem_ts_NodeListXY_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_NodeListXY_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_NodeOffsetPointXY.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_NodeOffsetPointXY.c new file mode 100644 index 000000000..66ee450a5 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_NodeOffsetPointXY.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_NodeOffsetPointXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_NodeOffsetPointXY, choice.node_XY1), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_NodeOffsetPointXY, choice.node_XY2), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_NodeOffsetPointXY, choice.node_XY3), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_NodeOffsetPointXY, choice.node_XY4), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_NodeOffsetPointXY, choice.node_XY5), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_NodeOffsetPointXY, choice.node_XY6), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_NodeOffsetPointXY, choice.node_LatLon), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_NodeOffsetPointXY, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_NodeOffsetPointXY_specs_1 = { + sizeof(struct spatem_ts_NodeOffsetPointXY), + offsetof(struct spatem_ts_NodeOffsetPointXY, _asn_ctx), + offsetof(struct spatem_ts_NodeOffsetPointXY, present), + sizeof(((struct spatem_ts_NodeOffsetPointXY *)0)->present), + asn_MAP_spatem_ts_NodeOffsetPointXY_tag2el_1, + 8, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_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_spatem_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_spatem_ts_NodeOffsetPointXY_1, + 8, /* Elements count */ + &asn_SPC_spatem_ts_NodeOffsetPointXY_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_NodeSetXY.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_NodeSetXY.c new file mode 100644 index 000000000..f27346e02 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_NodeSetXY.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_NodeSetXY_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_NodeSetXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_NodeSetXY_specs_1 = { + sizeof(struct spatem_ts_NodeSetXY), + offsetof(struct spatem_ts_NodeSetXY, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_NodeSetXY = { + "NodeSetXY", + "NodeSetXY", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_NodeSetXY_tags_1, + sizeof(asn_DEF_spatem_ts_NodeSetXY_tags_1) + /sizeof(asn_DEF_spatem_ts_NodeSetXY_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_NodeSetXY_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_NodeSetXY_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_NodeSetXY_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_NodeSetXY_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_NodeXY.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_NodeXY.c new file mode 100644 index 000000000..2320874a8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_NodeXY.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_NodeXY_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_NodeXY, delta), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_NodeXY, attributes), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_NodeXY_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_NodeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_NodeXY_specs_1 = { + sizeof(struct spatem_ts_NodeXY), + offsetof(struct spatem_ts_NodeXY, _asn_ctx), + asn_MAP_spatem_ts_NodeXY_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_spatem_ts_NodeXY_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_NodeXY = { + "NodeXY", + "NodeXY", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_NodeXY_tags_1, + sizeof(asn_DEF_spatem_ts_NodeXY_tags_1) + /sizeof(asn_DEF_spatem_ts_NodeXY_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_NodeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_NodeXY_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_NodeXY_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_NodeXY_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_NumberOfOccupants.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_NumberOfOccupants.c new file mode 100644 index 000000000..4be11fb89 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_NumberOfOccupants.h" + +int +spatem_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_spatem_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_spatem_ts_NumberOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_NumberOfOccupants = { + "NumberOfOccupants", + "NumberOfOccupants", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_NumberOfOccupants_tags_1, + sizeof(asn_DEF_spatem_ts_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_spatem_ts_NumberOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_NumberOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_NumberOfOccupants_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_NumberOfOccupants_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Offset-B09.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Offset-B09.c new file mode 100644 index 000000000..e5b14d043 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Offset-B09.h" + +int +spatem_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_spatem_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_spatem_ts_Offset_B09_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_Offset_B09 = { + "Offset-B09", + "Offset-B09", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_Offset_B09_tags_1, + sizeof(asn_DEF_spatem_ts_Offset_B09_tags_1) + /sizeof(asn_DEF_spatem_ts_Offset_B09_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Offset_B09_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Offset_B09_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_Offset_B09_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Offset-B10.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Offset-B10.c new file mode 100644 index 000000000..4d8f235cb --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Offset-B10.h" + +int +spatem_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_spatem_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_spatem_ts_Offset_B10_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_Offset_B10 = { + "Offset-B10", + "Offset-B10", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_Offset_B10_tags_1, + sizeof(asn_DEF_spatem_ts_Offset_B10_tags_1) + /sizeof(asn_DEF_spatem_ts_Offset_B10_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Offset_B10_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Offset_B10_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_Offset_B10_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Offset-B11.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Offset-B11.c new file mode 100644 index 000000000..fae535024 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Offset-B11.h" + +int +spatem_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_spatem_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_spatem_ts_Offset_B11_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_Offset_B11 = { + "Offset-B11", + "Offset-B11", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_Offset_B11_tags_1, + sizeof(asn_DEF_spatem_ts_Offset_B11_tags_1) + /sizeof(asn_DEF_spatem_ts_Offset_B11_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Offset_B11_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Offset_B11_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_Offset_B11_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Offset-B12.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Offset-B12.c new file mode 100644 index 000000000..430a83504 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Offset-B12.h" + +int +spatem_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_spatem_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_spatem_ts_Offset_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_Offset_B12 = { + "Offset-B12", + "Offset-B12", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_Offset_B12_tags_1, + sizeof(asn_DEF_spatem_ts_Offset_B12_tags_1) + /sizeof(asn_DEF_spatem_ts_Offset_B12_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Offset_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Offset_B12_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_Offset_B12_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Offset-B13.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Offset-B13.c new file mode 100644 index 000000000..c71ad6190 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Offset-B13.h" + +int +spatem_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_spatem_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_spatem_ts_Offset_B13_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_Offset_B13 = { + "Offset-B13", + "Offset-B13", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_Offset_B13_tags_1, + sizeof(asn_DEF_spatem_ts_Offset_B13_tags_1) + /sizeof(asn_DEF_spatem_ts_Offset_B13_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Offset_B13_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Offset_B13_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_Offset_B13_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Offset-B14.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Offset-B14.c new file mode 100644 index 000000000..2e991b88d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Offset-B14.h" + +int +spatem_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_spatem_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_spatem_ts_Offset_B14_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_Offset_B14 = { + "Offset-B14", + "Offset-B14", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_Offset_B14_tags_1, + sizeof(asn_DEF_spatem_ts_Offset_B14_tags_1) + /sizeof(asn_DEF_spatem_ts_Offset_B14_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Offset_B14_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Offset_B14_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_Offset_B14_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Offset-B16.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Offset-B16.c new file mode 100644 index 000000000..7efbca4e8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Offset-B16.h" + +int +spatem_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_spatem_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_spatem_ts_Offset_B16_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_Offset_B16 = { + "Offset-B16", + "Offset-B16", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_Offset_B16_tags_1, + sizeof(asn_DEF_spatem_ts_Offset_B16_tags_1) + /sizeof(asn_DEF_spatem_ts_Offset_B16_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Offset_B16_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Offset_B16_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_Offset_B16_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_OpeningDaysHours.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_OpeningDaysHours.c new file mode 100644 index 000000000..ac60a604a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_OpeningDaysHours.h" + +/* + * This type is implemented using UTF8String, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_spatem_ts_OpeningDaysHours_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (12 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_OpeningDaysHours = { + "OpeningDaysHours", + "OpeningDaysHours", + &asn_OP_UTF8String, + asn_DEF_spatem_ts_OpeningDaysHours_tags_1, + sizeof(asn_DEF_spatem_ts_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_spatem_ts_OpeningDaysHours_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_OpeningDaysHours_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_OpeningDaysHours_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_coding/src/spatem_ts_OverlayLaneList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_OverlayLaneList.c new file mode 100644 index 000000000..4af53a83b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_OverlayLaneList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_OverlayLaneList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_OverlayLaneList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_OverlayLaneList_specs_1 = { + sizeof(struct spatem_ts_OverlayLaneList), + offsetof(struct spatem_ts_OverlayLaneList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_OverlayLaneList = { + "OverlayLaneList", + "OverlayLaneList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_OverlayLaneList_tags_1, + sizeof(asn_DEF_spatem_ts_OverlayLaneList_tags_1) + /sizeof(asn_DEF_spatem_ts_OverlayLaneList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_OverlayLaneList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_OverlayLaneList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_OverlayLaneList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_OverlayLaneList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PathDeltaTime.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PathDeltaTime.c new file mode 100644 index 000000000..0d068c568 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_PathDeltaTime.h" + +int +spatem_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_spatem_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_spatem_ts_PathDeltaTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_PathDeltaTime = { + "PathDeltaTime", + "PathDeltaTime", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_PathDeltaTime_tags_1, + sizeof(asn_DEF_spatem_ts_PathDeltaTime_tags_1) + /sizeof(asn_DEF_spatem_ts_PathDeltaTime_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PathDeltaTime_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PathDeltaTime_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_PathDeltaTime_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PathHistory.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PathHistory.c new file mode 100644 index 000000000..a1ef2cd99 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_PathHistory.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_PathHistory_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_PathHistory_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_PathHistory_specs_1 = { + sizeof(struct spatem_ts_PathHistory), + offsetof(struct spatem_ts_PathHistory, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_PathHistory = { + "PathHistory", + "PathHistory", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_PathHistory_tags_1, + sizeof(asn_DEF_spatem_ts_PathHistory_tags_1) + /sizeof(asn_DEF_spatem_ts_PathHistory_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PathHistory_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PathHistory_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_PathHistory_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_PathHistory_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PathPoint.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PathPoint.c new file mode 100644 index 000000000..246df7819 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_PathPoint.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_PathPoint_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_PathPoint, pathPosition), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_PathPoint, pathDeltaTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_PathPoint_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_PathPoint_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_PathPoint_specs_1 = { + sizeof(struct spatem_ts_PathPoint), + offsetof(struct spatem_ts_PathPoint, _asn_ctx), + asn_MAP_spatem_ts_PathPoint_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_spatem_ts_PathPoint_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_PathPoint = { + "PathPoint", + "PathPoint", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_PathPoint_tags_1, + sizeof(asn_DEF_spatem_ts_PathPoint_tags_1) + /sizeof(asn_DEF_spatem_ts_PathPoint_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PathPoint_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PathPoint_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_PathPoint_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_PathPoint_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PedestrianBicycleDetect.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PedestrianBicycleDetect.c new file mode 100644 index 000000000..ce1610bfb --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_PedestrianBicycleDetect.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_spatem_ts_PedestrianBicycleDetect_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_PedestrianBicycleDetect = { + "PedestrianBicycleDetect", + "PedestrianBicycleDetect", + &asn_OP_BOOLEAN, + asn_DEF_spatem_ts_PedestrianBicycleDetect_tags_1, + sizeof(asn_DEF_spatem_ts_PedestrianBicycleDetect_tags_1) + /sizeof(asn_DEF_spatem_ts_PedestrianBicycleDetect_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PedestrianBicycleDetect_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PedestrianBicycleDetect_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_coding/src/spatem_ts_PerformanceClass.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PerformanceClass.c new file mode 100644 index 000000000..51dbcdaf5 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_PerformanceClass.h" + +int +spatem_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_spatem_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_spatem_ts_PerformanceClass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_PerformanceClass = { + "PerformanceClass", + "PerformanceClass", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_PerformanceClass_tags_1, + sizeof(asn_DEF_spatem_ts_PerformanceClass_tags_1) + /sizeof(asn_DEF_spatem_ts_PerformanceClass_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PerformanceClass_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PerformanceClass_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_PerformanceClass_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PhoneNumber.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PhoneNumber.c new file mode 100644 index 000000000..8a41ad56a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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 +spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_PhoneNumber_1_v2c, /* Value to PER code map */ + asn_PER_MAP_spatem_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_spatem_ts_PhoneNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (18 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_PhoneNumber = { + "PhoneNumber", + "PhoneNumber", + &asn_OP_NumericString, + asn_DEF_spatem_ts_PhoneNumber_tags_1, + sizeof(asn_DEF_spatem_ts_PhoneNumber_tags_1) + /sizeof(asn_DEF_spatem_ts_PhoneNumber_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PhoneNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PhoneNumber_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_PhoneNumber_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PosCentMass.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PosCentMass.c new file mode 100644 index 000000000..c46392da4 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_PosCentMass.h" + +int +spatem_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_spatem_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_spatem_ts_PosCentMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_PosCentMass = { + "PosCentMass", + "PosCentMass", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_PosCentMass_tags_1, + sizeof(asn_DEF_spatem_ts_PosCentMass_tags_1) + /sizeof(asn_DEF_spatem_ts_PosCentMass_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PosCentMass_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PosCentMass_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_PosCentMass_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PosConfidenceEllipse.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PosConfidenceEllipse.c new file mode 100644 index 000000000..c0e6558bf --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_PosConfidenceEllipse.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_PosConfidenceEllipse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_PosConfidenceEllipse, semiMajorConfidence), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_PosConfidenceEllipse, semiMinorConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_PosConfidenceEllipse, semiMajorOrientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_PosConfidenceEllipse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_PosConfidenceEllipse_specs_1 = { + sizeof(struct spatem_ts_PosConfidenceEllipse), + offsetof(struct spatem_ts_PosConfidenceEllipse, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_PosConfidenceEllipse = { + "PosConfidenceEllipse", + "PosConfidenceEllipse", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_PosConfidenceEllipse_tags_1, + sizeof(asn_DEF_spatem_ts_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_spatem_ts_PosConfidenceEllipse_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PosConfidenceEllipse_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PosConfidenceEllipse_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_PosConfidenceEllipse_1, + 3, /* Elements count */ + &asn_SPC_spatem_ts_PosConfidenceEllipse_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PosFrontAx.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PosFrontAx.c new file mode 100644 index 000000000..aaa924a4c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_PosFrontAx.h" + +int +spatem_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_spatem_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_spatem_ts_PosFrontAx_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_PosFrontAx = { + "PosFrontAx", + "PosFrontAx", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_PosFrontAx_tags_1, + sizeof(asn_DEF_spatem_ts_PosFrontAx_tags_1) + /sizeof(asn_DEF_spatem_ts_PosFrontAx_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PosFrontAx_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PosFrontAx_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_PosFrontAx_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PosLonCarr.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PosLonCarr.c new file mode 100644 index 000000000..aaa9fea2a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_PosLonCarr.h" + +int +spatem_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_spatem_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_spatem_ts_PosLonCarr_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_PosLonCarr = { + "PosLonCarr", + "PosLonCarr", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_PosLonCarr_tags_1, + sizeof(asn_DEF_spatem_ts_PosLonCarr_tags_1) + /sizeof(asn_DEF_spatem_ts_PosLonCarr_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PosLonCarr_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PosLonCarr_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_PosLonCarr_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PosPillar.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PosPillar.c new file mode 100644 index 000000000..b59325712 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_PosPillar.h" + +int +spatem_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_spatem_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_spatem_ts_PosPillar_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_PosPillar = { + "PosPillar", + "PosPillar", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_PosPillar_tags_1, + sizeof(asn_DEF_spatem_ts_PosPillar_tags_1) + /sizeof(asn_DEF_spatem_ts_PosPillar_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PosPillar_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PosPillar_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_PosPillar_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Position3D-addGrpC.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Position3D-addGrpC.c new file mode 100644 index 000000000..7fab653ba --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Position3D-addGrpC.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_Position3D_addGrpC_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Position3D_addGrpC, altitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_Position3D_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_ts_Position3D_addGrpC_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* altitude */ +}; +asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Position3D_addGrpC_specs_1 = { + sizeof(struct spatem_ts_Position3D_addGrpC), + offsetof(struct spatem_ts_Position3D_addGrpC, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Position3D_addGrpC = { + "Position3D-addGrpC", + "Position3D-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Position3D_addGrpC_tags_1, + sizeof(asn_DEF_spatem_ts_Position3D_addGrpC_tags_1) + /sizeof(asn_DEF_spatem_ts_Position3D_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Position3D_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Position3D_addGrpC_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_Position3D_addGrpC_1, + 1, /* Elements count */ + &asn_SPC_spatem_ts_Position3D_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Position3D.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Position3D.c new file mode 100644 index 000000000..49d6f9bb9 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Position3D.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_ts_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_regional_specs_5 = { + sizeof(struct spatem_ts_Position3D__regional), + offsetof(struct spatem_ts_Position3D__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatem_ts_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_regional_tags_5, + sizeof(asn_DEF_spatem_ts_regional_tags_5) + /sizeof(asn_DEF_spatem_ts_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_spatem_ts_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_spatem_ts_regional_tags_5) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_regional_5, + 1, /* Single element */ + &asn_SPC_spatem_ts_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Position3D_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Position3D, lat), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_Position3D, Long), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_Position3D, elevation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_Position3D, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_spatem_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_spatem_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_spatem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_spatem_ts_Position3D_oms_1[] = { 2, 3 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Position3D_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Position3D_specs_1 = { + sizeof(struct spatem_ts_Position3D), + offsetof(struct spatem_ts_Position3D, _asn_ctx), + asn_MAP_spatem_ts_Position3D_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_spatem_ts_Position3D_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_Position3D = { + "Position3D", + "Position3D", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Position3D_tags_1, + sizeof(asn_DEF_spatem_ts_Position3D_tags_1) + /sizeof(asn_DEF_spatem_ts_Position3D_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Position3D_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Position3D_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_Position3D_1, + 4, /* Elements count */ + &asn_SPC_spatem_ts_Position3D_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PositionConfidence.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PositionConfidence.c new file mode 100644 index 000000000..ea5955eb0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_PositionConfidence_specs_1 = { + asn_MAP_spatem_ts_PositionConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_PositionConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_PositionConfidence = { + "PositionConfidence", + "PositionConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_PositionConfidence_tags_1, + sizeof(asn_DEF_spatem_ts_PositionConfidence_tags_1) + /sizeof(asn_DEF_spatem_ts_PositionConfidence_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PositionConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PositionConfidence_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_PositionConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PositionConfidenceSet.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PositionConfidenceSet.c new file mode 100644 index 000000000..b3adfa125 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_PositionConfidenceSet.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_PositionConfidenceSet_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_PositionConfidenceSet, pos), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_PositionConfidenceSet, elevation), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_PositionConfidenceSet_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_PositionConfidenceSet_specs_1 = { + sizeof(struct spatem_ts_PositionConfidenceSet), + offsetof(struct spatem_ts_PositionConfidenceSet, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_PositionConfidenceSet = { + "PositionConfidenceSet", + "PositionConfidenceSet", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_PositionConfidenceSet_tags_1, + sizeof(asn_DEF_spatem_ts_PositionConfidenceSet_tags_1) + /sizeof(asn_DEF_spatem_ts_PositionConfidenceSet_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PositionConfidenceSet_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PositionConfidenceSet_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_PositionConfidenceSet_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_PositionConfidenceSet_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PositionOfOccupants.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PositionOfOccupants.c new file mode 100644 index 000000000..4c650467d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_PositionOfOccupants.h" + +int +spatem_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_spatem_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_spatem_ts_PositionOfOccupants_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_PositionOfOccupants = { + "PositionOfOccupants", + "PositionOfOccupants", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_PositionOfOccupants_tags_1, + sizeof(asn_DEF_spatem_ts_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_spatem_ts_PositionOfOccupants_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PositionOfOccupants_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PositionOfOccupants_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_PositionOfOccupants_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PositionOfPillars.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PositionOfPillars.c new file mode 100644 index 000000000..a7d8b64c0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_PositionOfPillars.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_PositionOfPillars_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_PositionOfPillars_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_PositionOfPillars_specs_1 = { + sizeof(struct spatem_ts_PositionOfPillars), + offsetof(struct spatem_ts_PositionOfPillars, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_PositionOfPillars = { + "PositionOfPillars", + "PositionOfPillars", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_PositionOfPillars_tags_1, + sizeof(asn_DEF_spatem_ts_PositionOfPillars_tags_1) + /sizeof(asn_DEF_spatem_ts_PositionOfPillars_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PositionOfPillars_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PositionOfPillars_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_PositionOfPillars_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_PositionOfPillars_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PositionalAccuracy.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PositionalAccuracy.c new file mode 100644 index 000000000..577cdc91d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_PositionalAccuracy.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_PositionalAccuracy_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_PositionalAccuracy, semiMajor), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_PositionalAccuracy, semiMinor), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_PositionalAccuracy, orientation), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_PositionalAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_PositionalAccuracy_specs_1 = { + sizeof(struct spatem_ts_PositionalAccuracy), + offsetof(struct spatem_ts_PositionalAccuracy, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_PositionalAccuracy = { + "PositionalAccuracy", + "PositionalAccuracy", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_PositionalAccuracy_tags_1, + sizeof(asn_DEF_spatem_ts_PositionalAccuracy_tags_1) + /sizeof(asn_DEF_spatem_ts_PositionalAccuracy_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PositionalAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PositionalAccuracy_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_PositionalAccuracy_1, + 3, /* Elements count */ + &asn_SPC_spatem_ts_PositionalAccuracy_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PositioningSolutionType.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PositioningSolutionType.c new file mode 100644 index 000000000..bd8fe2249 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_PositioningSolutionType_specs_1 = { + asn_MAP_spatem_ts_PositioningSolutionType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_PositioningSolutionType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_PositioningSolutionType = { + "PositioningSolutionType", + "PositioningSolutionType", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_PositioningSolutionType_tags_1, + sizeof(asn_DEF_spatem_ts_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_spatem_ts_PositioningSolutionType_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PositioningSolutionType_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PositioningSolutionType_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_PositioningSolutionType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PostCrashSubCauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PostCrashSubCauseCode.c new file mode 100644 index 000000000..6e309dcdb --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_PostCrashSubCauseCode.h" + +int +spatem_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_spatem_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_spatem_ts_PostCrashSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_PostCrashSubCauseCode = { + "PostCrashSubCauseCode", + "PostCrashSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_PostCrashSubCauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_PostCrashSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PostCrashSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PostCrashSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_PostCrashSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PreemptPriorityList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PreemptPriorityList.c new file mode 100644 index 000000000..38db8ab0e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_PreemptPriorityList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_PreemptPriorityList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_PreemptPriorityList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_PreemptPriorityList_specs_1 = { + sizeof(struct spatem_ts_PreemptPriorityList), + offsetof(struct spatem_ts_PreemptPriorityList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_PreemptPriorityList = { + "PreemptPriorityList", + "PreemptPriorityList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_PreemptPriorityList_tags_1, + sizeof(asn_DEF_spatem_ts_PreemptPriorityList_tags_1) + /sizeof(asn_DEF_spatem_ts_PreemptPriorityList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PreemptPriorityList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PreemptPriorityList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_PreemptPriorityList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_PreemptPriorityList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PrioritizationResponse.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PrioritizationResponse.c new file mode 100644 index 000000000..57ec2d4b9 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_PrioritizationResponse.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_PrioritizationResponse_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_PrioritizationResponse, stationID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_PrioritizationResponse, priorState), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_PrioritizationResponse, signalGroup), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_PrioritizationResponse_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_PrioritizationResponse_specs_1 = { + sizeof(struct spatem_ts_PrioritizationResponse), + offsetof(struct spatem_ts_PrioritizationResponse, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_PrioritizationResponse = { + "PrioritizationResponse", + "PrioritizationResponse", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_PrioritizationResponse_tags_1, + sizeof(asn_DEF_spatem_ts_PrioritizationResponse_tags_1) + /sizeof(asn_DEF_spatem_ts_PrioritizationResponse_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PrioritizationResponse_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PrioritizationResponse_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_PrioritizationResponse_1, + 3, /* Elements count */ + &asn_SPC_spatem_ts_PrioritizationResponse_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PrioritizationResponseList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PrioritizationResponseList.c new file mode 100644 index 000000000..5e42725bb --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_PrioritizationResponseList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_PrioritizationResponseList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_PrioritizationResponseList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_PrioritizationResponseList_specs_1 = { + sizeof(struct spatem_ts_PrioritizationResponseList), + offsetof(struct spatem_ts_PrioritizationResponseList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_PrioritizationResponseList = { + "PrioritizationResponseList", + "PrioritizationResponseList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_PrioritizationResponseList_tags_1, + sizeof(asn_DEF_spatem_ts_PrioritizationResponseList_tags_1) + /sizeof(asn_DEF_spatem_ts_PrioritizationResponseList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PrioritizationResponseList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PrioritizationResponseList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_PrioritizationResponseList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_PrioritizationResponseList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PrioritizationResponseStatus.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PrioritizationResponseStatus.c new file mode 100644 index 000000000..a2f37de82 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_PrioritizationResponseStatus_specs_1 = { + asn_MAP_spatem_ts_PrioritizationResponseStatus_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_PrioritizationResponseStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_PrioritizationResponseStatus = { + "PrioritizationResponseStatus", + "PrioritizationResponseStatus", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_PrioritizationResponseStatus_tags_1, + sizeof(asn_DEF_spatem_ts_PrioritizationResponseStatus_tags_1) + /sizeof(asn_DEF_spatem_ts_PrioritizationResponseStatus_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PrioritizationResponseStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PrioritizationResponseStatus_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_PrioritizationResponseStatus_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PriorityRequestType.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PriorityRequestType.c new file mode 100644 index 000000000..f5ec1dbcc --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_PriorityRequestType_specs_1 = { + asn_MAP_spatem_ts_PriorityRequestType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_PriorityRequestType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_PriorityRequestType = { + "PriorityRequestType", + "PriorityRequestType", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_PriorityRequestType_tags_1, + sizeof(asn_DEF_spatem_ts_PriorityRequestType_tags_1) + /sizeof(asn_DEF_spatem_ts_PriorityRequestType_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PriorityRequestType_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PriorityRequestType_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_PriorityRequestType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ProtectedCommunicationZone.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ProtectedCommunicationZone.c new file mode 100644 index 000000000..5e0e588bf --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ProtectedCommunicationZone.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_ProtectedCommunicationZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_ProtectedCommunicationZone, protectedZoneType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ProtectedCommunicationZone, expiryTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ProtectedCommunicationZone, protectedZoneLatitude), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ProtectedCommunicationZone, protectedZoneLongitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ProtectedCommunicationZone, protectedZoneRadius), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ProtectedCommunicationZone, protectedZoneID), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_ProtectedCommunicationZone_oms_1[] = { 1, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_ProtectedCommunicationZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_ProtectedCommunicationZone_specs_1 = { + sizeof(struct spatem_ts_ProtectedCommunicationZone), + offsetof(struct spatem_ts_ProtectedCommunicationZone, _asn_ctx), + asn_MAP_spatem_ts_ProtectedCommunicationZone_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_spatem_ts_ProtectedCommunicationZone_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ProtectedCommunicationZone = { + "ProtectedCommunicationZone", + "ProtectedCommunicationZone", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_ProtectedCommunicationZone_tags_1, + sizeof(asn_DEF_spatem_ts_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_spatem_ts_ProtectedCommunicationZone_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ProtectedCommunicationZone_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ProtectedCommunicationZone_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_ProtectedCommunicationZone_1, + 6, /* Elements count */ + &asn_SPC_spatem_ts_ProtectedCommunicationZone_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ProtectedCommunicationZonesRSU.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ProtectedCommunicationZonesRSU.c new file mode 100644 index 000000000..d7e567f83 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ProtectedCommunicationZonesRSU.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_ProtectedCommunicationZonesRSU_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_ProtectedCommunicationZonesRSU_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_ProtectedCommunicationZonesRSU_specs_1 = { + sizeof(struct spatem_ts_ProtectedCommunicationZonesRSU), + offsetof(struct spatem_ts_ProtectedCommunicationZonesRSU, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ProtectedCommunicationZonesRSU = { + "ProtectedCommunicationZonesRSU", + "ProtectedCommunicationZonesRSU", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_ProtectedCommunicationZonesRSU_tags_1, + sizeof(asn_DEF_spatem_ts_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_spatem_ts_ProtectedCommunicationZonesRSU_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ProtectedCommunicationZonesRSU_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ProtectedCommunicationZonesRSU_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_ProtectedCommunicationZonesRSU_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_ProtectedCommunicationZonesRSU_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ProtectedZoneID.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ProtectedZoneID.c new file mode 100644 index 000000000..1900979c0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ProtectedZoneID.h" + +int +spatem_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_spatem_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_spatem_ts_ProtectedZoneID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ProtectedZoneID = { + "ProtectedZoneID", + "ProtectedZoneID", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_ProtectedZoneID_tags_1, + sizeof(asn_DEF_spatem_ts_ProtectedZoneID_tags_1) + /sizeof(asn_DEF_spatem_ts_ProtectedZoneID_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ProtectedZoneID_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ProtectedZoneID_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_ProtectedZoneID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ProtectedZoneRadius.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ProtectedZoneRadius.c new file mode 100644 index 000000000..77b702528 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ProtectedZoneRadius.h" + +int +spatem_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_spatem_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_spatem_ts_ProtectedZoneRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ProtectedZoneRadius = { + "ProtectedZoneRadius", + "ProtectedZoneRadius", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_ProtectedZoneRadius_tags_1, + sizeof(asn_DEF_spatem_ts_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_spatem_ts_ProtectedZoneRadius_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ProtectedZoneRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ProtectedZoneRadius_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_ProtectedZoneRadius_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ProtectedZoneType.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ProtectedZoneType.c new file mode 100644 index 000000000..5586eeae3 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_ts_ProtectedZoneType_value2enum_1[] = { + { 0, 23, "permanentCenDsrcTolling" }, + { 1, 23, "temporaryCenDsrcTolling" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_spatem_ts_ProtectedZoneType_enum2value_1[] = { + 0, /* permanentCenDsrcTolling(0) */ + 1 /* temporaryCenDsrcTolling(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_spatem_ts_ProtectedZoneType_specs_1 = { + asn_MAP_spatem_ts_ProtectedZoneType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_ProtectedZoneType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ProtectedZoneType = { + "ProtectedZoneType", + "ProtectedZoneType", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_ProtectedZoneType_tags_1, + sizeof(asn_DEF_spatem_ts_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_spatem_ts_ProtectedZoneType_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ProtectedZoneType_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ProtectedZoneType_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_ProtectedZoneType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PtActivation.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PtActivation.c new file mode 100644 index 000000000..05ccec581 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_PtActivation.h" + +static asn_TYPE_member_t asn_MBR_spatem_ts_PtActivation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_PtActivation, ptActivationType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_PtActivation, ptActivationData), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_PtActivation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_PtActivation_specs_1 = { + sizeof(struct spatem_ts_PtActivation), + offsetof(struct spatem_ts_PtActivation, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_PtActivation = { + "PtActivation", + "PtActivation", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_PtActivation_tags_1, + sizeof(asn_DEF_spatem_ts_PtActivation_tags_1) + /sizeof(asn_DEF_spatem_ts_PtActivation_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PtActivation_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PtActivation_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_PtActivation_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_PtActivation_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PtActivationData.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PtActivationData.c new file mode 100644 index 000000000..b25693c19 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_PtActivationData.h" + +int +spatem_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_spatem_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_spatem_ts_PtActivationData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_PtActivationData = { + "PtActivationData", + "PtActivationData", + &asn_OP_OCTET_STRING, + asn_DEF_spatem_ts_PtActivationData_tags_1, + sizeof(asn_DEF_spatem_ts_PtActivationData_tags_1) + /sizeof(asn_DEF_spatem_ts_PtActivationData_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PtActivationData_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PtActivationData_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_PtActivationData_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PtActivationType.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PtActivationType.c new file mode 100644 index 000000000..fed9a1ae0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_PtActivationType.h" + +int +spatem_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_spatem_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_spatem_ts_PtActivationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_PtActivationType = { + "PtActivationType", + "PtActivationType", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_PtActivationType_tags_1, + sizeof(asn_DEF_spatem_ts_PtActivationType_tags_1) + /sizeof(asn_DEF_spatem_ts_PtActivationType_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PtActivationType_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PtActivationType_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_PtActivationType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PtvRequestType.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_PtvRequestType.c new file mode 100644 index 000000000..cf8636bac --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_PtvRequestType_specs_1 = { + asn_MAP_spatem_ts_PtvRequestType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_PtvRequestType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_PtvRequestType = { + "PtvRequestType", + "PtvRequestType", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_PtvRequestType_tags_1, + sizeof(asn_DEF_spatem_ts_PtvRequestType_tags_1) + /sizeof(asn_DEF_spatem_ts_PtvRequestType_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_PtvRequestType_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_PtvRequestType_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_PtvRequestType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RTCM-Revision.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RTCM-Revision.c new file mode 100644 index 000000000..7a7c14483 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_RTCM_Revision_specs_1 = { + asn_MAP_spatem_ts_RTCM_Revision_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_RTCM_Revision_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RTCM_Revision = { + "RTCM-Revision", + "RTCM-Revision", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_RTCM_Revision_tags_1, + sizeof(asn_DEF_spatem_ts_RTCM_Revision_tags_1) + /sizeof(asn_DEF_spatem_ts_RTCM_Revision_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RTCM_Revision_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RTCM_Revision_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_RTCM_Revision_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RTCMcorrections.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RTCMcorrections.c new file mode 100644 index 000000000..818389cce --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RTCMcorrections.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_ts_regional_8[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regional_tags_8[] = { + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_regional_specs_8 = { + sizeof(struct spatem_ts_RTCMcorrections__regional), + offsetof(struct spatem_ts_RTCMcorrections__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatem_ts_regional_8 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_regional_tags_8, + sizeof(asn_DEF_spatem_ts_regional_tags_8) + /sizeof(asn_DEF_spatem_ts_regional_tags_8[0]) - 1, /* 1 */ + asn_DEF_spatem_ts_regional_tags_8, /* Same as above */ + sizeof(asn_DEF_spatem_ts_regional_tags_8) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_regional_8, + 1, /* Single element */ + &asn_SPC_spatem_ts_regional_specs_8 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_spatem_ts_RTCMcorrections_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_RTCMcorrections, msgCnt), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RTCMcorrections, rev), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RTCMcorrections, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RTCMcorrections, anchorPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RTCMcorrections, rtcmHeader), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RTCMcorrections, msgs), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RTCMcorrections, regional), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + 0, + &asn_DEF_spatem_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_spatem_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_spatem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_spatem_ts_RTCMcorrections_oms_1[] = { 2, 3, 4, 6 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_RTCMcorrections_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_RTCMcorrections_specs_1 = { + sizeof(struct spatem_ts_RTCMcorrections), + offsetof(struct spatem_ts_RTCMcorrections, _asn_ctx), + asn_MAP_spatem_ts_RTCMcorrections_tag2el_1, + 7, /* Count of tags in the map */ + asn_MAP_spatem_ts_RTCMcorrections_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 7, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RTCMcorrections = { + "RTCMcorrections", + "RTCMcorrections", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_RTCMcorrections_tags_1, + sizeof(asn_DEF_spatem_ts_RTCMcorrections_tags_1) + /sizeof(asn_DEF_spatem_ts_RTCMcorrections_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RTCMcorrections_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RTCMcorrections_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_RTCMcorrections_1, + 7, /* Elements count */ + &asn_SPC_spatem_ts_RTCMcorrections_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RTCMheader.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RTCMheader.c new file mode 100644 index 000000000..3dae26f79 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RTCMheader.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_RTCMheader_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_RTCMheader, status), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RTCMheader, offsetSet), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_RTCMheader_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_RTCMheader_specs_1 = { + sizeof(struct spatem_ts_RTCMheader), + offsetof(struct spatem_ts_RTCMheader, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_RTCMheader = { + "RTCMheader", + "RTCMheader", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_RTCMheader_tags_1, + sizeof(asn_DEF_spatem_ts_RTCMheader_tags_1) + /sizeof(asn_DEF_spatem_ts_RTCMheader_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RTCMheader_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RTCMheader_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_RTCMheader_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_RTCMheader_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RTCMmessage.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RTCMmessage.c new file mode 100644 index 000000000..3a26925f8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RTCMmessage.h" + +int +spatem_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_spatem_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_spatem_ts_RTCMmessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RTCMmessage = { + "RTCMmessage", + "RTCMmessage", + &asn_OP_OCTET_STRING, + asn_DEF_spatem_ts_RTCMmessage_tags_1, + sizeof(asn_DEF_spatem_ts_RTCMmessage_tags_1) + /sizeof(asn_DEF_spatem_ts_RTCMmessage_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RTCMmessage_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RTCMmessage_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_RTCMmessage_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RTCMmessageList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RTCMmessageList.c new file mode 100644 index 000000000..152b46647 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RTCMmessageList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_RTCMmessageList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_RTCMmessageList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_RTCMmessageList_specs_1 = { + sizeof(struct spatem_ts_RTCMmessageList), + offsetof(struct spatem_ts_RTCMmessageList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RTCMmessageList = { + "RTCMmessageList", + "RTCMmessageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_RTCMmessageList_tags_1, + sizeof(asn_DEF_spatem_ts_RTCMmessageList_tags_1) + /sizeof(asn_DEF_spatem_ts_RTCMmessageList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RTCMmessageList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RTCMmessageList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_RTCMmessageList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_RTCMmessageList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ReferencePosition.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ReferencePosition.c new file mode 100644 index 000000000..add141f01 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ReferencePosition.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_ReferencePosition_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_ReferencePosition, latitude), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ReferencePosition, longitude), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ReferencePosition, positionConfidenceEllipse), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_ReferencePosition, altitude), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_ReferencePosition_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_ReferencePosition_specs_1 = { + sizeof(struct spatem_ts_ReferencePosition), + offsetof(struct spatem_ts_ReferencePosition, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_ReferencePosition = { + "ReferencePosition", + "ReferencePosition", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_ReferencePosition_tags_1, + sizeof(asn_DEF_spatem_ts_ReferencePosition_tags_1) + /sizeof(asn_DEF_spatem_ts_ReferencePosition_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ReferencePosition_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ReferencePosition_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_ReferencePosition_1, + 4, /* Elements count */ + &asn_SPC_spatem_ts_ReferencePosition_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RegionId.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RegionId.c new file mode 100644 index 000000000..ccbab51fc --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionId.h" + +int +spatem_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_spatem_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_spatem_ts_RegionId_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RegionId = { + "RegionId", + "RegionId", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_RegionId_tags_1, + sizeof(asn_DEF_spatem_ts_RegionId_tags_1) + /sizeof(asn_DEF_spatem_ts_RegionId_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RegionId_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RegionId_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_RegionId_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RegionalExtension.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RegionalExtension.c new file mode 100644 index 000000000..1e84f2a30 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + +static const long asn_VAL_5_spatem_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_spatem_ts_Reg_MapData_1_rows[] = { + { "&id", aioc__value, &asn_DEF_spatem_ts_RegionId, &asn_VAL_5_spatem_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_spatem_ts_MapData_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_spatem_ts_Reg_MapData_1[] = { + { 1, 2, asn_IOS_spatem_ts_Reg_MapData_1_rows } +}; +static const long asn_VAL_1_spatem_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_spatem_ts_Reg_ConnectionManeuverAssist_1_rows[] = { + { "&id", aioc__value, &asn_DEF_spatem_ts_RegionId, &asn_VAL_1_spatem_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_spatem_ts_ConnectionManeuverAssist_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_spatem_ts_Reg_ConnectionManeuverAssist_1[] = { + { 1, 2, asn_IOS_spatem_ts_Reg_ConnectionManeuverAssist_1_rows } +}; +static const long asn_VAL_2_spatem_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_spatem_ts_Reg_GenericLane_1_rows[] = { + { "&id", aioc__value, &asn_DEF_spatem_ts_RegionId, &asn_VAL_2_spatem_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_spatem_ts_ConnectionTrajectory_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_spatem_ts_Reg_GenericLane_1[] = { + { 1, 2, asn_IOS_spatem_ts_Reg_GenericLane_1_rows } +}; +static const long asn_VAL_3_spatem_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_spatem_ts_Reg_IntersectionState_1_rows[] = { + { "&id", aioc__value, &asn_DEF_spatem_ts_RegionId, &asn_VAL_3_spatem_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_spatem_ts_IntersectionState_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_spatem_ts_Reg_IntersectionState_1[] = { + { 1, 2, asn_IOS_spatem_ts_Reg_IntersectionState_1_rows } +}; +static const long asn_VAL_4_spatem_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_spatem_ts_Reg_LaneAttributes_1_rows[] = { + { "&id", aioc__value, &asn_DEF_spatem_ts_RegionId, &asn_VAL_4_spatem_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_spatem_ts_LaneAttributes_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_spatem_ts_Reg_LaneAttributes_1[] = { + { 1, 2, asn_IOS_spatem_ts_Reg_LaneAttributes_1_rows } +}; +static const long asn_VAL_6_spatem_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_spatem_ts_Reg_MovementEvent_1_rows[] = { + { "&id", aioc__value, &asn_DEF_spatem_ts_RegionId, &asn_VAL_6_spatem_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_spatem_ts_MovementEvent_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_spatem_ts_Reg_MovementEvent_1[] = { + { 1, 2, asn_IOS_spatem_ts_Reg_MovementEvent_1_rows } +}; +static const long asn_VAL_7_spatem_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_spatem_ts_Reg_NodeAttributeSetXY_1_rows[] = { + { "&id", aioc__value, &asn_DEF_spatem_ts_RegionId, &asn_VAL_7_spatem_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_spatem_ts_NodeAttributeSet_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_spatem_ts_Reg_NodeAttributeSetXY_1[] = { + { 1, 2, asn_IOS_spatem_ts_Reg_NodeAttributeSetXY_1_rows } +}; +static const long asn_VAL_8_spatem_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_spatem_ts_Reg_Position3D_1_rows[] = { + { "&id", aioc__value, &asn_DEF_spatem_ts_RegionId, &asn_VAL_8_spatem_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_spatem_ts_Position3D_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_spatem_ts_Reg_Position3D_1[] = { + { 1, 2, asn_IOS_spatem_ts_Reg_Position3D_1_rows } +}; +static const long asn_VAL_9_spatem_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_spatem_ts_Reg_RequestorDescription_1_rows[] = { + { "&id", aioc__value, &asn_DEF_spatem_ts_RegionId, &asn_VAL_9_spatem_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_spatem_ts_RequestorDescription_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_spatem_ts_Reg_RequestorDescription_1[] = { + { 1, 2, asn_IOS_spatem_ts_Reg_RequestorDescription_1_rows } +}; +static const long asn_VAL_10_spatem_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_spatem_ts_Reg_RestrictionUserType_1_rows[] = { + { "&id", aioc__value, &asn_DEF_spatem_ts_RegionId, &asn_VAL_10_spatem_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_spatem_ts_RestrictionUserType_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_spatem_ts_Reg_RestrictionUserType_1[] = { + { 1, 2, asn_IOS_spatem_ts_Reg_RestrictionUserType_1_rows } +}; +static const long asn_VAL_11_spatem_ts_addGrpC = 3; +static const asn_ioc_cell_t asn_IOS_spatem_ts_Reg_SignalStatusPackage_1_rows[] = { + { "&id", aioc__value, &asn_DEF_spatem_ts_RegionId, &asn_VAL_11_spatem_ts_addGrpC }, + { "&Type", aioc__type, &asn_DEF_spatem_ts_SignalStatusPackage_addGrpC } +}; +static const asn_ioc_set_t asn_IOS_spatem_ts_Reg_SignalStatusPackage_1[] = { + { 1, 2, asn_IOS_spatem_ts_Reg_SignalStatusPackage_1_rows } +}; +static int +memb_spatem_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_spatem_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_spatem_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 spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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 spatem_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_spatem_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_spatem_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_spatem_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_spatem_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 spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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 spatem_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_spatem_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_spatem_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_spatem_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_spatem_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 spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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 spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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 spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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 spatem_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_spatem_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_spatem_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_spatem_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_spatem_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 spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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 spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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 spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_regExtValue_3[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_MapData__regExtValue, choice.MapData_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regExtValue_tag2el_3[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MapData-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_3 = { + sizeof(struct spatem_ts_Reg_MapData__regExtValue), + offsetof(struct spatem_ts_Reg_MapData__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_MapData__regExtValue, present), + sizeof(((struct spatem_ts_Reg_MapData__regExtValue *)0)->present), + asn_MAP_spatem_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_spatem_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_spatem_ts_regExtValue_3, + 1, /* Elements count */ + &asn_SPC_spatem_ts_regExtValue_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_MapData_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_MapData, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_1 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_MapData, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_ts_regExtValue_3, + select_Reg_MapData_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_1 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_MapData_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_MapData_specs_1 = { + sizeof(struct spatem_ts_Reg_MapData), + offsetof(struct spatem_ts_Reg_MapData, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_MapData = { + "Reg-MapData", + "Reg-MapData", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_MapData_tags_1, + sizeof(asn_DEF_spatem_ts_Reg_MapData_tags_1) + /sizeof(asn_DEF_spatem_ts_Reg_MapData_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_MapData_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_MapData_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_MapData_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_MapData_specs_1 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_6 = { + sizeof(struct spatem_ts_Reg_RTCMcorrections__regExtValue), + offsetof(struct spatem_ts_Reg_RTCMcorrections__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_RTCMcorrections__regExtValue, present), + sizeof(((struct spatem_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_spatem_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_spatem_ts_regExtValue_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_RTCMcorrections_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_RTCMcorrections, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_4 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_RTCMcorrections, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_4 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_RTCMcorrections_tags_4[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_RTCMcorrections_specs_4 = { + sizeof(struct spatem_ts_Reg_RTCMcorrections), + offsetof(struct spatem_ts_Reg_RTCMcorrections, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_RTCMcorrections = { + "Reg-RTCMcorrections", + "Reg-RTCMcorrections", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_RTCMcorrections_tags_4, + sizeof(asn_DEF_spatem_ts_Reg_RTCMcorrections_tags_4) + /sizeof(asn_DEF_spatem_ts_Reg_RTCMcorrections_tags_4[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_RTCMcorrections_tags_4, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_RTCMcorrections_tags_4) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_RTCMcorrections_4, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_RTCMcorrections_specs_4 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_9 = { + sizeof(struct spatem_ts_Reg_SPAT__regExtValue), + offsetof(struct spatem_ts_Reg_SPAT__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_SPAT__regExtValue, present), + sizeof(((struct spatem_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_spatem_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_spatem_ts_regExtValue_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_SPAT_7[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_SPAT, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_7 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_SPAT, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_7 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_SPAT_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_SPAT_specs_7 = { + sizeof(struct spatem_ts_Reg_SPAT), + offsetof(struct spatem_ts_Reg_SPAT, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_SPAT = { + "Reg-SPAT", + "Reg-SPAT", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_SPAT_tags_7, + sizeof(asn_DEF_spatem_ts_Reg_SPAT_tags_7) + /sizeof(asn_DEF_spatem_ts_Reg_SPAT_tags_7[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_SPAT_tags_7, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_SPAT_tags_7) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_SPAT_7, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_SPAT_specs_7 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_12 = { + sizeof(struct spatem_ts_Reg_SignalRequestMessage__regExtValue), + offsetof(struct spatem_ts_Reg_SignalRequestMessage__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_SignalRequestMessage__regExtValue, present), + sizeof(((struct spatem_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_spatem_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_spatem_ts_regExtValue_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_SignalRequestMessage_10[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_SignalRequestMessage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_10 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_SignalRequestMessage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_10 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_SignalRequestMessage_tags_10[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_SignalRequestMessage_specs_10 = { + sizeof(struct spatem_ts_Reg_SignalRequestMessage), + offsetof(struct spatem_ts_Reg_SignalRequestMessage, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_SignalRequestMessage = { + "Reg-SignalRequestMessage", + "Reg-SignalRequestMessage", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_SignalRequestMessage_tags_10, + sizeof(asn_DEF_spatem_ts_Reg_SignalRequestMessage_tags_10) + /sizeof(asn_DEF_spatem_ts_Reg_SignalRequestMessage_tags_10[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_SignalRequestMessage_tags_10, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_SignalRequestMessage_tags_10) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_SignalRequestMessage_10, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_SignalRequestMessage_specs_10 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_15 = { + sizeof(struct spatem_ts_Reg_SignalStatusMessage__regExtValue), + offsetof(struct spatem_ts_Reg_SignalStatusMessage__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_SignalStatusMessage__regExtValue, present), + sizeof(((struct spatem_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_spatem_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_spatem_ts_regExtValue_specs_15 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_SignalStatusMessage_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_SignalStatusMessage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_13 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_SignalStatusMessage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_13 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_SignalStatusMessage_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_SignalStatusMessage_specs_13 = { + sizeof(struct spatem_ts_Reg_SignalStatusMessage), + offsetof(struct spatem_ts_Reg_SignalStatusMessage, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_SignalStatusMessage = { + "Reg-SignalStatusMessage", + "Reg-SignalStatusMessage", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_SignalStatusMessage_tags_13, + sizeof(asn_DEF_spatem_ts_Reg_SignalStatusMessage_tags_13) + /sizeof(asn_DEF_spatem_ts_Reg_SignalStatusMessage_tags_13[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_SignalStatusMessage_tags_13, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_SignalStatusMessage_tags_13) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_SignalStatusMessage_13, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_SignalStatusMessage_specs_13 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_18 = { + sizeof(struct spatem_ts_Reg_AdvisorySpeed__regExtValue), + offsetof(struct spatem_ts_Reg_AdvisorySpeed__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_AdvisorySpeed__regExtValue, present), + sizeof(((struct spatem_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_spatem_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_spatem_ts_regExtValue_specs_18 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_AdvisorySpeed_16[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_AdvisorySpeed, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_16 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_AdvisorySpeed, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_16 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_AdvisorySpeed_tags_16[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_AdvisorySpeed_specs_16 = { + sizeof(struct spatem_ts_Reg_AdvisorySpeed), + offsetof(struct spatem_ts_Reg_AdvisorySpeed, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_AdvisorySpeed = { + "Reg-AdvisorySpeed", + "Reg-AdvisorySpeed", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_AdvisorySpeed_tags_16, + sizeof(asn_DEF_spatem_ts_Reg_AdvisorySpeed_tags_16) + /sizeof(asn_DEF_spatem_ts_Reg_AdvisorySpeed_tags_16[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_AdvisorySpeed_tags_16, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_AdvisorySpeed_tags_16) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_AdvisorySpeed_16, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_AdvisorySpeed_specs_16 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_21 = { + sizeof(struct spatem_ts_Reg_ComputedLane__regExtValue), + offsetof(struct spatem_ts_Reg_ComputedLane__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_ComputedLane__regExtValue, present), + sizeof(((struct spatem_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_spatem_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_spatem_ts_regExtValue_specs_21 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_ComputedLane_19[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_ComputedLane, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_19 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_ComputedLane, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_19 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_ComputedLane_tags_19[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_ComputedLane_specs_19 = { + sizeof(struct spatem_ts_Reg_ComputedLane), + offsetof(struct spatem_ts_Reg_ComputedLane, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_ComputedLane = { + "Reg-ComputedLane", + "Reg-ComputedLane", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_ComputedLane_tags_19, + sizeof(asn_DEF_spatem_ts_Reg_ComputedLane_tags_19) + /sizeof(asn_DEF_spatem_ts_Reg_ComputedLane_tags_19[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_ComputedLane_tags_19, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_ComputedLane_tags_19) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_ComputedLane_19, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_ComputedLane_specs_19 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_spatem_ts_regExtValue_24[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_ConnectionManeuverAssist__regExtValue, choice.ConnectionManeuverAssist_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regExtValue_tag2el_24[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ConnectionManeuverAssist-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_24 = { + sizeof(struct spatem_ts_Reg_ConnectionManeuverAssist__regExtValue), + offsetof(struct spatem_ts_Reg_ConnectionManeuverAssist__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_ConnectionManeuverAssist__regExtValue, present), + sizeof(((struct spatem_ts_Reg_ConnectionManeuverAssist__regExtValue *)0)->present), + asn_MAP_spatem_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_spatem_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_spatem_ts_regExtValue_24, + 1, /* Elements count */ + &asn_SPC_spatem_ts_regExtValue_specs_24 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_ConnectionManeuverAssist_22[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_ConnectionManeuverAssist, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_22 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_ConnectionManeuverAssist, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_ts_regExtValue_24, + select_Reg_ConnectionManeuverAssist_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_22 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_ConnectionManeuverAssist_tags_22[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_ConnectionManeuverAssist_specs_22 = { + sizeof(struct spatem_ts_Reg_ConnectionManeuverAssist), + offsetof(struct spatem_ts_Reg_ConnectionManeuverAssist, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_ConnectionManeuverAssist = { + "Reg-ConnectionManeuverAssist", + "Reg-ConnectionManeuverAssist", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_ConnectionManeuverAssist_tags_22, + sizeof(asn_DEF_spatem_ts_Reg_ConnectionManeuverAssist_tags_22) + /sizeof(asn_DEF_spatem_ts_Reg_ConnectionManeuverAssist_tags_22[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_ConnectionManeuverAssist_tags_22, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_ConnectionManeuverAssist_tags_22) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_ConnectionManeuverAssist_22, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_ConnectionManeuverAssist_specs_22 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_spatem_ts_regExtValue_27[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_GenericLane__regExtValue, choice.ConnectionTrajectory_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regExtValue_tag2el_27[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* ConnectionTrajectory-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_27 = { + sizeof(struct spatem_ts_Reg_GenericLane__regExtValue), + offsetof(struct spatem_ts_Reg_GenericLane__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_GenericLane__regExtValue, present), + sizeof(((struct spatem_ts_Reg_GenericLane__regExtValue *)0)->present), + asn_MAP_spatem_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_spatem_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_spatem_ts_regExtValue_27, + 1, /* Elements count */ + &asn_SPC_spatem_ts_regExtValue_specs_27 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_GenericLane_25[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_GenericLane, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_25 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_GenericLane, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_ts_regExtValue_27, + select_Reg_GenericLane_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_25 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_GenericLane_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_GenericLane_specs_25 = { + sizeof(struct spatem_ts_Reg_GenericLane), + offsetof(struct spatem_ts_Reg_GenericLane, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_GenericLane = { + "Reg-GenericLane", + "Reg-GenericLane", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_GenericLane_tags_25, + sizeof(asn_DEF_spatem_ts_Reg_GenericLane_tags_25) + /sizeof(asn_DEF_spatem_ts_Reg_GenericLane_tags_25[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_GenericLane_tags_25, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_GenericLane_tags_25) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_GenericLane_25, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_GenericLane_specs_25 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_30 = { + sizeof(struct spatem_ts_Reg_IntersectionGeometry__regExtValue), + offsetof(struct spatem_ts_Reg_IntersectionGeometry__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_IntersectionGeometry__regExtValue, present), + sizeof(((struct spatem_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_spatem_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_spatem_ts_regExtValue_specs_30 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_IntersectionGeometry_28[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_IntersectionGeometry, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_28 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_IntersectionGeometry, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_28 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_IntersectionGeometry_tags_28[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_IntersectionGeometry_specs_28 = { + sizeof(struct spatem_ts_Reg_IntersectionGeometry), + offsetof(struct spatem_ts_Reg_IntersectionGeometry, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_IntersectionGeometry = { + "Reg-IntersectionGeometry", + "Reg-IntersectionGeometry", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_IntersectionGeometry_tags_28, + sizeof(asn_DEF_spatem_ts_Reg_IntersectionGeometry_tags_28) + /sizeof(asn_DEF_spatem_ts_Reg_IntersectionGeometry_tags_28[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_IntersectionGeometry_tags_28, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_IntersectionGeometry_tags_28) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_IntersectionGeometry_28, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_IntersectionGeometry_specs_28 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_spatem_ts_regExtValue_33[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_IntersectionState__regExtValue, choice.IntersectionState_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regExtValue_tag2el_33[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* IntersectionState-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_33 = { + sizeof(struct spatem_ts_Reg_IntersectionState__regExtValue), + offsetof(struct spatem_ts_Reg_IntersectionState__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_IntersectionState__regExtValue, present), + sizeof(((struct spatem_ts_Reg_IntersectionState__regExtValue *)0)->present), + asn_MAP_spatem_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_spatem_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_spatem_ts_regExtValue_33, + 1, /* Elements count */ + &asn_SPC_spatem_ts_regExtValue_specs_33 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_IntersectionState_31[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_IntersectionState, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_31 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_IntersectionState, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_ts_regExtValue_33, + select_Reg_IntersectionState_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_31 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_IntersectionState_tags_31[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_IntersectionState_specs_31 = { + sizeof(struct spatem_ts_Reg_IntersectionState), + offsetof(struct spatem_ts_Reg_IntersectionState, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_IntersectionState = { + "Reg-IntersectionState", + "Reg-IntersectionState", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_IntersectionState_tags_31, + sizeof(asn_DEF_spatem_ts_Reg_IntersectionState_tags_31) + /sizeof(asn_DEF_spatem_ts_Reg_IntersectionState_tags_31[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_IntersectionState_tags_31, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_IntersectionState_tags_31) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_IntersectionState_31, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_IntersectionState_specs_31 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_spatem_ts_regExtValue_36[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_LaneAttributes__regExtValue, choice.LaneAttributes_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regExtValue_tag2el_36[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* LaneAttributes-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_36 = { + sizeof(struct spatem_ts_Reg_LaneAttributes__regExtValue), + offsetof(struct spatem_ts_Reg_LaneAttributes__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_LaneAttributes__regExtValue, present), + sizeof(((struct spatem_ts_Reg_LaneAttributes__regExtValue *)0)->present), + asn_MAP_spatem_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_spatem_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_spatem_ts_regExtValue_36, + 1, /* Elements count */ + &asn_SPC_spatem_ts_regExtValue_specs_36 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_LaneAttributes_34[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_LaneAttributes, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_34 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_LaneAttributes, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_ts_regExtValue_36, + select_Reg_LaneAttributes_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_34 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_LaneAttributes_tags_34[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_LaneAttributes_specs_34 = { + sizeof(struct spatem_ts_Reg_LaneAttributes), + offsetof(struct spatem_ts_Reg_LaneAttributes, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_LaneAttributes = { + "Reg-LaneAttributes", + "Reg-LaneAttributes", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_LaneAttributes_tags_34, + sizeof(asn_DEF_spatem_ts_Reg_LaneAttributes_tags_34) + /sizeof(asn_DEF_spatem_ts_Reg_LaneAttributes_tags_34[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_LaneAttributes_tags_34, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_LaneAttributes_tags_34) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_LaneAttributes_34, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_LaneAttributes_specs_34 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_39 = { + sizeof(struct spatem_ts_Reg_LaneDataAttribute__regExtValue), + offsetof(struct spatem_ts_Reg_LaneDataAttribute__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_LaneDataAttribute__regExtValue, present), + sizeof(((struct spatem_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_spatem_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_spatem_ts_regExtValue_specs_39 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_LaneDataAttribute_37[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_LaneDataAttribute, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_37 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_LaneDataAttribute, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_37 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_LaneDataAttribute_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_LaneDataAttribute_specs_37 = { + sizeof(struct spatem_ts_Reg_LaneDataAttribute), + offsetof(struct spatem_ts_Reg_LaneDataAttribute, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_LaneDataAttribute = { + "Reg-LaneDataAttribute", + "Reg-LaneDataAttribute", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_LaneDataAttribute_tags_37, + sizeof(asn_DEF_spatem_ts_Reg_LaneDataAttribute_tags_37) + /sizeof(asn_DEF_spatem_ts_Reg_LaneDataAttribute_tags_37[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_LaneDataAttribute_tags_37, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_LaneDataAttribute_tags_37) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_LaneDataAttribute_37, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_LaneDataAttribute_specs_37 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_spatem_ts_regExtValue_42[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_MovementEvent__regExtValue, choice.MovementEvent_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regExtValue_tag2el_42[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* MovementEvent-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_42 = { + sizeof(struct spatem_ts_Reg_MovementEvent__regExtValue), + offsetof(struct spatem_ts_Reg_MovementEvent__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_MovementEvent__regExtValue, present), + sizeof(((struct spatem_ts_Reg_MovementEvent__regExtValue *)0)->present), + asn_MAP_spatem_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_spatem_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_spatem_ts_regExtValue_42, + 1, /* Elements count */ + &asn_SPC_spatem_ts_regExtValue_specs_42 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_MovementEvent_40[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_MovementEvent, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_40 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_MovementEvent, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_ts_regExtValue_42, + select_Reg_MovementEvent_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_40 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_MovementEvent_tags_40[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_MovementEvent_specs_40 = { + sizeof(struct spatem_ts_Reg_MovementEvent), + offsetof(struct spatem_ts_Reg_MovementEvent, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_MovementEvent = { + "Reg-MovementEvent", + "Reg-MovementEvent", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_MovementEvent_tags_40, + sizeof(asn_DEF_spatem_ts_Reg_MovementEvent_tags_40) + /sizeof(asn_DEF_spatem_ts_Reg_MovementEvent_tags_40[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_MovementEvent_tags_40, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_MovementEvent_tags_40) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_MovementEvent_40, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_MovementEvent_specs_40 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_45 = { + sizeof(struct spatem_ts_Reg_MovementState__regExtValue), + offsetof(struct spatem_ts_Reg_MovementState__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_MovementState__regExtValue, present), + sizeof(((struct spatem_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_spatem_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_spatem_ts_regExtValue_specs_45 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_MovementState_43[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_MovementState, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_43 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_MovementState, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_43 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_MovementState_tags_43[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_MovementState_specs_43 = { + sizeof(struct spatem_ts_Reg_MovementState), + offsetof(struct spatem_ts_Reg_MovementState, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_MovementState = { + "Reg-MovementState", + "Reg-MovementState", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_MovementState_tags_43, + sizeof(asn_DEF_spatem_ts_Reg_MovementState_tags_43) + /sizeof(asn_DEF_spatem_ts_Reg_MovementState_tags_43[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_MovementState_tags_43, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_MovementState_tags_43) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_MovementState_43, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_MovementState_specs_43 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_spatem_ts_regExtValue_48[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_NodeAttributeSetXY__regExtValue, choice.NodeAttributeSet_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regExtValue_tag2el_48[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* NodeAttributeSet-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_48 = { + sizeof(struct spatem_ts_Reg_NodeAttributeSetXY__regExtValue), + offsetof(struct spatem_ts_Reg_NodeAttributeSetXY__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_NodeAttributeSetXY__regExtValue, present), + sizeof(((struct spatem_ts_Reg_NodeAttributeSetXY__regExtValue *)0)->present), + asn_MAP_spatem_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_spatem_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_spatem_ts_regExtValue_48, + 1, /* Elements count */ + &asn_SPC_spatem_ts_regExtValue_specs_48 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_NodeAttributeSetXY_46[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_NodeAttributeSetXY, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_46 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_NodeAttributeSetXY, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_ts_regExtValue_48, + select_Reg_NodeAttributeSetXY_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_46 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_NodeAttributeSetXY_tags_46[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_NodeAttributeSetXY_specs_46 = { + sizeof(struct spatem_ts_Reg_NodeAttributeSetXY), + offsetof(struct spatem_ts_Reg_NodeAttributeSetXY, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_NodeAttributeSetXY = { + "Reg-NodeAttributeSetXY", + "Reg-NodeAttributeSetXY", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_NodeAttributeSetXY_tags_46, + sizeof(asn_DEF_spatem_ts_Reg_NodeAttributeSetXY_tags_46) + /sizeof(asn_DEF_spatem_ts_Reg_NodeAttributeSetXY_tags_46[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_NodeAttributeSetXY_tags_46, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_NodeAttributeSetXY_tags_46) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_NodeAttributeSetXY_46, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_NodeAttributeSetXY_specs_46 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_51 = { + sizeof(struct spatem_ts_Reg_NodeOffsetPointXY__regExtValue), + offsetof(struct spatem_ts_Reg_NodeOffsetPointXY__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_NodeOffsetPointXY__regExtValue, present), + sizeof(((struct spatem_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_spatem_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_spatem_ts_regExtValue_specs_51 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_NodeOffsetPointXY_49[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_NodeOffsetPointXY, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_49 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_NodeOffsetPointXY, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_49 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_NodeOffsetPointXY_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_NodeOffsetPointXY_specs_49 = { + sizeof(struct spatem_ts_Reg_NodeOffsetPointXY), + offsetof(struct spatem_ts_Reg_NodeOffsetPointXY, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_NodeOffsetPointXY = { + "Reg-NodeOffsetPointXY", + "Reg-NodeOffsetPointXY", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_NodeOffsetPointXY_tags_49, + sizeof(asn_DEF_spatem_ts_Reg_NodeOffsetPointXY_tags_49) + /sizeof(asn_DEF_spatem_ts_Reg_NodeOffsetPointXY_tags_49[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_NodeOffsetPointXY_tags_49, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_NodeOffsetPointXY_tags_49) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_NodeOffsetPointXY_49, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_NodeOffsetPointXY_specs_49 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_spatem_ts_regExtValue_54[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_Position3D__regExtValue, choice.Position3D_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regExtValue_tag2el_54[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* Position3D-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_54 = { + sizeof(struct spatem_ts_Reg_Position3D__regExtValue), + offsetof(struct spatem_ts_Reg_Position3D__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_Position3D__regExtValue, present), + sizeof(((struct spatem_ts_Reg_Position3D__regExtValue *)0)->present), + asn_MAP_spatem_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_spatem_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_spatem_ts_regExtValue_54, + 1, /* Elements count */ + &asn_SPC_spatem_ts_regExtValue_specs_54 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_Position3D_52[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_Position3D, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_52 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_Position3D, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_ts_regExtValue_54, + select_Reg_Position3D_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_52 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_Position3D_tags_52[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_Position3D_specs_52 = { + sizeof(struct spatem_ts_Reg_Position3D), + offsetof(struct spatem_ts_Reg_Position3D, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_Position3D = { + "Reg-Position3D", + "Reg-Position3D", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_Position3D_tags_52, + sizeof(asn_DEF_spatem_ts_Reg_Position3D_tags_52) + /sizeof(asn_DEF_spatem_ts_Reg_Position3D_tags_52[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_Position3D_tags_52, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_Position3D_tags_52) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_Position3D_52, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_Position3D_specs_52 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_spatem_ts_regExtValue_57[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_RequestorDescription__regExtValue, choice.RequestorDescription_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regExtValue_tag2el_57[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RequestorDescription-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_57 = { + sizeof(struct spatem_ts_Reg_RequestorDescription__regExtValue), + offsetof(struct spatem_ts_Reg_RequestorDescription__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_RequestorDescription__regExtValue, present), + sizeof(((struct spatem_ts_Reg_RequestorDescription__regExtValue *)0)->present), + asn_MAP_spatem_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_spatem_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_spatem_ts_regExtValue_57, + 1, /* Elements count */ + &asn_SPC_spatem_ts_regExtValue_specs_57 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_RequestorDescription_55[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_RequestorDescription, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_55 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_RequestorDescription, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_ts_regExtValue_57, + select_Reg_RequestorDescription_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_55 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_RequestorDescription_tags_55[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_RequestorDescription_specs_55 = { + sizeof(struct spatem_ts_Reg_RequestorDescription), + offsetof(struct spatem_ts_Reg_RequestorDescription, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_RequestorDescription = { + "Reg-RequestorDescription", + "Reg-RequestorDescription", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_RequestorDescription_tags_55, + sizeof(asn_DEF_spatem_ts_Reg_RequestorDescription_tags_55) + /sizeof(asn_DEF_spatem_ts_Reg_RequestorDescription_tags_55[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_RequestorDescription_tags_55, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_RequestorDescription_tags_55) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_RequestorDescription_55, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_RequestorDescription_specs_55 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_60 = { + sizeof(struct spatem_ts_Reg_RequestorType__regExtValue), + offsetof(struct spatem_ts_Reg_RequestorType__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_RequestorType__regExtValue, present), + sizeof(((struct spatem_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_spatem_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_spatem_ts_regExtValue_specs_60 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_RequestorType_58[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_RequestorType, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_58 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_RequestorType, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_58 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_RequestorType_tags_58[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_RequestorType_specs_58 = { + sizeof(struct spatem_ts_Reg_RequestorType), + offsetof(struct spatem_ts_Reg_RequestorType, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_RequestorType = { + "Reg-RequestorType", + "Reg-RequestorType", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_RequestorType_tags_58, + sizeof(asn_DEF_spatem_ts_Reg_RequestorType_tags_58) + /sizeof(asn_DEF_spatem_ts_Reg_RequestorType_tags_58[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_RequestorType_tags_58, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_RequestorType_tags_58) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_RequestorType_58, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_RequestorType_specs_58 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_spatem_ts_regExtValue_63[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_RestrictionUserType__regExtValue, choice.RestrictionUserType_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regExtValue_tag2el_63[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RestrictionUserType-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_63 = { + sizeof(struct spatem_ts_Reg_RestrictionUserType__regExtValue), + offsetof(struct spatem_ts_Reg_RestrictionUserType__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_RestrictionUserType__regExtValue, present), + sizeof(((struct spatem_ts_Reg_RestrictionUserType__regExtValue *)0)->present), + asn_MAP_spatem_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_spatem_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_spatem_ts_regExtValue_63, + 1, /* Elements count */ + &asn_SPC_spatem_ts_regExtValue_specs_63 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_RestrictionUserType_61[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_RestrictionUserType, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_61 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_RestrictionUserType, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_ts_regExtValue_63, + select_Reg_RestrictionUserType_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_61 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_RestrictionUserType_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_RestrictionUserType_specs_61 = { + sizeof(struct spatem_ts_Reg_RestrictionUserType), + offsetof(struct spatem_ts_Reg_RestrictionUserType, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_RestrictionUserType = { + "Reg-RestrictionUserType", + "Reg-RestrictionUserType", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_RestrictionUserType_tags_61, + sizeof(asn_DEF_spatem_ts_Reg_RestrictionUserType_tags_61) + /sizeof(asn_DEF_spatem_ts_Reg_RestrictionUserType_tags_61[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_RestrictionUserType_tags_61, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_RestrictionUserType_tags_61) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_RestrictionUserType_61, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_RestrictionUserType_specs_61 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_66 = { + sizeof(struct spatem_ts_Reg_RoadSegment__regExtValue), + offsetof(struct spatem_ts_Reg_RoadSegment__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_RoadSegment__regExtValue, present), + sizeof(((struct spatem_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_spatem_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_spatem_ts_regExtValue_specs_66 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_RoadSegment_64[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_RoadSegment, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_64 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_RoadSegment, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_64 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_RoadSegment_tags_64[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_RoadSegment_specs_64 = { + sizeof(struct spatem_ts_Reg_RoadSegment), + offsetof(struct spatem_ts_Reg_RoadSegment, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_RoadSegment = { + "Reg-RoadSegment", + "Reg-RoadSegment", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_RoadSegment_tags_64, + sizeof(asn_DEF_spatem_ts_Reg_RoadSegment_tags_64) + /sizeof(asn_DEF_spatem_ts_Reg_RoadSegment_tags_64[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_RoadSegment_tags_64, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_RoadSegment_tags_64) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_RoadSegment_64, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_RoadSegment_specs_64 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_69 = { + sizeof(struct spatem_ts_Reg_SignalControlZone__regExtValue), + offsetof(struct spatem_ts_Reg_SignalControlZone__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_SignalControlZone__regExtValue, present), + sizeof(((struct spatem_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_spatem_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_spatem_ts_regExtValue_specs_69 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_SignalControlZone_67[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_SignalControlZone, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_67 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_SignalControlZone, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_67 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_SignalControlZone_tags_67[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_SignalControlZone_specs_67 = { + sizeof(struct spatem_ts_Reg_SignalControlZone), + offsetof(struct spatem_ts_Reg_SignalControlZone, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_SignalControlZone = { + "Reg-SignalControlZone", + "Reg-SignalControlZone", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_SignalControlZone_tags_67, + sizeof(asn_DEF_spatem_ts_Reg_SignalControlZone_tags_67) + /sizeof(asn_DEF_spatem_ts_Reg_SignalControlZone_tags_67[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_SignalControlZone_tags_67, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_SignalControlZone_tags_67) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_SignalControlZone_67, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_SignalControlZone_specs_67 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_72 = { + sizeof(struct spatem_ts_Reg_SignalRequest__regExtValue), + offsetof(struct spatem_ts_Reg_SignalRequest__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_SignalRequest__regExtValue, present), + sizeof(((struct spatem_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_spatem_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_spatem_ts_regExtValue_specs_72 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_SignalRequest_70[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_SignalRequest, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_70 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_SignalRequest, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_70 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_SignalRequest_tags_70[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_SignalRequest_specs_70 = { + sizeof(struct spatem_ts_Reg_SignalRequest), + offsetof(struct spatem_ts_Reg_SignalRequest, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_SignalRequest = { + "Reg-SignalRequest", + "Reg-SignalRequest", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_SignalRequest_tags_70, + sizeof(asn_DEF_spatem_ts_Reg_SignalRequest_tags_70) + /sizeof(asn_DEF_spatem_ts_Reg_SignalRequest_tags_70[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_SignalRequest_tags_70, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_SignalRequest_tags_70) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_SignalRequest_70, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_SignalRequest_specs_70 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_75 = { + sizeof(struct spatem_ts_Reg_SignalRequestPackage__regExtValue), + offsetof(struct spatem_ts_Reg_SignalRequestPackage__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_SignalRequestPackage__regExtValue, present), + sizeof(((struct spatem_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_spatem_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_spatem_ts_regExtValue_specs_75 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_SignalRequestPackage_73[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_SignalRequestPackage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_73 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_SignalRequestPackage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_73 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_SignalRequestPackage_tags_73[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_SignalRequestPackage_specs_73 = { + sizeof(struct spatem_ts_Reg_SignalRequestPackage), + offsetof(struct spatem_ts_Reg_SignalRequestPackage, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_SignalRequestPackage = { + "Reg-SignalRequestPackage", + "Reg-SignalRequestPackage", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_SignalRequestPackage_tags_73, + sizeof(asn_DEF_spatem_ts_Reg_SignalRequestPackage_tags_73) + /sizeof(asn_DEF_spatem_ts_Reg_SignalRequestPackage_tags_73[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_SignalRequestPackage_tags_73, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_SignalRequestPackage_tags_73) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_SignalRequestPackage_73, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_SignalRequestPackage_specs_73 /* Additional specs */ +}; + +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_78 = { + sizeof(struct spatem_ts_Reg_SignalStatus__regExtValue), + offsetof(struct spatem_ts_Reg_SignalStatus__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_SignalStatus__regExtValue, present), + sizeof(((struct spatem_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_spatem_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_spatem_ts_regExtValue_specs_78 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_SignalStatus_76[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_SignalStatus, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_76 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_SignalStatus, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_76 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_SignalStatus_tags_76[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_SignalStatus_specs_76 = { + sizeof(struct spatem_ts_Reg_SignalStatus), + offsetof(struct spatem_ts_Reg_SignalStatus, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_SignalStatus = { + "Reg-SignalStatus", + "Reg-SignalStatus", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_SignalStatus_tags_76, + sizeof(asn_DEF_spatem_ts_Reg_SignalStatus_tags_76) + /sizeof(asn_DEF_spatem_ts_Reg_SignalStatus_tags_76[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_SignalStatus_tags_76, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_SignalStatus_tags_76) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_SignalStatus_76, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_SignalStatus_specs_76 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_spatem_ts_regExtValue_81[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_SignalStatusPackage__regExtValue, choice.SignalStatusPackage_addGrpC), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regExtValue_tag2el_81[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* SignalStatusPackage-addGrpC */ +}; +static asn_CHOICE_specifics_t asn_SPC_spatem_ts_regExtValue_specs_81 = { + sizeof(struct spatem_ts_Reg_SignalStatusPackage__regExtValue), + offsetof(struct spatem_ts_Reg_SignalStatusPackage__regExtValue, _asn_ctx), + offsetof(struct spatem_ts_Reg_SignalStatusPackage__regExtValue, present), + sizeof(((struct spatem_ts_Reg_SignalStatusPackage__regExtValue *)0)->present), + asn_MAP_spatem_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_spatem_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_spatem_ts_regExtValue_81, + 1, /* Elements count */ + &asn_SPC_spatem_ts_regExtValue_specs_81 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_Reg_SignalStatusPackage_79[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_SignalStatusPackage, regionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_regionId_constraint_79 + }, + 0, 0, /* No default value */ + "regionId" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Reg_SignalStatusPackage, regExtValue), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_ts_regExtValue_81, + select_Reg_SignalStatusPackage_spatem_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_spatem_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_spatem_ts_regExtValue_constraint_79 + }, + 0, 0, /* No default value */ + "regExtValue" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_Reg_SignalStatusPackage_tags_79[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_Reg_SignalStatusPackage_specs_79 = { + sizeof(struct spatem_ts_Reg_SignalStatusPackage), + offsetof(struct spatem_ts_Reg_SignalStatusPackage, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Reg_SignalStatusPackage = { + "Reg-SignalStatusPackage", + "Reg-SignalStatusPackage", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Reg_SignalStatusPackage_tags_79, + sizeof(asn_DEF_spatem_ts_Reg_SignalStatusPackage_tags_79) + /sizeof(asn_DEF_spatem_ts_Reg_SignalStatusPackage_tags_79[0]), /* 1 */ + asn_DEF_spatem_ts_Reg_SignalStatusPackage_tags_79, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Reg_SignalStatusPackage_tags_79) + /sizeof(asn_DEF_spatem_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_spatem_ts_Reg_SignalStatusPackage_79, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Reg_SignalStatusPackage_specs_79 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RegulatorySpeedLimit.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RegulatorySpeedLimit.c new file mode 100644 index 000000000..39a7b7c23 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RegulatorySpeedLimit.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_RegulatorySpeedLimit_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_RegulatorySpeedLimit, type), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RegulatorySpeedLimit, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_RegulatorySpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_RegulatorySpeedLimit_specs_1 = { + sizeof(struct spatem_ts_RegulatorySpeedLimit), + offsetof(struct spatem_ts_RegulatorySpeedLimit, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_RegulatorySpeedLimit = { + "RegulatorySpeedLimit", + "RegulatorySpeedLimit", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_RegulatorySpeedLimit_tags_1, + sizeof(asn_DEF_spatem_ts_RegulatorySpeedLimit_tags_1) + /sizeof(asn_DEF_spatem_ts_RegulatorySpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RegulatorySpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RegulatorySpeedLimit_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_RegulatorySpeedLimit_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_RegulatorySpeedLimit_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RejectedReason.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RejectedReason.c new file mode 100644 index 000000000..23cf5cec5 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_RejectedReason_specs_1 = { + asn_MAP_spatem_ts_RejectedReason_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_RejectedReason_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RejectedReason = { + "RejectedReason", + "RejectedReason", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_RejectedReason_tags_1, + sizeof(asn_DEF_spatem_ts_RejectedReason_tags_1) + /sizeof(asn_DEF_spatem_ts_RejectedReason_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RejectedReason_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RejectedReason_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_RejectedReason_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RelevanceDistance.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RelevanceDistance.c new file mode 100644 index 000000000..6b4e589a0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_RelevanceDistance_specs_1 = { + asn_MAP_spatem_ts_RelevanceDistance_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_RelevanceDistance_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RelevanceDistance = { + "RelevanceDistance", + "RelevanceDistance", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_RelevanceDistance_tags_1, + sizeof(asn_DEF_spatem_ts_RelevanceDistance_tags_1) + /sizeof(asn_DEF_spatem_ts_RelevanceDistance_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RelevanceDistance_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RelevanceDistance_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_RelevanceDistance_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RelevanceTrafficDirection.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RelevanceTrafficDirection.c new file mode 100644 index 000000000..0f93a2738 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_ts_RelevanceTrafficDirection_value2enum_1[] = { + { 0, 20, "allTrafficDirections" }, + { 1, 15, "upstreamTraffic" }, + { 2, 17, "downstreamTraffic" }, + { 3, 15, "oppositeTraffic" } +}; +static const unsigned int asn_MAP_spatem_ts_RelevanceTrafficDirection_enum2value_1[] = { + 0, /* allTrafficDirections(0) */ + 2, /* downstreamTraffic(2) */ + 3, /* oppositeTraffic(3) */ + 1 /* upstreamTraffic(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_spatem_ts_RelevanceTrafficDirection_specs_1 = { + asn_MAP_spatem_ts_RelevanceTrafficDirection_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_RelevanceTrafficDirection_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RelevanceTrafficDirection = { + "RelevanceTrafficDirection", + "RelevanceTrafficDirection", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_RelevanceTrafficDirection_tags_1, + sizeof(asn_DEF_spatem_ts_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_spatem_ts_RelevanceTrafficDirection_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RelevanceTrafficDirection_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RelevanceTrafficDirection_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_RelevanceTrafficDirection_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RequestID.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RequestID.c new file mode 100644 index 000000000..4645f3319 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RequestID.h" + +int +spatem_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_spatem_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_spatem_ts_RequestID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RequestID = { + "RequestID", + "RequestID", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_RequestID_tags_1, + sizeof(asn_DEF_spatem_ts_RequestID_tags_1) + /sizeof(asn_DEF_spatem_ts_RequestID_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RequestID_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RequestID_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_RequestID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RequestImportanceLevel.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RequestImportanceLevel.c new file mode 100644 index 000000000..ed16e41f8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_RequestImportanceLevel_specs_1 = { + asn_MAP_spatem_ts_RequestImportanceLevel_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_RequestImportanceLevel_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RequestImportanceLevel = { + "RequestImportanceLevel", + "RequestImportanceLevel", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_RequestImportanceLevel_tags_1, + sizeof(asn_DEF_spatem_ts_RequestImportanceLevel_tags_1) + /sizeof(asn_DEF_spatem_ts_RequestImportanceLevel_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RequestImportanceLevel_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RequestImportanceLevel_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_RequestImportanceLevel_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RequestResponseIndication.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RequestResponseIndication.c new file mode 100644 index 000000000..cc322614f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_ts_RequestResponseIndication_value2enum_1[] = { + { 0, 7, "request" }, + { 1, 8, "response" } +}; +static const unsigned int asn_MAP_spatem_ts_RequestResponseIndication_enum2value_1[] = { + 0, /* request(0) */ + 1 /* response(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_spatem_ts_RequestResponseIndication_specs_1 = { + asn_MAP_spatem_ts_RequestResponseIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_RequestResponseIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RequestResponseIndication = { + "RequestResponseIndication", + "RequestResponseIndication", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_RequestResponseIndication_tags_1, + sizeof(asn_DEF_spatem_ts_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_spatem_ts_RequestResponseIndication_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RequestResponseIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RequestResponseIndication_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_RequestResponseIndication_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RequestSubRole.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RequestSubRole.c new file mode 100644 index 000000000..7b1e1649b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_RequestSubRole_specs_1 = { + asn_MAP_spatem_ts_RequestSubRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_RequestSubRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RequestSubRole = { + "RequestSubRole", + "RequestSubRole", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_RequestSubRole_tags_1, + sizeof(asn_DEF_spatem_ts_RequestSubRole_tags_1) + /sizeof(asn_DEF_spatem_ts_RequestSubRole_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RequestSubRole_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RequestSubRole_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_RequestSubRole_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RequestorDescription-addGrpC.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RequestorDescription-addGrpC.c new file mode 100644 index 000000000..81dc6cbd4 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RequestorDescription-addGrpC.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_RequestorDescription_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct spatem_ts_RequestorDescription_addGrpC, fuel), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RequestorDescription_addGrpC, batteryStatus), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_RequestorDescription_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_RequestorDescription_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_RequestorDescription_addGrpC_specs_1 = { + sizeof(struct spatem_ts_RequestorDescription_addGrpC), + offsetof(struct spatem_ts_RequestorDescription_addGrpC, _asn_ctx), + asn_MAP_spatem_ts_RequestorDescription_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_spatem_ts_RequestorDescription_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RequestorDescription_addGrpC = { + "RequestorDescription-addGrpC", + "RequestorDescription-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_RequestorDescription_addGrpC_tags_1, + sizeof(asn_DEF_spatem_ts_RequestorDescription_addGrpC_tags_1) + /sizeof(asn_DEF_spatem_ts_RequestorDescription_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RequestorDescription_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RequestorDescription_addGrpC_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_RequestorDescription_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_RequestorDescription_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RequestorDescription.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RequestorDescription.c new file mode 100644 index 000000000..c7a6587e2 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RequestorDescription.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_ts_regional_10[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regional_tags_10[] = { + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_regional_specs_10 = { + sizeof(struct spatem_ts_RequestorDescription__regional), + offsetof(struct spatem_ts_RequestorDescription__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatem_ts_regional_10 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_regional_tags_10, + sizeof(asn_DEF_spatem_ts_regional_tags_10) + /sizeof(asn_DEF_spatem_ts_regional_tags_10[0]) - 1, /* 1 */ + asn_DEF_spatem_ts_regional_tags_10, /* Same as above */ + sizeof(asn_DEF_spatem_ts_regional_tags_10) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_regional_10, + 1, /* Single element */ + &asn_SPC_spatem_ts_regional_specs_10 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_RequestorDescription_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_RequestorDescription, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RequestorDescription, type), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RequestorDescription, position), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RequestorDescription, name), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RequestorDescription, routeName), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RequestorDescription, transitStatus), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RequestorDescription, transitOccupancy), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RequestorDescription, transitSchedule), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RequestorDescription, regional), + (ASN_TAG_CLASS_CONTEXT | (8 << 2)), + 0, + &asn_DEF_spatem_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_spatem_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_spatem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_spatem_ts_RequestorDescription_oms_1[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_RequestorDescription_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_RequestorDescription_specs_1 = { + sizeof(struct spatem_ts_RequestorDescription), + offsetof(struct spatem_ts_RequestorDescription, _asn_ctx), + asn_MAP_spatem_ts_RequestorDescription_tag2el_1, + 9, /* Count of tags in the map */ + asn_MAP_spatem_ts_RequestorDescription_oms_1, /* Optional members */ + 8, 0, /* Root/Additions */ + 9, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RequestorDescription = { + "RequestorDescription", + "RequestorDescription", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_RequestorDescription_tags_1, + sizeof(asn_DEF_spatem_ts_RequestorDescription_tags_1) + /sizeof(asn_DEF_spatem_ts_RequestorDescription_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RequestorDescription_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RequestorDescription_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_RequestorDescription_1, + 9, /* Elements count */ + &asn_SPC_spatem_ts_RequestorDescription_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RequestorPositionVector.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RequestorPositionVector.c new file mode 100644 index 000000000..4f5b4e7e4 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RequestorPositionVector.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_RequestorPositionVector_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_RequestorPositionVector, position), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RequestorPositionVector, heading), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RequestorPositionVector, speed), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_RequestorPositionVector_oms_1[] = { 1, 2 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_RequestorPositionVector_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_RequestorPositionVector_specs_1 = { + sizeof(struct spatem_ts_RequestorPositionVector), + offsetof(struct spatem_ts_RequestorPositionVector, _asn_ctx), + asn_MAP_spatem_ts_RequestorPositionVector_tag2el_1, + 3, /* Count of tags in the map */ + asn_MAP_spatem_ts_RequestorPositionVector_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RequestorPositionVector = { + "RequestorPositionVector", + "RequestorPositionVector", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_RequestorPositionVector_tags_1, + sizeof(asn_DEF_spatem_ts_RequestorPositionVector_tags_1) + /sizeof(asn_DEF_spatem_ts_RequestorPositionVector_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RequestorPositionVector_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RequestorPositionVector_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_RequestorPositionVector_1, + 3, /* Elements count */ + &asn_SPC_spatem_ts_RequestorPositionVector_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RequestorType.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RequestorType.c new file mode 100644 index 000000000..efd782057 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RequestorType.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_RequestorType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_RequestorType, role), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RequestorType, subrole), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RequestorType, request), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RequestorType, iso3883), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RequestorType, hpmsType), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RequestorType, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_RequestorType_oms_1[] = { 1, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_RequestorType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_RequestorType_specs_1 = { + sizeof(struct spatem_ts_RequestorType), + offsetof(struct spatem_ts_RequestorType, _asn_ctx), + asn_MAP_spatem_ts_RequestorType_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_spatem_ts_RequestorType_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RequestorType = { + "RequestorType", + "RequestorType", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_RequestorType_tags_1, + sizeof(asn_DEF_spatem_ts_RequestorType_tags_1) + /sizeof(asn_DEF_spatem_ts_RequestorType_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RequestorType_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RequestorType_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_RequestorType_1, + 6, /* Elements count */ + &asn_SPC_spatem_ts_RequestorType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode.c new file mode 100644 index 000000000..1f00c5bbb --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode.h" + +int +spatem_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_spatem_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_spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode = { + "RescueAndRecoveryWorkInProgressSubCauseCode", + "RescueAndRecoveryWorkInProgressSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_RescueAndRecoveryWorkInProgressSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RestrictedTypes.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RestrictedTypes.c new file mode 100644 index 000000000..77f8ad857 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RestrictedTypes.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_RestrictedTypes_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_spatem_ts_StationType, + 0, + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + 0 + }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_RestrictedTypes_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_RestrictedTypes_specs_1 = { + sizeof(struct spatem_ts_RestrictedTypes), + offsetof(struct spatem_ts_RestrictedTypes, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RestrictedTypes = { + "RestrictedTypes", + "RestrictedTypes", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_RestrictedTypes_tags_1, + sizeof(asn_DEF_spatem_ts_RestrictedTypes_tags_1) + /sizeof(asn_DEF_spatem_ts_RestrictedTypes_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RestrictedTypes_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RestrictedTypes_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_RestrictedTypes_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_RestrictedTypes_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RestrictionAppliesTo.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RestrictionAppliesTo.c new file mode 100644 index 000000000..e9123eecf --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_RestrictionAppliesTo_specs_1 = { + asn_MAP_spatem_ts_RestrictionAppliesTo_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_RestrictionAppliesTo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RestrictionAppliesTo = { + "RestrictionAppliesTo", + "RestrictionAppliesTo", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_RestrictionAppliesTo_tags_1, + sizeof(asn_DEF_spatem_ts_RestrictionAppliesTo_tags_1) + /sizeof(asn_DEF_spatem_ts_RestrictionAppliesTo_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RestrictionAppliesTo_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RestrictionAppliesTo_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_RestrictionAppliesTo_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RestrictionClassAssignment.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RestrictionClassAssignment.c new file mode 100644 index 000000000..d6461f08e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RestrictionClassAssignment.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_RestrictionClassAssignment_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_RestrictionClassAssignment, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RestrictionClassAssignment, users), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_RestrictionClassAssignment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_RestrictionClassAssignment_specs_1 = { + sizeof(struct spatem_ts_RestrictionClassAssignment), + offsetof(struct spatem_ts_RestrictionClassAssignment, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_RestrictionClassAssignment = { + "RestrictionClassAssignment", + "RestrictionClassAssignment", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_RestrictionClassAssignment_tags_1, + sizeof(asn_DEF_spatem_ts_RestrictionClassAssignment_tags_1) + /sizeof(asn_DEF_spatem_ts_RestrictionClassAssignment_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RestrictionClassAssignment_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RestrictionClassAssignment_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_RestrictionClassAssignment_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_RestrictionClassAssignment_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RestrictionClassID.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RestrictionClassID.c new file mode 100644 index 000000000..c08d5067d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RestrictionClassID.h" + +int +spatem_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_spatem_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_spatem_ts_RestrictionClassID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RestrictionClassID = { + "RestrictionClassID", + "RestrictionClassID", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_RestrictionClassID_tags_1, + sizeof(asn_DEF_spatem_ts_RestrictionClassID_tags_1) + /sizeof(asn_DEF_spatem_ts_RestrictionClassID_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RestrictionClassID_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RestrictionClassID_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_RestrictionClassID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RestrictionClassList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RestrictionClassList.c new file mode 100644 index 000000000..4568ab3cb --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RestrictionClassList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_RestrictionClassList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_RestrictionClassList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_RestrictionClassList_specs_1 = { + sizeof(struct spatem_ts_RestrictionClassList), + offsetof(struct spatem_ts_RestrictionClassList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RestrictionClassList = { + "RestrictionClassList", + "RestrictionClassList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_RestrictionClassList_tags_1, + sizeof(asn_DEF_spatem_ts_RestrictionClassList_tags_1) + /sizeof(asn_DEF_spatem_ts_RestrictionClassList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RestrictionClassList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RestrictionClassList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_RestrictionClassList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_RestrictionClassList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RestrictionUserType-addGrpC.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RestrictionUserType-addGrpC.c new file mode 100644 index 000000000..57278c22c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RestrictionUserType-addGrpC.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_RestrictionUserType_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct spatem_ts_RestrictionUserType_addGrpC, emission), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RestrictionUserType_addGrpC, fuel), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_RestrictionUserType_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_RestrictionUserType_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_RestrictionUserType_addGrpC_specs_1 = { + sizeof(struct spatem_ts_RestrictionUserType_addGrpC), + offsetof(struct spatem_ts_RestrictionUserType_addGrpC, _asn_ctx), + asn_MAP_spatem_ts_RestrictionUserType_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_spatem_ts_RestrictionUserType_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RestrictionUserType_addGrpC = { + "RestrictionUserType-addGrpC", + "RestrictionUserType-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_RestrictionUserType_addGrpC_tags_1, + sizeof(asn_DEF_spatem_ts_RestrictionUserType_addGrpC_tags_1) + /sizeof(asn_DEF_spatem_ts_RestrictionUserType_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RestrictionUserType_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RestrictionUserType_addGrpC_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_RestrictionUserType_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_RestrictionUserType_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RestrictionUserType.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RestrictionUserType.c new file mode 100644 index 000000000..f0528f0aa --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RestrictionUserType.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_regional_3[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regional_tags_3[] = { + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_regional_specs_3 = { + sizeof(struct spatem_ts_RestrictionUserType__regional), + offsetof(struct spatem_ts_RestrictionUserType__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatem_ts_regional_3 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_regional_tags_3, + sizeof(asn_DEF_spatem_ts_regional_tags_3) + /sizeof(asn_DEF_spatem_ts_regional_tags_3[0]) - 1, /* 1 */ + asn_DEF_spatem_ts_regional_tags_3, /* Same as above */ + sizeof(asn_DEF_spatem_ts_regional_tags_3) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_regional_3, + 1, /* Single element */ + &asn_SPC_spatem_ts_regional_specs_3 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_RestrictionUserType_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_RestrictionUserType, choice.basicType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RestrictionUserType, choice.regional), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + 0, + &asn_DEF_spatem_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_spatem_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_spatem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_RestrictionUserType_specs_1 = { + sizeof(struct spatem_ts_RestrictionUserType), + offsetof(struct spatem_ts_RestrictionUserType, _asn_ctx), + offsetof(struct spatem_ts_RestrictionUserType, present), + sizeof(((struct spatem_ts_RestrictionUserType *)0)->present), + asn_MAP_spatem_ts_RestrictionUserType_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_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_spatem_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_spatem_ts_RestrictionUserType_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_RestrictionUserType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RestrictionUserTypeList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RestrictionUserTypeList.c new file mode 100644 index 000000000..e42f72ad8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RestrictionUserTypeList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_RestrictionUserTypeList_1[] = { + { ATF_POINTER, 0, 0, + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_spatem_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_spatem_ts_RestrictionUserTypeList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_RestrictionUserTypeList_specs_1 = { + sizeof(struct spatem_ts_RestrictionUserTypeList), + offsetof(struct spatem_ts_RestrictionUserTypeList, _asn_ctx), + 2, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RestrictionUserTypeList = { + "RestrictionUserTypeList", + "RestrictionUserTypeList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_RestrictionUserTypeList_tags_1, + sizeof(asn_DEF_spatem_ts_RestrictionUserTypeList_tags_1) + /sizeof(asn_DEF_spatem_ts_RestrictionUserTypeList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RestrictionUserTypeList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RestrictionUserTypeList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_RestrictionUserTypeList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_RestrictionUserTypeList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RoadLaneSetList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RoadLaneSetList.c new file mode 100644 index 000000000..c6d7fa02b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RoadLaneSetList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_RoadLaneSetList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_RoadLaneSetList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_RoadLaneSetList_specs_1 = { + sizeof(struct spatem_ts_RoadLaneSetList), + offsetof(struct spatem_ts_RoadLaneSetList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RoadLaneSetList = { + "RoadLaneSetList", + "RoadLaneSetList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_RoadLaneSetList_tags_1, + sizeof(asn_DEF_spatem_ts_RoadLaneSetList_tags_1) + /sizeof(asn_DEF_spatem_ts_RoadLaneSetList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RoadLaneSetList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RoadLaneSetList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_RoadLaneSetList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_RoadLaneSetList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RoadRegulatorID.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RoadRegulatorID.c new file mode 100644 index 000000000..99457cb20 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RoadRegulatorID.h" + +int +spatem_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_spatem_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_spatem_ts_RoadRegulatorID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RoadRegulatorID = { + "RoadRegulatorID", + "RoadRegulatorID", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_RoadRegulatorID_tags_1, + sizeof(asn_DEF_spatem_ts_RoadRegulatorID_tags_1) + /sizeof(asn_DEF_spatem_ts_RoadRegulatorID_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RoadRegulatorID_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RoadRegulatorID_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_RoadRegulatorID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RoadSegment.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RoadSegment.c new file mode 100644 index 000000000..895895498 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RoadSegment.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_ts_regional_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regional_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_regional_specs_9 = { + sizeof(struct spatem_ts_RoadSegment__regional), + offsetof(struct spatem_ts_RoadSegment__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatem_ts_regional_9 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_regional_tags_9, + sizeof(asn_DEF_spatem_ts_regional_tags_9) + /sizeof(asn_DEF_spatem_ts_regional_tags_9[0]) - 1, /* 1 */ + asn_DEF_spatem_ts_regional_tags_9, /* Same as above */ + sizeof(asn_DEF_spatem_ts_regional_tags_9) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_regional_9, + 1, /* Single element */ + &asn_SPC_spatem_ts_regional_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_RoadSegment_1[] = { + { ATF_POINTER, 1, offsetof(struct spatem_ts_RoadSegment, name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RoadSegment, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RoadSegment, revision), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RoadSegment, refPoint), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RoadSegment, laneWidth), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RoadSegment, speedLimits), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RoadSegment, roadLaneSet), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RoadSegment, regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_spatem_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_spatem_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_spatem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_spatem_ts_RoadSegment_oms_1[] = { 0, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_RoadSegment_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_RoadSegment_specs_1 = { + sizeof(struct spatem_ts_RoadSegment), + offsetof(struct spatem_ts_RoadSegment, _asn_ctx), + asn_MAP_spatem_ts_RoadSegment_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_spatem_ts_RoadSegment_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RoadSegment = { + "RoadSegment", + "RoadSegment", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_RoadSegment_tags_1, + sizeof(asn_DEF_spatem_ts_RoadSegment_tags_1) + /sizeof(asn_DEF_spatem_ts_RoadSegment_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RoadSegment_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RoadSegment_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_RoadSegment_1, + 8, /* Elements count */ + &asn_SPC_spatem_ts_RoadSegment_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RoadSegmentID.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RoadSegmentID.c new file mode 100644 index 000000000..7a9c5ca29 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RoadSegmentID.h" + +int +spatem_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_spatem_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_spatem_ts_RoadSegmentID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RoadSegmentID = { + "RoadSegmentID", + "RoadSegmentID", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_RoadSegmentID_tags_1, + sizeof(asn_DEF_spatem_ts_RoadSegmentID_tags_1) + /sizeof(asn_DEF_spatem_ts_RoadSegmentID_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RoadSegmentID_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RoadSegmentID_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_RoadSegmentID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RoadSegmentList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RoadSegmentList.c new file mode 100644 index 000000000..b2eb98791 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RoadSegmentList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_RoadSegmentList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_RoadSegmentList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_RoadSegmentList_specs_1 = { + sizeof(struct spatem_ts_RoadSegmentList), + offsetof(struct spatem_ts_RoadSegmentList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RoadSegmentList = { + "RoadSegmentList", + "RoadSegmentList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_RoadSegmentList_tags_1, + sizeof(asn_DEF_spatem_ts_RoadSegmentList_tags_1) + /sizeof(asn_DEF_spatem_ts_RoadSegmentList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RoadSegmentList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RoadSegmentList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_RoadSegmentList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_RoadSegmentList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RoadSegmentReferenceID.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RoadSegmentReferenceID.c new file mode 100644 index 000000000..779ef1bbe --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RoadSegmentReferenceID.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_RoadSegmentReferenceID_1[] = { + { ATF_POINTER, 1, offsetof(struct spatem_ts_RoadSegmentReferenceID, region), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_RoadSegmentReferenceID, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_RoadSegmentReferenceID_oms_1[] = { 0 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_RoadSegmentReferenceID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_RoadSegmentReferenceID_specs_1 = { + sizeof(struct spatem_ts_RoadSegmentReferenceID), + offsetof(struct spatem_ts_RoadSegmentReferenceID, _asn_ctx), + asn_MAP_spatem_ts_RoadSegmentReferenceID_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_spatem_ts_RoadSegmentReferenceID_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RoadSegmentReferenceID = { + "RoadSegmentReferenceID", + "RoadSegmentReferenceID", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_RoadSegmentReferenceID_tags_1, + sizeof(asn_DEF_spatem_ts_RoadSegmentReferenceID_tags_1) + /sizeof(asn_DEF_spatem_ts_RoadSegmentReferenceID_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RoadSegmentReferenceID_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RoadSegmentReferenceID_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_RoadSegmentReferenceID_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_RoadSegmentReferenceID_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RoadType.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RoadType.c new file mode 100644 index 000000000..5c8bfa899 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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) +static asn_per_constraints_t asn_PER_type_spatem_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_spatem_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_spatem_ts_RoadType_enum2value_1[] = { + 2, /* nonUrban-NoStructuralSeparationToOppositeLanes(2) */ + 3, /* nonUrban-WithStructuralSeparationToOppositeLanes(3) */ + 0, /* urban-NoStructuralSeparationToOppositeLanes(0) */ + 1 /* urban-WithStructuralSeparationToOppositeLanes(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_spatem_ts_RoadType_specs_1 = { + asn_MAP_spatem_ts_RoadType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_RoadType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RoadType = { + "RoadType", + "RoadType", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_RoadType_tags_1, + sizeof(asn_DEF_spatem_ts_RoadType_tags_1) + /sizeof(asn_DEF_spatem_ts_RoadType_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RoadType_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RoadType_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_RoadType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RoadwayCrownAngle.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RoadwayCrownAngle.c new file mode 100644 index 000000000..03cf2c678 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RoadwayCrownAngle.h" + +int +spatem_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_spatem_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_spatem_ts_RoadwayCrownAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RoadwayCrownAngle = { + "RoadwayCrownAngle", + "RoadwayCrownAngle", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_RoadwayCrownAngle_tags_1, + sizeof(asn_DEF_spatem_ts_RoadwayCrownAngle_tags_1) + /sizeof(asn_DEF_spatem_ts_RoadwayCrownAngle_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RoadwayCrownAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RoadwayCrownAngle_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_RoadwayCrownAngle_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RoadworksSubCauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_RoadworksSubCauseCode.c new file mode 100644 index 000000000..68d6ef156 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_RoadworksSubCauseCode.h" + +int +spatem_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_spatem_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_spatem_ts_RoadworksSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_RoadworksSubCauseCode = { + "RoadworksSubCauseCode", + "RoadworksSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_RoadworksSubCauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_RoadworksSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_RoadworksSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_RoadworksSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_RoadworksSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SPAT.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SPAT.c new file mode 100644 index 000000000..9befadb1d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SPAT.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_ts_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_regional_specs_5 = { + sizeof(struct spatem_ts_SPAT__regional), + offsetof(struct spatem_ts_SPAT__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatem_ts_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_regional_tags_5, + sizeof(asn_DEF_spatem_ts_regional_tags_5) + /sizeof(asn_DEF_spatem_ts_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_spatem_ts_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_spatem_ts_regional_tags_5) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_regional_5, + 1, /* Single element */ + &asn_SPC_spatem_ts_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_SPAT_1[] = { + { ATF_POINTER, 2, offsetof(struct spatem_ts_SPAT, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SPAT, name), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SPAT, intersections), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SPAT, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_spatem_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_spatem_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_spatem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_spatem_ts_SPAT_oms_1[] = { 0, 1, 3 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_SPAT_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_SPAT_specs_1 = { + sizeof(struct spatem_ts_SPAT), + offsetof(struct spatem_ts_SPAT, _asn_ctx), + asn_MAP_spatem_ts_SPAT_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_spatem_ts_SPAT_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SPAT = { + "SPAT", + "SPAT", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_SPAT_tags_1, + sizeof(asn_DEF_spatem_ts_SPAT_tags_1) + /sizeof(asn_DEF_spatem_ts_SPAT_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SPAT_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SPAT_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_SPAT_1, + 4, /* Elements count */ + &asn_SPC_spatem_ts_SPAT_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SPATEM.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SPATEM.c new file mode 100644 index 000000000..18a41a7e6 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SPATEM.c @@ -0,0 +1,93 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "SPATEM-PDU-Descriptions" + * found in "/input/SPATEM-PDU-Descriptions.asn" + * `asn1c -fcompound-names -fprefix=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SPATEM.h" + +static asn_TYPE_member_t asn_MBR_spatem_ts_SPATEM_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_SPATEM, header), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SPATEM, spat), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_ts_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 */ + "spat" + }, +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_SPATEM_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_ts_SPATEM_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* header */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* spat */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_SPATEM_specs_1 = { + sizeof(struct spatem_ts_SPATEM), + offsetof(struct spatem_ts_SPATEM, _asn_ctx), + asn_MAP_spatem_ts_SPATEM_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_spatem_ts_SPATEM = { + "SPATEM", + "SPATEM", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_SPATEM_tags_1, + sizeof(asn_DEF_spatem_ts_SPATEM_tags_1) + /sizeof(asn_DEF_spatem_ts_SPATEM_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SPATEM_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SPATEM_tags_1) + /sizeof(asn_DEF_spatem_ts_SPATEM_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + SEQUENCE_constraint + }, + asn_MBR_spatem_ts_SPATEM_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_SPATEM_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Scale-B12.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Scale-B12.c new file mode 100644 index 000000000..2fd3ba14a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Scale-B12.h" + +int +spatem_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_spatem_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_spatem_ts_Scale_B12_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_Scale_B12 = { + "Scale-B12", + "Scale-B12", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_Scale_B12_tags_1, + sizeof(asn_DEF_spatem_ts_Scale_B12_tags_1) + /sizeof(asn_DEF_spatem_ts_Scale_B12_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Scale_B12_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Scale_B12_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_Scale_B12_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SegmentAttributeXY.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SegmentAttributeXY.c new file mode 100644 index 000000000..87c249d4a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_SegmentAttributeXY_specs_1 = { + asn_MAP_spatem_ts_SegmentAttributeXY_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_SegmentAttributeXY_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SegmentAttributeXY = { + "SegmentAttributeXY", + "SegmentAttributeXY", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_SegmentAttributeXY_tags_1, + sizeof(asn_DEF_spatem_ts_SegmentAttributeXY_tags_1) + /sizeof(asn_DEF_spatem_ts_SegmentAttributeXY_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SegmentAttributeXY_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SegmentAttributeXY_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_SegmentAttributeXY_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SegmentAttributeXYList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SegmentAttributeXYList.c new file mode 100644 index 000000000..6577f07dc --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SegmentAttributeXYList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_SegmentAttributeXYList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_SegmentAttributeXYList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_SegmentAttributeXYList_specs_1 = { + sizeof(struct spatem_ts_SegmentAttributeXYList), + offsetof(struct spatem_ts_SegmentAttributeXYList, _asn_ctx), + 1, /* XER encoding is XMLValueList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SegmentAttributeXYList = { + "SegmentAttributeXYList", + "SegmentAttributeXYList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_SegmentAttributeXYList_tags_1, + sizeof(asn_DEF_spatem_ts_SegmentAttributeXYList_tags_1) + /sizeof(asn_DEF_spatem_ts_SegmentAttributeXYList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SegmentAttributeXYList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SegmentAttributeXYList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_SegmentAttributeXYList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_SegmentAttributeXYList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SemiAxisLength.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SemiAxisLength.c new file mode 100644 index 000000000..974d624db --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SemiAxisLength.h" + +int +spatem_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_spatem_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_spatem_ts_SemiAxisLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SemiAxisLength = { + "SemiAxisLength", + "SemiAxisLength", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_SemiAxisLength_tags_1, + sizeof(asn_DEF_spatem_ts_SemiAxisLength_tags_1) + /sizeof(asn_DEF_spatem_ts_SemiAxisLength_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SemiAxisLength_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SemiAxisLength_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_SemiAxisLength_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SemiMajorAxisAccuracy.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SemiMajorAxisAccuracy.c new file mode 100644 index 000000000..bbc2c1637 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SemiMajorAxisAccuracy.h" + +int +spatem_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_spatem_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_spatem_ts_SemiMajorAxisAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SemiMajorAxisAccuracy = { + "SemiMajorAxisAccuracy", + "SemiMajorAxisAccuracy", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_SemiMajorAxisAccuracy_tags_1, + sizeof(asn_DEF_spatem_ts_SemiMajorAxisAccuracy_tags_1) + /sizeof(asn_DEF_spatem_ts_SemiMajorAxisAccuracy_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SemiMajorAxisAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SemiMajorAxisAccuracy_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_SemiMajorAxisAccuracy_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SemiMajorAxisOrientation.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SemiMajorAxisOrientation.c new file mode 100644 index 000000000..0aee77c9f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SemiMajorAxisOrientation.h" + +int +spatem_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_spatem_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_spatem_ts_SemiMajorAxisOrientation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SemiMajorAxisOrientation = { + "SemiMajorAxisOrientation", + "SemiMajorAxisOrientation", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_SemiMajorAxisOrientation_tags_1, + sizeof(asn_DEF_spatem_ts_SemiMajorAxisOrientation_tags_1) + /sizeof(asn_DEF_spatem_ts_SemiMajorAxisOrientation_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SemiMajorAxisOrientation_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SemiMajorAxisOrientation_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_SemiMajorAxisOrientation_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SemiMinorAxisAccuracy.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SemiMinorAxisAccuracy.c new file mode 100644 index 000000000..b440f2a62 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SemiMinorAxisAccuracy.h" + +int +spatem_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_spatem_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_spatem_ts_SemiMinorAxisAccuracy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SemiMinorAxisAccuracy = { + "SemiMinorAxisAccuracy", + "SemiMinorAxisAccuracy", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_SemiMinorAxisAccuracy_tags_1, + sizeof(asn_DEF_spatem_ts_SemiMinorAxisAccuracy_tags_1) + /sizeof(asn_DEF_spatem_ts_SemiMinorAxisAccuracy_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SemiMinorAxisAccuracy_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SemiMinorAxisAccuracy_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_SemiMinorAxisAccuracy_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SequenceNumber.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SequenceNumber.c new file mode 100644 index 000000000..389b828d1 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SequenceNumber.h" + +int +spatem_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_spatem_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_spatem_ts_SequenceNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SequenceNumber = { + "SequenceNumber", + "SequenceNumber", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_SequenceNumber_tags_1, + sizeof(asn_DEF_spatem_ts_SequenceNumber_tags_1) + /sizeof(asn_DEF_spatem_ts_SequenceNumber_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SequenceNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SequenceNumber_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_SequenceNumber_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ServiceApplicationLimit.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ServiceApplicationLimit.c new file mode 100644 index 000000000..4a53ea53d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ServiceApplicationLimit.h" + +int +spatem_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_spatem_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_spatem_ts_ServiceApplicationLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ServiceApplicationLimit = { + "ServiceApplicationLimit", + "ServiceApplicationLimit", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_ServiceApplicationLimit_tags_1, + sizeof(asn_DEF_spatem_ts_ServiceApplicationLimit_tags_1) + /sizeof(asn_DEF_spatem_ts_ServiceApplicationLimit_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ServiceApplicationLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ServiceApplicationLimit_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_ServiceApplicationLimit_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ServiceNumber.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ServiceNumber.c new file mode 100644 index 000000000..77bb40347 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ServiceNumber.h" + +int +spatem_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_spatem_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_spatem_ts_ServiceNumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ServiceNumber = { + "ServiceNumber", + "ServiceNumber", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_ServiceNumber_tags_1, + sizeof(asn_DEF_spatem_ts_ServiceNumber_tags_1) + /sizeof(asn_DEF_spatem_ts_ServiceNumber_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ServiceNumber_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ServiceNumber_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_ServiceNumber_constraint + }, + 0, 0, /* No members */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalControlZone.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalControlZone.c new file mode 100644 index 000000000..5c7828686 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalControlZone.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_SignalControlZone_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_SignalControlZone, zone), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_SignalControlZone_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_ts_SignalControlZone_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* zone */ +}; +asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_SignalControlZone_specs_1 = { + sizeof(struct spatem_ts_SignalControlZone), + offsetof(struct spatem_ts_SignalControlZone, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_SignalControlZone = { + "SignalControlZone", + "SignalControlZone", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_SignalControlZone_tags_1, + sizeof(asn_DEF_spatem_ts_SignalControlZone_tags_1) + /sizeof(asn_DEF_spatem_ts_SignalControlZone_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SignalControlZone_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SignalControlZone_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_SignalControlZone_1, + 1, /* Elements count */ + &asn_SPC_spatem_ts_SignalControlZone_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalGroupID.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalGroupID.c new file mode 100644 index 000000000..0abccf31e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalGroupID.h" + +int +spatem_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_spatem_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_spatem_ts_SignalGroupID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalGroupID = { + "SignalGroupID", + "SignalGroupID", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_SignalGroupID_tags_1, + sizeof(asn_DEF_spatem_ts_SignalGroupID_tags_1) + /sizeof(asn_DEF_spatem_ts_SignalGroupID_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SignalGroupID_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SignalGroupID_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_SignalGroupID_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalHeadLocation.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalHeadLocation.c new file mode 100644 index 000000000..68d795063 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalHeadLocation.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_SignalHeadLocation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_SignalHeadLocation, nodeXY), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalHeadLocation, nodeZ), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalHeadLocation, signalGroupID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_SignalHeadLocation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_SignalHeadLocation_specs_1 = { + sizeof(struct spatem_ts_SignalHeadLocation), + offsetof(struct spatem_ts_SignalHeadLocation, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_SignalHeadLocation = { + "SignalHeadLocation", + "SignalHeadLocation", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_SignalHeadLocation_tags_1, + sizeof(asn_DEF_spatem_ts_SignalHeadLocation_tags_1) + /sizeof(asn_DEF_spatem_ts_SignalHeadLocation_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SignalHeadLocation_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SignalHeadLocation_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_SignalHeadLocation_1, + 3, /* Elements count */ + &asn_SPC_spatem_ts_SignalHeadLocation_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalHeadLocationList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalHeadLocationList.c new file mode 100644 index 000000000..425bead03 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalHeadLocationList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_SignalHeadLocationList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_SignalHeadLocationList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_SignalHeadLocationList_specs_1 = { + sizeof(struct spatem_ts_SignalHeadLocationList), + offsetof(struct spatem_ts_SignalHeadLocationList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalHeadLocationList = { + "SignalHeadLocationList", + "SignalHeadLocationList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_SignalHeadLocationList_tags_1, + sizeof(asn_DEF_spatem_ts_SignalHeadLocationList_tags_1) + /sizeof(asn_DEF_spatem_ts_SignalHeadLocationList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SignalHeadLocationList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SignalHeadLocationList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_SignalHeadLocationList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_SignalHeadLocationList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalRequest.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalRequest.c new file mode 100644 index 000000000..fdaeb6b68 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalRequest.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_ts_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_regional_specs_7 = { + sizeof(struct spatem_ts_SignalRequest__regional), + offsetof(struct spatem_ts_SignalRequest__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatem_ts_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_regional_tags_7, + sizeof(asn_DEF_spatem_ts_regional_tags_7) + /sizeof(asn_DEF_spatem_ts_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_spatem_ts_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_spatem_ts_regional_tags_7) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_regional_7, + 1, /* Single element */ + &asn_SPC_spatem_ts_regional_specs_7 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_SignalRequest_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_SignalRequest, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalRequest, requestID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalRequest, requestType), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalRequest, inBoundLane), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalRequest, outBoundLane), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalRequest, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_spatem_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_spatem_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_spatem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_spatem_ts_SignalRequest_oms_1[] = { 4, 5 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_SignalRequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_SignalRequest_specs_1 = { + sizeof(struct spatem_ts_SignalRequest), + offsetof(struct spatem_ts_SignalRequest, _asn_ctx), + asn_MAP_spatem_ts_SignalRequest_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_spatem_ts_SignalRequest_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalRequest = { + "SignalRequest", + "SignalRequest", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_SignalRequest_tags_1, + sizeof(asn_DEF_spatem_ts_SignalRequest_tags_1) + /sizeof(asn_DEF_spatem_ts_SignalRequest_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SignalRequest_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SignalRequest_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_SignalRequest_1, + 6, /* Elements count */ + &asn_SPC_spatem_ts_SignalRequest_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalRequestList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalRequestList.c new file mode 100644 index 000000000..b2f238f97 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalRequestList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_SignalRequestList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_SignalRequestList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_SignalRequestList_specs_1 = { + sizeof(struct spatem_ts_SignalRequestList), + offsetof(struct spatem_ts_SignalRequestList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalRequestList = { + "SignalRequestList", + "SignalRequestList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_SignalRequestList_tags_1, + sizeof(asn_DEF_spatem_ts_SignalRequestList_tags_1) + /sizeof(asn_DEF_spatem_ts_SignalRequestList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SignalRequestList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SignalRequestList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_SignalRequestList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_SignalRequestList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalRequestMessage.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalRequestMessage.c new file mode 100644 index 000000000..df576900f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalRequestMessage.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_ts_regional_7[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regional_tags_7[] = { + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_regional_specs_7 = { + sizeof(struct spatem_ts_SignalRequestMessage__regional), + offsetof(struct spatem_ts_SignalRequestMessage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatem_ts_regional_7 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_regional_tags_7, + sizeof(asn_DEF_spatem_ts_regional_tags_7) + /sizeof(asn_DEF_spatem_ts_regional_tags_7[0]) - 1, /* 1 */ + asn_DEF_spatem_ts_regional_tags_7, /* Same as above */ + sizeof(asn_DEF_spatem_ts_regional_tags_7) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_regional_7, + 1, /* Single element */ + &asn_SPC_spatem_ts_regional_specs_7 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_spatem_ts_SignalRequestMessage_1[] = { + { ATF_POINTER, 1, offsetof(struct spatem_ts_SignalRequestMessage, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalRequestMessage, second), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalRequestMessage, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalRequestMessage, requests), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalRequestMessage, requestor), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalRequestMessage, regional), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + 0, + &asn_DEF_spatem_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_spatem_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_spatem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_spatem_ts_SignalRequestMessage_oms_1[] = { 0, 2, 3, 5 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_SignalRequestMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_SignalRequestMessage_specs_1 = { + sizeof(struct spatem_ts_SignalRequestMessage), + offsetof(struct spatem_ts_SignalRequestMessage, _asn_ctx), + asn_MAP_spatem_ts_SignalRequestMessage_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_spatem_ts_SignalRequestMessage_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 6, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalRequestMessage = { + "SignalRequestMessage", + "SignalRequestMessage", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_SignalRequestMessage_tags_1, + sizeof(asn_DEF_spatem_ts_SignalRequestMessage_tags_1) + /sizeof(asn_DEF_spatem_ts_SignalRequestMessage_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SignalRequestMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SignalRequestMessage_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_SignalRequestMessage_1, + 6, /* Elements count */ + &asn_SPC_spatem_ts_SignalRequestMessage_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalRequestPackage.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalRequestPackage.c new file mode 100644 index 000000000..28dbefed4 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalRequestPackage.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_ts_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_regional_specs_6 = { + sizeof(struct spatem_ts_SignalRequestPackage__regional), + offsetof(struct spatem_ts_SignalRequestPackage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatem_ts_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_regional_tags_6, + sizeof(asn_DEF_spatem_ts_regional_tags_6) + /sizeof(asn_DEF_spatem_ts_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_spatem_ts_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_spatem_ts_regional_tags_6) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_regional_6, + 1, /* Single element */ + &asn_SPC_spatem_ts_regional_specs_6 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_SignalRequestPackage_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_SignalRequestPackage, request), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalRequestPackage, minute), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalRequestPackage, second), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalRequestPackage, duration), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalRequestPackage, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_spatem_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_spatem_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_spatem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_spatem_ts_SignalRequestPackage_oms_1[] = { 1, 2, 3, 4 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_SignalRequestPackage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_SignalRequestPackage_specs_1 = { + sizeof(struct spatem_ts_SignalRequestPackage), + offsetof(struct spatem_ts_SignalRequestPackage, _asn_ctx), + asn_MAP_spatem_ts_SignalRequestPackage_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_spatem_ts_SignalRequestPackage_oms_1, /* Optional members */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalRequestPackage = { + "SignalRequestPackage", + "SignalRequestPackage", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_SignalRequestPackage_tags_1, + sizeof(asn_DEF_spatem_ts_SignalRequestPackage_tags_1) + /sizeof(asn_DEF_spatem_ts_SignalRequestPackage_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SignalRequestPackage_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SignalRequestPackage_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_SignalRequestPackage_1, + 5, /* Elements count */ + &asn_SPC_spatem_ts_SignalRequestPackage_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalRequesterInfo.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalRequesterInfo.c new file mode 100644 index 000000000..65d03aa97 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalRequesterInfo.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_SignalRequesterInfo_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_SignalRequesterInfo, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalRequesterInfo, request), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalRequesterInfo, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalRequesterInfo, role), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalRequesterInfo, typeData), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_SignalRequesterInfo_oms_1[] = { 3, 4 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_SignalRequesterInfo_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_SignalRequesterInfo_specs_1 = { + sizeof(struct spatem_ts_SignalRequesterInfo), + offsetof(struct spatem_ts_SignalRequesterInfo, _asn_ctx), + asn_MAP_spatem_ts_SignalRequesterInfo_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_spatem_ts_SignalRequesterInfo_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalRequesterInfo = { + "SignalRequesterInfo", + "SignalRequesterInfo", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_SignalRequesterInfo_tags_1, + sizeof(asn_DEF_spatem_ts_SignalRequesterInfo_tags_1) + /sizeof(asn_DEF_spatem_ts_SignalRequesterInfo_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SignalRequesterInfo_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SignalRequesterInfo_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_SignalRequesterInfo_1, + 5, /* Elements count */ + &asn_SPC_spatem_ts_SignalRequesterInfo_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalStatus.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalStatus.c new file mode 100644 index 000000000..cb1956319 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalStatus.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_ts_regional_5[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regional_tags_5[] = { + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_regional_specs_5 = { + sizeof(struct spatem_ts_SignalStatus__regional), + offsetof(struct spatem_ts_SignalStatus__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatem_ts_regional_5 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_regional_tags_5, + sizeof(asn_DEF_spatem_ts_regional_tags_5) + /sizeof(asn_DEF_spatem_ts_regional_tags_5[0]) - 1, /* 1 */ + asn_DEF_spatem_ts_regional_tags_5, /* Same as above */ + sizeof(asn_DEF_spatem_ts_regional_tags_5) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_regional_5, + 1, /* Single element */ + &asn_SPC_spatem_ts_regional_specs_5 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_SignalStatus_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_SignalStatus, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalStatus, id), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalStatus, sigStatus), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalStatus, regional), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + 0, + &asn_DEF_spatem_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_spatem_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_spatem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_spatem_ts_SignalStatus_oms_1[] = { 3 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_SignalStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_SignalStatus_specs_1 = { + sizeof(struct spatem_ts_SignalStatus), + offsetof(struct spatem_ts_SignalStatus, _asn_ctx), + asn_MAP_spatem_ts_SignalStatus_tag2el_1, + 4, /* Count of tags in the map */ + asn_MAP_spatem_ts_SignalStatus_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalStatus = { + "SignalStatus", + "SignalStatus", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_SignalStatus_tags_1, + sizeof(asn_DEF_spatem_ts_SignalStatus_tags_1) + /sizeof(asn_DEF_spatem_ts_SignalStatus_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SignalStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SignalStatus_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_SignalStatus_1, + 4, /* Elements count */ + &asn_SPC_spatem_ts_SignalStatus_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalStatusList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalStatusList.c new file mode 100644 index 000000000..68eae679a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalStatusList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_SignalStatusList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_SignalStatusList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_SignalStatusList_specs_1 = { + sizeof(struct spatem_ts_SignalStatusList), + offsetof(struct spatem_ts_SignalStatusList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalStatusList = { + "SignalStatusList", + "SignalStatusList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_SignalStatusList_tags_1, + sizeof(asn_DEF_spatem_ts_SignalStatusList_tags_1) + /sizeof(asn_DEF_spatem_ts_SignalStatusList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SignalStatusList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SignalStatusList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_SignalStatusList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_SignalStatusList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalStatusMessage.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalStatusMessage.c new file mode 100644 index 000000000..b8c1189ce --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalStatusMessage.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_ts_regional_6[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regional_tags_6[] = { + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_regional_specs_6 = { + sizeof(struct spatem_ts_SignalStatusMessage__regional), + offsetof(struct spatem_ts_SignalStatusMessage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatem_ts_regional_6 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_regional_tags_6, + sizeof(asn_DEF_spatem_ts_regional_tags_6) + /sizeof(asn_DEF_spatem_ts_regional_tags_6[0]) - 1, /* 1 */ + asn_DEF_spatem_ts_regional_tags_6, /* Same as above */ + sizeof(asn_DEF_spatem_ts_regional_tags_6) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_regional_6, + 1, /* Single element */ + &asn_SPC_spatem_ts_regional_specs_6 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_spatem_ts_SignalStatusMessage_1[] = { + { ATF_POINTER, 1, offsetof(struct spatem_ts_SignalStatusMessage, timeStamp), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalStatusMessage, second), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalStatusMessage, sequenceNumber), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalStatusMessage, status), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalStatusMessage, regional), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + 0, + &asn_DEF_spatem_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_spatem_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_spatem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_spatem_ts_SignalStatusMessage_oms_1[] = { 0, 2, 4 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_SignalStatusMessage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_SignalStatusMessage_specs_1 = { + sizeof(struct spatem_ts_SignalStatusMessage), + offsetof(struct spatem_ts_SignalStatusMessage, _asn_ctx), + asn_MAP_spatem_ts_SignalStatusMessage_tag2el_1, + 5, /* Count of tags in the map */ + asn_MAP_spatem_ts_SignalStatusMessage_oms_1, /* Optional members */ + 3, 0, /* Root/Additions */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalStatusMessage = { + "SignalStatusMessage", + "SignalStatusMessage", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_SignalStatusMessage_tags_1, + sizeof(asn_DEF_spatem_ts_SignalStatusMessage_tags_1) + /sizeof(asn_DEF_spatem_ts_SignalStatusMessage_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SignalStatusMessage_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SignalStatusMessage_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_SignalStatusMessage_1, + 5, /* Elements count */ + &asn_SPC_spatem_ts_SignalStatusMessage_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalStatusPackage-addGrpC.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalStatusPackage-addGrpC.c new file mode 100644 index 000000000..fde8bb2dd --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalStatusPackage-addGrpC.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_SignalStatusPackage_addGrpC_1[] = { + { ATF_POINTER, 2, offsetof(struct spatem_ts_SignalStatusPackage_addGrpC, synchToSchedule), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalStatusPackage_addGrpC, rejectedReason), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_SignalStatusPackage_addGrpC_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_SignalStatusPackage_addGrpC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_SignalStatusPackage_addGrpC_specs_1 = { + sizeof(struct spatem_ts_SignalStatusPackage_addGrpC), + offsetof(struct spatem_ts_SignalStatusPackage_addGrpC, _asn_ctx), + asn_MAP_spatem_ts_SignalStatusPackage_addGrpC_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_spatem_ts_SignalStatusPackage_addGrpC_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalStatusPackage_addGrpC = { + "SignalStatusPackage-addGrpC", + "SignalStatusPackage-addGrpC", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_SignalStatusPackage_addGrpC_tags_1, + sizeof(asn_DEF_spatem_ts_SignalStatusPackage_addGrpC_tags_1) + /sizeof(asn_DEF_spatem_ts_SignalStatusPackage_addGrpC_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SignalStatusPackage_addGrpC_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SignalStatusPackage_addGrpC_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_SignalStatusPackage_addGrpC_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_SignalStatusPackage_addGrpC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalStatusPackage.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalStatusPackage.c new file mode 100644 index 000000000..702a157d4 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalStatusPackage.h" + +static int +memb_spatem_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_spatem_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_spatem_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_spatem_ts_regional_9[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_regional_tags_9[] = { + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_regional_specs_9 = { + sizeof(struct spatem_ts_SignalStatusPackage__regional), + offsetof(struct spatem_ts_SignalStatusPackage__regional, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_spatem_ts_regional_9 = { + "regional", + "regional", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_regional_tags_9, + sizeof(asn_DEF_spatem_ts_regional_tags_9) + /sizeof(asn_DEF_spatem_ts_regional_tags_9[0]) - 1, /* 1 */ + asn_DEF_spatem_ts_regional_tags_9, /* Same as above */ + sizeof(asn_DEF_spatem_ts_regional_tags_9) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_regional_9, + 1, /* Single element */ + &asn_SPC_spatem_ts_regional_specs_9 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_spatem_ts_SignalStatusPackage_1[] = { + { ATF_POINTER, 1, offsetof(struct spatem_ts_SignalStatusPackage, requester), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalStatusPackage, inboundOn), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalStatusPackage, outboundOn), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalStatusPackage, minute), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalStatusPackage, second), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalStatusPackage, duration), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalStatusPackage, status), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SignalStatusPackage, regional), + (ASN_TAG_CLASS_CONTEXT | (7 << 2)), + 0, + &asn_DEF_spatem_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_spatem_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_spatem_ts_regional_constraint_1 + }, + 0, 0, /* No default value */ + "regional" + }, +}; +static const int asn_MAP_spatem_ts_SignalStatusPackage_oms_1[] = { 0, 2, 3, 4, 5, 7 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_SignalStatusPackage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_SignalStatusPackage_specs_1 = { + sizeof(struct spatem_ts_SignalStatusPackage), + offsetof(struct spatem_ts_SignalStatusPackage, _asn_ctx), + asn_MAP_spatem_ts_SignalStatusPackage_tag2el_1, + 8, /* Count of tags in the map */ + asn_MAP_spatem_ts_SignalStatusPackage_oms_1, /* Optional members */ + 6, 0, /* Root/Additions */ + 8, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalStatusPackage = { + "SignalStatusPackage", + "SignalStatusPackage", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_SignalStatusPackage_tags_1, + sizeof(asn_DEF_spatem_ts_SignalStatusPackage_tags_1) + /sizeof(asn_DEF_spatem_ts_SignalStatusPackage_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SignalStatusPackage_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SignalStatusPackage_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_SignalStatusPackage_1, + 8, /* Elements count */ + &asn_SPC_spatem_ts_SignalStatusPackage_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalStatusPackageList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalStatusPackageList.c new file mode 100644 index 000000000..aea7e73a8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalStatusPackageList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_SignalStatusPackageList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_SignalStatusPackageList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_SignalStatusPackageList_specs_1 = { + sizeof(struct spatem_ts_SignalStatusPackageList), + offsetof(struct spatem_ts_SignalStatusPackageList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalStatusPackageList = { + "SignalStatusPackageList", + "SignalStatusPackageList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_SignalStatusPackageList_tags_1, + sizeof(asn_DEF_spatem_ts_SignalStatusPackageList_tags_1) + /sizeof(asn_DEF_spatem_ts_SignalStatusPackageList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SignalStatusPackageList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SignalStatusPackageList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_SignalStatusPackageList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_SignalStatusPackageList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalViolationSubCauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SignalViolationSubCauseCode.c new file mode 100644 index 000000000..703492560 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SignalViolationSubCauseCode.h" + +int +spatem_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_spatem_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_spatem_ts_SignalViolationSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SignalViolationSubCauseCode = { + "SignalViolationSubCauseCode", + "SignalViolationSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_SignalViolationSubCauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_SignalViolationSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SignalViolationSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SignalViolationSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_SignalViolationSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SlowVehicleSubCauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SlowVehicleSubCauseCode.c new file mode 100644 index 000000000..dd854a8c5 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SlowVehicleSubCauseCode.h" + +int +spatem_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_spatem_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_spatem_ts_SlowVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SlowVehicleSubCauseCode = { + "SlowVehicleSubCauseCode", + "SlowVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_SlowVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_SlowVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SlowVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SlowVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_SlowVehicleSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SpecialTransportType.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SpecialTransportType.c new file mode 100644 index 000000000..5dd2cb1a7 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SpecialTransportType.h" + +int +spatem_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) +static asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_SpecialTransportType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SpecialTransportType = { + "SpecialTransportType", + "SpecialTransportType", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_SpecialTransportType_tags_1, + sizeof(asn_DEF_spatem_ts_SpecialTransportType_tags_1) + /sizeof(asn_DEF_spatem_ts_SpecialTransportType_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SpecialTransportType_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SpecialTransportType_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_SpecialTransportType_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Speed.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Speed.c new file mode 100644 index 000000000..c2651c192 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Speed.h" + +static asn_TYPE_member_t asn_MBR_spatem_ts_Speed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_Speed, speedValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_Speed, speedConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_Speed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_ts_Speed_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* speedValue */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* speedConfidence */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_spatem_ts_Speed_specs_1 = { + sizeof(struct spatem_ts_Speed), + offsetof(struct spatem_ts_Speed, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_Speed = { + "Speed", + "Speed", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_Speed_tags_1, + sizeof(asn_DEF_spatem_ts_Speed_tags_1) + /sizeof(asn_DEF_spatem_ts_Speed_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Speed_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Speed_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_Speed_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_Speed_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SpeedAdvice.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SpeedAdvice.c new file mode 100644 index 000000000..7bce6843d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SpeedAdvice.h" + +int +spatem_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_spatem_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_spatem_ts_SpeedAdvice_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SpeedAdvice = { + "SpeedAdvice", + "SpeedAdvice", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_SpeedAdvice_tags_1, + sizeof(asn_DEF_spatem_ts_SpeedAdvice_tags_1) + /sizeof(asn_DEF_spatem_ts_SpeedAdvice_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SpeedAdvice_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SpeedAdvice_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_SpeedAdvice_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SpeedConfidence.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SpeedConfidence.c new file mode 100644 index 000000000..fe015f725 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SpeedConfidence.h" + +int +spatem_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_spatem_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_spatem_ts_SpeedConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SpeedConfidence = { + "SpeedConfidence", + "SpeedConfidence", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_SpeedConfidence_tags_1, + sizeof(asn_DEF_spatem_ts_SpeedConfidence_tags_1) + /sizeof(asn_DEF_spatem_ts_SpeedConfidence_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SpeedConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SpeedConfidence_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_SpeedConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SpeedConfidenceDSRC.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SpeedConfidenceDSRC.c new file mode 100644 index 000000000..b6280f033 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_SpeedConfidenceDSRC_specs_1 = { + asn_MAP_spatem_ts_SpeedConfidenceDSRC_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_SpeedConfidenceDSRC_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SpeedConfidenceDSRC = { + "SpeedConfidenceDSRC", + "SpeedConfidenceDSRC", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_SpeedConfidenceDSRC_tags_1, + sizeof(asn_DEF_spatem_ts_SpeedConfidenceDSRC_tags_1) + /sizeof(asn_DEF_spatem_ts_SpeedConfidenceDSRC_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SpeedConfidenceDSRC_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SpeedConfidenceDSRC_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_SpeedConfidenceDSRC_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SpeedLimit.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SpeedLimit.c new file mode 100644 index 000000000..30c0cf01f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SpeedLimit.h" + +int +spatem_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_spatem_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_spatem_ts_SpeedLimit_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SpeedLimit = { + "SpeedLimit", + "SpeedLimit", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_SpeedLimit_tags_1, + sizeof(asn_DEF_spatem_ts_SpeedLimit_tags_1) + /sizeof(asn_DEF_spatem_ts_SpeedLimit_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SpeedLimit_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SpeedLimit_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_SpeedLimit_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SpeedLimitList.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SpeedLimitList.c new file mode 100644 index 000000000..1e453859e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SpeedLimitList.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_SpeedLimitList_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_SpeedLimitList_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_spatem_ts_SpeedLimitList_specs_1 = { + sizeof(struct spatem_ts_SpeedLimitList), + offsetof(struct spatem_ts_SpeedLimitList, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SpeedLimitList = { + "SpeedLimitList", + "SpeedLimitList", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_SpeedLimitList_tags_1, + sizeof(asn_DEF_spatem_ts_SpeedLimitList_tags_1) + /sizeof(asn_DEF_spatem_ts_SpeedLimitList_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SpeedLimitList_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SpeedLimitList_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_SpeedLimitList_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_SpeedLimitList_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SpeedLimitType.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SpeedLimitType.c new file mode 100644 index 000000000..c549ee6eb --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_SpeedLimitType_specs_1 = { + asn_MAP_spatem_ts_SpeedLimitType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_SpeedLimitType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SpeedLimitType = { + "SpeedLimitType", + "SpeedLimitType", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_SpeedLimitType_tags_1, + sizeof(asn_DEF_spatem_ts_SpeedLimitType_tags_1) + /sizeof(asn_DEF_spatem_ts_SpeedLimitType_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SpeedLimitType_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SpeedLimitType_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_SpeedLimitType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SpeedValue.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SpeedValue.c new file mode 100644 index 000000000..2e150a7e5 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SpeedValue.h" + +int +spatem_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_spatem_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_spatem_ts_SpeedValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SpeedValue = { + "SpeedValue", + "SpeedValue", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_SpeedValue_tags_1, + sizeof(asn_DEF_spatem_ts_SpeedValue_tags_1) + /sizeof(asn_DEF_spatem_ts_SpeedValue_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SpeedValue_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SpeedValue_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_SpeedValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SpeedandHeadingandThrottleConfidence.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SpeedandHeadingandThrottleConfidence.c new file mode 100644 index 000000000..1ca8b5016 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SpeedandHeadingandThrottleConfidence.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_SpeedandHeadingandThrottleConfidence_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_SpeedandHeadingandThrottleConfidence, heading), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SpeedandHeadingandThrottleConfidence, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SpeedandHeadingandThrottleConfidence, throttle), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_SpeedandHeadingandThrottleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_SpeedandHeadingandThrottleConfidence_specs_1 = { + sizeof(struct spatem_ts_SpeedandHeadingandThrottleConfidence), + offsetof(struct spatem_ts_SpeedandHeadingandThrottleConfidence, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_SpeedandHeadingandThrottleConfidence = { + "SpeedandHeadingandThrottleConfidence", + "SpeedandHeadingandThrottleConfidence", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_SpeedandHeadingandThrottleConfidence_tags_1, + sizeof(asn_DEF_spatem_ts_SpeedandHeadingandThrottleConfidence_tags_1) + /sizeof(asn_DEF_spatem_ts_SpeedandHeadingandThrottleConfidence_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SpeedandHeadingandThrottleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SpeedandHeadingandThrottleConfidence_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_SpeedandHeadingandThrottleConfidence_1, + 3, /* Elements count */ + &asn_SPC_spatem_ts_SpeedandHeadingandThrottleConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_StartTime.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_StartTime.c new file mode 100644 index 000000000..58d26dbde --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_StartTime.h" + +int +spatem_ts_StartTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const spatem_ts_AviEriDateTime_t *st = (const spatem_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 spatem_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_spatem_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_spatem_ts_StartTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_StartTime = { + "StartTime", + "StartTime", + &asn_OP_OCTET_STRING, + asn_DEF_spatem_ts_StartTime_tags_1, + sizeof(asn_DEF_spatem_ts_StartTime_tags_1) + /sizeof(asn_DEF_spatem_ts_StartTime_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_StartTime_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_StartTime_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_StartTime_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_StationID.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_StationID.c new file mode 100644 index 000000000..945cf1033 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_StationID.h" + +int +spatem_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_spatem_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_spatem_ts_StationID_specs_1 = { + 0, 0, 0, 0, 0, + 0, /* Native long size */ + 1 /* Unsigned representation */ +}; +static const ber_tlv_tag_t asn_DEF_spatem_ts_StationID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_StationID = { + "StationID", + "StationID", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_StationID_tags_1, + sizeof(asn_DEF_spatem_ts_StationID_tags_1) + /sizeof(asn_DEF_spatem_ts_StationID_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_StationID_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_StationID_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_StationID_constraint + }, + 0, 0, /* No members */ + &asn_SPC_spatem_ts_StationID_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_StationType.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_StationType.c new file mode 100644 index 000000000..e51b4985f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_StationType.h" + +int +spatem_ts_StationType_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0L && value <= 255L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_ts_StationType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 8, 8, 0, 255 } /* (0..255) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_spatem_ts_StationType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_StationType = { + "StationType", + "StationType", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_StationType_tags_1, + sizeof(asn_DEF_spatem_ts_StationType_tags_1) + /sizeof(asn_DEF_spatem_ts_StationType_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_StationType_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_StationType_tags_1) + /sizeof(asn_DEF_spatem_ts_StationType_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_spatem_ts_StationType_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + spatem_ts_StationType_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_StationarySince.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_StationarySince.c new file mode 100644 index 000000000..54d492bc3 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_ts_StationarySince_value2enum_1[] = { + { 0, 15, "lessThan1Minute" }, + { 1, 16, "lessThan2Minutes" }, + { 2, 17, "lessThan15Minutes" }, + { 3, 23, "equalOrGreater15Minutes" } +}; +static const unsigned int asn_MAP_spatem_ts_StationarySince_enum2value_1[] = { + 3, /* equalOrGreater15Minutes(3) */ + 2, /* lessThan15Minutes(2) */ + 0, /* lessThan1Minute(0) */ + 1 /* lessThan2Minutes(1) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_spatem_ts_StationarySince_specs_1 = { + asn_MAP_spatem_ts_StationarySince_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_StationarySince_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_StationarySince = { + "StationarySince", + "StationarySince", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_StationarySince_tags_1, + sizeof(asn_DEF_spatem_ts_StationarySince_tags_1) + /sizeof(asn_DEF_spatem_ts_StationarySince_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_StationarySince_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_StationarySince_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_StationarySince_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_StationaryVehicleSubCauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_StationaryVehicleSubCauseCode.c new file mode 100644 index 000000000..27c470596 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_StationaryVehicleSubCauseCode.h" + +int +spatem_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_spatem_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_spatem_ts_StationaryVehicleSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_StationaryVehicleSubCauseCode = { + "StationaryVehicleSubCauseCode", + "StationaryVehicleSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_StationaryVehicleSubCauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_StationaryVehicleSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_StationaryVehicleSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_StationaryVehicleSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_StationaryVehicleSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SteeringWheelAngle.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SteeringWheelAngle.c new file mode 100644 index 000000000..697b3d9a7 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SteeringWheelAngle.h" + +static asn_TYPE_member_t asn_MBR_spatem_ts_SteeringWheelAngle_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_SteeringWheelAngle, steeringWheelAngleValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_SteeringWheelAngle, steeringWheelAngleConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_SteeringWheelAngle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_SteeringWheelAngle_specs_1 = { + sizeof(struct spatem_ts_SteeringWheelAngle), + offsetof(struct spatem_ts_SteeringWheelAngle, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_SteeringWheelAngle = { + "SteeringWheelAngle", + "SteeringWheelAngle", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_SteeringWheelAngle_tags_1, + sizeof(asn_DEF_spatem_ts_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_spatem_ts_SteeringWheelAngle_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SteeringWheelAngle_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SteeringWheelAngle_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_SteeringWheelAngle_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_SteeringWheelAngle_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SteeringWheelAngleConfidence.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SteeringWheelAngleConfidence.c new file mode 100644 index 000000000..5a55ab727 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SteeringWheelAngleConfidence.h" + +int +spatem_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_spatem_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_spatem_ts_SteeringWheelAngleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SteeringWheelAngleConfidence = { + "SteeringWheelAngleConfidence", + "SteeringWheelAngleConfidence", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_SteeringWheelAngleConfidence_tags_1, + sizeof(asn_DEF_spatem_ts_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_spatem_ts_SteeringWheelAngleConfidence_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SteeringWheelAngleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SteeringWheelAngleConfidence_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_SteeringWheelAngleConfidence_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SteeringWheelAngleValue.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SteeringWheelAngleValue.c new file mode 100644 index 000000000..9437cd3cf --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SteeringWheelAngleValue.h" + +int +spatem_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_spatem_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_spatem_ts_SteeringWheelAngleValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SteeringWheelAngleValue = { + "SteeringWheelAngleValue", + "SteeringWheelAngleValue", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_SteeringWheelAngleValue_tags_1, + sizeof(asn_DEF_spatem_ts_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_spatem_ts_SteeringWheelAngleValue_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SteeringWheelAngleValue_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SteeringWheelAngleValue_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_SteeringWheelAngleValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_StopTime.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_StopTime.c new file mode 100644 index 000000000..336b63082 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_StopTime.h" + +int +spatem_ts_StopTime_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const spatem_ts_AviEriDateTime_t *st = (const spatem_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 spatem_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_spatem_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_spatem_ts_StopTime_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_StopTime = { + "StopTime", + "StopTime", + &asn_OP_OCTET_STRING, + asn_DEF_spatem_ts_StopTime_tags_1, + sizeof(asn_DEF_spatem_ts_StopTime_tags_1) + /sizeof(asn_DEF_spatem_ts_StopTime_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_StopTime_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_StopTime_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_StopTime_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SubCauseCodeType.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_SubCauseCodeType.c new file mode 100644 index 000000000..d22e53d5b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_SubCauseCodeType.h" + +int +spatem_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_spatem_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_spatem_ts_SubCauseCodeType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_SubCauseCodeType = { + "SubCauseCodeType", + "SubCauseCodeType", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_SubCauseCodeType_tags_1, + sizeof(asn_DEF_spatem_ts_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_spatem_ts_SubCauseCodeType_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_SubCauseCodeType_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_SubCauseCodeType_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_SubCauseCodeType_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TaxCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TaxCode.c new file mode 100644 index 000000000..78cc1963b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_ts_TaxCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_TaxCode = { + "TaxCode", + "TaxCode", + &asn_OP_OCTET_STRING, + asn_DEF_spatem_ts_TaxCode_tags_1, + sizeof(asn_DEF_spatem_ts_TaxCode_tags_1) + /sizeof(asn_DEF_spatem_ts_TaxCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_TaxCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_TaxCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_coding/src/spatem_ts_Temperature.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Temperature.c new file mode 100644 index 000000000..65994d687 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Temperature.h" + +int +spatem_ts_Temperature_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= -60L && value <= 67L)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_spatem_ts_Temperature_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, -60, 67 } /* (-60..67) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +static const ber_tlv_tag_t asn_DEF_spatem_ts_Temperature_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_Temperature = { + "Temperature", + "Temperature", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_Temperature_tags_1, + sizeof(asn_DEF_spatem_ts_Temperature_tags_1) + /sizeof(asn_DEF_spatem_ts_Temperature_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Temperature_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Temperature_tags_1) + /sizeof(asn_DEF_spatem_ts_Temperature_tags_1[0]), /* 1 */ + { +#if !defined(ASN_DISABLE_OER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) + &asn_PER_type_spatem_ts_Temperature_constr_1, +#endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ +#if !defined(ASN_DISABLE_JER_SUPPORT) + 0, +#endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ + spatem_ts_Temperature_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TemporaryID.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TemporaryID.c new file mode 100644 index 000000000..1a1f1bce7 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_TemporaryID.h" + +int +spatem_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_spatem_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_spatem_ts_TemporaryID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_TemporaryID = { + "TemporaryID", + "TemporaryID", + &asn_OP_OCTET_STRING, + asn_DEF_spatem_ts_TemporaryID_tags_1, + sizeof(asn_DEF_spatem_ts_TemporaryID_tags_1) + /sizeof(asn_DEF_spatem_ts_TemporaryID_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_TemporaryID_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_TemporaryID_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_TemporaryID_constraint + }, + 0, 0, /* No members */ + &asn_SPC_OCTET_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ThrottleConfidence.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ThrottleConfidence.c new file mode 100644 index 000000000..a4e0680c0 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_ts_ThrottleConfidence_value2enum_1[] = { + { 0, 11, "unavailable" }, + { 1, 13, "prec10percent" }, + { 2, 12, "prec1percent" }, + { 3, 14, "prec0-5percent" } +}; +static const unsigned int asn_MAP_spatem_ts_ThrottleConfidence_enum2value_1[] = { + 3, /* prec0-5percent(3) */ + 1, /* prec10percent(1) */ + 2, /* prec1percent(2) */ + 0 /* unavailable(0) */ +}; +const asn_INTEGER_specifics_t asn_SPC_spatem_ts_ThrottleConfidence_specs_1 = { + asn_MAP_spatem_ts_ThrottleConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_ThrottleConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ThrottleConfidence = { + "ThrottleConfidence", + "ThrottleConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_ThrottleConfidence_tags_1, + sizeof(asn_DEF_spatem_ts_ThrottleConfidence_tags_1) + /sizeof(asn_DEF_spatem_ts_ThrottleConfidence_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ThrottleConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ThrottleConfidence_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_ThrottleConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TimeChangeDetails.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TimeChangeDetails.c new file mode 100644 index 000000000..0cebca35d --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_TimeChangeDetails.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_TimeChangeDetails_1[] = { + { ATF_POINTER, 1, offsetof(struct spatem_ts_TimeChangeDetails, startTime), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_TimeChangeDetails, minEndTime), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_TimeChangeDetails, maxEndTime), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_TimeChangeDetails, likelyTime), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_TimeChangeDetails, confidence), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_TimeChangeDetails, nextTime), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_TimeChangeDetails_oms_1[] = { 0, 2, 3, 4, 5 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_TimeChangeDetails_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_TimeChangeDetails_specs_1 = { + sizeof(struct spatem_ts_TimeChangeDetails), + offsetof(struct spatem_ts_TimeChangeDetails, _asn_ctx), + asn_MAP_spatem_ts_TimeChangeDetails_tag2el_1, + 6, /* Count of tags in the map */ + asn_MAP_spatem_ts_TimeChangeDetails_oms_1, /* Optional members */ + 5, 0, /* Root/Additions */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_TimeChangeDetails = { + "TimeChangeDetails", + "TimeChangeDetails", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_TimeChangeDetails_tags_1, + sizeof(asn_DEF_spatem_ts_TimeChangeDetails_tags_1) + /sizeof(asn_DEF_spatem_ts_TimeChangeDetails_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_TimeChangeDetails_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_TimeChangeDetails_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_TimeChangeDetails_1, + 6, /* Elements count */ + &asn_SPC_spatem_ts_TimeChangeDetails_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TimeConfidence.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TimeConfidence.c new file mode 100644 index 000000000..3b406ed01 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_TimeConfidence_specs_1 = { + asn_MAP_spatem_ts_TimeConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_TimeConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_TimeConfidence = { + "TimeConfidence", + "TimeConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_TimeConfidence_tags_1, + sizeof(asn_DEF_spatem_ts_TimeConfidence_tags_1) + /sizeof(asn_DEF_spatem_ts_TimeConfidence_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_TimeConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_TimeConfidence_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_TimeConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TimeIntervalConfidence.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TimeIntervalConfidence.c new file mode 100644 index 000000000..2daf471a9 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_TimeIntervalConfidence.h" + +int +spatem_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_spatem_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_spatem_ts_TimeIntervalConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_TimeIntervalConfidence = { + "TimeIntervalConfidence", + "TimeIntervalConfidence", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_TimeIntervalConfidence_tags_1, + sizeof(asn_DEF_spatem_ts_TimeIntervalConfidence_tags_1) + /sizeof(asn_DEF_spatem_ts_TimeIntervalConfidence_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_TimeIntervalConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_TimeIntervalConfidence_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_TimeIntervalConfidence_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TimeMark.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TimeMark.c new file mode 100644 index 000000000..82f8e6f02 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_TimeMark.h" + +int +spatem_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_spatem_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_spatem_ts_TimeMark_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_TimeMark = { + "TimeMark", + "TimeMark", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_TimeMark_tags_1, + sizeof(asn_DEF_spatem_ts_TimeMark_tags_1) + /sizeof(asn_DEF_spatem_ts_TimeMark_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_TimeMark_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_TimeMark_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_TimeMark_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TimeReference.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TimeReference.c new file mode 100644 index 000000000..d01071ba3 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_TimeReference.h" + +int +spatem_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_spatem_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_spatem_ts_TimeReference_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_TimeReference = { + "TimeReference", + "TimeReference", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_TimeReference_tags_1, + sizeof(asn_DEF_spatem_ts_TimeReference_tags_1) + /sizeof(asn_DEF_spatem_ts_TimeReference_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_TimeReference_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_TimeReference_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_TimeReference_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TimestampIts.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TimestampIts.c new file mode 100644 index 000000000..8ff58cd89 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_TimestampIts.h" + +int +spatem_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_spatem_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_spatem_ts_TimestampIts_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_TimestampIts = { + "TimestampIts", + "TimestampIts", + &asn_OP_INTEGER, + asn_DEF_spatem_ts_TimestampIts_tags_1, + sizeof(asn_DEF_spatem_ts_TimestampIts_tags_1) + /sizeof(asn_DEF_spatem_ts_TimestampIts_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_TimestampIts_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_TimestampIts_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_TimestampIts_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Traces.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Traces.c new file mode 100644 index 000000000..4ab59702b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Traces.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +static asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_Traces_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_spatem_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_spatem_ts_Traces_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_spatem_ts_Traces_specs_1 = { + sizeof(struct spatem_ts_Traces), + offsetof(struct spatem_ts_Traces, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_Traces = { + "Traces", + "Traces", + &asn_OP_SEQUENCE_OF, + asn_DEF_spatem_ts_Traces_tags_1, + sizeof(asn_DEF_spatem_ts_Traces_tags_1) + /sizeof(asn_DEF_spatem_ts_Traces_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Traces_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Traces_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_Traces_1, + 1, /* Single element */ + &asn_SPC_spatem_ts_Traces_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TrafficConditionSubCauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TrafficConditionSubCauseCode.c new file mode 100644 index 000000000..673ce9a0c --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_TrafficConditionSubCauseCode.h" + +int +spatem_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_spatem_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_spatem_ts_TrafficConditionSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_TrafficConditionSubCauseCode = { + "TrafficConditionSubCauseCode", + "TrafficConditionSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_TrafficConditionSubCauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_TrafficConditionSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_TrafficConditionSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_TrafficConditionSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_TrafficConditionSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TrafficRule.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TrafficRule.c new file mode 100644 index 000000000..0938b99b2 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_TrafficRule_specs_1 = { + asn_MAP_spatem_ts_TrafficRule_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_TrafficRule_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_TrafficRule = { + "TrafficRule", + "TrafficRule", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_TrafficRule_tags_1, + sizeof(asn_DEF_spatem_ts_TrafficRule_tags_1) + /sizeof(asn_DEF_spatem_ts_TrafficRule_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_TrafficRule_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_TrafficRule_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_TrafficRule_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TransitVehicleOccupancy.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TransitVehicleOccupancy.c new file mode 100644 index 000000000..f263f999a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_TransitVehicleOccupancy_specs_1 = { + asn_MAP_spatem_ts_TransitVehicleOccupancy_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_TransitVehicleOccupancy_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_TransitVehicleOccupancy = { + "TransitVehicleOccupancy", + "TransitVehicleOccupancy", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_TransitVehicleOccupancy_tags_1, + sizeof(asn_DEF_spatem_ts_TransitVehicleOccupancy_tags_1) + /sizeof(asn_DEF_spatem_ts_TransitVehicleOccupancy_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_TransitVehicleOccupancy_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_TransitVehicleOccupancy_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_TransitVehicleOccupancy_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TransitVehicleStatus.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TransitVehicleStatus.c new file mode 100644 index 000000000..568f6f8e3 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_TransitVehicleStatus.h" + +int +spatem_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_spatem_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_spatem_ts_TransitVehicleStatus_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (3 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_TransitVehicleStatus = { + "TransitVehicleStatus", + "TransitVehicleStatus", + &asn_OP_BIT_STRING, + asn_DEF_spatem_ts_TransitVehicleStatus_tags_1, + sizeof(asn_DEF_spatem_ts_TransitVehicleStatus_tags_1) + /sizeof(asn_DEF_spatem_ts_TransitVehicleStatus_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_TransitVehicleStatus_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_TransitVehicleStatus_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_TransitVehicleStatus_constraint + }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_BIT_STRING_specs /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TransmissionAndSpeed.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TransmissionAndSpeed.c new file mode 100644 index 000000000..8ed04c349 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_TransmissionAndSpeed.h" + +asn_TYPE_member_t asn_MBR_spatem_ts_TransmissionAndSpeed_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_TransmissionAndSpeed, transmisson), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_TransmissionAndSpeed, speed), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_TransmissionAndSpeed_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_TransmissionAndSpeed_specs_1 = { + sizeof(struct spatem_ts_TransmissionAndSpeed), + offsetof(struct spatem_ts_TransmissionAndSpeed, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_TransmissionAndSpeed = { + "TransmissionAndSpeed", + "TransmissionAndSpeed", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_TransmissionAndSpeed_tags_1, + sizeof(asn_DEF_spatem_ts_TransmissionAndSpeed_tags_1) + /sizeof(asn_DEF_spatem_ts_TransmissionAndSpeed_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_TransmissionAndSpeed_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_TransmissionAndSpeed_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_TransmissionAndSpeed_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_TransmissionAndSpeed_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TransmissionInterval.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TransmissionInterval.c new file mode 100644 index 000000000..0b07a89f7 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_TransmissionInterval.h" + +int +spatem_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_spatem_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_spatem_ts_TransmissionInterval_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_TransmissionInterval = { + "TransmissionInterval", + "TransmissionInterval", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_TransmissionInterval_tags_1, + sizeof(asn_DEF_spatem_ts_TransmissionInterval_tags_1) + /sizeof(asn_DEF_spatem_ts_TransmissionInterval_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_TransmissionInterval_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_TransmissionInterval_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_TransmissionInterval_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TransmissionState.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TransmissionState.c new file mode 100644 index 000000000..cfdbaf2f7 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_TransmissionState_specs_1 = { + asn_MAP_spatem_ts_TransmissionState_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_TransmissionState_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_TransmissionState = { + "TransmissionState", + "TransmissionState", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_TransmissionState_tags_1, + sizeof(asn_DEF_spatem_ts_TransmissionState_tags_1) + /sizeof(asn_DEF_spatem_ts_TransmissionState_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_TransmissionState_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_TransmissionState_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_TransmissionState_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TurningRadius.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_TurningRadius.c new file mode 100644 index 000000000..275c2e295 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_TurningRadius.h" + +int +spatem_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_spatem_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_spatem_ts_TurningRadius_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_TurningRadius = { + "TurningRadius", + "TurningRadius", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_TurningRadius_tags_1, + sizeof(asn_DEF_spatem_ts_TurningRadius_tags_1) + /sizeof(asn_DEF_spatem_ts_TurningRadius_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_TurningRadius_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_TurningRadius_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_TurningRadius_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VDS.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VDS.c new file mode 100644 index 000000000..f1dbd4d1e --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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 +spatem_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_spatem_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_spatem_ts_VDS_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_VDS = { + "VDS", + "VDS", + &asn_OP_IA5String, + asn_DEF_spatem_ts_VDS_tags_1, + sizeof(asn_DEF_spatem_ts_VDS_tags_1) + /sizeof(asn_DEF_spatem_ts_VDS_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_VDS_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_VDS_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_VDS_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ValidityDuration.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ValidityDuration.c new file mode 100644 index 000000000..370b0e6a8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ValidityDuration.h" + +int +spatem_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_spatem_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_spatem_ts_ValidityDuration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ValidityDuration = { + "ValidityDuration", + "ValidityDuration", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_ValidityDuration_tags_1, + sizeof(asn_DEF_spatem_ts_ValidityDuration_tags_1) + /sizeof(asn_DEF_spatem_ts_ValidityDuration_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ValidityDuration_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ValidityDuration_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_ValidityDuration_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VehicleBreakdownSubCauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VehicleBreakdownSubCauseCode.c new file mode 100644 index 000000000..70d263cce --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_VehicleBreakdownSubCauseCode.h" + +int +spatem_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_spatem_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_spatem_ts_VehicleBreakdownSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_VehicleBreakdownSubCauseCode = { + "VehicleBreakdownSubCauseCode", + "VehicleBreakdownSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_VehicleBreakdownSubCauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_VehicleBreakdownSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_VehicleBreakdownSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_VehicleBreakdownSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_VehicleBreakdownSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VehicleHeight.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VehicleHeight.c new file mode 100644 index 000000000..8e446d9e1 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_VehicleHeight.h" + +int +spatem_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_spatem_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_spatem_ts_VehicleHeight_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_VehicleHeight = { + "VehicleHeight", + "VehicleHeight", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_VehicleHeight_tags_1, + sizeof(asn_DEF_spatem_ts_VehicleHeight_tags_1) + /sizeof(asn_DEF_spatem_ts_VehicleHeight_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_VehicleHeight_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_VehicleHeight_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_VehicleHeight_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VehicleID.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VehicleID.c new file mode 100644 index 000000000..69d782a18 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_VehicleID.h" + +#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) +asn_per_constraints_t asn_PER_type_spatem_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_spatem_ts_VehicleID_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_VehicleID, choice.entityID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_VehicleID, choice.stationID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_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_spatem_ts_VehicleID_specs_1 = { + sizeof(struct spatem_ts_VehicleID), + offsetof(struct spatem_ts_VehicleID, _asn_ctx), + offsetof(struct spatem_ts_VehicleID, present), + sizeof(((struct spatem_ts_VehicleID *)0)->present), + asn_MAP_spatem_ts_VehicleID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_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_spatem_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_spatem_ts_VehicleID_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_VehicleID_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VehicleIdentification.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VehicleIdentification.c new file mode 100644 index 000000000..a3e6c41cd --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_VehicleIdentification.h" + +static asn_TYPE_member_t asn_MBR_spatem_ts_VehicleIdentification_1[] = { + { ATF_POINTER, 2, offsetof(struct spatem_ts_VehicleIdentification, wMInumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_VehicleIdentification, vDS), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_VehicleIdentification_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_spatem_ts_VehicleIdentification_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_VehicleIdentification_specs_1 = { + sizeof(struct spatem_ts_VehicleIdentification), + offsetof(struct spatem_ts_VehicleIdentification, _asn_ctx), + asn_MAP_spatem_ts_VehicleIdentification_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_spatem_ts_VehicleIdentification_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_VehicleIdentification = { + "VehicleIdentification", + "VehicleIdentification", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_VehicleIdentification_tags_1, + sizeof(asn_DEF_spatem_ts_VehicleIdentification_tags_1) + /sizeof(asn_DEF_spatem_ts_VehicleIdentification_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_VehicleIdentification_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_VehicleIdentification_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_VehicleIdentification_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_VehicleIdentification_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VehicleLength.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VehicleLength.c new file mode 100644 index 000000000..558cb1cbd --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_VehicleLength.h" + +static asn_TYPE_member_t asn_MBR_spatem_ts_VehicleLength_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_VehicleLength, vehicleLengthValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_VehicleLength, vehicleLengthConfidenceIndication), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_VehicleLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_VehicleLength_specs_1 = { + sizeof(struct spatem_ts_VehicleLength), + offsetof(struct spatem_ts_VehicleLength, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_VehicleLength = { + "VehicleLength", + "VehicleLength", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_VehicleLength_tags_1, + sizeof(asn_DEF_spatem_ts_VehicleLength_tags_1) + /sizeof(asn_DEF_spatem_ts_VehicleLength_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_VehicleLength_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_VehicleLength_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_VehicleLength_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_VehicleLength_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VehicleLengthConfidenceIndication.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VehicleLengthConfidenceIndication.c new file mode 100644 index 000000000..744dfc71f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_VehicleLengthConfidenceIndication_specs_1 = { + asn_MAP_spatem_ts_VehicleLengthConfidenceIndication_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_VehicleLengthConfidenceIndication_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_VehicleLengthConfidenceIndication = { + "VehicleLengthConfidenceIndication", + "VehicleLengthConfidenceIndication", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_VehicleLengthConfidenceIndication_tags_1, + sizeof(asn_DEF_spatem_ts_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_spatem_ts_VehicleLengthConfidenceIndication_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_VehicleLengthConfidenceIndication_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_VehicleLengthConfidenceIndication_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_VehicleLengthConfidenceIndication_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VehicleLengthValue.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VehicleLengthValue.c new file mode 100644 index 000000000..6fccd14d6 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_VehicleLengthValue.h" + +int +spatem_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_spatem_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_spatem_ts_VehicleLengthValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_VehicleLengthValue = { + "VehicleLengthValue", + "VehicleLengthValue", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_VehicleLengthValue_tags_1, + sizeof(asn_DEF_spatem_ts_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_spatem_ts_VehicleLengthValue_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_VehicleLengthValue_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_VehicleLengthValue_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_VehicleLengthValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VehicleMass.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VehicleMass.c new file mode 100644 index 000000000..f77f91f93 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_VehicleMass.h" + +int +spatem_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_spatem_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_spatem_ts_VehicleMass_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_VehicleMass = { + "VehicleMass", + "VehicleMass", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_VehicleMass_tags_1, + sizeof(asn_DEF_spatem_ts_VehicleMass_tags_1) + /sizeof(asn_DEF_spatem_ts_VehicleMass_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_VehicleMass_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_VehicleMass_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_VehicleMass_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VehicleRole.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VehicleRole.c new file mode 100644 index 000000000..f179e0b8f --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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) +static asn_per_constraints_t asn_PER_type_spatem_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_spatem_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_spatem_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) */ +}; +static const asn_INTEGER_specifics_t asn_SPC_spatem_ts_VehicleRole_specs_1 = { + asn_MAP_spatem_ts_VehicleRole_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_VehicleRole_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_VehicleRole = { + "VehicleRole", + "VehicleRole", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_VehicleRole_tags_1, + sizeof(asn_DEF_spatem_ts_VehicleRole_tags_1) + /sizeof(asn_DEF_spatem_ts_VehicleRole_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_VehicleRole_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_VehicleRole_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_VehicleRole_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VehicleType.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VehicleType.c new file mode 100644 index 000000000..f5a8204e8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_VehicleType_specs_1 = { + asn_MAP_spatem_ts_VehicleType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_VehicleType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_VehicleType = { + "VehicleType", + "VehicleType", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_VehicleType_tags_1, + sizeof(asn_DEF_spatem_ts_VehicleType_tags_1) + /sizeof(asn_DEF_spatem_ts_VehicleType_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_VehicleType_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_VehicleType_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_VehicleType_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VehicleWidth.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VehicleWidth.c new file mode 100644 index 000000000..1913beb8b --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_VehicleWidth.h" + +int +spatem_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_spatem_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_spatem_ts_VehicleWidth_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_VehicleWidth = { + "VehicleWidth", + "VehicleWidth", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_VehicleWidth_tags_1, + sizeof(asn_DEF_spatem_ts_VehicleWidth_tags_1) + /sizeof(asn_DEF_spatem_ts_VehicleWidth_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_VehicleWidth_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_VehicleWidth_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_VehicleWidth_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Velocity.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_Velocity.c new file mode 100644 index 000000000..84d80170a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_Velocity.h" + +int +spatem_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_spatem_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_spatem_ts_Velocity_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_Velocity = { + "Velocity", + "Velocity", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_Velocity_tags_1, + sizeof(asn_DEF_spatem_ts_Velocity_tags_1) + /sizeof(asn_DEF_spatem_ts_Velocity_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_Velocity_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_Velocity_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_Velocity_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VerticalAcceleration.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VerticalAcceleration.c new file mode 100644 index 000000000..72f052422 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_VerticalAcceleration.h" + +static asn_TYPE_member_t asn_MBR_spatem_ts_VerticalAcceleration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_VerticalAcceleration, verticalAccelerationValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_VerticalAcceleration, verticalAccelerationConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_VerticalAcceleration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_VerticalAcceleration_specs_1 = { + sizeof(struct spatem_ts_VerticalAcceleration), + offsetof(struct spatem_ts_VerticalAcceleration, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_VerticalAcceleration = { + "VerticalAcceleration", + "VerticalAcceleration", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_VerticalAcceleration_tags_1, + sizeof(asn_DEF_spatem_ts_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_spatem_ts_VerticalAcceleration_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_VerticalAcceleration_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_VerticalAcceleration_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_VerticalAcceleration_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_VerticalAcceleration_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VerticalAccelerationValue.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_VerticalAccelerationValue.c new file mode 100644 index 000000000..d9f8905ca --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_VerticalAccelerationValue.h" + +int +spatem_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_spatem_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_spatem_ts_VerticalAccelerationValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_VerticalAccelerationValue = { + "VerticalAccelerationValue", + "VerticalAccelerationValue", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_VerticalAccelerationValue_tags_1, + sizeof(asn_DEF_spatem_ts_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_spatem_ts_VerticalAccelerationValue_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_VerticalAccelerationValue_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_VerticalAccelerationValue_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_VerticalAccelerationValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_WMInumber.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_WMInumber.c new file mode 100644 index 000000000..4bc714131 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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 +spatem_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_spatem_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_spatem_ts_WMInumber_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (22 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_WMInumber = { + "WMInumber", + "WMInumber", + &asn_OP_IA5String, + asn_DEF_spatem_ts_WMInumber_tags_1, + sizeof(asn_DEF_spatem_ts_WMInumber_tags_1) + /sizeof(asn_DEF_spatem_ts_WMInumber_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_WMInumber_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_WMInumber_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_WMInumber_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_WaitOnStopline.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_WaitOnStopline.c new file mode 100644 index 000000000..669552a57 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_WaitOnStopline.h" + +/* + * This type is implemented using BOOLEAN, + * so here we adjust the DEF accordingly. + */ +static const ber_tlv_tag_t asn_DEF_spatem_ts_WaitOnStopline_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (1 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_WaitOnStopline = { + "WaitOnStopline", + "WaitOnStopline", + &asn_OP_BOOLEAN, + asn_DEF_spatem_ts_WaitOnStopline_tags_1, + sizeof(asn_DEF_spatem_ts_WaitOnStopline_tags_1) + /sizeof(asn_DEF_spatem_ts_WaitOnStopline_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_WaitOnStopline_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_WaitOnStopline_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_coding/src/spatem_ts_WheelBaseVehicle.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_WheelBaseVehicle.c new file mode 100644 index 000000000..8c03c39ec --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_WheelBaseVehicle.h" + +int +spatem_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_spatem_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_spatem_ts_WheelBaseVehicle_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_WheelBaseVehicle = { + "WheelBaseVehicle", + "WheelBaseVehicle", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_WheelBaseVehicle_tags_1, + sizeof(asn_DEF_spatem_ts_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_spatem_ts_WheelBaseVehicle_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_WheelBaseVehicle_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_WheelBaseVehicle_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_WheelBaseVehicle_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_WrongWayDrivingSubCauseCode.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_WrongWayDrivingSubCauseCode.c new file mode 100644 index 000000000..f1c5b9438 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_WrongWayDrivingSubCauseCode.h" + +int +spatem_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_spatem_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_spatem_ts_WrongWayDrivingSubCauseCode_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_WrongWayDrivingSubCauseCode = { + "WrongWayDrivingSubCauseCode", + "WrongWayDrivingSubCauseCode", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_WrongWayDrivingSubCauseCode_tags_1, + sizeof(asn_DEF_spatem_ts_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_ts_WrongWayDrivingSubCauseCode_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_WrongWayDrivingSubCauseCode_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_WrongWayDrivingSubCauseCode_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_WrongWayDrivingSubCauseCode_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_YawRate.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_YawRate.c new file mode 100644 index 000000000..b27fde7b5 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_YawRate.h" + +static asn_TYPE_member_t asn_MBR_spatem_ts_YawRate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct spatem_ts_YawRate, yawRateValue), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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 spatem_ts_YawRate, yawRateConfidence), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_spatem_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_spatem_ts_YawRate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_spatem_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_spatem_ts_YawRate_specs_1 = { + sizeof(struct spatem_ts_YawRate), + offsetof(struct spatem_ts_YawRate, _asn_ctx), + asn_MAP_spatem_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_spatem_ts_YawRate = { + "YawRate", + "YawRate", + &asn_OP_SEQUENCE, + asn_DEF_spatem_ts_YawRate_tags_1, + sizeof(asn_DEF_spatem_ts_YawRate_tags_1) + /sizeof(asn_DEF_spatem_ts_YawRate_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_YawRate_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_YawRate_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_ts_YawRate_1, + 2, /* Elements count */ + &asn_SPC_spatem_ts_YawRate_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_YawRateConfidence.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_YawRateConfidence.c new file mode 100644 index 000000000..cc4de0e54 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_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_spatem_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_spatem_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_spatem_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_spatem_ts_YawRateConfidence_specs_1 = { + asn_MAP_spatem_ts_YawRateConfidence_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_spatem_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_spatem_ts_YawRateConfidence_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_YawRateConfidence = { + "YawRateConfidence", + "YawRateConfidence", + &asn_OP_NativeEnumerated, + asn_DEF_spatem_ts_YawRateConfidence_tags_1, + sizeof(asn_DEF_spatem_ts_YawRateConfidence_tags_1) + /sizeof(asn_DEF_spatem_ts_YawRateConfidence_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_YawRateConfidence_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_YawRateConfidence_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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_spatem_ts_YawRateConfidence_specs_1 /* Additional specs */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_YawRateValue.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_YawRateValue.c new file mode 100644 index 000000000..025779e73 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_YawRateValue.h" + +int +spatem_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_spatem_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_spatem_ts_YawRateValue_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_YawRateValue = { + "YawRateValue", + "YawRateValue", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_YawRateValue_tags_1, + sizeof(asn_DEF_spatem_ts_YawRateValue_tags_1) + /sizeof(asn_DEF_spatem_ts_YawRateValue_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_YawRateValue_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_YawRateValue_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_YawRateValue_constraint + }, + 0, 0, /* Defined elsewhere */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ZoneLength.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_ts_ZoneLength.c new file mode 100644 index 000000000..0c101c024 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/spatem_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=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +#include "etsi_its_spatem_ts_coding/spatem_ts_ZoneLength.h" + +int +spatem_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_spatem_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_spatem_ts_ZoneLength_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_spatem_ts_ZoneLength = { + "ZoneLength", + "ZoneLength", + &asn_OP_NativeInteger, + asn_DEF_spatem_ts_ZoneLength_tags_1, + sizeof(asn_DEF_spatem_ts_ZoneLength_tags_1) + /sizeof(asn_DEF_spatem_ts_ZoneLength_tags_1[0]), /* 1 */ + asn_DEF_spatem_ts_ZoneLength_tags_1, /* Same as above */ + sizeof(asn_DEF_spatem_ts_ZoneLength_tags_1) + /sizeof(asn_DEF_spatem_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_spatem_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) */ + spatem_ts_ZoneLength_constraint + }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/src/uper_decoder.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/uper_decoder.c new file mode 100644 index 000000000..566749a40 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/uper_encoder.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/uper_encoder.c new file mode 100644 index 000000000..5d3eb4d23 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/uper_opentype.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/uper_opentype.c new file mode 100644 index 000000000..5a58ed83a --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_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_spatem_ts_coding/src/uper_support.c b/etsi_its_coding/etsi_its_spatem_ts_coding/src/uper_support.c new file mode 100644 index 000000000..5dba6d2d8 --- /dev/null +++ b/etsi_its_coding/etsi_its_spatem_ts_coding/src/uper_support.c @@ -0,0 +1,311 @@ +/* + * Copyright (c) 2005-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include +#include + +/* + * X.691-201508 #10.9 General rules for encoding a length determinant. + * Get the optionally constrained length "n" from the stream. + */ +ssize_t +uper_get_length(asn_per_data_t *pd, int ebits, size_t lower_bound, + int *repeat) { + ssize_t value; + + *repeat = 0; + + /* #11.9.4.1 Encoding if constrained (according to effective bits) */ + if(ebits >= 0 && ebits <= 16) { + value = per_get_few_bits(pd, ebits); + if(value >= 0) value += lower_bound; + return value; + } + + value = per_get_few_bits(pd, 8); + if((value & 0x80) == 0) { /* #11.9.3.6 */ + return (value & 0x7F); + } else if((value & 0x40) == 0) { /* #11.9.3.7 */ + /* bit 8 ... set to 1 and bit 7 ... set to zero */ + value = ((value & 0x3f) << 8) | per_get_few_bits(pd, 8); + return value; /* potential -1 from per_get_few_bits passes through. */ + } else if(value < 0) { + ASN_DEBUG("END of stream reached for PER"); + return -1; + } + value &= 0x3f; /* this is "m" from X.691, #11.9.3.8 */ + if(value < 1 || value > 4) { + return -1; /* Prohibited by #11.9.3.8 */ + } + *repeat = 1; + return (16384 * value); +} + +/* + * Get the normally small length "n". + * This procedure used to decode length of extensions bit-maps + * for SET and SEQUENCE types. + */ +ssize_t +uper_get_nslength(asn_per_data_t *pd) { + ssize_t length; + + ASN_DEBUG("Getting normally small length"); + + if(per_get_few_bits(pd, 1) == 0) { + length = per_get_few_bits(pd, 6) + 1; + if(length <= 0) return -1; + ASN_DEBUG("l=%d", (int)length); + return length; + } else { + int repeat; + length = uper_get_length(pd, -1, 0, &repeat); + if(length >= 0 && !repeat) return length; + return -1; /* Error, or do not support >16K extensions */ + } +} + +/* + * Get the normally small non-negative whole number. + * X.691, #10.6 + */ +ssize_t +uper_get_nsnnwn(asn_per_data_t *pd) { + ssize_t value; + + value = per_get_few_bits(pd, 7); + if(value & 64) { /* implicit (value < 0) */ + value &= 63; + value <<= 2; + value |= per_get_few_bits(pd, 2); + if(value & 128) /* implicit (value < 0) */ + return -1; + if(value == 0) + return 0; + if(value >= 3) + return -1; + value = per_get_few_bits(pd, 8 * value); + return value; + } + + return value; +} + +/* + * X.691-11/2008, #11.6 + * Encoding of a normally small non-negative whole number + */ +int +uper_put_nsnnwn(asn_per_outp_t *po, int n) { + int bytes; + + if(n <= 63) { + if(n < 0) return -1; + return per_put_few_bits(po, n, 7); + } + if(n < 256) + bytes = 1; + else if(n < 65536) + bytes = 2; + else if(n < 256 * 65536) + bytes = 3; + else + return -1; /* This is not a "normally small" value */ + if(per_put_few_bits(po, bytes, 8)) + return -1; + + return per_put_few_bits(po, n, 8 * bytes); +} + + +/* X.691-2008/11, #11.5.6 -> #11.3 */ +int uper_get_constrained_whole_number(asn_per_data_t *pd, uintmax_t *out_value, int nbits) { + uintmax_t lhalf; /* Lower half of the number*/ + intmax_t half; + + if(nbits <= 31) { + half = per_get_few_bits(pd, nbits); + if(half < 0) return -1; + *out_value = half; + return 0; + } + + if((size_t)nbits > 8 * sizeof(*out_value)) + return -1; /* RANGE */ + + half = per_get_few_bits(pd, 31); + if(half < 0) return -1; + + if(uper_get_constrained_whole_number(pd, &lhalf, nbits - 31)) + return -1; + + *out_value = ((uintmax_t)half << (nbits - 31)) | lhalf; + return 0; +} + + +/* X.691-2008/11, #11.5.6 -> #11.3 */ +int +uper_put_constrained_whole_number_u(asn_per_outp_t *po, uintmax_t v, + int nbits) { + if(nbits <= 31) { + return per_put_few_bits(po, v, nbits); + } else { + /* Put higher portion first, followed by lower 31-bit */ + if(uper_put_constrained_whole_number_u(po, v >> 31, nbits - 31)) + return -1; + return per_put_few_bits(po, v, 31); + } +} + +/* + * X.691 (08/2015) #11.9 "General rules for encoding a length determinant" + * Put the length "n" (or part of it) into the stream. + */ +ssize_t +uper_put_length(asn_per_outp_t *po, size_t length, int *need_eom) { + int dummy = 0; + if(!need_eom) need_eom = &dummy; + + if(length <= 127) { /* #11.9.3.6 */ + *need_eom = 0; + return per_put_few_bits(po, length, 8) + ? -1 : (ssize_t)length; + } else if(length < 16384) { /* #10.9.3.7 */ + *need_eom = 0; + return per_put_few_bits(po, length|0x8000, 16) + ? -1 : (ssize_t)length; + } + + *need_eom = 0 == (length & 16383); + length >>= 14; + if(length > 4) { + *need_eom = 0; + length = 4; + } + + return per_put_few_bits(po, 0xC0 | length, 8) + ? -1 : (ssize_t)(length << 14); + +} + + +/* + * Put the normally small length "n" into the stream. + * This procedure used to encode length of extensions bit-maps + * for SET and SEQUENCE types. + */ +int +uper_put_nslength(asn_per_outp_t *po, size_t length) { + if(length <= 64) { + /* #11.9.3.4 */ + if(length == 0) return -1; + return per_put_few_bits(po, length - 1, 7) ? -1 : 0; + } else { + int need_eom = 0; + if(uper_put_length(po, length, &need_eom) != (ssize_t)length + || need_eom) { + /* This might happen in case of >16K extensions */ + return -1; + } + } + + return 0; +} + +static int +per__imax_range(intmax_t lb, intmax_t ub, uintmax_t *range_r) { + uintmax_t bounds_range; + if((ub < 0) == (lb < 0)) { + bounds_range = ub - lb; + } else if(lb < 0) { + assert(ub >= 0); + bounds_range = 1 + ((uintmax_t)ub + (uintmax_t)-(lb + 1)); + } else { + assert(!"Unreachable"); + return -1; + } + *range_r = bounds_range; + return 0; +} + +int +per_imax_range_rebase(intmax_t v, intmax_t lb, intmax_t ub, uintmax_t *output) { + uintmax_t range; + + assert(lb <= ub); + + if(v < lb || v > ub || per__imax_range(lb, ub, &range) < 0) { + /* Range error. */ + return -1; + } + + /* + * Fundamentally what we're doing is returning (v-lb). + * However, this triggers undefined behavior when the word width + * of signed (v) is the same as the size of unsigned (*output). + * In practice, it triggers the UndefinedSanitizer. Therefore we shall + * compute the ranges accurately to avoid C's undefined behavior. + */ + if((v < 0) == (lb < 0)) { + *output = v-lb; + return 0; + } else if(v < 0) { + uintmax_t rebased = 1 + (uintmax_t)-(v+1) + (uintmax_t)lb; + assert(rebased <= range); /* By construction */ + *output = rebased; + return 0; + } else if(lb < 0) { + uintmax_t rebased = 1 + (uintmax_t)-(lb+1) + (uintmax_t)v; + assert(rebased <= range); /* By construction */ + *output = rebased; + return 0; + } else { + assert(!"Unreachable"); + return -1; + } +} + +int +per_long_range_rebase(long v, intmax_t lb, intmax_t ub, unsigned long *output) { + uintmax_t tmp = *output; + int rc = per_imax_range_rebase((intmax_t)v, lb, ub, &tmp); + *output = tmp; + return rc; +} + +int +per_imax_range_unrebase(uintmax_t inp, intmax_t lb, intmax_t ub, intmax_t *outp) { + uintmax_t range; + + if(per__imax_range(lb, ub, &range) != 0) { + return -1; + } + + if(inp > range) { + /* + * We can encode something in the given number of bits that technically + * exceeds the range. This is an avenue for security errors, + * so we don't allow that. + */ + return -1; + } + + if(inp <= INTMAX_MAX) { + *outp = (intmax_t)inp + lb; + } else { + *outp = (lb + INTMAX_MAX + 1) + (intmax_t)((inp - INTMAX_MAX) - 1); + } + + return 0; +} + +int +per_long_range_unrebase(unsigned long inp, intmax_t lb, intmax_t ub, long *outp) { + intmax_t tmp = *outp; + int rc = per_imax_range_unrebase((uintmax_t)inp, lb, ub, &tmp); + *outp = tmp; + return rc; +} diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertAccelerationConfidence.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertAccelerationConfidence.h index 0bc3168b2..c6b5cf31e 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertAccelerationConfidence.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertAccelerationConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertAccelerationControl.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertAccelerationControl.h index 668ec8700..3af242235 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertAccelerationControl.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertAccelerationControl.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertAltitude.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertAltitude.h index 0ca4987ca..59d77ae43 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertAltitude.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertAltitude.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertAltitudeConfidence.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertAltitudeConfidence.h index 2fedc6ff1..a5be02b78 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertAltitudeConfidence.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertAltitudeConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertAltitudeValue.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertAltitudeValue.h index 5ee877748..17635f96b 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertAltitudeValue.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertAltitudeValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertBasicContainer.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertBasicContainer.h index 892c2e31c..0e14d2607 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertBasicContainer.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertBasicContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertBasicVehicleContainerHighFrequency.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertBasicVehicleContainerHighFrequency.h index 28ddbcfe4..897b68144 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertBasicVehicleContainerHighFrequency.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertBasicVehicleContainerHighFrequency.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertBasicVehicleContainerLowFrequency.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertBasicVehicleContainerLowFrequency.h index 98b3ef565..808caf6a9 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertBasicVehicleContainerLowFrequency.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertBasicVehicleContainerLowFrequency.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCAM.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCAM.h index d3acb8fb2..dcf552a62 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCAM.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCAM.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCamParameters.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCamParameters.h index 1e43ff4f1..679ea52f7 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCamParameters.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCamParameters.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCauseCode.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCauseCode.h index 442a87f87..07bfecb6f 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCauseCodeType.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCauseCodeType.h index 85e48a945..736ef41a3 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCauseCodeType.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCauseCodeType.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCenDsrcTollingZone.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCenDsrcTollingZone.h index 4dbe7ae3e..62dfb2593 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCenDsrcTollingZone.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCenDsrcTollingZone.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCenDsrcTollingZoneID.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCenDsrcTollingZoneID.h index 6bd12fd82..89d615c8b 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCenDsrcTollingZoneID.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCenDsrcTollingZoneID.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertClosedLanes.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertClosedLanes.h index 133b49004..8c61f86ec 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertClosedLanes.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertClosedLanes.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCoopAwareness.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCoopAwareness.h index e7513f2ac..088106643 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCoopAwareness.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCoopAwareness.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCurvature.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCurvature.h index a35b087fd..a10a36a53 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCurvature.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCurvature.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCurvatureCalculationMode.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCurvatureCalculationMode.h index 4621ce482..01c688031 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCurvatureCalculationMode.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCurvatureCalculationMode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCurvatureConfidence.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCurvatureConfidence.h index 78f398e56..f1a88f3e6 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCurvatureConfidence.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCurvatureConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCurvatureValue.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCurvatureValue.h index 62deaf6a5..50c5c6669 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCurvatureValue.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertCurvatureValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDangerousGoodsBasic.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDangerousGoodsBasic.h index cc125b84e..99d4e2a54 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDangerousGoodsBasic.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDangerousGoodsBasic.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDangerousGoodsContainer.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDangerousGoodsContainer.h index 38186404a..0279a9c92 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDangerousGoodsContainer.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDangerousGoodsContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDeltaAltitude.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDeltaAltitude.h index 07b8931f7..a582b5f39 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDeltaAltitude.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDeltaAltitude.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDeltaLatitude.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDeltaLatitude.h index 97bce7ddd..4831e9d6d 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDeltaLatitude.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDeltaLatitude.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDeltaLongitude.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDeltaLongitude.h index cbccfa3ac..63fc30cda 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDeltaLongitude.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDeltaLongitude.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDeltaReferencePosition.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDeltaReferencePosition.h index b8625a79d..1da552795 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDeltaReferencePosition.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDeltaReferencePosition.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDriveDirection.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDriveDirection.h index e293bd1b4..77ae55496 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDriveDirection.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDriveDirection.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDrivingLaneStatus.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDrivingLaneStatus.h index c37cdd686..b6a9e70b9 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDrivingLaneStatus.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertDrivingLaneStatus.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertEmbarkationStatus.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertEmbarkationStatus.h index 82bdb3944..35b845eca 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertEmbarkationStatus.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertEmbarkationStatus.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertEmergencyContainer.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertEmergencyContainer.h index a6f4a6175..7c9f9c0cc 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertEmergencyContainer.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertEmergencyContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertEmergencyPriority.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertEmergencyPriority.h index dbf94e5d8..4dd7e1b56 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertEmergencyPriority.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertEmergencyPriority.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertExteriorLights.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertExteriorLights.h index 40e043d32..767cfd437 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertExteriorLights.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertExteriorLights.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertGenerationDeltaTime.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertGenerationDeltaTime.h index 694e0957e..63730d3b0 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertGenerationDeltaTime.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertGenerationDeltaTime.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertHardShoulderStatus.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertHardShoulderStatus.h index ae6df88c2..a87a7ccd9 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertHardShoulderStatus.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertHardShoulderStatus.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertHeading.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertHeading.h index 99421b778..f9d39e837 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertHeading.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertHeading.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertHeadingConfidence.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertHeadingConfidence.h index 319bf6c39..c44943691 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertHeadingConfidence.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertHeadingConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertHeadingValue.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertHeadingValue.h index 152633830..da77e8c20 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertHeadingValue.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertHeadingValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertHighFrequencyContainer.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertHighFrequencyContainer.h index 5ac8f412d..43e54071e 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertHighFrequencyContainer.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertHighFrequencyContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertItsPduHeader.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertItsPduHeader.h index 5316b798b..2945c05d6 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertItsPduHeader.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertItsPduHeader.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLanePosition.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLanePosition.h index 5a03c49c6..0fd5ad7f3 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLanePosition.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLanePosition.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLateralAcceleration.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLateralAcceleration.h index d65c3d240..d3792a460 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLateralAcceleration.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLateralAcceleration.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLateralAccelerationValue.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLateralAccelerationValue.h index 586580802..031d44174 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLateralAccelerationValue.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLateralAccelerationValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLatitude.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLatitude.h index ad7fd5d04..359e11084 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLatitude.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLatitude.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLightBarSirenInUse.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLightBarSirenInUse.h index 6ef76c4c9..923887312 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLightBarSirenInUse.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLightBarSirenInUse.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLongitude.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLongitude.h index 5a7abf1bd..a64eed938 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLongitude.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLongitude.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLongitudinalAcceleration.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLongitudinalAcceleration.h index 1a3b41dec..4035424e3 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLongitudinalAcceleration.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLongitudinalAcceleration.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLongitudinalAccelerationValue.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLongitudinalAccelerationValue.h index 51af7912c..5da58bb88 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLongitudinalAccelerationValue.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLongitudinalAccelerationValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLowFrequencyContainer.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLowFrequencyContainer.h index d58c22b55..ba665224c 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLowFrequencyContainer.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertLowFrequencyContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPathDeltaTime.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPathDeltaTime.h index aea028c7e..246d2b023 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPathDeltaTime.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPathDeltaTime.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPathHistory.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPathHistory.h index d4aa70240..7b88cabea 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPathHistory.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPathHistory.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -29,13 +28,16 @@ SOFTWARE. #include +#include #include -#include +#include #include #ifdef ROS1 +#include #include namespace cam_msgs = etsi_its_cam_msgs; #else +#include #include namespace cam_msgs = etsi_its_cam_msgs::msg; #endif diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPathPoint.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPathPoint.h index 60b4ba649..f413fdf35 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPathPoint.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPathPoint.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPerformanceClass.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPerformanceClass.h index 6e4651d91..dd448ed37 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPerformanceClass.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPerformanceClass.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPosConfidenceEllipse.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPosConfidenceEllipse.h index 8b8937c3b..6b7e1aa87 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPosConfidenceEllipse.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPosConfidenceEllipse.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertProtectedCommunicationZone.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertProtectedCommunicationZone.h index f9e6e14e9..abb5a18f6 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertProtectedCommunicationZone.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertProtectedCommunicationZone.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertProtectedCommunicationZonesRSU.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertProtectedCommunicationZonesRSU.h index 382522502..69fd23850 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertProtectedCommunicationZonesRSU.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertProtectedCommunicationZonesRSU.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -29,13 +28,16 @@ SOFTWARE. #include +#include #include +#include #include -#include #ifdef ROS1 +#include #include namespace cam_msgs = etsi_its_cam_msgs; #else +#include #include namespace cam_msgs = etsi_its_cam_msgs::msg; #endif diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertProtectedZoneID.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertProtectedZoneID.h index 9ca70d454..457aedcc7 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertProtectedZoneID.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertProtectedZoneID.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertProtectedZoneRadius.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertProtectedZoneRadius.h index 20fdd2f8b..8ab1c67d0 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertProtectedZoneRadius.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertProtectedZoneRadius.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertProtectedZoneType.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertProtectedZoneType.h index 30db048f9..8c7c2a564 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertProtectedZoneType.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertProtectedZoneType.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPtActivation.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPtActivation.h index 8b2737844..0e9fa3eff 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPtActivation.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPtActivation.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPtActivationData.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPtActivationData.h index 4e08fd0e8..437adc27a 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPtActivationData.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPtActivationData.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPtActivationType.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPtActivationType.h index d63ec3afe..8af2ab235 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPtActivationType.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPtActivationType.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPublicTransportContainer.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPublicTransportContainer.h index ec00a8ffc..725c121b0 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPublicTransportContainer.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertPublicTransportContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertRSUContainerHighFrequency.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertRSUContainerHighFrequency.h index 05d690a90..70f347380 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertRSUContainerHighFrequency.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertRSUContainerHighFrequency.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertReferencePosition.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertReferencePosition.h index ab66861f1..13f0b57e6 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertReferencePosition.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertReferencePosition.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertRescueContainer.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertRescueContainer.h index 8b2e02079..adaa1b18e 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertRescueContainer.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertRescueContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertRoadWorksContainerBasic.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertRoadWorksContainerBasic.h index 1e331d509..46ff72b57 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertRoadWorksContainerBasic.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertRoadWorksContainerBasic.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertRoadworksSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertRoadworksSubCauseCode.h index b20260cd9..6dcfe7799 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertRoadworksSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertRoadworksSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSafetyCarContainer.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSafetyCarContainer.h index 89410ddf0..01b13dc45 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSafetyCarContainer.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSafetyCarContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSemiAxisLength.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSemiAxisLength.h index d4d713a76..581c41479 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSemiAxisLength.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSemiAxisLength.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpecialTransportContainer.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpecialTransportContainer.h index 130a7d17b..57e78be86 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpecialTransportContainer.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpecialTransportContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpecialTransportType.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpecialTransportType.h index 1c4630ef9..a473c9de8 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpecialTransportType.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpecialTransportType.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpecialVehicleContainer.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpecialVehicleContainer.h index a38f85357..f6d7a6900 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpecialVehicleContainer.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpecialVehicleContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpeed.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpeed.h index b32a72d25..da27d9f13 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpeed.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpeed.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpeedConfidence.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpeedConfidence.h index 9aea6af5f..367dd27b6 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpeedConfidence.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpeedConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpeedLimit.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpeedLimit.h index 2000bfc84..ab9d85e8a 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpeedLimit.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpeedLimit.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpeedValue.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpeedValue.h index 79d5c2bea..727ca49c7 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpeedValue.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSpeedValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertStationID.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertStationID.h index 5b35677fc..e4bf569e1 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertStationID.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertStationID.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertStationType.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertStationType.h index 7fd6c4b02..f64c4a9a1 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertStationType.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertStationType.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSteeringWheelAngle.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSteeringWheelAngle.h index ae7910f79..3205e02b7 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSteeringWheelAngle.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSteeringWheelAngle.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSteeringWheelAngleConfidence.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSteeringWheelAngleConfidence.h index 6d021d452..880d2a6a7 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSteeringWheelAngleConfidence.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSteeringWheelAngleConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSteeringWheelAngleValue.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSteeringWheelAngleValue.h index 8199cbcc4..e174b0976 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSteeringWheelAngleValue.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSteeringWheelAngleValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSubCauseCodeType.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSubCauseCodeType.h index 2210fe343..db33f4d6e 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSubCauseCodeType.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertSubCauseCodeType.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertTimestampIts.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertTimestampIts.h index 316703ff4..bc0b1aebb 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertTimestampIts.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertTimestampIts.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertTrafficRule.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertTrafficRule.h index a127cb101..d6b92d00c 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertTrafficRule.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertTrafficRule.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVehicleLength.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVehicleLength.h index 1161acbb8..80ab88fac 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVehicleLength.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVehicleLength.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVehicleLengthConfidenceIndication.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVehicleLengthConfidenceIndication.h index f86356876..f6f06ec1c 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVehicleLengthConfidenceIndication.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVehicleLengthConfidenceIndication.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVehicleLengthValue.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVehicleLengthValue.h index 647372e29..d571f57fc 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVehicleLengthValue.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVehicleLengthValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVehicleRole.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVehicleRole.h index 03e24a0e5..afa856107 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVehicleRole.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVehicleRole.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVehicleWidth.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVehicleWidth.h index cbf2c7274..2eb40dca8 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVehicleWidth.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVehicleWidth.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVerticalAcceleration.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVerticalAcceleration.h index 7df935519..9c03535e5 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVerticalAcceleration.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVerticalAcceleration.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVerticalAccelerationValue.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVerticalAccelerationValue.h index c2347247b..93c056a71 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVerticalAccelerationValue.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertVerticalAccelerationValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertYawRate.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertYawRate.h index f59e8cd23..dad492454 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertYawRate.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertYawRate.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertYawRateConfidence.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertYawRateConfidence.h index fed09786c..a61fb40b7 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertYawRateConfidence.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertYawRateConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertYawRateValue.h b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertYawRateValue.h index 041ab048c..afe427571 100644 --- a/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertYawRateValue.h +++ b/etsi_its_conversion/etsi_its_cam_conversion/include/etsi_its_cam_conversion/convertYawRateValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationComponent.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationComponent.h index 2faef20bc..5ce417635 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationComponent.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationComponent.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationConfidence.h index 14b0f144a..e0c9ca355 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationConfidence.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationControl.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationControl.h index dee7ad454..4d10ac6d0 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationControl.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationControl.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationValue.h index eee4f7e13..f16d519d1 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationValue.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccelerationValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccidentSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccidentSubCauseCode.h index 906fb9de3..8bb09a335 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccidentSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAccidentSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionAdhesionSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionAdhesionSubCauseCode.h index 81923d8e3..9f7ab0092 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionAdhesionSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionAdhesionSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionExtremeWeatherConditionSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionExtremeWeatherConditionSubCauseCode.h index c5153ed26..d775e93d0 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionExtremeWeatherConditionSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionExtremeWeatherConditionSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionPrecipitationSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionPrecipitationSubCauseCode.h index 3f5e6b093..fa5a59f01 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionPrecipitationSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionPrecipitationSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionVisibilitySubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionVisibilitySubCauseCode.h index a6592406c..13a748b64 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionVisibilitySubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAdverseWeatherConditionVisibilitySubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAltitude.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAltitude.h index 1fc6b3bf7..06515953b 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAltitude.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAltitude.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAltitudeConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAltitudeConfidence.h index 76c6b513e..86eb9adce 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAltitudeConfidence.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAltitudeConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAltitudeValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAltitudeValue.h index fcd4f28bc..c7746d3b1 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAltitudeValue.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertAltitudeValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicContainer.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicContainer.h index dc683fff4..aa3f58f65 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicContainer.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicVehicleContainerHighFrequency.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicVehicleContainerHighFrequency.h index bcd782fcf..39043f3e6 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicVehicleContainerHighFrequency.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicVehicleContainerHighFrequency.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicVehicleContainerLowFrequency.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicVehicleContainerLowFrequency.h index fd5bc0e98..cc46e9e02 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicVehicleContainerLowFrequency.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertBasicVehicleContainerLowFrequency.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCAM.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCAM.h index 923c61028..a5f9b8ab7 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCAM.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCAM.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCamParameters.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCamParameters.h index 0929060f5..803bbad76 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCamParameters.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCamParameters.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCamPayload.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCamPayload.h index 2c47fa400..71f2e6f7a 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCamPayload.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCamPayload.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCauseCodeChoice.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCauseCodeChoice.h index 136c503a4..a17af76b6 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCauseCodeChoice.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCauseCodeChoice.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCauseCodeV2.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCauseCodeV2.h index 5d1474d7f..3d8522d47 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCauseCodeV2.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCauseCodeV2.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCenDsrcTollingZone.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCenDsrcTollingZone.h index 65c705e5c..aca2dbea8 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCenDsrcTollingZone.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCenDsrcTollingZone.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertClosedLanes.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertClosedLanes.h index 861fc6c20..1fc0fc72e 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertClosedLanes.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertClosedLanes.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCollisionRiskSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCollisionRiskSubCauseCode.h index 54f9f317b..554f8b385 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCollisionRiskSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCollisionRiskSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvature.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvature.h index 316716fea..a3e34239d 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvature.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvature.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvatureCalculationMode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvatureCalculationMode.h index 7378bc1d4..46d5d4206 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvatureCalculationMode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvatureCalculationMode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvatureConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvatureConfidence.h index 4c7a38a74..a35c58bef 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvatureConfidence.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvatureConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvatureValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvatureValue.h index e3473eb5f..9ac02070b 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvatureValue.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertCurvatureValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousEndOfQueueSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousEndOfQueueSubCauseCode.h index 84b703044..6eaf40f8d 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousEndOfQueueSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousEndOfQueueSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousGoodsBasic.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousGoodsBasic.h index 256accf11..3dde7d9bd 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousGoodsBasic.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousGoodsBasic.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousGoodsContainer.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousGoodsContainer.h index d34c68297..8c1733978 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousGoodsContainer.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousGoodsContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousSituationSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousSituationSubCauseCode.h index 19517fc63..e25554364 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousSituationSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDangerousSituationSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaAltitude.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaAltitude.h index 5a1193898..1e4b58c50 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaAltitude.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaAltitude.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaLatitude.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaLatitude.h index fde83fbc2..3db2f6fd6 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaLatitude.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaLatitude.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaLongitude.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaLongitude.h index af1d4a92e..80dffdd7f 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaLongitude.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaLongitude.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaReferencePosition.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaReferencePosition.h index 68d99495f..ab00ce7fa 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaReferencePosition.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDeltaReferencePosition.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDriveDirection.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDriveDirection.h index 6a3d29359..a6197f857 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDriveDirection.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDriveDirection.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDrivingLaneStatus.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDrivingLaneStatus.h index 4ac6347b1..a86657ad2 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDrivingLaneStatus.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertDrivingLaneStatus.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmbarkationStatus.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmbarkationStatus.h index 51095fb9f..445816248 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmbarkationStatus.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmbarkationStatus.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmergencyContainer.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmergencyContainer.h index 49bd43175..3e7d17cbc 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmergencyContainer.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmergencyContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmergencyPriority.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmergencyPriority.h index d399d4c38..30d676c2f 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmergencyPriority.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmergencyPriority.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmergencyVehicleApproachingSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmergencyVehicleApproachingSubCauseCode.h index a4a6b0228..1787e5a19 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmergencyVehicleApproachingSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertEmergencyVehicleApproachingSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertExteriorLights.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertExteriorLights.h index 0b1363f75..508c4d55c 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertExteriorLights.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertExteriorLights.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertGenerationDeltaTime.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertGenerationDeltaTime.h index a05bb838c..3e640e487 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertGenerationDeltaTime.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertGenerationDeltaTime.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHardShoulderStatus.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHardShoulderStatus.h index 7bb86bd7a..922165b12 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHardShoulderStatus.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHardShoulderStatus.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationAnimalOnTheRoadSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationAnimalOnTheRoadSubCauseCode.h index f8ea00f7e..df5e5c949 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationAnimalOnTheRoadSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationAnimalOnTheRoadSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationDangerousCurveSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationDangerousCurveSubCauseCode.h index 3c91fdb8a..898b9cbe6 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationDangerousCurveSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationDangerousCurveSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationObstacleOnTheRoadSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationObstacleOnTheRoadSubCauseCode.h index 5d6ef4f64..915b16c26 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationObstacleOnTheRoadSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationObstacleOnTheRoadSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationSurfaceConditionSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationSurfaceConditionSubCauseCode.h index 8a00151c6..a3eaa4553 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationSurfaceConditionSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHazardousLocationSurfaceConditionSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeading.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeading.h index afcac696a..80cb337b9 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeading.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeading.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeadingConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeadingConfidence.h index 7fda6c9e7..e68bfce87 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeadingConfidence.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeadingConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeadingValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeadingValue.h index e69bb9033..5001835c3 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeadingValue.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHeadingValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHighFrequencyContainer.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHighFrequencyContainer.h index f764a0e74..9a52374bf 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHighFrequencyContainer.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHighFrequencyContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHumanPresenceOnTheRoadSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHumanPresenceOnTheRoadSubCauseCode.h index 07f7ebdc1..535b6fafe 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHumanPresenceOnTheRoadSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHumanPresenceOnTheRoadSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHumanProblemSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHumanProblemSubCauseCode.h index 931ee34ac..970f68df7 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHumanProblemSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertHumanProblemSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertImpassabilitySubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertImpassabilitySubCauseCode.h index 9f8f51369..b1de7750f 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertImpassabilitySubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertImpassabilitySubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertItsPduHeader.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertItsPduHeader.h index 1c9efc660..885a3394e 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertItsPduHeader.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertItsPduHeader.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLanePosition.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLanePosition.h index 05b425bfd..57481af66 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLanePosition.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLanePosition.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLatitude.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLatitude.h index 8c65d7cd0..c64870833 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLatitude.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLatitude.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLightBarSirenInUse.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLightBarSirenInUse.h index ecf8c72bc..115955766 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLightBarSirenInUse.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLightBarSirenInUse.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLongitude.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLongitude.h index 99513e286..2b0ce5332 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLongitude.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLongitude.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLowFrequencyContainer.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLowFrequencyContainer.h index bc4f49e70..60a4befec 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLowFrequencyContainer.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertLowFrequencyContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMessageId.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMessageId.h index 0fe4a40a1..6b8ae1b74 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMessageId.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertMessageId.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertOrdinalNumber1B.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertOrdinalNumber1B.h index 929a7bb3e..db1e6d096 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertOrdinalNumber1B.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertOrdinalNumber1B.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPath.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPath.h index 5932553f4..5d990d045 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPath.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPath.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -29,13 +28,16 @@ SOFTWARE. #include +#include #include -#include +#include #include #ifdef ROS1 +#include #include namespace cam_ts_msgs = etsi_its_cam_ts_msgs; #else +#include #include namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; #endif diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathDeltaTime.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathDeltaTime.h index 90a0aefeb..9b3252a41 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathDeltaTime.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathDeltaTime.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathPoint.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathPoint.h index 8c94a40d3..0335e8e39 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathPoint.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPathPoint.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPerformanceClass.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPerformanceClass.h index d27d30320..14c48cfea 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPerformanceClass.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPerformanceClass.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPositionConfidenceEllipse.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPositionConfidenceEllipse.h index 2d25ed4ff..cee174191 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPositionConfidenceEllipse.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPositionConfidenceEllipse.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPostCrashSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPostCrashSubCauseCode.h index 5dac620d4..de25a365e 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPostCrashSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPostCrashSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedCommunicationZone.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedCommunicationZone.h index 3bc36421c..d93d42f6d 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedCommunicationZone.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedCommunicationZone.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedCommunicationZonesRSU.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedCommunicationZonesRSU.h index cc2e3cf4e..c49ff08e4 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedCommunicationZonesRSU.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedCommunicationZonesRSU.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -29,13 +28,16 @@ SOFTWARE. #include +#include #include +#include #include -#include #ifdef ROS1 +#include #include namespace cam_ts_msgs = etsi_its_cam_ts_msgs; #else +#include #include namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; #endif diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedZoneId.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedZoneId.h index 80caed9f8..852adc103 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedZoneId.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedZoneId.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedZoneRadius.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedZoneRadius.h index e3d2ec36b..b56ed2e85 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedZoneRadius.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedZoneRadius.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedZoneType.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedZoneType.h index 7fc2a253b..135c0870e 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedZoneType.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertProtectedZoneType.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPtActivation.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPtActivation.h index 17d83be1a..2dedf6bc7 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPtActivation.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPtActivation.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPtActivationData.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPtActivationData.h index 55bb4d81a..4da328b87 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPtActivationData.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPtActivationData.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPtActivationType.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPtActivationType.h index 2b62f8eca..520bb1c35 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPtActivationType.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPtActivationType.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPublicTransportContainer.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPublicTransportContainer.h index 989eb6fd1..35e26bb73 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPublicTransportContainer.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertPublicTransportContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRSUContainerHighFrequency.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRSUContainerHighFrequency.h index a1aa518ff..6a6f10981 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRSUContainerHighFrequency.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRSUContainerHighFrequency.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRailwayLevelCrossingSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRailwayLevelCrossingSubCauseCode.h index 5734503bd..513c2ae01 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRailwayLevelCrossingSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRailwayLevelCrossingSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertReferencePositionWithConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertReferencePositionWithConfidence.h index 38a276715..e00eebedb 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertReferencePositionWithConfidence.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertReferencePositionWithConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRescueAndRecoveryWorkInProgressSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRescueAndRecoveryWorkInProgressSubCauseCode.h index 5f8ade996..e57784177 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRescueAndRecoveryWorkInProgressSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRescueAndRecoveryWorkInProgressSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRescueContainer.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRescueContainer.h index 9247b4ff0..97a75c650 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRescueContainer.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRescueContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadWorksContainerBasic.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadWorksContainerBasic.h index f131540ae..a37f78063 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadWorksContainerBasic.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadWorksContainerBasic.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadworksSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadworksSubCauseCode.h index 4214697b9..5c141134f 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadworksSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertRoadworksSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSafetyCarContainer.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSafetyCarContainer.h index 4299680b6..e7a48868b 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSafetyCarContainer.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSafetyCarContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSemiAxisLength.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSemiAxisLength.h index 4711e387f..140ea14a7 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSemiAxisLength.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSemiAxisLength.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSignalViolationSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSignalViolationSubCauseCode.h index d40654809..6d5949629 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSignalViolationSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSignalViolationSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSlowVehicleSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSlowVehicleSubCauseCode.h index a467a87aa..83ad3b1e1 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSlowVehicleSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSlowVehicleSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpecialTransportContainer.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpecialTransportContainer.h index e5c21cc90..578cf1ca3 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpecialTransportContainer.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpecialTransportContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpecialTransportType.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpecialTransportType.h index 04d1afa08..452b0558c 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpecialTransportType.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpecialTransportType.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpecialVehicleContainer.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpecialVehicleContainer.h index 474e3ab80..954e7db63 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpecialVehicleContainer.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpecialVehicleContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeed.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeed.h index 3bc8b0a9e..8032a0dbc 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeed.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeed.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeedConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeedConfidence.h index 7d905292a..31137a155 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeedConfidence.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeedConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeedLimit.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeedLimit.h index e013b919d..495d13438 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeedLimit.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeedLimit.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeedValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeedValue.h index 1cb8e1315..d2b64c85f 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeedValue.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSpeedValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStationId.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStationId.h index 7fca61f49..7d18cd6ff 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStationId.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStationId.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStationaryVehicleSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStationaryVehicleSubCauseCode.h index c8f2944df..b59d19957 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStationaryVehicleSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertStationaryVehicleSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSteeringWheelAngle.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSteeringWheelAngle.h index b10e3cf65..5aa5b03df 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSteeringWheelAngle.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSteeringWheelAngle.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSteeringWheelAngleConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSteeringWheelAngleConfidence.h index 6cd5c1123..a3638d447 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSteeringWheelAngleConfidence.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSteeringWheelAngleConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSteeringWheelAngleValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSteeringWheelAngleValue.h index 71483357f..c94a74bb2 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSteeringWheelAngleValue.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSteeringWheelAngleValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSubCauseCodeType.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSubCauseCodeType.h index 3d4ed1aac..c0b059867 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSubCauseCodeType.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertSubCauseCodeType.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTimestampIts.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTimestampIts.h index 75ac6868e..bb97f4e74 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTimestampIts.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTimestampIts.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficConditionSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficConditionSubCauseCode.h index e32f85197..31baedac6 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficConditionSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficConditionSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficParticipantType.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficParticipantType.h index 6bf0aeaa0..0ddb94f52 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficParticipantType.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficParticipantType.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficRule.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficRule.h index 9007bda40..4a797347a 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficRule.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertTrafficRule.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleBreakdownSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleBreakdownSubCauseCode.h index a758d39f0..8e44d6e76 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleBreakdownSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleBreakdownSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleLength.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleLength.h index 070333afc..31aef9444 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleLength.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleLength.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleLengthConfidenceIndication.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleLengthConfidenceIndication.h index f1f4ea20e..d3998235c 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleLengthConfidenceIndication.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleLengthConfidenceIndication.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleLengthValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleLengthValue.h index a20b7d4f0..0adb17590 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleLengthValue.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleLengthValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleRole.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleRole.h index 0005bf310..fd40945ed 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleRole.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleRole.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleWidth.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleWidth.h index e41fd5489..2a9aea7ea 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleWidth.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertVehicleWidth.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWgs84AngleValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWgs84AngleValue.h index 0517d29bf..09b76535d 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWgs84AngleValue.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWgs84AngleValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWrongWayDrivingSubCauseCode.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWrongWayDrivingSubCauseCode.h index 54354087f..6154faccd 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWrongWayDrivingSubCauseCode.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertWrongWayDrivingSubCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertYawRate.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertYawRate.h index 4a80b864b..b3448c1fd 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertYawRate.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertYawRate.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertYawRateConfidence.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertYawRateConfidence.h index c201d2add..b9dced59d 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertYawRateConfidence.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertYawRateConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertYawRateValue.h b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertYawRateValue.h index 589f9d9bd..db7aba254 100644 --- a/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertYawRateValue.h +++ b/etsi_its_conversion/etsi_its_cam_ts_conversion/include/etsi_its_cam_ts_conversion/convertYawRateValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_conversion/CMakeLists.txt b/etsi_its_conversion/etsi_its_conversion/CMakeLists.txt index 4d27fdcbb..ab2b341b3 100644 --- a/etsi_its_conversion/etsi_its_conversion/CMakeLists.txt +++ b/etsi_its_conversion/etsi_its_conversion/CMakeLists.txt @@ -12,8 +12,10 @@ if(${ROS_VERSION} EQUAL 2) find_package(ament_cmake REQUIRED) find_package(etsi_its_cam_conversion REQUIRED) find_package(etsi_its_cam_ts_conversion REQUIRED) - find_package(etsi_its_denm_conversion REQUIRED) find_package(etsi_its_cpm_ts_conversion REQUIRED) + find_package(etsi_its_denm_conversion REQUIRED) + find_package(etsi_its_mapem_ts_conversion REQUIRED) + find_package(etsi_its_spatem_ts_conversion REQUIRED) find_package(etsi_its_vam_ts_conversion REQUIRED) find_package(rclcpp REQUIRED) find_package(rclcpp_components REQUIRED) @@ -34,8 +36,10 @@ if(${ROS_VERSION} EQUAL 2) ament_target_dependencies(${PROJECT_NAME} etsi_its_cam_conversion etsi_its_cam_ts_conversion - etsi_its_denm_conversion etsi_its_cpm_ts_conversion + etsi_its_denm_conversion + etsi_its_mapem_ts_conversion + etsi_its_spatem_ts_conversion etsi_its_vam_ts_conversion rclcpp rclcpp_components @@ -70,8 +74,10 @@ elseif(${ROS_VERSION} EQUAL 1) find_package(catkin REQUIRED COMPONENTS etsi_its_cam_conversion etsi_its_cam_ts_conversion - etsi_its_denm_conversion etsi_its_cpm_ts_conversion + etsi_its_denm_conversion + etsi_its_mapem_ts_conversion + etsi_its_spatem_ts_conversion etsi_its_vam_ts_conversion nodelet roscpp @@ -84,8 +90,10 @@ elseif(${ROS_VERSION} EQUAL 1) CATKIN_DEPENDS etsi_its_cam_conversion etsi_its_cam_ts_conversion - etsi_its_denm_conversion etsi_its_cpm_ts_conversion + etsi_its_denm_conversion + etsi_its_mapem_ts_conversion + etsi_its_spatem_ts_conversion etsi_its_vam_ts_conversion nodelet roscpp diff --git a/etsi_its_conversion/etsi_its_conversion/config/params.ros1.yml b/etsi_its_conversion/etsi_its_conversion/config/params.ros1.yml index fd6185498..45386a545 100644 --- a/etsi_its_conversion/etsi_its_conversion/config/params.ros1.yml +++ b/etsi_its_conversion/etsi_its_conversion/config/params.ros1.yml @@ -6,11 +6,15 @@ ros2udp_etsi_types: - cam_ts - cpm_ts - denm + - mapem_ts + - spatem_ts - vam_ts udp2ros_etsi_types: - cam - cpm_ts - denm + - mapem_ts + - spatem_ts - vam_ts subscriber_queue_size: 10 publisher_queue_size: 10 diff --git a/etsi_its_conversion/etsi_its_conversion/config/params.yml b/etsi_its_conversion/etsi_its_conversion/config/params.yml index b7f62a59e..7e6ef6981 100644 --- a/etsi_its_conversion/etsi_its_conversion/config/params.yml +++ b/etsi_its_conversion/etsi_its_conversion/config/params.yml @@ -8,11 +8,15 @@ etsi_its_conversion: - cam_ts - cpm_ts - denm + - mapem_ts + - spatem_ts - vam_ts udp2ros_etsi_types: - cam - cpm_ts - denm + - mapem_ts + - spatem_ts - vam_ts subscriber_queue_size: 10 publisher_queue_size: 10 diff --git a/etsi_its_conversion/etsi_its_conversion/include/etsi_its_conversion/Converter.hpp b/etsi_its_conversion/etsi_its_conversion/include/etsi_its_conversion/Converter.hpp index 6330d44d4..d0b73c1ef 100644 --- a/etsi_its_conversion/etsi_its_conversion/include/etsi_its_conversion/Converter.hpp +++ b/etsi_its_conversion/etsi_its_conversion/include/etsi_its_conversion/Converter.hpp @@ -32,6 +32,8 @@ SOFTWARE. #include #include #include +#include +#include #include #ifdef ROS1 #include @@ -41,12 +43,16 @@ SOFTWARE. #include #include #include +#include +#include #include #else #include #include #include #include +#include +#include #include #include #include @@ -62,6 +68,8 @@ namespace cam_msgs = etsi_its_cam_msgs; namespace cam_ts_msgs = etsi_its_cam_ts_msgs; namespace cpm_ts_msgs = etsi_its_cpm_ts_msgs; namespace denm_msgs = etsi_its_denm_msgs; +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; namespace vam_ts_msgs = etsi_its_vam_ts_msgs; #else using namespace udp_msgs::msg; @@ -69,6 +77,8 @@ namespace cam_msgs = etsi_its_cam_msgs::msg; namespace cam_ts_msgs = etsi_its_cam_ts_msgs::msg; namespace cpm_ts_msgs = etsi_its_cpm_ts_msgs::msg; namespace denm_msgs = etsi_its_denm_msgs::msg; +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; namespace vam_ts_msgs = etsi_its_vam_ts_msgs::msg; #endif @@ -141,6 +151,10 @@ class Converter : public rclcpp::Node { static const std::string kOutputTopicCpmTs; static const std::string kInputTopicDenm; static const std::string kOutputTopicDenm; + static const std::string kInputTopicMapemTs; + static const std::string kOutputTopicMapemTs; + static const std::string kInputTopicSpatemTs; + static const std::string kOutputTopicSpatemTs; static const std::string kInputTopicVamTs; static const std::string kOutputTopicVamTs; @@ -183,6 +197,8 @@ class Converter : public rclcpp::Node { rclcpp::Publisher::SharedPtr publisher_cam_ts_; rclcpp::Publisher::SharedPtr publisher_cpm_ts_; rclcpp::Publisher::SharedPtr publisher_denm_; + rclcpp::Publisher::SharedPtr publisher_mapem_ts_; + rclcpp::Publisher::SharedPtr publisher_spatem_ts_; rclcpp::Publisher::SharedPtr publisher_vam_ts_; rclcpp::Publisher::SharedPtr publisher_udp_; #endif diff --git a/etsi_its_conversion/etsi_its_conversion/package.xml b/etsi_its_conversion/etsi_its_conversion/package.xml index 826ccd781..b73b8fd84 100644 --- a/etsi_its_conversion/etsi_its_conversion/package.xml +++ b/etsi_its_conversion/etsi_its_conversion/package.xml @@ -17,8 +17,10 @@ etsi_its_cam_conversion etsi_its_cam_ts_conversion - etsi_its_denm_conversion etsi_its_cpm_ts_conversion + etsi_its_denm_conversion + etsi_its_mapem_ts_conversion + etsi_its_spatem_ts_conversion etsi_its_vam_ts_conversion ros_environment std_msgs diff --git a/etsi_its_conversion/etsi_its_conversion/src/Converter.cpp b/etsi_its_conversion/etsi_its_conversion/src/Converter.cpp index bb8c64fa5..4e1bb6d9e 100644 --- a/etsi_its_conversion/etsi_its_conversion/src/Converter.cpp +++ b/etsi_its_conversion/etsi_its_conversion/src/Converter.cpp @@ -65,6 +65,10 @@ const std::string Converter::kInputTopicCpmTs{"cpm_ts/in"}; const std::string Converter::kOutputTopicCpmTs{"cpm_ts/out"}; const std::string Converter::kInputTopicDenm{"denm/in"}; const std::string Converter::kOutputTopicDenm{"denm/out"}; +const std::string Converter::kInputTopicMapemTs{"mapem_ts/in"}; +const std::string Converter::kOutputTopicMapemTs{"mapem_ts/out"}; +const std::string Converter::kInputTopicSpatemTs{"spatem_ts/in"}; +const std::string Converter::kOutputTopicSpatemTs{"spatem_ts/out"}; const std::string Converter::kInputTopicVamTs{"vam_ts/in"}; const std::string Converter::kOutputTopicVamTs{"vam_ts/out"}; #else @@ -78,6 +82,10 @@ const std::string Converter::kInputTopicCpmTs{"~/cpm_ts/in"}; const std::string Converter::kOutputTopicCpmTs{"~/cpm_ts/out"}; const std::string Converter::kInputTopicDenm{"~/denm/in"}; const std::string Converter::kOutputTopicDenm{"~/denm/out"}; +const std::string Converter::kInputTopicMapemTs{"~/mapem_ts/in"}; +const std::string Converter::kOutputTopicMapemTs{"~/mapem_ts/out"}; +const std::string Converter::kInputTopicSpatemTs{"~/spatem_ts/in"}; +const std::string Converter::kOutputTopicSpatemTs{"~/spatem_ts/out"}; const std::string Converter::kInputTopicVamTs{"~/vam_ts/in"}; const std::string Converter::kOutputTopicVamTs{"~/vam_ts/out"}; #endif @@ -90,8 +98,8 @@ const std::string Converter::kEtsiMessagePayloadOffsetParam{"etsi_message_payloa const int Converter::kEtsiMessagePayloadOffsetParamDefault{78}; const std::string Converter::kRos2UdpEtsiTypesParam{"ros2udp_etsi_types"}; const std::string Converter::kUdp2RosEtsiTypesParam{"udp2ros_etsi_types"}; -const std::vector Converter::kRos2UdpEtsiTypesParamDefault{"cam", "cam_ts", "cpm_ts", "denm", "vam_ts"}; -const std::vector Converter::kUdp2RosEtsiTypesParamDefault{"cam", "cpm_ts", "denm", "vam_ts"}; +const std::vector Converter::kRos2UdpEtsiTypesParamDefault{"cam", "cam_ts", "cpm_ts", "denm", "mapem_ts", "spatem_ts", "vam_ts"}; +const std::vector Converter::kUdp2RosEtsiTypesParamDefault{"cam", "cpm_ts", "denm", "mapem_ts", "spatem_ts", "vam_ts"}; const std::string Converter::kSubscriberQueueSizeParam{"subscriber_queue_size"}; const int Converter::kSubscriberQueueSizeParamDefault{10}; const std::string Converter::kPublisherQueueSizeParam{"publisher_queue_size"}; @@ -308,6 +316,26 @@ void Converter::setup() { subscribers_["denm"] = std::make_shared(private_node_handle_.subscribe(kInputTopicDenm, subscriber_queue_size_, callback)); ROS12_LOG(INFO, "Converting native ROS DENMs on '%s' to UDP messages on '%s'", subscribers_["denm"]->getTopic().c_str(), publisher_udp_->getTopic().c_str()); } + if (std::find(udp2ros_etsi_types_.begin(), udp2ros_etsi_types_.end(), "mapem_ts") != udp2ros_etsi_types_.end()) { + publishers_["mapem_ts"] = std::make_shared(private_node_handle_.advertise(kOutputTopicMapemTs, publisher_queue_size_)); + ROS12_LOG(INFO, "Converting UDP messages of type MAPEM (TS) on '%s' to native ROS messages on '%s'", subscriber_udp_->getTopic().c_str(), publishers_["mapem_ts"]->getTopic().c_str()); + } + if (std::find(ros2udp_etsi_types_.begin(), ros2udp_etsi_types_.end(), "mapem_ts") != ros2udp_etsi_types_.end()) { + boost::function callback = + boost::bind(&Converter::rosCallback, this, _1, "mapem_ts", &asn_DEF_mapem_ts_MAPEM, std::function(etsi_its_mapem_ts_conversion::toStruct_MAPEM)); + subscribers_["mapem_ts"] = std::make_shared(private_node_handle_.subscribe(kInputTopicMapemTs, subscriber_queue_size_, callback)); + ROS12_LOG(INFO, "Converting native ROS MAPEMs (TS) on '%s' to UDP messages on '%s'", subscribers_["mapem_ts"]->getTopic().c_str(), publisher_udp_->getTopic().c_str()); + } + if (std::find(udp2ros_etsi_types_.begin(), udp2ros_etsi_types_.end(), "spatem_ts") != udp2ros_etsi_types_.end()) { + publishers_["spatem_ts"] = std::make_shared(private_node_handle_.advertise(kOutputTopicSpatemTs, publisher_queue_size_)); + ROS12_LOG(INFO, "Converting UDP messages of type SPATEM (TS) on '%s' to native ROS messages on '%s'", subscriber_udp_->getTopic().c_str(), publishers_["spatem_ts"]->getTopic().c_str()); + } + if (std::find(ros2udp_etsi_types_.begin(), ros2udp_etsi_types_.end(), "spatem_ts") != ros2udp_etsi_types_.end()) { + boost::function callback = + boost::bind(&Converter::rosCallback, this, _1, "spatem_ts", &asn_DEF_spatem_ts_SPATEM, std::function(etsi_its_spatem_ts_conversion::toStruct_SPATEM)); + subscribers_["spatem_ts"] = std::make_shared(private_node_handle_.subscribe(kInputTopicSpatemTs, subscriber_queue_size_, callback)); + ROS12_LOG(INFO, "Converting native ROS SPATEMs (TS) on '%s' to UDP messages on '%s'", subscribers_["spatem_ts"]->getTopic().c_str(), publisher_udp_->getTopic().c_str()); + } if (std::find(udp2ros_etsi_types_.begin(), udp2ros_etsi_types_.end(), "vam_ts") != udp2ros_etsi_types_.end()) { publishers_["vam_ts"] = std::make_shared(private_node_handle_.advertise(kOutputTopicVamTs, publisher_queue_size_)); ROS12_LOG(INFO, "Converting UDP messages of type VAM (TS) on '%s' to native ROS messages on '%s'", subscriber_udp_->getTopic().c_str(), publishers_["vam_ts"]->getTopic().c_str()); @@ -361,6 +389,26 @@ void Converter::setup() { subscribers_["denm"] = this->create_subscription(kInputTopicDenm, subscriber_queue_size_, callback); ROS12_LOG(INFO, "Converting native ROS DENMs on '%s' to UDP messages on '%s'", subscribers_["denm"]->get_topic_name(), publisher_udp_->get_topic_name()); } + if (std::find(udp2ros_etsi_types_.begin(), udp2ros_etsi_types_.end(), "mapem_ts") != udp2ros_etsi_types_.end()) { + publisher_mapem_ts_ = this->create_publisher(kOutputTopicMapemTs, publisher_queue_size_); + ROS12_LOG(INFO, "Converting UDP messages of type MAPEM (TS) on '%s' to native ROS messages on '%s'", subscriber_udp_->get_topic_name(), publisher_mapem_ts_->get_topic_name()); + } + if (std::find(ros2udp_etsi_types_.begin(), ros2udp_etsi_types_.end(), "mapem_ts") != ros2udp_etsi_types_.end()) { + std::function callback = + std::bind(&Converter::rosCallback, this, std::placeholders::_1, "mapem_ts", &asn_DEF_mapem_ts_MAPEM, std::function(etsi_its_mapem_ts_conversion::toStruct_MAPEM)); + subscribers_["mapem_ts"] = this->create_subscription(kInputTopicMapemTs, subscriber_queue_size_, callback); + ROS12_LOG(INFO, "Converting native ROS MAPEMs (TS) on '%s' to UDP messages on '%s'", subscribers_["mapem_ts"]->get_topic_name(), publisher_udp_->get_topic_name()); + } + if (std::find(udp2ros_etsi_types_.begin(), udp2ros_etsi_types_.end(), "spatem_ts") != udp2ros_etsi_types_.end()) { + publisher_spatem_ts_ = this->create_publisher(kOutputTopicSpatemTs, publisher_queue_size_); + ROS12_LOG(INFO, "Converting UDP messages of type SPATEM (TS) on '%s' to native ROS messages on '%s'", subscriber_udp_->get_topic_name(), publisher_spatem_ts_->get_topic_name()); + } + if (std::find(ros2udp_etsi_types_.begin(), ros2udp_etsi_types_.end(), "spatem_ts") != ros2udp_etsi_types_.end()) { + std::function callback = + std::bind(&Converter::rosCallback, this, std::placeholders::_1, "spatem_ts", &asn_DEF_spatem_ts_SPATEM, std::function(etsi_its_spatem_ts_conversion::toStruct_SPATEM)); + subscribers_["spatem_ts"] = this->create_subscription(kInputTopicSpatemTs, subscriber_queue_size_, callback); + ROS12_LOG(INFO, "Converting native ROS SPATEMs (TS) on '%s' to UDP messages on '%s'", subscribers_["spatem_ts"]->get_topic_name(), publisher_udp_->get_topic_name()); + } if (std::find(udp2ros_etsi_types_.begin(), udp2ros_etsi_types_.end(), "vam_ts") != udp2ros_etsi_types_.end()) { publisher_vam_ts_ = this->create_publisher(kOutputTopicVamTs, publisher_queue_size_); ROS12_LOG(INFO, "Converting UDP messages of type VAM (TS) on '%s' to native ROS messages on '%s'", subscriber_udp_->get_topic_name(), publisher_vam_ts_->get_topic_name()); @@ -510,8 +558,8 @@ void Converter::udpCallback(const UdpPacket::UniquePtr udp_msg) { else if (destination_port == kBtpHeaderDestinationPortCpmTs) detected_etsi_type = "cpm_ts"; else if (destination_port == kBtpHeaderDestinationPortDenm) detected_etsi_type = "denm"; else if (destination_port == kBtpHeaderDestinationPortIvi) detected_etsi_type = "ivi"; - else if (destination_port == kBtpHeaderDestinationPortMapem) detected_etsi_type = "mapem"; - else if (destination_port == kBtpHeaderDestinationPortSpatem) detected_etsi_type = "spatem"; + else if (destination_port == kBtpHeaderDestinationPortMapem) detected_etsi_type = "mapem_ts"; + else if (destination_port == kBtpHeaderDestinationPortSpatem) detected_etsi_type = "spatem_ts"; else if (destination_port == kBtpHeaderDestinationPortVamTs) detected_etsi_type = "vam_ts"; else detected_etsi_type = "unknown"; } @@ -585,6 +633,34 @@ void Converter::udpCallback(const UdpPacket::UniquePtr udp_msg) { publisher_vam_ts_->publish(msg); #endif + } else if (detected_etsi_type == "mapem_ts") { + + // decode buffer to ROS msg + mapem_ts_msgs::MAPEM msg; + bool success = this->decodeBufferToRosMessage(&udp_msg->data[etsi_message_payload_offset_], msg_size, &asn_DEF_mapem_ts_MAPEM, std::function(etsi_its_mapem_ts_conversion::toRos_MAPEM), msg); + if (!success) return; + + // publish msg + #ifdef ROS1 + publishers_["mapem_ts"]->publish(msg); + #else + publisher_mapem_ts_->publish(msg); + #endif + + } else if (detected_etsi_type == "spatem_ts") { + + // decode buffer to ROS msg + spatem_ts_msgs::SPATEM msg; + bool success = this->decodeBufferToRosMessage(&udp_msg->data[etsi_message_payload_offset_], msg_size, &asn_DEF_spatem_ts_SPATEM, std::function(etsi_its_spatem_ts_conversion::toRos_SPATEM), msg); + if (!success) return; + + // publish msg + #ifdef ROS1 + publishers_["spatem_ts"]->publish(msg); + #else + publisher_spatem_ts_->publish(msg); + #endif + } else { ROS12_LOG(ERROR, "Detected ETSI message type '%s' not yet supported, dropping message", detected_etsi_type.c_str()); return; @@ -608,6 +684,8 @@ void Converter::rosCallback(const typename T_ros::UniquePtr msg, if (type == "cam" || type == "cam_ts") btp_header_destination_port = kBtpHeaderDestinationPortCam; else if (type == "cpm_ts") btp_header_destination_port = kBtpHeaderDestinationPortCpmTs; else if (type == "denm") btp_header_destination_port = kBtpHeaderDestinationPortDenm; + else if (type == "mapem_ts") btp_header_destination_port = kBtpHeaderDestinationPortMapem; + else if (type == "spatem_ts") btp_header_destination_port = kBtpHeaderDestinationPortSpatem; else if (type == "vam_ts") btp_header_destination_port = kBtpHeaderDestinationPortVamTs; // encode ROS msg to UDP msg diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertActionID.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertActionID.h index 9634c74ce..066e706a2 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertActionID.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertActionID.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertAlacarteContainer.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertAlacarteContainer.h index f319380fc..235dc0e94 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertAlacarteContainer.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertAlacarteContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertAltitude.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertAltitude.h index dfd114c90..575614f22 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertAltitude.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertAltitude.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertAltitudeConfidence.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertAltitudeConfidence.h index f5a9b2930..e48a3c4e2 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertAltitudeConfidence.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertAltitudeConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertAltitudeValue.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertAltitudeValue.h index fda443b8a..2ba78ec4c 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertAltitudeValue.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertAltitudeValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertCauseCode.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertCauseCode.h index e4280f785..26a1e45e3 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertCauseCode.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertCauseCode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertCauseCodeType.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertCauseCodeType.h index 2d6000029..65209fd9b 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertCauseCodeType.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertCauseCodeType.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertClosedLanes.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertClosedLanes.h index 0236fb986..8ba031a49 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertClosedLanes.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertClosedLanes.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDENM.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDENM.h index 9897995d5..84db725fd 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDENM.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDENM.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDangerousGoodsBasic.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDangerousGoodsBasic.h index 19a51cfdc..a0663aa09 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDangerousGoodsBasic.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDangerousGoodsBasic.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDangerousGoodsExtended.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDangerousGoodsExtended.h index 0cc7c7a0e..5dd851fca 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDangerousGoodsExtended.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDangerousGoodsExtended.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -30,14 +29,14 @@ SOFTWARE. #include #include #include +#include #include #include #include #include +#include #include #include -#include -#include #ifdef ROS1 #include namespace denm_msgs = etsi_its_denm_msgs; diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDecentralizedEnvironmentalNotificationMessage.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDecentralizedEnvironmentalNotificationMessage.h index a5fb25a12..f8883c6b6 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDecentralizedEnvironmentalNotificationMessage.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDecentralizedEnvironmentalNotificationMessage.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDeltaAltitude.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDeltaAltitude.h index 355f2b8e1..2dd102590 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDeltaAltitude.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDeltaAltitude.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDeltaLatitude.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDeltaLatitude.h index 7bc522e42..7d207b42d 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDeltaLatitude.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDeltaLatitude.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDeltaLongitude.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDeltaLongitude.h index 9c8bed15b..ba9d93f2a 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDeltaLongitude.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDeltaLongitude.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDeltaReferencePosition.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDeltaReferencePosition.h index edf683285..24e7ff002 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDeltaReferencePosition.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDeltaReferencePosition.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDrivingLaneStatus.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDrivingLaneStatus.h index 48d4450cf..6d7975d61 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDrivingLaneStatus.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertDrivingLaneStatus.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertEnergyStorageType.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertEnergyStorageType.h index eaeb5778d..34d5646ab 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertEnergyStorageType.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertEnergyStorageType.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertEventHistory.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertEventHistory.h index 7bb8bc971..0f247d574 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertEventHistory.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertEventHistory.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -29,13 +28,16 @@ SOFTWARE. #include +#include #include -#include +#include #include #ifdef ROS1 +#include #include namespace denm_msgs = etsi_its_denm_msgs; #else +#include #include namespace denm_msgs = etsi_its_denm_msgs::msg; #endif diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertEventPoint.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertEventPoint.h index 22b21ce67..1a13d3ae9 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertEventPoint.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertEventPoint.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertHardShoulderStatus.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertHardShoulderStatus.h index 03e148145..f4038fa74 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertHardShoulderStatus.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertHardShoulderStatus.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertHeading.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertHeading.h index 77f3c1d12..aa9dc4b85 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertHeading.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertHeading.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertHeadingConfidence.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertHeadingConfidence.h index 2e9645b69..6500f206b 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertHeadingConfidence.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertHeadingConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertHeadingValue.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertHeadingValue.h index 2b58095c5..cd210a76f 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertHeadingValue.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertHeadingValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertHeightLonCarr.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertHeightLonCarr.h index ae99aad2f..756bd14b8 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertHeightLonCarr.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertHeightLonCarr.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertImpactReductionContainer.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertImpactReductionContainer.h index ffff8962e..bd66d5ad4 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertImpactReductionContainer.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertImpactReductionContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertInformationQuality.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertInformationQuality.h index 688bfa9a2..b2a6a062e 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertInformationQuality.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertInformationQuality.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertItineraryPath.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertItineraryPath.h index ab3c38dd3..117221157 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertItineraryPath.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertItineraryPath.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -29,13 +28,16 @@ SOFTWARE. #include +#include #include -#include +#include #include #ifdef ROS1 +#include #include namespace denm_msgs = etsi_its_denm_msgs; #else +#include #include namespace denm_msgs = etsi_its_denm_msgs::msg; #endif diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertItsPduHeader.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertItsPduHeader.h index 5679282ab..3a5e47ce8 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertItsPduHeader.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertItsPduHeader.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertLanePosition.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertLanePosition.h index a462b5b8b..41dbce443 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertLanePosition.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertLanePosition.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertLatitude.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertLatitude.h index a01472379..761b3ba72 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertLatitude.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertLatitude.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertLightBarSirenInUse.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertLightBarSirenInUse.h index f3d61f07c..8845e038e 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertLightBarSirenInUse.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertLightBarSirenInUse.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertLocationContainer.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertLocationContainer.h index 1e8cd3632..2690a8af8 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertLocationContainer.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertLocationContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertLongitude.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertLongitude.h index 6efe16300..1ba9bd5b3 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertLongitude.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertLongitude.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertManagementContainer.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertManagementContainer.h index 6b04962fd..c09ebb4fd 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertManagementContainer.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertManagementContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertNumberOfOccupants.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertNumberOfOccupants.h index 6cdeaaaaa..6130ff744 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertNumberOfOccupants.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertNumberOfOccupants.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPathDeltaTime.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPathDeltaTime.h index 6fc59f895..3792d63f3 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPathDeltaTime.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPathDeltaTime.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPathHistory.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPathHistory.h index e318a23e9..4b74d9c36 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPathHistory.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPathHistory.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -29,13 +28,16 @@ SOFTWARE. #include +#include #include -#include +#include #include #ifdef ROS1 +#include #include namespace denm_msgs = etsi_its_denm_msgs; #else +#include #include namespace denm_msgs = etsi_its_denm_msgs::msg; #endif diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPathPoint.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPathPoint.h index 27443fc69..18b66b20d 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPathPoint.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPathPoint.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPhoneNumber.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPhoneNumber.h index e7f9f597f..f029e39fc 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPhoneNumber.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPhoneNumber.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPosCentMass.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPosCentMass.h index fb7c1ec2c..11f0902a1 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPosCentMass.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPosCentMass.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPosConfidenceEllipse.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPosConfidenceEllipse.h index e2040e82d..a2ae89140 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPosConfidenceEllipse.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPosConfidenceEllipse.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPosFrontAx.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPosFrontAx.h index 6aac44c40..d424ee088 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPosFrontAx.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPosFrontAx.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPosLonCarr.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPosLonCarr.h index 48ae4eb5d..2ae9923a3 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPosLonCarr.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPosLonCarr.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPosPillar.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPosPillar.h index af61c643f..8ab6676f2 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPosPillar.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPosPillar.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPositionOfOccupants.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPositionOfOccupants.h index 85911f984..d205d9952 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPositionOfOccupants.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPositionOfOccupants.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPositionOfPillars.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPositionOfPillars.h index 82365e268..c51104fe0 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPositionOfPillars.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPositionOfPillars.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -29,13 +28,16 @@ SOFTWARE. #include +#include #include +#include #include -#include #ifdef ROS1 +#include #include namespace denm_msgs = etsi_its_denm_msgs; #else +#include #include namespace denm_msgs = etsi_its_denm_msgs::msg; #endif diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPositioningSolutionType.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPositioningSolutionType.h index 61cbba0bb..ce8c70a43 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPositioningSolutionType.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertPositioningSolutionType.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertReferenceDenms.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertReferenceDenms.h index c6d7374bf..fd3075aa3 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertReferenceDenms.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertReferenceDenms.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -29,13 +28,16 @@ SOFTWARE. #include +#include #include +#include #include -#include #ifdef ROS1 +#include #include namespace denm_msgs = etsi_its_denm_msgs; #else +#include #include namespace denm_msgs = etsi_its_denm_msgs::msg; #endif diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertReferencePosition.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertReferencePosition.h index 5194e9f2b..4d20f75cc 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertReferencePosition.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertReferencePosition.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertRelevanceDistance.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertRelevanceDistance.h index 40557b554..4882efaa0 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertRelevanceDistance.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertRelevanceDistance.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertRelevanceTrafficDirection.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertRelevanceTrafficDirection.h index 98e6f0998..bb5cdf7b5 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertRelevanceTrafficDirection.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertRelevanceTrafficDirection.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertRequestResponseIndication.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertRequestResponseIndication.h index 100f67b6f..39751d5aa 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertRequestResponseIndication.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertRequestResponseIndication.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertRestrictedTypes.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertRestrictedTypes.h index 6e818cf56..49f607610 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertRestrictedTypes.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertRestrictedTypes.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -29,13 +28,16 @@ SOFTWARE. #include +#include #include -#include +#include #include #ifdef ROS1 +#include #include namespace denm_msgs = etsi_its_denm_msgs; #else +#include #include namespace denm_msgs = etsi_its_denm_msgs::msg; #endif diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertRoadType.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertRoadType.h index 6241f6866..50c334c82 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertRoadType.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertRoadType.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertRoadWorksContainerExtended.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertRoadWorksContainerExtended.h index fa3000dc7..456d2a54a 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertRoadWorksContainerExtended.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertRoadWorksContainerExtended.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSemiAxisLength.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSemiAxisLength.h index 73a8789c5..952ee4f44 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSemiAxisLength.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSemiAxisLength.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSequenceNumber.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSequenceNumber.h index 728e2865f..fb2073aae 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSequenceNumber.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSequenceNumber.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSituationContainer.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSituationContainer.h index 8b55d9ccd..c6cc46d88 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSituationContainer.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSituationContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSpeed.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSpeed.h index 69ce6ba6e..48753e356 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSpeed.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSpeed.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSpeedConfidence.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSpeedConfidence.h index ba92c4a74..67bf08f23 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSpeedConfidence.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSpeedConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSpeedLimit.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSpeedLimit.h index e169e3ac1..d4714109d 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSpeedLimit.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSpeedLimit.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSpeedValue.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSpeedValue.h index 862aa1672..6b6aa5677 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSpeedValue.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSpeedValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertStationID.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertStationID.h index 8e31fd050..207aa022a 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertStationID.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertStationID.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertStationType.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertStationType.h index d4210370f..4d3e980cf 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertStationType.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertStationType.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertStationarySince.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertStationarySince.h index 5ecca7488..296e3f502 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertStationarySince.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertStationarySince.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertStationaryVehicleContainer.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertStationaryVehicleContainer.h index ea68ace1d..03cb6a6f9 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertStationaryVehicleContainer.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertStationaryVehicleContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSubCauseCodeType.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSubCauseCodeType.h index 10c5d3d8f..db2be2449 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSubCauseCodeType.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertSubCauseCodeType.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTemperature.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTemperature.h index 7b834698d..12a82882c 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTemperature.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTemperature.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTermination.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTermination.h index 879dbf752..779305210 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTermination.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTermination.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTimestampIts.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTimestampIts.h index 617e35333..6b6ec562b 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTimestampIts.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTimestampIts.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTraces.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTraces.h index 28fdf53a4..b396ce2e4 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTraces.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTraces.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -29,13 +28,16 @@ SOFTWARE. #include +#include #include +#include #include -#include #ifdef ROS1 +#include #include namespace denm_msgs = etsi_its_denm_msgs; #else +#include #include namespace denm_msgs = etsi_its_denm_msgs::msg; #endif diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTrafficRule.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTrafficRule.h index cf3f02468..60d0e970d 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTrafficRule.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTrafficRule.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTransmissionInterval.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTransmissionInterval.h index 266f14a83..d54c68452 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTransmissionInterval.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTransmissionInterval.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTurningRadius.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTurningRadius.h index 14a8e339a..8173c99ba 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTurningRadius.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertTurningRadius.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertVDS.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertVDS.h index 9182b6ad4..a73cb3082 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertVDS.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertVDS.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertValidityDuration.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertValidityDuration.h index 4ecd3ae65..647f5c9a3 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertValidityDuration.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertValidityDuration.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertVehicleIdentification.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertVehicleIdentification.h index fad83c41f..a5ec23bd7 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertVehicleIdentification.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertVehicleIdentification.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -43,25 +42,25 @@ namespace etsi_its_denm_conversion { void toRos_VehicleIdentification(const denm_VehicleIdentification_t& in, denm_msgs::VehicleIdentification& out) { if (in.wMInumber) { - toRos_WMInumber(*in.wMInumber, out.w_m_inumber); - out.w_m_inumber_is_present = true; + toRos_WMInumber(*in.wMInumber, out.wm_inumber); + out.wm_inumber_is_present = true; } if (in.vDS) { - toRos_VDS(*in.vDS, out.v_ds); - out.v_ds_is_present = true; + toRos_VDS(*in.vDS, out.vds); + out.vds_is_present = true; } } void toStruct_VehicleIdentification(const denm_msgs::VehicleIdentification& in, denm_VehicleIdentification_t& out) { memset(&out, 0, sizeof(denm_VehicleIdentification_t)); - if (in.w_m_inumber_is_present) { + if (in.wm_inumber_is_present) { out.wMInumber = (denm_WMInumber_t*) calloc(1, sizeof(denm_WMInumber_t)); - toStruct_WMInumber(in.w_m_inumber, *out.wMInumber); + toStruct_WMInumber(in.wm_inumber, *out.wMInumber); } - if (in.v_ds_is_present) { + if (in.vds_is_present) { out.vDS = (denm_VDS_t*) calloc(1, sizeof(denm_VDS_t)); - toStruct_VDS(in.v_ds, *out.vDS); + toStruct_VDS(in.vds, *out.vDS); } } diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertVehicleMass.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertVehicleMass.h index cea9c0cb1..5354b12e1 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertVehicleMass.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertVehicleMass.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertWMInumber.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertWMInumber.h index 302b73b41..66a843c3e 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertWMInumber.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertWMInumber.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertWheelBaseVehicle.h b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertWheelBaseVehicle.h index 4de2088c6..3490c6097 100644 --- a/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertWheelBaseVehicle.h +++ b/etsi_its_conversion/etsi_its_denm_conversion/include/etsi_its_denm_conversion/convertWheelBaseVehicle.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/CMakeLists.txt b/etsi_its_conversion/etsi_its_mapem_ts_conversion/CMakeLists.txt new file mode 100644 index 000000000..8def0c36e --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/CMakeLists.txt @@ -0,0 +1,80 @@ +cmake_minimum_required(VERSION 3.5) +project(etsi_its_mapem_ts_conversion) + +find_package(ros_environment REQUIRED QUIET) +set(ROS_VERSION $ENV{ROS_VERSION}) + +# === ROS 2 (AMENT) ============================================================ +if(${ROS_VERSION} EQUAL 2) + + add_compile_definitions(ROS2) + + find_package(ament_cmake REQUIRED) + find_package(etsi_its_mapem_ts_coding REQUIRED) + find_package(etsi_its_mapem_ts_msgs REQUIRED) + find_package(etsi_its_primitives_conversion REQUIRED) + + add_library(${PROJECT_NAME} INTERFACE) + + target_include_directories(${PROJECT_NAME} INTERFACE + $ + $ + ) + + target_link_libraries(${PROJECT_NAME} INTERFACE + ${etsi_its_mapem_ts_coding_TARGETS} + ${etsi_its_mapem_ts_msgs_TARGETS} + ${etsi_its_primitives_conversion_TARGETS} + ) + + ament_export_targets(${PROJECT_NAME}Targets HAS_LIBRARY_TARGET) + ament_export_dependencies( + etsi_its_mapem_ts_coding + etsi_its_mapem_ts_msgs + etsi_its_primitives_conversion + ) + + install(DIRECTORY include/ + DESTINATION include/${PROJECT_NAME} + ) + + install(TARGETS ${PROJECT_NAME} + EXPORT ${PROJECT_NAME}Targets + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION lib + INCLUDES DESTINATION include + ) + + ament_package() + +# === ROS (CATKIN) ============================================================= +elseif(${ROS_VERSION} EQUAL 1) + + add_compile_definitions(ROS1) + + find_package(catkin REQUIRED COMPONENTS + etsi_its_mapem_ts_coding + etsi_its_mapem_ts_msgs + etsi_its_primitives_conversion + ) + + catkin_package( + INCLUDE_DIRS include + CATKIN_DEPENDS etsi_its_mapem_ts_coding etsi_its_mapem_ts_msgs etsi_its_primitives_conversion + ) + + include_directories( + include + ${catkin_INCLUDE_DIRS} + ) + + install(DIRECTORY include/${PROJECT_NAME}/ + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} + ) + + install(FILES + DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} + ) + +endif() diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertAllowedManeuvers.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertAllowedManeuvers.h new file mode 100644 index 000000000..d0ae0606a --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertAllowedManeuvers.h @@ -0,0 +1,55 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_AllowedManeuvers(const mapem_ts_AllowedManeuvers_t& in, mapem_ts_msgs::AllowedManeuvers& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_AllowedManeuvers(const mapem_ts_msgs::AllowedManeuvers& in, mapem_ts_AllowedManeuvers_t& out) { + memset(&out, 0, sizeof(mapem_ts_AllowedManeuvers_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertAngle.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertAngle.h new file mode 100644 index 000000000..582cf84c5 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertAngle.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_Angle(const mapem_ts_Angle_t& in, mapem_ts_msgs::Angle& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_Angle(const mapem_ts_msgs::Angle& in, mapem_ts_Angle_t& out) { + memset(&out, 0, sizeof(mapem_ts_Angle_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertApproachID.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertApproachID.h new file mode 100644 index 000000000..c60c3a40b --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertApproachID.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_ApproachID(const mapem_ts_ApproachID_t& in, mapem_ts_msgs::ApproachID& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_ApproachID(const mapem_ts_msgs::ApproachID& in, mapem_ts_ApproachID_t& out) { + memset(&out, 0, sizeof(mapem_ts_ApproachID_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertComputedLane.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertComputedLane.h new file mode 100644 index 000000000..649c7e34b --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertComputedLane.h @@ -0,0 +1,112 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_ComputedLane(const mapem_ts_ComputedLane_t& in, mapem_ts_msgs::ComputedLane& out) { + toRos_LaneID(in.referenceLaneId, out.reference_lane_id); + if (in.offsetXaxis.present == mapem_ts_ComputedLane__offsetXaxis_PR::mapem_ts_ComputedLane__offsetXaxis_PR_small) { + toRos_DrivenLineOffsetSm(in.offsetXaxis.choice.small, out.offset_xaxis_small); + out.offset_xaxis_choice = mapem_ts_msgs::ComputedLane::CHOICE_OFFSET_XAXIS_SMALL; + } + if (in.offsetXaxis.present == mapem_ts_ComputedLane__offsetXaxis_PR::mapem_ts_ComputedLane__offsetXaxis_PR_large) { + toRos_DrivenLineOffsetLg(in.offsetXaxis.choice.large, out.offset_xaxis_large); + out.offset_xaxis_choice = mapem_ts_msgs::ComputedLane::CHOICE_OFFSET_XAXIS_LARGE; + } + if (in.offsetYaxis.present == mapem_ts_ComputedLane__offsetYaxis_PR::mapem_ts_ComputedLane__offsetYaxis_PR_small) { + toRos_DrivenLineOffsetSm(in.offsetYaxis.choice.small, out.offset_yaxis_small); + out.offset_yaxis_choice = mapem_ts_msgs::ComputedLane::CHOICE_OFFSET_YAXIS_SMALL; + } + if (in.offsetYaxis.present == mapem_ts_ComputedLane__offsetYaxis_PR::mapem_ts_ComputedLane__offsetYaxis_PR_large) { + toRos_DrivenLineOffsetLg(in.offsetYaxis.choice.large, out.offset_yaxis_large); + out.offset_yaxis_choice = mapem_ts_msgs::ComputedLane::CHOICE_OFFSET_YAXIS_LARGE; + } + if (in.rotateXY) { + toRos_Angle(*in.rotateXY, out.rotate_xy); + out.rotate_xy_is_present = true; + } + if (in.scaleXaxis) { + toRos_ScaleB12(*in.scaleXaxis, out.scale_xaxis); + out.scale_xaxis_is_present = true; + } + if (in.scaleYaxis) { + toRos_ScaleB12(*in.scaleYaxis, out.scale_yaxis); + out.scale_yaxis_is_present = true; + } +} + +void toStruct_ComputedLane(const mapem_ts_msgs::ComputedLane& in, mapem_ts_ComputedLane_t& out) { + memset(&out, 0, sizeof(mapem_ts_ComputedLane_t)); + + toStruct_LaneID(in.reference_lane_id, out.referenceLaneId); + if (in.offset_xaxis_choice == mapem_ts_msgs::ComputedLane::CHOICE_OFFSET_XAXIS_SMALL) { + toStruct_DrivenLineOffsetSm(in.offset_xaxis_small, out.offsetXaxis.choice.small); + out.offsetXaxis.present = mapem_ts_ComputedLane__offsetXaxis_PR::mapem_ts_ComputedLane__offsetXaxis_PR_small; + } + if (in.offset_xaxis_choice == mapem_ts_msgs::ComputedLane::CHOICE_OFFSET_XAXIS_LARGE) { + toStruct_DrivenLineOffsetLg(in.offset_xaxis_large, out.offsetXaxis.choice.large); + out.offsetXaxis.present = mapem_ts_ComputedLane__offsetXaxis_PR::mapem_ts_ComputedLane__offsetXaxis_PR_large; + } + if (in.offset_yaxis_choice == mapem_ts_msgs::ComputedLane::CHOICE_OFFSET_YAXIS_SMALL) { + toStruct_DrivenLineOffsetSm(in.offset_yaxis_small, out.offsetYaxis.choice.small); + out.offsetYaxis.present = mapem_ts_ComputedLane__offsetYaxis_PR::mapem_ts_ComputedLane__offsetYaxis_PR_small; + } + if (in.offset_yaxis_choice == mapem_ts_msgs::ComputedLane::CHOICE_OFFSET_YAXIS_LARGE) { + toStruct_DrivenLineOffsetLg(in.offset_yaxis_large, out.offsetYaxis.choice.large); + out.offsetYaxis.present = mapem_ts_ComputedLane__offsetYaxis_PR::mapem_ts_ComputedLane__offsetYaxis_PR_large; + } + if (in.rotate_xy_is_present) { + out.rotateXY = (mapem_ts_Angle_t*) calloc(1, sizeof(mapem_ts_Angle_t)); + toStruct_Angle(in.rotate_xy, *out.rotateXY); + } + if (in.scale_xaxis_is_present) { + out.scaleXaxis = (mapem_ts_Scale_B12_t*) calloc(1, sizeof(mapem_ts_Scale_B12_t)); + toStruct_ScaleB12(in.scale_xaxis, *out.scaleXaxis); + } + if (in.scale_yaxis_is_present) { + out.scaleYaxis = (mapem_ts_Scale_B12_t*) calloc(1, sizeof(mapem_ts_Scale_B12_t)); + toStruct_ScaleB12(in.scale_yaxis, *out.scaleYaxis); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertConnectingLane.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertConnectingLane.h new file mode 100644 index 000000000..0ce05db42 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertConnectingLane.h @@ -0,0 +1,61 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_ConnectingLane(const mapem_ts_ConnectingLane_t& in, mapem_ts_msgs::ConnectingLane& out) { + toRos_LaneID(in.lane, out.lane); + if (in.maneuver) { + toRos_AllowedManeuvers(*in.maneuver, out.maneuver); + out.maneuver_is_present = true; + } +} + +void toStruct_ConnectingLane(const mapem_ts_msgs::ConnectingLane& in, mapem_ts_ConnectingLane_t& out) { + memset(&out, 0, sizeof(mapem_ts_ConnectingLane_t)); + + toStruct_LaneID(in.lane, out.lane); + if (in.maneuver_is_present) { + out.maneuver = (mapem_ts_AllowedManeuvers_t*) calloc(1, sizeof(mapem_ts_AllowedManeuvers_t)); + toStruct_AllowedManeuvers(in.maneuver, *out.maneuver); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertConnection.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertConnection.h new file mode 100644 index 000000000..7da882d51 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertConnection.h @@ -0,0 +1,88 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_Connection(const mapem_ts_Connection_t& in, mapem_ts_msgs::Connection& out) { + toRos_ConnectingLane(in.connectingLane, out.connecting_lane); + if (in.remoteIntersection) { + toRos_IntersectionReferenceID(*in.remoteIntersection, out.remote_intersection); + out.remote_intersection_is_present = true; + } + if (in.signalGroup) { + toRos_SignalGroupID(*in.signalGroup, out.signal_group); + out.signal_group_is_present = true; + } + if (in.userClass) { + toRos_RestrictionClassID(*in.userClass, out.user_class); + out.user_class_is_present = true; + } + if (in.connectionID) { + toRos_LaneConnectionID(*in.connectionID, out.connection_id); + out.connection_id_is_present = true; + } +} + +void toStruct_Connection(const mapem_ts_msgs::Connection& in, mapem_ts_Connection_t& out) { + memset(&out, 0, sizeof(mapem_ts_Connection_t)); + + toStruct_ConnectingLane(in.connecting_lane, out.connectingLane); + if (in.remote_intersection_is_present) { + out.remoteIntersection = (mapem_ts_IntersectionReferenceID_t*) calloc(1, sizeof(mapem_ts_IntersectionReferenceID_t)); + toStruct_IntersectionReferenceID(in.remote_intersection, *out.remoteIntersection); + } + if (in.signal_group_is_present) { + out.signalGroup = (mapem_ts_SignalGroupID_t*) calloc(1, sizeof(mapem_ts_SignalGroupID_t)); + toStruct_SignalGroupID(in.signal_group, *out.signalGroup); + } + if (in.user_class_is_present) { + out.userClass = (mapem_ts_RestrictionClassID_t*) calloc(1, sizeof(mapem_ts_RestrictionClassID_t)); + toStruct_RestrictionClassID(in.user_class, *out.userClass); + } + if (in.connection_id_is_present) { + out.connectionID = (mapem_ts_LaneConnectionID_t*) calloc(1, sizeof(mapem_ts_LaneConnectionID_t)); + toStruct_LaneConnectionID(in.connection_id, *out.connectionID); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertConnectsToList.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertConnectsToList.h new file mode 100644 index 000000000..680a6fd0c --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertConnectsToList.h @@ -0,0 +1,66 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#include +#ifdef ROS1 +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_ConnectsToList(const mapem_ts_ConnectsToList_t& in, mapem_ts_msgs::ConnectsToList& out) { + for (int i = 0; i < in.list.count; ++i) { + mapem_ts_msgs::Connection el; + toRos_Connection(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_ConnectsToList(const mapem_ts_msgs::ConnectsToList& in, mapem_ts_ConnectsToList_t& out) { + memset(&out, 0, sizeof(mapem_ts_ConnectsToList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + mapem_ts_Connection_t* el = (mapem_ts_Connection_t*) calloc(1, sizeof(mapem_ts_Connection_t)); + toStruct_Connection(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertDataParameters.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertDataParameters.h new file mode 100644 index 000000000..b05350583 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertDataParameters.h @@ -0,0 +1,83 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_DataParameters(const mapem_ts_DataParameters_t& in, mapem_ts_msgs::DataParameters& out) { + if (in.processMethod) { + etsi_its_primitives_conversion::toRos_IA5String(*in.processMethod, out.process_method); + out.process_method_is_present = true; + } + if (in.processAgency) { + etsi_its_primitives_conversion::toRos_IA5String(*in.processAgency, out.process_agency); + out.process_agency_is_present = true; + } + if (in.lastCheckedDate) { + etsi_its_primitives_conversion::toRos_IA5String(*in.lastCheckedDate, out.last_checked_date); + out.last_checked_date_is_present = true; + } + if (in.geoidUsed) { + etsi_its_primitives_conversion::toRos_IA5String(*in.geoidUsed, out.geoid_used); + out.geoid_used_is_present = true; + } +} + +void toStruct_DataParameters(const mapem_ts_msgs::DataParameters& in, mapem_ts_DataParameters_t& out) { + memset(&out, 0, sizeof(mapem_ts_DataParameters_t)); + + if (in.process_method_is_present) { + out.processMethod = (IA5String_t*) calloc(1, sizeof(IA5String_t)); + etsi_its_primitives_conversion::toStruct_IA5String(in.process_method, *out.processMethod); + } + if (in.process_agency_is_present) { + out.processAgency = (IA5String_t*) calloc(1, sizeof(IA5String_t)); + etsi_its_primitives_conversion::toStruct_IA5String(in.process_agency, *out.processAgency); + } + if (in.last_checked_date_is_present) { + out.lastCheckedDate = (IA5String_t*) calloc(1, sizeof(IA5String_t)); + etsi_its_primitives_conversion::toStruct_IA5String(in.last_checked_date, *out.lastCheckedDate); + } + if (in.geoid_used_is_present) { + out.geoidUsed = (IA5String_t*) calloc(1, sizeof(IA5String_t)); + etsi_its_primitives_conversion::toStruct_IA5String(in.geoid_used, *out.geoidUsed); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertDeltaAngle.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertDeltaAngle.h new file mode 100644 index 000000000..5de540d70 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertDeltaAngle.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_DeltaAngle(const mapem_ts_DeltaAngle_t& in, mapem_ts_msgs::DeltaAngle& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_DeltaAngle(const mapem_ts_msgs::DeltaAngle& in, mapem_ts_DeltaAngle_t& out) { + memset(&out, 0, sizeof(mapem_ts_DeltaAngle_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertDescriptiveName.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertDescriptiveName.h new file mode 100644 index 000000000..ad67bf020 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertDescriptiveName.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_DescriptiveName(const mapem_ts_DescriptiveName_t& in, mapem_ts_msgs::DescriptiveName& out) { + etsi_its_primitives_conversion::toRos_IA5String(in, out.value); +} + +void toStruct_DescriptiveName(const mapem_ts_msgs::DescriptiveName& in, mapem_ts_DescriptiveName_t& out) { + memset(&out, 0, sizeof(mapem_ts_DescriptiveName_t)); + + etsi_its_primitives_conversion::toStruct_IA5String(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertDrivenLineOffsetLg.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertDrivenLineOffsetLg.h new file mode 100644 index 000000000..2defc328a --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertDrivenLineOffsetLg.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_DrivenLineOffsetLg(const mapem_ts_DrivenLineOffsetLg_t& in, mapem_ts_msgs::DrivenLineOffsetLg& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_DrivenLineOffsetLg(const mapem_ts_msgs::DrivenLineOffsetLg& in, mapem_ts_DrivenLineOffsetLg_t& out) { + memset(&out, 0, sizeof(mapem_ts_DrivenLineOffsetLg_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertDrivenLineOffsetSm.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertDrivenLineOffsetSm.h new file mode 100644 index 000000000..6ba50318f --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertDrivenLineOffsetSm.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_DrivenLineOffsetSm(const mapem_ts_DrivenLineOffsetSm_t& in, mapem_ts_msgs::DrivenLineOffsetSm& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_DrivenLineOffsetSm(const mapem_ts_msgs::DrivenLineOffsetSm& in, mapem_ts_DrivenLineOffsetSm_t& out) { + memset(&out, 0, sizeof(mapem_ts_DrivenLineOffsetSm_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertElevation.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertElevation.h new file mode 100644 index 000000000..147cdd882 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertElevation.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_Elevation(const mapem_ts_Elevation_t& in, mapem_ts_msgs::Elevation& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_Elevation(const mapem_ts_msgs::Elevation& in, mapem_ts_Elevation_t& out) { + memset(&out, 0, sizeof(mapem_ts_Elevation_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertGenericLane.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertGenericLane.h new file mode 100644 index 000000000..39135ff00 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertGenericLane.h @@ -0,0 +1,111 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_GenericLane(const mapem_ts_GenericLane_t& in, mapem_ts_msgs::GenericLane& out) { + toRos_LaneID(in.laneID, out.lane_id); + if (in.name) { + toRos_DescriptiveName(*in.name, out.name); + out.name_is_present = true; + } + if (in.ingressApproach) { + toRos_ApproachID(*in.ingressApproach, out.ingress_approach); + out.ingress_approach_is_present = true; + } + if (in.egressApproach) { + toRos_ApproachID(*in.egressApproach, out.egress_approach); + out.egress_approach_is_present = true; + } + toRos_LaneAttributes(in.laneAttributes, out.lane_attributes); + if (in.maneuvers) { + toRos_AllowedManeuvers(*in.maneuvers, out.maneuvers); + out.maneuvers_is_present = true; + } + toRos_NodeListXY(in.nodeList, out.node_list); + if (in.connectsTo) { + toRos_ConnectsToList(*in.connectsTo, out.connects_to); + out.connects_to_is_present = true; + } + if (in.overlays) { + toRos_OverlayLaneList(*in.overlays, out.overlays); + out.overlays_is_present = true; + } +} + +void toStruct_GenericLane(const mapem_ts_msgs::GenericLane& in, mapem_ts_GenericLane_t& out) { + memset(&out, 0, sizeof(mapem_ts_GenericLane_t)); + + toStruct_LaneID(in.lane_id, out.laneID); + if (in.name_is_present) { + out.name = (mapem_ts_DescriptiveName_t*) calloc(1, sizeof(mapem_ts_DescriptiveName_t)); + toStruct_DescriptiveName(in.name, *out.name); + } + if (in.ingress_approach_is_present) { + out.ingressApproach = (mapem_ts_ApproachID_t*) calloc(1, sizeof(mapem_ts_ApproachID_t)); + toStruct_ApproachID(in.ingress_approach, *out.ingressApproach); + } + if (in.egress_approach_is_present) { + out.egressApproach = (mapem_ts_ApproachID_t*) calloc(1, sizeof(mapem_ts_ApproachID_t)); + toStruct_ApproachID(in.egress_approach, *out.egressApproach); + } + toStruct_LaneAttributes(in.lane_attributes, out.laneAttributes); + if (in.maneuvers_is_present) { + out.maneuvers = (mapem_ts_AllowedManeuvers_t*) calloc(1, sizeof(mapem_ts_AllowedManeuvers_t)); + toStruct_AllowedManeuvers(in.maneuvers, *out.maneuvers); + } + toStruct_NodeListXY(in.node_list, out.nodeList); + if (in.connects_to_is_present) { + out.connectsTo = (mapem_ts_ConnectsToList_t*) calloc(1, sizeof(mapem_ts_ConnectsToList_t)); + toStruct_ConnectsToList(in.connects_to, *out.connectsTo); + } + if (in.overlays_is_present) { + out.overlays = (mapem_ts_OverlayLaneList_t*) calloc(1, sizeof(mapem_ts_OverlayLaneList_t)); + toStruct_OverlayLaneList(in.overlays, *out.overlays); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertIntersectionGeometry.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertIntersectionGeometry.h new file mode 100644 index 000000000..251bc9e67 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertIntersectionGeometry.h @@ -0,0 +1,97 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_IntersectionGeometry(const mapem_ts_IntersectionGeometry_t& in, mapem_ts_msgs::IntersectionGeometry& out) { + if (in.name) { + toRos_DescriptiveName(*in.name, out.name); + out.name_is_present = true; + } + toRos_IntersectionReferenceID(in.id, out.id); + toRos_MsgCount(in.revision, out.revision); + toRos_Position3D(in.refPoint, out.ref_point); + if (in.laneWidth) { + toRos_LaneWidth(*in.laneWidth, out.lane_width); + out.lane_width_is_present = true; + } + if (in.speedLimits) { + toRos_SpeedLimitList(*in.speedLimits, out.speed_limits); + out.speed_limits_is_present = true; + } + toRos_LaneList(in.laneSet, out.lane_set); + if (in.preemptPriorityData) { + toRos_PreemptPriorityList(*in.preemptPriorityData, out.preempt_priority_data); + out.preempt_priority_data_is_present = true; + } +} + +void toStruct_IntersectionGeometry(const mapem_ts_msgs::IntersectionGeometry& in, mapem_ts_IntersectionGeometry_t& out) { + memset(&out, 0, sizeof(mapem_ts_IntersectionGeometry_t)); + + if (in.name_is_present) { + out.name = (mapem_ts_DescriptiveName_t*) calloc(1, sizeof(mapem_ts_DescriptiveName_t)); + toStruct_DescriptiveName(in.name, *out.name); + } + toStruct_IntersectionReferenceID(in.id, out.id); + toStruct_MsgCount(in.revision, out.revision); + toStruct_Position3D(in.ref_point, out.refPoint); + if (in.lane_width_is_present) { + out.laneWidth = (mapem_ts_LaneWidth_t*) calloc(1, sizeof(mapem_ts_LaneWidth_t)); + toStruct_LaneWidth(in.lane_width, *out.laneWidth); + } + if (in.speed_limits_is_present) { + out.speedLimits = (mapem_ts_SpeedLimitList_t*) calloc(1, sizeof(mapem_ts_SpeedLimitList_t)); + toStruct_SpeedLimitList(in.speed_limits, *out.speedLimits); + } + toStruct_LaneList(in.lane_set, out.laneSet); + if (in.preempt_priority_data_is_present) { + out.preemptPriorityData = (mapem_ts_PreemptPriorityList_t*) calloc(1, sizeof(mapem_ts_PreemptPriorityList_t)); + toStruct_PreemptPriorityList(in.preempt_priority_data, *out.preemptPriorityData); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertIntersectionGeometryList.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertIntersectionGeometryList.h new file mode 100644 index 000000000..6a6bbffde --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertIntersectionGeometryList.h @@ -0,0 +1,66 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#include +#ifdef ROS1 +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_IntersectionGeometryList(const mapem_ts_IntersectionGeometryList_t& in, mapem_ts_msgs::IntersectionGeometryList& out) { + for (int i = 0; i < in.list.count; ++i) { + mapem_ts_msgs::IntersectionGeometry el; + toRos_IntersectionGeometry(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_IntersectionGeometryList(const mapem_ts_msgs::IntersectionGeometryList& in, mapem_ts_IntersectionGeometryList_t& out) { + memset(&out, 0, sizeof(mapem_ts_IntersectionGeometryList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + mapem_ts_IntersectionGeometry_t* el = (mapem_ts_IntersectionGeometry_t*) calloc(1, sizeof(mapem_ts_IntersectionGeometry_t)); + toStruct_IntersectionGeometry(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertIntersectionID.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertIntersectionID.h new file mode 100644 index 000000000..14a3790bf --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertIntersectionID.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_IntersectionID(const mapem_ts_IntersectionID_t& in, mapem_ts_msgs::IntersectionID& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_IntersectionID(const mapem_ts_msgs::IntersectionID& in, mapem_ts_IntersectionID_t& out) { + memset(&out, 0, sizeof(mapem_ts_IntersectionID_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertIntersectionReferenceID.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertIntersectionReferenceID.h new file mode 100644 index 000000000..d9fb7aeaf --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertIntersectionReferenceID.h @@ -0,0 +1,61 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_IntersectionReferenceID(const mapem_ts_IntersectionReferenceID_t& in, mapem_ts_msgs::IntersectionReferenceID& out) { + if (in.region) { + toRos_RoadRegulatorID(*in.region, out.region); + out.region_is_present = true; + } + toRos_IntersectionID(in.id, out.id); +} + +void toStruct_IntersectionReferenceID(const mapem_ts_msgs::IntersectionReferenceID& in, mapem_ts_IntersectionReferenceID_t& out) { + memset(&out, 0, sizeof(mapem_ts_IntersectionReferenceID_t)); + + if (in.region_is_present) { + out.region = (mapem_ts_RoadRegulatorID_t*) calloc(1, sizeof(mapem_ts_RoadRegulatorID_t)); + toStruct_RoadRegulatorID(in.region, *out.region); + } + toStruct_IntersectionID(in.id, out.id); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertItsPduHeader.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertItsPduHeader.h new file mode 100644 index 000000000..8bd02e2dc --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertItsPduHeader.h @@ -0,0 +1,58 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_ItsPduHeader(const mapem_ts_ItsPduHeader_t& in, mapem_ts_msgs::ItsPduHeader& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in.protocolVersion, out.protocol_version); + etsi_its_primitives_conversion::toRos_INTEGER(in.messageID, out.message_id); + toRos_StationID(in.stationID, out.station_id); +} + +void toStruct_ItsPduHeader(const mapem_ts_msgs::ItsPduHeader& in, mapem_ts_ItsPduHeader_t& out) { + memset(&out, 0, sizeof(mapem_ts_ItsPduHeader_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.protocol_version, out.protocolVersion); + etsi_its_primitives_conversion::toStruct_INTEGER(in.message_id, out.messageID); + toStruct_StationID(in.station_id, out.stationID); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributes.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributes.h new file mode 100644 index 000000000..d6dd4bdf9 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributes.h @@ -0,0 +1,58 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_LaneAttributes(const mapem_ts_LaneAttributes_t& in, mapem_ts_msgs::LaneAttributes& out) { + toRos_LaneDirection(in.directionalUse, out.directional_use); + toRos_LaneSharing(in.sharedWith, out.shared_with); + toRos_LaneTypeAttributes(in.laneType, out.lane_type); +} + +void toStruct_LaneAttributes(const mapem_ts_msgs::LaneAttributes& in, mapem_ts_LaneAttributes_t& out) { + memset(&out, 0, sizeof(mapem_ts_LaneAttributes_t)); + + toStruct_LaneDirection(in.directional_use, out.directionalUse); + toStruct_LaneSharing(in.shared_with, out.sharedWith); + toStruct_LaneTypeAttributes(in.lane_type, out.laneType); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributesBarrier.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributesBarrier.h new file mode 100644 index 000000000..699cc665d --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributesBarrier.h @@ -0,0 +1,55 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_LaneAttributesBarrier(const mapem_ts_LaneAttributes_Barrier_t& in, mapem_ts_msgs::LaneAttributesBarrier& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_LaneAttributesBarrier(const mapem_ts_msgs::LaneAttributesBarrier& in, mapem_ts_LaneAttributes_Barrier_t& out) { + memset(&out, 0, sizeof(mapem_ts_LaneAttributes_Barrier_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributesBike.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributesBike.h new file mode 100644 index 000000000..9cb02a256 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributesBike.h @@ -0,0 +1,55 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_LaneAttributesBike(const mapem_ts_LaneAttributes_Bike_t& in, mapem_ts_msgs::LaneAttributesBike& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_LaneAttributesBike(const mapem_ts_msgs::LaneAttributesBike& in, mapem_ts_LaneAttributes_Bike_t& out) { + memset(&out, 0, sizeof(mapem_ts_LaneAttributes_Bike_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributesCrosswalk.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributesCrosswalk.h new file mode 100644 index 000000000..f1f66fb8b --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributesCrosswalk.h @@ -0,0 +1,55 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_LaneAttributesCrosswalk(const mapem_ts_LaneAttributes_Crosswalk_t& in, mapem_ts_msgs::LaneAttributesCrosswalk& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_LaneAttributesCrosswalk(const mapem_ts_msgs::LaneAttributesCrosswalk& in, mapem_ts_LaneAttributes_Crosswalk_t& out) { + memset(&out, 0, sizeof(mapem_ts_LaneAttributes_Crosswalk_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributesParking.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributesParking.h new file mode 100644 index 000000000..1ad7a0ecc --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributesParking.h @@ -0,0 +1,55 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_LaneAttributesParking(const mapem_ts_LaneAttributes_Parking_t& in, mapem_ts_msgs::LaneAttributesParking& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_LaneAttributesParking(const mapem_ts_msgs::LaneAttributesParking& in, mapem_ts_LaneAttributes_Parking_t& out) { + memset(&out, 0, sizeof(mapem_ts_LaneAttributes_Parking_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributesSidewalk.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributesSidewalk.h new file mode 100644 index 000000000..1d6037060 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributesSidewalk.h @@ -0,0 +1,55 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_LaneAttributesSidewalk(const mapem_ts_LaneAttributes_Sidewalk_t& in, mapem_ts_msgs::LaneAttributesSidewalk& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_LaneAttributesSidewalk(const mapem_ts_msgs::LaneAttributesSidewalk& in, mapem_ts_LaneAttributes_Sidewalk_t& out) { + memset(&out, 0, sizeof(mapem_ts_LaneAttributes_Sidewalk_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributesStriping.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributesStriping.h new file mode 100644 index 000000000..a1478a8b4 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributesStriping.h @@ -0,0 +1,55 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_LaneAttributesStriping(const mapem_ts_LaneAttributes_Striping_t& in, mapem_ts_msgs::LaneAttributesStriping& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_LaneAttributesStriping(const mapem_ts_msgs::LaneAttributesStriping& in, mapem_ts_LaneAttributes_Striping_t& out) { + memset(&out, 0, sizeof(mapem_ts_LaneAttributes_Striping_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributesTrackedVehicle.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributesTrackedVehicle.h new file mode 100644 index 000000000..041b6402b --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributesTrackedVehicle.h @@ -0,0 +1,55 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_LaneAttributesTrackedVehicle(const mapem_ts_LaneAttributes_TrackedVehicle_t& in, mapem_ts_msgs::LaneAttributesTrackedVehicle& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_LaneAttributesTrackedVehicle(const mapem_ts_msgs::LaneAttributesTrackedVehicle& in, mapem_ts_LaneAttributes_TrackedVehicle_t& out) { + memset(&out, 0, sizeof(mapem_ts_LaneAttributes_TrackedVehicle_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributesVehicle.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributesVehicle.h new file mode 100644 index 000000000..d73c4f4bb --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneAttributesVehicle.h @@ -0,0 +1,55 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_LaneAttributesVehicle(const mapem_ts_LaneAttributes_Vehicle_t& in, mapem_ts_msgs::LaneAttributesVehicle& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_LaneAttributesVehicle(const mapem_ts_msgs::LaneAttributesVehicle& in, mapem_ts_LaneAttributes_Vehicle_t& out) { + memset(&out, 0, sizeof(mapem_ts_LaneAttributes_Vehicle_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneConnectionID.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneConnectionID.h new file mode 100644 index 000000000..233f57bee --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneConnectionID.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_LaneConnectionID(const mapem_ts_LaneConnectionID_t& in, mapem_ts_msgs::LaneConnectionID& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_LaneConnectionID(const mapem_ts_msgs::LaneConnectionID& in, mapem_ts_LaneConnectionID_t& out) { + memset(&out, 0, sizeof(mapem_ts_LaneConnectionID_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneDataAttribute.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneDataAttribute.h new file mode 100644 index 000000000..b4a954c56 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneDataAttribute.h @@ -0,0 +1,107 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_LaneDataAttribute(const mapem_ts_LaneDataAttribute_t& in, mapem_ts_msgs::LaneDataAttribute& out) { + switch (in.present) { + case mapem_ts_LaneDataAttribute_PR_pathEndPointAngle: + toRos_DeltaAngle(in.choice.pathEndPointAngle, out.path_end_point_angle); + out.choice = mapem_ts_msgs::LaneDataAttribute::CHOICE_PATH_END_POINT_ANGLE; + break; + case mapem_ts_LaneDataAttribute_PR_laneCrownPointCenter: + toRos_RoadwayCrownAngle(in.choice.laneCrownPointCenter, out.lane_crown_point_center); + out.choice = mapem_ts_msgs::LaneDataAttribute::CHOICE_LANE_CROWN_POINT_CENTER; + break; + case mapem_ts_LaneDataAttribute_PR_laneCrownPointLeft: + toRos_RoadwayCrownAngle(in.choice.laneCrownPointLeft, out.lane_crown_point_left); + out.choice = mapem_ts_msgs::LaneDataAttribute::CHOICE_LANE_CROWN_POINT_LEFT; + break; + case mapem_ts_LaneDataAttribute_PR_laneCrownPointRight: + toRos_RoadwayCrownAngle(in.choice.laneCrownPointRight, out.lane_crown_point_right); + out.choice = mapem_ts_msgs::LaneDataAttribute::CHOICE_LANE_CROWN_POINT_RIGHT; + break; + case mapem_ts_LaneDataAttribute_PR_laneAngle: + toRos_MergeDivergeNodeAngle(in.choice.laneAngle, out.lane_angle); + out.choice = mapem_ts_msgs::LaneDataAttribute::CHOICE_LANE_ANGLE; + break; + case mapem_ts_LaneDataAttribute_PR_speedLimits: + toRos_SpeedLimitList(in.choice.speedLimits, out.speed_limits); + out.choice = mapem_ts_msgs::LaneDataAttribute::CHOICE_SPEED_LIMITS; + break; + default: break; + } +} + +void toStruct_LaneDataAttribute(const mapem_ts_msgs::LaneDataAttribute& in, mapem_ts_LaneDataAttribute_t& out) { + memset(&out, 0, sizeof(mapem_ts_LaneDataAttribute_t)); + + switch (in.choice) { + case mapem_ts_msgs::LaneDataAttribute::CHOICE_PATH_END_POINT_ANGLE: + toStruct_DeltaAngle(in.path_end_point_angle, out.choice.pathEndPointAngle); + out.present = mapem_ts_LaneDataAttribute_PR::mapem_ts_LaneDataAttribute_PR_pathEndPointAngle; + break; + case mapem_ts_msgs::LaneDataAttribute::CHOICE_LANE_CROWN_POINT_CENTER: + toStruct_RoadwayCrownAngle(in.lane_crown_point_center, out.choice.laneCrownPointCenter); + out.present = mapem_ts_LaneDataAttribute_PR::mapem_ts_LaneDataAttribute_PR_laneCrownPointCenter; + break; + case mapem_ts_msgs::LaneDataAttribute::CHOICE_LANE_CROWN_POINT_LEFT: + toStruct_RoadwayCrownAngle(in.lane_crown_point_left, out.choice.laneCrownPointLeft); + out.present = mapem_ts_LaneDataAttribute_PR::mapem_ts_LaneDataAttribute_PR_laneCrownPointLeft; + break; + case mapem_ts_msgs::LaneDataAttribute::CHOICE_LANE_CROWN_POINT_RIGHT: + toStruct_RoadwayCrownAngle(in.lane_crown_point_right, out.choice.laneCrownPointRight); + out.present = mapem_ts_LaneDataAttribute_PR::mapem_ts_LaneDataAttribute_PR_laneCrownPointRight; + break; + case mapem_ts_msgs::LaneDataAttribute::CHOICE_LANE_ANGLE: + toStruct_MergeDivergeNodeAngle(in.lane_angle, out.choice.laneAngle); + out.present = mapem_ts_LaneDataAttribute_PR::mapem_ts_LaneDataAttribute_PR_laneAngle; + break; + case mapem_ts_msgs::LaneDataAttribute::CHOICE_SPEED_LIMITS: + toStruct_SpeedLimitList(in.speed_limits, out.choice.speedLimits); + out.present = mapem_ts_LaneDataAttribute_PR::mapem_ts_LaneDataAttribute_PR_speedLimits; + break; + default: break; + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneDataAttributeList.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneDataAttributeList.h new file mode 100644 index 000000000..1316979cb --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneDataAttributeList.h @@ -0,0 +1,66 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#include +#ifdef ROS1 +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_LaneDataAttributeList(const mapem_ts_LaneDataAttributeList_t& in, mapem_ts_msgs::LaneDataAttributeList& out) { + for (int i = 0; i < in.list.count; ++i) { + mapem_ts_msgs::LaneDataAttribute el; + toRos_LaneDataAttribute(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_LaneDataAttributeList(const mapem_ts_msgs::LaneDataAttributeList& in, mapem_ts_LaneDataAttributeList_t& out) { + memset(&out, 0, sizeof(mapem_ts_LaneDataAttributeList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + mapem_ts_LaneDataAttribute_t* el = (mapem_ts_LaneDataAttribute_t*) calloc(1, sizeof(mapem_ts_LaneDataAttribute_t)); + toStruct_LaneDataAttribute(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneDirection.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneDirection.h new file mode 100644 index 000000000..018ef7c51 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneDirection.h @@ -0,0 +1,55 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_LaneDirection(const mapem_ts_LaneDirection_t& in, mapem_ts_msgs::LaneDirection& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_LaneDirection(const mapem_ts_msgs::LaneDirection& in, mapem_ts_LaneDirection_t& out) { + memset(&out, 0, sizeof(mapem_ts_LaneDirection_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneID.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneID.h new file mode 100644 index 000000000..d84b6f5e0 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneID.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_LaneID(const mapem_ts_LaneID_t& in, mapem_ts_msgs::LaneID& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_LaneID(const mapem_ts_msgs::LaneID& in, mapem_ts_LaneID_t& out) { + memset(&out, 0, sizeof(mapem_ts_LaneID_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneList.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneList.h new file mode 100644 index 000000000..de12b6c10 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneList.h @@ -0,0 +1,66 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#include +#ifdef ROS1 +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_LaneList(const mapem_ts_LaneList_t& in, mapem_ts_msgs::LaneList& out) { + for (int i = 0; i < in.list.count; ++i) { + mapem_ts_msgs::GenericLane el; + toRos_GenericLane(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_LaneList(const mapem_ts_msgs::LaneList& in, mapem_ts_LaneList_t& out) { + memset(&out, 0, sizeof(mapem_ts_LaneList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + mapem_ts_GenericLane_t* el = (mapem_ts_GenericLane_t*) calloc(1, sizeof(mapem_ts_GenericLane_t)); + toStruct_GenericLane(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneSharing.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneSharing.h new file mode 100644 index 000000000..97d365f4d --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneSharing.h @@ -0,0 +1,55 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_LaneSharing(const mapem_ts_LaneSharing_t& in, mapem_ts_msgs::LaneSharing& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_LaneSharing(const mapem_ts_msgs::LaneSharing& in, mapem_ts_LaneSharing_t& out) { + memset(&out, 0, sizeof(mapem_ts_LaneSharing_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneTypeAttributes.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneTypeAttributes.h new file mode 100644 index 000000000..0c3a98173 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneTypeAttributes.h @@ -0,0 +1,127 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_LaneTypeAttributes(const mapem_ts_LaneTypeAttributes_t& in, mapem_ts_msgs::LaneTypeAttributes& out) { + switch (in.present) { + case mapem_ts_LaneTypeAttributes_PR_vehicle: + toRos_LaneAttributesVehicle(in.choice.vehicle, out.vehicle); + out.choice = mapem_ts_msgs::LaneTypeAttributes::CHOICE_VEHICLE; + break; + case mapem_ts_LaneTypeAttributes_PR_crosswalk: + toRos_LaneAttributesCrosswalk(in.choice.crosswalk, out.crosswalk); + out.choice = mapem_ts_msgs::LaneTypeAttributes::CHOICE_CROSSWALK; + break; + case mapem_ts_LaneTypeAttributes_PR_bikeLane: + toRos_LaneAttributesBike(in.choice.bikeLane, out.bike_lane); + out.choice = mapem_ts_msgs::LaneTypeAttributes::CHOICE_BIKE_LANE; + break; + case mapem_ts_LaneTypeAttributes_PR_sidewalk: + toRos_LaneAttributesSidewalk(in.choice.sidewalk, out.sidewalk); + out.choice = mapem_ts_msgs::LaneTypeAttributes::CHOICE_SIDEWALK; + break; + case mapem_ts_LaneTypeAttributes_PR_median: + toRos_LaneAttributesBarrier(in.choice.median, out.median); + out.choice = mapem_ts_msgs::LaneTypeAttributes::CHOICE_MEDIAN; + break; + case mapem_ts_LaneTypeAttributes_PR_striping: + toRos_LaneAttributesStriping(in.choice.striping, out.striping); + out.choice = mapem_ts_msgs::LaneTypeAttributes::CHOICE_STRIPING; + break; + case mapem_ts_LaneTypeAttributes_PR_trackedVehicle: + toRos_LaneAttributesTrackedVehicle(in.choice.trackedVehicle, out.tracked_vehicle); + out.choice = mapem_ts_msgs::LaneTypeAttributes::CHOICE_TRACKED_VEHICLE; + break; + case mapem_ts_LaneTypeAttributes_PR_parking: + toRos_LaneAttributesParking(in.choice.parking, out.parking); + out.choice = mapem_ts_msgs::LaneTypeAttributes::CHOICE_PARKING; + break; + default: break; + } +} + +void toStruct_LaneTypeAttributes(const mapem_ts_msgs::LaneTypeAttributes& in, mapem_ts_LaneTypeAttributes_t& out) { + memset(&out, 0, sizeof(mapem_ts_LaneTypeAttributes_t)); + + switch (in.choice) { + case mapem_ts_msgs::LaneTypeAttributes::CHOICE_VEHICLE: + toStruct_LaneAttributesVehicle(in.vehicle, out.choice.vehicle); + out.present = mapem_ts_LaneTypeAttributes_PR::mapem_ts_LaneTypeAttributes_PR_vehicle; + break; + case mapem_ts_msgs::LaneTypeAttributes::CHOICE_CROSSWALK: + toStruct_LaneAttributesCrosswalk(in.crosswalk, out.choice.crosswalk); + out.present = mapem_ts_LaneTypeAttributes_PR::mapem_ts_LaneTypeAttributes_PR_crosswalk; + break; + case mapem_ts_msgs::LaneTypeAttributes::CHOICE_BIKE_LANE: + toStruct_LaneAttributesBike(in.bike_lane, out.choice.bikeLane); + out.present = mapem_ts_LaneTypeAttributes_PR::mapem_ts_LaneTypeAttributes_PR_bikeLane; + break; + case mapem_ts_msgs::LaneTypeAttributes::CHOICE_SIDEWALK: + toStruct_LaneAttributesSidewalk(in.sidewalk, out.choice.sidewalk); + out.present = mapem_ts_LaneTypeAttributes_PR::mapem_ts_LaneTypeAttributes_PR_sidewalk; + break; + case mapem_ts_msgs::LaneTypeAttributes::CHOICE_MEDIAN: + toStruct_LaneAttributesBarrier(in.median, out.choice.median); + out.present = mapem_ts_LaneTypeAttributes_PR::mapem_ts_LaneTypeAttributes_PR_median; + break; + case mapem_ts_msgs::LaneTypeAttributes::CHOICE_STRIPING: + toStruct_LaneAttributesStriping(in.striping, out.choice.striping); + out.present = mapem_ts_LaneTypeAttributes_PR::mapem_ts_LaneTypeAttributes_PR_striping; + break; + case mapem_ts_msgs::LaneTypeAttributes::CHOICE_TRACKED_VEHICLE: + toStruct_LaneAttributesTrackedVehicle(in.tracked_vehicle, out.choice.trackedVehicle); + out.present = mapem_ts_LaneTypeAttributes_PR::mapem_ts_LaneTypeAttributes_PR_trackedVehicle; + break; + case mapem_ts_msgs::LaneTypeAttributes::CHOICE_PARKING: + toStruct_LaneAttributesParking(in.parking, out.choice.parking); + out.present = mapem_ts_LaneTypeAttributes_PR::mapem_ts_LaneTypeAttributes_PR_parking; + break; + default: break; + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneWidth.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneWidth.h new file mode 100644 index 000000000..a2909b27e --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLaneWidth.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_LaneWidth(const mapem_ts_LaneWidth_t& in, mapem_ts_msgs::LaneWidth& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_LaneWidth(const mapem_ts_msgs::LaneWidth& in, mapem_ts_LaneWidth_t& out) { + memset(&out, 0, sizeof(mapem_ts_LaneWidth_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLatitude.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLatitude.h new file mode 100644 index 000000000..1a3846edb --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLatitude.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_Latitude(const mapem_ts_Latitude_t& in, mapem_ts_msgs::Latitude& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_Latitude(const mapem_ts_msgs::Latitude& in, mapem_ts_Latitude_t& out) { + memset(&out, 0, sizeof(mapem_ts_Latitude_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLayerID.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLayerID.h new file mode 100644 index 000000000..a1d84b2da --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLayerID.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_LayerID(const mapem_ts_LayerID_t& in, mapem_ts_msgs::LayerID& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_LayerID(const mapem_ts_msgs::LayerID& in, mapem_ts_LayerID_t& out) { + memset(&out, 0, sizeof(mapem_ts_LayerID_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLayerType.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLayerType.h new file mode 100644 index 000000000..7ab7afd34 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLayerType.h @@ -0,0 +1,52 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_LayerType(const mapem_ts_LayerType_t& in, mapem_ts_msgs::LayerType& out) { + out.value = in; +} + +void toStruct_LayerType(const mapem_ts_msgs::LayerType& in, mapem_ts_LayerType_t& out) { + memset(&out, 0, sizeof(mapem_ts_LayerType_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLongitude.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLongitude.h new file mode 100644 index 000000000..d7589c788 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertLongitude.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_Longitude(const mapem_ts_Longitude_t& in, mapem_ts_msgs::Longitude& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_Longitude(const mapem_ts_msgs::Longitude& in, mapem_ts_Longitude_t& out) { + memset(&out, 0, sizeof(mapem_ts_Longitude_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertMAPEM.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertMAPEM.h new file mode 100644 index 000000000..3cd265b80 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertMAPEM.h @@ -0,0 +1,55 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_MAPEM(const mapem_ts_MAPEM_t& in, mapem_ts_msgs::MAPEM& out) { + toRos_ItsPduHeader(in.header, out.header); + toRos_MapData(in.map, out.map); +} + +void toStruct_MAPEM(const mapem_ts_msgs::MAPEM& in, mapem_ts_MAPEM_t& out) { + memset(&out, 0, sizeof(mapem_ts_MAPEM_t)); + + toStruct_ItsPduHeader(in.header, out.header); + toStruct_MapData(in.map, out.map); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertMapData.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertMapData.h new file mode 100644 index 000000000..1c27d08e3 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertMapData.h @@ -0,0 +1,115 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_MapData(const mapem_ts_MapData_t& in, mapem_ts_msgs::MapData& out) { + if (in.timeStamp) { + toRos_MinuteOfTheYear(*in.timeStamp, out.time_stamp); + out.time_stamp_is_present = true; + } + toRos_MsgCount(in.msgIssueRevision, out.msg_issue_revision); + if (in.layerType) { + toRos_LayerType(*in.layerType, out.layer_type); + out.layer_type_is_present = true; + } + if (in.layerID) { + toRos_LayerID(*in.layerID, out.layer_id); + out.layer_id_is_present = true; + } + if (in.intersections) { + toRos_IntersectionGeometryList(*in.intersections, out.intersections); + out.intersections_is_present = true; + } + if (in.roadSegments) { + toRos_RoadSegmentList(*in.roadSegments, out.road_segments); + out.road_segments_is_present = true; + } + if (in.dataParameters) { + toRos_DataParameters(*in.dataParameters, out.data_parameters); + out.data_parameters_is_present = true; + } + if (in.restrictionList) { + toRos_RestrictionClassList(*in.restrictionList, out.restriction_list); + out.restriction_list_is_present = true; + } +} + +void toStruct_MapData(const mapem_ts_msgs::MapData& in, mapem_ts_MapData_t& out) { + memset(&out, 0, sizeof(mapem_ts_MapData_t)); + + if (in.time_stamp_is_present) { + out.timeStamp = (mapem_ts_MinuteOfTheYear_t*) calloc(1, sizeof(mapem_ts_MinuteOfTheYear_t)); + toStruct_MinuteOfTheYear(in.time_stamp, *out.timeStamp); + } + toStruct_MsgCount(in.msg_issue_revision, out.msgIssueRevision); + if (in.layer_type_is_present) { + out.layerType = (mapem_ts_LayerType_t*) calloc(1, sizeof(mapem_ts_LayerType_t)); + toStruct_LayerType(in.layer_type, *out.layerType); + } + if (in.layer_id_is_present) { + out.layerID = (mapem_ts_LayerID_t*) calloc(1, sizeof(mapem_ts_LayerID_t)); + toStruct_LayerID(in.layer_id, *out.layerID); + } + if (in.intersections_is_present) { + out.intersections = (mapem_ts_IntersectionGeometryList_t*) calloc(1, sizeof(mapem_ts_IntersectionGeometryList_t)); + toStruct_IntersectionGeometryList(in.intersections, *out.intersections); + } + if (in.road_segments_is_present) { + out.roadSegments = (mapem_ts_RoadSegmentList_t*) calloc(1, sizeof(mapem_ts_RoadSegmentList_t)); + toStruct_RoadSegmentList(in.road_segments, *out.roadSegments); + } + if (in.data_parameters_is_present) { + out.dataParameters = (mapem_ts_DataParameters_t*) calloc(1, sizeof(mapem_ts_DataParameters_t)); + toStruct_DataParameters(in.data_parameters, *out.dataParameters); + } + if (in.restriction_list_is_present) { + out.restrictionList = (mapem_ts_RestrictionClassList_t*) calloc(1, sizeof(mapem_ts_RestrictionClassList_t)); + toStruct_RestrictionClassList(in.restriction_list, *out.restrictionList); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertMergeDivergeNodeAngle.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertMergeDivergeNodeAngle.h new file mode 100644 index 000000000..00b1922f7 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertMergeDivergeNodeAngle.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_MergeDivergeNodeAngle(const mapem_ts_MergeDivergeNodeAngle_t& in, mapem_ts_msgs::MergeDivergeNodeAngle& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_MergeDivergeNodeAngle(const mapem_ts_msgs::MergeDivergeNodeAngle& in, mapem_ts_MergeDivergeNodeAngle_t& out) { + memset(&out, 0, sizeof(mapem_ts_MergeDivergeNodeAngle_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertMinuteOfTheYear.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertMinuteOfTheYear.h new file mode 100644 index 000000000..2ca01314e --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertMinuteOfTheYear.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_MinuteOfTheYear(const mapem_ts_MinuteOfTheYear_t& in, mapem_ts_msgs::MinuteOfTheYear& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_MinuteOfTheYear(const mapem_ts_msgs::MinuteOfTheYear& in, mapem_ts_MinuteOfTheYear_t& out) { + memset(&out, 0, sizeof(mapem_ts_MinuteOfTheYear_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertMsgCount.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertMsgCount.h new file mode 100644 index 000000000..985a11712 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertMsgCount.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_MsgCount(const mapem_ts_MsgCount_t& in, mapem_ts_msgs::MsgCount& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_MsgCount(const mapem_ts_msgs::MsgCount& in, mapem_ts_MsgCount_t& out) { + memset(&out, 0, sizeof(mapem_ts_MsgCount_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeAttributeSetXY.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeAttributeSetXY.h new file mode 100644 index 000000000..387401afc --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeAttributeSetXY.h @@ -0,0 +1,101 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_NodeAttributeSetXY(const mapem_ts_NodeAttributeSetXY_t& in, mapem_ts_msgs::NodeAttributeSetXY& out) { + if (in.localNode) { + toRos_NodeAttributeXYList(*in.localNode, out.local_node); + out.local_node_is_present = true; + } + if (in.disabled) { + toRos_SegmentAttributeXYList(*in.disabled, out.disabled); + out.disabled_is_present = true; + } + if (in.enabled) { + toRos_SegmentAttributeXYList(*in.enabled, out.enabled); + out.enabled_is_present = true; + } + if (in.data) { + toRos_LaneDataAttributeList(*in.data, out.data); + out.data_is_present = true; + } + if (in.dWidth) { + toRos_OffsetB10(*in.dWidth, out.d_width); + out.d_width_is_present = true; + } + if (in.dElevation) { + toRos_OffsetB10(*in.dElevation, out.d_elevation); + out.d_elevation_is_present = true; + } +} + +void toStruct_NodeAttributeSetXY(const mapem_ts_msgs::NodeAttributeSetXY& in, mapem_ts_NodeAttributeSetXY_t& out) { + memset(&out, 0, sizeof(mapem_ts_NodeAttributeSetXY_t)); + + if (in.local_node_is_present) { + out.localNode = (mapem_ts_NodeAttributeXYList_t*) calloc(1, sizeof(mapem_ts_NodeAttributeXYList_t)); + toStruct_NodeAttributeXYList(in.local_node, *out.localNode); + } + if (in.disabled_is_present) { + out.disabled = (mapem_ts_SegmentAttributeXYList_t*) calloc(1, sizeof(mapem_ts_SegmentAttributeXYList_t)); + toStruct_SegmentAttributeXYList(in.disabled, *out.disabled); + } + if (in.enabled_is_present) { + out.enabled = (mapem_ts_SegmentAttributeXYList_t*) calloc(1, sizeof(mapem_ts_SegmentAttributeXYList_t)); + toStruct_SegmentAttributeXYList(in.enabled, *out.enabled); + } + if (in.data_is_present) { + out.data = (mapem_ts_LaneDataAttributeList_t*) calloc(1, sizeof(mapem_ts_LaneDataAttributeList_t)); + toStruct_LaneDataAttributeList(in.data, *out.data); + } + if (in.d_width_is_present) { + out.dWidth = (mapem_ts_Offset_B10_t*) calloc(1, sizeof(mapem_ts_Offset_B10_t)); + toStruct_OffsetB10(in.d_width, *out.dWidth); + } + if (in.d_elevation_is_present) { + out.dElevation = (mapem_ts_Offset_B10_t*) calloc(1, sizeof(mapem_ts_Offset_B10_t)); + toStruct_OffsetB10(in.d_elevation, *out.dElevation); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeAttributeXY.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeAttributeXY.h new file mode 100644 index 000000000..1316149a0 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeAttributeXY.h @@ -0,0 +1,52 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_NodeAttributeXY(const mapem_ts_NodeAttributeXY_t& in, mapem_ts_msgs::NodeAttributeXY& out) { + out.value = in; +} + +void toStruct_NodeAttributeXY(const mapem_ts_msgs::NodeAttributeXY& in, mapem_ts_NodeAttributeXY_t& out) { + memset(&out, 0, sizeof(mapem_ts_NodeAttributeXY_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeAttributeXYList.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeAttributeXYList.h new file mode 100644 index 000000000..fa4b14aca --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeAttributeXYList.h @@ -0,0 +1,66 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#include +#ifdef ROS1 +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_NodeAttributeXYList(const mapem_ts_NodeAttributeXYList_t& in, mapem_ts_msgs::NodeAttributeXYList& out) { + for (int i = 0; i < in.list.count; ++i) { + mapem_ts_msgs::NodeAttributeXY el; + toRos_NodeAttributeXY(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_NodeAttributeXYList(const mapem_ts_msgs::NodeAttributeXYList& in, mapem_ts_NodeAttributeXYList_t& out) { + memset(&out, 0, sizeof(mapem_ts_NodeAttributeXYList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + mapem_ts_NodeAttributeXY_t* el = (mapem_ts_NodeAttributeXY_t*) calloc(1, sizeof(mapem_ts_NodeAttributeXY_t)); + toStruct_NodeAttributeXY(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeLLmD64b.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeLLmD64b.h new file mode 100644 index 000000000..7ad785c78 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeLLmD64b.h @@ -0,0 +1,55 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_NodeLLmD64b(const mapem_ts_Node_LLmD_64b_t& in, mapem_ts_msgs::NodeLLmD64b& out) { + toRos_Longitude(in.lon, out.lon); + toRos_Latitude(in.lat, out.lat); +} + +void toStruct_NodeLLmD64b(const mapem_ts_msgs::NodeLLmD64b& in, mapem_ts_Node_LLmD_64b_t& out) { + memset(&out, 0, sizeof(mapem_ts_Node_LLmD_64b_t)); + + toStruct_Longitude(in.lon, out.lon); + toStruct_Latitude(in.lat, out.lat); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeListXY.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeListXY.h new file mode 100644 index 000000000..23857871d --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeListXY.h @@ -0,0 +1,73 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_NodeListXY(const mapem_ts_NodeListXY_t& in, mapem_ts_msgs::NodeListXY& out) { + switch (in.present) { + case mapem_ts_NodeListXY_PR_nodes: + toRos_NodeSetXY(in.choice.nodes, out.nodes); + out.choice = mapem_ts_msgs::NodeListXY::CHOICE_NODES; + break; + case mapem_ts_NodeListXY_PR_computed: + toRos_ComputedLane(in.choice.computed, out.computed); + out.choice = mapem_ts_msgs::NodeListXY::CHOICE_COMPUTED; + break; + default: break; + } +} + +void toStruct_NodeListXY(const mapem_ts_msgs::NodeListXY& in, mapem_ts_NodeListXY_t& out) { + memset(&out, 0, sizeof(mapem_ts_NodeListXY_t)); + + switch (in.choice) { + case mapem_ts_msgs::NodeListXY::CHOICE_NODES: + toStruct_NodeSetXY(in.nodes, out.choice.nodes); + out.present = mapem_ts_NodeListXY_PR::mapem_ts_NodeListXY_PR_nodes; + break; + case mapem_ts_msgs::NodeListXY::CHOICE_COMPUTED: + toStruct_ComputedLane(in.computed, out.choice.computed); + out.present = mapem_ts_NodeListXY_PR::mapem_ts_NodeListXY_PR_computed; + break; + default: break; + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeOffsetPointXY.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeOffsetPointXY.h new file mode 100644 index 000000000..f61994f52 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeOffsetPointXY.h @@ -0,0 +1,118 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_NodeOffsetPointXY(const mapem_ts_NodeOffsetPointXY_t& in, mapem_ts_msgs::NodeOffsetPointXY& out) { + switch (in.present) { + case mapem_ts_NodeOffsetPointXY_PR_node_XY1: + toRos_NodeXY20b(in.choice.node_XY1, out.node_xy1); + out.choice = mapem_ts_msgs::NodeOffsetPointXY::CHOICE_NODE_X_Y1; + break; + case mapem_ts_NodeOffsetPointXY_PR_node_XY2: + toRos_NodeXY22b(in.choice.node_XY2, out.node_xy2); + out.choice = mapem_ts_msgs::NodeOffsetPointXY::CHOICE_NODE_X_Y2; + break; + case mapem_ts_NodeOffsetPointXY_PR_node_XY3: + toRos_NodeXY24b(in.choice.node_XY3, out.node_xy3); + out.choice = mapem_ts_msgs::NodeOffsetPointXY::CHOICE_NODE_X_Y3; + break; + case mapem_ts_NodeOffsetPointXY_PR_node_XY4: + toRos_NodeXY26b(in.choice.node_XY4, out.node_xy4); + out.choice = mapem_ts_msgs::NodeOffsetPointXY::CHOICE_NODE_X_Y4; + break; + case mapem_ts_NodeOffsetPointXY_PR_node_XY5: + toRos_NodeXY28b(in.choice.node_XY5, out.node_xy5); + out.choice = mapem_ts_msgs::NodeOffsetPointXY::CHOICE_NODE_X_Y5; + break; + case mapem_ts_NodeOffsetPointXY_PR_node_XY6: + toRos_NodeXY32b(in.choice.node_XY6, out.node_xy6); + out.choice = mapem_ts_msgs::NodeOffsetPointXY::CHOICE_NODE_X_Y6; + break; + case mapem_ts_NodeOffsetPointXY_PR_node_LatLon: + toRos_NodeLLmD64b(in.choice.node_LatLon, out.node_lat_lon); + out.choice = mapem_ts_msgs::NodeOffsetPointXY::CHOICE_NODE_LAT_LON; + break; + default: break; + } +} + +void toStruct_NodeOffsetPointXY(const mapem_ts_msgs::NodeOffsetPointXY& in, mapem_ts_NodeOffsetPointXY_t& out) { + memset(&out, 0, sizeof(mapem_ts_NodeOffsetPointXY_t)); + + switch (in.choice) { + case mapem_ts_msgs::NodeOffsetPointXY::CHOICE_NODE_X_Y1: + toStruct_NodeXY20b(in.node_xy1, out.choice.node_XY1); + out.present = mapem_ts_NodeOffsetPointXY_PR::mapem_ts_NodeOffsetPointXY_PR_node_XY1; + break; + case mapem_ts_msgs::NodeOffsetPointXY::CHOICE_NODE_X_Y2: + toStruct_NodeXY22b(in.node_xy2, out.choice.node_XY2); + out.present = mapem_ts_NodeOffsetPointXY_PR::mapem_ts_NodeOffsetPointXY_PR_node_XY2; + break; + case mapem_ts_msgs::NodeOffsetPointXY::CHOICE_NODE_X_Y3: + toStruct_NodeXY24b(in.node_xy3, out.choice.node_XY3); + out.present = mapem_ts_NodeOffsetPointXY_PR::mapem_ts_NodeOffsetPointXY_PR_node_XY3; + break; + case mapem_ts_msgs::NodeOffsetPointXY::CHOICE_NODE_X_Y4: + toStruct_NodeXY26b(in.node_xy4, out.choice.node_XY4); + out.present = mapem_ts_NodeOffsetPointXY_PR::mapem_ts_NodeOffsetPointXY_PR_node_XY4; + break; + case mapem_ts_msgs::NodeOffsetPointXY::CHOICE_NODE_X_Y5: + toStruct_NodeXY28b(in.node_xy5, out.choice.node_XY5); + out.present = mapem_ts_NodeOffsetPointXY_PR::mapem_ts_NodeOffsetPointXY_PR_node_XY5; + break; + case mapem_ts_msgs::NodeOffsetPointXY::CHOICE_NODE_X_Y6: + toStruct_NodeXY32b(in.node_xy6, out.choice.node_XY6); + out.present = mapem_ts_NodeOffsetPointXY_PR::mapem_ts_NodeOffsetPointXY_PR_node_XY6; + break; + case mapem_ts_msgs::NodeOffsetPointXY::CHOICE_NODE_LAT_LON: + toStruct_NodeLLmD64b(in.node_lat_lon, out.choice.node_LatLon); + out.present = mapem_ts_NodeOffsetPointXY_PR::mapem_ts_NodeOffsetPointXY_PR_node_LatLon; + break; + default: break; + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeSetXY.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeSetXY.h new file mode 100644 index 000000000..8e3c3d828 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeSetXY.h @@ -0,0 +1,66 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#include +#ifdef ROS1 +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_NodeSetXY(const mapem_ts_NodeSetXY_t& in, mapem_ts_msgs::NodeSetXY& out) { + for (int i = 0; i < in.list.count; ++i) { + mapem_ts_msgs::NodeXY el; + toRos_NodeXY(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_NodeSetXY(const mapem_ts_msgs::NodeSetXY& in, mapem_ts_NodeSetXY_t& out) { + memset(&out, 0, sizeof(mapem_ts_NodeSetXY_t)); + + for (int i = 0; i < in.array.size(); ++i) { + mapem_ts_NodeXY_t* el = (mapem_ts_NodeXY_t*) calloc(1, sizeof(mapem_ts_NodeXY_t)); + toStruct_NodeXY(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeXY.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeXY.h new file mode 100644 index 000000000..f5496076f --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeXY.h @@ -0,0 +1,61 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_NodeXY(const mapem_ts_NodeXY_t& in, mapem_ts_msgs::NodeXY& out) { + toRos_NodeOffsetPointXY(in.delta, out.delta); + if (in.attributes) { + toRos_NodeAttributeSetXY(*in.attributes, out.attributes); + out.attributes_is_present = true; + } +} + +void toStruct_NodeXY(const mapem_ts_msgs::NodeXY& in, mapem_ts_NodeXY_t& out) { + memset(&out, 0, sizeof(mapem_ts_NodeXY_t)); + + toStruct_NodeOffsetPointXY(in.delta, out.delta); + if (in.attributes_is_present) { + out.attributes = (mapem_ts_NodeAttributeSetXY_t*) calloc(1, sizeof(mapem_ts_NodeAttributeSetXY_t)); + toStruct_NodeAttributeSetXY(in.attributes, *out.attributes); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeXY20b.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeXY20b.h new file mode 100644 index 000000000..172c3a683 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeXY20b.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_NodeXY20b(const mapem_ts_Node_XY_20b_t& in, mapem_ts_msgs::NodeXY20b& out) { + toRos_OffsetB10(in.x, out.x); + toRos_OffsetB10(in.y, out.y); +} + +void toStruct_NodeXY20b(const mapem_ts_msgs::NodeXY20b& in, mapem_ts_Node_XY_20b_t& out) { + memset(&out, 0, sizeof(mapem_ts_Node_XY_20b_t)); + + toStruct_OffsetB10(in.x, out.x); + toStruct_OffsetB10(in.y, out.y); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeXY22b.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeXY22b.h new file mode 100644 index 000000000..a7acfe526 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeXY22b.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_NodeXY22b(const mapem_ts_Node_XY_22b_t& in, mapem_ts_msgs::NodeXY22b& out) { + toRos_OffsetB11(in.x, out.x); + toRos_OffsetB11(in.y, out.y); +} + +void toStruct_NodeXY22b(const mapem_ts_msgs::NodeXY22b& in, mapem_ts_Node_XY_22b_t& out) { + memset(&out, 0, sizeof(mapem_ts_Node_XY_22b_t)); + + toStruct_OffsetB11(in.x, out.x); + toStruct_OffsetB11(in.y, out.y); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeXY24b.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeXY24b.h new file mode 100644 index 000000000..8bcba95d3 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeXY24b.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_NodeXY24b(const mapem_ts_Node_XY_24b_t& in, mapem_ts_msgs::NodeXY24b& out) { + toRos_OffsetB12(in.x, out.x); + toRos_OffsetB12(in.y, out.y); +} + +void toStruct_NodeXY24b(const mapem_ts_msgs::NodeXY24b& in, mapem_ts_Node_XY_24b_t& out) { + memset(&out, 0, sizeof(mapem_ts_Node_XY_24b_t)); + + toStruct_OffsetB12(in.x, out.x); + toStruct_OffsetB12(in.y, out.y); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeXY26b.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeXY26b.h new file mode 100644 index 000000000..a4dda14a3 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeXY26b.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_NodeXY26b(const mapem_ts_Node_XY_26b_t& in, mapem_ts_msgs::NodeXY26b& out) { + toRos_OffsetB13(in.x, out.x); + toRos_OffsetB13(in.y, out.y); +} + +void toStruct_NodeXY26b(const mapem_ts_msgs::NodeXY26b& in, mapem_ts_Node_XY_26b_t& out) { + memset(&out, 0, sizeof(mapem_ts_Node_XY_26b_t)); + + toStruct_OffsetB13(in.x, out.x); + toStruct_OffsetB13(in.y, out.y); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeXY28b.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeXY28b.h new file mode 100644 index 000000000..dfe03f52e --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeXY28b.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_NodeXY28b(const mapem_ts_Node_XY_28b_t& in, mapem_ts_msgs::NodeXY28b& out) { + toRos_OffsetB14(in.x, out.x); + toRos_OffsetB14(in.y, out.y); +} + +void toStruct_NodeXY28b(const mapem_ts_msgs::NodeXY28b& in, mapem_ts_Node_XY_28b_t& out) { + memset(&out, 0, sizeof(mapem_ts_Node_XY_28b_t)); + + toStruct_OffsetB14(in.x, out.x); + toStruct_OffsetB14(in.y, out.y); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeXY32b.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeXY32b.h new file mode 100644 index 000000000..bc077e9fa --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertNodeXY32b.h @@ -0,0 +1,54 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_NodeXY32b(const mapem_ts_Node_XY_32b_t& in, mapem_ts_msgs::NodeXY32b& out) { + toRos_OffsetB16(in.x, out.x); + toRos_OffsetB16(in.y, out.y); +} + +void toStruct_NodeXY32b(const mapem_ts_msgs::NodeXY32b& in, mapem_ts_Node_XY_32b_t& out) { + memset(&out, 0, sizeof(mapem_ts_Node_XY_32b_t)); + + toStruct_OffsetB16(in.x, out.x); + toStruct_OffsetB16(in.y, out.y); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertOffsetB10.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertOffsetB10.h new file mode 100644 index 000000000..65333e926 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertOffsetB10.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_OffsetB10(const mapem_ts_Offset_B10_t& in, mapem_ts_msgs::OffsetB10& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_OffsetB10(const mapem_ts_msgs::OffsetB10& in, mapem_ts_Offset_B10_t& out) { + memset(&out, 0, sizeof(mapem_ts_Offset_B10_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertOffsetB11.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertOffsetB11.h new file mode 100644 index 000000000..77272bb38 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertOffsetB11.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_OffsetB11(const mapem_ts_Offset_B11_t& in, mapem_ts_msgs::OffsetB11& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_OffsetB11(const mapem_ts_msgs::OffsetB11& in, mapem_ts_Offset_B11_t& out) { + memset(&out, 0, sizeof(mapem_ts_Offset_B11_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertOffsetB12.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertOffsetB12.h new file mode 100644 index 000000000..4d607820f --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertOffsetB12.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_OffsetB12(const mapem_ts_Offset_B12_t& in, mapem_ts_msgs::OffsetB12& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_OffsetB12(const mapem_ts_msgs::OffsetB12& in, mapem_ts_Offset_B12_t& out) { + memset(&out, 0, sizeof(mapem_ts_Offset_B12_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertOffsetB13.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertOffsetB13.h new file mode 100644 index 000000000..735b199a2 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertOffsetB13.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_OffsetB13(const mapem_ts_Offset_B13_t& in, mapem_ts_msgs::OffsetB13& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_OffsetB13(const mapem_ts_msgs::OffsetB13& in, mapem_ts_Offset_B13_t& out) { + memset(&out, 0, sizeof(mapem_ts_Offset_B13_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertOffsetB14.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertOffsetB14.h new file mode 100644 index 000000000..9681ae682 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertOffsetB14.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_OffsetB14(const mapem_ts_Offset_B14_t& in, mapem_ts_msgs::OffsetB14& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_OffsetB14(const mapem_ts_msgs::OffsetB14& in, mapem_ts_Offset_B14_t& out) { + memset(&out, 0, sizeof(mapem_ts_Offset_B14_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertOffsetB16.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertOffsetB16.h new file mode 100644 index 000000000..d0f1fc620 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertOffsetB16.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_OffsetB16(const mapem_ts_Offset_B16_t& in, mapem_ts_msgs::OffsetB16& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_OffsetB16(const mapem_ts_msgs::OffsetB16& in, mapem_ts_Offset_B16_t& out) { + memset(&out, 0, sizeof(mapem_ts_Offset_B16_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertOverlayLaneList.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertOverlayLaneList.h new file mode 100644 index 000000000..efd904559 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertOverlayLaneList.h @@ -0,0 +1,66 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#include +#ifdef ROS1 +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_OverlayLaneList(const mapem_ts_OverlayLaneList_t& in, mapem_ts_msgs::OverlayLaneList& out) { + for (int i = 0; i < in.list.count; ++i) { + mapem_ts_msgs::LaneID el; + toRos_LaneID(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_OverlayLaneList(const mapem_ts_msgs::OverlayLaneList& in, mapem_ts_OverlayLaneList_t& out) { + memset(&out, 0, sizeof(mapem_ts_OverlayLaneList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + mapem_ts_LaneID_t* el = (mapem_ts_LaneID_t*) calloc(1, sizeof(mapem_ts_LaneID_t)); + toStruct_LaneID(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertPosition3D.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertPosition3D.h new file mode 100644 index 000000000..29f55439a --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertPosition3D.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_Position3D(const mapem_ts_Position3D_t& in, mapem_ts_msgs::Position3D& out) { + toRos_Latitude(in.lat, out.lat); + toRos_Longitude(in.Long, out.lon); + if (in.elevation) { + toRos_Elevation(*in.elevation, out.elevation); + out.elevation_is_present = true; + } +} + +void toStruct_Position3D(const mapem_ts_msgs::Position3D& in, mapem_ts_Position3D_t& out) { + memset(&out, 0, sizeof(mapem_ts_Position3D_t)); + + toStruct_Latitude(in.lat, out.lat); + toStruct_Longitude(in.lon, out.Long); + if (in.elevation_is_present) { + out.elevation = (mapem_ts_Elevation_t*) calloc(1, sizeof(mapem_ts_Elevation_t)); + toStruct_Elevation(in.elevation, *out.elevation); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertPreemptPriorityList.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertPreemptPriorityList.h new file mode 100644 index 000000000..c0e793ef3 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertPreemptPriorityList.h @@ -0,0 +1,66 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#include +#ifdef ROS1 +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_PreemptPriorityList(const mapem_ts_PreemptPriorityList_t& in, mapem_ts_msgs::PreemptPriorityList& out) { + for (int i = 0; i < in.list.count; ++i) { + mapem_ts_msgs::SignalControlZone el; + toRos_SignalControlZone(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_PreemptPriorityList(const mapem_ts_msgs::PreemptPriorityList& in, mapem_ts_PreemptPriorityList_t& out) { + memset(&out, 0, sizeof(mapem_ts_PreemptPriorityList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + mapem_ts_SignalControlZone_t* el = (mapem_ts_SignalControlZone_t*) calloc(1, sizeof(mapem_ts_SignalControlZone_t)); + toStruct_SignalControlZone(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRegulatorySpeedLimit.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRegulatorySpeedLimit.h new file mode 100644 index 000000000..b84fdab9e --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRegulatorySpeedLimit.h @@ -0,0 +1,55 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_RegulatorySpeedLimit(const mapem_ts_RegulatorySpeedLimit_t& in, mapem_ts_msgs::RegulatorySpeedLimit& out) { + toRos_SpeedLimitType(in.type, out.type); + toRos_Velocity(in.speed, out.speed); +} + +void toStruct_RegulatorySpeedLimit(const mapem_ts_msgs::RegulatorySpeedLimit& in, mapem_ts_RegulatorySpeedLimit_t& out) { + memset(&out, 0, sizeof(mapem_ts_RegulatorySpeedLimit_t)); + + toStruct_SpeedLimitType(in.type, out.type); + toStruct_Velocity(in.speed, out.speed); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRestrictionAppliesTo.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRestrictionAppliesTo.h new file mode 100644 index 000000000..6b1c5e6f6 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRestrictionAppliesTo.h @@ -0,0 +1,52 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_RestrictionAppliesTo(const mapem_ts_RestrictionAppliesTo_t& in, mapem_ts_msgs::RestrictionAppliesTo& out) { + out.value = in; +} + +void toStruct_RestrictionAppliesTo(const mapem_ts_msgs::RestrictionAppliesTo& in, mapem_ts_RestrictionAppliesTo_t& out) { + memset(&out, 0, sizeof(mapem_ts_RestrictionAppliesTo_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRestrictionClassAssignment.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRestrictionClassAssignment.h new file mode 100644 index 000000000..d47433af0 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRestrictionClassAssignment.h @@ -0,0 +1,55 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_RestrictionClassAssignment(const mapem_ts_RestrictionClassAssignment_t& in, mapem_ts_msgs::RestrictionClassAssignment& out) { + toRos_RestrictionClassID(in.id, out.id); + toRos_RestrictionUserTypeList(in.users, out.users); +} + +void toStruct_RestrictionClassAssignment(const mapem_ts_msgs::RestrictionClassAssignment& in, mapem_ts_RestrictionClassAssignment_t& out) { + memset(&out, 0, sizeof(mapem_ts_RestrictionClassAssignment_t)); + + toStruct_RestrictionClassID(in.id, out.id); + toStruct_RestrictionUserTypeList(in.users, out.users); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRestrictionClassID.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRestrictionClassID.h new file mode 100644 index 000000000..6c1cad0e8 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRestrictionClassID.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_RestrictionClassID(const mapem_ts_RestrictionClassID_t& in, mapem_ts_msgs::RestrictionClassID& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_RestrictionClassID(const mapem_ts_msgs::RestrictionClassID& in, mapem_ts_RestrictionClassID_t& out) { + memset(&out, 0, sizeof(mapem_ts_RestrictionClassID_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRestrictionClassList.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRestrictionClassList.h new file mode 100644 index 000000000..84798e35b --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRestrictionClassList.h @@ -0,0 +1,66 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#include +#ifdef ROS1 +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_RestrictionClassList(const mapem_ts_RestrictionClassList_t& in, mapem_ts_msgs::RestrictionClassList& out) { + for (int i = 0; i < in.list.count; ++i) { + mapem_ts_msgs::RestrictionClassAssignment el; + toRos_RestrictionClassAssignment(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_RestrictionClassList(const mapem_ts_msgs::RestrictionClassList& in, mapem_ts_RestrictionClassList_t& out) { + memset(&out, 0, sizeof(mapem_ts_RestrictionClassList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + mapem_ts_RestrictionClassAssignment_t* el = (mapem_ts_RestrictionClassAssignment_t*) calloc(1, sizeof(mapem_ts_RestrictionClassAssignment_t)); + toStruct_RestrictionClassAssignment(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRestrictionUserType.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRestrictionUserType.h new file mode 100644 index 000000000..ff2e2e9cb --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRestrictionUserType.h @@ -0,0 +1,64 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_RestrictionUserType(const mapem_ts_RestrictionUserType_t& in, mapem_ts_msgs::RestrictionUserType& out) { + switch (in.present) { + case mapem_ts_RestrictionUserType_PR_basicType: + toRos_RestrictionAppliesTo(in.choice.basicType, out.basic_type); + out.choice = mapem_ts_msgs::RestrictionUserType::CHOICE_BASIC_TYPE; + break; + default: break; + } +} + +void toStruct_RestrictionUserType(const mapem_ts_msgs::RestrictionUserType& in, mapem_ts_RestrictionUserType_t& out) { + memset(&out, 0, sizeof(mapem_ts_RestrictionUserType_t)); + + switch (in.choice) { + case mapem_ts_msgs::RestrictionUserType::CHOICE_BASIC_TYPE: + toStruct_RestrictionAppliesTo(in.basic_type, out.choice.basicType); + out.present = mapem_ts_RestrictionUserType_PR::mapem_ts_RestrictionUserType_PR_basicType; + break; + default: break; + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRestrictionUserTypeList.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRestrictionUserTypeList.h new file mode 100644 index 000000000..2a4852c18 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRestrictionUserTypeList.h @@ -0,0 +1,66 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#include +#ifdef ROS1 +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_RestrictionUserTypeList(const mapem_ts_RestrictionUserTypeList_t& in, mapem_ts_msgs::RestrictionUserTypeList& out) { + for (int i = 0; i < in.list.count; ++i) { + mapem_ts_msgs::RestrictionUserType el; + toRos_RestrictionUserType(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_RestrictionUserTypeList(const mapem_ts_msgs::RestrictionUserTypeList& in, mapem_ts_RestrictionUserTypeList_t& out) { + memset(&out, 0, sizeof(mapem_ts_RestrictionUserTypeList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + mapem_ts_RestrictionUserType_t* el = (mapem_ts_RestrictionUserType_t*) calloc(1, sizeof(mapem_ts_RestrictionUserType_t)); + toStruct_RestrictionUserType(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRoadLaneSetList.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRoadLaneSetList.h new file mode 100644 index 000000000..8f6e11420 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRoadLaneSetList.h @@ -0,0 +1,66 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#include +#ifdef ROS1 +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_RoadLaneSetList(const mapem_ts_RoadLaneSetList_t& in, mapem_ts_msgs::RoadLaneSetList& out) { + for (int i = 0; i < in.list.count; ++i) { + mapem_ts_msgs::GenericLane el; + toRos_GenericLane(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_RoadLaneSetList(const mapem_ts_msgs::RoadLaneSetList& in, mapem_ts_RoadLaneSetList_t& out) { + memset(&out, 0, sizeof(mapem_ts_RoadLaneSetList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + mapem_ts_GenericLane_t* el = (mapem_ts_GenericLane_t*) calloc(1, sizeof(mapem_ts_GenericLane_t)); + toStruct_GenericLane(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRoadRegulatorID.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRoadRegulatorID.h new file mode 100644 index 000000000..1eb2d0a8f --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRoadRegulatorID.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_RoadRegulatorID(const mapem_ts_RoadRegulatorID_t& in, mapem_ts_msgs::RoadRegulatorID& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_RoadRegulatorID(const mapem_ts_msgs::RoadRegulatorID& in, mapem_ts_RoadRegulatorID_t& out) { + memset(&out, 0, sizeof(mapem_ts_RoadRegulatorID_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRoadSegment.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRoadSegment.h new file mode 100644 index 000000000..7dd8cd2f1 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRoadSegment.h @@ -0,0 +1,88 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_RoadSegment(const mapem_ts_RoadSegment_t& in, mapem_ts_msgs::RoadSegment& out) { + if (in.name) { + toRos_DescriptiveName(*in.name, out.name); + out.name_is_present = true; + } + toRos_RoadSegmentReferenceID(in.id, out.id); + toRos_MsgCount(in.revision, out.revision); + toRos_Position3D(in.refPoint, out.ref_point); + if (in.laneWidth) { + toRos_LaneWidth(*in.laneWidth, out.lane_width); + out.lane_width_is_present = true; + } + if (in.speedLimits) { + toRos_SpeedLimitList(*in.speedLimits, out.speed_limits); + out.speed_limits_is_present = true; + } + toRos_RoadLaneSetList(in.roadLaneSet, out.road_lane_set); +} + +void toStruct_RoadSegment(const mapem_ts_msgs::RoadSegment& in, mapem_ts_RoadSegment_t& out) { + memset(&out, 0, sizeof(mapem_ts_RoadSegment_t)); + + if (in.name_is_present) { + out.name = (mapem_ts_DescriptiveName_t*) calloc(1, sizeof(mapem_ts_DescriptiveName_t)); + toStruct_DescriptiveName(in.name, *out.name); + } + toStruct_RoadSegmentReferenceID(in.id, out.id); + toStruct_MsgCount(in.revision, out.revision); + toStruct_Position3D(in.ref_point, out.refPoint); + if (in.lane_width_is_present) { + out.laneWidth = (mapem_ts_LaneWidth_t*) calloc(1, sizeof(mapem_ts_LaneWidth_t)); + toStruct_LaneWidth(in.lane_width, *out.laneWidth); + } + if (in.speed_limits_is_present) { + out.speedLimits = (mapem_ts_SpeedLimitList_t*) calloc(1, sizeof(mapem_ts_SpeedLimitList_t)); + toStruct_SpeedLimitList(in.speed_limits, *out.speedLimits); + } + toStruct_RoadLaneSetList(in.road_lane_set, out.roadLaneSet); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRoadSegmentID.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRoadSegmentID.h new file mode 100644 index 000000000..18386710f --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRoadSegmentID.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_RoadSegmentID(const mapem_ts_RoadSegmentID_t& in, mapem_ts_msgs::RoadSegmentID& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_RoadSegmentID(const mapem_ts_msgs::RoadSegmentID& in, mapem_ts_RoadSegmentID_t& out) { + memset(&out, 0, sizeof(mapem_ts_RoadSegmentID_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRoadSegmentList.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRoadSegmentList.h new file mode 100644 index 000000000..4714a0c15 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRoadSegmentList.h @@ -0,0 +1,66 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#include +#ifdef ROS1 +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_RoadSegmentList(const mapem_ts_RoadSegmentList_t& in, mapem_ts_msgs::RoadSegmentList& out) { + for (int i = 0; i < in.list.count; ++i) { + mapem_ts_msgs::RoadSegment el; + toRos_RoadSegment(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_RoadSegmentList(const mapem_ts_msgs::RoadSegmentList& in, mapem_ts_RoadSegmentList_t& out) { + memset(&out, 0, sizeof(mapem_ts_RoadSegmentList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + mapem_ts_RoadSegment_t* el = (mapem_ts_RoadSegment_t*) calloc(1, sizeof(mapem_ts_RoadSegment_t)); + toStruct_RoadSegment(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRoadSegmentReferenceID.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRoadSegmentReferenceID.h new file mode 100644 index 000000000..f67b91918 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRoadSegmentReferenceID.h @@ -0,0 +1,61 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_RoadSegmentReferenceID(const mapem_ts_RoadSegmentReferenceID_t& in, mapem_ts_msgs::RoadSegmentReferenceID& out) { + if (in.region) { + toRos_RoadRegulatorID(*in.region, out.region); + out.region_is_present = true; + } + toRos_RoadSegmentID(in.id, out.id); +} + +void toStruct_RoadSegmentReferenceID(const mapem_ts_msgs::RoadSegmentReferenceID& in, mapem_ts_RoadSegmentReferenceID_t& out) { + memset(&out, 0, sizeof(mapem_ts_RoadSegmentReferenceID_t)); + + if (in.region_is_present) { + out.region = (mapem_ts_RoadRegulatorID_t*) calloc(1, sizeof(mapem_ts_RoadRegulatorID_t)); + toStruct_RoadRegulatorID(in.region, *out.region); + } + toStruct_RoadSegmentID(in.id, out.id); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRoadwayCrownAngle.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRoadwayCrownAngle.h new file mode 100644 index 000000000..bc354004b --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertRoadwayCrownAngle.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_RoadwayCrownAngle(const mapem_ts_RoadwayCrownAngle_t& in, mapem_ts_msgs::RoadwayCrownAngle& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_RoadwayCrownAngle(const mapem_ts_msgs::RoadwayCrownAngle& in, mapem_ts_RoadwayCrownAngle_t& out) { + memset(&out, 0, sizeof(mapem_ts_RoadwayCrownAngle_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertScaleB12.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertScaleB12.h new file mode 100644 index 000000000..e61515a18 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertScaleB12.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_ScaleB12(const mapem_ts_Scale_B12_t& in, mapem_ts_msgs::ScaleB12& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_ScaleB12(const mapem_ts_msgs::ScaleB12& in, mapem_ts_Scale_B12_t& out) { + memset(&out, 0, sizeof(mapem_ts_Scale_B12_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertSegmentAttributeXY.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertSegmentAttributeXY.h new file mode 100644 index 000000000..71f5828aa --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertSegmentAttributeXY.h @@ -0,0 +1,52 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_SegmentAttributeXY(const mapem_ts_SegmentAttributeXY_t& in, mapem_ts_msgs::SegmentAttributeXY& out) { + out.value = in; +} + +void toStruct_SegmentAttributeXY(const mapem_ts_msgs::SegmentAttributeXY& in, mapem_ts_SegmentAttributeXY_t& out) { + memset(&out, 0, sizeof(mapem_ts_SegmentAttributeXY_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertSegmentAttributeXYList.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertSegmentAttributeXYList.h new file mode 100644 index 000000000..47ada6afa --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertSegmentAttributeXYList.h @@ -0,0 +1,66 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#include +#ifdef ROS1 +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_SegmentAttributeXYList(const mapem_ts_SegmentAttributeXYList_t& in, mapem_ts_msgs::SegmentAttributeXYList& out) { + for (int i = 0; i < in.list.count; ++i) { + mapem_ts_msgs::SegmentAttributeXY el; + toRos_SegmentAttributeXY(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_SegmentAttributeXYList(const mapem_ts_msgs::SegmentAttributeXYList& in, mapem_ts_SegmentAttributeXYList_t& out) { + memset(&out, 0, sizeof(mapem_ts_SegmentAttributeXYList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + mapem_ts_SegmentAttributeXY_t* el = (mapem_ts_SegmentAttributeXY_t*) calloc(1, sizeof(mapem_ts_SegmentAttributeXY_t)); + toStruct_SegmentAttributeXY(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertSignalControlZone.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertSignalControlZone.h new file mode 100644 index 000000000..2b6c56594 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertSignalControlZone.h @@ -0,0 +1,49 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_SignalControlZone(const mapem_ts_SignalControlZone_t& in, mapem_ts_msgs::SignalControlZone& out) { +} + +void toStruct_SignalControlZone(const mapem_ts_msgs::SignalControlZone& in, mapem_ts_SignalControlZone_t& out) { + memset(&out, 0, sizeof(mapem_ts_SignalControlZone_t)); + +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertSignalGroupID.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertSignalGroupID.h new file mode 100644 index 000000000..10d9ae86a --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertSignalGroupID.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_SignalGroupID(const mapem_ts_SignalGroupID_t& in, mapem_ts_msgs::SignalGroupID& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_SignalGroupID(const mapem_ts_msgs::SignalGroupID& in, mapem_ts_SignalGroupID_t& out) { + memset(&out, 0, sizeof(mapem_ts_SignalGroupID_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertSpeedLimitList.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertSpeedLimitList.h new file mode 100644 index 000000000..a0dae2b28 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertSpeedLimitList.h @@ -0,0 +1,66 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#include +#ifdef ROS1 +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_SpeedLimitList(const mapem_ts_SpeedLimitList_t& in, mapem_ts_msgs::SpeedLimitList& out) { + for (int i = 0; i < in.list.count; ++i) { + mapem_ts_msgs::RegulatorySpeedLimit el; + toRos_RegulatorySpeedLimit(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_SpeedLimitList(const mapem_ts_msgs::SpeedLimitList& in, mapem_ts_SpeedLimitList_t& out) { + memset(&out, 0, sizeof(mapem_ts_SpeedLimitList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + mapem_ts_RegulatorySpeedLimit_t* el = (mapem_ts_RegulatorySpeedLimit_t*) calloc(1, sizeof(mapem_ts_RegulatorySpeedLimit_t)); + toStruct_RegulatorySpeedLimit(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertSpeedLimitType.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertSpeedLimitType.h new file mode 100644 index 000000000..1f2e05ad5 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertSpeedLimitType.h @@ -0,0 +1,52 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_SpeedLimitType(const mapem_ts_SpeedLimitType_t& in, mapem_ts_msgs::SpeedLimitType& out) { + out.value = in; +} + +void toStruct_SpeedLimitType(const mapem_ts_msgs::SpeedLimitType& in, mapem_ts_SpeedLimitType_t& out) { + memset(&out, 0, sizeof(mapem_ts_SpeedLimitType_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertStationID.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertStationID.h new file mode 100644 index 000000000..70a1994bd --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertStationID.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_StationID(const mapem_ts_StationID_t& in, mapem_ts_msgs::StationID& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_StationID(const mapem_ts_msgs::StationID& in, mapem_ts_StationID_t& out) { + memset(&out, 0, sizeof(mapem_ts_StationID_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertVelocity.h b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertVelocity.h new file mode 100644 index 000000000..2ee15db39 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/include/etsi_its_mapem_ts_conversion/convertVelocity.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs; +#else +#include +namespace mapem_ts_msgs = etsi_its_mapem_ts_msgs::msg; +#endif + + +namespace etsi_its_mapem_ts_conversion { + +void toRos_Velocity(const mapem_ts_Velocity_t& in, mapem_ts_msgs::Velocity& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_Velocity(const mapem_ts_msgs::Velocity& in, mapem_ts_Velocity_t& out) { + memset(&out, 0, sizeof(mapem_ts_Velocity_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_mapem_ts_conversion/package.xml b/etsi_its_conversion/etsi_its_mapem_ts_conversion/package.xml new file mode 100644 index 000000000..180dfe039 --- /dev/null +++ b/etsi_its_conversion/etsi_its_mapem_ts_conversion/package.xml @@ -0,0 +1,31 @@ + + + + etsi_its_mapem_ts_conversion + 2.2.0 + Conversion functions for converting ROS messages to and from ASN.1-encoded ETSI ITS MAPEMs (TS) + + Jean-Pierre Busch + Guido Küppers + Lennart Reiher + + Jean-Pierre Busch + Guido Küppers + Lennart Reiher + + MIT + + etsi_its_mapem_ts_coding + etsi_its_mapem_ts_msgs + etsi_its_primitives_conversion + ros_environment + + catkin + ament_cmake + + + catkin + ament_cmake + + + diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/CMakeLists.txt b/etsi_its_conversion/etsi_its_spatem_ts_conversion/CMakeLists.txt new file mode 100644 index 000000000..56f4b7484 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/CMakeLists.txt @@ -0,0 +1,80 @@ +cmake_minimum_required(VERSION 3.5) +project(etsi_its_spatem_ts_conversion) + +find_package(ros_environment REQUIRED QUIET) +set(ROS_VERSION $ENV{ROS_VERSION}) + +# === ROS 2 (AMENT) ============================================================ +if(${ROS_VERSION} EQUAL 2) + + add_compile_definitions(ROS2) + + find_package(ament_cmake REQUIRED) + find_package(etsi_its_spatem_ts_coding REQUIRED) + find_package(etsi_its_spatem_ts_msgs REQUIRED) + find_package(etsi_its_primitives_conversion REQUIRED) + + add_library(${PROJECT_NAME} INTERFACE) + + target_include_directories(${PROJECT_NAME} INTERFACE + $ + $ + ) + + target_link_libraries(${PROJECT_NAME} INTERFACE + ${etsi_its_spatem_ts_coding_TARGETS} + ${etsi_its_spatem_ts_msgs_TARGETS} + ${etsi_its_primitives_conversion_TARGETS} + ) + + ament_export_targets(${PROJECT_NAME}Targets HAS_LIBRARY_TARGET) + ament_export_dependencies( + etsi_its_spatem_ts_coding + etsi_its_spatem_ts_msgs + etsi_its_primitives_conversion + ) + + install(DIRECTORY include/ + DESTINATION include/${PROJECT_NAME} + ) + + install(TARGETS ${PROJECT_NAME} + EXPORT ${PROJECT_NAME}Targets + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION lib + INCLUDES DESTINATION include + ) + + ament_package() + +# === ROS (CATKIN) ============================================================= +elseif(${ROS_VERSION} EQUAL 1) + + add_compile_definitions(ROS1) + + find_package(catkin REQUIRED COMPONENTS + etsi_its_spatem_ts_coding + etsi_its_spatem_ts_msgs + etsi_its_primitives_conversion + ) + + catkin_package( + INCLUDE_DIRS include + CATKIN_DEPENDS etsi_its_spatem_ts_coding etsi_its_spatem_ts_msgs etsi_its_primitives_conversion + ) + + include_directories( + include + ${catkin_INCLUDE_DIRS} + ) + + install(DIRECTORY include/${PROJECT_NAME}/ + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} + ) + + install(FILES + DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} + ) + +endif() diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertAdvisorySpeed.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertAdvisorySpeed.h new file mode 100644 index 000000000..600cd2071 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertAdvisorySpeed.h @@ -0,0 +1,88 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_AdvisorySpeed(const spatem_ts_AdvisorySpeed_t& in, spatem_ts_msgs::AdvisorySpeed& out) { + toRos_AdvisorySpeedType(in.type, out.type); + if (in.speed) { + toRos_SpeedAdvice(*in.speed, out.speed); + out.speed_is_present = true; + } + if (in.confidence) { + toRos_SpeedConfidenceDSRC(*in.confidence, out.confidence); + out.confidence_is_present = true; + } + if (in.distance) { + toRos_ZoneLength(*in.distance, out.distance); + out.distance_is_present = true; + } + if (in.Class) { + toRos_RestrictionClassID(*in.Class, out.cls); + out.cls_is_present = true; + } +} + +void toStruct_AdvisorySpeed(const spatem_ts_msgs::AdvisorySpeed& in, spatem_ts_AdvisorySpeed_t& out) { + memset(&out, 0, sizeof(spatem_ts_AdvisorySpeed_t)); + + toStruct_AdvisorySpeedType(in.type, out.type); + if (in.speed_is_present) { + out.speed = (spatem_ts_SpeedAdvice_t*) calloc(1, sizeof(spatem_ts_SpeedAdvice_t)); + toStruct_SpeedAdvice(in.speed, *out.speed); + } + if (in.confidence_is_present) { + out.confidence = (spatem_ts_SpeedConfidenceDSRC_t*) calloc(1, sizeof(spatem_ts_SpeedConfidenceDSRC_t)); + toStruct_SpeedConfidenceDSRC(in.confidence, *out.confidence); + } + if (in.distance_is_present) { + out.distance = (spatem_ts_ZoneLength_t*) calloc(1, sizeof(spatem_ts_ZoneLength_t)); + toStruct_ZoneLength(in.distance, *out.distance); + } + if (in.cls_is_present) { + out.Class = (spatem_ts_RestrictionClassID_t*) calloc(1, sizeof(spatem_ts_RestrictionClassID_t)); + toStruct_RestrictionClassID(in.cls, *out.Class); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertAdvisorySpeedList.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertAdvisorySpeedList.h new file mode 100644 index 000000000..7f5e60cbf --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertAdvisorySpeedList.h @@ -0,0 +1,66 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#include +#ifdef ROS1 +#include +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_AdvisorySpeedList(const spatem_ts_AdvisorySpeedList_t& in, spatem_ts_msgs::AdvisorySpeedList& out) { + for (int i = 0; i < in.list.count; ++i) { + spatem_ts_msgs::AdvisorySpeed el; + toRos_AdvisorySpeed(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_AdvisorySpeedList(const spatem_ts_msgs::AdvisorySpeedList& in, spatem_ts_AdvisorySpeedList_t& out) { + memset(&out, 0, sizeof(spatem_ts_AdvisorySpeedList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + spatem_ts_AdvisorySpeed_t* el = (spatem_ts_AdvisorySpeed_t*) calloc(1, sizeof(spatem_ts_AdvisorySpeed_t)); + toStruct_AdvisorySpeed(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertAdvisorySpeedType.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertAdvisorySpeedType.h new file mode 100644 index 000000000..e044cc9b5 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertAdvisorySpeedType.h @@ -0,0 +1,52 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_AdvisorySpeedType(const spatem_ts_AdvisorySpeedType_t& in, spatem_ts_msgs::AdvisorySpeedType& out) { + out.value = in; +} + +void toStruct_AdvisorySpeedType(const spatem_ts_msgs::AdvisorySpeedType& in, spatem_ts_AdvisorySpeedType_t& out) { + memset(&out, 0, sizeof(spatem_ts_AdvisorySpeedType_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertConnectionManeuverAssist.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertConnectionManeuverAssist.h new file mode 100644 index 000000000..7605563fb --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertConnectionManeuverAssist.h @@ -0,0 +1,87 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_ConnectionManeuverAssist(const spatem_ts_ConnectionManeuverAssist_t& in, spatem_ts_msgs::ConnectionManeuverAssist& out) { + toRos_LaneConnectionID(in.connectionID, out.connection_id); + if (in.queueLength) { + toRos_ZoneLength(*in.queueLength, out.queue_length); + out.queue_length_is_present = true; + } + if (in.availableStorageLength) { + toRos_ZoneLength(*in.availableStorageLength, out.available_storage_length); + out.available_storage_length_is_present = true; + } + if (in.waitOnStop) { + toRos_WaitOnStopline(*in.waitOnStop, out.wait_on_stop); + out.wait_on_stop_is_present = true; + } + if (in.pedBicycleDetect) { + toRos_PedestrianBicycleDetect(*in.pedBicycleDetect, out.ped_bicycle_detect); + out.ped_bicycle_detect_is_present = true; + } +} + +void toStruct_ConnectionManeuverAssist(const spatem_ts_msgs::ConnectionManeuverAssist& in, spatem_ts_ConnectionManeuverAssist_t& out) { + memset(&out, 0, sizeof(spatem_ts_ConnectionManeuverAssist_t)); + + toStruct_LaneConnectionID(in.connection_id, out.connectionID); + if (in.queue_length_is_present) { + out.queueLength = (spatem_ts_ZoneLength_t*) calloc(1, sizeof(spatem_ts_ZoneLength_t)); + toStruct_ZoneLength(in.queue_length, *out.queueLength); + } + if (in.available_storage_length_is_present) { + out.availableStorageLength = (spatem_ts_ZoneLength_t*) calloc(1, sizeof(spatem_ts_ZoneLength_t)); + toStruct_ZoneLength(in.available_storage_length, *out.availableStorageLength); + } + if (in.wait_on_stop_is_present) { + out.waitOnStop = (spatem_ts_WaitOnStopline_t*) calloc(1, sizeof(spatem_ts_WaitOnStopline_t)); + toStruct_WaitOnStopline(in.wait_on_stop, *out.waitOnStop); + } + if (in.ped_bicycle_detect_is_present) { + out.pedBicycleDetect = (spatem_ts_PedestrianBicycleDetect_t*) calloc(1, sizeof(spatem_ts_PedestrianBicycleDetect_t)); + toStruct_PedestrianBicycleDetect(in.ped_bicycle_detect, *out.pedBicycleDetect); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertDSecond.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertDSecond.h new file mode 100644 index 000000000..c8a94d336 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertDSecond.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_DSecond(const spatem_ts_DSecond_t& in, spatem_ts_msgs::DSecond& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_DSecond(const spatem_ts_msgs::DSecond& in, spatem_ts_DSecond_t& out) { + memset(&out, 0, sizeof(spatem_ts_DSecond_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertDescriptiveName.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertDescriptiveName.h new file mode 100644 index 000000000..6c5629981 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertDescriptiveName.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_DescriptiveName(const spatem_ts_DescriptiveName_t& in, spatem_ts_msgs::DescriptiveName& out) { + etsi_its_primitives_conversion::toRos_IA5String(in, out.value); +} + +void toStruct_DescriptiveName(const spatem_ts_msgs::DescriptiveName& in, spatem_ts_DescriptiveName_t& out) { + memset(&out, 0, sizeof(spatem_ts_DescriptiveName_t)); + + etsi_its_primitives_conversion::toStruct_IA5String(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertEnabledLaneList.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertEnabledLaneList.h new file mode 100644 index 000000000..ae872154d --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertEnabledLaneList.h @@ -0,0 +1,66 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#include +#ifdef ROS1 +#include +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_EnabledLaneList(const spatem_ts_EnabledLaneList_t& in, spatem_ts_msgs::EnabledLaneList& out) { + for (int i = 0; i < in.list.count; ++i) { + spatem_ts_msgs::LaneID el; + toRos_LaneID(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_EnabledLaneList(const spatem_ts_msgs::EnabledLaneList& in, spatem_ts_EnabledLaneList_t& out) { + memset(&out, 0, sizeof(spatem_ts_EnabledLaneList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + spatem_ts_LaneID_t* el = (spatem_ts_LaneID_t*) calloc(1, sizeof(spatem_ts_LaneID_t)); + toStruct_LaneID(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertIntersectionID.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertIntersectionID.h new file mode 100644 index 000000000..c55eeb364 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertIntersectionID.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_IntersectionID(const spatem_ts_IntersectionID_t& in, spatem_ts_msgs::IntersectionID& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_IntersectionID(const spatem_ts_msgs::IntersectionID& in, spatem_ts_IntersectionID_t& out) { + memset(&out, 0, sizeof(spatem_ts_IntersectionID_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertIntersectionReferenceID.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertIntersectionReferenceID.h new file mode 100644 index 000000000..3028260da --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertIntersectionReferenceID.h @@ -0,0 +1,61 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_IntersectionReferenceID(const spatem_ts_IntersectionReferenceID_t& in, spatem_ts_msgs::IntersectionReferenceID& out) { + if (in.region) { + toRos_RoadRegulatorID(*in.region, out.region); + out.region_is_present = true; + } + toRos_IntersectionID(in.id, out.id); +} + +void toStruct_IntersectionReferenceID(const spatem_ts_msgs::IntersectionReferenceID& in, spatem_ts_IntersectionReferenceID_t& out) { + memset(&out, 0, sizeof(spatem_ts_IntersectionReferenceID_t)); + + if (in.region_is_present) { + out.region = (spatem_ts_RoadRegulatorID_t*) calloc(1, sizeof(spatem_ts_RoadRegulatorID_t)); + toStruct_RoadRegulatorID(in.region, *out.region); + } + toStruct_IntersectionID(in.id, out.id); +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertIntersectionState.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertIntersectionState.h new file mode 100644 index 000000000..7f6cc2847 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertIntersectionState.h @@ -0,0 +1,106 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_IntersectionState(const spatem_ts_IntersectionState_t& in, spatem_ts_msgs::IntersectionState& out) { + if (in.name) { + toRos_DescriptiveName(*in.name, out.name); + out.name_is_present = true; + } + toRos_IntersectionReferenceID(in.id, out.id); + toRos_MsgCount(in.revision, out.revision); + toRos_IntersectionStatusObject(in.status, out.status); + if (in.moy) { + toRos_MinuteOfTheYear(*in.moy, out.moy); + out.moy_is_present = true; + } + if (in.timeStamp) { + toRos_DSecond(*in.timeStamp, out.time_stamp); + out.time_stamp_is_present = true; + } + if (in.enabledLanes) { + toRos_EnabledLaneList(*in.enabledLanes, out.enabled_lanes); + out.enabled_lanes_is_present = true; + } + toRos_MovementList(in.states, out.states); + if (in.maneuverAssistList) { + toRos_ManeuverAssistList(*in.maneuverAssistList, out.maneuver_assist_list); + out.maneuver_assist_list_is_present = true; + } +} + +void toStruct_IntersectionState(const spatem_ts_msgs::IntersectionState& in, spatem_ts_IntersectionState_t& out) { + memset(&out, 0, sizeof(spatem_ts_IntersectionState_t)); + + if (in.name_is_present) { + out.name = (spatem_ts_DescriptiveName_t*) calloc(1, sizeof(spatem_ts_DescriptiveName_t)); + toStruct_DescriptiveName(in.name, *out.name); + } + toStruct_IntersectionReferenceID(in.id, out.id); + toStruct_MsgCount(in.revision, out.revision); + toStruct_IntersectionStatusObject(in.status, out.status); + if (in.moy_is_present) { + out.moy = (spatem_ts_MinuteOfTheYear_t*) calloc(1, sizeof(spatem_ts_MinuteOfTheYear_t)); + toStruct_MinuteOfTheYear(in.moy, *out.moy); + } + if (in.time_stamp_is_present) { + out.timeStamp = (spatem_ts_DSecond_t*) calloc(1, sizeof(spatem_ts_DSecond_t)); + toStruct_DSecond(in.time_stamp, *out.timeStamp); + } + if (in.enabled_lanes_is_present) { + out.enabledLanes = (spatem_ts_EnabledLaneList_t*) calloc(1, sizeof(spatem_ts_EnabledLaneList_t)); + toStruct_EnabledLaneList(in.enabled_lanes, *out.enabledLanes); + } + toStruct_MovementList(in.states, out.states); + if (in.maneuver_assist_list_is_present) { + out.maneuverAssistList = (spatem_ts_ManeuverAssistList_t*) calloc(1, sizeof(spatem_ts_ManeuverAssistList_t)); + toStruct_ManeuverAssistList(in.maneuver_assist_list, *out.maneuverAssistList); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertIntersectionStateList.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertIntersectionStateList.h new file mode 100644 index 000000000..d12ea934f --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertIntersectionStateList.h @@ -0,0 +1,66 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#include +#ifdef ROS1 +#include +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_IntersectionStateList(const spatem_ts_IntersectionStateList_t& in, spatem_ts_msgs::IntersectionStateList& out) { + for (int i = 0; i < in.list.count; ++i) { + spatem_ts_msgs::IntersectionState el; + toRos_IntersectionState(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_IntersectionStateList(const spatem_ts_msgs::IntersectionStateList& in, spatem_ts_IntersectionStateList_t& out) { + memset(&out, 0, sizeof(spatem_ts_IntersectionStateList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + spatem_ts_IntersectionState_t* el = (spatem_ts_IntersectionState_t*) calloc(1, sizeof(spatem_ts_IntersectionState_t)); + toStruct_IntersectionState(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertIntersectionStatusObject.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertIntersectionStatusObject.h new file mode 100644 index 000000000..95aad0267 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertIntersectionStatusObject.h @@ -0,0 +1,55 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_IntersectionStatusObject(const spatem_ts_IntersectionStatusObject_t& in, spatem_ts_msgs::IntersectionStatusObject& out) { + etsi_its_primitives_conversion::toRos_BIT_STRING(in, out.value); + out.bits_unused = in.bits_unused; +} + +void toStruct_IntersectionStatusObject(const spatem_ts_msgs::IntersectionStatusObject& in, spatem_ts_IntersectionStatusObject_t& out) { + memset(&out, 0, sizeof(spatem_ts_IntersectionStatusObject_t)); + + etsi_its_primitives_conversion::toStruct_BIT_STRING(in.value, out); + out.bits_unused = in.bits_unused; +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertItsPduHeader.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertItsPduHeader.h new file mode 100644 index 000000000..602383545 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertItsPduHeader.h @@ -0,0 +1,58 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_ItsPduHeader(const spatem_ts_ItsPduHeader_t& in, spatem_ts_msgs::ItsPduHeader& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in.protocolVersion, out.protocol_version); + etsi_its_primitives_conversion::toRos_INTEGER(in.messageID, out.message_id); + toRos_StationID(in.stationID, out.station_id); +} + +void toStruct_ItsPduHeader(const spatem_ts_msgs::ItsPduHeader& in, spatem_ts_ItsPduHeader_t& out) { + memset(&out, 0, sizeof(spatem_ts_ItsPduHeader_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.protocol_version, out.protocolVersion); + etsi_its_primitives_conversion::toStruct_INTEGER(in.message_id, out.messageID); + toStruct_StationID(in.station_id, out.stationID); +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertLaneConnectionID.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertLaneConnectionID.h new file mode 100644 index 000000000..7b5db2188 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertLaneConnectionID.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_LaneConnectionID(const spatem_ts_LaneConnectionID_t& in, spatem_ts_msgs::LaneConnectionID& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_LaneConnectionID(const spatem_ts_msgs::LaneConnectionID& in, spatem_ts_LaneConnectionID_t& out) { + memset(&out, 0, sizeof(spatem_ts_LaneConnectionID_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertLaneID.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertLaneID.h new file mode 100644 index 000000000..8ac222372 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertLaneID.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_LaneID(const spatem_ts_LaneID_t& in, spatem_ts_msgs::LaneID& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_LaneID(const spatem_ts_msgs::LaneID& in, spatem_ts_LaneID_t& out) { + memset(&out, 0, sizeof(spatem_ts_LaneID_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertManeuverAssistList.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertManeuverAssistList.h new file mode 100644 index 000000000..12433efdb --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertManeuverAssistList.h @@ -0,0 +1,66 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#include +#ifdef ROS1 +#include +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_ManeuverAssistList(const spatem_ts_ManeuverAssistList_t& in, spatem_ts_msgs::ManeuverAssistList& out) { + for (int i = 0; i < in.list.count; ++i) { + spatem_ts_msgs::ConnectionManeuverAssist el; + toRos_ConnectionManeuverAssist(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_ManeuverAssistList(const spatem_ts_msgs::ManeuverAssistList& in, spatem_ts_ManeuverAssistList_t& out) { + memset(&out, 0, sizeof(spatem_ts_ManeuverAssistList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + spatem_ts_ConnectionManeuverAssist_t* el = (spatem_ts_ConnectionManeuverAssist_t*) calloc(1, sizeof(spatem_ts_ConnectionManeuverAssist_t)); + toStruct_ConnectionManeuverAssist(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertMinuteOfTheYear.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertMinuteOfTheYear.h new file mode 100644 index 000000000..c5f756611 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertMinuteOfTheYear.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_MinuteOfTheYear(const spatem_ts_MinuteOfTheYear_t& in, spatem_ts_msgs::MinuteOfTheYear& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_MinuteOfTheYear(const spatem_ts_msgs::MinuteOfTheYear& in, spatem_ts_MinuteOfTheYear_t& out) { + memset(&out, 0, sizeof(spatem_ts_MinuteOfTheYear_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertMovementEvent.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertMovementEvent.h new file mode 100644 index 000000000..8e9a4eb31 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertMovementEvent.h @@ -0,0 +1,70 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_MovementEvent(const spatem_ts_MovementEvent_t& in, spatem_ts_msgs::MovementEvent& out) { + toRos_MovementPhaseState(in.eventState, out.event_state); + if (in.timing) { + toRos_TimeChangeDetails(*in.timing, out.timing); + out.timing_is_present = true; + } + if (in.speeds) { + toRos_AdvisorySpeedList(*in.speeds, out.speeds); + out.speeds_is_present = true; + } +} + +void toStruct_MovementEvent(const spatem_ts_msgs::MovementEvent& in, spatem_ts_MovementEvent_t& out) { + memset(&out, 0, sizeof(spatem_ts_MovementEvent_t)); + + toStruct_MovementPhaseState(in.event_state, out.eventState); + if (in.timing_is_present) { + out.timing = (spatem_ts_TimeChangeDetails_t*) calloc(1, sizeof(spatem_ts_TimeChangeDetails_t)); + toStruct_TimeChangeDetails(in.timing, *out.timing); + } + if (in.speeds_is_present) { + out.speeds = (spatem_ts_AdvisorySpeedList_t*) calloc(1, sizeof(spatem_ts_AdvisorySpeedList_t)); + toStruct_AdvisorySpeedList(in.speeds, *out.speeds); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertMovementEventList.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertMovementEventList.h new file mode 100644 index 000000000..965500653 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertMovementEventList.h @@ -0,0 +1,66 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#include +#ifdef ROS1 +#include +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_MovementEventList(const spatem_ts_MovementEventList_t& in, spatem_ts_msgs::MovementEventList& out) { + for (int i = 0; i < in.list.count; ++i) { + spatem_ts_msgs::MovementEvent el; + toRos_MovementEvent(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_MovementEventList(const spatem_ts_msgs::MovementEventList& in, spatem_ts_MovementEventList_t& out) { + memset(&out, 0, sizeof(spatem_ts_MovementEventList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + spatem_ts_MovementEvent_t* el = (spatem_ts_MovementEvent_t*) calloc(1, sizeof(spatem_ts_MovementEvent_t)); + toStruct_MovementEvent(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertMovementList.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertMovementList.h new file mode 100644 index 000000000..c05491e4e --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertMovementList.h @@ -0,0 +1,66 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#include +#include +#include +#include +#ifdef ROS1 +#include +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_MovementList(const spatem_ts_MovementList_t& in, spatem_ts_msgs::MovementList& out) { + for (int i = 0; i < in.list.count; ++i) { + spatem_ts_msgs::MovementState el; + toRos_MovementState(*(in.list.array[i]), el); + out.array.push_back(el); + } +} + +void toStruct_MovementList(const spatem_ts_msgs::MovementList& in, spatem_ts_MovementList_t& out) { + memset(&out, 0, sizeof(spatem_ts_MovementList_t)); + + for (int i = 0; i < in.array.size(); ++i) { + spatem_ts_MovementState_t* el = (spatem_ts_MovementState_t*) calloc(1, sizeof(spatem_ts_MovementState_t)); + toStruct_MovementState(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertMovementPhaseState.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertMovementPhaseState.h new file mode 100644 index 000000000..087748871 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertMovementPhaseState.h @@ -0,0 +1,52 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_MovementPhaseState(const spatem_ts_MovementPhaseState_t& in, spatem_ts_msgs::MovementPhaseState& out) { + out.value = in; +} + +void toStruct_MovementPhaseState(const spatem_ts_msgs::MovementPhaseState& in, spatem_ts_MovementPhaseState_t& out) { + memset(&out, 0, sizeof(spatem_ts_MovementPhaseState_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertMovementState.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertMovementState.h new file mode 100644 index 000000000..834ac3096 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertMovementState.h @@ -0,0 +1,73 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_MovementState(const spatem_ts_MovementState_t& in, spatem_ts_msgs::MovementState& out) { + if (in.movementName) { + toRos_DescriptiveName(*in.movementName, out.movement_name); + out.movement_name_is_present = true; + } + toRos_SignalGroupID(in.signalGroup, out.signal_group); + toRos_MovementEventList(in.state_time_speed, out.state_time_speed); + if (in.maneuverAssistList) { + toRos_ManeuverAssistList(*in.maneuverAssistList, out.maneuver_assist_list); + out.maneuver_assist_list_is_present = true; + } +} + +void toStruct_MovementState(const spatem_ts_msgs::MovementState& in, spatem_ts_MovementState_t& out) { + memset(&out, 0, sizeof(spatem_ts_MovementState_t)); + + if (in.movement_name_is_present) { + out.movementName = (spatem_ts_DescriptiveName_t*) calloc(1, sizeof(spatem_ts_DescriptiveName_t)); + toStruct_DescriptiveName(in.movement_name, *out.movementName); + } + toStruct_SignalGroupID(in.signal_group, out.signalGroup); + toStruct_MovementEventList(in.state_time_speed, out.state_time_speed); + if (in.maneuver_assist_list_is_present) { + out.maneuverAssistList = (spatem_ts_ManeuverAssistList_t*) calloc(1, sizeof(spatem_ts_ManeuverAssistList_t)); + toStruct_ManeuverAssistList(in.maneuver_assist_list, *out.maneuverAssistList); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertMsgCount.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertMsgCount.h new file mode 100644 index 000000000..3d23c593b --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertMsgCount.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_MsgCount(const spatem_ts_MsgCount_t& in, spatem_ts_msgs::MsgCount& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_MsgCount(const spatem_ts_msgs::MsgCount& in, spatem_ts_MsgCount_t& out) { + memset(&out, 0, sizeof(spatem_ts_MsgCount_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertPedestrianBicycleDetect.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertPedestrianBicycleDetect.h new file mode 100644 index 000000000..15bf896d3 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertPedestrianBicycleDetect.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_PedestrianBicycleDetect(const spatem_ts_PedestrianBicycleDetect_t& in, spatem_ts_msgs::PedestrianBicycleDetect& out) { + etsi_its_primitives_conversion::toRos_BOOLEAN(in, out.value); +} + +void toStruct_PedestrianBicycleDetect(const spatem_ts_msgs::PedestrianBicycleDetect& in, spatem_ts_PedestrianBicycleDetect_t& out) { + memset(&out, 0, sizeof(spatem_ts_PedestrianBicycleDetect_t)); + + etsi_its_primitives_conversion::toStruct_BOOLEAN(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertRestrictionClassID.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertRestrictionClassID.h new file mode 100644 index 000000000..37bb98cdd --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertRestrictionClassID.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_RestrictionClassID(const spatem_ts_RestrictionClassID_t& in, spatem_ts_msgs::RestrictionClassID& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_RestrictionClassID(const spatem_ts_msgs::RestrictionClassID& in, spatem_ts_RestrictionClassID_t& out) { + memset(&out, 0, sizeof(spatem_ts_RestrictionClassID_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertRoadRegulatorID.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertRoadRegulatorID.h new file mode 100644 index 000000000..0e4327c80 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertRoadRegulatorID.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_RoadRegulatorID(const spatem_ts_RoadRegulatorID_t& in, spatem_ts_msgs::RoadRegulatorID& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_RoadRegulatorID(const spatem_ts_msgs::RoadRegulatorID& in, spatem_ts_RoadRegulatorID_t& out) { + memset(&out, 0, sizeof(spatem_ts_RoadRegulatorID_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertSPAT.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertSPAT.h new file mode 100644 index 000000000..5992e144d --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertSPAT.h @@ -0,0 +1,70 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_SPAT(const spatem_ts_SPAT_t& in, spatem_ts_msgs::SPAT& out) { + if (in.timeStamp) { + toRos_MinuteOfTheYear(*in.timeStamp, out.time_stamp); + out.time_stamp_is_present = true; + } + if (in.name) { + toRos_DescriptiveName(*in.name, out.name); + out.name_is_present = true; + } + toRos_IntersectionStateList(in.intersections, out.intersections); +} + +void toStruct_SPAT(const spatem_ts_msgs::SPAT& in, spatem_ts_SPAT_t& out) { + memset(&out, 0, sizeof(spatem_ts_SPAT_t)); + + if (in.time_stamp_is_present) { + out.timeStamp = (spatem_ts_MinuteOfTheYear_t*) calloc(1, sizeof(spatem_ts_MinuteOfTheYear_t)); + toStruct_MinuteOfTheYear(in.time_stamp, *out.timeStamp); + } + if (in.name_is_present) { + out.name = (spatem_ts_DescriptiveName_t*) calloc(1, sizeof(spatem_ts_DescriptiveName_t)); + toStruct_DescriptiveName(in.name, *out.name); + } + toStruct_IntersectionStateList(in.intersections, out.intersections); +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertSPATEM.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertSPATEM.h new file mode 100644 index 000000000..cd965262e --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertSPATEM.h @@ -0,0 +1,55 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_SPATEM(const spatem_ts_SPATEM_t& in, spatem_ts_msgs::SPATEM& out) { + toRos_ItsPduHeader(in.header, out.header); + toRos_SPAT(in.spat, out.spat); +} + +void toStruct_SPATEM(const spatem_ts_msgs::SPATEM& in, spatem_ts_SPATEM_t& out) { + memset(&out, 0, sizeof(spatem_ts_SPATEM_t)); + + toStruct_ItsPduHeader(in.header, out.header); + toStruct_SPAT(in.spat, out.spat); +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertSignalGroupID.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertSignalGroupID.h new file mode 100644 index 000000000..306e961bb --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertSignalGroupID.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_SignalGroupID(const spatem_ts_SignalGroupID_t& in, spatem_ts_msgs::SignalGroupID& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_SignalGroupID(const spatem_ts_msgs::SignalGroupID& in, spatem_ts_SignalGroupID_t& out) { + memset(&out, 0, sizeof(spatem_ts_SignalGroupID_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertSpeedAdvice.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertSpeedAdvice.h new file mode 100644 index 000000000..b664f03e1 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertSpeedAdvice.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_SpeedAdvice(const spatem_ts_SpeedAdvice_t& in, spatem_ts_msgs::SpeedAdvice& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_SpeedAdvice(const spatem_ts_msgs::SpeedAdvice& in, spatem_ts_SpeedAdvice_t& out) { + memset(&out, 0, sizeof(spatem_ts_SpeedAdvice_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertSpeedConfidenceDSRC.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertSpeedConfidenceDSRC.h new file mode 100644 index 000000000..8a5bd203a --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertSpeedConfidenceDSRC.h @@ -0,0 +1,52 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include + +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_SpeedConfidenceDSRC(const spatem_ts_SpeedConfidenceDSRC_t& in, spatem_ts_msgs::SpeedConfidenceDSRC& out) { + out.value = in; +} + +void toStruct_SpeedConfidenceDSRC(const spatem_ts_msgs::SpeedConfidenceDSRC& in, spatem_ts_SpeedConfidenceDSRC_t& out) { + memset(&out, 0, sizeof(spatem_ts_SpeedConfidenceDSRC_t)); + + out = in.value; +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertStationID.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertStationID.h new file mode 100644 index 000000000..c30dd2002 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertStationID.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_StationID(const spatem_ts_StationID_t& in, spatem_ts_msgs::StationID& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_StationID(const spatem_ts_msgs::StationID& in, spatem_ts_StationID_t& out) { + memset(&out, 0, sizeof(spatem_ts_StationID_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertTimeChangeDetails.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertTimeChangeDetails.h new file mode 100644 index 000000000..17c598247 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertTimeChangeDetails.h @@ -0,0 +1,93 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_TimeChangeDetails(const spatem_ts_TimeChangeDetails_t& in, spatem_ts_msgs::TimeChangeDetails& out) { + if (in.startTime) { + toRos_TimeMark(*in.startTime, out.start_time); + out.start_time_is_present = true; + } + toRos_TimeMark(in.minEndTime, out.min_end_time); + if (in.maxEndTime) { + toRos_TimeMark(*in.maxEndTime, out.max_end_time); + out.max_end_time_is_present = true; + } + if (in.likelyTime) { + toRos_TimeMark(*in.likelyTime, out.likely_time); + out.likely_time_is_present = true; + } + if (in.confidence) { + toRos_TimeIntervalConfidence(*in.confidence, out.confidence); + out.confidence_is_present = true; + } + if (in.nextTime) { + toRos_TimeMark(*in.nextTime, out.next_time); + out.next_time_is_present = true; + } +} + +void toStruct_TimeChangeDetails(const spatem_ts_msgs::TimeChangeDetails& in, spatem_ts_TimeChangeDetails_t& out) { + memset(&out, 0, sizeof(spatem_ts_TimeChangeDetails_t)); + + if (in.start_time_is_present) { + out.startTime = (spatem_ts_TimeMark_t*) calloc(1, sizeof(spatem_ts_TimeMark_t)); + toStruct_TimeMark(in.start_time, *out.startTime); + } + toStruct_TimeMark(in.min_end_time, out.minEndTime); + if (in.max_end_time_is_present) { + out.maxEndTime = (spatem_ts_TimeMark_t*) calloc(1, sizeof(spatem_ts_TimeMark_t)); + toStruct_TimeMark(in.max_end_time, *out.maxEndTime); + } + if (in.likely_time_is_present) { + out.likelyTime = (spatem_ts_TimeMark_t*) calloc(1, sizeof(spatem_ts_TimeMark_t)); + toStruct_TimeMark(in.likely_time, *out.likelyTime); + } + if (in.confidence_is_present) { + out.confidence = (spatem_ts_TimeIntervalConfidence_t*) calloc(1, sizeof(spatem_ts_TimeIntervalConfidence_t)); + toStruct_TimeIntervalConfidence(in.confidence, *out.confidence); + } + if (in.next_time_is_present) { + out.nextTime = (spatem_ts_TimeMark_t*) calloc(1, sizeof(spatem_ts_TimeMark_t)); + toStruct_TimeMark(in.next_time, *out.nextTime); + } +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertTimeIntervalConfidence.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertTimeIntervalConfidence.h new file mode 100644 index 000000000..8f2a87164 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertTimeIntervalConfidence.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_TimeIntervalConfidence(const spatem_ts_TimeIntervalConfidence_t& in, spatem_ts_msgs::TimeIntervalConfidence& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_TimeIntervalConfidence(const spatem_ts_msgs::TimeIntervalConfidence& in, spatem_ts_TimeIntervalConfidence_t& out) { + memset(&out, 0, sizeof(spatem_ts_TimeIntervalConfidence_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertTimeMark.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertTimeMark.h new file mode 100644 index 000000000..5f86d39a6 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertTimeMark.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_TimeMark(const spatem_ts_TimeMark_t& in, spatem_ts_msgs::TimeMark& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_TimeMark(const spatem_ts_msgs::TimeMark& in, spatem_ts_TimeMark_t& out) { + memset(&out, 0, sizeof(spatem_ts_TimeMark_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertWaitOnStopline.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertWaitOnStopline.h new file mode 100644 index 000000000..d6846dbe6 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertWaitOnStopline.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_WaitOnStopline(const spatem_ts_WaitOnStopline_t& in, spatem_ts_msgs::WaitOnStopline& out) { + etsi_its_primitives_conversion::toRos_BOOLEAN(in, out.value); +} + +void toStruct_WaitOnStopline(const spatem_ts_msgs::WaitOnStopline& in, spatem_ts_WaitOnStopline_t& out) { + memset(&out, 0, sizeof(spatem_ts_WaitOnStopline_t)); + + etsi_its_primitives_conversion::toStruct_BOOLEAN(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertZoneLength.h b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertZoneLength.h new file mode 100644 index 000000000..c31f680c1 --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/include/etsi_its_spatem_ts_conversion/convertZoneLength.h @@ -0,0 +1,53 @@ +/** ============================================================================ +MIT License + +Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +============================================================================= */ + +// --- Auto-generated by asn1ToConversionHeader.py ----------------------------- + +#pragma once + +#include +#include +#include +#ifdef ROS1 +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs; +#else +#include +namespace spatem_ts_msgs = etsi_its_spatem_ts_msgs::msg; +#endif + + +namespace etsi_its_spatem_ts_conversion { + +void toRos_ZoneLength(const spatem_ts_ZoneLength_t& in, spatem_ts_msgs::ZoneLength& out) { + etsi_its_primitives_conversion::toRos_INTEGER(in, out.value); +} + +void toStruct_ZoneLength(const spatem_ts_msgs::ZoneLength& in, spatem_ts_ZoneLength_t& out) { + memset(&out, 0, sizeof(spatem_ts_ZoneLength_t)); + + etsi_its_primitives_conversion::toStruct_INTEGER(in.value, out); +} + +} diff --git a/etsi_its_conversion/etsi_its_spatem_ts_conversion/package.xml b/etsi_its_conversion/etsi_its_spatem_ts_conversion/package.xml new file mode 100644 index 000000000..537ed6f7c --- /dev/null +++ b/etsi_its_conversion/etsi_its_spatem_ts_conversion/package.xml @@ -0,0 +1,31 @@ + + + + etsi_its_spatem_ts_conversion + 2.2.0 + Conversion functions for converting ROS messages to and from ASN.1-encoded ETSI ITS SPATEMs (TS) + + Jean-Pierre Busch + Guido Küppers + Lennart Reiher + + Jean-Pierre Busch + Guido Küppers + Lennart Reiher + + MIT + + etsi_its_spatem_ts_coding + etsi_its_spatem_ts_msgs + etsi_its_primitives_conversion + ros_environment + + catkin + ament_cmake + + + catkin + ament_cmake + + + diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAccelerationChange.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAccelerationChange.h index c6d4499e7..9438e17ac 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAccelerationChange.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAccelerationChange.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAccelerationChangeIndication.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAccelerationChangeIndication.h index 8c9cceb02..603ce9dcc 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAccelerationChangeIndication.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAccelerationChangeIndication.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAccelerationConfidence.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAccelerationConfidence.h index c3fb52e47..36495add9 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAccelerationConfidence.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAccelerationConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAltitude.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAltitude.h index 9d8e4a3b9..2257fae19 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAltitude.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAltitude.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAltitudeConfidence.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAltitudeConfidence.h index 14585a926..c6d853233 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAltitudeConfidence.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAltitudeConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAltitudeValue.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAltitudeValue.h index dd44b864c..cfeab7d72 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAltitudeValue.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAltitudeValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAngleConfidence.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAngleConfidence.h index eddfdcf08..0260a2926 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAngleConfidence.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertAngleConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertBasicContainer.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertBasicContainer.h index dfeaed1c5..a529cd2c3 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertBasicContainer.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertBasicContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCardinalNumber1B.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCardinalNumber1B.h index 8c03458ef..9ab0dd5ec 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCardinalNumber1B.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCardinalNumber1B.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCartesianAngle.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCartesianAngle.h index f3c79686e..3011ddbd7 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCartesianAngle.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCartesianAngle.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCartesianAngleValue.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCartesianAngleValue.h index 95255c49d..6a497476e 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCartesianAngleValue.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCartesianAngleValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCartesianCoordinate.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCartesianCoordinate.h index 35ba77cb0..c36287558 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCartesianCoordinate.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCartesianCoordinate.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCartesianCoordinateSmall.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCartesianCoordinateSmall.h index 62f03f156..41780ca91 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCartesianCoordinateSmall.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCartesianCoordinateSmall.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCartesianPosition3d.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCartesianPosition3d.h index 2e6c640a3..1d0b25216 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCartesianPosition3d.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCartesianPosition3d.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCircularShape.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCircularShape.h index b0bcf2e76..69ca5a71b 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCircularShape.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCircularShape.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertClusterBreakupInfo.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertClusterBreakupInfo.h index 9887fce73..08ff5e48f 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertClusterBreakupInfo.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertClusterBreakupInfo.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertClusterBreakupReason.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertClusterBreakupReason.h index 5f9646ba7..972baf3b2 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertClusterBreakupReason.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertClusterBreakupReason.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertClusterJoinInfo.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertClusterJoinInfo.h index 52d3800e1..10bdeadac 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertClusterJoinInfo.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertClusterJoinInfo.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertClusterLeaveInfo.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertClusterLeaveInfo.h index 77ea19928..1692cf10c 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertClusterLeaveInfo.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertClusterLeaveInfo.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertClusterLeaveReason.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertClusterLeaveReason.h index edf8aea48..450e2e365 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertClusterLeaveReason.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertClusterLeaveReason.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCurvature.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCurvature.h index 681c157d0..36409923d 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCurvature.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCurvature.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCurvatureCalculationMode.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCurvatureCalculationMode.h index e55cdda09..8714e02c9 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCurvatureCalculationMode.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCurvatureCalculationMode.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCurvatureConfidence.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCurvatureConfidence.h index c2f060c39..e44faa9ad 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCurvatureConfidence.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCurvatureConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCurvatureValue.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCurvatureValue.h index ee01128b7..d6cfb68ca 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCurvatureValue.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertCurvatureValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertDeltaAltitude.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertDeltaAltitude.h index 6e19aa3c0..8400e4479 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertDeltaAltitude.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertDeltaAltitude.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertDeltaLatitude.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertDeltaLatitude.h index d4c3c972d..e1ad0d5c3 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertDeltaLatitude.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertDeltaLatitude.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertDeltaLongitude.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertDeltaLongitude.h index 34be032f9..c531967fc 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertDeltaLongitude.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertDeltaLongitude.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertDeltaReferencePosition.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertDeltaReferencePosition.h index ecba3830d..2bf20a2bc 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertDeltaReferencePosition.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertDeltaReferencePosition.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertDeltaTimeQuarterSecond.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertDeltaTimeQuarterSecond.h index a15d688ef..c0a40dcfc 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertDeltaTimeQuarterSecond.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertDeltaTimeQuarterSecond.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertDeltaTimeTenthOfSecond.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertDeltaTimeTenthOfSecond.h index 26a5686e3..a85c4c744 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertDeltaTimeTenthOfSecond.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertDeltaTimeTenthOfSecond.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertEllipticalShape.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertEllipticalShape.h index c99b75b2c..a8e8ae50c 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertEllipticalShape.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertEllipticalShape.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertExteriorLights.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertExteriorLights.h index 34050a996..d3f9560dc 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertExteriorLights.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertExteriorLights.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertGeneralizedLanePosition.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertGeneralizedLanePosition.h index 02d1cc314..0d4a648a1 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertGeneralizedLanePosition.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertGeneralizedLanePosition.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertGenerationDeltaTime.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertGenerationDeltaTime.h index 9eab5be40..2e0a1b039 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertGenerationDeltaTime.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertGenerationDeltaTime.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertHeadingChangeIndication.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertHeadingChangeIndication.h index 0a6e2b732..d28ab6e14 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertHeadingChangeIndication.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertHeadingChangeIndication.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertHeadingValue.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertHeadingValue.h index 7a3cf1bf1..a3c96a4d1 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertHeadingValue.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertHeadingValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertIdentifier1B.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertIdentifier1B.h index d6b400ae8..a59632252 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertIdentifier1B.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertIdentifier1B.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertIdentifier2B.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertIdentifier2B.h index 6a6dd1787..e6d3589d8 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertIdentifier2B.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertIdentifier2B.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertIntersectionReferenceId.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertIntersectionReferenceId.h index deccdbcf1..a05917ce7 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertIntersectionReferenceId.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertIntersectionReferenceId.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertItsPduHeader.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertItsPduHeader.h index 511731d13..186d19545 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertItsPduHeader.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertItsPduHeader.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertItsPduHeaderVam.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertItsPduHeaderVam.h index 70f028cff..ebe064fd8 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertItsPduHeaderVam.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertItsPduHeaderVam.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLanePosition.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLanePosition.h index f98f8f984..2fc8abf03 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLanePosition.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLanePosition.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLanePositionAndType.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLanePositionAndType.h index d25e16bde..fbd473a10 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLanePositionAndType.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLanePositionAndType.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLaneType.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLaneType.h index 59baa8413..1ca2b670f 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLaneType.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLaneType.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLateralAcceleration.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLateralAcceleration.h index 1db897b41..60eb68e78 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLateralAcceleration.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLateralAcceleration.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLateralAccelerationValue.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLateralAccelerationValue.h index 2b55c695d..1b39443a3 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLateralAccelerationValue.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLateralAccelerationValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLatitude.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLatitude.h index cdd2e1a02..7fd51c727 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLatitude.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLatitude.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLongitude.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLongitude.h index a72e4285d..9415e7890 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLongitude.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLongitude.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLongitudinalAcceleration.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLongitudinalAcceleration.h index 3c61c91c7..c64753b8e 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLongitudinalAcceleration.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLongitudinalAcceleration.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLongitudinalAccelerationValue.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLongitudinalAccelerationValue.h index dd8c6638b..e091e8a64 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLongitudinalAccelerationValue.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLongitudinalAccelerationValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLongitudinalLanePosition.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLongitudinalLanePosition.h index ff30cd356..bb81d303d 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLongitudinalLanePosition.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLongitudinalLanePosition.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLongitudinalLanePositionConfidence.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLongitudinalLanePositionConfidence.h index cde7b64e2..c47133701 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLongitudinalLanePositionConfidence.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLongitudinalLanePositionConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLongitudinalLanePositionValue.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLongitudinalLanePositionValue.h index c1709e17f..4f8f2a755 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLongitudinalLanePositionValue.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertLongitudinalLanePositionValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertMapPosition.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertMapPosition.h index 876716ce0..1169b35b1 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertMapPosition.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertMapPosition.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertMapReference.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertMapReference.h index 901d4db78..3828b0502 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertMapReference.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertMapReference.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertMessageId.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertMessageId.h index ea8ac91ee..bfd4cb323 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertMessageId.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertMessageId.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertOrdinalNumber1B.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertOrdinalNumber1B.h index 0d55b3bc1..628144d67 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertOrdinalNumber1B.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertOrdinalNumber1B.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPathDeltaTime.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPathDeltaTime.h index 9cbec50bc..68d54c8f7 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPathDeltaTime.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPathDeltaTime.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPathHistory.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPathHistory.h index ffdf5dbed..07162a4ed 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPathHistory.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPathHistory.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -29,13 +28,16 @@ SOFTWARE. #include +#include #include -#include +#include #include #ifdef ROS1 +#include #include namespace vam_ts_msgs = etsi_its_vam_ts_msgs; #else +#include #include namespace vam_ts_msgs = etsi_its_vam_ts_msgs::msg; #endif diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPathPoint.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPathPoint.h index b48159f7d..d370dd574 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPathPoint.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPathPoint.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPathPointPredicted.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPathPointPredicted.h index 1ff30ee50..e2965bdbb 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPathPointPredicted.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPathPointPredicted.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPathPredicted.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPathPredicted.h index b52d43f4f..b978382a3 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPathPredicted.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPathPredicted.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -29,13 +28,16 @@ SOFTWARE. #include +#include #include +#include #include -#include #ifdef ROS1 +#include #include namespace vam_ts_msgs = etsi_its_vam_ts_msgs; #else +#include #include namespace vam_ts_msgs = etsi_its_vam_ts_msgs::msg; #endif diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPolygonalShape.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPolygonalShape.h index f895e8339..0b2b59b9f 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPolygonalShape.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPolygonalShape.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPosConfidenceEllipse.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPosConfidenceEllipse.h index 41a0d3cb7..3d0ab977a 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPosConfidenceEllipse.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPosConfidenceEllipse.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPositionConfidenceEllipse.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPositionConfidenceEllipse.h index c6392dcb4..466254ecd 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPositionConfidenceEllipse.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertPositionConfidenceEllipse.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertRadialShape.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertRadialShape.h index eae6a17f5..a982e2b3b 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertRadialShape.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertRadialShape.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertRadialShapeDetails.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertRadialShapeDetails.h index e8b92e57c..600d2843b 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertRadialShapeDetails.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertRadialShapeDetails.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertRadialShapes.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertRadialShapes.h index dc5a53522..b47ebe10a 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertRadialShapes.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertRadialShapes.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertRadialShapesList.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertRadialShapesList.h index b7816fdc5..7c85c24ca 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertRadialShapesList.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertRadialShapesList.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -29,13 +28,16 @@ SOFTWARE. #include +#include #include +#include #include -#include #ifdef ROS1 +#include #include namespace vam_ts_msgs = etsi_its_vam_ts_msgs; #else +#include #include namespace vam_ts_msgs = etsi_its_vam_ts_msgs::msg; #endif diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertRectangularShape.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertRectangularShape.h index c7cedfa5b..670eb9913 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertRectangularShape.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertRectangularShape.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertReferencePositionWithConfidence.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertReferencePositionWithConfidence.h index 3c1deabe2..0dd0770e0 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertReferencePositionWithConfidence.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertReferencePositionWithConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertRoadSegmentReferenceId.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertRoadSegmentReferenceId.h index 67869cc73..f659eaa19 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertRoadSegmentReferenceId.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertRoadSegmentReferenceId.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSafeDistanceIndication.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSafeDistanceIndication.h index 7151087fe..222279d49 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSafeDistanceIndication.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSafeDistanceIndication.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSafeDistanceIndicator.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSafeDistanceIndicator.h index 0f816783e..582d8f051 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSafeDistanceIndicator.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSafeDistanceIndicator.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSemiAxisLength.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSemiAxisLength.h index e5027e0f6..c8d0de0de 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSemiAxisLength.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSemiAxisLength.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSequenceOfCartesianPosition3d.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSequenceOfCartesianPosition3d.h index d769a82aa..b73d088fe 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSequenceOfCartesianPosition3d.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSequenceOfCartesianPosition3d.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -29,13 +28,16 @@ SOFTWARE. #include +#include #include +#include #include -#include #ifdef ROS1 +#include #include namespace vam_ts_msgs = etsi_its_vam_ts_msgs; #else +#include #include namespace vam_ts_msgs = etsi_its_vam_ts_msgs::msg; #endif diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSequenceOfSafeDistanceIndication.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSequenceOfSafeDistanceIndication.h index 0f40d9239..fb6360022 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSequenceOfSafeDistanceIndication.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSequenceOfSafeDistanceIndication.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -29,13 +28,16 @@ SOFTWARE. #include +#include #include +#include #include -#include #ifdef ROS1 +#include #include namespace vam_ts_msgs = etsi_its_vam_ts_msgs; #else +#include #include namespace vam_ts_msgs = etsi_its_vam_ts_msgs::msg; #endif diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSequenceOfTrajectoryInterceptionIndication.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSequenceOfTrajectoryInterceptionIndication.h index 26e690154..2d8d2ad29 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSequenceOfTrajectoryInterceptionIndication.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSequenceOfTrajectoryInterceptionIndication.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -29,13 +28,16 @@ SOFTWARE. #include +#include #include -#include +#include #include #ifdef ROS1 +#include #include namespace vam_ts_msgs = etsi_its_vam_ts_msgs; #else +#include #include namespace vam_ts_msgs = etsi_its_vam_ts_msgs::msg; #endif diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertShape.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertShape.h index 1a0c671ae..b2ca91698 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertShape.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertShape.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSpeed.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSpeed.h index 15f1099f5..4cf348c8d 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSpeed.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSpeed.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSpeedConfidence.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSpeedConfidence.h index a281f1ed6..8752aa740 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSpeedConfidence.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSpeedConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSpeedValue.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSpeedValue.h index 57f16510b..f3c124e95 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSpeedValue.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertSpeedValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertStabilityChangeIndication.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertStabilityChangeIndication.h index 5dffc3be9..e4fedfa7b 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertStabilityChangeIndication.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertStabilityChangeIndication.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertStabilityLossProbability.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertStabilityLossProbability.h index 0a8bc9003..209067f53 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertStabilityLossProbability.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertStabilityLossProbability.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertStandardLength12b.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertStandardLength12b.h index 28bce331e..3c1c574a1 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertStandardLength12b.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertStandardLength12b.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertStationId.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertStationId.h index fb6af6233..b0fc2834d 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertStationId.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertStationId.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertTrafficIslandPosition.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertTrafficIslandPosition.h index 52ba4a29e..b3eb4ff62 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertTrafficIslandPosition.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertTrafficIslandPosition.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertTrafficParticipantType.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertTrafficParticipantType.h index eee3dde03..c047c810b 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertTrafficParticipantType.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertTrafficParticipantType.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertTrajectoryInterceptionConfidence.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertTrajectoryInterceptionConfidence.h index cdd09618b..c2aa55fbd 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertTrajectoryInterceptionConfidence.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertTrajectoryInterceptionConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertTrajectoryInterceptionIndication.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertTrajectoryInterceptionIndication.h index fe741c6e4..09b2cd0b3 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertTrajectoryInterceptionIndication.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertTrajectoryInterceptionIndication.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertTrajectoryInterceptionProbability.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertTrajectoryInterceptionProbability.h index 2828b0fc2..366ca652e 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertTrajectoryInterceptionProbability.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertTrajectoryInterceptionProbability.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertTurningDirection.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertTurningDirection.h index 1d30aef12..9f0fd18da 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertTurningDirection.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertTurningDirection.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVAM.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVAM.h index f50ecb05c..5237d74b4 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVAM.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVAM.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVamParameters.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVamParameters.h index 67f8fbb6a..19adfd4b7 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVamParameters.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVamParameters.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVerticalAcceleration.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVerticalAcceleration.h index e17605b1e..7531a6fc0 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVerticalAcceleration.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVerticalAcceleration.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVerticalAccelerationValue.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVerticalAccelerationValue.h index eea1d35d6..c2094134e 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVerticalAccelerationValue.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVerticalAccelerationValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruAwareness.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruAwareness.h index b690a7fbb..6c1364cd3 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruAwareness.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruAwareness.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruClusterInformation.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruClusterInformation.h index 7d3546dab..5c9b8bcca 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruClusterInformation.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruClusterInformation.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruClusterInformationContainer.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruClusterInformationContainer.h index fb8ab0816..3032ac4e9 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruClusterInformationContainer.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruClusterInformationContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruClusterOperationContainer.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruClusterOperationContainer.h index 43d69aa7d..64b5b8e0f 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruClusterOperationContainer.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruClusterOperationContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruClusterProfiles.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruClusterProfiles.h index 43a6136d6..6206d9aa8 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruClusterProfiles.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruClusterProfiles.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruDeviceUsage.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruDeviceUsage.h index 5aadc155a..ed3272eb6 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruDeviceUsage.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruDeviceUsage.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruEnvironment.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruEnvironment.h index 80c62d3db..ec79ed014 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruEnvironment.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruEnvironment.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruExteriorLights.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruExteriorLights.h index 00a318d42..7a08c44e4 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruExteriorLights.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruExteriorLights.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruHighFrequencyContainer.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruHighFrequencyContainer.h index 56efd7536..c5a3a608d 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruHighFrequencyContainer.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruHighFrequencyContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruLowFrequencyContainer.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruLowFrequencyContainer.h index 919e6d1aa..bbc2ace7f 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruLowFrequencyContainer.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruLowFrequencyContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruMotionPredictionContainer.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruMotionPredictionContainer.h index 18056a881..e2c836c98 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruMotionPredictionContainer.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruMotionPredictionContainer.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruMovementControl.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruMovementControl.h index 9ad4a55a2..a1fe7d151 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruMovementControl.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruMovementControl.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruProfileAndSubprofile.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruProfileAndSubprofile.h index 441e94b29..638a45a9c 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruProfileAndSubprofile.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruProfileAndSubprofile.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruSizeClass.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruSizeClass.h index f6d615360..3cb320bf3 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruSizeClass.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruSizeClass.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruSpecificExteriorLights.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruSpecificExteriorLights.h index 009bc71eb..31c19d68a 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruSpecificExteriorLights.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruSpecificExteriorLights.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruSubProfileAnimal.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruSubProfileAnimal.h index 335a3dfa9..652811df1 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruSubProfileAnimal.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruSubProfileAnimal.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruSubProfileBicyclist.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruSubProfileBicyclist.h index b4fffe396..92dc24b74 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruSubProfileBicyclist.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruSubProfileBicyclist.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruSubProfileMotorcyclist.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruSubProfileMotorcyclist.h index 771f7de82..93dce650b 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruSubProfileMotorcyclist.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruSubProfileMotorcyclist.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruSubProfilePedestrian.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruSubProfilePedestrian.h index d78b1cf19..944dabc8f 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruSubProfilePedestrian.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertVruSubProfilePedestrian.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertWgs84Angle.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertWgs84Angle.h index 435fcc1bb..6daeba8ca 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertWgs84Angle.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertWgs84Angle.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertWgs84AngleConfidence.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertWgs84AngleConfidence.h index 19349056b..d25bd4759 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertWgs84AngleConfidence.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertWgs84AngleConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertWgs84AngleValue.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertWgs84AngleValue.h index 83519d2d7..58426d14e 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertWgs84AngleValue.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertWgs84AngleValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertYawRate.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertYawRate.h index 2e0c9c6c0..d1269d352 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertYawRate.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertYawRate.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertYawRateConfidence.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertYawRateConfidence.h index f81bd431a..accf82618 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertYawRateConfidence.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertYawRateConfidence.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertYawRateValue.h b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertYawRateValue.h index af2fc4212..14747ec27 100644 --- a/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertYawRateValue.h +++ b/etsi_its_conversion/etsi_its_vam_ts_conversion/include/etsi_its_vam_ts_conversion/convertYawRateValue.h @@ -2,7 +2,6 @@ MIT License Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/AccelerationConfidence.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/AccelerationConfidence.msg index cc52403d6..ec6587845 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/AccelerationConfidence.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/AccelerationConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ uint8 MAX = 102 uint8 POINT_ONE_METER_PER_SEC_SQUARED = 1 uint8 OUT_OF_RANGE = 101 uint8 UNAVAILABLE = 102 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/AccelerationControl.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/AccelerationControl.msg index 5f9a28c5c..16c6eea01 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/AccelerationControl.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/AccelerationControl.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -47,3 +46,4 @@ uint8 BIT_INDEX_COLLISION_WARNING_ENGAGED = 3 uint8 BIT_INDEX_ACC_ENGAGED = 4 uint8 BIT_INDEX_CRUISE_CONTROL_ENGAGED = 5 uint8 BIT_INDEX_SPEED_LIMITER_ENGAGED = 6 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/Altitude.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/Altitude.msg index 8eba07254..d983bf70d 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/Altitude.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/Altitude.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,7 @@ # altitudeConfidence AltitudeConfidence # } # ------------------------------------------------------------------------------ + AltitudeValue altitude_value AltitudeConfidence altitude_confidence diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/AltitudeConfidence.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/AltitudeConfidence.msg index 6be322d13..0980e2fc8 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/AltitudeConfidence.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/AltitudeConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/AltitudeValue.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/AltitudeValue.msg index 993b5d523..2749450ab 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/AltitudeValue.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/AltitudeValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ int32 MAX = 800001 int32 REFERENCE_ELLIPSOID_SURFACE = 0 int32 ONE_CENTIMETER = 1 int32 UNAVAILABLE = 800001 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/BasicContainer.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/BasicContainer.msg index 60aa65a36..334f591e7 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/BasicContainer.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/BasicContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -32,6 +31,7 @@ # ... # } # ------------------------------------------------------------------------------ + StationType station_type ReferencePosition reference_position diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/BasicVehicleContainerHighFrequency.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/BasicVehicleContainerHighFrequency.msg index 1359d4319..3b1ca88d3 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/BasicVehicleContainerHighFrequency.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/BasicVehicleContainerHighFrequency.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -45,6 +44,7 @@ # cenDsrcTollingZone CenDsrcTollingZone OPTIONAL # } # ------------------------------------------------------------------------------ + Heading heading Speed speed diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/BasicVehicleContainerLowFrequency.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/BasicVehicleContainerLowFrequency.msg index df9246823..08b193091 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/BasicVehicleContainerLowFrequency.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/BasicVehicleContainerLowFrequency.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -32,6 +31,7 @@ # pathHistory PathHistory # } # ------------------------------------------------------------------------------ + VehicleRole vehicle_role ExteriorLights exterior_lights diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/CAM.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/CAM.msg index d1c96e9f4..65e000ff9 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/CAM.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/CAM.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,7 +30,6 @@ # cam CoopAwareness # } # ------------------------------------------------------------------------------ -# The root data frame for cooperative awareness messages ItsPduHeader header diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/CamParameters.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/CamParameters.msg index 8ff9fd995..76f149c2a 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/CamParameters.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/CamParameters.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -34,6 +33,7 @@ # ... # } # ------------------------------------------------------------------------------ + BasicContainer basic_container HighFrequencyContainer high_frequency_container diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/CauseCode.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/CauseCode.msg index 795187fbc..8a0e36294 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/CauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/CauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -32,6 +31,7 @@ # ... # } # ------------------------------------------------------------------------------ + CauseCodeType cause_code SubCauseCodeType sub_cause_code diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/CauseCodeType.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/CauseCodeType.msg index 6c969c9ad..ff9b4917e 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/CauseCodeType.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/CauseCodeType.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -87,3 +86,4 @@ uint8 HAZARDOUS_LOCATION_DANGEROUS_CURVE = 96 uint8 COLLISION_RISK = 97 uint8 SIGNAL_VIOLATION = 98 uint8 DANGEROUS_SITUATION = 99 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/CenDsrcTollingZone.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/CenDsrcTollingZone.msg index 2639b5798..bfb844737 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/CenDsrcTollingZone.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/CenDsrcTollingZone.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -33,6 +32,7 @@ # ... # } # ------------------------------------------------------------------------------ + Latitude protected_zone_latitude Longitude protected_zone_longitude diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/CenDsrcTollingZoneID.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/CenDsrcTollingZoneID.msg index 450de733d..f2ab66a55 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/CenDsrcTollingZoneID.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/CenDsrcTollingZoneID.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -30,3 +29,4 @@ # ------------------------------------------------------------------------------ ProtectedZoneID value + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/ClosedLanes.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/ClosedLanes.msg index 9c0fa3db8..87c675798 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/ClosedLanes.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/ClosedLanes.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -33,6 +32,7 @@ # ... # } # ------------------------------------------------------------------------------ + HardShoulderStatus innerhard_shoulder_status bool innerhard_shoulder_status_is_present diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/CoopAwareness.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/CoopAwareness.msg index 6b8cd5688..23556cc64 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/CoopAwareness.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/CoopAwareness.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,7 @@ # camParameters CamParameters # } # ------------------------------------------------------------------------------ + GenerationDeltaTime generation_delta_time CamParameters cam_parameters diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/Curvature.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/Curvature.msg index c077fa0e6..9637b6f14 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/Curvature.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/Curvature.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,7 @@ # curvatureConfidence CurvatureConfidence # } # ------------------------------------------------------------------------------ + CurvatureValue curvature_value CurvatureConfidence curvature_confidence diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/CurvatureCalculationMode.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/CurvatureCalculationMode.msg index 3bb2cad84..9035944ad 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/CurvatureCalculationMode.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/CurvatureCalculationMode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/CurvatureConfidence.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/CurvatureConfidence.msg index a39175244..61ba009f6 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/CurvatureConfidence.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/CurvatureConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/CurvatureValue.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/CurvatureValue.msg index 8ff70f145..c2f51582c 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/CurvatureValue.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/CurvatureValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -34,3 +33,4 @@ int16 MIN = -1023 int16 MAX = 1023 int16 STRAIGHT = 0 int16 UNAVAILABLE = 1023 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/DangerousGoodsBasic.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/DangerousGoodsBasic.msg index 7092206e0..b6624492b 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/DangerousGoodsBasic.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/DangerousGoodsBasic.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/DangerousGoodsContainer.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/DangerousGoodsContainer.msg index 9e2f9f53a..11f4bcd09 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/DangerousGoodsContainer.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/DangerousGoodsContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -30,5 +29,6 @@ # dangerousGoodsBasic DangerousGoodsBasic # } # ------------------------------------------------------------------------------ + DangerousGoodsBasic dangerous_goods_basic diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/DeltaAltitude.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/DeltaAltitude.msg index e2b6d8e15..44563abe3 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/DeltaAltitude.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/DeltaAltitude.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ int16 MAX = 12800 int16 ONE_CENTIMETER_UP = 1 int16 ONE_CENTIMETER_DOWN = -1 int16 UNAVAILABLE = 12800 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/DeltaLatitude.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/DeltaLatitude.msg index 3d9841fe6..ffc7febdb 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/DeltaLatitude.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/DeltaLatitude.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ int32 MAX = 131072 int32 ONE_MICRODEGREE_NORTH = 10 int32 ONE_MICRODEGREE_SOUTH = -10 int32 UNAVAILABLE = 131072 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/DeltaLongitude.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/DeltaLongitude.msg index 0b21013e8..7ecdc7aef 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/DeltaLongitude.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/DeltaLongitude.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ int32 MAX = 131072 int32 ONE_MICRODEGREE_EAST = 10 int32 ONE_MICRODEGREE_WEST = -10 int32 UNAVAILABLE = 131072 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/DeltaReferencePosition.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/DeltaReferencePosition.msg index 76f4db21d..16249aa17 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/DeltaReferencePosition.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/DeltaReferencePosition.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -32,6 +31,7 @@ # deltaAltitude DeltaAltitude # } # ------------------------------------------------------------------------------ + DeltaLatitude delta_latitude DeltaLongitude delta_longitude diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/DriveDirection.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/DriveDirection.msg index 3082b4520..e7747c046 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/DriveDirection.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/DriveDirection.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/DrivingLaneStatus.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/DrivingLaneStatus.msg index 56de3624c..e43882e78 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/DrivingLaneStatus.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/DrivingLaneStatus.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/EmbarkationStatus.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/EmbarkationStatus.msg index 88648c190..dbf8f5297 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/EmbarkationStatus.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/EmbarkationStatus.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/EmergencyContainer.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/EmergencyContainer.msg index 607358208..19110d2c3 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/EmergencyContainer.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/EmergencyContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -32,6 +31,7 @@ # emergencyPriority EmergencyPriority OPTIONAL # } # ------------------------------------------------------------------------------ + LightBarSirenInUse light_bar_siren_in_use CauseCode incident_indication diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/EmergencyPriority.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/EmergencyPriority.msg index e5d6ea469..5421284a5 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/EmergencyPriority.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/EmergencyPriority.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -34,3 +33,4 @@ uint8 bits_unused uint8 SIZE_BITS = 2 uint8 BIT_INDEX_REQUEST_FOR_RIGHT_OF_WAY = 0 uint8 BIT_INDEX_REQUEST_FOR_FREE_CROSSING_AT_A_TRAFFIC_LIGHT = 1 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/ExteriorLights.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/ExteriorLights.msg index 6f82b51db..8c4555f12 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/ExteriorLights.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/ExteriorLights.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -49,3 +48,4 @@ uint8 BIT_INDEX_DAYTIME_RUNNING_LIGHTS_ON = 4 uint8 BIT_INDEX_REVERSE_LIGHT_ON = 5 uint8 BIT_INDEX_FOG_LIGHT_ON = 6 uint8 BIT_INDEX_PARKING_LIGHTS_ON = 7 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/GenerationDeltaTime.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/GenerationDeltaTime.msg index 13ccc5882..676357827 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/GenerationDeltaTime.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/GenerationDeltaTime.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -33,3 +32,4 @@ uint16 value uint16 MIN = 0 uint16 MAX = 65535 uint16 ONE_MILLI_SEC = 1 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/HardShoulderStatus.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/HardShoulderStatus.msg index 4980a2d7f..5d37cf179 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/HardShoulderStatus.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/HardShoulderStatus.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/Heading.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/Heading.msg index d3c702705..662abe9f1 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/Heading.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/Heading.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,7 @@ # headingConfidence HeadingConfidence # } # ------------------------------------------------------------------------------ + HeadingValue heading_value HeadingConfidence heading_confidence diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/HeadingConfidence.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/HeadingConfidence.msg index 9f9fcb6f8..7c8a3482f 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/HeadingConfidence.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/HeadingConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -36,3 +35,4 @@ uint8 EQUAL_OR_WITHIN_ZERO_POINT_ONE_DEGREE = 1 uint8 EQUAL_OR_WITHIN_ONE_DEGREE = 10 uint8 OUT_OF_RANGE = 126 uint8 UNAVAILABLE = 127 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/HeadingValue.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/HeadingValue.msg index aa7a3436f..77b6b654a 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/HeadingValue.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/HeadingValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -37,3 +36,4 @@ uint16 WGS84_EAST = 900 uint16 WGS84_SOUTH = 1800 uint16 WGS84_WEST = 2700 uint16 UNAVAILABLE = 3601 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/HighFrequencyContainer.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/HighFrequencyContainer.msg index 759e3ab26..126fe9ed5 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/HighFrequencyContainer.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/HighFrequencyContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -32,6 +31,7 @@ # ... # } # ------------------------------------------------------------------------------ + uint8 choice BasicVehicleContainerHighFrequency basic_vehicle_container_high_frequency diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/ItsPduHeader.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/ItsPduHeader.msg index ad5a594dd..482b6afcb 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/ItsPduHeader.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/ItsPduHeader.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -30,6 +29,7 @@ # protocolVersion INTEGER (0..255), # messageID INTEGER{ denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13) } (0..255), -- Mantis #7209, #7005 # ------------------------------------------------------------------------------ + uint8 protocol_version uint8 PROTOCOL_VERSION_MIN = 0 uint8 PROTOCOL_VERSION_MAX = 255 diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/LanePosition.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/LanePosition.msg index 3d71c17b5..c5899ad33 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/LanePosition.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/LanePosition.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -37,3 +36,4 @@ int8 OFF_THE_ROAD = -1 int8 HARD_SHOULDER = 0 int8 OUTERMOST_DRIVING_LANE = 1 int8 SECOND_LANE_FROM_OUTSIDE = 2 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/LateralAcceleration.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/LateralAcceleration.msg index ef8bf033b..aea987932 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/LateralAcceleration.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/LateralAcceleration.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,7 @@ # lateralAccelerationConfidence AccelerationConfidence # } # ------------------------------------------------------------------------------ + LateralAccelerationValue lateral_acceleration_value AccelerationConfidence lateral_acceleration_confidence diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/LateralAccelerationValue.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/LateralAccelerationValue.msg index 782551d06..c53d792d3 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/LateralAccelerationValue.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/LateralAccelerationValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ int16 MAX = 161 int16 POINT_ONE_METER_PER_SEC_SQUARED_TO_RIGHT = -1 int16 POINT_ONE_METER_PER_SEC_SQUARED_TO_LEFT = 1 int16 UNAVAILABLE = 161 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/Latitude.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/Latitude.msg index 6af9d110d..46e48f60e 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/Latitude.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/Latitude.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ int32 MAX = 900000001 int32 ONE_MICRODEGREE_NORTH = 10 int32 ONE_MICRODEGREE_SOUTH = -10 int32 UNAVAILABLE = 900000001 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/LightBarSirenInUse.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/LightBarSirenInUse.msg index ff2558e7f..5e1d4f484 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/LightBarSirenInUse.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/LightBarSirenInUse.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -37,3 +36,4 @@ uint8 bits_unused uint8 SIZE_BITS = 2 uint8 BIT_INDEX_LIGHT_BAR_ACTIVATED = 0 uint8 BIT_INDEX_SIREN_ACTIVATED = 1 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/Longitude.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/Longitude.msg index f49d25fa4..bd0e4e82d 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/Longitude.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/Longitude.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ int32 MAX = 1800000001 int32 ONE_MICRODEGREE_EAST = 10 int32 ONE_MICRODEGREE_WEST = -10 int32 UNAVAILABLE = 1800000001 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/LongitudinalAcceleration.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/LongitudinalAcceleration.msg index 3299f3556..c1f817207 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/LongitudinalAcceleration.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/LongitudinalAcceleration.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,7 @@ # longitudinalAccelerationConfidence AccelerationConfidence # } # ------------------------------------------------------------------------------ + LongitudinalAccelerationValue longitudinal_acceleration_value AccelerationConfidence longitudinal_acceleration_confidence diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/LongitudinalAccelerationValue.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/LongitudinalAccelerationValue.msg index 79c6db8d3..71be57f67 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/LongitudinalAccelerationValue.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/LongitudinalAccelerationValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ int16 MAX = 161 int16 POINT_ONE_METER_PER_SEC_SQUARED_FORWARD = 1 int16 POINT_ONE_METER_PER_SEC_SQUARED_BACKWARD = -1 int16 UNAVAILABLE = 161 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/LowFrequencyContainer.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/LowFrequencyContainer.msg index 37266381b..b0cc9d841 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/LowFrequencyContainer.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/LowFrequencyContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,7 @@ # ... # } # ------------------------------------------------------------------------------ + uint8 choice BasicVehicleContainerLowFrequency basic_vehicle_container_low_frequency diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/PathDeltaTime.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/PathDeltaTime.msg index 194b6764a..f284ab07a 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/PathDeltaTime.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/PathDeltaTime.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -29,7 +28,8 @@ # PathDeltaTime ::= INTEGER {tenMilliSecondsInPast(1)} (1..65535, ...) # ------------------------------------------------------------------------------ -int64 value -int64 MIN = 1 -int64 MAX = 65535 -int64 TEN_MILLI_SECONDS_IN_PAST = 1 +uint16 value +uint16 MIN = 1 +uint16 MAX = 65535 +uint16 TEN_MILLI_SECONDS_IN_PAST = 1 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/PathHistory.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/PathHistory.msg index dc5d2f0e7..309260c62 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/PathHistory.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/PathHistory.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -32,3 +31,4 @@ PathPoint[] array uint8 MIN_SIZE = 0 uint8 MAX_SIZE = 40 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/PathPoint.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/PathPoint.msg index bd08b5692..886d71eee 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/PathPoint.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/PathPoint.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,7 @@ # pathDeltaTime PathDeltaTime OPTIONAL # } # ------------------------------------------------------------------------------ + DeltaReferencePosition path_position PathDeltaTime path_delta_time diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/PerformanceClass.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/PerformanceClass.msg index aab03e7cc..38035d6ae 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/PerformanceClass.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/PerformanceClass.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ uint8 MAX = 7 uint8 UNAVAILABLE = 0 uint8 PERFORMANCE_CLASS_A = 1 uint8 PERFORMANCE_CLASS_B = 2 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/PosConfidenceEllipse.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/PosConfidenceEllipse.msg index bc8c34055..623839771 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/PosConfidenceEllipse.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/PosConfidenceEllipse.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -32,6 +31,7 @@ # semiMajorOrientation HeadingValue # } # ------------------------------------------------------------------------------ + SemiAxisLength semi_major_confidence SemiAxisLength semi_minor_confidence diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/ProtectedCommunicationZone.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/ProtectedCommunicationZone.msg index f12ec1ea7..2af3172f7 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/ProtectedCommunicationZone.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/ProtectedCommunicationZone.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -36,6 +35,7 @@ # ... # } # ------------------------------------------------------------------------------ + ProtectedZoneType protected_zone_type TimestampIts expiry_time diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/ProtectedCommunicationZonesRSU.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/ProtectedCommunicationZonesRSU.msg index 26ac293ff..8cbf4d8d5 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/ProtectedCommunicationZonesRSU.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/ProtectedCommunicationZonesRSU.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -32,3 +31,4 @@ ProtectedCommunicationZone[] array uint8 MIN_SIZE = 1 uint8 MAX_SIZE = 16 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/ProtectedZoneID.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/ProtectedZoneID.msg index 8f0cf7dd4..7168de634 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/ProtectedZoneID.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/ProtectedZoneID.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/ProtectedZoneRadius.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/ProtectedZoneRadius.msg index a582ef72b..9be1895d5 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/ProtectedZoneRadius.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/ProtectedZoneRadius.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -29,7 +28,8 @@ # ProtectedZoneRadius ::= INTEGER {oneMeter(1)} (1..255,...) # ------------------------------------------------------------------------------ -int64 value -int64 MIN = 1 -int64 MAX = 255 -int64 ONE_METER = 1 +uint8 value +uint8 MIN = 1 +uint8 MAX = 255 +uint8 ONE_METER = 1 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/ProtectedZoneType.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/ProtectedZoneType.msg index 1306f0b64..57c0e0a9d 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/ProtectedZoneType.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/ProtectedZoneType.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,5 @@ uint8 value uint8 PERMANENT_CEN_DSRC_TOLLING = 0 -# .extended uint8 TEMPORARY_CEN_DSRC_TOLLING = 1 diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/PtActivation.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/PtActivation.msg index e05ab437b..fb389f58b 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/PtActivation.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/PtActivation.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,7 @@ # ptActivationData PtActivationData # } # ------------------------------------------------------------------------------ + PtActivationType pt_activation_type PtActivationData pt_activation_data diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/PtActivationData.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/PtActivationData.msg index 1a8440f8d..4919cc251 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/PtActivationData.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/PtActivationData.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -32,3 +31,4 @@ uint8[] value uint8 MIN_SIZE = 1 uint8 MAX_SIZE = 20 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/PtActivationType.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/PtActivationType.msg index fd7f1efea..4d5104c20 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/PtActivationType.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/PtActivationType.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ uint8 MAX = 255 uint8 UNDEFINED_CODING_TYPE = 0 uint8 R09_16_CODING_TYPE = 1 uint8 VDV_50149_CODING_TYPE = 2 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/PublicTransportContainer.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/PublicTransportContainer.msg index 134fa7022..25ca6890b 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/PublicTransportContainer.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/PublicTransportContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,7 @@ # ptActivation PtActivation OPTIONAL # } # ------------------------------------------------------------------------------ + EmbarkationStatus embarkation_status PtActivation pt_activation diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/RSUContainerHighFrequency.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/RSUContainerHighFrequency.msg index a5e97bd90..c3acd9dcd 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/RSUContainerHighFrequency.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/RSUContainerHighFrequency.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,7 @@ # ... # } # ------------------------------------------------------------------------------ + ProtectedCommunicationZonesRSU protected_communication_zones_rsu bool protected_communication_zones_rsu_is_present diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/ReferencePosition.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/ReferencePosition.msg index 9a896c32d..ed32a3f06 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/ReferencePosition.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/ReferencePosition.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -33,6 +32,7 @@ # altitude Altitude # } # ------------------------------------------------------------------------------ + Latitude latitude Longitude longitude diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/RescueContainer.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/RescueContainer.msg index bb7ed8130..4158c4ac5 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/RescueContainer.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/RescueContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -30,5 +29,6 @@ # lightBarSirenInUse LightBarSirenInUse # } # ------------------------------------------------------------------------------ + LightBarSirenInUse light_bar_siren_in_use diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/RoadWorksContainerBasic.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/RoadWorksContainerBasic.msg index 6fc1c589b..606165f2d 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/RoadWorksContainerBasic.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/RoadWorksContainerBasic.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -32,6 +31,7 @@ # closedLanes ClosedLanes OPTIONAL # } # ------------------------------------------------------------------------------ + RoadworksSubCauseCode roadworks_sub_cause_code bool roadworks_sub_cause_code_is_present diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/RoadworksSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/RoadworksSubCauseCode.msg index 7ba52c629..03c33fd0a 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/RoadworksSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/RoadworksSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -39,3 +38,4 @@ uint8 SLOW_MOVING_ROAD_MAINTENANCE = 3 uint8 SHORT_TERM_STATIONARY_ROADWORKS = 4 uint8 STREET_CLEANING = 5 uint8 WINTER_SERVICE = 6 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/SafetyCarContainer.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/SafetyCarContainer.msg index 9266820de..3206d2aba 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/SafetyCarContainer.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/SafetyCarContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -33,6 +32,7 @@ # speedLimit SpeedLimit OPTIONAL # } # ------------------------------------------------------------------------------ + LightBarSirenInUse light_bar_siren_in_use CauseCode incident_indication diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/SemiAxisLength.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/SemiAxisLength.msg index 91e5a28c9..169261487 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/SemiAxisLength.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/SemiAxisLength.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ uint16 MAX = 4095 uint16 ONE_CENTIMETER = 1 uint16 OUT_OF_RANGE = 4094 uint16 UNAVAILABLE = 4095 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/SpecialTransportContainer.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/SpecialTransportContainer.msg index 524db23d5..5d0b8f405 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/SpecialTransportContainer.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/SpecialTransportContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,7 @@ # lightBarSirenInUse LightBarSirenInUse # } # ------------------------------------------------------------------------------ + SpecialTransportType special_transport_type LightBarSirenInUse light_bar_siren_in_use diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/SpecialTransportType.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/SpecialTransportType.msg index 400572226..a76ee7e17 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/SpecialTransportType.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/SpecialTransportType.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -36,3 +35,4 @@ uint8 BIT_INDEX_HEAVY_LOAD = 0 uint8 BIT_INDEX_EXCESS_WIDTH = 1 uint8 BIT_INDEX_EXCESS_LENGTH = 2 uint8 BIT_INDEX_EXCESS_HEIGHT = 3 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/SpecialVehicleContainer.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/SpecialVehicleContainer.msg index ef228a854..e28d41b1d 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/SpecialVehicleContainer.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/SpecialVehicleContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -37,6 +36,7 @@ # ... # } # ------------------------------------------------------------------------------ + uint8 choice PublicTransportContainer public_transport_container diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/Speed.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/Speed.msg index 546c0cfb2..cbacd5804 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/Speed.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/Speed.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,7 @@ # speedConfidence SpeedConfidence # } # ------------------------------------------------------------------------------ + SpeedValue speed_value SpeedConfidence speed_confidence diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/SpeedConfidence.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/SpeedConfidence.msg index 125e6480a..57f5ffa50 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/SpeedConfidence.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/SpeedConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -36,3 +35,4 @@ uint8 EQUAL_OR_WITHIN_ONE_CENTIMETER_PER_SEC = 1 uint8 EQUAL_OR_WITHIN_ONE_METER_PER_SEC = 100 uint8 OUT_OF_RANGE = 126 uint8 UNAVAILABLE = 127 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/SpeedLimit.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/SpeedLimit.msg index b1b036db6..6de940a9d 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/SpeedLimit.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/SpeedLimit.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -33,3 +32,4 @@ uint8 value uint8 MIN = 1 uint8 MAX = 255 uint8 ONE_KM_PER_HOUR = 1 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/SpeedValue.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/SpeedValue.msg index 2405df854..d92d33d4d 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/SpeedValue.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/SpeedValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ uint16 MAX = 16383 uint16 STANDSTILL = 0 uint16 ONE_CENTIMETER_PER_SEC = 1 uint16 UNAVAILABLE = 16383 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/StationID.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/StationID.msg index 03c5211a6..116f3b1d2 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/StationID.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/StationID.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/StationType.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/StationType.msg index b85b2ad40..7bd932ddd 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/StationType.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/StationType.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -46,3 +45,4 @@ uint8 TRAILER = 9 uint8 SPECIAL_VEHICLES = 10 uint8 TRAM = 11 uint8 ROAD_SIDE_UNIT = 15 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/SteeringWheelAngle.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/SteeringWheelAngle.msg index 0b367636f..38372423c 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/SteeringWheelAngle.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/SteeringWheelAngle.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,7 @@ # steeringWheelAngleConfidence SteeringWheelAngleConfidence # } # ------------------------------------------------------------------------------ + SteeringWheelAngleValue steering_wheel_angle_value SteeringWheelAngleConfidence steering_wheel_angle_confidence diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/SteeringWheelAngleConfidence.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/SteeringWheelAngleConfidence.msg index 0bb261b73..b39c55a1a 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/SteeringWheelAngleConfidence.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/SteeringWheelAngleConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ uint8 MAX = 127 uint8 EQUAL_OR_WITHIN_ONE_POINT_FIVE_DEGREE = 1 uint8 OUT_OF_RANGE = 126 uint8 UNAVAILABLE = 127 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/SteeringWheelAngleValue.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/SteeringWheelAngleValue.msg index 52f175fff..7273e9f6e 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/SteeringWheelAngleValue.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/SteeringWheelAngleValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -36,3 +35,4 @@ int16 STRAIGHT = 0 int16 ONE_POINT_FIVE_DEGREES_TO_RIGHT = -1 int16 ONE_POINT_FIVE_DEGREES_TO_LEFT = 1 int16 UNAVAILABLE = 512 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/SubCauseCodeType.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/SubCauseCodeType.msg index 2ec96822a..82152e48b 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/SubCauseCodeType.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/SubCauseCodeType.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/TimestampIts.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/TimestampIts.msg index baba3df03..38436d838 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/TimestampIts.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/TimestampIts.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -34,3 +33,4 @@ uint64 MIN = 0 uint64 MAX = 4398046511103 uint64 UTC_START_OF2004 = 0 uint64 ONE_MILLISEC_AFTER_UTC_START_OF2004 = 1 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/TrafficRule.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/TrafficRule.msg index 00919a5e3..466c14488 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/TrafficRule.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/TrafficRule.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/VehicleLength.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/VehicleLength.msg index 0c04425be..7c8935ce7 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/VehicleLength.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/VehicleLength.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,7 @@ # vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication # } # ------------------------------------------------------------------------------ + VehicleLengthValue vehicle_length_value VehicleLengthConfidenceIndication vehicle_length_confidence_indication diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/VehicleLengthConfidenceIndication.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/VehicleLengthConfidenceIndication.msg index a990cb150..11ff4e406 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/VehicleLengthConfidenceIndication.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/VehicleLengthConfidenceIndication.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/VehicleLengthValue.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/VehicleLengthValue.msg index 457d94386..0b5c6595e 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/VehicleLengthValue.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/VehicleLengthValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ uint16 MAX = 1023 uint16 TEN_CENTIMETERS = 1 uint16 OUT_OF_RANGE = 1022 uint16 UNAVAILABLE = 1023 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/VehicleRole.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/VehicleRole.msg index 0c1be0fdc..d3f97b768 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/VehicleRole.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/VehicleRole.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/VehicleWidth.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/VehicleWidth.msg index bca1622fe..29f4b3612 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/VehicleWidth.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/VehicleWidth.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ uint8 MAX = 62 uint8 TEN_CENTIMETERS = 1 uint8 OUT_OF_RANGE = 61 uint8 UNAVAILABLE = 62 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/VerticalAcceleration.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/VerticalAcceleration.msg index 5ee2ca928..b8da8f61e 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/VerticalAcceleration.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/VerticalAcceleration.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,7 @@ # verticalAccelerationConfidence AccelerationConfidence # } # ------------------------------------------------------------------------------ + VerticalAccelerationValue vertical_acceleration_value AccelerationConfidence vertical_acceleration_confidence diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/VerticalAccelerationValue.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/VerticalAccelerationValue.msg index b431e9ebf..e06d55498 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/VerticalAccelerationValue.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/VerticalAccelerationValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ int16 MAX = 161 int16 POINT_ONE_METER_PER_SEC_SQUARED_UP = 1 int16 POINT_ONE_METER_PER_SEC_SQUARED_DOWN = -1 int16 UNAVAILABLE = 161 + diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/YawRate.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/YawRate.msg index 96cc4d947..3212da104 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/YawRate.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/YawRate.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,7 @@ # yawRateConfidence YawRateConfidence # } # ------------------------------------------------------------------------------ + YawRateValue yaw_rate_value YawRateConfidence yaw_rate_confidence diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/YawRateConfidence.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/YawRateConfidence.msg index 295decfa6..43333c432 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/YawRateConfidence.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/YawRateConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_cam_msgs/msg/YawRateValue.msg b/etsi_its_msgs/etsi_its_cam_msgs/msg/YawRateValue.msg index 7a2302943..b5c548b30 100644 --- a/etsi_its_msgs/etsi_its_cam_msgs/msg/YawRateValue.msg +++ b/etsi_its_msgs/etsi_its_cam_msgs/msg/YawRateValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -36,3 +35,4 @@ int16 STRAIGHT = 0 int16 DEG_SEC_000_01_TO_RIGHT = -1 int16 DEG_SEC_000_01_TO_LEFT = 1 int16 UNAVAILABLE = 32767 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationComponent.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationComponent.msg index 1a0ac6916..7cb720831 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationComponent.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationComponent.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,23 +25,23 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents an acceleration component along with a confidence value. +# * +# * It shall include the following components: +# * +# * @field value: the value of the acceleration component which can be estimated as the mean of the current distribution. +# * +# * @field confidence: the confidence value associated to the provided value. +# * +# * @category: Kinematic Information +# * @revision: Created in V2.1.1 +# */ # AccelerationComponent ::= SEQUENCE { # value AccelerationValue, # confidence AccelerationConfidence # } # ------------------------------------------------------------------------------ -# * -# * This DF represents an acceleration component along with a confidence value. -# * -# * It shall include the following components: -# * -# * @field value: the value of the acceleration component which can be estimated as the mean of the current distribution. -# * -# * @field confidence: the confidence value associated to the provided value. -# * -# * @category: Kinematic Information -# * @revision: Created in V2.1.1 -# AccelerationValue value diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationConfidence.msg index 42241d2bb..1621ceb3e 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationConfidence.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,37 +25,38 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the acceleration confidence value which represents the estimated absolute accuracy of an acceleration value with a default confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 101`) if the confidence value is equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, +# * - `101` if the confidence value is out of range i.e. greater than 10 m/s^2, +# * - `102` if the confidence value is unavailable. +# * +# * The value 0 shall not be used. +# * +# * @note: The fact that an acceleration value is received with confidence value set to `unavailable(102)` can be caused by several reasons, such as: +# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, +# * - the sensor cannot calculate the accuracy due to lack of variables, or +# * - there has been a vehicle bus (e.g. CAN bus) error. +# * In all 3 cases above, the acceleration value may be valid and used by the application. +# * +# * @note: If an acceleration value is received and its confidence value is set to `outOfRange(101)`, it means that the value is not valid and therefore cannot be trusted. Such value is not useful for the application. +# * +# * @unit 0,1 m/s^2 +# * @category: Kinematic information +# * @revision: Description revised in V2.1.1 +# */ # AccelerationConfidence ::= INTEGER { # outOfRange (101), # unavailable (102) # } (0..102) # ------------------------------------------------------------------------------ -# * -# * This DE indicates the acceleration confidence value which represents the estimated absolute accuracy of an acceleration value with a default confidence level of 95 %. -# * If required, the confidence level can be defined by the corresponding standards applying this DE. -# * -# * The value shall be set to: -# * - `n` (`n > 0` and `n < 101`) if the confidence value is equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, -# * - `101` if the confidence value is out of range i.e. greater than 10 m/s^2, -# * - `102` if the confidence value is unavailable. -# * -# * The value 0 shall not be used. -# * -# * @note: The fact that an acceleration value is received with confidence value set to `unavailable(102)` can be caused by several reasons, such as: -# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, -# * - the sensor cannot calculate the accuracy due to lack of variables, or -# * - there has been a vehicle bus (e.g. CAN bus) error. -# * In all 3 cases above, the acceleration value may be valid and used by the application. -# * -# * @note: If an acceleration value is received and its confidence value is set to `outOfRange(101)`, it means that the value is not valid and therefore cannot be trusted. Such value is not useful for the application. -# * -# * @unit 0,1 m/s^2 -# * @category: Kinematic information -# * @revision: Description revised in V2.1.1 -# uint8 value uint8 MIN = 0 uint8 MAX = 102 uint8 OUT_OF_RANGE = 101 uint8 UNAVAILABLE = 102 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationControl.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationControl.msg index 6fbbbac3f..22dd15751 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationControl.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationControl.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,29 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the current controlling mechanism for longitudinal movement of the vehicle. +# * The data may be provided via the in-vehicle network. It indicates whether a specific in-vehicle +# * acceleration control system is engaged or not. Currently, this DE includes the information of the +# * vehicle brake pedal, gas pedal, emergency brake system, collision warning system, adaptive cruise +# * control system, cruise control system and speed limiter system. +# * +# * The corresponding bit shall be set to 1 under the following conditions: +# * - 0 - `brakePedalEngaged` - Driver is stepping on the brake pedal, +# * - 1 - `gasPedalEngaged` - Driver is stepping on the gas pedal, +# * - 2 - `emergencyBrakeEngaged` - emergency brake system is engaged, +# * - 3 - `collisionWarningEngaged`- collision warning system is engaged, +# * - 4 - `accEngaged` - ACC is engaged, +# * - 5 - `cruiseControlEngaged` - cruise control is engaged, +# * - 6 - `speedLimiterEngaged` - speed limiter is engaged. +# * +# * Otherwise (for example when the corresponding system is not available due to non equipped system +# * or information is unavailable), the corresponding bit shall be set to 0. +# * +# * @note: The system engagement condition is OEM specific and therefore out of scope of the present document. +# * @category: Vehicle information +# * @revision: V1.3.1 +# */ # AccelerationControl ::= BIT STRING { # brakePedalEngaged (0), # gasPedalEngaged (1), @@ -36,29 +58,6 @@ # speedLimiterEngaged (6) # } (SIZE(7)) # ------------------------------------------------------------------------------ -# * -# * This DE indicates the current controlling mechanism for longitudinal movement of the vehicle. -# * The data may be provided via the in-vehicle network. It indicates whether a specific in-vehicle -# * acceleration control system is engaged or not. Currently, this DE includes the information of the -# * vehicle brake pedal, gas pedal, emergency brake system, collision warning system, adaptive cruise -# * control system, cruise control system and speed limiter system. -# * -# * The corresponding bit shall be set to 1 under the following conditions: -# * - 0 - `brakePedalEngaged` - Driver is stepping on the brake pedal, -# * - 1 - `gasPedalEngaged` - Driver is stepping on the gas pedal, -# * - 2 - `emergencyBrakeEngaged` - emergency brake system is engaged, -# * - 3 - `collisionWarningEngaged`- collision warning system is engaged, -# * - 4 - `accEngaged` - ACC is engaged, -# * - 5 - `cruiseControlEngaged` - cruise control is engaged, -# * - 6 - `speedLimiterEngaged` - speed limiter is engaged. -# * -# * Otherwise (for example when the corresponding system is not available due to non equipped system -# * or information is unavailable), the corresponding bit shall be set to 0. -# * -# * @note: The system engagement condition is OEM specific and therefore out of scope of the present document. -# * @category: Vehicle information -# * @revision: V1.3.1 -# uint8[] value uint8 bits_unused @@ -70,3 +69,4 @@ uint8 BIT_INDEX_COLLISION_WARNING_ENGAGED = 3 uint8 BIT_INDEX_ACC_ENGAGED = 4 uint8 BIT_INDEX_CRUISE_CONTROL_ENGAGED = 5 uint8 BIT_INDEX_SPEED_LIMITER_ENGAGED = 6 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationValue.msg index 7985d9951..7b167368f 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationValue.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccelerationValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,27 +25,27 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the value of an acceleration component in a defined coordinate system. +# * +# * The value shall be set to: +# * - `-160` for acceleration values equal to or less than -16 m/s^2, +# * - `n` (`n > -160` and `n <= 0`) to indicate negative acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, +# * - `n` (`n > 0` and `n < 160`) to indicate positive acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, +# * - `160` for acceleration values greater than 15,9 m/s^2, +# * - `161` when the data is unavailable. +# * +# * @note: the formula for values > -160 and <160 results in rounding up to the next value. Zero acceleration is indicated using n=0. +# * @unit 0,1 m/s^2 +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# */ # AccelerationValue ::= INTEGER { # negativeOutOfRange (-160), # positiveOutOfRange (160), # unavailable (161) # } (-160 .. 161) # ------------------------------------------------------------------------------ -# * -# * This DE represents the value of an acceleration component in a defined coordinate system. -# * -# * The value shall be set to: -# * - `-160` for acceleration values equal to or less than -16 m/s^2, -# * - `n` (`n > -160` and `n <= 0`) to indicate negative acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, -# * - `n` (`n > 0` and `n < 160`) to indicate positive acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, -# * - `160` for acceleration values greater than 15,9 m/s^2, -# * - `161` when the data is unavailable. -# * -# * @note: the formula for values > -160 and <160 results in rounding up to the next value. Zero acceleration is indicated using n=0. -# * @unit 0,1 m/s^2 -# * @category: Kinematic information -# * @revision: Created in V2.1.1 -# int16 value int16 MIN = -160 @@ -54,3 +53,4 @@ int16 MAX = 161 int16 NEGATIVE_OUT_OF_RANGE = -160 int16 POSITIVE_OUT_OF_RANGE = 160 int16 UNAVAILABLE = 161 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccidentSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccidentSubCauseCode.msg index d4b86b209..77de43547 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccidentSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AccidentSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,25 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the value of the sub cause code of the @ref CauseCode `accident`. +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case the information on the sub cause of the accident is unavailable, +# * - 1 - `multiVehicleAccident` - in case more than two vehicles are involved in accident, +# * - 2 - `heavyAccident` - in case the airbag of the vehicle involved in the accident is triggered, +# * the accident requires important rescue and/or recovery work, +# * - 3 - `accidentInvolvingLorry` - in case the accident involves a lorry, +# * - 4 - `accidentInvolvingBus` - in case the accident involves a bus, +# * - 5 - `accidentInvolvingHazardousMaterials`- in case the accident involves hazardous material, +# * - 6 - `accidentOnOppositeLane` - in case the accident happens on opposite lanes, +# * - 7 - `unsecuredAccident` - in case the accident is not secured, +# * - 8 - `assistanceRequested` - in case rescue and assistance are requested, +# * - 9-255 - reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# */ # AccidentSubCauseCode ::= INTEGER { # unavailable (0), # multiVehicleAccident (1), @@ -38,25 +56,6 @@ # assistanceRequested (8) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the value of the sub cause code of the @ref CauseCode `accident`. -# * -# * The value shall be set to: -# * - 0 - `unavailable` - in case the information on the sub cause of the accident is unavailable, -# * - 1 - `multiVehicleAccident` - in case more than two vehicles are involved in accident, -# * - 2 - `heavyAccident` - in case the airbag of the vehicle involved in the accident is triggered, -# * the accident requires important rescue and/or recovery work, -# * - 3 - `accidentInvolvingLorry` - in case the accident involves a lorry, -# * - 4 - `accidentInvolvingBus` - in case the accident involves a bus, -# * - 5 - `accidentInvolvingHazardousMaterials`- in case the accident involves hazardous material, -# * - 6 - `accidentOnOppositeLane` - in case the accident happens on opposite lanes, -# * - 7 - `unsecuredAccident` - in case the accident is not secured, -# * - 8 - `assistanceRequested` - in case rescue and assistance are requested, -# * - 9-255 - reserved for future usage. -# * -# * @category: Traffic information -# * @revision: V1.3.1 -# uint8 value uint8 MIN = 0 @@ -70,3 +69,4 @@ uint8 ACCIDENT_INVOLVING_HAZARDOUS_MATERIALS = 5 uint8 ACCIDENT_ON_OPPOSITE_LANE = 6 uint8 UNSECURED_ACCIDENT = 7 uint8 ASSISTANCE_REQUESTED = 8 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionAdhesionSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionAdhesionSubCauseCode.msg index d8e079cb7..5469043a2 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionAdhesionSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionAdhesionSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,26 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the value of the sub cause code of the @ref CauseCode `adverseWeatherCondition-Adhesion`. +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case information on the cause of the low road adhesion is unavailable, +# * - 1 - `heavyFrostOnRoad`- in case the low road adhesion is due to heavy frost on the road, +# * - 2 - `fuelOnRoad` - in case the low road adhesion is due to fuel on the road, +# * - 3 - `mudOnRoad` - in case the low road adhesion is due to mud on the road, +# * - 4 - `snowOnRoad` - in case the low road adhesion is due to snow on the road, +# * - 5 - `iceOnRoad` - in case the low road adhesion is due to ice on the road, +# * - 6 - `blackIceOnRoad` - in case the low road adhesion is due to black ice on the road, +# * - 7 - `oilOnRoad` - in case the low road adhesion is due to oil on the road, +# * - 8 - `looseChippings` - in case the low road adhesion is due to loose gravel or stone fragments detached from a road surface or from a hazard, +# * - 9 - `instantBlackIce` - in case the low road adhesion is due to instant black ice on the road surface, +# * - 10 - `roadsSalted` - when the low road adhesion is due to salted road, +# * - 11-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# */ # AdverseWeatherCondition-AdhesionSubCauseCode ::= INTEGER { # unavailable (0), # heavyFrostOnRoad (1), @@ -40,26 +59,6 @@ # roadsSalted (10) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the value of the sub cause code of the @ref CauseCode `adverseWeatherCondition-Adhesion`. -# * -# * The value shall be set to: -# * - 0 - `unavailable` - in case information on the cause of the low road adhesion is unavailable, -# * - 1 - `heavyFrostOnRoad`- in case the low road adhesion is due to heavy frost on the road, -# * - 2 - `fuelOnRoad` - in case the low road adhesion is due to fuel on the road, -# * - 3 - `mudOnRoad` - in case the low road adhesion is due to mud on the road, -# * - 4 - `snowOnRoad` - in case the low road adhesion is due to snow on the road, -# * - 5 - `iceOnRoad` - in case the low road adhesion is due to ice on the road, -# * - 6 - `blackIceOnRoad` - in case the low road adhesion is due to black ice on the road, -# * - 7 - `oilOnRoad` - in case the low road adhesion is due to oil on the road, -# * - 8 - `looseChippings` - in case the low road adhesion is due to loose gravel or stone fragments detached from a road surface or from a hazard, -# * - 9 - `instantBlackIce` - in case the low road adhesion is due to instant black ice on the road surface, -# * - 10 - `roadsSalted` - when the low road adhesion is due to salted road, -# * - 11-255 - are reserved for future usage. -# * -# * @category: Traffic information -# * @revision: V1.3.1 -# uint8 value uint8 MIN = 0 @@ -75,3 +74,4 @@ uint8 OIL_ON_ROAD = 7 uint8 LOOSE_CHIPPINGS = 8 uint8 INSTANT_BLACK_ICE = 9 uint8 ROADS_SALTED = 10 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionExtremeWeatherConditionSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionExtremeWeatherConditionSubCauseCode.msg index a359e9d0f..593c093aa 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionExtremeWeatherConditionSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionExtremeWeatherConditionSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,22 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-ExtremeWeatherCondition`. +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case information on the type of extreme weather condition is unavailable, +# * - 1 - `strongWinds` - in case the type of extreme weather condition is strong wind, +# * - 2 - `damagingHail`- in case the type of extreme weather condition is damaging hail, +# * - 3 - `hurricane` - in case the type of extreme weather condition is hurricane, +# * - 4 - `thunderstorm`- in case the type of extreme weather condition is thunderstorm, +# * - 5 - `tornado` - in case the type of extreme weather condition is tornado, +# * - 6 - `blizzard` - in case the type of extreme weather condition is blizzard. +# * - 7-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# */ # AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER { # unavailable (0), # strongWinds (1), @@ -36,22 +51,6 @@ # blizzard (6) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-ExtremeWeatherCondition`. -# * -# * The value shall be set to: -# * - 0 - `unavailable` - in case information on the type of extreme weather condition is unavailable, -# * - 1 - `strongWinds` - in case the type of extreme weather condition is strong wind, -# * - 2 - `damagingHail`- in case the type of extreme weather condition is damaging hail, -# * - 3 - `hurricane` - in case the type of extreme weather condition is hurricane, -# * - 4 - `thunderstorm`- in case the type of extreme weather condition is thunderstorm, -# * - 5 - `tornado` - in case the type of extreme weather condition is tornado, -# * - 6 - `blizzard` - in case the type of extreme weather condition is blizzard. -# * - 7-255 - are reserved for future usage. -# * -# * @category: Traffic information -# * @revision: V1.3.1 -# uint8 value uint8 MIN = 0 @@ -63,3 +62,4 @@ uint8 HURRICANE = 3 uint8 THUNDERSTORM = 4 uint8 TORNADO = 5 uint8 BLIZZARD = 6 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionPrecipitationSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionPrecipitationSubCauseCode.msg index 05a6b59ed..da086006f 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionPrecipitationSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionPrecipitationSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,19 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-Precipitation`. +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case information on the type of precipitation is unavailable, +# * - 1 - `heavyRain` - in case the type of precipitation is heavy rain, +# * - 2 - `heavySnowfall` - in case the type of precipitation is heavy snow fall, +# * - 3 - `softHail` - in case the type of precipitation is soft hail. +# * - 4-255 - are reserved for future usage +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# */ # AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER { # unavailable (0), # heavyRain (1), @@ -33,19 +45,6 @@ # softHail (3) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-Precipitation`. -# * -# * The value shall be set to: -# * - 0 - `unavailable` - in case information on the type of precipitation is unavailable, -# * - 1 - `heavyRain` - in case the type of precipitation is heavy rain, -# * - 2 - `heavySnowfall` - in case the type of precipitation is heavy snow fall, -# * - 3 - `softHail` - in case the type of precipitation is soft hail. -# * - 4-255 - are reserved for future usage -# * -# * @category: Traffic information -# * @revision: V1.3.1 -# uint8 value uint8 MIN = 0 @@ -54,3 +53,4 @@ uint8 UNAVAILABLE = 0 uint8 HEAVY_RAIN = 1 uint8 HEAVY_SNOWFALL = 2 uint8 SOFT_HAIL = 3 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionVisibilitySubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionVisibilitySubCauseCode.msg index 5d4e69053..3bbaa3eee 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionVisibilitySubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AdverseWeatherConditionVisibilitySubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-Visibility`. +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case information on the cause of low visibility is unavailable, +# * - 1 - `fog` - in case the cause of low visibility is fog, +# * - 2 - `smoke` - in case the cause of low visibility is smoke, +# * - 3 - `heavySnowfall` - in case the cause of low visibility is heavy snow fall, +# * - 4 - `heavyRain` - in case the cause of low visibility is heavy rain, +# * - 5 - `heavyHail` - in case the cause of low visibility is heavy hail, +# * - 6 - `lowSunGlare` - in case the cause of low visibility is sun glare, +# * - 7 - `sandstorms` - in case the cause of low visibility is sand storm, +# * - 8 - `swarmsOfInsects`- in case the cause of low visibility is swarm of insects. +# * - 9-255 - are reserved for future usage +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# */ # AdverseWeatherCondition-VisibilitySubCauseCode ::= INTEGER { # unavailable (0), # fog (1), @@ -38,24 +55,6 @@ # swarmsOfInsects (8) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-Visibility`. -# * -# * The value shall be set to: -# * - 0 - `unavailable` - in case information on the cause of low visibility is unavailable, -# * - 1 - `fog` - in case the cause of low visibility is fog, -# * - 2 - `smoke` - in case the cause of low visibility is smoke, -# * - 3 - `heavySnowfall` - in case the cause of low visibility is heavy snow fall, -# * - 4 - `heavyRain` - in case the cause of low visibility is heavy rain, -# * - 5 - `heavyHail` - in case the cause of low visibility is heavy hail, -# * - 6 - `lowSunGlare` - in case the cause of low visibility is sun glare, -# * - 7 - `sandstorms` - in case the cause of low visibility is sand storm, -# * - 8 - `swarmsOfInsects`- in case the cause of low visibility is swarm of insects. -# * - 9-255 - are reserved for future usage -# * -# * @category: Traffic information -# * @revision: V1.3.1 -# uint8 value uint8 MIN = 0 @@ -69,3 +68,4 @@ uint8 HEAVY_HAIL = 5 uint8 LOW_SUN_GLARE = 6 uint8 SANDSTORMS = 7 uint8 SWARMS_OF_INSECTS = 8 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Altitude.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Altitude.msg index cd23af7a6..73b51e84a 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Altitude.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Altitude.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,25 +25,25 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF provides the altitude and confidence level of an altitude information in a WGS84 coordinate system. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * +# * It shall include the following components: +# * +# * @field altitudeValue: altitude of a geographical point. +# * +# * @field altitudeConfidence: confidence level of the altitudeValue. +# * +# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref AltitudeWithConfidence instead. +# * @category: GeoReference information +# * @revision: Description revised in V2.1.1 +# */ # Altitude ::= SEQUENCE { # altitudeValue AltitudeValue, # altitudeConfidence AltitudeConfidence # } # ------------------------------------------------------------------------------ -# * -# * This DF provides the altitude and confidence level of an altitude information in a WGS84 coordinate system. -# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. -# * -# * It shall include the following components: -# * -# * @field altitudeValue: altitude of a geographical point. -# * -# * @field altitudeConfidence: confidence level of the altitudeValue. -# * -# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref AltitudeWithConfidence instead. -# * @category: GeoReference information -# * @revision: Description revised in V2.1.1 -# AltitudeValue altitude_value diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AltitudeConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AltitudeConfidence.msg index 45e848bda..370c3c60d 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AltitudeConfidence.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AltitudeConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,41 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the altitude confidence value which represents the estimated absolute accuracy of an altitude value of a geographical point with a default confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - 0 - `alt-000-01` - if the confidence value is equal to or less than 0,01 metre, +# * - 1 - `alt-000-02` - if the confidence value is equal to or less than 0,02 metre and greater than 0,01 metre, +# * - 2 - `alt-000-05` - if the confidence value is equal to or less than 0,05 metre and greater than 0,02 metre, +# * - 3 - `alt-000-10` - if the confidence value is equal to or less than 0,1 metre and greater than 0,05 metre, +# * - 4 - `alt-000-20` - if the confidence value is equal to or less than 0,2 metre and greater than 0,1 metre, +# * - 5 - `alt-000-50` - if the confidence value is equal to or less than 0,5 metre and greater than 0,2 metre, +# * - 6 - `alt-001-00` - if the confidence value is equal to or less than 1 metre and greater than 0,5 metre, +# * - 7 - `alt-002-00` - if the confidence value is equal to or less than 2 metres and greater than 1 metre, +# * - 8 - `alt-005-00` - if the confidence value is equal to or less than 5 metres and greater than 2 metres, +# * - 9 - `alt-010-00` - if the confidence value is equal to or less than 10 metres and greater than 5 metres, +# * - 10 - `alt-020-00` - if the confidence value is equal to or less than 20 metres and greater than 10 metres, +# * - 11 - `alt-050-00` - if the confidence value is equal to or less than 50 metres and greater than 20 metres, +# * - 12 - `alt-100-00` - if the confidence value is equal to or less than 100 metres and greater than 50 metres, +# * - 13 - `alt-200-00` - if the confidence value is equal to or less than 200 metres and greater than 100 metres, +# * - 14 - `outOfRange` - if the confidence value is out of range, i.e. greater than 200 metres, +# * - 15 - `unavailable` - if the confidence value is unavailable. +# * +# * @note: The fact that an altitude value is received with confidence value set to `unavailable(15)` can be caused +# * by several reasons, such as: +# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, +# * - the sensor cannot calculate the accuracy due to lack of variables, or +# * - there has been a vehicle bus (e.g. CAN bus) error. +# * In all 3 cases above, the altitude value may be valid and used by the application. +# * +# * @note: If an altitude value is received and its confidence value is set to `outOfRange(14)`, it means that the +# * altitude value is not valid and therefore cannot be trusted. Such value is not useful for the application. +# * +# * @category: GeoReference information +# * @revision: Description revised in V2.1.1 +# */ # AltitudeConfidence ::= ENUMERATED { # alt-000-01 (0), # alt-000-02 (1), @@ -45,41 +79,6 @@ # unavailable (15) # } # ------------------------------------------------------------------------------ -# * -# * This DE indicates the altitude confidence value which represents the estimated absolute accuracy of an altitude value of a geographical point with a default confidence level of 95 %. -# * If required, the confidence level can be defined by the corresponding standards applying this DE. -# * -# * The value shall be set to: -# * - 0 - `alt-000-01` - if the confidence value is equal to or less than 0,01 metre, -# * - 1 - `alt-000-02` - if the confidence value is equal to or less than 0,02 metre and greater than 0,01 metre, -# * - 2 - `alt-000-05` - if the confidence value is equal to or less than 0,05 metre and greater than 0,02 metre, -# * - 3 - `alt-000-10` - if the confidence value is equal to or less than 0,1 metre and greater than 0,05 metre, -# * - 4 - `alt-000-20` - if the confidence value is equal to or less than 0,2 metre and greater than 0,1 metre, -# * - 5 - `alt-000-50` - if the confidence value is equal to or less than 0,5 metre and greater than 0,2 metre, -# * - 6 - `alt-001-00` - if the confidence value is equal to or less than 1 metre and greater than 0,5 metre, -# * - 7 - `alt-002-00` - if the confidence value is equal to or less than 2 metres and greater than 1 metre, -# * - 8 - `alt-005-00` - if the confidence value is equal to or less than 5 metres and greater than 2 metres, -# * - 9 - `alt-010-00` - if the confidence value is equal to or less than 10 metres and greater than 5 metres, -# * - 10 - `alt-020-00` - if the confidence value is equal to or less than 20 metres and greater than 10 metres, -# * - 11 - `alt-050-00` - if the confidence value is equal to or less than 50 metres and greater than 20 metres, -# * - 12 - `alt-100-00` - if the confidence value is equal to or less than 100 metres and greater than 50 metres, -# * - 13 - `alt-200-00` - if the confidence value is equal to or less than 200 metres and greater than 100 metres, -# * - 14 - `outOfRange` - if the confidence value is out of range, i.e. greater than 200 metres, -# * - 15 - `unavailable` - if the confidence value is unavailable. -# * -# * @note: The fact that an altitude value is received with confidence value set to `unavailable(15)` can be caused -# * by several reasons, such as: -# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, -# * - the sensor cannot calculate the accuracy due to lack of variables, or -# * - there has been a vehicle bus (e.g. CAN bus) error. -# * In all 3 cases above, the altitude value may be valid and used by the application. -# * -# * @note: If an altitude value is received and its confidence value is set to `outOfRange(14)`, it means that the -# * altitude value is not valid and therefore cannot be trusted. Such value is not useful for the application. -# * -# * @category: GeoReference information -# * @revision: Description revised in V2.1.1 -# uint8 value uint8 ALT_000_01 = 0 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AltitudeValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AltitudeValue.msg index 5cda57d38..64b5615dd 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AltitudeValue.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/AltitudeValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,27 +25,27 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the altitude value in a WGS84 coordinate system. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `-100 000` if the altitude is equal to or less than -1 000 m, +# * - `n` (`n > -100 000` and `n < 800 000`) if the altitude is equal to or less than n x 0,01 metre and greater than (n-1) x 0,01 metre, +# * - `800 000` if the altitude greater than 7 999,99 m, +# * - `800 001` if the information is not available. +# * +# * @note: the range of this DE does not use the full binary encoding range, but all reasonable values are covered. In order to cover all possible altitude ranges a larger encoding would be necessary. +# * @unit: 0,01 metre +# * @category: GeoReference information +# * @revision: Description revised in V2.1.1 (definition of 800 000 has slightly changed) +# */ # AltitudeValue ::= INTEGER { # negativeOutOfRange (-100000), # postiveOutOfRange (800000), # unavailable (800001) # } (-100000..800001) # ------------------------------------------------------------------------------ -# * -# * This DE represents the altitude value in a WGS84 coordinate system. -# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. -# * -# * The value shall be set to: -# * - `-100 000` if the altitude is equal to or less than -1 000 m, -# * - `n` (`n > -100 000` and `n < 800 000`) if the altitude is equal to or less than n x 0,01 metre and greater than (n-1) x 0,01 metre, -# * - `800 000` if the altitude greater than 7 999,99 m, -# * - `800 001` if the information is not available. -# * -# * @note: the range of this DE does not use the full binary encoding range, but all reasonable values are covered. In order to cover all possible altitude ranges a larger encoding would be necessary. -# * @unit: 0,01 metre -# * @category: GeoReference information -# * @revision: Description revised in V2.1.1 (definition of 800 000 has slightly changed) -# int32 value int32 MIN = -100000 @@ -54,3 +53,4 @@ int32 MAX = 800001 int32 NEGATIVE_OUT_OF_RANGE = -100000 int32 POSTIVE_OUT_OF_RANGE = 800000 int32 UNAVAILABLE = 800001 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicContainer.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicContainer.msg index 989684a8e..c3640e49b 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicContainer.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,24 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents a general container for usage in various types of messages. +# * +# * It shall include the following components: +# * +# * @field stationType: the type of technical context in which the ITS-S that has generated the message is integrated in. +# * +# * @field referencePosition: the reference position of the station that has generated the message that contains the basic container. +# * +# * @category: Basic information +# * @revision: Created in V2.1.1 +# */ # BasicContainer ::= SEQUENCE { # stationType TrafficParticipantType, # referencePosition ReferencePositionWithConfidence, # ... # } # ------------------------------------------------------------------------------ -# * -# * This DE represents a general container for usage in various types of messages. -# * -# * It shall include the following components: -# * -# * @field stationType: the type of technical context in which the ITS-S that has generated the message is integrated in. -# * -# * @field referencePosition: the reference position of the station that has generated the message that contains the basic container. -# * -# * @category: Basic information -# * @revision: Created in V2.1.1 -# TrafficParticipantType station_type diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicVehicleContainerHighFrequency.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicVehicleContainerHighFrequency.msg index 5f3afcab6..bb50dea76 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicVehicleContainerHighFrequency.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicVehicleContainerHighFrequency.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,57 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This type contains detaild information of the Basic Vehicle Container High Frequency. +# * +# * It shall include the following components: +# * +# * @field heading: It represent the heading and heading accuracy of the vehicle movement of the originating ITS-S with regards to the true north. +# * The heading accuracy provided in the heading Confidence value shall provide the accuracy of the measured vehicle heading with a confidence level +# * of 95 %. Otherwise, the value of the headingConfidence shall be set to unavailable. +# * +# * @field speed: It represent driving speed and speed accuracy of the originating ITS-S. The speed accuracy provided in the speedConfidence shall +# * provide the accuracy of the speed value with a confidence level of 95 %. Otherwise, the speedConfidence shall be set to unavailable. +# * +# * @field driveDirection: This component represent the vehicle drive direction (forward or backward) of the originating ITS-S. +# * +# * @field vehicleLength: This component represent the vehicle length value and vehicle length confidence indication of the vehicle ITS-S that +# * originate the CAM. +# * +# * @field vehicleWidth: This component represents the Vehicle Width of the vehicle ITS-S that originates the CAM excluding side mirrors and possible +# * similar extensions. +# * +# * @field longitudinalAcceleration: It represent the vehicle Longitudinal Acceleration of the originating ITS-S in the centre of the mass of the +# * empty vehicle. It shall include the measured vehicle longitudinal acceleration and its accuracy value with the confidence level of 95 %. +# * Otherwise, the longitudinalAccelerationConfidence shall be set to unavailable. +# * +# * @field curvature: this component reppresent the actual trajectory of the vehicle. +# * +# * @field curvatureCalculationMode: It indicates whether vehicle yaw-rate is used in the calculation of the curvature of the vehicle ITS-S that +# * originates the CAM. +# * +# * @field yawRate: It denotes the vehicle rotation around the centre of mass of the empty vehicle. The leading sign denotes the direction of +# * rotation. The value is negative if the motion is clockwise when viewing from the top. +# * yawRateConfidence denotes the accuracy for the 95 % confidence level for the measured yawRateValue. Otherwise, the value of yawRateConfidence +# * shall be set to unavailable. +# * +# * @field accelerationControl: an optional component which represents the current status of the vehcile mechnanisms controlling the longitudinal movement of the vehcile ITS-S +# * (e.g. brake pedal, gas pedal, etc. engaged) that originate the CAM. +# * +# * @field lanePosition: an optional component which represents the lanePosition of the referencePosition of a vehicle. This component shall be present if the data is +# * available at the originating ITS-S. +# * +# * @field steeringWheelAngle: an optional component which indicates the steering wheel angle and accuracy as measured at the vehicle ITS-S that originates the CAM. +# * +# * @field lateralAcceleration: an optional component which represents the vehicle lateral acceleration of the originating ITS-S in the centre of the mass of the empty vehicle. +# * It shall include the measured vehicle lateral acceleration and its accuracy value with the confidence level of 95%. +# * +# * @field verticalAcceleration: an optional component which indicates the originating ITS-S in the centre of the mass of the empty vehicle. +# * +# * @field performanceClass: an optional component characterizes the maximum age of the CAM data elements with regard to the generation delta time. +# * +# * @field cenDsrcTollingZone: an optional component which represents the information about the position of a CEN DSRC Tolling Station operating in the 5,8 GHz frequency band. +# */ # BasicVehicleContainerHighFrequency ::= SEQUENCE { # heading Heading, # speed Speed, @@ -45,57 +95,6 @@ # cenDsrcTollingZone CenDsrcTollingZone OPTIONAL # } # ------------------------------------------------------------------------------ -# * -#* This type contains detaild information of the Basic Vehicle Container High Frequency. -#* -#* It shall include the following components: -#* -#* @field heading: It represent the heading and heading accuracy of the vehicle movement of the originating ITS-S with regards to the true north. -#* The heading accuracy provided in the heading Confidence value shall provide the accuracy of the measured vehicle heading with a confidence level -#* of 95 %. Otherwise, the value of the headingConfidence shall be set to unavailable. -#* -#* @field speed: It represent driving speed and speed accuracy of the originating ITS-S. The speed accuracy provided in the speedConfidence shall -#* provide the accuracy of the speed value with a confidence level of 95 %. Otherwise, the speedConfidence shall be set to unavailable. -#* -#* @field driveDirection: This component represent the vehicle drive direction (forward or backward) of the originating ITS-S. -#* -#* @field vehicleLength: This component represent the vehicle length value and vehicle length confidence indication of the vehicle ITS-S that -#* originate the CAM. -#* -#* @field vehicleWidth: This component represents the Vehicle Width of the vehicle ITS-S that originates the CAM excluding side mirrors and possible -#* similar extensions. -#* -#* @field longitudinalAcceleration: It represent the vehicle Longitudinal Acceleration of the originating ITS-S in the centre of the mass of the -#* empty vehicle. It shall include the measured vehicle longitudinal acceleration and its accuracy value with the confidence level of 95 %. -#* Otherwise, the longitudinalAccelerationConfidence shall be set to unavailable. -#* -#* @field curvature: this component reppresent the actual trajectory of the vehicle. -#* -#* @field curvatureCalculationMode: It indicates whether vehicle yaw-rate is used in the calculation of the curvature of the vehicle ITS-S that -#* originates the CAM. -#* -#* @field yawRate: It denotes the vehicle rotation around the centre of mass of the empty vehicle. The leading sign denotes the direction of -#* rotation. The value is negative if the motion is clockwise when viewing from the top. -#* yawRateConfidence denotes the accuracy for the 95 % confidence level for the measured yawRateValue. Otherwise, the value of yawRateConfidence -#* shall be set to unavailable. -#* -#* @field accelerationControl: an optional component which represents the current status of the vehcile mechnanisms controlling the longitudinal movement of the vehcile ITS-S -#* (e.g. brake pedal, gas pedal, etc. engaged) that originate the CAM. -#* -#* @field lanePosition: an optional component which represents the lanePosition of the referencePosition of a vehicle. This component shall be present if the data is -#* available at the originating ITS-S. -#* -#* @field steeringWheelAngle: an optional component which indicates the steering wheel angle and accuracy as measured at the vehicle ITS-S that originates the CAM. -#* -#* @field lateralAcceleration: an optional component which represents the vehicle lateral acceleration of the originating ITS-S in the centre of the mass of the empty vehicle. -#* It shall include the measured vehicle lateral acceleration and its accuracy value with the confidence level of 95%. -#* -#* @field verticalAcceleration: an optional component which indicates the originating ITS-S in the centre of the mass of the empty vehicle. -#* -#* @field performanceClass: an optional component characterizes the maximum age of the CAM data elements with regard to the generation delta time. -#* -#* @field cenDsrcTollingZone: an optional component which represents the information about the position of a CEN DSRC Tolling Station operating in the 5,8 GHz frequency band. -# Heading heading diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicVehicleContainerLowFrequency.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicVehicleContainerLowFrequency.msg index 78a8988ae..b65bfed70 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicVehicleContainerLowFrequency.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/BasicVehicleContainerLowFrequency.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,24 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This type contains detaild information of the Basic Vehicle Container Low Frequency. +# * +# * It shall include the following components: +# * +# * @field vehicleRole: represent the role of the vehicle ITS-S that originates the CAM. Only values 0 to 7 shall be used. +# * +# * @field exteriorLights: represent the status of the most important exterior lights switches of the vehicle ITS-S that originates the CAM. +# * +# * @field pathHistory: which represents the vehicle's recent movement over some past time and/or distance. It consists of a list of path points, +# * each represented as DF PathPoint. The list of path points may consist of up to 23 elements. +# */ # BasicVehicleContainerLowFrequency ::= SEQUENCE { # vehicleRole VehicleRole, # exteriorLights ExteriorLights, # pathHistory Path # } # ------------------------------------------------------------------------------ -# * -#* This type contains detaild information of the Basic Vehicle Container Low Frequency. -#* -#* It shall include the following components: -#* -#* @field vehicleRole: represent the role of the vehicle ITS-S that originates the CAM. Only values 0 to 7 shall be used. -#* -#* @field exteriorLights: represent the status of the most important exterior lights switches of the vehicle ITS-S that originates the CAM. -#* -#* @field pathHistory: which represents the vehicle's recent movement over some past time and/or distance. It consists of a list of path points, -#* each represented as DF PathPoint. The list of path points may consist of up to 23 elements. -# VehicleRole vehicle_role diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CAM.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CAM.msg index 90a3065f3..4d509bd76 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CAM.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CAM.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,22 +25,20 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This type represents the CAM PDU. +# * +# * It shall include the following componenets: +# * +# * @field header: the header of the CAM PDU. +# * +# * @field cam: the payload of the CAM PDU. +# */ # CAM ::= SEQUENCE { # header ItsPduHeader (WITH COMPONENTS {... , protocolVersion (2), messageId(cam)}), # ------------------------------------------------------------------------------ -# The root data frame for cooperative awareness messages -#* -#* This type represents the CAM PDU. -#* -#* It shall include the following componenets: -#* -#* @field header: the header of the CAM PDU. -#* -#* @field cam: the payload of the CAM PDU. -# ItsPduHeader header -int64 HEADER_MIN = 0 CamPayload cam diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CamParameters.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CamParameters.msg index 7554dffcc..73a4510c1 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CamParameters.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CamParameters.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,16 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * @field basicContainer: the mandatory basic container of the CAM. +# * +# * @field highFrequencyContainer: the mandatory container represents the high frequency of the CAM. +# * +# * @field lowFrequencyContainer: the optional conatainer represents the low frequency of the CAM. +# * +# * @field specialVehicleContainer: The special container of the CAM shall be present as defined in clause 6.1.2. +# * The content of the container shall be set according to the value of the vehicleRole component as specified in Table 5. +# */ # CamParameters ::= SEQUENCE { # basicContainer BasicContainer, # highFrequencyContainer HighFrequencyContainer, @@ -34,16 +43,6 @@ # ... # } # ------------------------------------------------------------------------------ -# * -#* @field basicContainer: the mandatory basic container of the CAM. -#* -#* @field highFrequencyContainer: the mandatory container represents the high frequency of the CAM. -#* -#* @field lowFrequencyContainer: the optional conatainer represents the low frequency of the CAM. -#* -#* @field specialVehicleContainer: The special container of the CAM shall be present as defined in clause 6.1.2. -#* The content of the container shall be set according to the value of the vehicleRole component as specified in Table 5. -# BasicContainer basic_container diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CamPayload.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CamPayload.msg index 57d69b365..5941cf658 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CamPayload.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CamPayload.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,21 +25,21 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This type represents the CAM payload. +# * +# * It shall include the following components: +# * +# * @field generationDeltaTime: Time corresponding to the time of the reference position in the CAM, considered as time of the CAM generation. +# * +# * @field camParameters: The sequence of CAM mandatory and optional container. +# * +# */ # CamPayload ::= SEQUENCE { # generationDeltaTime GenerationDeltaTime, # camParameters CamParameters # } # ------------------------------------------------------------------------------ -# * -#* This type represents the CAM payload. -#* -#* It shall include the following components: -#* -#* @field generationDeltaTime: Time corresponding to the time of the reference position in the CAM, considered as time of the CAM generation. -#* -#* @field camParameters: The sequence of CAM mandatory and optional container. -#* -# GenerationDeltaTime generation_delta_time diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CauseCodeChoice.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CauseCodeChoice.msg index b623183c2..bf449de79 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CauseCodeChoice.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CauseCodeChoice.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,55 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF is a representation of the cause code value and associated sub cause code value of a traffic event. +# * +# * The following options are available: +# * - 0 - reserved for future use, +# * - 1 - `trafficCondition1` - in case the type of event is an abnormal traffic condition, +# * - 2 - `accident2` - in case the type of event is a road accident, +# * - 3 - `roadworks3` - in case the type of event is roadwork, +# * - 4 - reserved for future usage, +# * - 5 - `impassability5` - in case the type of event is unmanaged road blocking, referring to any +# * blocking of a road, partial or total, which has not been adequately secured and signposted, +# * - 6 - `adverseWeatherCondition-Adhesion6` - in case the type of event is low adhesion, +# * - 7 - `aquaplaning7` - danger of aquaplaning on the road, +# * - 8 - reserved for future usage, +# * - 9 - `hazardousLocation-SurfaceCondition9` - in case the type of event is abnormal road surface condition, +# * - 10 - `hazardousLocation-ObstacleOnTheRoad10` - in case the type of event is obstacle on the road, +# * - 11 - `hazardousLocation-AnimalOnTheRoad11` - in case the type of event is animal on the road, +# * - 12 - `humanPresenceOnTheRoad` - in case the type of event is presence of human vulnerable road user on the road, +# * - 13 - reserved for future usage, +# * - 14 - `wrongWayDriving14` - in case the type of the event is vehicle driving in wrong way, +# * - 15 - `rescueAndRecoveryWorkInProgress15` - in case the type of event is rescue and recovery work for accident or for a road hazard in progress, +# * - 16 - reserved for future usage, +# * - 17 - `adverseWeatherCondition-ExtremeWeatherCondition17` - in case the type of event is extreme weather condition, +# * - 18 - `adverseWeatherCondition-Visibility18` - in case the type of event is low visibility, +# * - 19 - `adverseWeatherCondition-Precipitation19` - in case the type of event is precipitation, +# * - 20 - `violence20` - in case the the type of event is human violence on or near the road, +# * - 21-25 - reserved for future usage, +# * - 26 - `slowVehicle26` - in case the type of event is slow vehicle driving on the road, +# * - 27 - `dangerousEndOfQueue27` - in case the type of event is dangerous end of vehicle queue, +# * - 28 - `publicTransportVehicleApproaching - in case the type of event is a public transport vehicle approaching, with a priority defined by applicable traffic regulations, +# * - 29-90 - are reserved for future usage, +# * - 91 - `vehicleBreakdown91` - in case the type of event is break down vehicle on the road, +# * - 92 - `postCrash92` - in case the type of event is a detected crash, +# * - 93 - `humanProblem93` - in case the type of event is human health problem in vehicles involved in traffic, +# * - 94 - `stationaryVehicle94` - in case the type of event is stationary vehicle, +# * - 95 - `emergencyVehicleApproaching95` - in case the type of event is an approaching vehicle operating on a mission for which the +# applicable traffic regulations provide it with defined priority rights in traffic. +# * - 96 - `hazardousLocation-DangerousCurve96` - in case the type of event is dangerous curve, +# * - 97 - `collisionRisk97` - in case the type of event is a collision risk, +# * - 98 - `signalViolation98` - in case the type of event is signal violation, +# * - 99 - `dangerousSituation99` - in case the type of event is dangerous situation in which autonomous safety system in vehicle +# * is activated, +# * - 100 - `railwayLevelCrossing100` - in case the type of event is a railway level crossing. +# * - 101-255 - are reserved for future usage. +# * +# * @note: this DF is defined for use as part of CauseCodeV2. It is recommended to use CauseCodeV2. +# * @category: Traffic information +# * @revision: Created in V2.1.1, the type of impassability5 changed to ImpassabilitySubCauseCode in V2.2.1, value 28 added in V2.2.1, definition of value 12 and 95 changed in V2.2.1 +# */ # CauseCodeChoice::= CHOICE { # reserved0 SubCauseCodeType, # trafficCondition1 TrafficConditionSubCauseCode, @@ -158,55 +206,6 @@ # reserved128 SubCauseCodeType # } # ------------------------------------------------------------------------------ -# * -# * This DF is a representation of the cause code value and associated sub cause code value of a traffic event. -# * -# * The following options are available: -# * - 0 - reserved for future use, -# * - 1 - `trafficCondition1` - in case the type of event is an abnormal traffic condition, -# * - 2 - `accident2` - in case the type of event is a road accident, -# * - 3 - `roadworks3` - in case the type of event is roadwork, -# * - 4 - reserved for future usage, -# * - 5 - `impassability5` - in case the type of event is unmanaged road blocking, referring to any -# * blocking of a road, partial or total, which has not been adequately secured and signposted, -# * - 6 - `adverseWeatherCondition-Adhesion6` - in case the type of event is low adhesion, -# * - 7 - `aquaplaning7` - danger of aquaplaning on the road, -# * - 8 - reserved for future usage, -# * - 9 - `hazardousLocation-SurfaceCondition9` - in case the type of event is abnormal road surface condition, -# * - 10 - `hazardousLocation-ObstacleOnTheRoad10` - in case the type of event is obstacle on the road, -# * - 11 - `hazardousLocation-AnimalOnTheRoad11` - in case the type of event is animal on the road, -# * - 12 - `humanPresenceOnTheRoad` - in case the type of event is presence of human vulnerable road user on the road, -# * - 13 - reserved for future usage, -# * - 14 - `wrongWayDriving14` - in case the type of the event is vehicle driving in wrong way, -# * - 15 - `rescueAndRecoveryWorkInProgress15` - in case the type of event is rescue and recovery work for accident or for a road hazard in progress, -# * - 16 - reserved for future usage, -# * - 17 - `adverseWeatherCondition-ExtremeWeatherCondition17` - in case the type of event is extreme weather condition, -# * - 18 - `adverseWeatherCondition-Visibility18` - in case the type of event is low visibility, -# * - 19 - `adverseWeatherCondition-Precipitation19` - in case the type of event is precipitation, -# * - 20 - `violence20` - in case the the type of event is human violence on or near the road, -# * - 21-25 - reserved for future usage, -# * - 26 - `slowVehicle26` - in case the type of event is slow vehicle driving on the road, -# * - 27 - `dangerousEndOfQueue27` - in case the type of event is dangerous end of vehicle queue, -# * - 28 - `publicTransportVehicleApproaching - in case the type of event is a public transport vehicle approaching, with a priority defined by applicable traffic regulations, -# * - 29-90 - are reserved for future usage, -# * - 91 - `vehicleBreakdown91` - in case the type of event is break down vehicle on the road, -# * - 92 - `postCrash92` - in case the type of event is a detected crash, -# * - 93 - `humanProblem93` - in case the type of event is human health problem in vehicles involved in traffic, -# * - 94 - `stationaryVehicle94` - in case the type of event is stationary vehicle, -# * - 95 - `emergencyVehicleApproaching95` - in case the type of event is an approaching vehicle operating on a mission for which the -# applicable traffic regulations provide it with defined priority rights in traffic. -# * - 96 - `hazardousLocation-DangerousCurve96` - in case the type of event is dangerous curve, -# * - 97 - `collisionRisk97` - in case the type of event is a collision risk, -# * - 98 - `signalViolation98` - in case the type of event is signal violation, -# * - 99 - `dangerousSituation99` - in case the type of event is dangerous situation in which autonomous safety system in vehicle -# * is activated, -# * - 100 - `railwayLevelCrossing100` - in case the type of event is a railway level crossing. -# * - 101-255 - are reserved for future usage. -# * -# * @note: this DF is defined for use as part of CauseCodeV2. It is recommended to use CauseCodeV2. -# * @category: Traffic information -# * @revision: Created in V2.1.1, the type of impassability5 changed to ImpassabilitySubCauseCode in V2.2.1, value 28 added in V2.2.1, definition of value 12 and 95 changed in V2.2.1 -# uint8 choice diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CauseCodeV2.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CauseCodeV2.msg index c39bc2c33..5077fa4b3 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CauseCodeV2.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CauseCodeV2.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,25 +25,25 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF is an alternative representation of the cause code value of a traffic event. +# * +# * It shall include the following components: +# * +# * @field ccAndScc: the main cause of a detected event. Each entry is of a different type and represents the sub cause code. +# +# * The semantics of the entire DF are completely defined by the choice value which represents the cause code value. +# * The interpretation of the sub cause code value may provide additional information that is not strictly necessary to understand +# * the cause code itself, and is therefore optional. +# * +# * @category: Traffic information +# * @revision: Created in V2.1.1, description amended in V2.2.1 +# */ # CauseCodeV2 ::= SEQUENCE { # ccAndScc CauseCodeChoice, # ... # } # ------------------------------------------------------------------------------ -# * -# * This DF is an alternative representation of the cause code value of a traffic event. -# * -# * It shall include the following components: -# * -# * @field ccAndScc: the main cause of a detected event. Each entry is of a different type and represents the sub cause code. -# -# * The semantics of the entire DF are completely defined by the choice value which represents the cause code value. -# * The interpretation of the sub cause code value may provide additional information that is not strictly necessary to understand -# * the cause code itself, and is therefore optional. -# * -# * @category: Traffic information -# * @revision: Created in V2.1.1, description amended in V2.2.1 -# CauseCodeChoice cc_and_scc diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CenDsrcTollingZone.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CenDsrcTollingZone.msg index fc0a4c60f..b4fbc0859 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CenDsrcTollingZone.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CenDsrcTollingZone.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,20 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * The DF describes the position of a CEN DSRC road side equipment. +# * +# * It shall include the following components: +# * +# * @field protectedZoneLatitude: the latitude of the CEN DSRC road side equipment. +# * +# * @field protectedZoneLongitude: the latitude of the CEN DSRC road side equipment. +# * +# * @field cenDsrcTollingZoneID: the optional ID of the CEN DSRC road side equipment. +# * +# * @category: Infrastructure information, Communication information +# * @revision: revised in V2.1.1 (cenDsrcTollingZoneId is directly of type ProtectedZoneId) +# */ # CenDsrcTollingZone ::= SEQUENCE { # protectedZoneLatitude Latitude, # protectedZoneLongitude Longitude, @@ -33,20 +46,6 @@ # ... # } # ------------------------------------------------------------------------------ -# * -# * The DF describes the position of a CEN DSRC road side equipment. -# * -# * It shall include the following components: -# * -# * @field protectedZoneLatitude: the latitude of the CEN DSRC road side equipment. -# * -# * @field protectedZoneLongitude: the latitude of the CEN DSRC road side equipment. -# * -# * @field cenDsrcTollingZoneID: the optional ID of the CEN DSRC road side equipment. -# * -# * @category: Infrastructure information, Communication information -# * @revision: revised in V2.1.1 (cenDsrcTollingZoneId is directly of type ProtectedZoneId) -# Latitude protected_zone_latitude diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ClosedLanes.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ClosedLanes.msg index 801cc2ab6..a4bcbfe8c 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ClosedLanes.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ClosedLanes.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF indicates the opening/closure status of the lanes of a carriageway. +# * +# * It shall include the following components: +# * +# * @field innerhardShoulderStatus: this information is optional and shall be included if an inner hard shoulder is present and the information is known. +# * It indicates the open/closing status of inner hard shoulder lanes. +# * +# * @field outerhardShoulderStatus: this information is optional and shall be included if an outer hard shoulder is present and the information is known. +# * It indicates the open/closing status of outer hard shoulder lanes. +# * +# * @field drivingLaneStatus: this information is optional and shall be included if the information is known. +# * It indicates the open/closing status of driving lanes. +# * For carriageways with more than 13 driving lanes, the drivingLaneStatus component shall not be present. +# * +# * @category: Infrastructure information, Road topology information +# * @revision: Description revised in V2.1.1 +# */ # ClosedLanes ::= SEQUENCE { # innerhardShoulderStatus HardShoulderStatus OPTIONAL, # outerhardShoulderStatus HardShoulderStatus OPTIONAL, @@ -33,24 +50,6 @@ # ... # } # ------------------------------------------------------------------------------ -# * -# * This DF indicates the opening/closure status of the lanes of a carriageway. -# * -# * It shall include the following components: -# * -# * @field innerhardShoulderStatus: this information is optional and shall be included if an inner hard shoulder is present and the information is known. -# * It indicates the open/closing status of inner hard shoulder lanes. -# * -# * @field outerhardShoulderStatus: this information is optional and shall be included if an outer hard shoulder is present and the information is known. -# * It indicates the open/closing status of outer hard shoulder lanes. -# * -# * @field drivingLaneStatus: this information is optional and shall be included if the information is known. -# * It indicates the open/closing status of driving lanes. -# * For carriageways with more than 13 driving lanes, the drivingLaneStatus component shall not be present. -# * -# * @category: Infrastructure information, Road topology information -# * @revision: Description revised in V2.1.1 -# HardShoulderStatus innerhard_shoulder_status bool innerhard_shoulder_status_is_present diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CollisionRiskSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CollisionRiskSubCauseCode.msg index a49900d37..e39e55751 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CollisionRiskSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CollisionRiskSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,25 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the sub cause codes of the @ref CauseCode `collisionRisk`. +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case information on the type of collision risk is unavailable, +# * - 1 - `longitudinalCollisionRisk` - in case the type of detected collision risk is longitudinal collision risk, +# * e.g. forward collision or face to face collision, +# * - 2 - `crossingCollisionRisk` - in case the type of detected collision risk is crossing collision risk, +# * - 3 - `lateralCollisionRisk` - in case the type of detected collision risk is lateral collision risk, +# * - 4 - `vulnerableRoadUser` - in case the type of detected collision risk involves vulnerable road users +# * e.g. pedestrians or bicycles. +# * - 5 - `collisionRiskWithPedestrian` - in case the type of detected collision risk involves at least one pedestrian, +# * - 6 - `collisionRiskWithCyclist` - in case the type of detected collision risk involves at least one cyclist (and no pedestrians), +# * - 7 - `collisionRiskWithMotorVehicle` - in case the type of detected collision risk involves at least one motor vehicle (and no pedestrians or cyclists), +# * - 8-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1, values 5-7 assigned in V2.2.1 +# */ # CollisionRiskSubCauseCode ::= INTEGER { # unavailable (0), # longitudinalCollisionRisk (1), @@ -37,25 +55,6 @@ # collisionRiskWithMotorVehicle (7) # }(0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the sub cause codes of the @ref CauseCode `collisionRisk`. -# * -# * The value shall be set to: -# * - 0 - `unavailable` - in case information on the type of collision risk is unavailable, -# * - 1 - `longitudinalCollisionRisk` - in case the type of detected collision risk is longitudinal collision risk, -# * e.g. forward collision or face to face collision, -# * - 2 - `crossingCollisionRisk` - in case the type of detected collision risk is crossing collision risk, -# * - 3 - `lateralCollisionRisk` - in case the type of detected collision risk is lateral collision risk, -# * - 4 - `vulnerableRoadUser` - in case the type of detected collision risk involves vulnerable road users -# * e.g. pedestrians or bicycles. -# * - 5 - `collisionRiskWithPedestrian` - in case the type of detected collision risk involves at least one pedestrian, -# * - 6 - `collisionRiskWithCyclist` - in case the type of detected collision risk involves at least one cyclist (and no pedestrians), -# * - 7 - `collisionRiskWithMotorVehicle` - in case the type of detected collision risk involves at least one motor vehicle (and no pedestrians or cyclists), -# * - 8-255 - are reserved for future usage. -# * -# * @category: Traffic information -# * @revision: V1.3.1, values 5-7 assigned in V2.2.1 -# uint8 value uint8 MIN = 0 @@ -68,3 +67,4 @@ uint8 VULNERABLE_ROAD_USER = 4 uint8 COLLISION_RISK_WITH_PEDESTRIAN = 5 uint8 COLLISION_RISK_WITH_CYCLIST = 6 uint8 COLLISION_RISK_WITH_MOTOR_VEHICLE = 7 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Curvature.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Curvature.msg index a58893dce..cb25a8a95 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Curvature.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Curvature.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,24 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents the curvature of the vehicle trajectory and the associated confidence value. +# * The curvature detected by a vehicle represents the curvature of actual vehicle trajectory. +# * +# * It shall include the following components: +# * +# * @field curvatureValue: Detected curvature of the vehicle trajectory. +# * +# * @field curvatureConfidence: along with a confidence value of the curvature value with a predefined confidence level. +# * +# * @category: Vehicle information +# * @revision: Description revised in V2.1.1 +# */ # Curvature ::= SEQUENCE { # curvatureValue CurvatureValue, # curvatureConfidence CurvatureConfidence # } # ------------------------------------------------------------------------------ -# * -# * This DF represents the curvature of the vehicle trajectory and the associated confidence value. -# * The curvature detected by a vehicle represents the curvature of actual vehicle trajectory. -# * -# * It shall include the following components: -# * -# * @field curvatureValue: Detected curvature of the vehicle trajectory. -# * -# * @field curvatureConfidence: along with a confidence value of the curvature value with a predefined confidence level. -# * -# * @category: Vehicle information -# * @revision: Description revised in V2.1.1 -# CurvatureValue curvature_value diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CurvatureCalculationMode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CurvatureCalculationMode.msg index 325ebcf7e..959d7109f 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CurvatureCalculationMode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CurvatureCalculationMode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,17 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * The DE describes whether the yaw rate is used to calculate the curvature for a curvature value. +# * +# * The value shall be set to: +# * - 0 - `yawRateUsed` - if the yaw rate is used, +# * - 1 - `yawRateNotUsed` - if the yaw rate is not used, +# * - 2 - `unavailable` - if the information of curvature calculation mode is unknown. +# * +# * @category: Vehicle information +# * @revision: V1.3.1 +# */ # CurvatureCalculationMode ::= ENUMERATED { # yawRateUsed (0), # yawRateNotUsed (1), @@ -33,17 +43,6 @@ # ... # } # ------------------------------------------------------------------------------ -# * -# * The DE describes whether the yaw rate is used to calculate the curvature for a curvature value. -# * -# * The value shall be set to: -# * - 0 - `yawRateUsed` - if the yaw rate is used, -# * - 1 - `yawRateNotUsed` - if the yaw rate is not used, -# * - 2 - `unavailable` - if the information of curvature calculation mode is unknown. -# * -# * @category: Vehicle information -# * @revision: V1.3.1 -# uint8 value uint8 YAW_RATE_USED = 0 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CurvatureConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CurvatureConfidence.msg index 0354524a5..f2fd9254e 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CurvatureConfidence.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CurvatureConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,33 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the acceleration confidence value which represents the estimated absolute accuracy range of a curvature value with a confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - 0 - `onePerMeter-0-00002` - if the confidence value is less than or equal to 0,00002 m-1, +# * - 1 - `onePerMeter-0-0001` - if the confidence value is less than or equal to 0,0001 m-1 and greater than 0,00002 m-1, +# * - 2 - `onePerMeter-0-0005` - if the confidence value is less than or equal to 0,0005 m-1 and greater than 0,0001 m-1, +# * - 3 - `onePerMeter-0-002` - if the confidence value is less than or equal to 0,002 m-1 and greater than 0,0005 m-1, +# * - 4 - `nePerMeter-0-01` - if the confidence value is less than or equal to 0,01 m-1 and greater than 0,002 m-1, +# * - 5 - `nePerMeter-0-1` - if the confidence value is less than or equal to 0,1 m-1 and greater than 0,01 m-1, +# * - 6 - `outOfRange` - if the confidence value is out of range, i.e. greater than 0,1 m-1, +# * - 7 - `unavailable` - if the confidence value is not available. +# * +# * @note: The fact that a curvature value is received with confidence value set to `unavailable(7)` can be caused by +# * several reasons, such as: +# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, +# * - the sensor cannot calculate the accuracy due to lack of variables, or +# * - there has been a vehicle bus (e.g. CAN bus) error. +# * In all 3 cases above, the curvature value may be valid and used by the application. +# * +# * @note: If a curvature value is received and its confidence value is set to `outOfRange(6)`, it means that the curvature value is not valid +# * and therefore cannot be trusted. Such value is not useful for the application. +# * +# * @category: Vehicle information +# * @revision: Description revised in V2.1.1 +# */ # CurvatureConfidence ::= ENUMERATED { # onePerMeter-0-00002 (0), # onePerMeter-0-0001 (1), @@ -37,33 +63,6 @@ # unavailable (7) # } # ------------------------------------------------------------------------------ -# * -# * This DE indicates the acceleration confidence value which represents the estimated absolute accuracy range of a curvature value with a confidence level of 95 %. -# * If required, the confidence level can be defined by the corresponding standards applying this DE. -# * -# * The value shall be set to: -# * - 0 - `onePerMeter-0-00002` - if the confidence value is less than or equal to 0,00002 m-1, -# * - 1 - `onePerMeter-0-0001` - if the confidence value is less than or equal to 0,0001 m-1 and greater than 0,00002 m-1, -# * - 2 - `onePerMeter-0-0005` - if the confidence value is less than or equal to 0,0005 m-1 and greater than 0,0001 m-1, -# * - 3 - `onePerMeter-0-002` - if the confidence value is less than or equal to 0,002 m-1 and greater than 0,0005 m-1, -# * - 4 - `nePerMeter-0-01` - if the confidence value is less than or equal to 0,01 m-1 and greater than 0,002 m-1, -# * - 5 - `nePerMeter-0-1` - if the confidence value is less than or equal to 0,1 m-1 and greater than 0,01 m-1, -# * - 6 - `outOfRange` - if the confidence value is out of range, i.e. greater than 0,1 m-1, -# * - 7 - `unavailable` - if the confidence value is not available. -# * -# * @note: The fact that a curvature value is received with confidence value set to `unavailable(7)` can be caused by -# * several reasons, such as: -# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, -# * - the sensor cannot calculate the accuracy due to lack of variables, or -# * - there has been a vehicle bus (e.g. CAN bus) error. -# * In all 3 cases above, the curvature value may be valid and used by the application. -# * -# * @note: If a curvature value is received and its confidence value is set to `outOfRange(6)`, it means that the curvature value is not valid -# * and therefore cannot be trusted. Such value is not useful for the application. -# * -# * @category: Vehicle information -# * @revision: Description revised in V2.1.1 -# uint8 value uint8 ONE_PER_METER_0_00002 = 0 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CurvatureValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CurvatureValue.msg index 446401a65..be63445ef 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CurvatureValue.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/CurvatureValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,30 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE describes vehicle turning curve with the following information: +# * ``` +# * Value = 1 / Radius * 10000 +# * ``` +# * wherein radius is the vehicle turning curve radius in metres. +# * +# * Positive values indicate a turning curve to the left hand side of the driver. +# * It corresponds to the vehicle coordinate system as defined in ISO 8855 [21]. +# * +# * The value shall be set to: +# * - `-1023` for values smaller than -1023, +# * - `n` (`n > -1023` and `n < 0`) for negative values equal to or less than `n`, and greater than `(n-1)`, +# * - `0` when the vehicle is moving straight, +# * - `n` (`n > 0` and `n < 1022`) for positive values equal to or less than `n`, and greater than `(n-1)`, +# * - `1022`, for values greater than 1021, +# * - `1023`, if the information is not available. +# * +# * @note: The present DE is limited to vehicle types as defined in ISO 8855 [21]. +# * +# * @unit: 1 over 10 000 metres +# * @category: Vehicle information +# * @revision: description revised in V2.1.1 (the definition of value 1022 has changed slightly) +# */ # CurvatureValue ::= INTEGER { # outOfRangeNegative (-1023), # straight (0), @@ -33,30 +56,6 @@ # unavailable (1023) # } (-1023..1023) # ------------------------------------------------------------------------------ -# * -# * This DE describes vehicle turning curve with the following information: -# * ``` -# * Value = 1 / Radius * 10000 -# * ``` -# * wherein radius is the vehicle turning curve radius in metres. -# * -# * Positive values indicate a turning curve to the left hand side of the driver. -# * It corresponds to the vehicle coordinate system as defined in ISO 8855 [21]. -# * -# * The value shall be set to: -# * - `-1023` for values smaller than -1023, -# * - `n` (`n > -1023` and `n < 0`) for negative values equal to or less than `n`, and greater than `(n-1)`, -# * - `0` when the vehicle is moving straight, -# * - `n` (`n > 0` and `n < 1022`) for positive values equal to or less than `n`, and greater than `(n-1)`, -# * - `1022`, for values greater than 1021, -# * - `1023`, if the information is not available. -# * -# * @note: The present DE is limited to vehicle types as defined in ISO 8855 [21]. -# * -# * @unit: 1 over 10 000 metres -# * @category: Vehicle information -# * @revision: description revised in V2.1.1 (the definition of value 1022 has changed slightly) -# int16 value int16 MIN = -1023 @@ -65,3 +64,4 @@ int16 OUT_OF_RANGE_NEGATIVE = -1023 int16 STRAIGHT = 0 int16 OUT_OF_RANGE_POSITIVE = 1022 int16 UNAVAILABLE = 1023 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousEndOfQueueSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousEndOfQueueSubCauseCode.msg index 1ea2ecf45..ef0dd5682 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousEndOfQueueSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousEndOfQueueSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,20 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the value of the sub cause codes of the @ref CauseCode `dangerousEndOfQueue`. +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case information on the type of dangerous queue is unavailable, +# * - 1 - `suddenEndOfQueue`- in case a sudden end of queue is detected, e.g. due to accident or obstacle, +# * - 2 - `queueOverHill` - in case the dangerous end of queue is detected on the road hill, +# * - 3 - `queueAroundBend` - in case the dangerous end of queue is detected around the road bend, +# * - 4 - `queueInTunnel` - in case queue is detected in tunnel, +# * - 5-255 - reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# */ # DangerousEndOfQueueSubCauseCode ::= INTEGER { # unavailable (0), # suddenEndOfQueue (1), @@ -34,20 +47,6 @@ # queueInTunnel (4) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the value of the sub cause codes of the @ref CauseCode `dangerousEndOfQueue`. -# * -# * The value shall be set to: -# * - 0 - `unavailable` - in case information on the type of dangerous queue is unavailable, -# * - 1 - `suddenEndOfQueue`- in case a sudden end of queue is detected, e.g. due to accident or obstacle, -# * - 2 - `queueOverHill` - in case the dangerous end of queue is detected on the road hill, -# * - 3 - `queueAroundBend` - in case the dangerous end of queue is detected around the road bend, -# * - 4 - `queueInTunnel` - in case queue is detected in tunnel, -# * - 5-255 - reserved for future usage. -# * -# * @category: Traffic information -# * @revision: V1.3.1 -# uint8 value uint8 MIN = 0 @@ -57,3 +56,4 @@ uint8 SUDDEN_END_OF_QUEUE = 1 uint8 QUEUE_OVER_HILL = 2 uint8 QUEUE_AROUND_BEND = 3 uint8 QUEUE_IN_TUNNEL = 4 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousGoodsBasic.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousGoodsBasic.msg index 6915b8721..b5322c6a4 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousGoodsBasic.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousGoodsBasic.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,15 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the type of the dangerous goods being carried by a heavy vehicle. +# * The value is assigned according to `class` and `division` definitions of dangerous goods as specified in part II, +# * chapter 2.1.1.1 of European Agreement concerning the International Carriage of Dangerous Goods by Road [3]. +# * +# * +# * @category Vehicle information +# * @revision: V1.3.1 +# */ # DangerousGoodsBasic::= ENUMERATED { # explosives1 (0), # explosives2 (1), @@ -49,15 +57,6 @@ # miscellaneousDangerousSubstances (19) # } # ------------------------------------------------------------------------------ -# * -# * This DE indicates the type of the dangerous goods being carried by a heavy vehicle. -# * The value is assigned according to `class` and `division` definitions of dangerous goods as specified in part II, -# * chapter 2.1.1.1 of European Agreement concerning the International Carriage of Dangerous Goods by Road [3]. -# * -# * -# * @category Vehicle information -# * @revision: V1.3.1 -# uint8 value uint8 EXPLOSIVES1 = 0 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousGoodsContainer.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousGoodsContainer.msg index 2882f699e..800ecd74a 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousGoodsContainer.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousGoodsContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,18 +25,18 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This type contains detaild information of the Dangerous Goods Container. +# * +# * It shall include the following components: +# * +# * @field dangerousGoodsBasic: identifies the type of the dangerous goods transported by the vehicle that originates the CAM. It shall be present if +# * the data is available in the originating ITS S. +# */ # DangerousGoodsContainer ::= SEQUENCE { # dangerousGoodsBasic DangerousGoodsBasic # } # ------------------------------------------------------------------------------ -# * -#* This type contains detaild information of the Dangerous Goods Container. -#* -#* It shall include the following components: -#* -#* @field dangerousGoodsBasic: identifies the type of the dangerous goods transported by the vehicle that originates the CAM. It shall be present if -#* the data is available in the originating ITS S. -# DangerousGoodsBasic dangerous_goods_basic diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousSituationSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousSituationSubCauseCode.msg index dd172b5ca..887924221 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousSituationSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DangerousSituationSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,23 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the value of the sub cause codes of the @ref CauseCode `dangerousSituation` +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case information on the type of dangerous situation is unavailable, +# * - 1 - `emergencyElectronicBrakeEngaged` - in case emergency electronic brake is engaged, +# * - 2 - `preCrashSystemEngaged` - in case pre-crash system is engaged, +# * - 3 - `espEngaged` - in case Electronic Stability Program (ESP) system is engaged, +# * - 4 - `absEngaged` - in case Anti-lock Braking System (ABS) is engaged, +# * - 5 - `aebEngaged` - in case Autonomous Emergency Braking (AEB) system is engaged, +# * - 6 - `brakeWarningEngaged` - in case brake warning is engaged, +# * - 7 - `collisionRiskWarningEngaged` - in case collision risk warning is engaged, +# * - 8-255 - reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# */ # DangerousSituationSubCauseCode ::= INTEGER { # unavailable (0), # emergencyElectronicBrakeEngaged (1), @@ -37,23 +53,6 @@ # collisionRiskWarningEngaged (7) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the value of the sub cause codes of the @ref CauseCode `dangerousSituation` -# * -# * The value shall be set to: -# * - 0 - `unavailable` - in case information on the type of dangerous situation is unavailable, -# * - 1 - `emergencyElectronicBrakeEngaged` - in case emergency electronic brake is engaged, -# * - 2 - `preCrashSystemEngaged` - in case pre-crash system is engaged, -# * - 3 - `espEngaged` - in case Electronic Stability Program (ESP) system is engaged, -# * - 4 - `absEngaged` - in case Anti-lock Braking System (ABS) is engaged, -# * - 5 - `aebEngaged` - in case Autonomous Emergency Braking (AEB) system is engaged, -# * - 6 - `brakeWarningEngaged` - in case brake warning is engaged, -# * - 7 - `collisionRiskWarningEngaged` - in case collision risk warning is engaged, -# * - 8-255 - reserved for future usage. -# * -# * @category: Traffic information -# * @revision: V1.3.1 -# uint8 value uint8 MIN = 0 @@ -66,3 +65,4 @@ uint8 ABS_ENGAGED = 4 uint8 EB_ENGAGED = 5 uint8 BRAKE_WARNING_ENGAGED = 6 uint8 COLLISION_RISK_WARNING_ENGAGED = 7 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaAltitude.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaAltitude.msg index b7f1dbf7b..74d47964f 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaAltitude.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaAltitude.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,28 +25,28 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents an offset altitude with regards to a defined altitude value. +# * It may be used to describe a geographical point with regards to a specific reference geographical position. +# * +# * The value shall be set to: +# * - `-12 700` for values equal to or lower than -127 metres, +# * - `n` (`n > -12 700` and `n <= 0`) for altitude offset n x 0,01 metre below the reference position, +# * - `0` for no altitudinal offset, +# * - `n` (`n > 0` and `n < 12799`) for altitude offset n x 0,01 metre above the reference position, +# * - `12 799` for values equal to or greater than 127,99 metres, +# * - `12 800` when the information is unavailable. +# * +# * @unit: 0,01 metre +# * @category: GeoReference information +# * @revision: editorial update in V2.1.1 +# */ # DeltaAltitude ::= INTEGER { # negativeOutOfRange (-12700), # positiveOutOfRange (12799), # unavailable (12800) # } (-12700..12800) # ------------------------------------------------------------------------------ -# * -# * This DE represents an offset altitude with regards to a defined altitude value. -# * It may be used to describe a geographical point with regards to a specific reference geographical position. -# * -# * The value shall be set to: -# * - `-12 700` for values equal to or lower than -127 metres, -# * - `n` (`n > -12 700` and `n <= 0`) for altitude offset n x 0,01 metre below the reference position, -# * - `0` for no altitudinal offset, -# * - `n` (`n > 0` and `n < 12799`) for altitude offset n x 0,01 metre above the reference position, -# * - `12 799` for values equal to or greater than 127,99 metres, -# * - `12 800` when the information is unavailable. -# * -# * @unit: 0,01 metre -# * @category: GeoReference information -# * @revision: editorial update in V2.1.1 -# int16 value int16 MIN = -12700 @@ -55,3 +54,4 @@ int16 MAX = 12800 int16 NEGATIVE_OUT_OF_RANGE = -12700 int16 POSITIVE_OUT_OF_RANGE = 12799 int16 UNAVAILABLE = 12800 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaLatitude.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaLatitude.msg index 8dc6a9935..4fd89982a 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaLatitude.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaLatitude.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,26 +25,27 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents an offset latitude with regards to a defined latitude value. +# * It may be used to describe a geographical point with regards to a specific reference geographical position. +# * +# * The value shall be set to: +# * - `n` (`n >= -131 071` and `n < 0`) for offset n x 10^-7 degree towards the south from the reference position, +# * - `0` for no latitudinal offset, +# * - `n` (`n > 0` and `n < 131 072`) for offset n x 10^-7 degree towards the north from the reference position, +# * - `131 072` when the information is unavailable. +# * +# * @unit: 10^-7 degree +# * @category: GeoReference information +# * @revision: editorial update in V2.1.1 +# */ # DeltaLatitude ::= INTEGER { # unavailable (131072) # } (-131071..131072) # ------------------------------------------------------------------------------ -# * -# * This DE represents an offset latitude with regards to a defined latitude value. -# * It may be used to describe a geographical point with regards to a specific reference geographical position. -# * -# * The value shall be set to: -# * - `n` (`n >= -131 071` and `n < 0`) for offset n x 10^-7 degree towards the south from the reference position, -# * - `0` for no latitudinal offset, -# * - `n` (`n > 0` and `n < 131 072`) for offset n x 10^-7 degree towards the north from the reference position, -# * - `131 072` when the information is unavailable. -# * -# * @unit: 10^-7 degree -# * @category: GeoReference information -# * @revision: editorial update in V2.1.1 -# int32 value int32 MIN = -131071 int32 MAX = 131072 int32 UNAVAILABLE = 131072 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaLongitude.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaLongitude.msg index 3952ee467..893cece87 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaLongitude.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaLongitude.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,26 +25,27 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents an offset longitude with regards to a defined longitude value. +# * It may be used to describe a geographical point with regards to a specific reference geographical position. +# * +# * The value shall be set to: +# * - `n` (`n >= -131 071` and `n < 0`) for offset n x 10^-7 degree towards the west from the reference position, +# * - `0` for no longitudinal offset, +# * - `n` (`n > 0` and `n < 131 072`) for offset n x 10^-7 degree towards the east from the reference position, +# * - `131 072` when the information is unavailable. +# * +# * @unit: 10^-7 degree +# * @category: GeoReference information +# * @revision: editorial update in V2.1.1 +# */ # DeltaLongitude ::= INTEGER { # unavailable (131072) # } (-131071..131072) # ------------------------------------------------------------------------------ -# * -# * This DE represents an offset longitude with regards to a defined longitude value. -# * It may be used to describe a geographical point with regards to a specific reference geographical position. -# * -# * The value shall be set to: -# * - `n` (`n >= -131 071` and `n < 0`) for offset n x 10^-7 degree towards the west from the reference position, -# * - `0` for no longitudinal offset, -# * - `n` (`n > 0` and `n < 131 072`) for offset n x 10^-7 degree towards the east from the reference position, -# * - `131 072` when the information is unavailable. -# * -# * @unit: 10^-7 degree -# * @category: GeoReference information -# * @revision: editorial update in V2.1.1 -# int32 value int32 MIN = -131071 int32 MAX = 131072 int32 UNAVAILABLE = 131072 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaReferencePosition.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaReferencePosition.msg index 36ab2016c..446849bd0 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaReferencePosition.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DeltaReferencePosition.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,26 +25,26 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF defines a geographical point position as a 3 dimensional offset position to a geographical reference point. +# * +# * It shall include the following components: +# * +# * @field deltaLatitude: A delta latitude offset with regards to the latitude value of the reference position. +# * +# * @field deltaLongitude: A delta longitude offset with regards to the longitude value of the reference position. +# * +# * @field deltaAltitude: A delta altitude offset with regards to the altitude value of the reference position. +# * +# * @category: GeoReference information +# * @revision: V1.3.1 +# */ # DeltaReferencePosition ::= SEQUENCE { # deltaLatitude DeltaLatitude, # deltaLongitude DeltaLongitude, # deltaAltitude DeltaAltitude # } # ------------------------------------------------------------------------------ -# * -# * This DF defines a geographical point position as a 3 dimensional offset position to a geographical reference point. -# * -# * It shall include the following components: -# * -# * @field deltaLatitude: A delta latitude offset with regards to the latitude value of the reference position. -# * -# * @field deltaLongitude: A delta longitude offset with regards to the longitude value of the reference position. -# * -# * @field deltaAltitude: A delta altitude offset with regards to the altitude value of the reference position. -# * -# * @category: GeoReference information -# * @revision: V1.3.1 -# DeltaLatitude delta_latitude diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DriveDirection.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DriveDirection.msg index 32917d5e9..2d6d2528d 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DriveDirection.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DriveDirection.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,23 +25,23 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates in which direction something is moving. +# * +# * The value shall be set to: +# * - 0 - `forward` - to indicate it is moving forward, +# * - 1 - `backwards` - to indicate it is moving backwards, +# * - 2 - `unavailable` - to indicate that the information is unavailable. +# * +# * @category: Kinematic information +# * @revision: editorial update in V2.1.1 +# */ # DriveDirection ::= ENUMERATED { # forward (0), # backward (1), # unavailable (2) # } # ------------------------------------------------------------------------------ -# * -# * This DE indicates in which direction something is moving. -# * -# * The value shall be set to: -# * - 0 - `forward` - to indicate it is moving forward, -# * - 1 - `backwards` - to indicate it is moving backwards, -# * - 2 - `unavailable` - to indicate that the information is unavailable. -# * -# * @category: Kinematic information -# * @revision: editorial update in V2.1.1 -# uint8 value uint8 FORWARD = 0 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DrivingLaneStatus.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DrivingLaneStatus.msg index 155c59a34..09b203198 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DrivingLaneStatus.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/DrivingLaneStatus.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,24 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates whether a driving lane is open to traffic. +# * +# * A lane is counted from inside border of the road excluding the hard shoulder. The size of the bit string shall +# * correspond to the total number of the driving lanes in the carriageway. +# * +# * The numbering is matched to @ref LanePosition. +# * The bit `0` is used to indicate the innermost lane, bit `1` is used to indicate the second lane from inside border. +# * +# * If a lane is closed to traffic, the corresponding bit shall be set to `1`. Otherwise, it shall be set to `0`. +# * +# * @note: hard shoulder status is not provided by this DE but in @ref HardShoulderStatus. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# */ # DrivingLaneStatus ::= BIT STRING (SIZE (1..13)) # ------------------------------------------------------------------------------ -# * -# * This DE indicates whether a driving lane is open to traffic. -# * -# * A lane is counted from inside border of the road excluding the hard shoulder. The size of the bit string shall -# * correspond to the total number of the driving lanes in the carriageway. -# * -# * The numbering is matched to @ref LanePosition. -# * The bit `0` is used to indicate the innermost lane, bit `1` is used to indicate the second lane from inside border. -# * -# * If a lane is closed to traffic, the corresponding bit shall be set to `1`. Otherwise, it shall be set to `0`. -# * -# * @note: hard shoulder status is not provided by this DE but in @ref HardShoulderStatus. -# * -# * @category: Traffic information -# * @revision: V1.3.1 -# uint8[] value uint8 bits_unused diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmbarkationStatus.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmbarkationStatus.msg index 68ecd3d99..82675da49 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmbarkationStatus.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmbarkationStatus.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,15 +25,15 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates whether a vehicle (e.g. public transport vehicle, truck) is under the embarkation process. +# * If that is the case, the value is *TRUE*, otherwise *FALSE*. +# * +# * @category: Vehicle information +# * @revision: editorial update in V2.1.1 +# */ # EmbarkationStatus ::= BOOLEAN # ------------------------------------------------------------------------------ -# * -# * This DE indicates whether a vehicle (e.g. public transport vehicle, truck) is under the embarkation process. -# * If that is the case, the value is *TRUE*, otherwise *FALSE*. -# * -# * @category: Vehicle information -# * @revision: editorial update in V2.1.1 -# bool value diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmergencyContainer.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmergencyContainer.msg index f63bb4cbe..30fb77125 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmergencyContainer.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmergencyContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,23 +25,23 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This type contains detaild information of the Emergency Container. +# * +# * It shall include the following components: +# * +# * @field lightBarSirenInUse: it indicates whether light-bar or a siren is in use by the vehicle originating the CAM. +# * +# * @field incidentIndication: the optional incident related to the roadworks to provide additional information of the roadworks zone. +# * +# * @field emergencyPriority: the optional component represent right of way indicator of the vehicle ITS-S that originates the CAM PDU. +# */ # EmergencyContainer ::= SEQUENCE { # lightBarSirenInUse LightBarSirenInUse, # incidentIndication CauseCodeV2 OPTIONAL, # emergencyPriority EmergencyPriority OPTIONAL # } # ------------------------------------------------------------------------------ -# * -#* This type contains detaild information of the Emergency Container. -#* -#* It shall include the following components: -#* -#* @field lightBarSirenInUse: it indicates whether light-bar or a siren is in use by the vehicle originating the CAM. -#* -#* @field incidentIndication: the optional incident related to the roadworks to provide additional information of the roadworks zone. -#* -#* @field emergencyPriority: the optional component represent right of way indicator of the vehicle ITS-S that originates the CAM PDU. -# LightBarSirenInUse light_bar_siren_in_use diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmergencyPriority.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmergencyPriority.msg index 44cd87f9a..9c24bb45c 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmergencyPriority.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmergencyPriority.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,17 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the right of priority requested or assumed by an operating emergency vehicle. +# * The right-of-priority bit shall be set to `1` if the corresponding right is requested. +# * +# * The corresponding bit shall be set to 1 under the following conditions: +# * - 0 - `requestForRightOfWay` - when the vehicle is requesting/assuming the right of way, +# * - 1 - `requestForFreeCrossingAtATrafficLight` - when the vehicle is requesting/assuming the right to pass at a (red) traffic light. +# * +# * @category: Traffic information +# * @revision: description revised in V2.1.1 +# */ # EmergencyPriority ::= BIT STRING { # requestForRightOfWay (0), # requestForFreeCrossingAtATrafficLight (1) @@ -37,3 +47,4 @@ uint8 bits_unused uint8 SIZE_BITS = 2 uint8 BIT_INDEX_REQUEST_FOR_RIGHT_OF_WAY = 0 uint8 BIT_INDEX_REQUEST_FOR_FREE_CROSSING_AT_A_TRAFFIC_LIGHT = 1 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmergencyVehicleApproachingSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmergencyVehicleApproachingSubCauseCode.msg index 50e38fc36..4dd3910f6 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmergencyVehicleApproachingSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/EmergencyVehicleApproachingSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,25 +25,25 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the value of the sub cause codes of the @ref CauseCode "emergencyVehicleApproaching". +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case further detailed information on the emergency vehicle approaching event +# * is unavailable, +# * - 1 - `emergencyVehicleApproaching` - in case an operating emergency vehicle is approaching, +# * - 2 - `prioritizedVehicleApproaching` - in case a prioritized vehicle is approaching, +# * - 3-255 - reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# */ # EmergencyVehicleApproachingSubCauseCode ::= INTEGER { # unavailable (0), # emergencyVehicleApproaching (1), # prioritizedVehicleApproaching (2) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the value of the sub cause codes of the @ref CauseCode "emergencyVehicleApproaching". -# * -# * The value shall be set to: -# * - 0 - `unavailable` - in case further detailed information on the emergency vehicle approaching event -# * is unavailable, -# * - 1 - `emergencyVehicleApproaching` - in case an operating emergency vehicle is approaching, -# * - 2 - `prioritizedVehicleApproaching` - in case a prioritized vehicle is approaching, -# * - 3-255 - reserved for future usage. -# * -# * @category: Traffic information -# * @revision: V1.3.1 -# uint8 value uint8 MIN = 0 @@ -52,3 +51,4 @@ uint8 MAX = 255 uint8 UNAVAILABLE = 0 uint8 EMERGENCY_VEHICLE_APPROACHING = 1 uint8 PRIORITIZED_VEHICLE_APPROACHING = 2 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ExteriorLights.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ExteriorLights.msg index 57d954342..9ce7a90d3 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ExteriorLights.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ExteriorLights.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,35 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE describes the status of the exterior light switches of a vehicle incl. VRU vehicles. +# * +# * The corresponding bit shall be set to 1 under the following conditions: +# * - 0 - `lowBeamHeadlightsOn` - when the low beam head light switch is on, +# * - 1 - `highBeamHeadlightsOn` - when the high beam head light switch is on, +# * - 2 - `leftTurnSignalOn` - when the left turnSignal switch is on, +# * - 3 - `rightTurnSignalOn` - when the right turn signal switch is on, +# * - 4 - `daytimeRunningLightsOn` - when the daytime running light switch is on, +# * - 5 - `reverseLightOn` - when the reverse light switch is on, +# * - 6 - `fogLightOn` - when the tail fog light switch is on, +# * - 7 - `parkingLightsOn` - when the parking light switch is on. +# * +# * @note: The value of each bit indicates the state of the switch, which commands the corresponding light. +# * The bit corresponding to a specific light is set to `1`, when the corresponding switch is turned on, +# * either manually by the driver or automatically by a vehicle system. The bit value does not indicate +# * if the corresponding lamps are alight or not. +# * +# * If a vehicle is not equipped with a certain light or if the light switch status information is not available, +# * the corresponding bit shall be set to `0`. +# * +# * As the bit value indicates only the state of the switch, the turn signal and hazard signal bit values shall not +# * alternate with the blinking interval. +# * +# * For hazard indicator, the `leftTurnSignalOn (2)` and `rightTurnSignalOn (3)` shall be both set to `1`. +# * +# * @category Vehicle information +# * @revision: Description revised in V2.1.1 +# */ # ExteriorLights ::= BIT STRING { # lowBeamHeadlightsOn (0), # highBeamHeadlightsOn (1), @@ -37,35 +65,6 @@ # parkingLightsOn (7) # } (SIZE(8)) # ------------------------------------------------------------------------------ -# * -# * This DE describes the status of the exterior light switches of a vehicle incl. VRU vehicles. -# * -# * The corresponding bit shall be set to 1 under the following conditions: -# * - 0 - `lowBeamHeadlightsOn` - when the low beam head light switch is on, -# * - 1 - `highBeamHeadlightsOn` - when the high beam head light switch is on, -# * - 2 - `leftTurnSignalOn` - when the left turnSignal switch is on, -# * - 3 - `rightTurnSignalOn` - when the right turn signal switch is on, -# * - 4 - `daytimeRunningLightsOn` - when the daytime running light switch is on, -# * - 5 - `reverseLightOn` - when the reverse light switch is on, -# * - 6 - `fogLightOn` - when the tail fog light switch is on, -# * - 7 - `parkingLightsOn` - when the parking light switch is on. -# * -# * @note: The value of each bit indicates the state of the switch, which commands the corresponding light. -# * The bit corresponding to a specific light is set to `1`, when the corresponding switch is turned on, -# * either manually by the driver or automatically by a vehicle system. The bit value does not indicate -# * if the corresponding lamps are alight or not. -# * -# * If a vehicle is not equipped with a certain light or if the light switch status information is not available, -# * the corresponding bit shall be set to `0`. -# * -# * As the bit value indicates only the state of the switch, the turn signal and hazard signal bit values shall not -# * alternate with the blinking interval. -# * -# * For hazard indicator, the `leftTurnSignalOn (2)` and `rightTurnSignalOn (3)` shall be both set to `1`. -# * -# * @category Vehicle information -# * @revision: Description revised in V2.1.1 -# uint8[] value uint8 bits_unused @@ -78,3 +77,4 @@ uint8 BIT_INDEX_DAYTIME_RUNNING_LIGHTS_ON = 4 uint8 BIT_INDEX_REVERSE_LIGHT_ON = 5 uint8 BIT_INDEX_FOG_LIGHT_ON = 6 uint8 BIT_INDEX_PARKING_LIGHTS_ON = 7 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/GenerationDeltaTime.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/GenerationDeltaTime.msg index 4232eb4b9..a52016d81 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/GenerationDeltaTime.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/GenerationDeltaTime.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,17 +25,18 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents a timestamp based on TimestampIts modulo 65 536. +# * This means that generationDeltaTime = TimestampIts mod 65 536. +# * +# * @category: Basic information +# * @revision: Created in V2.1.1 based on ETSI TS 103 900 [1] +# */ # GenerationDeltaTime ::= INTEGER { oneMilliSec(1) } (0..65535) # ------------------------------------------------------------------------------ -# * -# * This DE represents a timestamp based on TimestampIts modulo 65 536. -# * This means that generationDeltaTime = TimestampIts mod 65 536. -# * -# * @category: Basic information -# * @revision: Created in V2.1.1 based on ETSI TS 103 900 [1] -# uint16 value uint16 MIN = 0 uint16 MAX = 65535 uint16 ONE_MILLI_SEC = 1 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HardShoulderStatus.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HardShoulderStatus.msg index e974c173c..8cd82ac28 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HardShoulderStatus.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HardShoulderStatus.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,24 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the current status of a hard shoulder: whether it is available for special usage +# * (e.g. for stopping or for driving) or closed for all vehicles. +# * +# * The value shall be set to: +# * - 0 - `availableForStopping` - if the hard shoulder is available for stopping in e.g. emergency situations, +# * - 1 - `closed` - if the hard shoulder is closed and cannot be occupied in any case, +# * - 2 - `availableForDriving` - if the hard shoulder is available for regular driving. +# * +# * @category: Traffic information +# * @revision: Description revised in V2.1.1 +# */ # HardShoulderStatus ::= ENUMERATED { # availableForStopping (0), # closed (1), # availableForDriving (2) # } # ------------------------------------------------------------------------------ -# * -# * This DE indicates the current status of a hard shoulder: whether it is available for special usage -# * (e.g. for stopping or for driving) or closed for all vehicles. -# * -# * The value shall be set to: -# * - 0 - `availableForStopping` - if the hard shoulder is available for stopping in e.g. emergency situations, -# * - 1 - `closed` - if the hard shoulder is closed and cannot be occupied in any case, -# * - 2 - `availableForDriving` - if the hard shoulder is available for regular driving. -# * -# * @category: Traffic information -# * @revision: Description revised in V2.1.1 -# uint8 value uint8 AVAILABLE_FOR_STOPPING = 0 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationAnimalOnTheRoadSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationAnimalOnTheRoadSubCauseCode.msg index bac1ed3a7..dd7cb4be0 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationAnimalOnTheRoadSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationAnimalOnTheRoadSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,25 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-AnimalOnTheRoad`. +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case further detailed information on the animal(s) on the road is unavailable, +# * - 1 - `wildAnimals` - in case wild animals of unknown size are present on the road, +# * - 2 - `herdOfAnimals` - in case a herd of animals is present on the road, +# * - 3 - `smallAnimals` - in case small size animals of unknown type are present on the road, +# * - 4 - `largeAnimals` - in case large size animals of unknown type are present on the road, +# * - 5 - `wildAnimalsSmall` - in case small size wild animal(s) are present on the road, +# * - 6 - `wildAnimalsLarge` - in case large size wild animal(s) are present on the road, +# * - 7 - `domesticAnimals` - in case domestic animal(s) of unknown size are detected on the road, +# * - 8 - `domesticAnimalsSmall` - in case small size domestic animal(s) are present on the road, +# * - 9 - `domesticAnimalsLarge` - in case large size domestic animal(s) are present on the road. +# * - 10-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1, named values 5 to 9 added in V2.2.1 +# */ # HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER { # unavailable (0), # wildAnimals (1), @@ -39,25 +57,6 @@ # domesticAnimalsLarge (9) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-AnimalOnTheRoad`. -# * -# * The value shall be set to: -# * - 0 - `unavailable` - in case further detailed information on the animal(s) on the road is unavailable, -# * - 1 - `wildAnimals` - in case wild animals of unknown size are present on the road, -# * - 2 - `herdOfAnimals` - in case a herd of animals is present on the road, -# * - 3 - `smallAnimals` - in case small size animals of unknown type are present on the road, -# * - 4 - `largeAnimals` - in case large size animals of unknown type are present on the road, -# * - 5 - `wildAnimalsSmall` - in case small size wild animal(s) are present on the road, -# * - 6 - `wildAnimalsLarge` - in case large size wild animal(s) are present on the road, -# * - 7 - `domesticAnimals` - in case domestic animal(s) of unknown size are detected on the road, -# * - 8 - `domesticAnimalsSmall` - in case small size domestic animal(s) are present on the road, -# * - 9 - `domesticAnimalsLarge` - in case large size domestic animal(s) are present on the road. -# * - 10-255 - are reserved for future usage. -# * -# * @category: Traffic information -# * @revision: V1.3.1, named values 5 to 9 added in V2.2.1 -# uint8 value uint8 MIN = 0 @@ -72,3 +71,4 @@ uint8 WILD_ANIMALS_LARGE = 6 uint8 DOMESTIC_ANIMALS = 7 uint8 DOMESTIC_ANIMALS_SMALL = 8 uint8 DOMESTIC_ANIMALS_LARGE = 9 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationDangerousCurveSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationDangerousCurveSubCauseCode.msg index bb48ce389..26af5c495 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationDangerousCurveSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationDangerousCurveSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the sub cause code of the @ref CauseCode `hazardousLocation-DangerousCurve`. +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case further detailed information on the dangerous curve is unavailable, +# * - 1 - `dangerousLeftTurnCurve` - in case the dangerous curve is a left turn curve, +# * - 2 - `dangerousRightTurnCurve` - in case the dangerous curve is a right turn curve, +# * - 3 - `multipleCurvesStartingWithUnknownTurningDirection` - in case of multiple curves for which the starting curve turning direction is not known, +# * - 4 - `multipleCurvesStartingWithLeftTurn` - in case of multiple curves starting with a left turn curve, +# * - 5 - `multipleCurvesStartingWithRightTurn` - in case of multiple curves starting with a right turn curve. +# * - 6-255 - are reserved for future usage. +# * +# * The definition of whether a curve is dangerous may vary according to region and according to vehicle types/mass +# * and vehicle speed driving on the curve. This definition is out of scope of the present document. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# */ # HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER { # unavailable (0), # dangerousLeftTurnCurve (1), @@ -35,24 +52,6 @@ # multipleCurvesStartingWithRightTurn (5) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the sub cause code of the @ref CauseCode `hazardousLocation-DangerousCurve`. -# * -# * The value shall be set to: -# * - 0 - `unavailable` - in case further detailed information on the dangerous curve is unavailable, -# * - 1 - `dangerousLeftTurnCurve` - in case the dangerous curve is a left turn curve, -# * - 2 - `dangerousRightTurnCurve` - in case the dangerous curve is a right turn curve, -# * - 3 - `multipleCurvesStartingWithUnknownTurningDirection` - in case of multiple curves for which the starting curve turning direction is not known, -# * - 4 - `multipleCurvesStartingWithLeftTurn` - in case of multiple curves starting with a left turn curve, -# * - 5 - `multipleCurvesStartingWithRightTurn` - in case of multiple curves starting with a right turn curve. -# * - 6-255 - are reserved for future usage. -# * -# * The definition of whether a curve is dangerous may vary according to region and according to vehicle types/mass -# * and vehicle speed driving on the curve. This definition is out of scope of the present document. -# * -# * @category: Traffic information -# * @revision: V1.3.1 -# uint8 value uint8 MIN = 0 @@ -63,3 +62,4 @@ uint8 DANGEROUS_RIGHT_TURN_CURVE = 2 uint8 MULTIPLE_CURVES_STARTING_WITH_UNKNOWN_TURNING_DIRECTION = 3 uint8 MULTIPLE_CURVES_STARTING_WITH_LEFT_TURN = 4 uint8 MULTIPLE_CURVES_STARTING_WITH_RIGHT_TURN = 5 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationObstacleOnTheRoadSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationObstacleOnTheRoadSubCauseCode.msg index 84d912dae..d9177cee7 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationObstacleOnTheRoadSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationObstacleOnTheRoadSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,23 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-ObstacleOnTheRoad`. +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case further detailed information on the detected obstacle is unavailable, +# * - 1 - `shedLoad` - in case detected obstacle is large amount of obstacles (shedload), +# * - 2 - `partsOfVehicles`- in case detected obstacles are parts of vehicles, +# * - 3 - `partsOfTyres` - in case the detected obstacles are parts of tyres, +# * - 4 - `bigObjects` - in case the detected obstacles are big objects, +# * - 5 - `fallenTrees` - in case the detected obstacles are fallen trees, +# * - 6 - `hubCaps` - in case the detected obstacles are hub caps, +# * - 7 - `waitingVehicles`- in case the detected obstacles are waiting vehicles. +# * - 8-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# */ # HazardousLocation-ObstacleOnTheRoadSubCauseCode ::= INTEGER { # unavailable (0), # shedLoad (1), @@ -37,23 +53,6 @@ # waitingVehicles (7) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-ObstacleOnTheRoad`. -# * -# * The value shall be set to: -# * - 0 - `unavailable` - in case further detailed information on the detected obstacle is unavailable, -# * - 1 - `shedLoad` - in case detected obstacle is large amount of obstacles (shedload), -# * - 2 - `partsOfVehicles`- in case detected obstacles are parts of vehicles, -# * - 3 - `partsOfTyres` - in case the detected obstacles are parts of tyres, -# * - 4 - `bigObjects` - in case the detected obstacles are big objects, -# * - 5 - `fallenTrees` - in case the detected obstacles are fallen trees, -# * - 6 - `hubCaps` - in case the detected obstacles are hub caps, -# * - 7 - `waitingVehicles`- in case the detected obstacles are waiting vehicles. -# * - 8-255 - are reserved for future usage. -# * -# * @category: Traffic information -# * @revision: V1.3.1 -# uint8 value uint8 MIN = 0 @@ -66,3 +65,4 @@ uint8 BIG_OBJECTS = 4 uint8 FALLEN_TREES = 5 uint8 HUB_CAPS = 6 uint8 WAITING_VEHICLES = 7 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationSurfaceConditionSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationSurfaceConditionSubCauseCode.msg index f6571a866..bd740d42a 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationSurfaceConditionSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HazardousLocationSurfaceConditionSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,26 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-SurfaceCondition`. +# * +# The value shall be set to: +# * - 0 - `unavailable` - in case further detailed information on the road surface condition is unavailable, +# * - 1 - `rockfalls` - in case rock falls are detected on the road surface, +# * - 2 - `earthquakeDamage`- in case the road surface is damaged by earthquake, +# * - 3 - `sewerCollapse` - in case of sewer collapse on the road surface, +# * - 4 - `subsidence` - in case road surface is damaged by subsidence, +# * - 5 - `snowDrifts` - in case road surface is damaged due to snow drift, +# * - 6 - `stormDamage` - in case road surface is damaged by strong storm, +# * - 7 - `burstPipe` - in case road surface is damaged due to pipe burst, +# * - 8 - `volcanoEruption` - in case road surface is damaged due to volcano eruption, +# * - 9 - `fallingIce` - in case road surface damage is due to falling ice, +# * - 10 - `fire` - in case there is fire on or near to the road surface. +# * - 11-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# */ # HazardousLocation-SurfaceConditionSubCauseCode ::= INTEGER { # unavailable (0), # rockfalls (1), @@ -40,26 +59,6 @@ # fire (10) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-SurfaceCondition`. -# * -#The value shall be set to: -# * - 0 - `unavailable` - in case further detailed information on the road surface condition is unavailable, -# * - 1 - `rockfalls` - in case rock falls are detected on the road surface, -# * - 2 - `earthquakeDamage`- in case the road surface is damaged by earthquake, -# * - 3 - `sewerCollapse` - in case of sewer collapse on the road surface, -# * - 4 - `subsidence` - in case road surface is damaged by subsidence, -# * - 5 - `snowDrifts` - in case road surface is damaged due to snow drift, -# * - 6 - `stormDamage` - in case road surface is damaged by strong storm, -# * - 7 - `burstPipe` - in case road surface is damaged due to pipe burst, -# * - 8 - `volcanoEruption` - in case road surface is damaged due to volcano eruption, -# * - 9 - `fallingIce` - in case road surface damage is due to falling ice, -# * - 10 - `fire` - in case there is fire on or near to the road surface. -# * - 11-255 - are reserved for future usage. -# * -# * @category: Traffic information -# * @revision: V1.3.1 -# uint8 value uint8 MIN = 0 @@ -75,3 +74,4 @@ uint8 BURST_PIPE = 7 uint8 VOLCANO_ERUPTION = 8 uint8 FALLING_ICE = 9 uint8 FIRE = 10 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Heading.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Heading.msg index 5748f1257..100fadc9d 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Heading.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Heading.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,25 +25,25 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents the Heading in a WGS84 co-ordinates system. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * +# * It shall include the following components: +# * +# * @field headingValue: the heading value. +# * +# * @field headingConfidence: the confidence value of the heading value with a predefined confidence level. +# * +# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref Wgs84Angle instead. +# * @category: Kinematic Information +# * @revision: Description revised in V2.1.1 +# */ # Heading ::= SEQUENCE { # headingValue HeadingValue, # headingConfidence HeadingConfidence # } # ------------------------------------------------------------------------------ -# * -# * This DF represents the Heading in a WGS84 co-ordinates system. -# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. -# * -# * It shall include the following components: -# * -# * @field headingValue: the heading value. -# * -# * @field headingConfidence: the confidence value of the heading value with a predefined confidence level. -# * -# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref Wgs84Angle instead. -# * @category: Kinematic Information -# * @revision: Description revised in V2.1.1 -# HeadingValue heading_value diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HeadingConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HeadingConfidence.msg index ee7cc026b..b5bcba007 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HeadingConfidence.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HeadingConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,37 +25,38 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the heading confidence value which represents the estimated absolute accuracy of a heading value with a confidence level of 95 %. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 126`) if the confidence value is equal to or less than n x 0,1 degree and more than (n-1) x 0,1 degree, +# * - `126` if the confidence value is out of range, i.e. greater than 12,5 degrees, +# * - `127` if the confidence value information is not available. +# * +# * @note: The fact that a value is received with confidence value set to `unavailable(127)` can be caused by several reasons, +# * such as: +# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, +# * - the sensor cannot calculate the accuracy due to lack of variables, or +# * - there has been a vehicle bus (e.g. CAN bus) error. +# * In all 3 cases above, the heading value may be valid and used by the application. +# * +# * @note: If a heading value is received and its confidence value is set to `outOfRange(126)`, it means that the +# * heading value is not valid and therefore cannot be trusted. Such value is not useful for the application. +# * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref Wgs84AngleConfidence instead. +# * +# * @unit: 0,1 degree +# * @category: GeoReference information +# * @revision: Description revised in V2.1.1 +# */ # HeadingConfidence ::= INTEGER { # outOfRange (126), # unavailable (127) # } (1..127) # ------------------------------------------------------------------------------ -# * -# * This DE indicates the heading confidence value which represents the estimated absolute accuracy of a heading value with a confidence level of 95 %. -# * -# * The value shall be set to: -# * - `n` (`n > 0` and `n < 126`) if the confidence value is equal to or less than n x 0,1 degree and more than (n-1) x 0,1 degree, -# * - `126` if the confidence value is out of range, i.e. greater than 12,5 degrees, -# * - `127` if the confidence value information is not available. -# * -# * @note: The fact that a value is received with confidence value set to `unavailable(127)` can be caused by several reasons, -# * such as: -# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, -# * - the sensor cannot calculate the accuracy due to lack of variables, or -# * - there has been a vehicle bus (e.g. CAN bus) error. -# * In all 3 cases above, the heading value may be valid and used by the application. -# * -# * @note: If a heading value is received and its confidence value is set to `outOfRange(126)`, it means that the -# * heading value is not valid and therefore cannot be trusted. Such value is not useful for the application. -# * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref Wgs84AngleConfidence instead. -# * -# * @unit: 0,1 degree -# * @category: GeoReference information -# * @revision: Description revised in V2.1.1 -# uint8 value uint8 MIN = 1 uint8 MAX = 127 uint8 OUT_OF_RANGE = 126 uint8 UNAVAILABLE = 127 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HeadingValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HeadingValue.msg index 1269552bd..75f9f8b3a 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HeadingValue.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HeadingValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,16 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the orientation of the horizontal velocity vector with regards to the WGS84 north. +# * When the information is not available, the DE shall be set to 3 601. The value 3600 shall not be used. +# * +# * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref Wgs84AngleValue instead. +# * +# * Unit: 0,1 degree +# * Categories: GeoReference information +# * @revision: Description revised in V2.1.1 (usage of value 3600 specified) +# */ # HeadingValue ::= INTEGER { # wgs84North (0), # wgs84East (900), @@ -35,16 +44,6 @@ # unavailable (3601) # } (0..3601) # ------------------------------------------------------------------------------ -# * -# * This DE represents the orientation of the horizontal velocity vector with regards to the WGS84 north. -# * When the information is not available, the DE shall be set to 3 601. The value 3600 shall not be used. -# * -# * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref Wgs84AngleValue instead. -# * -# * Unit: 0,1 degree -# * Categories: GeoReference information -# * @revision: Description revised in V2.1.1 (usage of value 3600 specified) -# uint16 value uint16 MIN = 0 @@ -55,3 +54,4 @@ uint16 WGS84_SOUTH = 1800 uint16 WGS84_WEST = 2700 uint16 DO_NOT_USE = 3600 uint16 UNAVAILABLE = 3601 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HighFrequencyContainer.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HighFrequencyContainer.msg index 6bb99d244..90f279d8d 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HighFrequencyContainer.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HighFrequencyContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,21 +25,21 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This type represents the high frequency container. +# * +# * It shall include the following components: +# * +# * @field basicVehicleContainerHighFrequency: The mandatory high frequency container of the CAM when the originating ITS-S is of the type vehicle ITS-S. +# * +# * @field rsuContainerHighFrequency: The mandatory high frequency container of CAM when the type of the originating ITS-S is RSU ITS-S. +# */ # HighFrequencyContainer ::= CHOICE { # basicVehicleContainerHighFrequency BasicVehicleContainerHighFrequency, # rsuContainerHighFrequency RSUContainerHighFrequency, # ... # } # ------------------------------------------------------------------------------ -# * -#* This type represents the high frequency container. -#* -#* It shall include the following components: -#* -#* @field basicVehicleContainerHighFrequency: The mandatory high frequency container of the CAM when the originating ITS-S is of the type vehicle ITS-S. -#* -#* @field rsuContainerHighFrequency: The mandatory high frequency container of CAM when the type of the originating ITS-S is RSU ITS-S. -# uint8 choice diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HumanPresenceOnTheRoadSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HumanPresenceOnTheRoadSubCauseCode.msg index fec366474..bb554f1a3 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HumanPresenceOnTheRoadSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HumanPresenceOnTheRoadSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,37 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the value of the sub cause code of the @ref CauseCode `humanPresenceOnTheRoad`. +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case further detailed information abou the human presence on the road is unavailable, +# * - 1 - `childrenOnRoadway` - in case children are present on the road, +# * - 2 - `cyclistOnRoadway` - in case cyclist(s) are present on the road, +# * - 3 - `motorcyclistOnRoadway` - in case motorcyclist(s) are present on the road, +# * - 4 - `pedestrian` - in case pedestrian(s) of any type are present on the road, +# * - 5 - `ordinary-pedestrian` - in case pedestrian(s) to which no more-specific profile applies are present on the road, +# * - 6 - `road-worker` - in case pedestrian(s) with the role of a road worker applies are present on the road, +# * - 7 - `first-responder` - in case pedestrian(s) with the role of a first responder applies are present on the road, +# * - 8 - `lightVruVehicle - in case light vru vehicle(s) of any type are present on the road, +# * - 9 - `bicyclist ` - in case cycle(s) and their bicyclist(s) are present on the road, +# * - 10 - `wheelchair-user` - in case wheelchair(s) and their user(s) are present on the road, +# * - 11 - `horse-and-rider` - in case horse(s) and rider(s) are present on the road, +# * - 12 - `rollerskater` - in case rolleskater(s) and skater(s) are present on the road, +# * - 13 - `e-scooter` - in case e-scooter(s) and rider(s) are present on the road, +# * - 14 - `personal-transporter` - in case personal-transporter(s) and rider(s) are present on the road, +# * - 15 - `pedelec` - in case pedelec(s) and rider(s) are present on the road, +# * - 16 - `speed-pedelec` - in case speed-pedelec(s) and rider(s) are present on the road, +# * - 17 - `ptw` - in case powered-two-wheeler(s) of any type are present on the road, +# * - 18 - `moped` - in case moped(s) and rider(s) are present on the road, +# * - 19 - `motorcycle` - in case motorcycle(s) and rider(s) are present on the road, +# * - 20 - `motorcycle-and-sidecar-right` - in case motorcycle(s) with sidecar(s) on the right and rider are present on the road, +# * - 21 - `motorcycle-and-sidecar-left` - in case motorcycle(s) with sidecar(s) on the left and rider are present on the road. +# * - 22-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: editorial revision in V2.1.1, named values 4-21 added in V2.2.1 +# */ # HumanPresenceOnTheRoadSubCauseCode ::= INTEGER { # unavailable (0), # childrenOnRoadway (1), @@ -51,37 +81,6 @@ # motorcycle-and-sidecar-left (21) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the value of the sub cause code of the @ref CauseCode `humanPresenceOnTheRoad`. -# * -# * The value shall be set to: -# * - 0 - `unavailable` - in case further detailed information abou the human presence on the road is unavailable, -# * - 1 - `childrenOnRoadway` - in case children are present on the road, -# * - 2 - `cyclistOnRoadway` - in case cyclist(s) are present on the road, -# * - 3 - `motorcyclistOnRoadway` - in case motorcyclist(s) are present on the road, -# * - 4 - `pedestrian` - in case pedestrian(s) of any type are present on the road, -# * - 5 - `ordinary-pedestrian` - in case pedestrian(s) to which no more-specific profile applies are present on the road, -# * - 6 - `road-worker` - in case pedestrian(s) with the role of a road worker applies are present on the road, -# * - 7 - `first-responder` - in case pedestrian(s) with the role of a first responder applies are present on the road, -# * - 8 - `lightVruVehicle - in case light vru vehicle(s) of any type are present on the road, -# * - 9 - `bicyclist ` - in case cycle(s) and their bicyclist(s) are present on the road, -# * - 10 - `wheelchair-user` - in case wheelchair(s) and their user(s) are present on the road, -# * - 11 - `horse-and-rider` - in case horse(s) and rider(s) are present on the road, -# * - 12 - `rollerskater` - in case rolleskater(s) and skater(s) are present on the road, -# * - 13 - `e-scooter` - in case e-scooter(s) and rider(s) are present on the road, -# * - 14 - `personal-transporter` - in case personal-transporter(s) and rider(s) are present on the road, -# * - 15 - `pedelec` - in case pedelec(s) and rider(s) are present on the road, -# * - 16 - `speed-pedelec` - in case speed-pedelec(s) and rider(s) are present on the road, -# * - 17 - `ptw` - in case powered-two-wheeler(s) of any type are present on the road, -# * - 18 - `moped` - in case moped(s) and rider(s) are present on the road, -# * - 19 - `motorcycle` - in case motorcycle(s) and rider(s) are present on the road, -# * - 20 - `motorcycle-and-sidecar-right` - in case motorcycle(s) with sidecar(s) on the right and rider are present on the road, -# * - 21 - `motorcycle-and-sidecar-left` - in case motorcycle(s) with sidecar(s) on the left and rider are present on the road. -# * - 22-255 - are reserved for future usage. -# * -# * @category: Traffic information -# * @revision: editorial revision in V2.1.1, named values 4-21 added in V2.2.1 -# uint8 value uint8 MIN = 0 @@ -108,3 +107,4 @@ uint8 MOPED = 18 uint8 MOTORCYCLE = 19 uint8 MOTORCYCLE_AND_SIDECAR_RIGHT = 20 uint8 MOTORCYCLE_AND_SIDECAR_LEFT = 21 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HumanProblemSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HumanProblemSubCauseCode.msg index 48f1078aa..b1565922c 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HumanProblemSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/HumanProblemSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,24 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the value of the sub cause codes of the @ref CauseCode "humanProblem". +# * +# * The value shall be set to: +# * - 0 - `unavailable` - in case further detailed information on human health problem is unavailable, +# * - 1 - `glycemiaProblem`- in case human problem is due to glycaemia problem, +# * - 2 - `heartProblem` - in case human problem is due to heart problem. +# * - 3-255 - reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# */ # HumanProblemSubCauseCode ::= INTEGER { # unavailable (0), # glycemiaProblem (1), # heartProblem (2) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the value of the sub cause codes of the @ref CauseCode "humanProblem". -# * -# * The value shall be set to: -# * - 0 - `unavailable` - in case further detailed information on human health problem is unavailable, -# * - 1 - `glycemiaProblem`- in case human problem is due to glycaemia problem, -# * - 2 - `heartProblem` - in case human problem is due to heart problem. -# * - 3-255 - reserved for future usage. -# * -# * @category: Traffic information -# * @revision: V1.3.1 -# uint8 value uint8 MIN = 0 @@ -51,3 +50,4 @@ uint8 MAX = 255 uint8 UNAVAILABLE = 0 uint8 GLYCEMIA_PROBLEM = 1 uint8 HEART_PROBLEM = 2 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ImpassabilitySubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ImpassabilitySubCauseCode.msg index 3d5798bf6..98ddeebd3 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ImpassabilitySubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ImpassabilitySubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,33 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the value of the sub cause codes of the @ref CauseCode `impassability` +# * +# * The value shall be set to: +# * - 0 `unavailable` - in case further detailed information about the unmanaged road blockage is unavailable, +# * - 1 `flooding ` - in case the road is affected by flooding, +# * - 2 `dangerOfAvalanches` - in case the road is at risk of being affected or blocked by avalanches, +# * - 3 `blastingOfAvalanches` - in case there is an active blasting of avalanches on or near the road, +# * - 4 `landslips` - in case the road is affected by landslips, +# * - 5 `chemicalSpillage` - in case the road is affected by chemical spillage, +# * - 6 `winterClosure` - in case the road is impassable due to a winter closure. +# * - 7 `sinkhole` - in case the road is impassable due to large holes in the road surface. +# * - 8 `earthquakeDamage` - in case the road is obstructed or partially obstructed because of damage caused by an earthquake. +# * - 9 `fallenTrees` - in case the road is obstructed or partially obstructed by one or more fallen trees. +# * - 10 `rockfalls` - in case the road is obstructed or partially obstructed due to fallen rocks. +# * - 11 `sewerOverflow` - in case the road is obstructed or partially obstructed by overflows from one or more sewers. +# * - 12 `stormDamage` - in case the road is obstructed or partially obstructed by debris caused by strong winds. +# * - 13 `subsidence` - in case the road surface has sunken or collapsed in places. +# * - 14 `burstPipe` - in case the road surface has sunken or collapsed in places due to burst pipes. +# * - 15 `burstWaterMain` - in case the road is obstructed due to local flooding and/or subsidence. +# * - 16 `fallenPowerCables` - in case the road is obstructed or partly obstructed by one or more fallen power cables. +# * - 17 `snowDrifts` - in case the road is obstructed or partially obstructed by snow drifting in progress or patches of deep snow due to earlier drifting. +# * - 15-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: Created in V2.2.1 +# */ # ImpassabilitySubCauseCode ::= INTEGER { # unavailable (0), # flooding (1), @@ -47,33 +73,6 @@ # snowDrifts (17) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the value of the sub cause codes of the @ref CauseCode `impassability` -# * -# * The value shall be set to: -# * - 0 `unavailable` - in case further detailed information about the unmanaged road blockage is unavailable, -# * - 1 `flooding ` - in case the road is affected by flooding, -# * - 2 `dangerOfAvalanches` - in case the road is at risk of being affected or blocked by avalanches, -# * - 3 `blastingOfAvalanches` - in case there is an active blasting of avalanches on or near the road, -# * - 4 `landslips` - in case the road is affected by landslips, -# * - 5 `chemicalSpillage` - in case the road is affected by chemical spillage, -# * - 6 `winterClosure` - in case the road is impassable due to a winter closure. -# * - 7 `sinkhole` - in case the road is impassable due to large holes in the road surface. -# * - 8 `earthquakeDamage` - in case the road is obstructed or partially obstructed because of damage caused by an earthquake. -# * - 9 `fallenTrees` - in case the road is obstructed or partially obstructed by one or more fallen trees. -# * - 10 `rockfalls` - in case the road is obstructed or partially obstructed due to fallen rocks. -# * - 11 `sewerOverflow` - in case the road is obstructed or partially obstructed by overflows from one or more sewers. -# * - 12 `stormDamage` - in case the road is obstructed or partially obstructed by debris caused by strong winds. -# * - 13 `subsidence` - in case the road surface has sunken or collapsed in places. -# * - 14 `burstPipe` - in case the road surface has sunken or collapsed in places due to burst pipes. -# * - 15 `burstWaterMain` - in case the road is obstructed due to local flooding and/or subsidence. -# * - 16 `fallenPowerCables` - in case the road is obstructed or partly obstructed by one or more fallen power cables. -# * - 17 `snowDrifts` - in case the road is obstructed or partially obstructed by snow drifting in progress or patches of deep snow due to earlier drifting. -# * - 15-255 - are reserved for future usage. -# * -# * @category: Traffic information -# * @revision: Created in V2.2.1 -# uint8 value uint8 MIN = 0 @@ -96,3 +95,4 @@ uint8 BURST_PIPE = 14 uint8 BURST_WATER_MAIN = 15 uint8 FALLEN_POWER_CABLES = 16 uint8 SNOW_DRIFTS = 17 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ItsPduHeader.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ItsPduHeader.msg index 207a10e1e..d0fe456a1 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ItsPduHeader.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ItsPduHeader.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,27 +25,27 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents a common message header for application and facilities layer messages. +# * It is included at the beginning of an ITS message as the message header. +# * +# * It shall include the following components: +# * +# * @field protocolVersion: version of the ITS message. +# * +# * @field messageId: type of the ITS message. +# * +# * @field stationId: the identifier of the ITS-S that generated the ITS message. +# * +# * @category: Communication information +# * @revision: update in V2.1.1: messageID and stationID changed to messageId and stationId; messageId is of type MessageId. +# */ # ItsPduHeader ::= SEQUENCE { # protocolVersion OrdinalNumber1B, # messageId MessageId, # stationId StationId # } # ------------------------------------------------------------------------------ -# * -# * This DF represents a common message header for application and facilities layer messages. -# * It is included at the beginning of an ITS message as the message header. -# * -# * It shall include the following components: -# * -# * @field protocolVersion: version of the ITS message. -# * -# * @field messageId: type of the ITS message. -# * -# * @field stationId: the identifier of the ITS-S that generated the ITS message. -# * -# * @category: Communication information -# * @revision: update in V2.1.1: messageID and stationID changed to messageId and stationId; messageId is of type MessageId. -# OrdinalNumber1B protocol_version diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LanePosition.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LanePosition.msg index 86ae5c0b3..ca2c728cd 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LanePosition.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LanePosition.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,42 +25,42 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates a transversal position on the carriageway at a specific longitudinal position, in resolution of lanes of the carriageway. +# * +# * For right-hand traffic roads, the value shall be set to: +# * - `-1` if the position is off, i.e. besides the road, +# * - `0` if the position is on the inner hard shoulder, i.e. the hard should adjacent to the leftmost lane, +# * - `n` (`n > 0` and `n < 14`), if the position is on the n-th driving lane counted from the leftmost lane to the rightmost lane of a specific traffic direction, +# * - `14` if the position is on the outer hard shoulder, i.e. the hard should adjacent to rightmost lane (if present). +# * +# * For left-hand traffic roads, the value shall be set to: +# * - `-1` if the position is off, i.e. besides the road, +# * - `0` if the position is on the inner hard shoulder, i.e. the hard should adjacent to the rightmost lane, +# * - `n` (`n > 0` and `n < 14`), if the position is on the n-th driving lane counted from the rightmost lane to the leftmost lane of a specific traffic direction, +# * - `14` if the position is on the outer hard shoulder, i.e. the hard should adjacent to leftmost lane (if present). +# * +# * @note: in practice this means that the position is counted from "inside" to "outside" no matter which traffic practice is used. +# * +# * If the carriageway allows only traffic in one direction (e.g. in case of dual or multiple carriageway roads), the position is counted from the physical border of the carriageway. +# * If the carriageway allows traffic in both directions and there is no physical delimitation between traffic directions (e.g. on a single carrriageway road), +# * the position is counted from the legal (i.e. optical) separation between traffic directions (horizontal marking). +# * +# * If not indicated otherwise (by lane markings or traffic signs), the legal separation on carriageways allowing traffic on both directions is identified as follows: +# * - If the total number of lanes N is even, the lanes are divided evenly between the traffic directions starting from the outside of the carriageway on both sides and the +# * imaginary separation between traffic directions is on the border between the even number of lanes N/2. +# * - If the total number of lanes N is odd, the lanes are divided evenly between traffic direction starting from the outside of the carriageway on both sides. +# * The remaining middle lane is assigned to both traffic directions as innermost lane. +# * +# * @category: Road topology information +# * @revision: Description of the legal separation of carriageways added in V2.2.1 +# */ # LanePosition ::= INTEGER { # offTheRoad (-1), # innerHardShoulder (0), # outerHardShoulder (14) # } (-1..14) # ------------------------------------------------------------------------------ -# * -# * This DE indicates a transversal position on the carriageway at a specific longitudinal position, in resolution of lanes of the carriageway. -# * -# * For right-hand traffic roads, the value shall be set to: -# * - `-1` if the position is off, i.e. besides the road, -# * - `0` if the position is on the inner hard shoulder, i.e. the hard should adjacent to the leftmost lane, -# * - `n` (`n > 0` and `n < 14`), if the position is on the n-th driving lane counted from the leftmost lane to the rightmost lane of a specific traffic direction, -# * - `14` if the position is on the outer hard shoulder, i.e. the hard should adjacent to rightmost lane (if present). -# * -# * For left-hand traffic roads, the value shall be set to: -# * - `-1` if the position is off, i.e. besides the road, -# * - `0` if the position is on the inner hard shoulder, i.e. the hard should adjacent to the rightmost lane, -# * - `n` (`n > 0` and `n < 14`), if the position is on the n-th driving lane counted from the rightmost lane to the leftmost lane of a specific traffic direction, -# * - `14` if the position is on the outer hard shoulder, i.e. the hard should adjacent to leftmost lane (if present). -# * -# * @note: in practice this means that the position is counted from "inside" to "outside" no matter which traffic practice is used. -# * -# * If the carriageway allows only traffic in one direction (e.g. in case of dual or multiple carriageway roads), the position is counted from the physical border of the carriageway. -# * If the carriageway allows traffic in both directions and there is no physical delimitation between traffic directions (e.g. on a single carrriageway road), -# * the position is counted from the legal (i.e. optical) separation between traffic directions (horizontal marking). -# * -# * If not indicated otherwise (by lane markings or traffic signs), the legal separation on carriageways allowing traffic on both directions is identified as follows: -# * - If the total number of lanes N is even, the lanes are divided evenly between the traffic directions starting from the outside of the carriageway on both sides and the -# * imaginary separation between traffic directions is on the border between the even number of lanes N/2. -# * - If the total number of lanes N is odd, the lanes are divided evenly between traffic direction starting from the outside of the carriageway on both sides. -# * The remaining middle lane is assigned to both traffic directions as innermost lane. -# * -# * @category: Road topology information -# * @revision: Description of the legal separation of carriageways added in V2.2.1 -# int8 value int8 MIN = -1 @@ -69,3 +68,4 @@ int8 MAX = 14 int8 OFF_THE_ROAD = -1 int8 INNER_HARD_SHOULDER = 0 int8 OUTER_HARD_SHOULDER = 14 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Latitude.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Latitude.msg index ed06fe8bc..e6b206b21 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Latitude.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Latitude.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,27 +25,28 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the absolute geographical latitude in a WGS84 coordinate system, providing a range of 90 degrees in north or +# * in south hemisphere. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `n` (`n >= -900 000 000` and `n < 0`) x 10^-7 degree, i.e. negative values for latitudes south of the Equator, +# * - `0` is used for the latitude of the equator, +# * - `n` (`n > 0` and `n < 900 000 001`) x 10^-7 degree, i.e. positive values for latitudes north of the Equator, +# * - `900 000 001` when the information is unavailable. +# * +# * @unit: 10^-7 degree +# * @category: GeoReference information +# * @revision: Editorial update in V2.1.1 +# */ # Latitude ::= INTEGER { # unavailable(900000001) # } (-900000000..900000001) # ------------------------------------------------------------------------------ -# * -# * This DE represents the absolute geographical latitude in a WGS84 coordinate system, providing a range of 90 degrees in north or -# * in south hemisphere. -# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. -# * -# * The value shall be set to: -# * - `n` (`n >= -900 000 000` and `n < 0`) x 10^-7 degree, i.e. negative values for latitudes south of the Equator, -# * - `0` is used for the latitude of the equator, -# * - `n` (`n > 0` and `n < 900 000 001`) x 10^-7 degree, i.e. positive values for latitudes north of the Equator, -# * - `900 000 001` when the information is unavailable. -# * -# * @unit: 10^-7 degree -# * @category: GeoReference information -# * @revision: Editorial update in V2.1.1 -# int32 value int32 MIN = -900000000 int32 MAX = 900000001 int32 UNAVAILABLE = 900000001 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LightBarSirenInUse.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LightBarSirenInUse.msg index 715179897..c85076325 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LightBarSirenInUse.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LightBarSirenInUse.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,27 +25,28 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the status of light bar and any sort of audible alarm system besides the horn. +# * This includes various common sirens as well as backup up beepers and other slow speed manoeuvring alerts. +# * +# * The corresponding bit shall be set to 1 under the following conditions: +# * - 0 - `lightBarActivated` - when the light bar is activated, +# * - 1 - `sirenActivated` - when the siren is activated. +# * +# * Otherwise, it shall be set to 0. +# * +# * @category Vehicle information +# * @revision: Editorial update in V2.1.1 +# */ # LightBarSirenInUse ::= BIT STRING { # lightBarActivated (0), # sirenActivated (1) # } (SIZE(2)) # ------------------------------------------------------------------------------ -# * -# * This DE indicates the status of light bar and any sort of audible alarm system besides the horn. -# * This includes various common sirens as well as backup up beepers and other slow speed manoeuvring alerts. -# * -# * The corresponding bit shall be set to 1 under the following conditions: -# * - 0 - `lightBarActivated` - when the light bar is activated, -# * - 1 - `sirenActivated` - when the siren is activated. -# * -# * Otherwise, it shall be set to 0. -# * -# * @category Vehicle information -# * @revision: Editorial update in V2.1.1 -# uint8[] value uint8 bits_unused uint8 SIZE_BITS = 2 uint8 BIT_INDEX_LIGHT_BAR_ACTIVATED = 0 uint8 BIT_INDEX_SIREN_ACTIVATED = 1 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Longitude.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Longitude.msg index 260a21905..544381342 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Longitude.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Longitude.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,31 +25,32 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the absolute geographical longitude in a WGS84 coordinate system, providing a range of 180 degrees +# * to the east or to the west of the prime meridian. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `n` (`n > -1 800 000 000` and `n < 0`) x 10^-7 degree, i.e. negative values for longitudes to the west, +# * - `0` to indicate the prime meridian, +# * - `n` (`n > 0` and `n < 1 800 000 001`) x 10^-7 degree, i.e. positive values for longitudes to the east, +# * - `1 800 000 001` when the information is unavailable. +# * +# * The value -1 800 000 000 shall not be used. +# * +# * @unit: 10^-7 degree +# * @category: GeoReference information +# * @revision: Description revised in V2.1.1 +# */ # Longitude ::= INTEGER { # valueNotUsed (-1800000000), # unavailable (1800000001) # } (-1800000000..1800000001) # ------------------------------------------------------------------------------ -# * -# * This DE represents the absolute geographical longitude in a WGS84 coordinate system, providing a range of 180 degrees -# * to the east or to the west of the prime meridian. -# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. -# * -# * The value shall be set to: -# * - `n` (`n > -1 800 000 000` and `n < 0`) x 10^-7 degree, i.e. negative values for longitudes to the west, -# * - `0` to indicate the prime meridian, -# * - `n` (`n > 0` and `n < 1 800 000 001`) x 10^-7 degree, i.e. positive values for longitudes to the east, -# * - `1 800 000 001` when the information is unavailable. -# * -# * The value -1 800 000 000 shall not be used. -# * -# * @unit: 10^-7 degree -# * @category: GeoReference information -# * @revision: Description revised in V2.1.1 -# int32 value int32 MIN = -1800000000 int32 MAX = 1800000001 int32 VALUE_NOT_USED = -1800000000 int32 UNAVAILABLE = 1800000001 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LowFrequencyContainer.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LowFrequencyContainer.msg index 7b1f23721..1be2ad05b 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LowFrequencyContainer.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/LowFrequencyContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,16 +25,16 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This type represents the low frequency container. +# * +# * It shall include the following components: +# * +# * The low frequency container of the CAM when the originating ITS-S is of the type vehicle ITS-S. It shall be present as defined in clause 6.1.2. +# */ # LowFrequencyContainer ::= CHOICE { # basicVehicleContainerLowFrequency BasicVehicleContainerLowFrequency (WITH COMPONENTS {..., pathHistory (SIZE (0..23))}), # ------------------------------------------------------------------------------ -# * -#* This type represents the low frequency container. -#* -#* It shall include the following components: -#* -#* The low frequency container of the CAM when the originating ITS-S is of the type vehicle ITS-S. It shall be present as defined in clause 6.1.2. -# uint8 choice diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MessageId.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MessageId.msg index 68896392f..645d12052 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MessageId.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/MessageId.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,36 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the type of facility layer message. +# * +# * The value shall be set to: +# * - 1 - `denm` - for Decentralized Environmental Notification Message (DENM) as specified in ETSI EN 302 637-3 [2], +# * - 2 - `cam` - for Cooperative Awareness Message (CAM) as specified in ETSI EN 302 637-2 [1], +# * - 3 - `poim` - for Point of Interest message as specified in ETSI TS 103 916 [9], +# * - 4 - `spatem` - for Signal Phase And Timing Extended Message (SPATEM) as specified in ETSI TS 103 301 [15], +# * - 5 - `mapem` - for MAP Extended Message (MAPEM) as specified in ETSI TS 103 301 [15], +# * - 6 - `ivim` - for in Vehicle Information Message (IVIM) as specified in ETSI TS 103 301 [15], +# * - 7 - `rfu1` - reserved for future usage, +# * - 8 - `rfu2` - reserved for future usage, +# * - 9 - `srem` - for Signal Request Extended Message as specified in ETSI TS 103 301 [15], +# * - 10 - `ssem` - for Signal request Status Extended Message as specified in ETSI TS 103 301 [15], +# * - 11 - `evcsn` - for Electrical Vehicle Charging Spot Notification message as specified in ETSI TS 101 556-1 [9], +# * - 12 - `saem` - for Services Announcement Extended Message as specified in ETSI EN 302 890-1 [17], +# * - 13 - `rtcmem` - for Radio Technical Commission for Maritime Services Extended Message (RTCMEM) as specified in ETSI TS 103 301 [15], +# * - 14 - `cpm` - reserved for Collective Perception Message (CPM), +# * - 15 - `imzm` - for Interference Management Zone Message (IMZM) as specified in ETSI TS 103 724 [13], +# * - 16 - `vam` - for Vulnerable Road User Awareness Message as specified in ETSI TS 130 300-3 [12], +# * - 17 - `dsm` - reserved for Diagnosis, logging and Status Message, +# * - 18 - `pcim` - reserved for Parking Control Infrastructure Message, +# * - 19 - `pcvm` - reserved for Parking Control Vehicle Message, +# * - 20 - `mcm` - reserved for Manoeuvre Coordination Message, +# * - 21 - `pam` - reserved for Parking Availability Message, +# * - 22-255 - reserved for future usage. +# * +# * @category: Communication information +# * @revision: Created in V2.1.1 from @ref ItsPduHeader. Value 3 re-assigned to poim and value 7 and 8 reserved in V2.2.1 +# */ # MessageId::= INTEGER { # denm (1), # cam (2), @@ -50,36 +79,6 @@ # pam (21) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the type of facility layer message. -# * -# * The value shall be set to: -# * - 1 - `denm` - for Decentralized Environmental Notification Message (DENM) as specified in ETSI EN 302 637-3 [2], -# * - 2 - `cam` - for Cooperative Awareness Message (CAM) as specified in ETSI EN 302 637-2 [1], -# * - 3 - `poim` - for Point of Interest message as specified in ETSI TS 103 916 [9], -# * - 4 - `spatem` - for Signal Phase And Timing Extended Message (SPATEM) as specified in ETSI TS 103 301 [15], -# * - 5 - `mapem` - for MAP Extended Message (MAPEM) as specified in ETSI TS 103 301 [15], -# * - 6 - `ivim` - for in Vehicle Information Message (IVIM) as specified in ETSI TS 103 301 [15], -# * - 7 - `rfu1` - reserved for future usage, -# * - 8 - `rfu2` - reserved for future usage, -# * - 9 - `srem` - for Signal Request Extended Message as specified in ETSI TS 103 301 [15], -# * - 10 - `ssem` - for Signal request Status Extended Message as specified in ETSI TS 103 301 [15], -# * - 11 - `evcsn` - for Electrical Vehicle Charging Spot Notification message as specified in ETSI TS 101 556-1 [9], -# * - 12 - `saem` - for Services Announcement Extended Message as specified in ETSI EN 302 890-1 [17], -# * - 13 - `rtcmem` - for Radio Technical Commission for Maritime Services Extended Message (RTCMEM) as specified in ETSI TS 103 301 [15], -# * - 14 - `cpm` - reserved for Collective Perception Message (CPM), -# * - 15 - `imzm` - for Interference Management Zone Message (IMZM) as specified in ETSI TS 103 724 [13], -# * - 16 - `vam` - for Vulnerable Road User Awareness Message as specified in ETSI TS 130 300-3 [12], -# * - 17 - `dsm` - reserved for Diagnosis, logging and Status Message, -# * - 18 - `pcim` - reserved for Parking Control Infrastructure Message, -# * - 19 - `pcvm` - reserved for Parking Control Vehicle Message, -# * - 20 - `mcm` - reserved for Manoeuvre Coordination Message, -# * - 21 - `pam` - reserved for Parking Availability Message, -# * - 22-255 - reserved for future usage. -# * -# * @category: Communication information -# * @revision: Created in V2.1.1 from @ref ItsPduHeader. Value 3 re-assigned to poim and value 7 and 8 reserved in V2.2.1 -# uint8 value uint8 MIN = 0 @@ -105,3 +104,4 @@ uint8 PCIM = 18 uint8 PCVM = 19 uint8 MCM = 20 uint8 PAM = 21 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/OrdinalNumber1B.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/OrdinalNumber1B.msg index aa29b0de9..fee1bbb6a 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/OrdinalNumber1B.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/OrdinalNumber1B.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,14 +25,14 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * The DE represents an ordinal number that indicates the position of an element in a set. +# * +# * @category: Basic information +# * @revision: Created in V2.1.1 +# */ # OrdinalNumber1B ::= INTEGER(0..255) # ------------------------------------------------------------------------------ -# * -# * The DE represents an ordinal number that indicates the position of an element in a set. -# * -# * @category: Basic information -# * @revision: Created in V2.1.1 -# uint8 value uint8 MIN = 0 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Path.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Path.msg index 23f0c58a5..d354f6c8b 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Path.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Path.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,19 +25,20 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents a path with a set of path points. +# * It shall contain up to `40` @ref PathPoint. +# * +# * The first PathPoint presents an offset delta position with regards to an external reference position. +# * Each other PathPoint presents an offset delta position and optionally an offset travel time with regards to the previous PathPoint. +# * +# * @category: GeoReference information, Vehicle information +# * @revision: created in V2.1.1 based on PathHistory +# */ # Path::= SEQUENCE (SIZE(0..40)) OF PathPoint # ------------------------------------------------------------------------------ -# * -# * This DF represents a path with a set of path points. -# * It shall contain up to `40` @ref PathPoint. -# * -# * The first PathPoint presents an offset delta position with regards to an external reference position. -# * Each other PathPoint presents an offset delta position and optionally an offset travel time with regards to the previous PathPoint. -# * -# * @category: GeoReference information, Vehicle information -# * @revision: created in V2.1.1 based on PathHistory -# PathPoint[] array uint8 MIN_SIZE = 0 uint8 MAX_SIZE = 40 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathDeltaTime.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathDeltaTime.msg index dc0c60bb1..b3f7ab349 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathDeltaTime.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathDeltaTime.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,17 +25,17 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the recorded or estimated travel time between a position and a predefined reference position. +# * +# * @unit 0,01 second +# * @category: Basic information +# * @revision: V1.3.1 +# */ # PathDeltaTime ::= INTEGER (1..65535, ...) # ------------------------------------------------------------------------------ -# * -# * This DE represents the recorded or estimated travel time between a position and a predefined reference position. -# * -# * @unit 0,01 second -# * @category: Basic information -# * @revision: V1.3.1 -# -int64 value -int64 MIN = 1 -int64 MAX = 65535 +uint16 value +uint16 MIN = 1 +uint16 MAX = 65535 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathPoint.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathPoint.msg index 194260b46..cefaf063e 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathPoint.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PathPoint.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,23 +25,23 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF defines an offset waypoint position within a path. +# * +# * It shall include the following components: +# * +# * @field pathPosition: The waypoint position defined as an offset position with regards to a pre-defined reference position. +# * +# * @field pathDeltaTime: The optional travel time separated from a waypoint to the predefined reference position. +# * +# * @category GeoReference information +# * @revision: semantics updated in V2.1.1 +# */ # PathPoint ::= SEQUENCE { # pathPosition DeltaReferencePosition, # pathDeltaTime PathDeltaTime OPTIONAL # } # ------------------------------------------------------------------------------ -# * -# * This DF defines an offset waypoint position within a path. -# * -# * It shall include the following components: -# * -# * @field pathPosition: The waypoint position defined as an offset position with regards to a pre-defined reference position. -# * -# * @field pathDeltaTime: The optional travel time separated from a waypoint to the predefined reference position. -# * -# * @category GeoReference information -# * @revision: semantics updated in V2.1.1 -# DeltaReferencePosition path_position diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PerformanceClass.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PerformanceClass.msg index f261d7031..002b4f2bd 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PerformanceClass.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PerformanceClass.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,25 +25,25 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE denotes the ability of an ITS-S to provide up-to-date information. +# * A performance class value is used to describe age of data. The exact values are out of scope of the present document. +# * +# * The value shall be set to: +# * - `0` if the performance class is unknown, +# * - `1` for performance class A as defined in ETSI TS 101 539-1 [5], +# * - `2` for performance class B as defined in ETSI TS 101 539-1 [5], +# * - 3-7 reserved for future use. +# * +# * @category: Vehicle information +# * @revision: Editorial update in V2.1.1 +# */ # PerformanceClass ::= INTEGER { # unavailable (0), # performanceClassA (1), # performanceClassB (2) # } (0..7) # ------------------------------------------------------------------------------ -# * -# * This DE denotes the ability of an ITS-S to provide up-to-date information. -# * A performance class value is used to describe age of data. The exact values are out of scope of the present document. -# * -# * The value shall be set to: -# * - `0` if the performance class is unknown, -# * - `1` for performance class A as defined in ETSI TS 101 539-1 [5], -# * - `2` for performance class B as defined in ETSI TS 101 539-1 [5], -# * - 3-7 reserved for future use. -# * -# * @category: Vehicle information -# * @revision: Editorial update in V2.1.1 -# uint8 value uint8 MIN = 0 @@ -52,3 +51,4 @@ uint8 MAX = 7 uint8 UNAVAILABLE = 0 uint8 PERFORMANCE_CLASS_A = 1 uint8 PERFORMANCE_CLASS_B = 2 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PositionConfidenceEllipse.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PositionConfidenceEllipse.msg index 41ebe83f4..804e0667a 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PositionConfidenceEllipse.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PositionConfidenceEllipse.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,32 +25,32 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF indicates the horizontal position confidence ellipse which represents the estimated accuracy with a +# * confidence level of 95 %. The centre of the ellipse shape corresponds to the reference +# * position point for which the position accuracy is evaluated. +# * +# * It shall include the following components: +# * +# * @field semiMajorAxisLength: half of length of the major axis, i.e. distance between the centre point +# * and major axis point of the position accuracy ellipse. +# * +# * @field semiMinorAxisLength: half of length of the minor axis, i.e. distance between the centre point +# * and minor axis point of the position accuracy ellipse. +# * +# * @field semiMajorAxisOrientation: orientation direction of the ellipse major axis of the position accuracy +# * ellipse with regards to the WGS84 north. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * +# * @category GeoReference information +# * @revision: created in V2.1.1 based on @ref PosConfidenceEllipse +# */ # PositionConfidenceEllipse ::= SEQUENCE { # semiMajorAxisLength SemiAxisLength, # semiMinorAxisLength SemiAxisLength, # semiMajorAxisOrientation Wgs84AngleValue # } # ------------------------------------------------------------------------------ -# * -# * This DF indicates the horizontal position confidence ellipse which represents the estimated accuracy with a -# * confidence level of 95 %. The centre of the ellipse shape corresponds to the reference -# * position point for which the position accuracy is evaluated. -# * -# * It shall include the following components: -# * -# * @field semiMajorAxisLength: half of length of the major axis, i.e. distance between the centre point -# * and major axis point of the position accuracy ellipse. -# * -# * @field semiMinorAxisLength: half of length of the minor axis, i.e. distance between the centre point -# * and minor axis point of the position accuracy ellipse. -# * -# * @field semiMajorAxisOrientation: orientation direction of the ellipse major axis of the position accuracy -# * ellipse with regards to the WGS84 north. -# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. -# * -# * @category GeoReference information -# * @revision: created in V2.1.1 based on @ref PosConfidenceEllipse -# SemiAxisLength semi_major_axis_length diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PostCrashSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PostCrashSubCauseCode.msg index 47aad473c..7d28b8f24 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PostCrashSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PostCrashSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,20 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the value of the sub cause codes of the @ref CauseCode `postCrash` . +# * +# * The value shall be set to: +# * - 0 `unavailable` - in case further detailed information on post crash event is unavailable, +# * - 1 `accidentWithoutECallTriggered` - in case no eCall has been triggered for an accident, +# * - 2 `accidentWithECallManuallyTriggered` - in case eCall has been manually triggered and transmitted to eCall back end, +# * - 3 `accidentWithECallAutomaticallyTriggered` - in case eCall has been automatically triggered and transmitted to eCall back end, +# * - 4 `accidentWithECallTriggeredWithoutAccessToCellularNetwork` - in case eCall has been triggered but cellular network is not accessible from triggering vehicle. +# * - 5-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# */ # PostCrashSubCauseCode ::= INTEGER { # unavailable (0), # accidentWithoutECallTriggered (1), @@ -34,20 +47,6 @@ # accidentWithECallTriggeredWithoutAccessToCellularNetwork (4) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the value of the sub cause codes of the @ref CauseCode `postCrash` . -# * -# * The value shall be set to: -# * - 0 `unavailable` - in case further detailed information on post crash event is unavailable, -# * - 1 `accidentWithoutECallTriggered` - in case no eCall has been triggered for an accident, -# * - 2 `accidentWithECallManuallyTriggered` - in case eCall has been manually triggered and transmitted to eCall back end, -# * - 3 `accidentWithECallAutomaticallyTriggered` - in case eCall has been automatically triggered and transmitted to eCall back end, -# * - 4 `accidentWithECallTriggeredWithoutAccessToCellularNetwork` - in case eCall has been triggered but cellular network is not accessible from triggering vehicle. -# * - 5-255 - are reserved for future usage. -# * -# * @category: Traffic information -# * @revision: V1.3.1 -# uint8 value uint8 MIN = 0 @@ -57,3 +56,4 @@ uint8 ACCIDENT_WITHOUT_E_CALL_TRIGGERED = 1 uint8 ACCIDENT_WITH_E_CALL_MANUALLY_TRIGGERED = 2 uint8 ACCIDENT_WITH_E_CALL_AUTOMATICALLY_TRIGGERED = 3 uint8 ACCIDENT_WITH_E_CALL_TRIGGERED_WITHOUT_ACCESS_TO_CELLULAR_NETWORK = 4 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedCommunicationZone.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedCommunicationZone.msg index d6fc16a0f..6df43ccd3 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedCommunicationZone.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedCommunicationZone.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,28 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF describes a zone of protection inside which the ITS communication should be restricted. +# * +# * It shall include the following components: +# * +# * @field protectedZoneType: type of the protected zone. +# * +# * @field expiryTime: optional time at which the validity of the protected communication zone will expire. +# * +# * @field protectedZoneLatitude: latitude of the centre point of the protected communication zone. +# * +# * @field protectedZoneLongitude: longitude of the centre point of the protected communication zone. +# * +# * @field protectedZoneRadius: optional radius of the protected communication zone in metres. +# * +# * @field protectedZoneId: the optional ID of the protected communication zone. +# * +# * @note: A protected communication zone may be defined around a CEN DSRC road side equipment. +# * +# * @category: Infrastructure information, Communication information +# * @revision: revised in V2.1.1 (changed protectedZoneID to protectedZoneId) +# */ # ProtectedCommunicationZone ::= SEQUENCE { # protectedZoneType ProtectedZoneType, # expiryTime TimestampIts OPTIONAL, @@ -36,28 +57,6 @@ # ... # } # ------------------------------------------------------------------------------ -# * -# * This DF describes a zone of protection inside which the ITS communication should be restricted. -# * -# * It shall include the following components: -# * -# * @field protectedZoneType: type of the protected zone. -# * -# * @field expiryTime: optional time at which the validity of the protected communication zone will expire. -# * -# * @field protectedZoneLatitude: latitude of the centre point of the protected communication zone. -# * -# * @field protectedZoneLongitude: longitude of the centre point of the protected communication zone. -# * -# * @field protectedZoneRadius: optional radius of the protected communication zone in metres. -# * -# * @field protectedZoneId: the optional ID of the protected communication zone. -# * -# * @note: A protected communication zone may be defined around a CEN DSRC road side equipment. -# * -# * @category: Infrastructure information, Communication information -# * @revision: revised in V2.1.1 (changed protectedZoneID to protectedZoneId) -# ProtectedZoneType protected_zone_type diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedCommunicationZonesRSU.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedCommunicationZonesRSU.msg index fff87e848..6985937c5 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedCommunicationZonesRSU.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedCommunicationZonesRSU.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,17 +25,18 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF shall contain a list of @ref ProtectedCommunicationZone provided by a road side ITS-S (Road Side Unit RSU). +# * +# * It may provide up to 16 protected communication zones information. +# * +# * @category: Infrastructure information, Communication information +# * @revision: V1.3.1 +# */ # ProtectedCommunicationZonesRSU ::= SEQUENCE (SIZE(1..16)) OF ProtectedCommunicationZone # ------------------------------------------------------------------------------ -# * -# * This DF shall contain a list of @ref ProtectedCommunicationZone provided by a road side ITS-S (Road Side Unit RSU). -# * -# * It may provide up to 16 protected communication zones information. -# * -# * @category: Infrastructure information, Communication information -# * @revision: V1.3.1 -# ProtectedCommunicationZone[] array uint8 MIN_SIZE = 1 uint8 MAX_SIZE = 16 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedZoneId.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedZoneId.msg index c31c6b071..379e8475a 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedZoneId.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedZoneId.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,15 +25,15 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the indentifier of a protected communication zone. +# * +# * +# * @category: Infrastructure information, Communication information +# * @revision: Revision in V2.1.1 (changed name from ProtectedZoneID to ProtectedZoneId) +# */ # ProtectedZoneId ::= INTEGER (0.. 134217727) # ------------------------------------------------------------------------------ -# * -# * This DE represents the indentifier of a protected communication zone. -# * -# * -# * @category: Infrastructure information, Communication information -# * @revision: Revision in V2.1.1 (changed name from ProtectedZoneID to ProtectedZoneId) -# uint32 value uint32 MIN = 0 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedZoneRadius.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedZoneRadius.msg index 1ac4ed9af..3dd59d2a0 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedZoneRadius.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedZoneRadius.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,18 +25,18 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the radius of a protected communication zone. +# * +# * +# * @unit: metre +# * @category: Infrastructure information, Communication information +# * @revision: V1.3.1 +# */ # ProtectedZoneRadius ::= INTEGER (1..255,...) # ------------------------------------------------------------------------------ -# * -# * This DE represents the radius of a protected communication zone. -# * -# * -# * @unit: metre -# * @category: Infrastructure information, Communication information -# * @revision: V1.3.1 -# -int64 value -int64 MIN = 1 -int64 MAX = 255 +uint8 value +uint8 MIN = 1 +uint8 MAX = 255 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedZoneType.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedZoneType.msg index 3340c3f04..e7abaa602 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedZoneType.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ProtectedZoneType.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,25 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the type of a protected communication zone, so that an ITS-S is aware of the actions to do +# * while passing by such zone (e.g. reduce the transmit power in case of a DSRC tolling station). +# * +# * The protected zone type is defined in ETSI TS 102 792 [14]. +# * +# * +# * @category: Communication information +# * @revision: V1.3.1 +# */ # ProtectedZoneType::= ENUMERATED { # permanentCenDsrcTolling (0), # ..., # temporaryCenDsrcTolling (1) # } # ------------------------------------------------------------------------------ -# * -# * This DE indicates the type of a protected communication zone, so that an ITS-S is aware of the actions to do -# * while passing by such zone (e.g. reduce the transmit power in case of a DSRC tolling station). -# * -# * The protected zone type is defined in ETSI TS 102 792 [14]. -# * -# * -# * @category: Communication information -# * @revision: V1.3.1 -# uint8 value uint8 PERMANENT_CEN_DSRC_TOLLING = 0 -# .extended uint8 TEMPORARY_CEN_DSRC_TOLLING = 1 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PtActivation.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PtActivation.msg index 98c57ea06..42dd54ac8 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PtActivation.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PtActivation.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,41 +25,41 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents activation data for real-time systems designed for operations control, traffic light priorities, track switches, barriers, etc. +# * using a range of activation devices equipped in public transport vehicles. +# * +# * The activation of the corresponding equipment is triggered by the approach or passage of a public transport +# * vehicle at a certain point (e.g. a beacon). +# * +# * @field ptActivationType: type of activation. +# * +# * @field ptActicationData: data of activation. +# * +# * Today there are different payload variants defined for public transport activation-data. The R09.x is one of +# * the industry standard used by public transport vehicles (e.g. buses, trams) in Europe (e.g. Germany Austria) +# * for controlling traffic lights, barriers, bollards, etc. This DF shall include information like route, course, +# * destination, priority, etc. +# * +# * The R09.x content is defined in VDV recommendation 420 [7]. It includes following information: +# * - Priority Request Information (pre-request, request, ready to start) +# * - End of Prioritization procedure +# * - Priority request direction +# * - Public Transport line number +# * - Priority of public transport +# * - Route line identifier of the public transport +# * - Route number identification +# * - Destination of public transport vehicle +# * +# * Other countries may use different message sets defined by the local administration. +# * @category: Vehicle information +# * @revision: V1.3.1 +# */ # PtActivation ::= SEQUENCE { # ptActivationType PtActivationType, # ptActivationData PtActivationData # } # ------------------------------------------------------------------------------ -# * -# * This DF represents activation data for real-time systems designed for operations control, traffic light priorities, track switches, barriers, etc. -# * using a range of activation devices equipped in public transport vehicles. -# * -# * The activation of the corresponding equipment is triggered by the approach or passage of a public transport -# * vehicle at a certain point (e.g. a beacon). -# * -# * @field ptActivationType: type of activation. -# * -# * @field ptActicationData: data of activation. -# * -# * Today there are different payload variants defined for public transport activation-data. The R09.x is one of -# * the industry standard used by public transport vehicles (e.g. buses, trams) in Europe (e.g. Germany Austria) -# * for controlling traffic lights, barriers, bollards, etc. This DF shall include information like route, course, -# * destination, priority, etc. -# * -# * The R09.x content is defined in VDV recommendation 420 [7]. It includes following information: -# * - Priority Request Information (pre-request, request, ready to start) -# * - End of Prioritization procedure -# * - Priority request direction -# * - Public Transport line number -# * - Priority of public transport -# * - Route line identifier of the public transport -# * - Route number identification -# * - Destination of public transport vehicle -# * -# * Other countries may use different message sets defined by the local administration. -# * @category: Vehicle information -# * @revision: V1.3.1 -# PtActivationType pt_activation_type diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PtActivationData.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PtActivationData.msg index cb95734fe..dd0a23bdc 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PtActivationData.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PtActivationData.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,21 +25,22 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE is used for various tasks in the public transportation environment, especially for controlling traffic +# * signal systems to prioritize and speed up public transportation in urban area (e.g. intersection "_bottlenecks_"). +# * The traffic lights may be controlled by an approaching bus or tram automatically. This permits "_In Time_" activation +# * of the green phase, will enable the individual traffic to clear a potential traffic jam in advance. Thereby the +# * approaching bus or tram may pass an intersection with activated green light without slowing down the speed due to +# * traffic congestion. Other usage of the DE is the provision of information like the public transport line number +# * or the schedule delay of a public transport vehicle. +# * +# * @category: Vehicle information +# * @revision: V1.3.1 +# */ # PtActivationData ::= OCTET STRING (SIZE(1..20)) # ------------------------------------------------------------------------------ -# * -# * This DE is used for various tasks in the public transportation environment, especially for controlling traffic -# * signal systems to prioritize and speed up public transportation in urban area (e.g. intersection "_bottlenecks_"). -# * The traffic lights may be controlled by an approaching bus or tram automatically. This permits "_In Time_" activation -# * of the green phase, will enable the individual traffic to clear a potential traffic jam in advance. Thereby the -# * approaching bus or tram may pass an intersection with activated green light without slowing down the speed due to -# * traffic congestion. Other usage of the DE is the provision of information like the public transport line number -# * or the schedule delay of a public transport vehicle. -# * -# * @category: Vehicle information -# * @revision: V1.3.1 -# uint8[] value uint8 MIN_SIZE = 1 uint8 MAX_SIZE = 20 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PtActivationType.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PtActivationType.msg index d5177c12a..e1a7e1817 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PtActivationType.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PtActivationType.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,24 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates a certain coding type of the PtActivationData data. +# * +# * The folowing value are specified: +# * - 0 `undefinedCodingType` : undefined coding type, +# * - 1 `r09-16CodingType` : coding of PtActivationData conform to VDV recommendation 420 [7], +# * - 2 `vdv-50149CodingType` : coding of PtActivationData based on VDV recommendation 420 [7]. +# * - 3 - 255 : reserved for alternative and future use. +# * +# * @category: Vehicle information +# * @revision: V1.3.1 +# */ # PtActivationType ::= INTEGER { # undefinedCodingType (0), # r09-16CodingType (1), # vdv-50149CodingType (2) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE indicates a certain coding type of the PtActivationData data. -# * -# * The folowing value are specified: -# * - 0 `undefinedCodingType` : undefined coding type, -# * - 1 `r09-16CodingType` : coding of PtActivationData conform to VDV recommendation 420 [7], -# * - 2 `vdv-50149CodingType` : coding of PtActivationData based on VDV recommendation 420 [7]. -# * - 3 - 255 : reserved for alternative and future use. -# * -# * @category: Vehicle information -# * @revision: V1.3.1 -# uint8 value uint8 MIN = 0 @@ -51,3 +50,4 @@ uint8 MAX = 255 uint8 UNDEFINED_CODING_TYPE = 0 uint8 R09_16_CODING_TYPE = 1 uint8 VDV_50149_CODING_TYPE = 2 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PublicTransportContainer.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PublicTransportContainer.msg index bff113107..db671bfa5 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PublicTransportContainer.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/PublicTransportContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,20 +25,20 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This type contains detaild information of the Public Transport Container. +# * +# * It shall include the following components: +# * +# * @field embarkationStatus: It indicates whether the passenger embarkation is currently ongoing. +# * +# * @field ptActivation: an optional component used for controlling traffic lights, barriers, bollards, etc. +# */ # PublicTransportContainer ::= SEQUENCE { # embarkationStatus EmbarkationStatus, # ptActivation PtActivation OPTIONAL # } # ------------------------------------------------------------------------------ -# * -#* This type contains detaild information of the Public Transport Container. -#* -#* It shall include the following components: -#* -#* @field embarkationStatus: It indicates whether the passenger embarkation is currently ongoing. -#* -#* @field ptActivation: an optional component used for controlling traffic lights, barriers, bollards, etc. -# EmbarkationStatus embarkation_status diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RSUContainerHighFrequency.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RSUContainerHighFrequency.msg index 27f4fefd2..0aeaaef2a 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RSUContainerHighFrequency.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RSUContainerHighFrequency.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,21 +25,21 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This type contains detaild information of the RSU Container High Frequency. +# * +# * It shall include the following components: +# * +# * @field protectedCommunicationZonesRSU: an optional Information about position of a CEN DSRC Tolling Station operating in the 5,8 GHz frequency +# * band. If this information is provided by RSUs a receiving vehicle ITS-S is prepared to adopt mitigation techniques when being in the vicinity of +# * CEN DSRC tolling stations. +# +# */ # RSUContainerHighFrequency ::= SEQUENCE { # protectedCommunicationZonesRSU ProtectedCommunicationZonesRSU OPTIONAL, # ... # } # ------------------------------------------------------------------------------ -# * -#* This type contains detaild information of the RSU Container High Frequency. -#* -#* It shall include the following components: -#* -#* @field protectedCommunicationZonesRSU: an optional Information about position of a CEN DSRC Tolling Station operating in the 5,8 GHz frequency -#* band. If this information is provided by RSUs a receiving vehicle ITS-S is prepared to adopt mitigation techniques when being in the vicinity of -#* CEN DSRC tolling stations. -# -# ProtectedCommunicationZonesRSU protected_communication_zones_rsu bool protected_communication_zones_rsu_is_present diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RailwayLevelCrossingSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RailwayLevelCrossingSubCauseCode.msg index b4b220689..1db5f0291 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RailwayLevelCrossingSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RailwayLevelCrossingSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,21 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the value of the sub cause codes of the @ref CauseCode `railwayLevelCrossing` . +# * +# * The value shall be set to: +# * - 0 `unavailable` - in case no further detailed information on the railway level crossing status is available, +# * - 1 `doNotCrossAbnormalSituation` - in case when something wrong is detected by equation or sensors of the railway level crossing, +# including level crossing is closed for too long (e.g. more than 10 minutes long ; default value), +# * - 2 `closed` - in case the crossing is closed (barriers down), +# * - 3 `unguarded` - in case the level crossing is unguarded (i.e a Saint Andrew cross level crossing without detection of train), +# * - 4 `nominal` - in case the barriers are up and lights are off. +# * - 5-255: reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# */ # RailwayLevelCrossingSubCauseCode ::= INTEGER { # unavailable (0), # doNotCrossAbnormalSituation (1), @@ -34,21 +48,6 @@ # nominal (4) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the value of the sub cause codes of the @ref CauseCode `railwayLevelCrossing` . -# * -# * The value shall be set to: -# * - 0 `unavailable` - in case no further detailed information on the railway level crossing status is available, -# * - 1 `doNotCrossAbnormalSituation` - in case when something wrong is detected by equation or sensors of the railway level crossing, -# including level crossing is closed for too long (e.g. more than 10 minutes long ; default value), -# * - 2 `closed` - in case the crossing is closed (barriers down), -# * - 3 `unguarded` - in case the level crossing is unguarded (i.e a Saint Andrew cross level crossing without detection of train), -# * - 4 `nominal` - in case the barriers are up and lights are off. -# * - 5-255: reserved for future usage. -# * -# * @category: Traffic information -# * @revision: V1.3.1 -# uint8 value uint8 MIN = 0 @@ -58,3 +57,4 @@ uint8 DO_NOT_CROSS_ABNORMAL_SITUATION = 1 uint8 CLOSED = 2 uint8 UNGUARDED = 3 uint8 NOMINAL = 4 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ReferencePositionWithConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ReferencePositionWithConfidence.msg index bd7968edf..17963cfcb 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ReferencePositionWithConfidence.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/ReferencePositionWithConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,22 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * A position within a geographic coordinate system together with a confidence ellipse. +# * +# * It shall include the following components: +# * +# * @field latitude: the latitude of the geographical point. +# * +# * @field longitude: the longitude of the geographical point. +# * +# * @field positionConfidenceEllipse: the confidence ellipse associated to the geographical position. +# * +# * @field altitude: the altitude and an altitude accuracy of the geographical point. +# * +# * @category: GeoReference information +# * @revision: created in V2.1.1 based on @ref ReferencePosition but using @ref PositionConfidenceEllipse. +# */ # ReferencePositionWithConfidence ::= SEQUENCE { # latitude Latitude, # longitude Longitude, @@ -33,22 +48,6 @@ # altitude Altitude # } # ------------------------------------------------------------------------------ -# * -# * A position within a geographic coordinate system together with a confidence ellipse. -# * -# * It shall include the following components: -# * -# * @field latitude: the latitude of the geographical point. -# * -# * @field longitude: the longitude of the geographical point. -# * -# * @field positionConfidenceEllipse: the confidence ellipse associated to the geographical position. -# * -# * @field altitude: the altitude and an altitude accuracy of the geographical point. -# * -# * @category: GeoReference information -# * @revision: created in V2.1.1 based on @ref ReferencePosition but using @ref PositionConfidenceEllipse. -# Latitude latitude diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RescueAndRecoveryWorkInProgressSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RescueAndRecoveryWorkInProgressSubCauseCode.msg index c1d590066..1af398055 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RescueAndRecoveryWorkInProgressSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RescueAndRecoveryWorkInProgressSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the value of the sub cause codes of the @ref CauseCode `rescueAndRecoveryWorkInProgress` +# * +# * The value shall be set to: +# * - 0 `unavailable` - in case further detailed information on rescue and recovery work is unavailable, +# * - 1 `emergencyVehicles` - in case rescue and/or safeguarding work is ongoing by emergency vehicles, i.e. by vehicles that have the absolute right of way, +# * - 2 `rescueHelicopterLanding` - in case rescue helicopter is landing, +# * - 3 `policeActivityOngoing` - in case police activity is ongoing (only to be used if a more specific sub cause than (1) is needed), +# * - 4 `medicalEmergencyOngoing` - in case medical emergency recovery is ongoing (only to be used if a more specific sub cause than (1) is needed), +# * - 5 `childAbductionInProgress` - in case a child kidnapping alarm is activated and rescue work is ongoing (only to be used if a more specific sub cause than (1) is needed), +# * - 6 `prioritizedVehicle` - in case rescue and/or safeguarding work is ongoing by prioritized vehicles, i.e. by vehicles that have priority but not the absolute right of way, +# * - 7 `rescueAndRecoveryVehicle` - in case technical rescue work is ongoing by rescue and recovery vehicles. +# * - 8-255: reserved for future usage. +# +# * +# * @category: Traffic information +# * @revision: V1.3.1, named values 6 and 7 added in V2.2.1 +# */ # RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER { # unavailable (0), # emergencyVehicles (1), @@ -37,24 +54,6 @@ # rescueAndRecoveryVehicle (7) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the value of the sub cause codes of the @ref CauseCode `rescueAndRecoveryWorkInProgress` -# * -# * The value shall be set to: -# * - 0 `unavailable` - in case further detailed information on rescue and recovery work is unavailable, -# * - 1 `emergencyVehicles` - in case rescue and/or safeguarding work is ongoing by emergency vehicles, i.e. by vehicles that have the absolute right of way, -# * - 2 `rescueHelicopterLanding` - in case rescue helicopter is landing, -# * - 3 `policeActivityOngoing` - in case police activity is ongoing (only to be used if a more specific sub cause than (1) is needed), -# * - 4 `medicalEmergencyOngoing` - in case medical emergency recovery is ongoing (only to be used if a more specific sub cause than (1) is needed), -# * - 5 `childAbductionInProgress` - in case a child kidnapping alarm is activated and rescue work is ongoing (only to be used if a more specific sub cause than (1) is needed), -# * - 6 `prioritizedVehicle` - in case rescue and/or safeguarding work is ongoing by prioritized vehicles, i.e. by vehicles that have priority but not the absolute right of way, -# * - 7 `rescueAndRecoveryVehicle` - in case technical rescue work is ongoing by rescue and recovery vehicles. -# * - 8-255: reserved for future usage. -# -# * -# * @category: Traffic information -# * @revision: V1.3.1, named values 6 and 7 added in V2.2.1 -# uint8 value uint8 MIN = 0 @@ -67,3 +66,4 @@ uint8 MEDICAL_EMERGENCY_ONGOING = 4 uint8 CHILD_ABDUCTION_IN_PROGRESS = 5 uint8 PRIORITIZED_VEHICLE = 6 uint8 RESCUE_AND_RECOVERY_VEHICLE = 7 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RescueContainer.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RescueContainer.msg index 78c7edce6..748516c21 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RescueContainer.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RescueContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,17 +25,17 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This type contains detaild information of the Rescue Container. +# * +# * It shall include the following components: +# * +# * @field lightBarSirenInUse: it indicates whether light-bar or a siren is in use by the vehicle originating the CAM. +# */ # RescueContainer ::= SEQUENCE { # lightBarSirenInUse LightBarSirenInUse # } # ------------------------------------------------------------------------------ -# * -#* This type contains detaild information of the Rescue Container. -#* -#* It shall include the following components: -#* -#* @field lightBarSirenInUse: it indicates whether light-bar or a siren is in use by the vehicle originating the CAM. -# LightBarSirenInUse light_bar_siren_in_use diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadWorksContainerBasic.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadWorksContainerBasic.msg index 990999be8..0bd9ccb5c 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadWorksContainerBasic.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadWorksContainerBasic.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,26 +25,26 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This type contains detaild information of the Road Works Container Basic. +# * +# * It shall include the following components: +# * +# * @field roadworksSubCauseCode: The optional component, in case the originating ITS-S is mounted to a vehicle ITS-S participating to roadwork. It +# * provides information on the type of roadwork that it is currently undertaking. This component shall be present if the data is available in +# * originating ITS S. +# * +# * @field lightBarSirenInUse: it indicates whether light-bar or a siren is in use by the vehicle originating the CAM. +# * +# * @field closedLanes: an optional component which provides information about the opening/closure status of the lanes ahead. Lanes are counted from +# * the outside boarder of the road. If a lane is closed to traffic, the corresponding bit shall be set to 1. +# */ # RoadWorksContainerBasic ::= SEQUENCE { # roadworksSubCauseCode RoadworksSubCauseCode OPTIONAL, # lightBarSirenInUse LightBarSirenInUse, # closedLanes ClosedLanes OPTIONAL # } # ------------------------------------------------------------------------------ -# * -#* This type contains detaild information of the Road Works Container Basic. -#* -#* It shall include the following components: -#* -#* @field roadworksSubCauseCode: The optional component, in case the originating ITS-S is mounted to a vehicle ITS-S participating to roadwork. It -#* provides information on the type of roadwork that it is currently undertaking. This component shall be present if the data is available in -#* originating ITS S. -#* -#* @field lightBarSirenInUse: it indicates whether light-bar or a siren is in use by the vehicle originating the CAM. -#* -#* @field closedLanes: an optional component which provides information about the opening/closure status of the lanes ahead. Lanes are counted from -#* the outside boarder of the road. If a lane is closed to traffic, the corresponding bit shall be set to 1. -# RoadworksSubCauseCode roadworks_sub_cause_code bool roadworks_sub_cause_code_is_present diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadworksSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadworksSubCauseCode.msg index cd9b94d7f..4c5bc7a82 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadworksSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/RoadworksSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,22 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the value of the sub cause codes of the @ref CauseCode `roadworks`. +# * +# The value shall be set to: +# * - 0 `unavailable` - in case further detailed information on roadworks is unavailable, +# * - 1 `majorRoadworks` - in case a major roadworks is ongoing, +# * - 2 `roadMarkingWork` - in case a road marking work is ongoing, +# * - 3 `slowMovingRoadMaintenance` - in case slow moving road maintenance work is ongoing, +# * - 4 `shortTermStationaryRoadworks`- in case a short term stationary roadwork is ongoing, +# * - 5 `streetCleaning` - in case a vehicle street cleaning work is ongoing, +# * - 6 `winterService` - in case winter service work is ongoing. +# * - 7-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# */ # RoadworksSubCauseCode ::= INTEGER { # unavailable (0), # majorRoadworks (1), @@ -36,22 +51,6 @@ # winterService (6) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the value of the sub cause codes of the @ref CauseCode `roadworks`. -# * -#The value shall be set to: -# * - 0 `unavailable` - in case further detailed information on roadworks is unavailable, -# * - 1 `majorRoadworks` - in case a major roadworks is ongoing, -# * - 2 `roadMarkingWork` - in case a road marking work is ongoing, -# * - 3 `slowMovingRoadMaintenance` - in case slow moving road maintenance work is ongoing, -# * - 4 `shortTermStationaryRoadworks`- in case a short term stationary roadwork is ongoing, -# * - 5 `streetCleaning` - in case a vehicle street cleaning work is ongoing, -# * - 6 `winterService` - in case winter service work is ongoing. -# * - 7-255 - are reserved for future usage. -# * -# * @category: Traffic information -# * @revision: V1.3.1 -# uint8 value uint8 MIN = 0 @@ -63,3 +62,4 @@ uint8 SLOW_MOVING_ROAD_MAINTENANCE = 3 uint8 SHORT_TERM_STATIONARY_ROADWORKS = 4 uint8 STREET_CLEANING = 5 uint8 WINTER_SERVICE = 6 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SafetyCarContainer.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SafetyCarContainer.msg index 2d822fc33..0d5cd311d 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SafetyCarContainer.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SafetyCarContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,19 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This type contains detaild information of the Safety Car Container. +# * +# * It shall include the following components: +# * +# * @field lightBarSirenInUse: it indicates whether light-bar or a siren is in use by the vehicle originating the CAM. +# * +# * @field incidentIndication: the optional incident related to the roadworks to provide additional information of the roadworks zone. +# * +# * @field trafficRule: an optional rule indicates whether vehicles are allowed to overtake a safety car that is originating this CAM. +# * +# * @field speedLimit: an optional speed indicates whether a speed limit is applied to vehicles following the safety car. +# */ # SafetyCarContainer ::= SEQUENCE { # lightBarSirenInUse LightBarSirenInUse, # incidentIndication CauseCodeV2 OPTIONAL, @@ -33,19 +45,6 @@ # speedLimit SpeedLimit OPTIONAL # } # ------------------------------------------------------------------------------ -# * -#* This type contains detaild information of the Safety Car Container. -#* -#* It shall include the following components: -#* -#* @field lightBarSirenInUse: it indicates whether light-bar or a siren is in use by the vehicle originating the CAM. -#* -#* @field incidentIndication: the optional incident related to the roadworks to provide additional information of the roadworks zone. -#* -#* @field trafficRule: an optional rule indicates whether vehicles are allowed to overtake a safety car that is originating this CAM. -#* -#* @field speedLimit: an optional speed indicates whether a speed limit is applied to vehicles following the safety car. -# LightBarSirenInUse light_bar_siren_in_use diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SemiAxisLength.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SemiAxisLength.msg index 9ca2696bc..322019bc3 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SemiAxisLength.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SemiAxisLength.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,31 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the horizontal position confidence value which represents the estimated absolute position accuracy, in one of the axis direction as defined in a shape of ellipse with a +# * confidence level of 95 %. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 4 094`) if the accuracy is equal to or less than n * 0,01 metre, +# * - `4 094` if the accuracy is out of range, i.e. greater than 4,093 m, +# * - `4 095` if the accuracy information is unavailable. +# * +# * The value 0 shall not be used. +# * +# * @note: The fact that a position coordinate value is received with confidence value set to `unavailable(4095)`. +# * can be caused by several reasons, such as: +# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, +# * - the sensor cannot calculate the accuracy due to lack of variables, or +# * - there has been a vehicle bus (e.g. CAN bus) error. +# * In all 3 cases above, the position coordinate value may be valid and used by the application. +# * If a position coordinate value is received and its confidence value is set to `outOfRange(4094)`, it means that +# * the position coordinate value is not valid and therefore cannot be trusted. Such value is not useful +# * for the application. +# +# * @unit 0,01 metre +# * @category: GeoReference Information +# * @revision: Description revised in V2.1.1 +# */ # SemiAxisLength ::= INTEGER{ # doNotUse (0), # outOfRange (4094), @@ -39,3 +63,4 @@ uint16 MAX = 4095 uint16 DO_NOT_USE = 0 uint16 OUT_OF_RANGE = 4094 uint16 UNAVAILABLE = 4095 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SignalViolationSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SignalViolationSubCauseCode.msg index e39c3d729..92a1cba22 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SignalViolationSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SignalViolationSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,19 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the value of the sub cause codes of the @ref CauseCode `signalViolation`. +# * +# * The value shall be set to: +# * - 0 `unavailable` - in case further detailed information on signal violation event is unavailable, +# * - 1 `stopSignViolation` - in case a stop sign violation is detected, +# * - 2 `trafficLightViolation` - in case a traffic light violation is detected, +# * - 3 `turningRegulationViolation`- in case a turning regulation violation is detected. +# * - 4-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# */ # SignalViolationSubCauseCode ::= INTEGER { # unavailable (0), # stopSignViolation (1), @@ -33,19 +45,6 @@ # turningRegulationViolation (3) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the value of the sub cause codes of the @ref CauseCode `signalViolation`. -# * -# * The value shall be set to: -# * - 0 `unavailable` - in case further detailed information on signal violation event is unavailable, -# * - 1 `stopSignViolation` - in case a stop sign violation is detected, -# * - 2 `trafficLightViolation` - in case a traffic light violation is detected, -# * - 3 `turningRegulationViolation`- in case a turning regulation violation is detected. -# * - 4-255 - are reserved for future usage. -# * -# * @category: Traffic information -# * @revision: V1.3.1 -# uint8 value uint8 MIN = 0 @@ -54,3 +53,4 @@ uint8 UNAVAILABLE = 0 uint8 STOP_SIGN_VIOLATION = 1 uint8 TRAFFIC_LIGHT_VIOLATION = 2 uint8 TURNING_REGULATION_VIOLATION = 3 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SlowVehicleSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SlowVehicleSubCauseCode.msg index a3999fbb1..db29c11c6 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SlowVehicleSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SlowVehicleSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,25 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the sub cause codes of the @ref CauseCode "slowVehicle". +# * +# * The value shall be set to: +# * - 0 `unavailable` - in case further detailed information on slow vehicle driving event is +# * unavailable, +# * - 1 `maintenanceVehicle` - in case of a slow driving maintenance vehicle on the road, +# * - 2 `vehiclesSlowingToLookAtAccident`- in case vehicle is temporally slowing down to look at accident, spot, etc., +# * - 3 `abnormalLoad` - in case an abnormal loaded vehicle is driving slowly on the road, +# * - 4 `abnormalWideLoad` - in case an abnormal wide load vehicle is driving slowly on the road, +# * - 5 `convoy` - in case of slow driving convoy on the road, +# * - 6 `snowplough` - in case of slow driving snow plough on the road, +# * - 7 `deicing` - in case of slow driving de-icing vehicle on the road, +# * - 8 `saltingVehicles` - in case of slow driving salting vehicle on the road. +# * - 9-255 - are reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# */ # SlowVehicleSubCauseCode ::= INTEGER { # unavailable (0), # maintenanceVehicle (1), @@ -38,25 +56,6 @@ # saltingVehicles (8) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the sub cause codes of the @ref CauseCode "slowVehicle". -# * -# * The value shall be set to: -# * - 0 `unavailable` - in case further detailed information on slow vehicle driving event is -# * unavailable, -# * - 1 `maintenanceVehicle` - in case of a slow driving maintenance vehicle on the road, -# * - 2 `vehiclesSlowingToLookAtAccident`- in case vehicle is temporally slowing down to look at accident, spot, etc., -# * - 3 `abnormalLoad` - in case an abnormal loaded vehicle is driving slowly on the road, -# * - 4 `abnormalWideLoad` - in case an abnormal wide load vehicle is driving slowly on the road, -# * - 5 `convoy` - in case of slow driving convoy on the road, -# * - 6 `snowplough` - in case of slow driving snow plough on the road, -# * - 7 `deicing` - in case of slow driving de-icing vehicle on the road, -# * - 8 `saltingVehicles` - in case of slow driving salting vehicle on the road. -# * - 9-255 - are reserved for future usage. -# * -# * @category: Traffic information -# * @revision: V1.3.1 -# uint8 value uint8 MIN = 0 @@ -70,3 +69,4 @@ uint8 CONVOY = 5 uint8 SNOWPLOUGH = 6 uint8 DEICING = 7 uint8 SALTING_VEHICLES = 8 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpecialTransportContainer.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpecialTransportContainer.msg index cd58defbd..643d66d37 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpecialTransportContainer.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpecialTransportContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,21 +25,21 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This type contains detaild information of the Special Transport Container. +# * +# * It shall include the following components: +# * +# * @field specialTransportType: which indicates whether the originating ITS-S is mounted on a special transport vehicle with heavy or oversized load +# * or both. It shall be present if the data is available in originating ITS-S. +# * +# * @field lightBarSirenInUse: indicates whether light-bar or a siren is in use by the vehicle originating the CAM. +# */ # SpecialTransportContainer ::= SEQUENCE { # specialTransportType SpecialTransportType, # lightBarSirenInUse LightBarSirenInUse # } # ------------------------------------------------------------------------------ -# * -#* This type contains detaild information of the Special Transport Container. -#* -#* It shall include the following components: -#* -#* @field specialTransportType: which indicates whether the originating ITS-S is mounted on a special transport vehicle with heavy or oversized load -#* or both. It shall be present if the data is available in originating ITS-S. -#* -#* @field lightBarSirenInUse: indicates whether light-bar or a siren is in use by the vehicle originating the CAM. -# SpecialTransportType special_transport_type diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpecialTransportType.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpecialTransportType.msg index 99809c1c6..2442a5bae 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpecialTransportType.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpecialTransportType.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,19 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * The DE indicates if a vehicle is carrying goods in the special transport conditions. +# * +# * The corresponding bit shall be set to 1 under the following conditions: +# * - 0 `heavyLoad` - the vehicle is carrying goods with heavy load, +# * - 1 `excessWidth` - the vehicle is carrying goods in excess of width, +# * - 2 `excessLength` - the vehicle is carrying goods in excess of length, +# * - 3 `excessHeight` - the vehicle is carrying goods in excess of height. +# * +# * Otherwise, the corresponding bit shall be set to 0. +# * @category Vehicle information +# * @revision: Description revised in V2.1.1 +# */ # SpecialTransportType ::= BIT STRING { # heavyLoad (0), # excessWidth (1), @@ -33,19 +45,6 @@ # excessHeight (3) # } (SIZE(4)) # ------------------------------------------------------------------------------ -# * -# * The DE indicates if a vehicle is carrying goods in the special transport conditions. -# * -# * The corresponding bit shall be set to 1 under the following conditions: -# * - 0 `heavyLoad` - the vehicle is carrying goods with heavy load, -# * - 1 `excessWidth` - the vehicle is carrying goods in excess of width, -# * - 2 `excessLength` - the vehicle is carrying goods in excess of length, -# * - 3 `excessHeight` - the vehicle is carrying goods in excess of height. -# * -# * Otherwise, the corresponding bit shall be set to 0. -# * @category Vehicle information -# * @revision: Description revised in V2.1.1 -# uint8[] value uint8 bits_unused @@ -54,3 +53,4 @@ uint8 BIT_INDEX_HEAVY_LOAD = 0 uint8 BIT_INDEX_EXCESS_WIDTH = 1 uint8 BIT_INDEX_EXCESS_LENGTH = 2 uint8 BIT_INDEX_EXCESS_HEIGHT = 3 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpecialVehicleContainer.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpecialVehicleContainer.msg index 11a839267..fe37bf935 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpecialVehicleContainer.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpecialVehicleContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,25 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This type represent the Special Vehicle Container. +# * +# * It shall include the following components: +# * +# * @field publicTransportContainer: If the vehicleRole component is set to publicTransport(1) this container shall be present. +# * +# * @field specialTransportContainer: If the vehicleRole component is set to specialTransport(2) this container shall be present. +# * +# * @field dangerousGoodsContainer: If the vehicleRole component is set to dangerousGoods(3) this container shall be present. +# * +# * @field roadWorksContainerBasic: If the vehicleRole component is set to roadWork(4) this container shall be present. +# * +# * @field rescueContainer: If the vehicleRole component is set to rescue(5) this container shall be present. +# * +# * @field emergencyContainer: If the vehicleRole component is set to emergency(6) this container shall be present. +# * +# * @field safetyCarContainer: If the vehicleRole component is set to safetyCar(7) this container shall be present. +# */ # SpecialVehicleContainer ::= CHOICE { # publicTransportContainer PublicTransportContainer, # specialTransportContainer SpecialTransportContainer, @@ -37,25 +55,6 @@ # ... # } # ------------------------------------------------------------------------------ -# * -#* This type represent the Special Vehicle Container. -#* -#* It shall include the following components: -#* -#* @field publicTransportContainer: If the vehicleRole component is set to publicTransport(1) this container shall be present. -#* -#* @field specialTransportContainer: If the vehicleRole component is set to specialTransport(2) this container shall be present. -#* -#* @field dangerousGoodsContainer: If the vehicleRole component is set to dangerousGoods(3) this container shall be present. -#* -#* @field roadWorksContainerBasic: If the vehicleRole component is set to roadWork(4) this container shall be present. -#* -#* @field rescueContainer: If the vehicleRole component is set to rescue(5) this container shall be present. -#* -#* @field emergencyContainer: If the vehicleRole component is set to emergency(6) this container shall be present. -#* -#* @field safetyCarContainer: If the vehicleRole component is set to safetyCar(7) this container shall be present. -# uint8 choice diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Speed.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Speed.msg index 40d727dd6..cb129ed13 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Speed.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Speed.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,23 +25,23 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents the speed and associated confidence value. +# * +# * It shall include the following components: +# * +# * @field speedValue: the speed value. +# * +# * @field speedConfidence: the confidence value of the speed value. +# * +# * @category: Kinematic information +# * @revision: V1.3.1 +# */ # Speed ::= SEQUENCE { # speedValue SpeedValue, # speedConfidence SpeedConfidence # } # ------------------------------------------------------------------------------ -# * -# * This DF represents the speed and associated confidence value. -# * -# * It shall include the following components: -# * -# * @field speedValue: the speed value. -# * -# * @field speedConfidence: the confidence value of the speed value. -# * -# * @category: Kinematic information -# * @revision: V1.3.1 -# SpeedValue speed_value diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpeedConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpeedConfidence.msg index 47c72b18f..9b14b5bac 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpeedConfidence.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpeedConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,36 +25,37 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the speed confidence value which represents the estimated absolute accuracy of a speed value with a default confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 126`) if the confidence value is equal to or less than n * 0,01 m/s. +# * - `126` if the confidence value is out of range, i.e. greater than 1,25 m/s, +# * - `127` if the confidence value information is not available. +# * +# * @note: The fact that a speed value is received with confidence value set to `unavailable(127)` can be caused by several reasons, such as: +# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, +# * - the sensor cannot calculate the accuracy due to lack of variables, or +# * - there has been a vehicle bus (e.g. CAN bus) error. +# * In all 3 cases above, the speed value may be valid and used by the application. +# * +# * @note: If a speed value is received and its confidence value is set to `outOfRange(126)`, it means that the speed value is not valid +# * and therefore cannot be trusted. Such is not useful for the application. +# * +# * @unit: 0,01 m/s +# * @category: Vehicle information +# * @revision: Description revised in V2.1.1 +# */ # SpeedConfidence ::= INTEGER { # outOfRange (126), # unavailable (127) # } (1..127) # ------------------------------------------------------------------------------ -# * -# * This DE indicates the speed confidence value which represents the estimated absolute accuracy of a speed value with a default confidence level of 95 %. -# * If required, the confidence level can be defined by the corresponding standards applying this DE. -# * -# * The value shall be set to: -# * - `n` (`n > 0` and `n < 126`) if the confidence value is equal to or less than n * 0,01 m/s. -# * - `126` if the confidence value is out of range, i.e. greater than 1,25 m/s, -# * - `127` if the confidence value information is not available. -# * -# * @note: The fact that a speed value is received with confidence value set to `unavailable(127)` can be caused by several reasons, such as: -# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, -# * - the sensor cannot calculate the accuracy due to lack of variables, or -# * - there has been a vehicle bus (e.g. CAN bus) error. -# * In all 3 cases above, the speed value may be valid and used by the application. -# * -# * @note: If a speed value is received and its confidence value is set to `outOfRange(126)`, it means that the speed value is not valid -# * and therefore cannot be trusted. Such is not useful for the application. -# * -# * @unit: 0,01 m/s -# * @category: Vehicle information -# * @revision: Description revised in V2.1.1 -# uint8 value uint8 MIN = 1 uint8 MAX = 127 uint8 OUT_OF_RANGE = 126 uint8 UNAVAILABLE = 127 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpeedLimit.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpeedLimit.msg index eb69931c0..3322118aa 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpeedLimit.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpeedLimit.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,15 +25,15 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents a speed limitation applied to a geographical position, a road section or a geographical region. +# * +# * @unit: km/h +# * @category: Infrastructure information, Traffic information +# * @revision: V1.3.1 +# */ # SpeedLimit ::= INTEGER (1..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents a speed limitation applied to a geographical position, a road section or a geographical region. -# * -# * @unit: km/h -# * @category: Infrastructure information, Traffic information -# * @revision: V1.3.1 -# uint8 value uint8 MIN = 1 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpeedValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpeedValue.msg index 2f2340071..e55de1a67 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpeedValue.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SpeedValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,27 +25,27 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents a speed value, i.e. the magnitude of the velocity-vector. +# * +# * The value shall be set to: +# * - `0` in a standstill situation. +# * - `n` (`n > 0` and `n < 16 382`) if the applicable value is equal to or less than n x 0,01 m/s, and greater than (n-1) x 0,01 m/s, +# * - `16 382` for speed values greater than 163,81 m/s, +# * - `16 383` if the speed accuracy information is not available. +# * +# * @note: the definition of standstill is out of scope of the present document. +# * +# * @unit: 0,01 m/s +# * @category: Kinematic information +# * @revision: Description revised in V2.1.1 (the meaning of 16382 has changed slightly) +# */ # SpeedValue ::= INTEGER { # standstill (0), # outOfRange (16382), # unavailable (16383) # } (0..16383) # ------------------------------------------------------------------------------ -# * -# * This DE represents a speed value, i.e. the magnitude of the velocity-vector. -# * -# * The value shall be set to: -# * - `0` in a standstill situation. -# * - `n` (`n > 0` and `n < 16 382`) if the applicable value is equal to or less than n x 0,01 m/s, and greater than (n-1) x 0,01 m/s, -# * - `16 382` for speed values greater than 163,81 m/s, -# * - `16 383` if the speed accuracy information is not available. -# * -# * @note: the definition of standstill is out of scope of the present document. -# * -# * @unit: 0,01 m/s -# * @category: Kinematic information -# * @revision: Description revised in V2.1.1 (the meaning of 16382 has changed slightly) -# uint16 value uint16 MIN = 0 @@ -54,3 +53,4 @@ uint16 MAX = 16383 uint16 STANDSTILL = 0 uint16 OUT_OF_RANGE = 16382 uint16 UNAVAILABLE = 16383 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StationId.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StationId.msg index 2e86839ea..1f0c6a776 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StationId.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StationId.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,15 +25,15 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the identifier of an ITS-S. +# * The ITS-S ID may be a pseudonym. It may change over space and/or over time. +# * +# * @category: Basic information +# * @revision: Created in V2.1.1 based on @ref StationID +# */ # StationId ::= INTEGER(0..4294967295) # ------------------------------------------------------------------------------ -# * -# * This DE represents the identifier of an ITS-S. -# * The ITS-S ID may be a pseudonym. It may change over space and/or over time. -# * -# * @category: Basic information -# * @revision: Created in V2.1.1 based on @ref StationID -# uint32 value uint32 MIN = 0 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StationaryVehicleSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StationaryVehicleSubCauseCode.msg index 33fa65da1..038d25c97 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StationaryVehicleSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/StationaryVehicleSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,22 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE provides the value of the sub cause codes of the @ref CauseCode "stationaryVehicle". +# * +# * The value shall be set to: +# * - 0 `unavailable` - in case further detailed information on stationary vehicle is unavailable, +# * - 1 `humanProblem` - in case stationary vehicle is due to health problem of driver or passenger, +# * - 2 `vehicleBreakdown` - in case stationary vehicle is due to vehicle break down, +# * - 3 `postCrash` - in case stationary vehicle is caused by collision, +# * - 4 `publicTransportStop` - in case public transport vehicle is stationary at bus stop, +# * - 5 `carryingDangerousGoods`- in case the stationary vehicle is carrying dangerous goods, +# * - 6 `vehicleOnFire` - in case of vehicle on fire. +# * - 7-255 reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# */ # StationaryVehicleSubCauseCode ::= INTEGER { # unavailable (0), # humanProblem (1), @@ -36,22 +51,6 @@ # vehicleOnFire (6) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE provides the value of the sub cause codes of the @ref CauseCode "stationaryVehicle". -# * -# * The value shall be set to: -# * - 0 `unavailable` - in case further detailed information on stationary vehicle is unavailable, -# * - 1 `humanProblem` - in case stationary vehicle is due to health problem of driver or passenger, -# * - 2 `vehicleBreakdown` - in case stationary vehicle is due to vehicle break down, -# * - 3 `postCrash` - in case stationary vehicle is caused by collision, -# * - 4 `publicTransportStop` - in case public transport vehicle is stationary at bus stop, -# * - 5 `carryingDangerousGoods`- in case the stationary vehicle is carrying dangerous goods, -# * - 6 `vehicleOnFire` - in case of vehicle on fire. -# * - 7-255 reserved for future usage. -# * -# * @category: Traffic information -# * @revision: V1.3.1 -# uint8 value uint8 MIN = 0 @@ -63,3 +62,4 @@ uint8 POST_CRASH = 3 uint8 PUBLIC_TRANSPORT_STOP = 4 uint8 CARRYING_DANGEROUS_GOODS = 5 uint8 VEHICLE_ON_FIRE = 6 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SteeringWheelAngle.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SteeringWheelAngle.msg index fc9d36a1c..d461ed8b5 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SteeringWheelAngle.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SteeringWheelAngle.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,23 +25,23 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents the steering wheel angle of the vehicle at certain point in time. +# * +# * It shall include the following components: +# * +# * @field steeringWheelAngleValue: steering wheel angle value. +# * +# * @field steeringWheelAngleConfidence: confidence value of the steering wheel angle value. +# * +# * @category: Vehicle information +# * @revision: Created in V2.1.1 +# */ # SteeringWheelAngle ::= SEQUENCE { # steeringWheelAngleValue SteeringWheelAngleValue, # steeringWheelAngleConfidence SteeringWheelAngleConfidence # } # ------------------------------------------------------------------------------ -# * -# * This DF represents the steering wheel angle of the vehicle at certain point in time. -# * -# * It shall include the following components: -# * -# * @field steeringWheelAngleValue: steering wheel angle value. -# * -# * @field steeringWheelAngleConfidence: confidence value of the steering wheel angle value. -# * -# * @category: Vehicle information -# * @revision: Created in V2.1.1 -# SteeringWheelAngleValue steering_wheel_angle_value diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SteeringWheelAngleConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SteeringWheelAngleConfidence.msg index 7381c2338..65bfc8864 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SteeringWheelAngleConfidence.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SteeringWheelAngleConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,37 +25,38 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the steering wheel angle confidence value which represents the estimated absolute accuracy for a steering wheel angle value with a confidence level of 95 %. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 126`) if the confidence value is equal to or less than n x 1,5 degrees, +# * - `126` if the confidence value is out of range, i.e. greater than 187,5 degrees, +# * - `127` if the confidence value is not available. +# * +# * @note: The fact that a steering wheel angle value is received with confidence value set to `unavailable(127)` +# * can be caused by several reasons, such as: +# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, +# * - the sensor cannot calculate the accuracy due to lack of variables, or +# * - there has been a vehicle bus (e.g. CAN bus) error. +# * In all 3 cases above, the steering wheel angle value may be valid and used by the application. +# * +# * If a steering wheel angle value is received and its confidence value is set to `outOfRange(126)`, +# * it means that the steering wheel angle value is not valid and therefore cannot be trusted. +# * Such value is not useful for the application. +# * +# * @unit: 1,5 degree +# * @category: Vehicle Information +# * @revision: Description revised in V2.1.1 +# */ # SteeringWheelAngleConfidence ::= INTEGER { # outOfRange (126), # unavailable (127) # } (1..127) # ------------------------------------------------------------------------------ -# * -# * This DE indicates the steering wheel angle confidence value which represents the estimated absolute accuracy for a steering wheel angle value with a confidence level of 95 %. -# * -# * The value shall be set to: -# * - `n` (`n > 0` and `n < 126`) if the confidence value is equal to or less than n x 1,5 degrees, -# * - `126` if the confidence value is out of range, i.e. greater than 187,5 degrees, -# * - `127` if the confidence value is not available. -# * -# * @note: The fact that a steering wheel angle value is received with confidence value set to `unavailable(127)` -# * can be caused by several reasons, such as: -# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, -# * - the sensor cannot calculate the accuracy due to lack of variables, or -# * - there has been a vehicle bus (e.g. CAN bus) error. -# * In all 3 cases above, the steering wheel angle value may be valid and used by the application. -# * -# * If a steering wheel angle value is received and its confidence value is set to `outOfRange(126)`, -# * it means that the steering wheel angle value is not valid and therefore cannot be trusted. -# * Such value is not useful for the application. -# * -# * @unit: 1,5 degree -# * @category: Vehicle Information -# * @revision: Description revised in V2.1.1 -# uint8 value uint8 MIN = 1 uint8 MAX = 127 uint8 OUT_OF_RANGE = 126 uint8 UNAVAILABLE = 127 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SteeringWheelAngleValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SteeringWheelAngleValue.msg index a08ac6deb..45d4c0e0b 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SteeringWheelAngleValue.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SteeringWheelAngleValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,28 +25,28 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the steering wheel angle of the vehicle at certain point in time. +# * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11. +# * +# * The value shall be set to: +# * - `-511` if the steering wheel angle is equal to or greater than 511 x 1,5 degrees = 766,5 degrees to the right, +# * - `n` (`n > -511` and `n <= 0`) if the steering wheel angle is equal to or less than n x 1,5 degrees, and greater than (n-1) x 1,5 degrees, +# turning clockwise (i.e. to the right), +# * - `n` (`n >= 1` and `n < 511`) if the steering wheel angle is equal to or less than n x 0,1 degrees, and greater than (n-1) x 0,1 degrees, +# turning counter-clockwise (i.e. to the left), +# * - `511` if the steering wheel angle is greater than 510 x 1,5 degrees = 765 degrees to the left, +# * - `512` if information is not available. +# * +# * @unit: 1,5 degree +# * @revision: Description revised in V2.1.1 (meaning of value 511 has changed slightly). +# */ # SteeringWheelAngleValue ::= INTEGER { # negativeOutOfRange (-511), # positiveOutOfRange (511), # unavailable (512) # } (-511..512) # ------------------------------------------------------------------------------ -# * -# * This DE represents the steering wheel angle of the vehicle at certain point in time. -# * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11. -# * -# * The value shall be set to: -# * - `-511` if the steering wheel angle is equal to or greater than 511 x 1,5 degrees = 766,5 degrees to the right, -# * - `n` (`n > -511` and `n <= 0`) if the steering wheel angle is equal to or less than n x 1,5 degrees, and greater than (n-1) x 1,5 degrees, -# turning clockwise (i.e. to the right), -# * - `n` (`n >= 1` and `n < 511`) if the steering wheel angle is equal to or less than n x 0,1 degrees, and greater than (n-1) x 0,1 degrees, -# turning counter-clockwise (i.e. to the left), -# * - `511` if the steering wheel angle is greater than 510 x 1,5 degrees = 765 degrees to the left, -# * - `512` if information is not available. -# * -# * @unit: 1,5 degree -# * @revision: Description revised in V2.1.1 (meaning of value 511 has changed slightly). -# int16 value int16 MIN = -511 @@ -55,3 +54,4 @@ int16 MAX = 512 int16 NEGATIVE_OUT_OF_RANGE = -511 int16 POSITIVE_OUT_OF_RANGE = 511 int16 UNAVAILABLE = 512 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SubCauseCodeType.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SubCauseCodeType.msg index 9830591a9..0f0d01a63 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SubCauseCodeType.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/SubCauseCodeType.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,16 +25,16 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the generic sub cause of a detected event. +# * +# * @note: The sub cause code value assignment varies based on value of @ref CauseCode. +# * +# * @category: Traffic information +# * @revision: Description revised in V2.1.1 (this is the generic sub cause type) +# */ # SubCauseCodeType ::= INTEGER (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE indicates the generic sub cause of a detected event. -# * -# * @note: The sub cause code value assignment varies based on value of @ref CauseCode. -# * -# * @category: Traffic information -# * @revision: Description revised in V2.1.1 (this is the generic sub cause type) -# uint8 value uint8 MIN = 0 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TimestampIts.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TimestampIts.msg index e76b16ebb..5f96e1289 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TimestampIts.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TimestampIts.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,26 +25,26 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the number of elapsed (TAI) milliseconds since the ITS Epoch. +# * The ITS epoch is `00:00:00.000 UTC, 1 January 2004`. +# * "Elapsed" means that the true number of milliseconds is continuously counted without interruption, +# * i.e. it is not altered by leap seconds, which occur in UTC. +# * +# * @note: International Atomic Time (TAI) is the time reference coordinate on the basis of the readings of atomic clocks, +# * operated in accordance with the definition of the second, the unit of time of the International System of Units. +# * TAI is a continuous time scale. UTC has discontinuities, as it is occasionally adjusted by leap seconds. +# * As of 1 January, 2022, TimestampIts is 5 seconds ahead of UTC, because since the ITS epoch on 1 January 2004 00:00:00.000 UTC, +# * further 5 leap seconds have been inserted in UTC. +# * +# * EXAMPLE: The value for TimestampIts for 1 January 2007 00:00:00.000 UTC is `94 694 401 000` milliseconds, +# * which includes one leap second insertion since the ITS epoch. +# * @unit: 0,001 s +# * @category: Basic information +# * @revision: Description revised in in V2.1.1 +# */ # TimestampIts ::= INTEGER (0..4398046511103) # ------------------------------------------------------------------------------ -# * -# * This DE represents the number of elapsed (TAI) milliseconds since the ITS Epoch. -# * The ITS epoch is `00:00:00.000 UTC, 1 January 2004`. -# * "Elapsed" means that the true number of milliseconds is continuously counted without interruption, -# * i.e. it is not altered by leap seconds, which occur in UTC. -# * -# * @note: International Atomic Time (TAI) is the time reference coordinate on the basis of the readings of atomic clocks, -# * operated in accordance with the definition of the second, the unit of time of the International System of Units. -# * TAI is a continuous time scale. UTC has discontinuities, as it is occasionally adjusted by leap seconds. -# * As of 1 January, 2022, TimestampIts is 5 seconds ahead of UTC, because since the ITS epoch on 1 January 2004 00:00:00.000 UTC, -# * further 5 leap seconds have been inserted in UTC. -# * -# * EXAMPLE: The value for TimestampIts for 1 January 2007 00:00:00.000 UTC is `94 694 401 000` milliseconds, -# * which includes one leap second insertion since the ITS epoch. -# * @unit: 0,001 s -# * @category: Basic information -# * @revision: Description revised in in V2.1.1 -# uint64 value uint64 MIN = 0 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficConditionSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficConditionSubCauseCode.msg index 6a2f4c970..033b2040c 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficConditionSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficConditionSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,25 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the value of the sub cause codes of the @ref CauseCode `trafficCondition`. +# * +# * The value shall be set to: +# * - 0 `unavailable` - in case further detailed information on the traffic condition is unavailable, +# * - 1 `increasedVolumeOfTraffic` - in case the type of traffic condition is increased traffic volume, +# * - 2 `trafficJamSlowlyIncreasing` - in case the type of traffic condition is a traffic jam which volume is increasing slowly, +# * - 3 `trafficJamIncreasing` - in case the type of traffic condition is a traffic jam which volume is increasing, +# * - 4 `trafficJamStronglyIncreasing` - in case the type of traffic condition is a traffic jam which volume is strongly increasing, +# * - 5 `trafficJam` ` - in case the type of traffic condition is a traffic jam and no further detailed information about its volume is available, +# * - 6 `trafficJamSlightlyDecreasing` - in case the type of traffic condition is a traffic jam which volume is decreasing slowly, +# * - 7 `trafficJamDecreasing` - in case the type of traffic condition is a traffic jam which volume is decreasing, +# * - 8 `trafficJamStronglyDecreasing` - in case the type of traffic condition is a traffic jam which volume is decreasing rapidly, +# * - 9 `trafficJamStable` - in case the traffic condition is a traffic jam with stable volume, +# * - 10-255: reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1, definition of value 0 and 1 changed in V2.2.1, name and definition of value 5 changed in V2.2.1, value 9 added in V2.2.1 +# */ # TrafficConditionSubCauseCode ::= INTEGER { # unavailable (0), # increasedVolumeOfTraffic (1), @@ -39,25 +57,6 @@ # trafficJamStable (9) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the value of the sub cause codes of the @ref CauseCode `trafficCondition`. -# * -# * The value shall be set to: -# * - 0 `unavailable` - in case further detailed information on the traffic condition is unavailable, -# * - 1 `increasedVolumeOfTraffic` - in case the type of traffic condition is increased traffic volume, -# * - 2 `trafficJamSlowlyIncreasing` - in case the type of traffic condition is a traffic jam which volume is increasing slowly, -# * - 3 `trafficJamIncreasing` - in case the type of traffic condition is a traffic jam which volume is increasing, -# * - 4 `trafficJamStronglyIncreasing` - in case the type of traffic condition is a traffic jam which volume is strongly increasing, -# * - 5 `trafficJam` ` - in case the type of traffic condition is a traffic jam and no further detailed information about its volume is available, -# * - 6 `trafficJamSlightlyDecreasing` - in case the type of traffic condition is a traffic jam which volume is decreasing slowly, -# * - 7 `trafficJamDecreasing` - in case the type of traffic condition is a traffic jam which volume is decreasing, -# * - 8 `trafficJamStronglyDecreasing` - in case the type of traffic condition is a traffic jam which volume is decreasing rapidly, -# * - 9 `trafficJamStable` - in case the traffic condition is a traffic jam with stable volume, -# * - 10-255: reserved for future usage. -# * -# * @category: Traffic information -# * @revision: V1.3.1, definition of value 0 and 1 changed in V2.2.1, name and definition of value 5 changed in V2.2.1, value 9 added in V2.2.1 -# uint8 value uint8 MIN = 0 @@ -72,3 +71,4 @@ uint8 TRAFFIC_JAM_SLIGHTLY_DECREASING = 6 uint8 TRAFFIC_JAM_DECREASING = 7 uint8 TRAFFIC_JAM_STRONGLY_DECREASING = 8 uint8 TRAFFIC_JAM_STABLE = 9 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficParticipantType.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficParticipantType.msg index 52b5694ee..f4019966c 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficParticipantType.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficParticipantType.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,32 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the type of a traffic participant. +# * +# * The value shall be set to: +# * - 0 `unknown` - information about traffic participant is not provided, +# * - 1 `pedestrian` - human being not using a mechanical device for their trip (VRU profile 1), +# * - 2 `cyclist` - non-motorized unicycles, bicycles , tricycles, quadracycles (VRU profile 2), +# * - 3 `moped` - light motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class L1, L2 (VRU Profile 3), +# * - 4 `motorcycles` - motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class L3, L4, L5, L6, L7 (VRU Profile 3), +# * - 5 `passengerCar` - small passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M1, +# * - 6 `bus` - large passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M2, M3, +# * - 7 `lightTruck` - light Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N1, +# * - 8 `heavyTruck` - Heavy Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N2 and N3, +# * - 9 `trailer` - unpowered vehicle that is intended to be towed by a powered vehicle as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class O, +# * - 10 `specialVehicles` - vehicles which have special purposes other than the above (e.g. moving road works vehicle), +# * - 11 `tram` - vehicle which runs on tracks along public streets, +# * - 12 `lightVruVehicle` - human being traveling on light vehicle, incl. possible use of roller skates or skateboards (VRU profile 2), +# * - 13 `animal` - animal presenting a safety risk to other road users e.g. domesticated dog in a city or horse (VRU Profile 4), +# * - 14 `agricultural` - agricultural and forestry vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class T, +# * - 15 `roadSideUnit` - infrastructure typically positioned outside of the drivable roadway (e.g. on a gantry, on a pole, +# on a stationary road works trailer); the infrastructure is static during the entire operation period of the ITS-S (e.g. no stop and go activity), +# * - 16-255 - are reserved for future usage. +# * +# * @category: Communication information. +# * @revision: Created in V2.1.1 based on StationType +# */ # TrafficParticipantType ::= INTEGER { # unknown (0), # pedestrian (1), @@ -45,32 +70,6 @@ # roadSideUnit (15) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the type of a traffic participant. -# * -# * The value shall be set to: -# * - 0 `unknown` - information about traffic participant is not provided, -# * - 1 `pedestrian` - human being not using a mechanical device for their trip (VRU profile 1), -# * - 2 `cyclist` - non-motorized unicycles, bicycles , tricycles, quadracycles (VRU profile 2), -# * - 3 `moped` - light motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class L1, L2 (VRU Profile 3), -# * - 4 `motorcycles` - motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class L3, L4, L5, L6, L7 (VRU Profile 3), -# * - 5 `passengerCar` - small passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M1, -# * - 6 `bus` - large passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M2, M3, -# * - 7 `lightTruck` - light Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N1, -# * - 8 `heavyTruck` - Heavy Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N2 and N3, -# * - 9 `trailer` - unpowered vehicle that is intended to be towed by a powered vehicle as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class O, -# * - 10 `specialVehicles` - vehicles which have special purposes other than the above (e.g. moving road works vehicle), -# * - 11 `tram` - vehicle which runs on tracks along public streets, -# * - 12 `lightVruVehicle` - human being traveling on light vehicle, incl. possible use of roller skates or skateboards (VRU profile 2), -# * - 13 `animal` - animal presenting a safety risk to other road users e.g. domesticated dog in a city or horse (VRU Profile 4), -# * - 14 `agricultural` - agricultural and forestry vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class T, -# * - 15 `roadSideUnit` - infrastructure typically positioned outside of the drivable roadway (e.g. on a gantry, on a pole, -# on a stationary road works trailer); the infrastructure is static during the entire operation period of the ITS-S (e.g. no stop and go activity), -# * - 16-255 - are reserved for future usage. -# * -# * @category: Communication information. -# * @revision: Created in V2.1.1 based on StationType -# uint8 value uint8 MIN = 0 @@ -91,3 +90,4 @@ uint8 LIGHT_VRU_VEHICLE = 12 uint8 ANIMAL = 13 uint8 AGRICULTURAL = 14 uint8 ROAD_SIDE_UNIT = 15 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficRule.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficRule.msg index 5caa0e6fd..1d8a5887e 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficRule.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/TrafficRule.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,19 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates traffic rules that apply to vehicles at a certain position. +# * +# * The value shall be set to: +# * - `0` - if overtaking is prohibited for all vehicles, +# * - `1` - if overtaking is prohibited for trucks, +# * - `2` - if vehicles should pass to the right lane, +# * - `3` - if vehicles should pass to the left lane. +# * - `4` - if vehicles should pass to the left or right lane. +# * +# * @category: Infrastructure information, Traffic information +# * @revision: Editorial update in V2.1.1 +# */ # TrafficRule ::= ENUMERATED { # noPassing (0), # noPassingForTrucks (1), @@ -35,25 +47,11 @@ # passToLeftOrRight (4) # } # ------------------------------------------------------------------------------ -# * -# * This DE indicates traffic rules that apply to vehicles at a certain position. -# * -# * The value shall be set to: -# * - `0` - if overtaking is prohibited for all vehicles, -# * - `1` - if overtaking is prohibited for trucks, -# * - `2` - if vehicles should pass to the right lane, -# * - `3` - if vehicles should pass to the left lane. -# * - `4` - if vehicles should pass to the left or right lane. -# * -# * @category: Infrastructure information, Traffic information -# * @revision: Editorial update in V2.1.1 -# uint8 value uint8 NO_PASSING = 0 uint8 NO_PASSING_FOR_TRUCKS = 1 uint8 PASS_TO_RIGHT = 2 uint8 PASS_TO_LEFT = 3 -# .extended uint8 PASS_TO_LEFT_OR_RIGHT = 4 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleBreakdownSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleBreakdownSubCauseCode.msg index 892cd1cd9..6a0fe89e5 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleBreakdownSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleBreakdownSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,26 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the value of the sub cause codes of the @ref CauseCode `vehicleBreakdown`. +# * +# * The value shall be set to: +# * - 0 `unavailable` - in case further detailed information on cause of vehicle break down is unavailable, +# * - 1 `lackOfFuel` - in case vehicle break down is due to lack of fuel, +# * - 2 `lackOfBatteryPower` - in case vehicle break down is caused by lack of battery power, +# * - 3 `engineProblem` - in case vehicle break down is caused by an engine problem, +# * - 4 `transmissionProblem` - in case vehicle break down is caused by transmission problem, +# * - 5 `engineCoolingProblem`- in case vehicle break down is caused by an engine cooling problem, +# * - 6 `brakingSystemProblem`- in case vehicle break down is caused by a braking system problem, +# * - 7 `steeringProblem` - in case vehicle break down is caused by a steering problem, +# * - 8 `tyrePuncture` - in case vehicle break down is caused by tyre puncture, +# * - 9 `tyrePressureProblem` - in case low tyre pressure in detected, +# * - 10 `vehicleOnFire` - in case the vehicle is on fire. +# * - 11-255 - are reserved for future usage. +# * +# * @category: Traffic information +# +# */ # VehicleBreakdownSubCauseCode ::= INTEGER { # unavailable (0), # lackOfFuel (1), @@ -40,26 +59,6 @@ # vehicleOnFire (10) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the value of the sub cause codes of the @ref CauseCode `vehicleBreakdown`. -# * -# * The value shall be set to: -# * - 0 `unavailable` - in case further detailed information on cause of vehicle break down is unavailable, -# * - 1 `lackOfFuel` - in case vehicle break down is due to lack of fuel, -# * - 2 `lackOfBatteryPower` - in case vehicle break down is caused by lack of battery power, -# * - 3 `engineProblem` - in case vehicle break down is caused by an engine problem, -# * - 4 `transmissionProblem` - in case vehicle break down is caused by transmission problem, -# * - 5 `engineCoolingProblem`- in case vehicle break down is caused by an engine cooling problem, -# * - 6 `brakingSystemProblem`- in case vehicle break down is caused by a braking system problem, -# * - 7 `steeringProblem` - in case vehicle break down is caused by a steering problem, -# * - 8 `tyrePuncture` - in case vehicle break down is caused by tyre puncture, -# * - 9 `tyrePressureProblem` - in case low tyre pressure in detected, -# * - 10 `vehicleOnFire` - in case the vehicle is on fire. -# * - 11-255 - are reserved for future usage. -# * -# * @category: Traffic information -# -# uint8 value uint8 MIN = 0 @@ -75,3 +74,4 @@ uint8 STEERING_PROBLEM = 7 uint8 TYRE_PUNCTURE = 8 uint8 TYRE_PRESSURE_PROBLEM = 9 uint8 VEHICLE_ON_FIRE = 10 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleLength.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleLength.msg index 0dc99a9eb..2dcf3b5af 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleLength.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleLength.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,24 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents the length of vehicle and accuracy indication information. +# * +# * It shall include the following components: +# * +# * @field vehicleLengthValue: length of vehicle. +# * +# * @field vehicleLengthConfidenceIndication: indication of the length value confidence. +# * +# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref VehicleLengthV2 instead. +# * @category: Vehicle information +# * @revision: V1.3.1 +# */ # VehicleLength ::= SEQUENCE { # vehicleLengthValue VehicleLengthValue, # vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication # } # ------------------------------------------------------------------------------ -# * -# * This DF represents the length of vehicle and accuracy indication information. -# * -# * It shall include the following components: -# * -# * @field vehicleLengthValue: length of vehicle. -# * -# * @field vehicleLengthConfidenceIndication: indication of the length value confidence. -# * -# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref VehicleLengthV2 instead. -# * @category: Vehicle information -# * @revision: V1.3.1 -# VehicleLengthValue vehicle_length_value diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleLengthConfidenceIndication.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleLengthConfidenceIndication.msg index 9a753b1f3..0c30c2f0e 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleLengthConfidenceIndication.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleLengthConfidenceIndication.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,21 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE provides information about the presence of a trailer. +# * +# * The value shall be set to: +# * - 0 `noTrailerPresent` - to indicate that no trailer is present, i.e. either the vehicle is physically not enabled to tow a trailer or it has been detected that no trailer is present, +# * - 1 `trailerPresentWithKnownLength` - to indicate that a trailer has been detected as present and the length is included in the vehicle length value, +# * - 2 `trailerPresentWithUnknownLength` - to indicate that a trailer has been detected as present and the length is not included in the vehicle length value, +# * - 3 `trailerPresenceIsUnknown` - to indicate that information about the trailer presence is unknown, i.e. the vehicle is physically enabled to tow a trailer but the detection of trailer presence/absence is not possible, +# * - 4 `unavailable` - to indicate that the information about the presence of a trailer is not available, i.e. it is neither known whether the vehicle is able to tow a trailer, +# * nor the detection of trailer presence/absence is possible. +# * +# * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref TrailerPresenceInformation instead. +# * @category: Vehicle information +# * @revision: Description revised in V2.1.1 +# */ # VehicleLengthConfidenceIndication ::= ENUMERATED { # noTrailerPresent (0), # trailerPresentWithKnownLength (1), @@ -34,21 +48,6 @@ # unavailable (4) # } # ------------------------------------------------------------------------------ -# * -# * This DE provides information about the presence of a trailer. -# * -# * The value shall be set to: -# * - 0 `noTrailerPresent` - to indicate that no trailer is present, i.e. either the vehicle is physically not enabled to tow a trailer or it has been detected that no trailer is present, -# * - 1 `trailerPresentWithKnownLength` - to indicate that a trailer has been detected as present and the length is included in the vehicle length value, -# * - 2 `trailerPresentWithUnknownLength` - to indicate that a trailer has been detected as present and the length is not included in the vehicle length value, -# * - 3 `trailerPresenceIsUnknown` - to indicate that information about the trailer presence is unknown, i.e. the vehicle is physically enabled to tow a trailer but the detection of trailer presence/absence is not possible, -# * - 4 `unavailable` - to indicate that the information about the presence of a trailer is not available, i.e. it is neither known whether the vehicle is able to tow a trailer, -# * nor the detection of trailer presence/absence is possible. -# * -# * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref TrailerPresenceInformation instead. -# * @category: Vehicle information -# * @revision: Description revised in V2.1.1 -# uint8 value uint8 NO_TRAILER_PRESENT = 0 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleLengthValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleLengthValue.msg index 00755b712..5496cc887 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleLengthValue.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleLengthValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,27 +25,28 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the length of a vehicle. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 1022`) to indicate the applicable value n is equal to or less than n x 0,1 metre, and greater than (n-1) x 0,1 metre, +# * - `1 022` to indicate that the vehicle length is greater than 102.1 metres, +# * - `1 023` to indicate that the information in unavailable. +# * +# * +# * @unit: 0,1 metre +# * @category: Vehicle information +# * @revision: Description updated in V2.1.1 (the meaning of 1 022 has changed slightly). +# */ # VehicleLengthValue ::= INTEGER { # outOfRange(1022), # unavailable(1023) # } (1..1023) # ------------------------------------------------------------------------------ -# * -# * This DE represents the length of a vehicle. -# * -# * The value shall be set to: -# * - `n` (`n > 0` and `n < 1022`) to indicate the applicable value n is equal to or less than n x 0,1 metre, and greater than (n-1) x 0,1 metre, -# * - `1 022` to indicate that the vehicle length is greater than 102.1 metres, -# * - `1 023` to indicate that the information in unavailable. -# * -# * -# * @unit: 0,1 metre -# * @category: Vehicle information -# * @revision: Description updated in V2.1.1 (the meaning of 1 022 has changed slightly). -# uint16 value uint16 MIN = 1 uint16 MAX = 1023 uint16 OUT_OF_RANGE = 1022 uint16 UNAVAILABLE = 1023 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleRole.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleRole.msg index d0ec641e4..4edd5dab8 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleRole.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleRole.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,30 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the role played by a vehicle at a point in time. +# * +# * The value shall be set to: +# * - 0 `default` - to indicate the default vehicle role as indicated by the vehicle type, +# * - 1 `publicTransport` - to indicate that the vehicle is used to operate public transport service, +# * - 2 `specialTransport` - to indicate that the vehicle is used for special transport purpose, e.g. oversized trucks, +# * - 3 `dangerousGoods` - to indicate that the vehicle is used for dangerous goods transportation, +# * - 4 `roadWork` - to indicate that the vehicle is used to realize roadwork or road maintenance mission, +# * - 5 `rescue` - to indicate that the vehicle is used for rescue purpose in case of an accident, e.g. as a towing service, +# * - 6 `emergency` - to indicate that the vehicle is used for emergency mission, e.g. ambulance, fire brigade, +# * - 7 `safetyCar` - to indicate that the vehicle is used for public safety, e.g. patrol, +# * - 8 `agriculture` - to indicate that the vehicle is used for agriculture, e.g. farm tractor, +# * - 9 `commercial` - to indicate that the vehicle is used for transportation of commercial goods, +# * - 10 `military` - to indicate that the vehicle is used for military purpose, +# * - 11 `roadOperator` - to indicate that the vehicle is used in road operator missions, +# * - 12 `taxi` - to indicate that the vehicle is used to provide an authorized taxi service, +# * - 13 `uvar` - to indicate that the vehicle is authorized to enter a zone according to the applicable Urban Vehicle Access Restrictions. +# * - 14 `rfu1` - is reserved for future usage. +# * - 15 `rfu2` - is reserved for future usage. +# * +# * @category: Vehicle Information +# * @revision: Description updated in V2.1.1 (removed reference to CEN/TS 16157-3), value 13 assigned in V2.2.1 +# */ # VehicleRole ::= ENUMERATED { # default (0), # publicTransport (1), @@ -45,30 +68,6 @@ # rfu2 (15) # } # ------------------------------------------------------------------------------ -# * -# * This DE indicates the role played by a vehicle at a point in time. -# * -# * The value shall be set to: -# * - 0 `default` - to indicate the default vehicle role as indicated by the vehicle type, -# * - 1 `publicTransport` - to indicate that the vehicle is used to operate public transport service, -# * - 2 `specialTransport` - to indicate that the vehicle is used for special transport purpose, e.g. oversized trucks, -# * - 3 `dangerousGoods` - to indicate that the vehicle is used for dangerous goods transportation, -# * - 4 `roadWork` - to indicate that the vehicle is used to realize roadwork or road maintenance mission, -# * - 5 `rescue` - to indicate that the vehicle is used for rescue purpose in case of an accident, e.g. as a towing service, -# * - 6 `emergency` - to indicate that the vehicle is used for emergency mission, e.g. ambulance, fire brigade, -# * - 7 `safetyCar` - to indicate that the vehicle is used for public safety, e.g. patrol, -# * - 8 `agriculture` - to indicate that the vehicle is used for agriculture, e.g. farm tractor, -# * - 9 `commercial` - to indicate that the vehicle is used for transportation of commercial goods, -# * - 10 `military` - to indicate that the vehicle is used for military purpose, -# * - 11 `roadOperator` - to indicate that the vehicle is used in road operator missions, -# * - 12 `taxi` - to indicate that the vehicle is used to provide an authorized taxi service, -# * - 13 `uvar` - to indicate that the vehicle is authorized to enter a zone according to the applicable Urban Vehicle Access Restrictions. -# * - 14 `rfu1` - is reserved for future usage. -# * - 15 `rfu2` - is reserved for future usage. -# * -# * @category: Vehicle Information -# * @revision: Description updated in V2.1.1 (removed reference to CEN/TS 16157-3), value 13 assigned in V2.2.1 -# uint8 value uint8 DEFAULT = 0 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleWidth.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleWidth.msg index ac255b405..30097ba51 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleWidth.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/VehicleWidth.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,26 +25,27 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the width of a vehicle, excluding side mirrors and possible similar extensions. +# +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 61`) indicates the applicable value is equal to or less than n x 0,1 metre, and greater than (n-1) x 0,1 metre, +# * - `61` indicates that the vehicle width is greater than 6,0 metres, +# * - `62` indicates that the information in unavailable. +# * +# * @unit: 0,1 metre +# * @category: Vehicle information +# * @revision: Description updated in V2.1.1 (the meaning of 61 has changed slightly). +# */ # VehicleWidth ::= INTEGER { # outOfRange (61), # unavailable (62) # } (1..62) # ------------------------------------------------------------------------------ -# * -# * This DE represents the width of a vehicle, excluding side mirrors and possible similar extensions. -# -# * The value shall be set to: -# * - `n` (`n > 0` and `n < 61`) indicates the applicable value is equal to or less than n x 0,1 metre, and greater than (n-1) x 0,1 metre, -# * - `61` indicates that the vehicle width is greater than 6,0 metres, -# * - `62` indicates that the information in unavailable. -# * -# * @unit: 0,1 metre -# * @category: Vehicle information -# * @revision: Description updated in V2.1.1 (the meaning of 61 has changed slightly). -# uint8 value uint8 MIN = 1 uint8 MAX = 62 uint8 OUT_OF_RANGE = 61 uint8 UNAVAILABLE = 62 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Wgs84AngleValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Wgs84AngleValue.msg index 1ab413e2c..8cb4946ff 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Wgs84AngleValue.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/Wgs84AngleValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,15 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents an angle value in degrees described in the WGS84 reference system with respect to the WGS84 north. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * When the information is not available, the DE shall be set to 3 601. The value 3600 shall not be used. +# * +# * @unit 0,1 degrees +# * @category: GeoReference Information +# * @revision: Created in V2.1.1 +# */ # Wgs84AngleValue ::= INTEGER { # wgs84North (0), # wgs84East (900), @@ -35,15 +43,6 @@ # unavailable (3601) # } (0..3601) # ------------------------------------------------------------------------------ -# * -# * This DE represents an angle value in degrees described in the WGS84 reference system with respect to the WGS84 north. -# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. -# * When the information is not available, the DE shall be set to 3 601. The value 3600 shall not be used. -# * -# * @unit 0,1 degrees -# * @category: GeoReference Information -# * @revision: Created in V2.1.1 -# uint16 value uint16 MIN = 0 @@ -54,3 +53,4 @@ uint16 WGS84_SOUTH = 1800 uint16 WGS84_WEST = 2700 uint16 DO_NOT_USE = 3600 uint16 UNAVAILABLE = 3601 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/WrongWayDrivingSubCauseCode.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/WrongWayDrivingSubCauseCode.msg index 0effa240e..7dc18e849 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/WrongWayDrivingSubCauseCode.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/WrongWayDrivingSubCauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,24 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the sub cause codes of the @ref CauseCode `wrongWayDriving` . +# * +# * The value shall be set to: +# * - 0 `unavailable` - in case further detailed information on wrong way driving event is unavailable, +# * - 1 `wrongLane` - in case vehicle is driving on a lane for which it has no authorization to use, +# * - 2 `wrongDirection` - in case vehicle is driving in a direction that it is not allowed, +# * - 3-255 - reserved for future usage. +# * +# * @category: Traffic information +# * @revision: V1.3.1 +# */ # WrongWayDrivingSubCauseCode ::= INTEGER { # unavailable (0), # wrongLane (1), # wrongDirection (2) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the sub cause codes of the @ref CauseCode `wrongWayDriving` . -# * -# * The value shall be set to: -# * - 0 `unavailable` - in case further detailed information on wrong way driving event is unavailable, -# * - 1 `wrongLane` - in case vehicle is driving on a lane for which it has no authorization to use, -# * - 2 `wrongDirection` - in case vehicle is driving in a direction that it is not allowed, -# * - 3-255 - reserved for future usage. -# * -# * @category: Traffic information -# * @revision: V1.3.1 -# uint8 value uint8 MIN = 0 @@ -51,3 +50,4 @@ uint8 MAX = 255 uint8 UNAVAILABLE = 0 uint8 WRONG_LANE = 1 uint8 WRONG_DIRECTION = 2 + diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/YawRate.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/YawRate.msg index de108b94c..641f18597 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/YawRate.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/YawRate.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,23 +25,23 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents a yaw rate of vehicle at a point in time. +# * +# * It shall include the following components: +# * +# * @field yawRateValue: yaw rate value at a point in time. +# * +# * @field yawRateConfidence: confidence value associated to the yaw rate value. +# * +# * @category: Vehicle Information +# * @revision: V1.3.1 +# */ # YawRate::= SEQUENCE { # yawRateValue YawRateValue, # yawRateConfidence YawRateConfidence # } # ------------------------------------------------------------------------------ -# * -# * This DF represents a yaw rate of vehicle at a point in time. -# * -# * It shall include the following components: -# * -# * @field yawRateValue: yaw rate value at a point in time. -# * -# * @field yawRateConfidence: confidence value associated to the yaw rate value. -# * -# * @category: Vehicle Information -# * @revision: V1.3.1 -# YawRateValue yaw_rate_value diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/YawRateConfidence.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/YawRateConfidence.msg index 52d4de692..d45ae2fd5 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/YawRateConfidence.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/YawRateConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,34 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the yaw rate confidence value which represents the estimated accuracy for a yaw rate value with a default confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `0` if the confidence value is equal to or less than 0,01 degree/second, +# * - `1` if the confidence value is equal to or less than 0,05 degrees/second or greater than 0,01 degree/second, +# * - `2` if the confidence value is equal to or less than 0,1 degree/second or greater than 0,05 degree/second, +# * - `3` if the confidence value is equal to or less than 1 degree/second or greater than 0,1 degree/second, +# * - `4` if the confidence value is equal to or less than 5 degrees/second or greater than 1 degrees/second, +# * - `5` if the confidence value is equal to or less than 10 degrees/second or greater than 5 degrees/second, +# * - `6` if the confidence value is equal to or less than 100 degrees/second or greater than 10 degrees/second, +# * - `7` if the confidence value is out of range, i.e. greater than 100 degrees/second, +# * - `8` if the confidence value is unavailable. +# * +# * NOTE: The fact that a yaw rate value is received with confidence value set to `unavailable(8)` can be caused by +# * several reasons, such as: +# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, +# * - the sensor cannot calculate the accuracy due to lack of variables, or +# * - there has been a vehicle bus (e.g. CAN bus) error. +# * In all 3 cases above, the yaw rate value may be valid and used by the application. +# * +# * If a yaw rate value is received and its confidence value is set to `outOfRange(7)`, it means that the +# * yaw rate value is not valid and therefore cannot be trusted. Such value is not useful the application. +# * +# * @category: Vehicle information +# * @revision: Description revised in V2.1.1 +# */ # YawRateConfidence ::= ENUMERATED { # degSec-000-01 (0), # degSec-000-05 (1), @@ -38,34 +65,6 @@ # unavailable (8) # } # ------------------------------------------------------------------------------ -# * -# * This DE indicates the yaw rate confidence value which represents the estimated accuracy for a yaw rate value with a default confidence level of 95 %. -# * If required, the confidence level can be defined by the corresponding standards applying this DE. -# * -# * The value shall be set to: -# * - `0` if the confidence value is equal to or less than 0,01 degree/second, -# * - `1` if the confidence value is equal to or less than 0,05 degrees/second or greater than 0,01 degree/second, -# * - `2` if the confidence value is equal to or less than 0,1 degree/second or greater than 0,05 degree/second, -# * - `3` if the confidence value is equal to or less than 1 degree/second or greater than 0,1 degree/second, -# * - `4` if the confidence value is equal to or less than 5 degrees/second or greater than 1 degrees/second, -# * - `5` if the confidence value is equal to or less than 10 degrees/second or greater than 5 degrees/second, -# * - `6` if the confidence value is equal to or less than 100 degrees/second or greater than 10 degrees/second, -# * - `7` if the confidence value is out of range, i.e. greater than 100 degrees/second, -# * - `8` if the confidence value is unavailable. -# * -# * NOTE: The fact that a yaw rate value is received with confidence value set to `unavailable(8)` can be caused by -# * several reasons, such as: -# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, -# * - the sensor cannot calculate the accuracy due to lack of variables, or -# * - there has been a vehicle bus (e.g. CAN bus) error. -# * In all 3 cases above, the yaw rate value may be valid and used by the application. -# * -# * If a yaw rate value is received and its confidence value is set to `outOfRange(7)`, it means that the -# * yaw rate value is not valid and therefore cannot be trusted. Such value is not useful the application. -# * -# * @category: Vehicle information -# * @revision: Description revised in V2.1.1 -# uint8 value uint8 DEG_SEC_000_01 = 0 diff --git a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/YawRateValue.msg b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/YawRateValue.msg index f608e71f2..e9e977e00 100644 --- a/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/YawRateValue.msg +++ b/etsi_its_msgs/etsi_its_cam_ts_msgs/msg/YawRateValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,36 +25,36 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the vehicle rotation around z-axis of the coordinate system centred on the centre of mass of the empty-loaded +# * vehicle. The leading sign denotes the direction of rotation. +# * +# * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11. +# * +# * The value shall be set to: +# * - `-32 766` to indicate that the yaw rate is equal to or greater than 327,66 degrees/second to the right, +# * - `n` (`n > -32 766` and `n <= 0`) to indicate that the rotation is clockwise (i.e. to the right) and is equal to or less than n x 0,01 degrees/s, +# and greater than (n-1) x 0,01 degrees/s, +# * - `n` (`n > 0` and `n < 32 766`) to indicate that the rotation is anti-clockwise (i.e. to the left) and is equal to or less than n x 0,01 degrees/s, +# and greater than (n-1) x 0,01 degrees/s, +# * - `32 766` to indicate that the yaw rate is greater than 327.65 degrees/second to the left, +# * - `32 767` to indicate that the information is not available. +# * +# * The yaw rate value shall be a raw data value, i.e. not filtered, smoothed or otherwise modified. +# * The reading instant should be the same as for the vehicle acceleration. +# * +# * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6. +# * +# * @unit: 0,01 degree per second. +# * @category: Vehicle Information +# * @revision: Desription revised in V2.1.1 (the meaning of 32766 has changed slightly). +# */ # YawRateValue ::= INTEGER { # negativeOutOfRange (-32766), # positiveOutOfRange (32766), # unavailable (32767) # } (-32766..32767) # ------------------------------------------------------------------------------ -# * -# * This DE represents the vehicle rotation around z-axis of the coordinate system centred on the centre of mass of the empty-loaded -# * vehicle. The leading sign denotes the direction of rotation. -# * -# * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11. -# * -# * The value shall be set to: -# * - `-32 766` to indicate that the yaw rate is equal to or greater than 327,66 degrees/second to the right, -# * - `n` (`n > -32 766` and `n <= 0`) to indicate that the rotation is clockwise (i.e. to the right) and is equal to or less than n x 0,01 degrees/s, -# and greater than (n-1) x 0,01 degrees/s, -# * - `n` (`n > 0` and `n < 32 766`) to indicate that the rotation is anti-clockwise (i.e. to the left) and is equal to or less than n x 0,01 degrees/s, -# and greater than (n-1) x 0,01 degrees/s, -# * - `32 766` to indicate that the yaw rate is greater than 327.65 degrees/second to the left, -# * - `32 767` to indicate that the information is not available. -# * -# * The yaw rate value shall be a raw data value, i.e. not filtered, smoothed or otherwise modified. -# * The reading instant should be the same as for the vehicle acceleration. -# * -# * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6. -# * -# * @unit: 0,01 degree per second. -# * @category: Vehicle Information -# * @revision: Desription revised in V2.1.1 (the meaning of 32766 has changed slightly). -# int16 value int16 MIN = -32766 @@ -63,3 +62,4 @@ int16 MAX = 32767 int16 NEGATIVE_OUT_OF_RANGE = -32766 int16 POSITIVE_OUT_OF_RANGE = 32766 int16 UNAVAILABLE = 32767 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/ActionID.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/ActionID.msg index da824d68a..31562323b 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/ActionID.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/ActionID.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,7 @@ # sequenceNumber SequenceNumber # } # ------------------------------------------------------------------------------ + StationID originating_station_id SequenceNumber sequence_number diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/AlacarteContainer.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/AlacarteContainer.msg index 69ada2442..ab5b0f274 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/AlacarteContainer.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/AlacarteContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -36,6 +35,7 @@ # ... # } # ------------------------------------------------------------------------------ + LanePosition lane_position bool lane_position_is_present diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/Altitude.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/Altitude.msg index 8eba07254..d983bf70d 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/Altitude.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/Altitude.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,7 @@ # altitudeConfidence AltitudeConfidence # } # ------------------------------------------------------------------------------ + AltitudeValue altitude_value AltitudeConfidence altitude_confidence diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/AltitudeConfidence.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/AltitudeConfidence.msg index 6be322d13..0980e2fc8 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/AltitudeConfidence.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/AltitudeConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/AltitudeValue.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/AltitudeValue.msg index 993b5d523..2749450ab 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/AltitudeValue.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/AltitudeValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ int32 MAX = 800001 int32 REFERENCE_ELLIPSOID_SURFACE = 0 int32 ONE_CENTIMETER = 1 int32 UNAVAILABLE = 800001 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/CauseCode.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/CauseCode.msg index 795187fbc..8a0e36294 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/CauseCode.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/CauseCode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -32,6 +31,7 @@ # ... # } # ------------------------------------------------------------------------------ + CauseCodeType cause_code SubCauseCodeType sub_cause_code diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/CauseCodeType.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/CauseCodeType.msg index 6c969c9ad..ff9b4917e 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/CauseCodeType.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/CauseCodeType.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -87,3 +86,4 @@ uint8 HAZARDOUS_LOCATION_DANGEROUS_CURVE = 96 uint8 COLLISION_RISK = 97 uint8 SIGNAL_VIOLATION = 98 uint8 DANGEROUS_SITUATION = 99 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/ClosedLanes.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/ClosedLanes.msg index 9c0fa3db8..87c675798 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/ClosedLanes.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/ClosedLanes.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -33,6 +32,7 @@ # ... # } # ------------------------------------------------------------------------------ + HardShoulderStatus innerhard_shoulder_status bool innerhard_shoulder_status_is_present diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/DENM.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/DENM.msg index 51d787374..8f1237378 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/DENM.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/DENM.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,7 @@ # denm DecentralizedEnvironmentalNotificationMessage # } # ------------------------------------------------------------------------------ + ItsPduHeader header DecentralizedEnvironmentalNotificationMessage denm diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/DangerousGoodsBasic.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/DangerousGoodsBasic.msg index 7092206e0..b6624492b 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/DangerousGoodsBasic.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/DangerousGoodsBasic.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/DangerousGoodsExtended.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/DangerousGoodsExtended.msg index 07f94fc35..71c7c0098 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/DangerousGoodsExtended.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/DangerousGoodsExtended.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -38,6 +37,7 @@ # ... # } # ------------------------------------------------------------------------------ + DangerousGoodsBasic dangerous_goods_type uint16 un_number diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/DecentralizedEnvironmentalNotificationMessage.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/DecentralizedEnvironmentalNotificationMessage.msg index 3ca68db0b..c9b9514d1 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/DecentralizedEnvironmentalNotificationMessage.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/DecentralizedEnvironmentalNotificationMessage.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -33,6 +32,7 @@ # alacarte AlacarteContainer OPTIONAL # } # ------------------------------------------------------------------------------ + ManagementContainer management SituationContainer situation diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/DeltaAltitude.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/DeltaAltitude.msg index e2b6d8e15..44563abe3 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/DeltaAltitude.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/DeltaAltitude.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ int16 MAX = 12800 int16 ONE_CENTIMETER_UP = 1 int16 ONE_CENTIMETER_DOWN = -1 int16 UNAVAILABLE = 12800 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/DeltaLatitude.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/DeltaLatitude.msg index 3d9841fe6..ffc7febdb 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/DeltaLatitude.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/DeltaLatitude.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ int32 MAX = 131072 int32 ONE_MICRODEGREE_NORTH = 10 int32 ONE_MICRODEGREE_SOUTH = -10 int32 UNAVAILABLE = 131072 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/DeltaLongitude.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/DeltaLongitude.msg index 0b21013e8..7ecdc7aef 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/DeltaLongitude.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/DeltaLongitude.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ int32 MAX = 131072 int32 ONE_MICRODEGREE_EAST = 10 int32 ONE_MICRODEGREE_WEST = -10 int32 UNAVAILABLE = 131072 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/DeltaReferencePosition.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/DeltaReferencePosition.msg index 76f4db21d..16249aa17 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/DeltaReferencePosition.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/DeltaReferencePosition.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -32,6 +31,7 @@ # deltaAltitude DeltaAltitude # } # ------------------------------------------------------------------------------ + DeltaLatitude delta_latitude DeltaLongitude delta_longitude diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/DrivingLaneStatus.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/DrivingLaneStatus.msg index 56de3624c..e43882e78 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/DrivingLaneStatus.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/DrivingLaneStatus.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/EnergyStorageType.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/EnergyStorageType.msg index ef2b2d70e..09b5c231a 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/EnergyStorageType.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/EnergyStorageType.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -39,3 +38,4 @@ uint8 BIT_INDEX_COMPRESSED_NATURAL_GAS = 3 uint8 BIT_INDEX_DIESEL = 4 uint8 BIT_INDEX_GASOLINE = 5 uint8 BIT_INDEX_AMMONIA = 6 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/EventHistory.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/EventHistory.msg index 1fc56a2a2..2b9b111c7 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/EventHistory.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/EventHistory.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -32,3 +31,4 @@ EventPoint[] array uint8 MIN_SIZE = 1 uint8 MAX_SIZE = 23 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/EventPoint.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/EventPoint.msg index d72976751..a5e8b6b8d 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/EventPoint.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/EventPoint.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -32,6 +31,7 @@ # informationQuality InformationQuality # } # ------------------------------------------------------------------------------ + DeltaReferencePosition event_position PathDeltaTime event_delta_time diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/HardShoulderStatus.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/HardShoulderStatus.msg index 4980a2d7f..5d37cf179 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/HardShoulderStatus.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/HardShoulderStatus.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/Heading.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/Heading.msg index d3c702705..662abe9f1 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/Heading.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/Heading.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,7 @@ # headingConfidence HeadingConfidence # } # ------------------------------------------------------------------------------ + HeadingValue heading_value HeadingConfidence heading_confidence diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/HeadingConfidence.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/HeadingConfidence.msg index 9f9fcb6f8..7c8a3482f 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/HeadingConfidence.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/HeadingConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -36,3 +35,4 @@ uint8 EQUAL_OR_WITHIN_ZERO_POINT_ONE_DEGREE = 1 uint8 EQUAL_OR_WITHIN_ONE_DEGREE = 10 uint8 OUT_OF_RANGE = 126 uint8 UNAVAILABLE = 127 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/HeadingValue.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/HeadingValue.msg index aa7a3436f..77b6b654a 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/HeadingValue.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/HeadingValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -37,3 +36,4 @@ uint16 WGS84_EAST = 900 uint16 WGS84_SOUTH = 1800 uint16 WGS84_WEST = 2700 uint16 UNAVAILABLE = 3601 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/HeightLonCarr.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/HeightLonCarr.msg index f284c0b49..501e1454a 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/HeightLonCarr.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/HeightLonCarr.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -34,3 +33,4 @@ uint8 MIN = 1 uint8 MAX = 100 uint8 ONE_CENTIMETER = 1 uint8 UNAVAILABLE = 100 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/ImpactReductionContainer.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/ImpactReductionContainer.msg index fc26114f1..ef35c41c7 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/ImpactReductionContainer.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/ImpactReductionContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -41,6 +40,7 @@ # requestResponseIndication RequestResponseIndication # } # ------------------------------------------------------------------------------ + HeightLonCarr height_lon_carr_left HeightLonCarr height_lon_carr_right diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/InformationQuality.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/InformationQuality.msg index 9cf015424..50921c06c 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/InformationQuality.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/InformationQuality.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ uint8 MAX = 7 uint8 UNAVAILABLE = 0 uint8 LOWEST = 1 uint8 HIGHEST = 7 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/ItineraryPath.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/ItineraryPath.msg index c27883349..6232bbc33 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/ItineraryPath.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/ItineraryPath.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -32,3 +31,4 @@ ReferencePosition[] array uint8 MIN_SIZE = 1 uint8 MAX_SIZE = 40 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/ItsPduHeader.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/ItsPduHeader.msg index ad5a594dd..482b6afcb 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/ItsPduHeader.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/ItsPduHeader.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -30,6 +29,7 @@ # protocolVersion INTEGER (0..255), # messageID INTEGER{ denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13) } (0..255), -- Mantis #7209, #7005 # ------------------------------------------------------------------------------ + uint8 protocol_version uint8 PROTOCOL_VERSION_MIN = 0 uint8 PROTOCOL_VERSION_MAX = 255 diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/LanePosition.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/LanePosition.msg index 3d71c17b5..c5899ad33 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/LanePosition.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/LanePosition.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -37,3 +36,4 @@ int8 OFF_THE_ROAD = -1 int8 HARD_SHOULDER = 0 int8 OUTERMOST_DRIVING_LANE = 1 int8 SECOND_LANE_FROM_OUTSIDE = 2 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/Latitude.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/Latitude.msg index 6af9d110d..46e48f60e 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/Latitude.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/Latitude.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ int32 MAX = 900000001 int32 ONE_MICRODEGREE_NORTH = 10 int32 ONE_MICRODEGREE_SOUTH = -10 int32 UNAVAILABLE = 900000001 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/LightBarSirenInUse.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/LightBarSirenInUse.msg index ff2558e7f..5e1d4f484 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/LightBarSirenInUse.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/LightBarSirenInUse.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -37,3 +36,4 @@ uint8 bits_unused uint8 SIZE_BITS = 2 uint8 BIT_INDEX_LIGHT_BAR_ACTIVATED = 0 uint8 BIT_INDEX_SIREN_ACTIVATED = 1 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/LocationContainer.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/LocationContainer.msg index b6cfb9b4c..97e31ef0f 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/LocationContainer.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/LocationContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -34,6 +33,7 @@ # ... # } # ------------------------------------------------------------------------------ + Speed event_speed bool event_speed_is_present diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/Longitude.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/Longitude.msg index f49d25fa4..bd0e4e82d 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/Longitude.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/Longitude.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ int32 MAX = 1800000001 int32 ONE_MICRODEGREE_EAST = 10 int32 ONE_MICRODEGREE_WEST = -10 int32 UNAVAILABLE = 1800000001 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/ManagementContainer.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/ManagementContainer.msg index b8212b0cd..381af670c 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/ManagementContainer.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/ManagementContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -40,6 +39,7 @@ # ... # } # ------------------------------------------------------------------------------ + ActionID action_id TimestampIts detection_time @@ -58,11 +58,10 @@ RelevanceTrafficDirection relevance_traffic_direction bool relevance_traffic_direction_is_present ValidityDuration validity_duration +uint16 VALIDITY_DURATION_DEFAULT = 600 TransmissionInterval transmission_interval bool transmission_interval_is_present StationType station_type - -uint32 VALIDITY_DURATION_DEFAULT = 600 diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/NumberOfOccupants.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/NumberOfOccupants.msg index 8ddfdfa47..8042f9a04 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/NumberOfOccupants.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/NumberOfOccupants.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -34,3 +33,4 @@ uint8 MIN = 0 uint8 MAX = 127 uint8 ONE_OCCUPANT = 1 uint8 UNAVAILABLE = 127 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/PathDeltaTime.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/PathDeltaTime.msg index 194b6764a..f284ab07a 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/PathDeltaTime.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/PathDeltaTime.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -29,7 +28,8 @@ # PathDeltaTime ::= INTEGER {tenMilliSecondsInPast(1)} (1..65535, ...) # ------------------------------------------------------------------------------ -int64 value -int64 MIN = 1 -int64 MAX = 65535 -int64 TEN_MILLI_SECONDS_IN_PAST = 1 +uint16 value +uint16 MIN = 1 +uint16 MAX = 65535 +uint16 TEN_MILLI_SECONDS_IN_PAST = 1 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/PathHistory.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/PathHistory.msg index dc5d2f0e7..309260c62 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/PathHistory.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/PathHistory.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -32,3 +31,4 @@ PathPoint[] array uint8 MIN_SIZE = 0 uint8 MAX_SIZE = 40 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/PathPoint.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/PathPoint.msg index bd08b5692..886d71eee 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/PathPoint.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/PathPoint.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,7 @@ # pathDeltaTime PathDeltaTime OPTIONAL # } # ------------------------------------------------------------------------------ + DeltaReferencePosition path_position PathDeltaTime path_delta_time diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/PhoneNumber.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/PhoneNumber.msg index 58000694a..79d9f4061 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/PhoneNumber.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/PhoneNumber.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -32,3 +31,4 @@ string value uint8 MIN_SIZE = 1 uint8 MAX_SIZE = 16 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/PosCentMass.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/PosCentMass.msg index eff5952cc..3d04f294b 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/PosCentMass.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/PosCentMass.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -34,3 +33,4 @@ uint8 MIN = 1 uint8 MAX = 63 uint8 TEN_CENTIMETERS = 1 uint8 UNAVAILABLE = 63 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/PosConfidenceEllipse.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/PosConfidenceEllipse.msg index bc8c34055..623839771 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/PosConfidenceEllipse.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/PosConfidenceEllipse.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -32,6 +31,7 @@ # semiMajorOrientation HeadingValue # } # ------------------------------------------------------------------------------ + SemiAxisLength semi_major_confidence SemiAxisLength semi_minor_confidence diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/PosFrontAx.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/PosFrontAx.msg index 41c4220f2..fac16249e 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/PosFrontAx.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/PosFrontAx.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -34,3 +33,4 @@ uint8 MIN = 1 uint8 MAX = 20 uint8 TEN_CENTIMETERS = 1 uint8 UNAVAILABLE = 20 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/PosLonCarr.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/PosLonCarr.msg index ef0b75652..161f06b9e 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/PosLonCarr.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/PosLonCarr.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -34,3 +33,4 @@ uint8 MIN = 1 uint8 MAX = 127 uint8 ONE_CENTIMETER = 1 uint8 UNAVAILABLE = 127 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/PosPillar.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/PosPillar.msg index 8a774d20d..5b0aa526a 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/PosPillar.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/PosPillar.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -34,3 +33,4 @@ uint8 MIN = 1 uint8 MAX = 30 uint8 TEN_CENTIMETERS = 1 uint8 UNAVAILABLE = 30 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/PositionOfOccupants.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/PositionOfOccupants.msg index f056f174f..3adcb315c 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/PositionOfOccupants.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/PositionOfOccupants.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -72,3 +71,4 @@ uint8 BIT_INDEX_ROW4_RIGHT_OCCUPIED = 16 uint8 BIT_INDEX_ROW4_MID_OCCUPIED = 17 uint8 BIT_INDEX_ROW4_NOT_DETECTABLE = 18 uint8 BIT_INDEX_ROW4_NOT_PRESENT = 19 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/PositionOfPillars.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/PositionOfPillars.msg index 1e8df5a0e..13eda274e 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/PositionOfPillars.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/PositionOfPillars.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -30,5 +29,6 @@ # ------------------------------------------------------------------------------ PosPillar[] array -int64 MIN_SIZE = 1 -int64 MAX_SIZE = 3 +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 3 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/PositioningSolutionType.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/PositioningSolutionType.msg index c1e6c1972..e901ab59f 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/PositioningSolutionType.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/PositioningSolutionType.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -33,7 +32,7 @@ uint8 value uint8 NO_POSITIONING_SOLUTION = 0 uint8 S_GNSS = 1 uint8 D_GNSS = 2 -uint8 S_GNS_SPLUS_DR = 3 -uint8 D_GNS_SPLUS_DR = 4 +uint8 S_GNSS_PLUS_D_R = 3 +uint8 D_GNSS_PLUS_D_R = 4 uint8 D_R = 5 diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/ReferenceDenms.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/ReferenceDenms.msg index 8d1e6ba15..e0ecfc48e 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/ReferenceDenms.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/ReferenceDenms.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -30,5 +29,6 @@ # ------------------------------------------------------------------------------ ActionID[] array -int64 MIN_SIZE = 1 -int64 MAX_SIZE = 8 +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 8 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/ReferencePosition.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/ReferencePosition.msg index 9a896c32d..ed32a3f06 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/ReferencePosition.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/ReferencePosition.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -33,6 +32,7 @@ # altitude Altitude # } # ------------------------------------------------------------------------------ + Latitude latitude Longitude longitude diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/RelevanceDistance.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/RelevanceDistance.msg index 9f4c2ffd9..a4cf013ea 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/RelevanceDistance.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/RelevanceDistance.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/RelevanceTrafficDirection.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/RelevanceTrafficDirection.msg index 65e168afe..f9a90a157 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/RelevanceTrafficDirection.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/RelevanceTrafficDirection.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/RequestResponseIndication.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/RequestResponseIndication.msg index 70c75e36a..98c2f6899 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/RequestResponseIndication.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/RequestResponseIndication.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/RestrictedTypes.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/RestrictedTypes.msg index 78a48d8c8..46cb78ed8 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/RestrictedTypes.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/RestrictedTypes.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -30,5 +29,6 @@ # ------------------------------------------------------------------------------ StationType[] array -int64 MIN_SIZE = 1 -int64 MAX_SIZE = 3 +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 3 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/RoadType.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/RoadType.msg index 0496f88eb..86a761115 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/RoadType.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/RoadType.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/RoadWorksContainerExtended.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/RoadWorksContainerExtended.msg index 0afd4e231..acee63ceb 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/RoadWorksContainerExtended.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/RoadWorksContainerExtended.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -38,6 +37,7 @@ # referenceDenms ReferenceDenms OPTIONAL # } # ------------------------------------------------------------------------------ + LightBarSirenInUse light_bar_siren_in_use bool light_bar_siren_in_use_is_present diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/SemiAxisLength.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/SemiAxisLength.msg index 91e5a28c9..169261487 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/SemiAxisLength.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/SemiAxisLength.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ uint16 MAX = 4095 uint16 ONE_CENTIMETER = 1 uint16 OUT_OF_RANGE = 4094 uint16 UNAVAILABLE = 4095 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/SequenceNumber.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/SequenceNumber.msg index d0d280f0b..ddfaaac6d 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/SequenceNumber.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/SequenceNumber.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/SituationContainer.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/SituationContainer.msg index ee3f8a34c..9fd0da0a2 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/SituationContainer.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/SituationContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -34,6 +33,7 @@ # ... # } # ------------------------------------------------------------------------------ + InformationQuality information_quality CauseCode event_type diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/Speed.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/Speed.msg index 546c0cfb2..cbacd5804 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/Speed.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/Speed.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,7 @@ # speedConfidence SpeedConfidence # } # ------------------------------------------------------------------------------ + SpeedValue speed_value SpeedConfidence speed_confidence diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/SpeedConfidence.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/SpeedConfidence.msg index 125e6480a..57f5ffa50 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/SpeedConfidence.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/SpeedConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -36,3 +35,4 @@ uint8 EQUAL_OR_WITHIN_ONE_CENTIMETER_PER_SEC = 1 uint8 EQUAL_OR_WITHIN_ONE_METER_PER_SEC = 100 uint8 OUT_OF_RANGE = 126 uint8 UNAVAILABLE = 127 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/SpeedLimit.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/SpeedLimit.msg index b1b036db6..6de940a9d 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/SpeedLimit.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/SpeedLimit.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -33,3 +32,4 @@ uint8 value uint8 MIN = 1 uint8 MAX = 255 uint8 ONE_KM_PER_HOUR = 1 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/SpeedValue.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/SpeedValue.msg index 2405df854..d92d33d4d 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/SpeedValue.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/SpeedValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ uint16 MAX = 16383 uint16 STANDSTILL = 0 uint16 ONE_CENTIMETER_PER_SEC = 1 uint16 UNAVAILABLE = 16383 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/StationID.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/StationID.msg index 03c5211a6..116f3b1d2 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/StationID.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/StationID.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/StationType.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/StationType.msg index b85b2ad40..7bd932ddd 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/StationType.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/StationType.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -46,3 +45,4 @@ uint8 TRAILER = 9 uint8 SPECIAL_VEHICLES = 10 uint8 TRAM = 11 uint8 ROAD_SIDE_UNIT = 15 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/StationarySince.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/StationarySince.msg index 48e1ba09e..3031da9d1 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/StationarySince.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/StationarySince.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/StationaryVehicleContainer.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/StationaryVehicleContainer.msg index f4938e9f9..545e37d67 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/StationaryVehicleContainer.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/StationaryVehicleContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,6 +34,7 @@ # energyStorageType EnergyStorageType OPTIONAL # } # ------------------------------------------------------------------------------ + StationarySince stationary_since bool stationary_since_is_present diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/SubCauseCodeType.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/SubCauseCodeType.msg index 2ec96822a..82152e48b 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/SubCauseCodeType.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/SubCauseCodeType.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/Temperature.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/Temperature.msg index 0ea67fe0c..e6966cc7a 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/Temperature.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/Temperature.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -35,3 +34,4 @@ int8 MAX = 67 int8 EQUAL_OR_SMALLER_THAN_MINUS60_DEG = -60 int8 ONE_DEGREE_CELSIUS = 1 int8 EQUAL_OR_GREATER_THAN67_DEG = 67 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/Termination.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/Termination.msg index 381dba0be..87aab9fc5 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/Termination.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/Termination.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/TimestampIts.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/TimestampIts.msg index baba3df03..38436d838 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/TimestampIts.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/TimestampIts.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -34,3 +33,4 @@ uint64 MIN = 0 uint64 MAX = 4398046511103 uint64 UTC_START_OF2004 = 0 uint64 ONE_MILLISEC_AFTER_UTC_START_OF2004 = 1 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/Traces.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/Traces.msg index b49c80f00..0172094b2 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/Traces.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/Traces.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -32,3 +31,4 @@ PathHistory[] array uint8 MIN_SIZE = 1 uint8 MAX_SIZE = 7 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/TrafficRule.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/TrafficRule.msg index 00919a5e3..466c14488 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/TrafficRule.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/TrafficRule.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/TransmissionInterval.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/TransmissionInterval.msg index 69fad7429..73ed5ef3f 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/TransmissionInterval.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/TransmissionInterval.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -34,3 +33,4 @@ uint16 MIN = 1 uint16 MAX = 10000 uint16 ONE_MILLI_SECOND = 1 uint16 TEN_SECONDS = 10000 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/TurningRadius.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/TurningRadius.msg index 304b2bb87..13f0e091c 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/TurningRadius.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/TurningRadius.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -34,3 +33,4 @@ uint8 MIN = 1 uint8 MAX = 255 uint8 POINT4_METERS = 1 uint8 UNAVAILABLE = 255 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/VDS.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/VDS.msg index bf9fe4d63..07a569e72 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/VDS.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/VDS.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,3 +30,4 @@ string value uint8 SIZE = 6 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/ValidityDuration.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/ValidityDuration.msg index 660f6b086..35ac5f431 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/ValidityDuration.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/ValidityDuration.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -34,3 +33,4 @@ uint32 MIN = 0 uint32 MAX = 86400 uint32 TIME_OF_DETECTION = 0 uint32 ONE_SECOND_AFTER_DETECTION = 1 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/VehicleIdentification.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/VehicleIdentification.msg index 93417393e..f53e521eb 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/VehicleIdentification.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/VehicleIdentification.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -32,9 +31,10 @@ # ... # } # ------------------------------------------------------------------------------ -WMInumber w_m_inumber -bool w_m_inumber_is_present -VDS v_ds -bool v_ds_is_present +WMInumber wm_inumber +bool wm_inumber_is_present + +VDS vds +bool vds_is_present diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/VehicleMass.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/VehicleMass.msg index a6cb4e1c7..d3515af9d 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/VehicleMass.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/VehicleMass.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -34,3 +33,4 @@ uint16 MIN = 1 uint16 MAX = 1024 uint16 HUNDRED_KG = 1 uint16 UNAVAILABLE = 1024 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/WMInumber.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/WMInumber.msg index 6d45365f5..1655212dd 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/WMInumber.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/WMInumber.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -32,3 +31,4 @@ string value uint8 MIN_SIZE = 1 uint8 MAX_SIZE = 3 + diff --git a/etsi_its_msgs/etsi_its_denm_msgs/msg/WheelBaseVehicle.msg b/etsi_its_msgs/etsi_its_denm_msgs/msg/WheelBaseVehicle.msg index 9ae5f7ee3..214372786 100644 --- a/etsi_its_msgs/etsi_its_denm_msgs/msg/WheelBaseVehicle.msg +++ b/etsi_its_msgs/etsi_its_denm_msgs/msg/WheelBaseVehicle.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -34,3 +33,4 @@ uint8 MIN = 1 uint8 MAX = 127 uint8 TEN_CENTIMETERS = 1 uint8 UNAVAILABLE = 127 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/CMakeLists.txt b/etsi_its_msgs/etsi_its_mapem_ts_msgs/CMakeLists.txt new file mode 100644 index 000000000..8ccae3230 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/CMakeLists.txt @@ -0,0 +1,136 @@ +cmake_minimum_required(VERSION 3.5) +project(etsi_its_mapem_ts_msgs) + +find_package(ros_environment REQUIRED QUIET) +set(ROS_VERSION $ENV{ROS_VERSION}) + +# === ROS 2 (AMENT) ============================================================ +if(${ROS_VERSION} EQUAL 2) + + find_package(ament_cmake REQUIRED) + find_package(rosidl_default_generators REQUIRED) + + set(msg_files + "msg/AllowedManeuvers.msg" + "msg/Angle.msg" + "msg/ApproachID.msg" + "msg/ComputedLane.msg" + "msg/ConnectingLane.msg" + "msg/Connection.msg" + "msg/ConnectsToList.msg" + "msg/DataParameters.msg" + "msg/DeltaAngle.msg" + "msg/DescriptiveName.msg" + "msg/DrivenLineOffsetLg.msg" + "msg/DrivenLineOffsetSm.msg" + "msg/Elevation.msg" + "msg/GenericLane.msg" + "msg/IntersectionGeometry.msg" + "msg/IntersectionGeometryList.msg" + "msg/IntersectionID.msg" + "msg/IntersectionReferenceID.msg" + "msg/ItsPduHeader.msg" + "msg/LaneAttributes.msg" + "msg/LaneAttributesBarrier.msg" + "msg/LaneAttributesBike.msg" + "msg/LaneAttributesCrosswalk.msg" + "msg/LaneAttributesParking.msg" + "msg/LaneAttributesSidewalk.msg" + "msg/LaneAttributesStriping.msg" + "msg/LaneAttributesTrackedVehicle.msg" + "msg/LaneAttributesVehicle.msg" + "msg/LaneConnectionID.msg" + "msg/LaneDataAttribute.msg" + "msg/LaneDataAttributeList.msg" + "msg/LaneDirection.msg" + "msg/LaneID.msg" + "msg/LaneList.msg" + "msg/LaneSharing.msg" + "msg/LaneTypeAttributes.msg" + "msg/LaneWidth.msg" + "msg/Latitude.msg" + "msg/LayerID.msg" + "msg/LayerType.msg" + "msg/Longitude.msg" + "msg/MAPEM.msg" + "msg/MapData.msg" + "msg/MergeDivergeNodeAngle.msg" + "msg/MinuteOfTheYear.msg" + "msg/MsgCount.msg" + "msg/NodeAttributeSetXY.msg" + "msg/NodeAttributeXY.msg" + "msg/NodeAttributeXYList.msg" + "msg/NodeLLmD64b.msg" + "msg/NodeListXY.msg" + "msg/NodeOffsetPointXY.msg" + "msg/NodeSetXY.msg" + "msg/NodeXY.msg" + "msg/NodeXY20b.msg" + "msg/NodeXY22b.msg" + "msg/NodeXY24b.msg" + "msg/NodeXY26b.msg" + "msg/NodeXY28b.msg" + "msg/NodeXY32b.msg" + "msg/OffsetB10.msg" + "msg/OffsetB11.msg" + "msg/OffsetB12.msg" + "msg/OffsetB13.msg" + "msg/OffsetB14.msg" + "msg/OffsetB16.msg" + "msg/OverlayLaneList.msg" + "msg/Position3D.msg" + "msg/PreemptPriorityList.msg" + "msg/RegulatorySpeedLimit.msg" + "msg/RestrictionAppliesTo.msg" + "msg/RestrictionClassAssignment.msg" + "msg/RestrictionClassID.msg" + "msg/RestrictionClassList.msg" + "msg/RestrictionUserType.msg" + "msg/RestrictionUserTypeList.msg" + "msg/RoadLaneSetList.msg" + "msg/RoadRegulatorID.msg" + "msg/RoadSegment.msg" + "msg/RoadSegmentID.msg" + "msg/RoadSegmentList.msg" + "msg/RoadSegmentReferenceID.msg" + "msg/RoadwayCrownAngle.msg" + "msg/ScaleB12.msg" + "msg/SegmentAttributeXY.msg" + "msg/SegmentAttributeXYList.msg" + "msg/SignalControlZone.msg" + "msg/SignalGroupID.msg" + "msg/SpeedLimitList.msg" + "msg/SpeedLimitType.msg" + "msg/StationID.msg" + "msg/Velocity.msg" + ) + + rosidl_generate_interfaces(${PROJECT_NAME} + ${msg_files} + ) + + ament_export_dependencies(rosidl_default_runtime) + + ament_package() + +# === ROS (CATKIN) ============================================================= +elseif(${ROS_VERSION} EQUAL 1) + + find_package(catkin REQUIRED COMPONENTS + message_generation + std_msgs + ) + + add_message_files(DIRECTORY msg) + + generate_messages( + DEPENDENCIES std_msgs + ) + + catkin_package( + CATKIN_DEPENDS + message_runtime + std_msgs + ) + +endif() diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/AllowedManeuvers.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/AllowedManeuvers.msg new file mode 100644 index 000000000..4d26734a1 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/AllowedManeuvers.msg @@ -0,0 +1,59 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AllowedManeuvers ::= BIT STRING { +# maneuverStraightAllowed (0), +# maneuverLeftAllowed (1), +# maneuverRightAllowed (2), +# maneuverUTurnAllowed (3), +# maneuverLeftTurnOnRedAllowed (4), +# maneuverRightTurnOnRedAllowed (5), +# maneuverLaneChangeAllowed (6), +# maneuverNoStoppingAllowed (7), +# yieldAllwaysRequired (8), +# goWithHalt (9), +# caution (10), +# reserved1 (11) +# } (SIZE(12)) +# ------------------------------------------------------------------------------ + +uint8[] value +uint8 bits_unused +uint8 SIZE_BITS = 12 +uint8 BIT_INDEX_MANEUVER_STRAIGHT_ALLOWED = 0 +uint8 BIT_INDEX_MANEUVER_LEFT_ALLOWED = 1 +uint8 BIT_INDEX_MANEUVER_RIGHT_ALLOWED = 2 +uint8 BIT_INDEX_MANEUVER_U_TURN_ALLOWED = 3 +uint8 BIT_INDEX_MANEUVER_LEFT_TURN_ON_RED_ALLOWED = 4 +uint8 BIT_INDEX_MANEUVER_RIGHT_TURN_ON_RED_ALLOWED = 5 +uint8 BIT_INDEX_MANEUVER_LANE_CHANGE_ALLOWED = 6 +uint8 BIT_INDEX_MANEUVER_NO_STOPPING_ALLOWED = 7 +uint8 BIT_INDEX_YIELD_ALLWAYS_REQUIRED = 8 +uint8 BIT_INDEX_GO_WITH_HALT = 9 +uint8 BIT_INDEX_CAUTION = 10 +uint8 BIT_INDEX_RESERVED1 = 11 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/Angle.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/Angle.msg new file mode 100644 index 000000000..9510b4bc7 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/Angle.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Angle ::= INTEGER (0..28800) +# ------------------------------------------------------------------------------ + +uint16 value +uint16 MIN = 0 +uint16 MAX = 28800 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/ApproachID.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/ApproachID.msg new file mode 100644 index 000000000..547ffcc53 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/ApproachID.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ApproachID ::= INTEGER (0..15) +# ------------------------------------------------------------------------------ + +uint8 value +uint8 MIN = 0 +uint8 MAX = 15 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/ComputedLane.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/ComputedLane.msg new file mode 100644 index 000000000..42ef2c9d0 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/ComputedLane.msg @@ -0,0 +1,71 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ComputedLane ::= SEQUENCE { +# referenceLaneId LaneID, +# offsetXaxis CHOICE { +# small DrivenLineOffsetSm, +# large DrivenLineOffsetLg +# }, +# offsetYaxis CHOICE { +# small DrivenLineOffsetSm, +# large DrivenLineOffsetLg +# }, +# rotateXY Angle OPTIONAL, +# scaleXaxis Scale-B12 OPTIONAL, +# scaleYaxis Scale-B12 OPTIONAL, +# regional SEQUENCE (SIZE(1..4)) OF +# RegionalExtension {{Reg-ComputedLane}} OPTIONAL, +# ------------------------------------------------------------------------------ + +LaneID reference_lane_id + +uint8 offset_xaxis_choice + +DrivenLineOffsetSm offset_xaxis_small +uint8 CHOICE_OFFSET_XAXIS_SMALL = 0 + +DrivenLineOffsetLg offset_xaxis_large +uint8 CHOICE_OFFSET_XAXIS_LARGE = 1 + +uint8 offset_yaxis_choice + +DrivenLineOffsetSm offset_yaxis_small +uint8 CHOICE_OFFSET_YAXIS_SMALL = 0 + +DrivenLineOffsetLg offset_yaxis_large +uint8 CHOICE_OFFSET_YAXIS_LARGE = 1 + +Angle rotate_xy +bool rotate_xy_is_present + +ScaleB12 scale_xaxis +bool scale_xaxis_is_present + +ScaleB12 scale_yaxis +bool scale_yaxis_is_present + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/ConnectingLane.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/ConnectingLane.msg new file mode 100644 index 000000000..b21078ef1 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/ConnectingLane.msg @@ -0,0 +1,38 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ConnectingLane ::= SEQUENCE { +# lane LaneID, +# maneuver AllowedManeuvers OPTIONAL +# } +# ------------------------------------------------------------------------------ + +LaneID lane + +AllowedManeuvers maneuver +bool maneuver_is_present + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/Connection.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/Connection.msg new file mode 100644 index 000000000..e8aa4f864 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/Connection.msg @@ -0,0 +1,50 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Connection ::= SEQUENCE { +# connectingLane ConnectingLane, +# remoteIntersection IntersectionReferenceID OPTIONAL, +# signalGroup SignalGroupID OPTIONAL, +# userClass RestrictionClassID OPTIONAL, +# connectionID LaneConnectionID OPTIONAL +# } +# ------------------------------------------------------------------------------ + +ConnectingLane connecting_lane + +IntersectionReferenceID remote_intersection +bool remote_intersection_is_present + +SignalGroupID signal_group +bool signal_group_is_present + +RestrictionClassID user_class +bool user_class_is_present + +LaneConnectionID connection_id +bool connection_id_is_present + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/ConnectsToList.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/ConnectsToList.msg new file mode 100644 index 000000000..383baeff8 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/ConnectsToList.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ConnectsToList ::= SEQUENCE (SIZE(1..16)) OF Connection +# ------------------------------------------------------------------------------ + +Connection[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 16 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/DataParameters.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/DataParameters.msg new file mode 100644 index 000000000..e74c68d54 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/DataParameters.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DataParameters ::= SEQUENCE { +# processMethod IA5String(SIZE(1..255)) OPTIONAL, +# processAgency IA5String(SIZE(1..255)) OPTIONAL, +# lastCheckedDate IA5String(SIZE(1..255)) OPTIONAL, +# geoidUsed IA5String(SIZE(1..255)) OPTIONAL, +# ... +# } +# ------------------------------------------------------------------------------ + +string process_method +bool process_method_is_present +uint8 PROCESS_METHOD_MIN_SIZE = 1 +uint8 PROCESS_METHOD_MAX_SIZE = 255 + +string process_agency +bool process_agency_is_present +uint8 PROCESS_AGENCY_MIN_SIZE = 1 +uint8 PROCESS_AGENCY_MAX_SIZE = 255 + +string last_checked_date +bool last_checked_date_is_present +uint8 LAST_CHECKED_DATE_MIN_SIZE = 1 +uint8 LAST_CHECKED_DATE_MAX_SIZE = 255 + +string geoid_used +bool geoid_used_is_present +uint8 GEOID_USED_MIN_SIZE = 1 +uint8 GEOID_USED_MAX_SIZE = 255 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/DeltaAngle.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/DeltaAngle.msg new file mode 100644 index 000000000..8c3983f65 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/DeltaAngle.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DeltaAngle ::= INTEGER (-150..150) +# ------------------------------------------------------------------------------ + +int16 value +int16 MIN = -150 +int16 MAX = 150 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/DescriptiveName.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/DescriptiveName.msg new file mode 100644 index 000000000..97bd6a696 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/DescriptiveName.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DescriptiveName ::= IA5String (SIZE(1..63)) +# ------------------------------------------------------------------------------ + +string value +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 63 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/DrivenLineOffsetLg.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/DrivenLineOffsetLg.msg new file mode 100644 index 000000000..bd566212d --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/DrivenLineOffsetLg.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DrivenLineOffsetLg ::= INTEGER (-32767..32767) +# ------------------------------------------------------------------------------ + +int16 value +int16 MIN = -32767 +int16 MAX = 32767 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/DrivenLineOffsetSm.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/DrivenLineOffsetSm.msg new file mode 100644 index 000000000..c0412ecbe --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/DrivenLineOffsetSm.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DrivenLineOffsetSm ::= INTEGER (-2047..2047) +# ------------------------------------------------------------------------------ + +int16 value +int16 MIN = -2047 +int16 MAX = 2047 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/Elevation.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/Elevation.msg new file mode 100644 index 000000000..28e381edd --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/Elevation.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Elevation ::= INTEGER (-4096..61439) +# ------------------------------------------------------------------------------ + +int32 value +int32 MIN = -4096 +int32 MAX = 61439 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/GenericLane.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/GenericLane.msg new file mode 100644 index 000000000..94be184c2 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/GenericLane.msg @@ -0,0 +1,65 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# GenericLane ::= SEQUENCE { +# laneID LaneID, +# name DescriptiveName OPTIONAL, +# ingressApproach ApproachID OPTIONAL, +# egressApproach ApproachID OPTIONAL, +# laneAttributes LaneAttributes, +# maneuvers AllowedManeuvers OPTIONAL, +# nodeList NodeListXY, +# connectsTo ConnectsToList OPTIONAL, +# overlays OverlayLaneList OPTIONAL, +# regional SEQUENCE (SIZE(1..4)) OF +# RegionalExtension {{Reg-GenericLane}} OPTIONAL, +# ------------------------------------------------------------------------------ + +LaneID lane_id + +DescriptiveName name +bool name_is_present + +ApproachID ingress_approach +bool ingress_approach_is_present + +ApproachID egress_approach +bool egress_approach_is_present + +LaneAttributes lane_attributes + +AllowedManeuvers maneuvers +bool maneuvers_is_present + +NodeListXY node_list + +ConnectsToList connects_to +bool connects_to_is_present + +OverlayLaneList overlays +bool overlays_is_present + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/IntersectionGeometry.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/IntersectionGeometry.msg new file mode 100644 index 000000000..787d5e16d --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/IntersectionGeometry.msg @@ -0,0 +1,60 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# IntersectionGeometry ::= SEQUENCE { +# name DescriptiveName OPTIONAL, +# id IntersectionReferenceID, +# revision MsgCount, +# refPoint Position3D, +# laneWidth LaneWidth OPTIONAL, +# speedLimits SpeedLimitList OPTIONAL, +# laneSet LaneList, +# preemptPriorityData PreemptPriorityList OPTIONAL, +# regional SEQUENCE (SIZE(1..4)) OF +# RegionalExtension {{Reg-IntersectionGeometry}} OPTIONAL, +# ------------------------------------------------------------------------------ + +DescriptiveName name +bool name_is_present + +IntersectionReferenceID id + +MsgCount revision + +Position3D ref_point + +LaneWidth lane_width +bool lane_width_is_present + +SpeedLimitList speed_limits +bool speed_limits_is_present + +LaneList lane_set + +PreemptPriorityList preempt_priority_data +bool preempt_priority_data_is_present + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/IntersectionGeometryList.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/IntersectionGeometryList.msg new file mode 100644 index 000000000..915fc2041 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/IntersectionGeometryList.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# IntersectionGeometryList ::= SEQUENCE (SIZE(1..32)) OF IntersectionGeometry +# ------------------------------------------------------------------------------ + +IntersectionGeometry[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 32 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/IntersectionID.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/IntersectionID.msg new file mode 100644 index 000000000..355054841 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/IntersectionID.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# IntersectionID ::= INTEGER (0..65535) +# ------------------------------------------------------------------------------ + +uint16 value +uint16 MIN = 0 +uint16 MAX = 65535 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/IntersectionReferenceID.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/IntersectionReferenceID.msg new file mode 100644 index 000000000..b65e59d25 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/IntersectionReferenceID.msg @@ -0,0 +1,38 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# IntersectionReferenceID ::= SEQUENCE { +# region RoadRegulatorID OPTIONAL, +# id IntersectionID +# } +# ------------------------------------------------------------------------------ + +RoadRegulatorID region +bool region_is_present + +IntersectionID id + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/ItsPduHeader.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/ItsPduHeader.msg new file mode 100644 index 000000000..482b6afcb --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/ItsPduHeader.msg @@ -0,0 +1,55 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ItsPduHeader ::= SEQUENCE { +# protocolVersion INTEGER (0..255), +# messageID INTEGER{ denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13) } (0..255), -- Mantis #7209, #7005 +# ------------------------------------------------------------------------------ + +uint8 protocol_version +uint8 PROTOCOL_VERSION_MIN = 0 +uint8 PROTOCOL_VERSION_MAX = 255 + +uint8 message_id +uint8 MESSAGE_ID_MIN = 0 +uint8 MESSAGE_ID_MAX = 255 +uint8 MESSAGE_ID_DENM = 1 +uint8 MESSAGE_ID_CAM = 2 +uint8 MESSAGE_ID_POI = 3 +uint8 MESSAGE_ID_SPATEM = 4 +uint8 MESSAGE_ID_MAPEM = 5 +uint8 MESSAGE_ID_IVIM = 6 +uint8 MESSAGE_ID_EV_RSR = 7 +uint8 MESSAGE_ID_TISTPGTRANSACTION = 8 +uint8 MESSAGE_ID_SREM = 9 +uint8 MESSAGE_ID_SSEM = 10 +uint8 MESSAGE_ID_EVCSN = 11 +uint8 MESSAGE_ID_SAEM = 12 +uint8 MESSAGE_ID_RTCMEM = 13 + +StationID station_id + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributes.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributes.msg new file mode 100644 index 000000000..250db3de9 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributes.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LaneAttributes ::= SEQUENCE { +# directionalUse LaneDirection, +# sharedWith LaneSharing, +# laneType LaneTypeAttributes, +# regional RegionalExtension {{Reg-LaneAttributes}} OPTIONAL +# ------------------------------------------------------------------------------ + +LaneDirection directional_use + +LaneSharing shared_with + +LaneTypeAttributes lane_type + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributesBarrier.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributesBarrier.msg new file mode 100644 index 000000000..0811faa93 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributesBarrier.msg @@ -0,0 +1,55 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LaneAttributes-Barrier ::= BIT STRING { +# median-RevocableLane (0), +# median (1), +# whiteLineHashing (2), +# stripedLines (3), +# doubleStripedLines (4), +# trafficCones (5), +# constructionBarrier (6), +# trafficChannels (7), +# lowCurbs (8), +# highCurbs (9) +# } (SIZE (16)) +# ------------------------------------------------------------------------------ + +uint8[] value +uint8 bits_unused +uint8 SIZE_BITS = 16 +uint8 BIT_INDEX_MEDIAN_REVOCABLE_LANE = 0 +uint8 BIT_INDEX_MEDIAN = 1 +uint8 BIT_INDEX_WHITE_LINE_HASHING = 2 +uint8 BIT_INDEX_STRIPED_LINES = 3 +uint8 BIT_INDEX_DOUBLE_STRIPED_LINES = 4 +uint8 BIT_INDEX_TRAFFIC_CONES = 5 +uint8 BIT_INDEX_CONSTRUCTION_BARRIER = 6 +uint8 BIT_INDEX_TRAFFIC_CHANNELS = 7 +uint8 BIT_INDEX_LOW_CURBS = 8 +uint8 BIT_INDEX_HIGH_CURBS = 9 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributesBike.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributesBike.msg new file mode 100644 index 000000000..50bd05620 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributesBike.msg @@ -0,0 +1,49 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LaneAttributes-Bike ::= BIT STRING { +# bikeRevocableLane (0), +# pedestrianUseAllowed (1), +# isBikeFlyOverLane (2), +# fixedCycleTime (3), +# biDirectionalCycleTimes (4), +# isolatedByBarrier (5), +# unsignalizedSegmentsPresent (6) +# } (SIZE (16)) +# ------------------------------------------------------------------------------ + +uint8[] value +uint8 bits_unused +uint8 SIZE_BITS = 16 +uint8 BIT_INDEX_BIKE_REVOCABLE_LANE = 0 +uint8 BIT_INDEX_PEDESTRIAN_USE_ALLOWED = 1 +uint8 BIT_INDEX_IS_BIKE_FLY_OVER_LANE = 2 +uint8 BIT_INDEX_FIXED_CYCLE_TIME = 3 +uint8 BIT_INDEX_BI_DIRECTIONAL_CYCLE_TIMES = 4 +uint8 BIT_INDEX_ISOLATED_BY_BARRIER = 5 +uint8 BIT_INDEX_UNSIGNALIZED_SEGMENTS_PRESENT = 6 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributesCrosswalk.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributesCrosswalk.msg new file mode 100644 index 000000000..2f63121d4 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributesCrosswalk.msg @@ -0,0 +1,53 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LaneAttributes-Crosswalk ::= BIT STRING { +# crosswalkRevocableLane (0), +# bicyleUseAllowed (1), +# isXwalkFlyOverLane (2), +# fixedCycleTime (3), +# biDirectionalCycleTimes (4), +# hasPushToWalkButton (5), +# audioSupport (6), +# rfSignalRequestPresent (7), +# unsignalizedSegmentsPresent (8) +# } (SIZE (16)) +# ------------------------------------------------------------------------------ + +uint8[] value +uint8 bits_unused +uint8 SIZE_BITS = 16 +uint8 BIT_INDEX_CROSSWALK_REVOCABLE_LANE = 0 +uint8 BIT_INDEX_BICYLE_USE_ALLOWED = 1 +uint8 BIT_INDEX_IS_XWALK_FLY_OVER_LANE = 2 +uint8 BIT_INDEX_FIXED_CYCLE_TIME = 3 +uint8 BIT_INDEX_BI_DIRECTIONAL_CYCLE_TIMES = 4 +uint8 BIT_INDEX_HAS_PUSH_TO_WALK_BUTTON = 5 +uint8 BIT_INDEX_AUDIO_SUPPORT = 6 +uint8 BIT_INDEX_RF_SIGNAL_REQUEST_PRESENT = 7 +uint8 BIT_INDEX_UNSIGNALIZED_SEGMENTS_PRESENT = 8 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributesParking.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributesParking.msg new file mode 100644 index 000000000..128ec4444 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributesParking.msg @@ -0,0 +1,49 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LaneAttributes-Parking ::= BIT STRING { +# parkingRevocableLane (0), +# parallelParkingInUse (1), +# headInParkingInUse (2), +# doNotParkZone (3), +# parkingForBusUse (4), +# parkingForTaxiUse (5), +# noPublicParkingUse (6) +# } (SIZE (16)) +# ------------------------------------------------------------------------------ + +uint8[] value +uint8 bits_unused +uint8 SIZE_BITS = 16 +uint8 BIT_INDEX_PARKING_REVOCABLE_LANE = 0 +uint8 BIT_INDEX_PARALLEL_PARKING_IN_USE = 1 +uint8 BIT_INDEX_HEAD_IN_PARKING_IN_USE = 2 +uint8 BIT_INDEX_DO_NOT_PARK_ZONE = 3 +uint8 BIT_INDEX_PARKING_FOR_BUS_USE = 4 +uint8 BIT_INDEX_PARKING_FOR_TAXI_USE = 5 +uint8 BIT_INDEX_NO_PUBLIC_PARKING_USE = 6 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributesSidewalk.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributesSidewalk.msg new file mode 100644 index 000000000..a52c3cae7 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributesSidewalk.msg @@ -0,0 +1,43 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LaneAttributes-Sidewalk ::= BIT STRING { +# sidewalk-RevocableLane (0), +# bicyleUseAllowed (1), +# isSidewalkFlyOverLane (2), +# walkBikes (3) +# } (SIZE (16)) +# ------------------------------------------------------------------------------ + +uint8[] value +uint8 bits_unused +uint8 SIZE_BITS = 16 +uint8 BIT_INDEX_SIDEWALK_REVOCABLE_LANE = 0 +uint8 BIT_INDEX_BICYLE_USE_ALLOWED = 1 +uint8 BIT_INDEX_IS_SIDEWALK_FLY_OVER_LANE = 2 +uint8 BIT_INDEX_WALK_BIKES = 3 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributesStriping.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributesStriping.msg new file mode 100644 index 000000000..bc05f4498 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributesStriping.msg @@ -0,0 +1,47 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LaneAttributes-Striping ::= BIT STRING { +# stripeToConnectingLanesRevocableLane (0), +# stripeDrawOnLeft (1), +# stripeDrawOnRight (2), +# stripeToConnectingLanesLeft (3), +# stripeToConnectingLanesRight (4), +# stripeToConnectingLanesAhead (5) +# } (SIZE (16)) +# ------------------------------------------------------------------------------ + +uint8[] value +uint8 bits_unused +uint8 SIZE_BITS = 16 +uint8 BIT_INDEX_STRIPE_TO_CONNECTING_LANES_REVOCABLE_LANE = 0 +uint8 BIT_INDEX_STRIPE_DRAW_ON_LEFT = 1 +uint8 BIT_INDEX_STRIPE_DRAW_ON_RIGHT = 2 +uint8 BIT_INDEX_STRIPE_TO_CONNECTING_LANES_LEFT = 3 +uint8 BIT_INDEX_STRIPE_TO_CONNECTING_LANES_RIGHT = 4 +uint8 BIT_INDEX_STRIPE_TO_CONNECTING_LANES_AHEAD = 5 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributesTrackedVehicle.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributesTrackedVehicle.msg new file mode 100644 index 000000000..59f704f42 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributesTrackedVehicle.msg @@ -0,0 +1,45 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LaneAttributes-TrackedVehicle ::= BIT STRING { +# spec-RevocableLane (0), +# spec-commuterRailRoadTrack (1), +# spec-lightRailRoadTrack (2), +# spec-heavyRailRoadTrack (3), +# spec-otherRailType (4) +# } (SIZE (16)) +# ------------------------------------------------------------------------------ + +uint8[] value +uint8 bits_unused +uint8 SIZE_BITS = 16 +uint8 BIT_INDEX_SPEC_REVOCABLE_LANE = 0 +uint8 BIT_INDEX_SPEC_COMMUTER_RAIL_ROAD_TRACK = 1 +uint8 BIT_INDEX_SPEC_LIGHT_RAIL_ROAD_TRACK = 2 +uint8 BIT_INDEX_SPEC_HEAVY_RAIL_ROAD_TRACK = 3 +uint8 BIT_INDEX_SPEC_OTHER_RAIL_TYPE = 4 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributesVehicle.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributesVehicle.msg new file mode 100644 index 000000000..aa9a64ffc --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneAttributesVehicle.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LaneAttributes-Vehicle ::= BIT STRING { +# isVehicleRevocableLane (0), +# isVehicleFlyOverLane (1), +# hovLaneUseOnly (2), +# restrictedToBusUse (3), +# restrictedToTaxiUse (4), +# restrictedFromPublicUse (5), +# hasIRbeaconCoverage (6), +# permissionOnRequest (7) +# } (SIZE (8,...)) +# ------------------------------------------------------------------------------ + +uint8[] value +uint8 bits_unused +uint8 SIZE_BITS = 8 +uint8 BIT_INDEX_IS_VEHICLE_REVOCABLE_LANE = 0 +uint8 BIT_INDEX_IS_VEHICLE_FLY_OVER_LANE = 1 +uint8 BIT_INDEX_HOV_LANE_USE_ONLY = 2 +uint8 BIT_INDEX_RESTRICTED_TO_BUS_USE = 3 +uint8 BIT_INDEX_RESTRICTED_TO_TAXI_USE = 4 +uint8 BIT_INDEX_RESTRICTED_FROM_PUBLIC_USE = 5 +uint8 BIT_INDEX_HAS_I_RBEACON_COVERAGE = 6 +uint8 BIT_INDEX_PERMISSION_ON_REQUEST = 7 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneConnectionID.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneConnectionID.msg new file mode 100644 index 000000000..bdbc8cfad --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneConnectionID.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LaneConnectionID ::= INTEGER (0..255) +# ------------------------------------------------------------------------------ + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneDataAttribute.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneDataAttribute.msg new file mode 100644 index 000000000..e50f37416 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneDataAttribute.msg @@ -0,0 +1,60 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LaneDataAttribute ::= CHOICE { +# pathEndPointAngle DeltaAngle, +# laneCrownPointCenter RoadwayCrownAngle, +# laneCrownPointLeft RoadwayCrownAngle, +# laneCrownPointRight RoadwayCrownAngle, +# laneAngle MergeDivergeNodeAngle, +# speedLimits SpeedLimitList, +# regional SEQUENCE (SIZE(1..4)) OF +# RegionalExtension {{Reg-LaneDataAttribute}}, +# ... +# } +# ------------------------------------------------------------------------------ + +uint8 choice + +DeltaAngle path_end_point_angle +uint8 CHOICE_PATH_END_POINT_ANGLE = 0 + +RoadwayCrownAngle lane_crown_point_center +uint8 CHOICE_LANE_CROWN_POINT_CENTER = 1 + +RoadwayCrownAngle lane_crown_point_left +uint8 CHOICE_LANE_CROWN_POINT_LEFT = 2 + +RoadwayCrownAngle lane_crown_point_right +uint8 CHOICE_LANE_CROWN_POINT_RIGHT = 3 + +MergeDivergeNodeAngle lane_angle +uint8 CHOICE_LANE_ANGLE = 4 + +SpeedLimitList speed_limits +uint8 CHOICE_SPEED_LIMITS = 5 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneDataAttributeList.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneDataAttributeList.msg new file mode 100644 index 000000000..c35fb7214 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneDataAttributeList.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LaneDataAttributeList ::= SEQUENCE (SIZE(1..8)) OF LaneDataAttribute +# ------------------------------------------------------------------------------ + +LaneDataAttribute[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 8 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneDirection.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneDirection.msg new file mode 100644 index 000000000..d9b3d7b65 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneDirection.msg @@ -0,0 +1,39 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LaneDirection ::= BIT STRING { +# ingressPath (0), +# egressPath (1) +# } (SIZE (2)) +# ------------------------------------------------------------------------------ + +uint8[] value +uint8 bits_unused +uint8 SIZE_BITS = 2 +uint8 BIT_INDEX_INGRESS_PATH = 0 +uint8 BIT_INDEX_EGRESS_PATH = 1 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneID.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneID.msg new file mode 100644 index 000000000..a579c77f7 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneID.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LaneID ::= INTEGER (0..255) +# ------------------------------------------------------------------------------ + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneList.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneList.msg new file mode 100644 index 000000000..49316eff3 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneList.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LaneList ::= SEQUENCE (SIZE(1..255)) OF GenericLane +# ------------------------------------------------------------------------------ + +GenericLane[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 255 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneSharing.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneSharing.msg new file mode 100644 index 000000000..d92ca36f6 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneSharing.msg @@ -0,0 +1,55 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LaneSharing ::= BIT STRING { +# overlappingLaneDescriptionProvided (0), +# multipleLanesTreatedAsOneLane (1), +# otherNonMotorizedTrafficTypes (2), +# individualMotorizedVehicleTraffic (3), +# busVehicleTraffic (4), +# taxiVehicleTraffic (5), +# pedestriansTraffic (6), +# cyclistVehicleTraffic (7), +# trackedVehicleTraffic (8), +# pedestrianTraffic (9) +# } (SIZE (10)) +# ------------------------------------------------------------------------------ + +uint8[] value +uint8 bits_unused +uint8 SIZE_BITS = 10 +uint8 BIT_INDEX_OVERLAPPING_LANE_DESCRIPTION_PROVIDED = 0 +uint8 BIT_INDEX_MULTIPLE_LANES_TREATED_AS_ONE_LANE = 1 +uint8 BIT_INDEX_OTHER_NON_MOTORIZED_TRAFFIC_TYPES = 2 +uint8 BIT_INDEX_INDIVIDUAL_MOTORIZED_VEHICLE_TRAFFIC = 3 +uint8 BIT_INDEX_BUS_VEHICLE_TRAFFIC = 4 +uint8 BIT_INDEX_TAXI_VEHICLE_TRAFFIC = 5 +uint8 BIT_INDEX_PEDESTRIANS_TRAFFIC = 6 +uint8 BIT_INDEX_CYCLIST_VEHICLE_TRAFFIC = 7 +uint8 BIT_INDEX_TRACKED_VEHICLE_TRAFFIC = 8 +uint8 BIT_INDEX_PEDESTRIAN_TRAFFIC = 9 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneTypeAttributes.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneTypeAttributes.msg new file mode 100644 index 000000000..35238083e --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneTypeAttributes.msg @@ -0,0 +1,66 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LaneTypeAttributes ::= CHOICE { +# vehicle LaneAttributes-Vehicle, +# crosswalk LaneAttributes-Crosswalk, +# bikeLane LaneAttributes-Bike, +# sidewalk LaneAttributes-Sidewalk, +# median LaneAttributes-Barrier, +# striping LaneAttributes-Striping, +# trackedVehicle LaneAttributes-TrackedVehicle, +# parking LaneAttributes-Parking, +# ... +# } +# ------------------------------------------------------------------------------ + +uint8 choice + +LaneAttributesVehicle vehicle +uint8 CHOICE_VEHICLE = 0 + +LaneAttributesCrosswalk crosswalk +uint8 CHOICE_CROSSWALK = 1 + +LaneAttributesBike bike_lane +uint8 CHOICE_BIKE_LANE = 2 + +LaneAttributesSidewalk sidewalk +uint8 CHOICE_SIDEWALK = 3 + +LaneAttributesBarrier median +uint8 CHOICE_MEDIAN = 4 + +LaneAttributesStriping striping +uint8 CHOICE_STRIPING = 5 + +LaneAttributesTrackedVehicle tracked_vehicle +uint8 CHOICE_TRACKED_VEHICLE = 6 + +LaneAttributesParking parking +uint8 CHOICE_PARKING = 7 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneWidth.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneWidth.msg new file mode 100644 index 000000000..4f10f1c03 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LaneWidth.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LaneWidth ::= INTEGER (0..32767) +# ------------------------------------------------------------------------------ + +uint16 value +uint16 MIN = 0 +uint16 MAX = 32767 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/Latitude.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/Latitude.msg new file mode 100644 index 000000000..46e48f60e --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/Latitude.msg @@ -0,0 +1,37 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Latitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10), unavailable(900000001)} (-900000000..900000001) +# ------------------------------------------------------------------------------ + +int32 value +int32 MIN = -900000000 +int32 MAX = 900000001 +int32 ONE_MICRODEGREE_NORTH = 10 +int32 ONE_MICRODEGREE_SOUTH = -10 +int32 UNAVAILABLE = 900000001 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LayerID.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LayerID.msg new file mode 100644 index 000000000..04d85ba41 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LayerID.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LayerID ::= INTEGER (0..100) +# ------------------------------------------------------------------------------ + +uint8 value +uint8 MIN = 0 +uint8 MAX = 100 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LayerType.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LayerType.msg new file mode 100644 index 000000000..33d7216f6 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/LayerType.msg @@ -0,0 +1,50 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LayerType ::= ENUMERATED { +# none, +# mixedContent, +# generalMapData, +# intersectionData, +# curveData, +# roadwaySectionData, +# parkingAreaData, +# sharedLaneData, +# ... +# } +# ------------------------------------------------------------------------------ + +uint8 value +uint8 NONE = 0 +uint8 MIXED_CONTENT = 1 +uint8 GENERAL_MAP_DATA = 2 +uint8 INTERSECTION_DATA = 3 +uint8 CURVE_DATA = 4 +uint8 ROADWAY_SECTION_DATA = 5 +uint8 PARKING_AREA_DATA = 6 +uint8 SHARED_LANE_DATA = 7 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/Longitude.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/Longitude.msg new file mode 100644 index 000000000..bd0e4e82d --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/Longitude.msg @@ -0,0 +1,37 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Longitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(1800000001)} (-1800000000..1800000001) +# ------------------------------------------------------------------------------ + +int32 value +int32 MIN = -1800000000 +int32 MAX = 1800000001 +int32 ONE_MICRODEGREE_EAST = 10 +int32 ONE_MICRODEGREE_WEST = -10 +int32 UNAVAILABLE = 1800000001 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/MAPEM.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/MAPEM.msg new file mode 100644 index 000000000..c909b6617 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/MAPEM.msg @@ -0,0 +1,43 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MAPEM ::= SEQUENCE { +# -- @details header +# -- The DE _protocolVersion_ is used to select the appropriate protocol decoder at the receiving ITS-S. +# -- It shall be set to 2. +# -- The DE _messageID_ shall be mapem(5). +# header ItsPduHeader, +# -- @details map +# -- The DE _map_ contains the MAP data as defined in ISO TS 19091. +# map MapData +# } +# ------------------------------------------------------------------------------ + +ItsPduHeader header + +MapData map + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/MapData.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/MapData.msg new file mode 100644 index 000000000..bb6778512 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/MapData.msg @@ -0,0 +1,63 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MapData ::= SEQUENCE { +# timeStamp MinuteOfTheYear OPTIONAL, +# msgIssueRevision MsgCount, +# layerType LayerType OPTIONAL, +# layerID LayerID OPTIONAL, +# intersections IntersectionGeometryList OPTIONAL, +# roadSegments RoadSegmentList OPTIONAL, +# dataParameters DataParameters OPTIONAL, +# restrictionList RestrictionClassList OPTIONAL, +# regional SEQUENCE (SIZE(1..4)) OF +# RegionalExtension {{Reg-MapData}} OPTIONAL, +# ------------------------------------------------------------------------------ + +MinuteOfTheYear time_stamp +bool time_stamp_is_present + +MsgCount msg_issue_revision + +LayerType layer_type +bool layer_type_is_present + +LayerID layer_id +bool layer_id_is_present + +IntersectionGeometryList intersections +bool intersections_is_present + +RoadSegmentList road_segments +bool road_segments_is_present + +DataParameters data_parameters +bool data_parameters_is_present + +RestrictionClassList restriction_list +bool restriction_list_is_present + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/MergeDivergeNodeAngle.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/MergeDivergeNodeAngle.msg new file mode 100644 index 000000000..4253019eb --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/MergeDivergeNodeAngle.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MergeDivergeNodeAngle ::= INTEGER (-180..180) +# ------------------------------------------------------------------------------ + +int16 value +int16 MIN = -180 +int16 MAX = 180 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/MinuteOfTheYear.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/MinuteOfTheYear.msg new file mode 100644 index 000000000..c6513dd3f --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/MinuteOfTheYear.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MinuteOfTheYear ::= INTEGER (0..527040) +# ------------------------------------------------------------------------------ + +uint32 value +uint32 MIN = 0 +uint32 MAX = 527040 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/MsgCount.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/MsgCount.msg new file mode 100644 index 000000000..1ce99af7e --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/MsgCount.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MsgCount ::= INTEGER (0..127) +# ------------------------------------------------------------------------------ + +uint8 value +uint8 MIN = 0 +uint8 MAX = 127 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeAttributeSetXY.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeAttributeSetXY.msg new file mode 100644 index 000000000..dc8aacc3b --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeAttributeSetXY.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# NodeAttributeSetXY ::= SEQUENCE { +# localNode NodeAttributeXYList OPTIONAL, +# disabled SegmentAttributeXYList OPTIONAL, +# enabled SegmentAttributeXYList OPTIONAL, +# data LaneDataAttributeList OPTIONAL, +# dWidth Offset-B10 OPTIONAL, +# dElevation Offset-B10 OPTIONAL, +# regional SEQUENCE (SIZE(1..4)) OF +# RegionalExtension {{Reg-NodeAttributeSetXY}} OPTIONAL, +# ------------------------------------------------------------------------------ + +NodeAttributeXYList local_node +bool local_node_is_present + +SegmentAttributeXYList disabled +bool disabled_is_present + +SegmentAttributeXYList enabled +bool enabled_is_present + +LaneDataAttributeList data +bool data_is_present + +OffsetB10 d_width +bool d_width_is_present + +OffsetB10 d_elevation +bool d_elevation_is_present + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeAttributeXY.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeAttributeXY.msg new file mode 100644 index 000000000..dcc280e94 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeAttributeXY.msg @@ -0,0 +1,58 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# NodeAttributeXY ::= ENUMERATED { +# reserved, +# stopLine, +# roundedCapStyleA, +# roundedCapStyleB, +# mergePoint, +# divergePoint, +# downstreamStopLine, +# downstreamStartNode, +# closedToTraffic, +# safeIsland, +# curbPresentAtStepOff, +# hydrantPresent, +# ... +# } +# ------------------------------------------------------------------------------ + +uint8 value +uint8 RESERVED = 0 +uint8 STOP_LINE = 1 +uint8 ROUNDED_CAP_STYLE_A = 2 +uint8 ROUNDED_CAP_STYLE_B = 3 +uint8 MERGE_POINT = 4 +uint8 DIVERGE_POINT = 5 +uint8 DOWNSTREAM_STOP_LINE = 6 +uint8 DOWNSTREAM_START_NODE = 7 +uint8 CLOSED_TO_TRAFFIC = 8 +uint8 SAFE_ISLAND = 9 +uint8 CURB_PRESENT_AT_STEP_OFF = 10 +uint8 HYDRANT_PRESENT = 11 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeAttributeXYList.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeAttributeXYList.msg new file mode 100644 index 000000000..4370116ff --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeAttributeXYList.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# NodeAttributeXYList ::= SEQUENCE (SIZE(1..8)) OF NodeAttributeXY +# ------------------------------------------------------------------------------ + +NodeAttributeXY[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 8 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeLLmD64b.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeLLmD64b.msg new file mode 100644 index 000000000..ca6fe5310 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeLLmD64b.msg @@ -0,0 +1,37 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Node-LLmD-64b ::= SEQUENCE { +# lon Longitude, +# lat Latitude +# } +# ------------------------------------------------------------------------------ + +Longitude lon + +Latitude lat + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeListXY.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeListXY.msg new file mode 100644 index 000000000..0c31da8c5 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeListXY.msg @@ -0,0 +1,42 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# NodeListXY ::= CHOICE { +# nodes NodeSetXY, +# computed ComputedLane, +# ... +# } +# ------------------------------------------------------------------------------ + +uint8 choice + +NodeSetXY nodes +uint8 CHOICE_NODES = 0 + +ComputedLane computed +uint8 CHOICE_COMPUTED = 1 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeOffsetPointXY.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeOffsetPointXY.msg new file mode 100644 index 000000000..1f93aa425 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeOffsetPointXY.msg @@ -0,0 +1,61 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# NodeOffsetPointXY ::= CHOICE { +# node-XY1 Node-XY-20b, +# node-XY2 Node-XY-22b, +# node-XY3 Node-XY-24b, +# node-XY4 Node-XY-26b, +# node-XY5 Node-XY-28b, +# node-XY6 Node-XY-32b, +# node-LatLon Node-LLmD-64b, +# regional RegionalExtension {{Reg-NodeOffsetPointXY}} +# ------------------------------------------------------------------------------ + +uint8 choice + +NodeXY20b node_xy1 +uint8 CHOICE_NODE_X_Y1 = 0 + +NodeXY22b node_xy2 +uint8 CHOICE_NODE_X_Y2 = 1 + +NodeXY24b node_xy3 +uint8 CHOICE_NODE_X_Y3 = 2 + +NodeXY26b node_xy4 +uint8 CHOICE_NODE_X_Y4 = 3 + +NodeXY28b node_xy5 +uint8 CHOICE_NODE_X_Y5 = 4 + +NodeXY32b node_xy6 +uint8 CHOICE_NODE_X_Y6 = 5 + +NodeLLmD64b node_lat_lon +uint8 CHOICE_NODE_LAT_LON = 6 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeSetXY.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeSetXY.msg new file mode 100644 index 000000000..daa803880 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeSetXY.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# NodeSetXY ::= SEQUENCE (SIZE(2..63)) OF NodeXY +# ------------------------------------------------------------------------------ + +NodeXY[] array +uint8 MIN_SIZE = 2 +uint8 MAX_SIZE = 63 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeXY.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeXY.msg new file mode 100644 index 000000000..bfd6b0e28 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeXY.msg @@ -0,0 +1,39 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# NodeXY ::= SEQUENCE { +# delta NodeOffsetPointXY, +# attributes NodeAttributeSetXY OPTIONAL, +# ... +# } +# ------------------------------------------------------------------------------ + +NodeOffsetPointXY delta + +NodeAttributeSetXY attributes +bool attributes_is_present + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeXY20b.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeXY20b.msg new file mode 100644 index 000000000..76a63b7ba --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeXY20b.msg @@ -0,0 +1,37 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Node-XY-20b ::= SEQUENCE { +# x Offset-B10, +# y Offset-B10 +# } +# ------------------------------------------------------------------------------ + +OffsetB10 x + +OffsetB10 y + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeXY22b.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeXY22b.msg new file mode 100644 index 000000000..81182b27f --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeXY22b.msg @@ -0,0 +1,37 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Node-XY-22b ::= SEQUENCE { +# x Offset-B11, +# y Offset-B11 +# } +# ------------------------------------------------------------------------------ + +OffsetB11 x + +OffsetB11 y + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeXY24b.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeXY24b.msg new file mode 100644 index 000000000..93e21bad8 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeXY24b.msg @@ -0,0 +1,37 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Node-XY-24b ::= SEQUENCE { +# x Offset-B12, +# y Offset-B12 +# } +# ------------------------------------------------------------------------------ + +OffsetB12 x + +OffsetB12 y + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeXY26b.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeXY26b.msg new file mode 100644 index 000000000..140da9f08 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeXY26b.msg @@ -0,0 +1,37 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Node-XY-26b ::= SEQUENCE { +# x Offset-B13, +# y Offset-B13 +# } +# ------------------------------------------------------------------------------ + +OffsetB13 x + +OffsetB13 y + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeXY28b.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeXY28b.msg new file mode 100644 index 000000000..a7eeec59a --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeXY28b.msg @@ -0,0 +1,37 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Node-XY-28b ::= SEQUENCE { +# x Offset-B14, +# y Offset-B14 +# } +# ------------------------------------------------------------------------------ + +OffsetB14 x + +OffsetB14 y + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeXY32b.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeXY32b.msg new file mode 100644 index 000000000..e411fdb1a --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/NodeXY32b.msg @@ -0,0 +1,37 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Node-XY-32b ::= SEQUENCE { +# x Offset-B16, +# y Offset-B16 +# } +# ------------------------------------------------------------------------------ + +OffsetB16 x + +OffsetB16 y + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/OffsetB10.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/OffsetB10.msg new file mode 100644 index 000000000..5438938f1 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/OffsetB10.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Offset-B10 ::= INTEGER (-512..511) +# ------------------------------------------------------------------------------ + +int16 value +int16 MIN = -512 +int16 MAX = 511 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/OffsetB11.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/OffsetB11.msg new file mode 100644 index 000000000..3edac6044 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/OffsetB11.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Offset-B11 ::= INTEGER (-1024..1023) +# ------------------------------------------------------------------------------ + +int16 value +int16 MIN = -1024 +int16 MAX = 1023 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/OffsetB12.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/OffsetB12.msg new file mode 100644 index 000000000..908864856 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/OffsetB12.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Offset-B12 ::= INTEGER (-2048..2047) +# ------------------------------------------------------------------------------ + +int16 value +int16 MIN = -2048 +int16 MAX = 2047 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/OffsetB13.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/OffsetB13.msg new file mode 100644 index 000000000..5859abf9c --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/OffsetB13.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Offset-B13 ::= INTEGER (-4096..4095) +# ------------------------------------------------------------------------------ + +int16 value +int16 MIN = -4096 +int16 MAX = 4095 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/OffsetB14.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/OffsetB14.msg new file mode 100644 index 000000000..3b50a0dad --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/OffsetB14.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Offset-B14 ::= INTEGER (-8192..8191) +# ------------------------------------------------------------------------------ + +int16 value +int16 MIN = -8192 +int16 MAX = 8191 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/OffsetB16.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/OffsetB16.msg new file mode 100644 index 000000000..ca0554f12 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/OffsetB16.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Offset-B16 ::= INTEGER (-32768..32767) +# ------------------------------------------------------------------------------ + +int16 value +int16 MIN = -32768 +int16 MAX = 32767 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/OverlayLaneList.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/OverlayLaneList.msg new file mode 100644 index 000000000..ba4b80e7f --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/OverlayLaneList.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# OverlayLaneList ::= SEQUENCE (SIZE(1..5)) OF LaneID +# ------------------------------------------------------------------------------ + +LaneID[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 5 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/Position3D.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/Position3D.msg new file mode 100644 index 000000000..c53b038a9 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/Position3D.msg @@ -0,0 +1,42 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Position3D ::= SEQUENCE { +# lat Latitude, +# long Longitude, +# elevation Elevation OPTIONAL, +# regional SEQUENCE (SIZE(1..4)) OF +# RegionalExtension {{Reg-Position3D}} OPTIONAL, +# ------------------------------------------------------------------------------ + +Latitude lat + +Longitude lon + +Elevation elevation +bool elevation_is_present + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/PreemptPriorityList.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/PreemptPriorityList.msg new file mode 100644 index 000000000..de4fb765f --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/PreemptPriorityList.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PreemptPriorityList ::= SEQUENCE (SIZE(1..32)) OF SignalControlZone +# ------------------------------------------------------------------------------ + +SignalControlZone[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 32 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RegulatorySpeedLimit.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RegulatorySpeedLimit.msg new file mode 100644 index 000000000..35a510a82 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RegulatorySpeedLimit.msg @@ -0,0 +1,37 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RegulatorySpeedLimit ::= SEQUENCE { +# type SpeedLimitType, +# speed Velocity +# } +# ------------------------------------------------------------------------------ + +SpeedLimitType type + +Velocity speed + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RestrictionAppliesTo.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RestrictionAppliesTo.msg new file mode 100644 index 000000000..e7074ce2a --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RestrictionAppliesTo.msg @@ -0,0 +1,62 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RestrictionAppliesTo ::= ENUMERATED { +# none, +# equippedTransit, +# equippedTaxis, +# equippedOther, +# emissionCompliant, +# equippedBicycle, +# weightCompliant, +# heightCompliant, +# pedestrians, +# slowMovingPersons, +# wheelchairUsers, +# visualDisabilities, +# audioDisabilities, +# otherUnknownDisabilities, +# ... +# } +# ------------------------------------------------------------------------------ + +uint8 value +uint8 NONE = 0 +uint8 EQUIPPED_TRANSIT = 1 +uint8 EQUIPPED_TAXIS = 2 +uint8 EQUIPPED_OTHER = 3 +uint8 EMISSION_COMPLIANT = 4 +uint8 EQUIPPED_BICYCLE = 5 +uint8 WEIGHT_COMPLIANT = 6 +uint8 HEIGHT_COMPLIANT = 7 +uint8 PEDESTRIANS = 8 +uint8 SLOW_MOVING_PERSONS = 9 +uint8 WHEELCHAIR_USERS = 10 +uint8 VISUAL_DISABILITIES = 11 +uint8 AUDIO_DISABILITIES = 12 +uint8 OTHER_UNKNOWN_DISABILITIES = 13 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RestrictionClassAssignment.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RestrictionClassAssignment.msg new file mode 100644 index 000000000..eda00e5ff --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RestrictionClassAssignment.msg @@ -0,0 +1,37 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RestrictionClassAssignment ::= SEQUENCE { +# id RestrictionClassID, +# users RestrictionUserTypeList +# } +# ------------------------------------------------------------------------------ + +RestrictionClassID id + +RestrictionUserTypeList users + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RestrictionClassID.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RestrictionClassID.msg new file mode 100644 index 000000000..33c7a926f --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RestrictionClassID.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RestrictionClassID ::= INTEGER (0..255) +# ------------------------------------------------------------------------------ + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RestrictionClassList.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RestrictionClassList.msg new file mode 100644 index 000000000..25b2146cf --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RestrictionClassList.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RestrictionClassList ::= SEQUENCE (SIZE(1..254)) OF RestrictionClassAssignment +# ------------------------------------------------------------------------------ + +RestrictionClassAssignment[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 254 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RestrictionUserType.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RestrictionUserType.msg new file mode 100644 index 000000000..b40a60dad --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RestrictionUserType.msg @@ -0,0 +1,40 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RestrictionUserType ::= CHOICE { +# basicType RestrictionAppliesTo, +# regional SEQUENCE (SIZE(1..4)) OF +# RegionalExtension {{Reg-RestrictionUserType}}, +# ... +# } +# ------------------------------------------------------------------------------ + +uint8 choice + +RestrictionAppliesTo basic_type +uint8 CHOICE_BASIC_TYPE = 0 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RestrictionUserTypeList.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RestrictionUserTypeList.msg new file mode 100644 index 000000000..665654bd8 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RestrictionUserTypeList.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RestrictionUserTypeList ::= SEQUENCE (SIZE(1..16)) OF RestrictionUserType +# ------------------------------------------------------------------------------ + +RestrictionUserType[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 16 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RoadLaneSetList.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RoadLaneSetList.msg new file mode 100644 index 000000000..0c3ad8108 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RoadLaneSetList.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RoadLaneSetList ::= SEQUENCE (SIZE(1..255)) OF GenericLane +# ------------------------------------------------------------------------------ + +GenericLane[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 255 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RoadRegulatorID.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RoadRegulatorID.msg new file mode 100644 index 000000000..a914073d5 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RoadRegulatorID.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RoadRegulatorID ::= INTEGER (0..65535) +# ------------------------------------------------------------------------------ + +uint16 value +uint16 MIN = 0 +uint16 MAX = 65535 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RoadSegment.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RoadSegment.msg new file mode 100644 index 000000000..d6fa20bee --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RoadSegment.msg @@ -0,0 +1,56 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RoadSegment ::= SEQUENCE { +# name DescriptiveName OPTIONAL, +# id RoadSegmentReferenceID, +# revision MsgCount, +# refPoint Position3D, +# laneWidth LaneWidth OPTIONAL, +# speedLimits SpeedLimitList OPTIONAL, +# roadLaneSet RoadLaneSetList, +# regional SEQUENCE (SIZE(1..4)) OF +# RegionalExtension {{Reg-RoadSegment}} OPTIONAL, +# ------------------------------------------------------------------------------ + +DescriptiveName name +bool name_is_present + +RoadSegmentReferenceID id + +MsgCount revision + +Position3D ref_point + +LaneWidth lane_width +bool lane_width_is_present + +SpeedLimitList speed_limits +bool speed_limits_is_present + +RoadLaneSetList road_lane_set + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RoadSegmentID.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RoadSegmentID.msg new file mode 100644 index 000000000..3cfb55376 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RoadSegmentID.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RoadSegmentID ::= INTEGER (0..65535) +# ------------------------------------------------------------------------------ + +uint16 value +uint16 MIN = 0 +uint16 MAX = 65535 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RoadSegmentList.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RoadSegmentList.msg new file mode 100644 index 000000000..15e5df134 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RoadSegmentList.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RoadSegmentList ::= SEQUENCE (SIZE(1..32)) OF RoadSegment +# ------------------------------------------------------------------------------ + +RoadSegment[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 32 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RoadSegmentReferenceID.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RoadSegmentReferenceID.msg new file mode 100644 index 000000000..720ae41ab --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RoadSegmentReferenceID.msg @@ -0,0 +1,38 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RoadSegmentReferenceID ::= SEQUENCE { +# region RoadRegulatorID OPTIONAL, +# id RoadSegmentID +# } +# ------------------------------------------------------------------------------ + +RoadRegulatorID region +bool region_is_present + +RoadSegmentID id + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RoadwayCrownAngle.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RoadwayCrownAngle.msg new file mode 100644 index 000000000..2a77a94be --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/RoadwayCrownAngle.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RoadwayCrownAngle ::= INTEGER (-128..127) +# ------------------------------------------------------------------------------ + +int8 value +int8 MIN = -128 +int8 MAX = 127 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/ScaleB12.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/ScaleB12.msg new file mode 100644 index 000000000..f79e71700 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/ScaleB12.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Scale-B12 ::= INTEGER (-2048..2047) +# ------------------------------------------------------------------------------ + +int16 value +int16 MIN = -2048 +int16 MAX = 2047 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/SegmentAttributeXY.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/SegmentAttributeXY.msg new file mode 100644 index 000000000..a224c51ea --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/SegmentAttributeXY.msg @@ -0,0 +1,110 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SegmentAttributeXY ::= ENUMERATED { +# reserved , +# doNotBlock , +# whiteLine , +# mergingLaneLeft , +# mergingLaneRight , +# curbOnLeft , +# curbOnRight , +# loadingzoneOnLeft , +# loadingzoneOnRight , +# turnOutPointOnLeft , +# turnOutPointOnRight , +# adjacentParkingOnLeft , +# adjacentParkingOnRight , +# adjacentBikeLaneOnLeft , +# adjacentBikeLaneOnRight , +# sharedBikeLane , +# bikeBoxInFront , +# transitStopOnLeft , +# transitStopOnRight , +# transitStopInLane , +# sharedWithTrackedVehicle , +# safeIsland , +# lowCurbsPresent , +# rumbleStripPresent , +# audibleSignalingPresent , +# adaptiveTimingPresent , +# rfSignalRequestPresent , +# partialCurbIntrusion , +# taperToLeft , +# taperToRight , +# taperToCenterLine , +# parallelParking , +# headInParking , +# freeParking , +# timeRestrictionsOnParking , +# costToPark , +# midBlockCurbPresent , +# unEvenPavementPresent , +# ... +# } +# ------------------------------------------------------------------------------ + +uint8 value +uint8 RESERVED = 0 +uint8 DO_NOT_BLOCK = 1 +uint8 WHITE_LINE = 2 +uint8 MERGING_LANE_LEFT = 3 +uint8 MERGING_LANE_RIGHT = 4 +uint8 CURB_ON_LEFT = 5 +uint8 CURB_ON_RIGHT = 6 +uint8 LOADINGZONE_ON_LEFT = 7 +uint8 LOADINGZONE_ON_RIGHT = 8 +uint8 TURN_OUT_POINT_ON_LEFT = 9 +uint8 TURN_OUT_POINT_ON_RIGHT = 10 +uint8 ADJACENT_PARKING_ON_LEFT = 11 +uint8 ADJACENT_PARKING_ON_RIGHT = 12 +uint8 ADJACENT_BIKE_LANE_ON_LEFT = 13 +uint8 ADJACENT_BIKE_LANE_ON_RIGHT = 14 +uint8 SHARED_BIKE_LANE = 15 +uint8 BIKE_BOX_IN_FRONT = 16 +uint8 TRANSIT_STOP_ON_LEFT = 17 +uint8 TRANSIT_STOP_ON_RIGHT = 18 +uint8 TRANSIT_STOP_IN_LANE = 19 +uint8 SHARED_WITH_TRACKED_VEHICLE = 20 +uint8 SAFE_ISLAND = 21 +uint8 LOW_CURBS_PRESENT = 22 +uint8 RUMBLE_STRIP_PRESENT = 23 +uint8 AUDIBLE_SIGNALING_PRESENT = 24 +uint8 ADAPTIVE_TIMING_PRESENT = 25 +uint8 RF_SIGNAL_REQUEST_PRESENT = 26 +uint8 PARTIAL_CURB_INTRUSION = 27 +uint8 TAPER_TO_LEFT = 28 +uint8 TAPER_TO_RIGHT = 29 +uint8 TAPER_TO_CENTER_LINE = 30 +uint8 PARALLEL_PARKING = 31 +uint8 HEAD_IN_PARKING = 32 +uint8 FREE_PARKING = 33 +uint8 TIME_RESTRICTIONS_ON_PARKING = 34 +uint8 COST_TO_PARK = 35 +uint8 MID_BLOCK_CURB_PRESENT = 36 +uint8 UN_EVEN_PAVEMENT_PRESENT = 37 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/SegmentAttributeXYList.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/SegmentAttributeXYList.msg new file mode 100644 index 000000000..304224930 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/SegmentAttributeXYList.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SegmentAttributeXYList ::= SEQUENCE (SIZE(1..8)) OF SegmentAttributeXY +# ------------------------------------------------------------------------------ + +SegmentAttributeXY[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 8 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/SignalControlZone.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/SignalControlZone.msg new file mode 100644 index 000000000..f59baf5f1 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/SignalControlZone.msg @@ -0,0 +1,33 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SignalControlZone ::= SEQUENCE { +# zone RegionalExtension {{Reg-SignalControlZone}}, +# ... +# } +# ------------------------------------------------------------------------------ + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/SignalGroupID.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/SignalGroupID.msg new file mode 100644 index 000000000..84edb94e4 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/SignalGroupID.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SignalGroupID ::= INTEGER (0..255) +# ------------------------------------------------------------------------------ + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/SpeedLimitList.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/SpeedLimitList.msg new file mode 100644 index 000000000..fc752f958 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/SpeedLimitList.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SpeedLimitList ::= SEQUENCE (SIZE(1..9)) OF RegulatorySpeedLimit +# ------------------------------------------------------------------------------ + +RegulatorySpeedLimit[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 9 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/SpeedLimitType.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/SpeedLimitType.msg new file mode 100644 index 000000000..cbeda94aa --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/SpeedLimitType.msg @@ -0,0 +1,60 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SpeedLimitType ::= ENUMERATED { +# unknown, +# maxSpeedInSchoolZone, +# maxSpeedInSchoolZoneWhenChildrenArePresent, +# maxSpeedInConstructionZone, +# vehicleMinSpeed, +# vehicleMaxSpeed, +# vehicleNightMaxSpeed, +# truckMinSpeed, +# truckMaxSpeed, +# truckNightMaxSpeed, +# vehiclesWithTrailersMinSpeed, +# vehiclesWithTrailersMaxSpeed, +# vehiclesWithTrailersNightMaxSpeed, +# ... +# } +# ------------------------------------------------------------------------------ + +uint8 value +uint8 UNKNOWN = 0 +uint8 MAX_SPEED_IN_SCHOOL_ZONE = 1 +uint8 MAX_SPEED_IN_SCHOOL_ZONE_WHEN_CHILDREN_ARE_PRESENT = 2 +uint8 MAX_SPEED_IN_CONSTRUCTION_ZONE = 3 +uint8 VEHICLE_MIN_SPEED = 4 +uint8 VEHICLE_MAX_SPEED = 5 +uint8 VEHICLE_NIGHT_MAX_SPEED = 6 +uint8 TRUCK_MIN_SPEED = 7 +uint8 TRUCK_MAX_SPEED = 8 +uint8 TRUCK_NIGHT_MAX_SPEED = 9 +uint8 VEHICLES_WITH_TRAILERS_MIN_SPEED = 10 +uint8 VEHICLES_WITH_TRAILERS_MAX_SPEED = 11 +uint8 VEHICLES_WITH_TRAILERS_NIGHT_MAX_SPEED = 12 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/StationID.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/StationID.msg new file mode 100644 index 000000000..116f3b1d2 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/StationID.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# StationID ::= INTEGER(0..4294967295) +# ------------------------------------------------------------------------------ + +uint32 value +uint32 MIN = 0 +uint32 MAX = 4294967295 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/Velocity.msg b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/Velocity.msg new file mode 100644 index 000000000..8d13d9f6d --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/msg/Velocity.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# Velocity ::= INTEGER (0..8191) +# ------------------------------------------------------------------------------ + +uint16 value +uint16 MIN = 0 +uint16 MAX = 8191 + diff --git a/etsi_its_msgs/etsi_its_mapem_ts_msgs/package.xml b/etsi_its_msgs/etsi_its_mapem_ts_msgs/package.xml new file mode 100644 index 000000000..7301bc410 --- /dev/null +++ b/etsi_its_msgs/etsi_its_mapem_ts_msgs/package.xml @@ -0,0 +1,36 @@ + + + + etsi_its_mapem_ts_msgs + 2.2.0 + ROS messages for ETSI ITS MAPEM (TS) + + Jean-Pierre Busch + Guido Küppers + Lennart Reiher + + Jean-Pierre Busch + Guido Küppers + Lennart Reiher + + MIT + + ros_environment + std_msgs + + + rosidl_default_generators + rosidl_default_runtime + rosidl_interface_packages + + + catkin + message_generation + message_runtime + + + catkin + ament_cmake + + + diff --git a/etsi_its_msgs/etsi_its_msgs/CMakeLists.txt b/etsi_its_msgs/etsi_its_msgs/CMakeLists.txt index 931916cda..959e8aec1 100644 --- a/etsi_its_msgs/etsi_its_msgs/CMakeLists.txt +++ b/etsi_its_msgs/etsi_its_msgs/CMakeLists.txt @@ -10,11 +10,22 @@ if(${ROS_VERSION} EQUAL 2) find_package(ament_cmake REQUIRED) find_package(etsi_its_cam_msgs REQUIRED) find_package(etsi_its_cam_ts_msgs REQUIRED) - find_package(etsi_its_denm_msgs REQUIRED) find_package(etsi_its_cpm_ts_msgs REQUIRED) + find_package(etsi_its_denm_msgs REQUIRED) + find_package(etsi_its_mapem_ts_msgs REQUIRED) + find_package(etsi_its_spatem_ts_msgs REQUIRED) find_package(etsi_its_vam_ts_msgs REQUIRED) - ament_export_dependencies(etsi_its_cam_msgs etsi_its_cam_ts_msgs etsi_its_denm_msgs etsi_its_cpm_ts_msgs etsi_its_vam_ts_msgs) + ament_export_dependencies( + etsi_its_cam_msgs + etsi_its_cam_ts_msgs + etsi_its_cpm_ts_msgs + etsi_its_denm_msgs + etsi_its_mapem_ts_msgs + etsi_its_spatem_ts_msgs + etsi_its_vam_ts_msgs + ) + ament_package() # === ROS (CATKIN) ============================================================= @@ -23,8 +34,10 @@ elseif(${ROS_VERSION} EQUAL 1) find_package(catkin REQUIRED COMPONENTS etsi_its_cam_msgs etsi_its_cam_ts_msgs - etsi_its_denm_msgs etsi_its_cpm_ts_msgs + etsi_its_denm_msgs + etsi_its_mapem_ts_msgs + etsi_its_spatem_ts_msgs etsi_its_vam_ts_msgs ) @@ -32,8 +45,10 @@ elseif(${ROS_VERSION} EQUAL 1) CATKIN_DEPENDS etsi_its_cam_msgs etsi_its_cam_ts_msgs - etsi_its_denm_msgs etsi_its_cpm_ts_msgs + etsi_its_denm_msgs + etsi_its_mapem_ts_msgs + etsi_its_spatem_ts_msgs etsi_its_vam_ts_msgs ) diff --git a/etsi_its_msgs/etsi_its_msgs/package.xml b/etsi_its_msgs/etsi_its_msgs/package.xml index b71a7deac..2b2b103a6 100644 --- a/etsi_its_msgs/etsi_its_msgs/package.xml +++ b/etsi_its_msgs/etsi_its_msgs/package.xml @@ -17,8 +17,10 @@ etsi_its_cam_msgs etsi_its_cam_ts_msgs - etsi_its_denm_msgs etsi_its_cpm_ts_msgs + etsi_its_denm_msgs + etsi_its_mapem_ts_msgs + etsi_its_spatem_ts_msgs etsi_its_vam_ts_msgs ros_environment diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/CMakeLists.txt b/etsi_its_msgs/etsi_its_spatem_ts_msgs/CMakeLists.txt new file mode 100644 index 000000000..77a4feae7 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/CMakeLists.txt @@ -0,0 +1,81 @@ +cmake_minimum_required(VERSION 3.5) +project(etsi_its_spatem_ts_msgs) + +find_package(ros_environment REQUIRED QUIET) +set(ROS_VERSION $ENV{ROS_VERSION}) + +# === ROS 2 (AMENT) ============================================================ +if(${ROS_VERSION} EQUAL 2) + + find_package(ament_cmake REQUIRED) + find_package(rosidl_default_generators REQUIRED) + + set(msg_files + "msg/AdvisorySpeed.msg" + "msg/AdvisorySpeedList.msg" + "msg/AdvisorySpeedType.msg" + "msg/ConnectionManeuverAssist.msg" + "msg/DSecond.msg" + "msg/DescriptiveName.msg" + "msg/EnabledLaneList.msg" + "msg/IntersectionID.msg" + "msg/IntersectionReferenceID.msg" + "msg/IntersectionState.msg" + "msg/IntersectionStateList.msg" + "msg/IntersectionStatusObject.msg" + "msg/ItsPduHeader.msg" + "msg/LaneConnectionID.msg" + "msg/LaneID.msg" + "msg/ManeuverAssistList.msg" + "msg/MinuteOfTheYear.msg" + "msg/MovementEvent.msg" + "msg/MovementEventList.msg" + "msg/MovementList.msg" + "msg/MovementPhaseState.msg" + "msg/MovementState.msg" + "msg/MsgCount.msg" + "msg/PedestrianBicycleDetect.msg" + "msg/RestrictionClassID.msg" + "msg/RoadRegulatorID.msg" + "msg/SPAT.msg" + "msg/SPATEM.msg" + "msg/SignalGroupID.msg" + "msg/SpeedAdvice.msg" + "msg/SpeedConfidenceDSRC.msg" + "msg/StationID.msg" + "msg/TimeChangeDetails.msg" + "msg/TimeIntervalConfidence.msg" + "msg/TimeMark.msg" + "msg/WaitOnStopline.msg" + "msg/ZoneLength.msg" + ) + + rosidl_generate_interfaces(${PROJECT_NAME} + ${msg_files} + ) + + ament_export_dependencies(rosidl_default_runtime) + + ament_package() + +# === ROS (CATKIN) ============================================================= +elseif(${ROS_VERSION} EQUAL 1) + + find_package(catkin REQUIRED COMPONENTS + message_generation + std_msgs + ) + + add_message_files(DIRECTORY msg) + + generate_messages( + DEPENDENCIES std_msgs + ) + + catkin_package( + CATKIN_DEPENDS + message_runtime + std_msgs + ) + +endif() diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/AdvisorySpeed.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/AdvisorySpeed.msg new file mode 100644 index 000000000..1834fa8a6 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/AdvisorySpeed.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AdvisorySpeed ::= SEQUENCE { +# type AdvisorySpeedType, +# speed SpeedAdvice OPTIONAL, +# confidence SpeedConfidenceDSRC OPTIONAL, +# distance ZoneLength OPTIONAL, +# class RestrictionClassID OPTIONAL, +# regional SEQUENCE (SIZE(1..4)) OF +# RegionalExtension {{Reg-AdvisorySpeed}} OPTIONAL, +# ------------------------------------------------------------------------------ + +AdvisorySpeedType type + +SpeedAdvice speed +bool speed_is_present + +SpeedConfidenceDSRC confidence +bool confidence_is_present + +ZoneLength distance +bool distance_is_present + +RestrictionClassID cls +bool cls_is_present + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/AdvisorySpeedList.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/AdvisorySpeedList.msg new file mode 100644 index 000000000..c88fc2439 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/AdvisorySpeedList.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AdvisorySpeedList ::= SEQUENCE (SIZE(1..16)) OF AdvisorySpeed +# ------------------------------------------------------------------------------ + +AdvisorySpeed[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 16 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/AdvisorySpeedType.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/AdvisorySpeedType.msg new file mode 100644 index 000000000..0ca06ede4 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/AdvisorySpeedType.msg @@ -0,0 +1,42 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# AdvisorySpeedType ::= ENUMERATED { +# none (0), +# greenwave (1), +# ecoDrive (2), +# transit (3), +# ... +# } +# ------------------------------------------------------------------------------ + +uint8 value +uint8 NONE = 0 +uint8 GREENWAVE = 1 +uint8 ECO_DRIVE = 2 +uint8 TRANSIT = 3 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/ConnectionManeuverAssist.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/ConnectionManeuverAssist.msg new file mode 100644 index 000000000..e2ecf75cc --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/ConnectionManeuverAssist.msg @@ -0,0 +1,51 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ConnectionManeuverAssist ::= SEQUENCE { +# connectionID LaneConnectionID, +# queueLength ZoneLength OPTIONAL, +# availableStorageLength ZoneLength OPTIONAL, +# waitOnStop WaitOnStopline OPTIONAL, +# pedBicycleDetect PedestrianBicycleDetect OPTIONAL, +# regional SEQUENCE (SIZE(1..4)) OF +# RegionalExtension {{Reg-ConnectionManeuverAssist}} OPTIONAL, +# ------------------------------------------------------------------------------ + +LaneConnectionID connection_id + +ZoneLength queue_length +bool queue_length_is_present + +ZoneLength available_storage_length +bool available_storage_length_is_present + +WaitOnStopline wait_on_stop +bool wait_on_stop_is_present + +PedestrianBicycleDetect ped_bicycle_detect +bool ped_bicycle_detect_is_present + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/DSecond.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/DSecond.msg new file mode 100644 index 000000000..c2aec8d4d --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/DSecond.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DSecond ::= INTEGER (0..65535) +# ------------------------------------------------------------------------------ + +uint16 value +uint16 MIN = 0 +uint16 MAX = 65535 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/DescriptiveName.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/DescriptiveName.msg new file mode 100644 index 000000000..97bd6a696 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/DescriptiveName.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# DescriptiveName ::= IA5String (SIZE(1..63)) +# ------------------------------------------------------------------------------ + +string value +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 63 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/EnabledLaneList.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/EnabledLaneList.msg new file mode 100644 index 000000000..23cd04ce0 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/EnabledLaneList.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# EnabledLaneList ::= SEQUENCE (SIZE(1..16)) OF LaneID +# ------------------------------------------------------------------------------ + +LaneID[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 16 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/IntersectionID.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/IntersectionID.msg new file mode 100644 index 000000000..355054841 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/IntersectionID.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# IntersectionID ::= INTEGER (0..65535) +# ------------------------------------------------------------------------------ + +uint16 value +uint16 MIN = 0 +uint16 MAX = 65535 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/IntersectionReferenceID.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/IntersectionReferenceID.msg new file mode 100644 index 000000000..b65e59d25 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/IntersectionReferenceID.msg @@ -0,0 +1,38 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# IntersectionReferenceID ::= SEQUENCE { +# region RoadRegulatorID OPTIONAL, +# id IntersectionID +# } +# ------------------------------------------------------------------------------ + +RoadRegulatorID region +bool region_is_present + +IntersectionID id + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/IntersectionState.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/IntersectionState.msg new file mode 100644 index 000000000..9a794ddda --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/IntersectionState.msg @@ -0,0 +1,64 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# IntersectionState ::= SEQUENCE { +# name DescriptiveName OPTIONAL, +# id IntersectionReferenceID, +# revision MsgCount, +# status IntersectionStatusObject, +# moy MinuteOfTheYear OPTIONAL, +# timeStamp DSecond OPTIONAL, +# enabledLanes EnabledLaneList OPTIONAL, +# states MovementList, +# maneuverAssistList ManeuverAssistList OPTIONAL, +# regional SEQUENCE (SIZE(1..4)) OF +# RegionalExtension {{Reg-IntersectionState}} OPTIONAL, +# ------------------------------------------------------------------------------ + +DescriptiveName name +bool name_is_present + +IntersectionReferenceID id + +MsgCount revision + +IntersectionStatusObject status + +MinuteOfTheYear moy +bool moy_is_present + +DSecond time_stamp +bool time_stamp_is_present + +EnabledLaneList enabled_lanes +bool enabled_lanes_is_present + +MovementList states + +ManeuverAssistList maneuver_assist_list +bool maneuver_assist_list_is_present + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/IntersectionStateList.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/IntersectionStateList.msg new file mode 100644 index 000000000..04f1ae600 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/IntersectionStateList.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# IntersectionStateList ::= SEQUENCE (SIZE(1..32)) OF IntersectionState +# ------------------------------------------------------------------------------ + +IntersectionState[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 32 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/IntersectionStatusObject.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/IntersectionStatusObject.msg new file mode 100644 index 000000000..5ec690c72 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/IntersectionStatusObject.msg @@ -0,0 +1,63 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# IntersectionStatusObject ::= BIT STRING { +# manualControlIsEnabled (0), +# stopTimeIsActivated (1), +# failureFlash (2), +# preemptIsActive (3), +# signalPriorityIsActive (4), +# fixedTimeOperation (5), +# trafficDependentOperation (6), +# standbyOperation (7), +# failureMode (8), +# off (9), +# recentMAPmessageUpdate (10), +# recentChangeInMAPassignedLanesIDsUsed (11), +# noValidMAPisAvailableAtThisTime (12), +# noValidSPATisAvailableAtThisTime (13) +# } (SIZE(16)) +# ------------------------------------------------------------------------------ + +uint8[] value +uint8 bits_unused +uint8 SIZE_BITS = 16 +uint8 BIT_INDEX_MANUAL_CONTROL_IS_ENABLED = 0 +uint8 BIT_INDEX_STOP_TIME_IS_ACTIVATED = 1 +uint8 BIT_INDEX_FAILURE_FLASH = 2 +uint8 BIT_INDEX_PREEMPT_IS_ACTIVE = 3 +uint8 BIT_INDEX_SIGNAL_PRIORITY_IS_ACTIVE = 4 +uint8 BIT_INDEX_FIXED_TIME_OPERATION = 5 +uint8 BIT_INDEX_TRAFFIC_DEPENDENT_OPERATION = 6 +uint8 BIT_INDEX_STANDBY_OPERATION = 7 +uint8 BIT_INDEX_FAILURE_MODE = 8 +uint8 BIT_INDEX_OFF = 9 +uint8 BIT_INDEX_RECENT_M_A_PMESSAGE_UPDATE = 10 +uint8 BIT_INDEX_RECENT_CHANGE_IN_M_A_PASSIGNED_LANES_IDS_USED = 11 +uint8 BIT_INDEX_NO_VALID_M_A_PIS_AVAILABLE_AT_THIS_TIME = 12 +uint8 BIT_INDEX_NO_VALID_SPATIS_AVAILABLE_AT_THIS_TIME = 13 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/ItsPduHeader.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/ItsPduHeader.msg new file mode 100644 index 000000000..482b6afcb --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/ItsPduHeader.msg @@ -0,0 +1,55 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ItsPduHeader ::= SEQUENCE { +# protocolVersion INTEGER (0..255), +# messageID INTEGER{ denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13) } (0..255), -- Mantis #7209, #7005 +# ------------------------------------------------------------------------------ + +uint8 protocol_version +uint8 PROTOCOL_VERSION_MIN = 0 +uint8 PROTOCOL_VERSION_MAX = 255 + +uint8 message_id +uint8 MESSAGE_ID_MIN = 0 +uint8 MESSAGE_ID_MAX = 255 +uint8 MESSAGE_ID_DENM = 1 +uint8 MESSAGE_ID_CAM = 2 +uint8 MESSAGE_ID_POI = 3 +uint8 MESSAGE_ID_SPATEM = 4 +uint8 MESSAGE_ID_MAPEM = 5 +uint8 MESSAGE_ID_IVIM = 6 +uint8 MESSAGE_ID_EV_RSR = 7 +uint8 MESSAGE_ID_TISTPGTRANSACTION = 8 +uint8 MESSAGE_ID_SREM = 9 +uint8 MESSAGE_ID_SSEM = 10 +uint8 MESSAGE_ID_EVCSN = 11 +uint8 MESSAGE_ID_SAEM = 12 +uint8 MESSAGE_ID_RTCMEM = 13 + +StationID station_id + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/LaneConnectionID.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/LaneConnectionID.msg new file mode 100644 index 000000000..bdbc8cfad --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/LaneConnectionID.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LaneConnectionID ::= INTEGER (0..255) +# ------------------------------------------------------------------------------ + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/LaneID.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/LaneID.msg new file mode 100644 index 000000000..a579c77f7 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/LaneID.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# LaneID ::= INTEGER (0..255) +# ------------------------------------------------------------------------------ + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/ManeuverAssistList.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/ManeuverAssistList.msg new file mode 100644 index 000000000..1a7572c58 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/ManeuverAssistList.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ManeuverAssistList ::= SEQUENCE (SIZE(1..16)) OF ConnectionManeuverAssist +# ------------------------------------------------------------------------------ + +ConnectionManeuverAssist[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 16 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/MinuteOfTheYear.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/MinuteOfTheYear.msg new file mode 100644 index 000000000..c6513dd3f --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/MinuteOfTheYear.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MinuteOfTheYear ::= INTEGER (0..527040) +# ------------------------------------------------------------------------------ + +uint32 value +uint32 MIN = 0 +uint32 MAX = 527040 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/MovementEvent.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/MovementEvent.msg new file mode 100644 index 000000000..11ce3cd13 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/MovementEvent.msg @@ -0,0 +1,43 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MovementEvent ::= SEQUENCE { +# eventState MovementPhaseState, +# timing TimeChangeDetails OPTIONAL, +# speeds AdvisorySpeedList OPTIONAL, +# regional SEQUENCE (SIZE(1..4)) OF +# RegionalExtension {{Reg-MovementEvent}} OPTIONAL, +# ------------------------------------------------------------------------------ + +MovementPhaseState event_state + +TimeChangeDetails timing +bool timing_is_present + +AdvisorySpeedList speeds +bool speeds_is_present + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/MovementEventList.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/MovementEventList.msg new file mode 100644 index 000000000..e8cbe53a2 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/MovementEventList.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MovementEventList ::= SEQUENCE (SIZE(1..16)) OF MovementEvent +# ------------------------------------------------------------------------------ + +MovementEvent[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 16 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/MovementList.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/MovementList.msg new file mode 100644 index 000000000..612fd6bfa --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/MovementList.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MovementList ::= SEQUENCE (SIZE(1..255)) OF MovementState +# ------------------------------------------------------------------------------ + +MovementState[] array +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 255 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/MovementPhaseState.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/MovementPhaseState.msg new file mode 100644 index 000000000..92d513f96 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/MovementPhaseState.msg @@ -0,0 +1,53 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MovementPhaseState ::= ENUMERATED { +# unavailable (0), +# dark (1), +# stop-Then-Proceed (2), +# stop-And-Remain (3), +# pre-Movement (4), +# permissive-Movement-Allowed (5), +# protected-Movement-Allowed (6), +# permissive-clearance (7), +# protected-clearance (8), +# caution-Conflicting-Traffic (9) +# } +# ------------------------------------------------------------------------------ + +uint8 value +uint8 UNAVAILABLE = 0 +uint8 DARK = 1 +uint8 STOP_THEN_PROCEED = 2 +uint8 STOP_AND_REMAIN = 3 +uint8 PRE_MOVEMENT = 4 +uint8 PERMISSIVE_MOVEMENT_ALLOWED = 5 +uint8 PROTECTED_MOVEMENT_ALLOWED = 6 +uint8 PERMISSIVE_CLEARANCE = 7 +uint8 PROTECTED_CLEARANCE = 8 +uint8 CAUTION_CONFLICTING_TRAFFIC = 9 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/MovementState.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/MovementState.msg new file mode 100644 index 000000000..f26089e25 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/MovementState.msg @@ -0,0 +1,46 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MovementState ::= SEQUENCE { +# movementName DescriptiveName OPTIONAL, +# signalGroup SignalGroupID, +# state-time-speed MovementEventList, +# maneuverAssistList ManeuverAssistList OPTIONAL, +# regional SEQUENCE (SIZE(1..4)) OF +# RegionalExtension {{Reg-MovementState}} OPTIONAL, +# ------------------------------------------------------------------------------ + +DescriptiveName movement_name +bool movement_name_is_present + +SignalGroupID signal_group + +MovementEventList state_time_speed + +ManeuverAssistList maneuver_assist_list +bool maneuver_assist_list_is_present + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/MsgCount.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/MsgCount.msg new file mode 100644 index 000000000..1ce99af7e --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/MsgCount.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# MsgCount ::= INTEGER (0..127) +# ------------------------------------------------------------------------------ + +uint8 value +uint8 MIN = 0 +uint8 MAX = 127 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/PedestrianBicycleDetect.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/PedestrianBicycleDetect.msg new file mode 100644 index 000000000..154148bf1 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/PedestrianBicycleDetect.msg @@ -0,0 +1,32 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# PedestrianBicycleDetect ::= BOOLEAN +# ------------------------------------------------------------------------------ + +bool value + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/RestrictionClassID.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/RestrictionClassID.msg new file mode 100644 index 000000000..33c7a926f --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/RestrictionClassID.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RestrictionClassID ::= INTEGER (0..255) +# ------------------------------------------------------------------------------ + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/RoadRegulatorID.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/RoadRegulatorID.msg new file mode 100644 index 000000000..a914073d5 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/RoadRegulatorID.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# RoadRegulatorID ::= INTEGER (0..65535) +# ------------------------------------------------------------------------------ + +uint16 value +uint16 MIN = 0 +uint16 MAX = 65535 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/SPAT.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/SPAT.msg new file mode 100644 index 000000000..279a56d81 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/SPAT.msg @@ -0,0 +1,43 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SPAT ::= SEQUENCE { +# timeStamp MinuteOfTheYear OPTIONAL, +# name DescriptiveName OPTIONAL, +# intersections IntersectionStateList, +# regional SEQUENCE (SIZE(1..4)) OF +# RegionalExtension {{Reg-SPAT}} OPTIONAL, +# ------------------------------------------------------------------------------ + +MinuteOfTheYear time_stamp +bool time_stamp_is_present + +DescriptiveName name +bool name_is_present + +IntersectionStateList intersections + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/SPATEM.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/SPATEM.msg new file mode 100644 index 000000000..4ccb90008 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/SPATEM.msg @@ -0,0 +1,43 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SPATEM ::= SEQUENCE { +# -- @details header +# -- The DE _protocolVersion_ is used to select the appropriate protocol decoder at the receiving ITS-S. +# -- It shall be set to 2. +# -- The DE _messageID_ shall be spatem(4). +# header ItsPduHeader, +# -- @details spat +# -- The DE _spat_ contains the SPaT data as defined in ISO TS 19091. +# spat SPAT +# } +# ------------------------------------------------------------------------------ + +ItsPduHeader header + +SPAT spat + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/SignalGroupID.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/SignalGroupID.msg new file mode 100644 index 000000000..84edb94e4 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/SignalGroupID.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SignalGroupID ::= INTEGER (0..255) +# ------------------------------------------------------------------------------ + +uint8 value +uint8 MIN = 0 +uint8 MAX = 255 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/SpeedAdvice.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/SpeedAdvice.msg new file mode 100644 index 000000000..b6e6c7947 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/SpeedAdvice.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SpeedAdvice ::= INTEGER (0..500) +# ------------------------------------------------------------------------------ + +uint16 value +uint16 MIN = 0 +uint16 MAX = 500 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/SpeedConfidenceDSRC.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/SpeedConfidenceDSRC.msg new file mode 100644 index 000000000..3b5f9e5d5 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/SpeedConfidenceDSRC.msg @@ -0,0 +1,49 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# SpeedConfidenceDSRC ::= ENUMERATED { +# unavailable (0), -- Not Equipped or unavailable +# prec100ms (1), -- 100 meters / sec +# prec10ms (2), -- 10 meters / sec +# prec5ms (3), -- 5 meters / sec +# prec1ms (4), -- 1 meters / sec +# prec0-1ms (5), -- 0.1 meters / sec +# prec0-05ms (6), -- 0.05 meters / sec +# prec0-01ms (7) -- 0.01 meters / sec +# } +# ------------------------------------------------------------------------------ + +uint8 value +uint8 UNAVAILABLE = 0 +uint8 PREC100MS = 1 +uint8 PREC10MS = 2 +uint8 PREC5MS = 3 +uint8 PREC1MS = 4 +uint8 PREC0_1MS = 5 +uint8 PREC0_05MS = 6 +uint8 PREC0_01MS = 7 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/StationID.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/StationID.msg new file mode 100644 index 000000000..116f3b1d2 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/StationID.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# StationID ::= INTEGER(0..4294967295) +# ------------------------------------------------------------------------------ + +uint32 value +uint32 MIN = 0 +uint32 MAX = 4294967295 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/TimeChangeDetails.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/TimeChangeDetails.msg new file mode 100644 index 000000000..a22c0ae05 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/TimeChangeDetails.msg @@ -0,0 +1,54 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# TimeChangeDetails ::= SEQUENCE { +# startTime TimeMark OPTIONAL, +# minEndTime TimeMark, +# maxEndTime TimeMark OPTIONAL, +# likelyTime TimeMark OPTIONAL, +# confidence TimeIntervalConfidence OPTIONAL, +# nextTime TimeMark OPTIONAL +# } +# ------------------------------------------------------------------------------ + +TimeMark start_time +bool start_time_is_present + +TimeMark min_end_time + +TimeMark max_end_time +bool max_end_time_is_present + +TimeMark likely_time +bool likely_time_is_present + +TimeIntervalConfidence confidence +bool confidence_is_present + +TimeMark next_time +bool next_time_is_present + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/TimeIntervalConfidence.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/TimeIntervalConfidence.msg new file mode 100644 index 000000000..543e22961 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/TimeIntervalConfidence.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# TimeIntervalConfidence ::= INTEGER (0..15) +# ------------------------------------------------------------------------------ + +uint8 value +uint8 MIN = 0 +uint8 MAX = 15 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/TimeMark.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/TimeMark.msg new file mode 100644 index 000000000..a21b32ff4 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/TimeMark.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# TimeMark ::= INTEGER (0..36001) +# ------------------------------------------------------------------------------ + +uint16 value +uint16 MIN = 0 +uint16 MAX = 36001 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/WaitOnStopline.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/WaitOnStopline.msg new file mode 100644 index 000000000..90b041f7d --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/WaitOnStopline.msg @@ -0,0 +1,32 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# WaitOnStopline ::= BOOLEAN +# ------------------------------------------------------------------------------ + +bool value + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/ZoneLength.msg b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/ZoneLength.msg new file mode 100644 index 000000000..80387bf54 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/msg/ZoneLength.msg @@ -0,0 +1,34 @@ +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +# --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- + +# --- ASN.1 Definition --------------------------------------------------------- +# ZoneLength ::= INTEGER (0..10000) +# ------------------------------------------------------------------------------ + +uint16 value +uint16 MIN = 0 +uint16 MAX = 10000 + diff --git a/etsi_its_msgs/etsi_its_spatem_ts_msgs/package.xml b/etsi_its_msgs/etsi_its_spatem_ts_msgs/package.xml new file mode 100644 index 000000000..3cf5858c6 --- /dev/null +++ b/etsi_its_msgs/etsi_its_spatem_ts_msgs/package.xml @@ -0,0 +1,36 @@ + + + + etsi_its_spatem_ts_msgs + 2.2.0 + ROS messages for ETSI ITS SPATEM (TS) + + Jean-Pierre Busch + Guido Küppers + Lennart Reiher + + Jean-Pierre Busch + Guido Küppers + Lennart Reiher + + MIT + + ros_environment + std_msgs + + + rosidl_default_generators + rosidl_default_runtime + rosidl_interface_packages + + + catkin + message_generation + message_runtime + + + catkin + ament_cmake + + + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/AccelerationChange.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/AccelerationChange.msg index be13b4cb3..544c3bc44 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/AccelerationChange.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/AccelerationChange.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,44 +25,21 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates a change of acceleration. +# * +# * The value shall be set to: +# * - 0 - `accelerate` - if the magnitude of the horizontal velocity vector increases. +# * - 1 - `decelerate` - if the magnitude of the horizontal velocity vector decreases. +# * +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# */ # AccelerationChange::= ENUMERATED { # accelerate (0), # decelerate (1) # } # ------------------------------------------------------------------------------ -# -# -# -# -# -# -# -# -# -# -# -# Specification of CDD Data Elements: -# -# -# -# -# -# -# -# -# -# -# -#* -# * This DE indicates a change of acceleration. -# * -# * The value shall be set to: -# * - 0 - `accelerate` - if the magnitude of the horizontal velocity vector increases. -# * - 1 - `decelerate` - if the magnitude of the horizontal velocity vector decreases. -# * -# * @category: Kinematic information -# * @revision: Created in V2.1.1 -# uint8 value uint8 ACCELERATE = 0 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/AccelerationChangeIndication.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/AccelerationChangeIndication.msg index 7ba77b1b8..310171468 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/AccelerationChangeIndication.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/AccelerationChangeIndication.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,24 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents information associated to changes in acceleration. +# * +# * It shall include the following components: +# * +# * @field accelOrDecel: the indication of an acceleration change. +# * +# * @field actionDeltaTime: the period over which the acceleration change action is performed. +# * +# * @category: Kinematic Information +# * @revision: Created in V2.1.1 +# */ # AccelerationChangeIndication ::= SEQUENCE { # accelOrDecel AccelerationChange, # actionDeltaTime DeltaTimeTenthOfSecond, # ... # } # ------------------------------------------------------------------------------ -# * -# * This DF represents information associated to changes in acceleration. -# * -# * It shall include the following components: -# * -# * @field accelOrDecel: the indication of an acceleration change. -# * -# * @field actionDeltaTime: the period over which the acceleration change action is performed. -# * -# * @category: Kinematic Information -# * @revision: Created in V2.1.1 -# AccelerationChange accel_or_decel diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/AccelerationConfidence.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/AccelerationConfidence.msg index 42241d2bb..1621ceb3e 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/AccelerationConfidence.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/AccelerationConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,37 +25,38 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the acceleration confidence value which represents the estimated absolute accuracy of an acceleration value with a default confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 101`) if the confidence value is equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, +# * - `101` if the confidence value is out of range i.e. greater than 10 m/s^2, +# * - `102` if the confidence value is unavailable. +# * +# * The value 0 shall not be used. +# * +# * @note: The fact that an acceleration value is received with confidence value set to `unavailable(102)` can be caused by several reasons, such as: +# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, +# * - the sensor cannot calculate the accuracy due to lack of variables, or +# * - there has been a vehicle bus (e.g. CAN bus) error. +# * In all 3 cases above, the acceleration value may be valid and used by the application. +# * +# * @note: If an acceleration value is received and its confidence value is set to `outOfRange(101)`, it means that the value is not valid and therefore cannot be trusted. Such value is not useful for the application. +# * +# * @unit 0,1 m/s^2 +# * @category: Kinematic information +# * @revision: Description revised in V2.1.1 +# */ # AccelerationConfidence ::= INTEGER { # outOfRange (101), # unavailable (102) # } (0..102) # ------------------------------------------------------------------------------ -# * -# * This DE indicates the acceleration confidence value which represents the estimated absolute accuracy of an acceleration value with a default confidence level of 95 %. -# * If required, the confidence level can be defined by the corresponding standards applying this DE. -# * -# * The value shall be set to: -# * - `n` (`n > 0` and `n < 101`) if the confidence value is equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, -# * - `101` if the confidence value is out of range i.e. greater than 10 m/s^2, -# * - `102` if the confidence value is unavailable. -# * -# * The value 0 shall not be used. -# * -# * @note: The fact that an acceleration value is received with confidence value set to `unavailable(102)` can be caused by several reasons, such as: -# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, -# * - the sensor cannot calculate the accuracy due to lack of variables, or -# * - there has been a vehicle bus (e.g. CAN bus) error. -# * In all 3 cases above, the acceleration value may be valid and used by the application. -# * -# * @note: If an acceleration value is received and its confidence value is set to `outOfRange(101)`, it means that the value is not valid and therefore cannot be trusted. Such value is not useful for the application. -# * -# * @unit 0,1 m/s^2 -# * @category: Kinematic information -# * @revision: Description revised in V2.1.1 -# uint8 value uint8 MIN = 0 uint8 MAX = 102 uint8 OUT_OF_RANGE = 101 uint8 UNAVAILABLE = 102 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Altitude.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Altitude.msg index cd23af7a6..73b51e84a 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Altitude.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Altitude.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,25 +25,25 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF provides the altitude and confidence level of an altitude information in a WGS84 coordinate system. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * +# * It shall include the following components: +# * +# * @field altitudeValue: altitude of a geographical point. +# * +# * @field altitudeConfidence: confidence level of the altitudeValue. +# * +# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref AltitudeWithConfidence instead. +# * @category: GeoReference information +# * @revision: Description revised in V2.1.1 +# */ # Altitude ::= SEQUENCE { # altitudeValue AltitudeValue, # altitudeConfidence AltitudeConfidence # } # ------------------------------------------------------------------------------ -# * -# * This DF provides the altitude and confidence level of an altitude information in a WGS84 coordinate system. -# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. -# * -# * It shall include the following components: -# * -# * @field altitudeValue: altitude of a geographical point. -# * -# * @field altitudeConfidence: confidence level of the altitudeValue. -# * -# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref AltitudeWithConfidence instead. -# * @category: GeoReference information -# * @revision: Description revised in V2.1.1 -# AltitudeValue altitude_value diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/AltitudeConfidence.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/AltitudeConfidence.msg index 45e848bda..370c3c60d 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/AltitudeConfidence.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/AltitudeConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,41 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the altitude confidence value which represents the estimated absolute accuracy of an altitude value of a geographical point with a default confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - 0 - `alt-000-01` - if the confidence value is equal to or less than 0,01 metre, +# * - 1 - `alt-000-02` - if the confidence value is equal to or less than 0,02 metre and greater than 0,01 metre, +# * - 2 - `alt-000-05` - if the confidence value is equal to or less than 0,05 metre and greater than 0,02 metre, +# * - 3 - `alt-000-10` - if the confidence value is equal to or less than 0,1 metre and greater than 0,05 metre, +# * - 4 - `alt-000-20` - if the confidence value is equal to or less than 0,2 metre and greater than 0,1 metre, +# * - 5 - `alt-000-50` - if the confidence value is equal to or less than 0,5 metre and greater than 0,2 metre, +# * - 6 - `alt-001-00` - if the confidence value is equal to or less than 1 metre and greater than 0,5 metre, +# * - 7 - `alt-002-00` - if the confidence value is equal to or less than 2 metres and greater than 1 metre, +# * - 8 - `alt-005-00` - if the confidence value is equal to or less than 5 metres and greater than 2 metres, +# * - 9 - `alt-010-00` - if the confidence value is equal to or less than 10 metres and greater than 5 metres, +# * - 10 - `alt-020-00` - if the confidence value is equal to or less than 20 metres and greater than 10 metres, +# * - 11 - `alt-050-00` - if the confidence value is equal to or less than 50 metres and greater than 20 metres, +# * - 12 - `alt-100-00` - if the confidence value is equal to or less than 100 metres and greater than 50 metres, +# * - 13 - `alt-200-00` - if the confidence value is equal to or less than 200 metres and greater than 100 metres, +# * - 14 - `outOfRange` - if the confidence value is out of range, i.e. greater than 200 metres, +# * - 15 - `unavailable` - if the confidence value is unavailable. +# * +# * @note: The fact that an altitude value is received with confidence value set to `unavailable(15)` can be caused +# * by several reasons, such as: +# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, +# * - the sensor cannot calculate the accuracy due to lack of variables, or +# * - there has been a vehicle bus (e.g. CAN bus) error. +# * In all 3 cases above, the altitude value may be valid and used by the application. +# * +# * @note: If an altitude value is received and its confidence value is set to `outOfRange(14)`, it means that the +# * altitude value is not valid and therefore cannot be trusted. Such value is not useful for the application. +# * +# * @category: GeoReference information +# * @revision: Description revised in V2.1.1 +# */ # AltitudeConfidence ::= ENUMERATED { # alt-000-01 (0), # alt-000-02 (1), @@ -45,41 +79,6 @@ # unavailable (15) # } # ------------------------------------------------------------------------------ -# * -# * This DE indicates the altitude confidence value which represents the estimated absolute accuracy of an altitude value of a geographical point with a default confidence level of 95 %. -# * If required, the confidence level can be defined by the corresponding standards applying this DE. -# * -# * The value shall be set to: -# * - 0 - `alt-000-01` - if the confidence value is equal to or less than 0,01 metre, -# * - 1 - `alt-000-02` - if the confidence value is equal to or less than 0,02 metre and greater than 0,01 metre, -# * - 2 - `alt-000-05` - if the confidence value is equal to or less than 0,05 metre and greater than 0,02 metre, -# * - 3 - `alt-000-10` - if the confidence value is equal to or less than 0,1 metre and greater than 0,05 metre, -# * - 4 - `alt-000-20` - if the confidence value is equal to or less than 0,2 metre and greater than 0,1 metre, -# * - 5 - `alt-000-50` - if the confidence value is equal to or less than 0,5 metre and greater than 0,2 metre, -# * - 6 - `alt-001-00` - if the confidence value is equal to or less than 1 metre and greater than 0,5 metre, -# * - 7 - `alt-002-00` - if the confidence value is equal to or less than 2 metres and greater than 1 metre, -# * - 8 - `alt-005-00` - if the confidence value is equal to or less than 5 metres and greater than 2 metres, -# * - 9 - `alt-010-00` - if the confidence value is equal to or less than 10 metres and greater than 5 metres, -# * - 10 - `alt-020-00` - if the confidence value is equal to or less than 20 metres and greater than 10 metres, -# * - 11 - `alt-050-00` - if the confidence value is equal to or less than 50 metres and greater than 20 metres, -# * - 12 - `alt-100-00` - if the confidence value is equal to or less than 100 metres and greater than 50 metres, -# * - 13 - `alt-200-00` - if the confidence value is equal to or less than 200 metres and greater than 100 metres, -# * - 14 - `outOfRange` - if the confidence value is out of range, i.e. greater than 200 metres, -# * - 15 - `unavailable` - if the confidence value is unavailable. -# * -# * @note: The fact that an altitude value is received with confidence value set to `unavailable(15)` can be caused -# * by several reasons, such as: -# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, -# * - the sensor cannot calculate the accuracy due to lack of variables, or -# * - there has been a vehicle bus (e.g. CAN bus) error. -# * In all 3 cases above, the altitude value may be valid and used by the application. -# * -# * @note: If an altitude value is received and its confidence value is set to `outOfRange(14)`, it means that the -# * altitude value is not valid and therefore cannot be trusted. Such value is not useful for the application. -# * -# * @category: GeoReference information -# * @revision: Description revised in V2.1.1 -# uint8 value uint8 ALT_000_01 = 0 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/AltitudeValue.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/AltitudeValue.msg index 5cda57d38..64b5615dd 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/AltitudeValue.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/AltitudeValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,27 +25,27 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the altitude value in a WGS84 coordinate system. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `-100 000` if the altitude is equal to or less than -1 000 m, +# * - `n` (`n > -100 000` and `n < 800 000`) if the altitude is equal to or less than n x 0,01 metre and greater than (n-1) x 0,01 metre, +# * - `800 000` if the altitude greater than 7 999,99 m, +# * - `800 001` if the information is not available. +# * +# * @note: the range of this DE does not use the full binary encoding range, but all reasonable values are covered. In order to cover all possible altitude ranges a larger encoding would be necessary. +# * @unit: 0,01 metre +# * @category: GeoReference information +# * @revision: Description revised in V2.1.1 (definition of 800 000 has slightly changed) +# */ # AltitudeValue ::= INTEGER { # negativeOutOfRange (-100000), # postiveOutOfRange (800000), # unavailable (800001) # } (-100000..800001) # ------------------------------------------------------------------------------ -# * -# * This DE represents the altitude value in a WGS84 coordinate system. -# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. -# * -# * The value shall be set to: -# * - `-100 000` if the altitude is equal to or less than -1 000 m, -# * - `n` (`n > -100 000` and `n < 800 000`) if the altitude is equal to or less than n x 0,01 metre and greater than (n-1) x 0,01 metre, -# * - `800 000` if the altitude greater than 7 999,99 m, -# * - `800 001` if the information is not available. -# * -# * @note: the range of this DE does not use the full binary encoding range, but all reasonable values are covered. In order to cover all possible altitude ranges a larger encoding would be necessary. -# * @unit: 0,01 metre -# * @category: GeoReference information -# * @revision: Description revised in V2.1.1 (definition of 800 000 has slightly changed) -# int32 value int32 MIN = -100000 @@ -54,3 +53,4 @@ int32 MAX = 800001 int32 NEGATIVE_OUT_OF_RANGE = -100000 int32 POSTIVE_OUT_OF_RANGE = 800000 int32 UNAVAILABLE = 800001 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/AngleConfidence.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/AngleConfidence.msg index 8c68734c1..5a2877e52 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/AngleConfidence.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/AngleConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,27 +25,28 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the angle confidence value which represents the estimated absolute accuracy of an angle value with a default confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 126`) if the accuracy is equal to or less than n * 0,1 degrees and greater than (n-1) x * 0,1 degrees, +# * - `126` if the accuracy is out of range, i.e. greater than 12,5 degrees, +# * - `127` if the accuracy information is not available. +# * +# * @unit: 0,1 degrees +# * @category: Basic information +# * @revision: Created in V2.1.1 +# */ # AngleConfidence ::= INTEGER { # outOfRange (126), # unavailable (127) # } (1..127) # ------------------------------------------------------------------------------ -# * -# * This DE indicates the angle confidence value which represents the estimated absolute accuracy of an angle value with a default confidence level of 95 %. -# * If required, the confidence level can be defined by the corresponding standards applying this DE. -# * -# * The value shall be set to: -# * - `n` (`n > 0` and `n < 126`) if the accuracy is equal to or less than n * 0,1 degrees and greater than (n-1) x * 0,1 degrees, -# * - `126` if the accuracy is out of range, i.e. greater than 12,5 degrees, -# * - `127` if the accuracy information is not available. -# * -# * @unit: 0,1 degrees -# * @category: Basic information -# * @revision: Created in V2.1.1 -# uint8 value uint8 MIN = 1 uint8 MAX = 127 uint8 OUT_OF_RANGE = 126 uint8 UNAVAILABLE = 127 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/BasicContainer.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/BasicContainer.msg index 989684a8e..c3640e49b 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/BasicContainer.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/BasicContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,24 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents a general container for usage in various types of messages. +# * +# * It shall include the following components: +# * +# * @field stationType: the type of technical context in which the ITS-S that has generated the message is integrated in. +# * +# * @field referencePosition: the reference position of the station that has generated the message that contains the basic container. +# * +# * @category: Basic information +# * @revision: Created in V2.1.1 +# */ # BasicContainer ::= SEQUENCE { # stationType TrafficParticipantType, # referencePosition ReferencePositionWithConfidence, # ... # } # ------------------------------------------------------------------------------ -# * -# * This DE represents a general container for usage in various types of messages. -# * -# * It shall include the following components: -# * -# * @field stationType: the type of technical context in which the ITS-S that has generated the message is integrated in. -# * -# * @field referencePosition: the reference position of the station that has generated the message that contains the basic container. -# * -# * @category: Basic information -# * @revision: Created in V2.1.1 -# TrafficParticipantType station_type diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CardinalNumber1B.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CardinalNumber1B.msg index 5e90825d2..2bd89688c 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CardinalNumber1B.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CardinalNumber1B.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,14 +25,14 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * The DE represents a cardinal number that counts the size of a set. +# * +# * @category: Basic information +# * @revision: Created in V2.1.1 +# */ # CardinalNumber1B ::= INTEGER(0..255) # ------------------------------------------------------------------------------ -# * -# * The DE represents a cardinal number that counts the size of a set. -# * -# * @category: Basic information -# * @revision: Created in V2.1.1 -# uint8 value uint8 MIN = 0 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CartesianAngle.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CartesianAngle.msg index b554fbd9b..9184f91c7 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CartesianAngle.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CartesianAngle.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,23 +25,23 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents a general Data Frame to describe an angle component along with a confidence value in a cartesian coordinate system. +# * +# * It shall include the following components: +# * +# * @field value: The angle value which can be estimated as the mean of the current distribution. +# * +# * @field confidence: The confidence value associated to the provided value. +# * +# * @category: Basic information +# * @revision: Created in V2.1.1 +# */ # CartesianAngle ::= SEQUENCE { # value CartesianAngleValue, # confidence AngleConfidence # } # ------------------------------------------------------------------------------ -# * -# * This DF represents a general Data Frame to describe an angle component along with a confidence value in a cartesian coordinate system. -# * -# * It shall include the following components: -# * -# * @field value: The angle value which can be estimated as the mean of the current distribution. -# * -# * @field confidence: The confidence value associated to the provided value. -# * -# * @category: Basic information -# * @revision: Created in V2.1.1 -# CartesianAngleValue value diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CartesianAngleValue.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CartesianAngleValue.msg index a588607f5..f35496f27 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CartesianAngleValue.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CartesianAngleValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,28 +25,29 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents an angle value described in a local Cartesian coordinate system, per default counted positive in +# * a right-hand local coordinate system from the abscissa. +# * +# * The value shall be set to: +# * - `n` (`n >= 0` and `n < 3600`) if the angle is equal to or less than n x 0,1 degrees, and greater than (n-1) x 0,1 degrees, +# * - `36001` if the accuracy information is not available. +# * +# * The value 3600 shall not be used. +# * +# * @unit 0,1 degrees +# * @category: Basic information +# * @revision: Created in V2.1.1 +# */ # CartesianAngleValue ::= INTEGER { # valueNotUsed (3600), # unavailable (3601) # } (0..3601) # ------------------------------------------------------------------------------ -# * -# * This DE represents an angle value described in a local Cartesian coordinate system, per default counted positive in -# * a right-hand local coordinate system from the abscissa. -# * -# * The value shall be set to: -# * - `n` (`n >= 0` and `n < 3600`) if the angle is equal to or less than n x 0,1 degrees, and greater than (n-1) x 0,1 degrees, -# * - `36001` if the accuracy information is not available. -# * -# * The value 3600 shall not be used. -# * -# * @unit 0,1 degrees -# * @category: Basic information -# * @revision: Created in V2.1.1 -# uint16 value uint16 MIN = 0 uint16 MAX = 3601 uint16 VALUE_NOT_USED = 3600 uint16 UNAVAILABLE = 3601 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CartesianCoordinate.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CartesianCoordinate.msg index 003f3d7d7..b83528626 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CartesianCoordinate.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CartesianCoordinate.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,26 +25,27 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents the value of a cartesian coordinate with a range of -327,68 metres to +327,66 metres. +# * +# * The value shall be set to: +# * - `-32 768` if the longitudinal offset is out of range, i.e. less than or equal to -327,68 metres, +# * - `n` (`n > -32 768` and `n < 32 767`) if the longitudinal offset information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre, +# * - `32 767` if the longitudinal offset is out of range, i.e. greater than + 327,66 metres. +# * +# * @unit 0,01 m +# * @category: Basic information +# * @revision: Created in V2.1.1 +# */ # CartesianCoordinate::= INTEGER{ # negativeOutOfRange (-32768), # positiveOutOfRange (32767) # } (-32768..32767) # ------------------------------------------------------------------------------ -# * -# * This DF represents the value of a cartesian coordinate with a range of -327,68 metres to +327,66 metres. -# * -# * The value shall be set to: -# * - `-32 768` if the longitudinal offset is out of range, i.e. less than or equal to -327,68 metres, -# * - `n` (`n > -32 768` and `n < 32 767`) if the longitudinal offset information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre, -# * - `32 767` if the longitudinal offset is out of range, i.e. greater than + 327,66 metres. -# * -# * @unit 0,01 m -# * @category: Basic information -# * @revision: Created in V2.1.1 -# int16 value int16 MIN = -32768 int16 MAX = 32767 int16 NEGATIVE_OUT_OF_RANGE = -32768 int16 POSITIVE_OUT_OF_RANGE = 32767 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CartesianCoordinateSmall.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CartesianCoordinateSmall.msg index 2b94afb6a..3080d54e0 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CartesianCoordinateSmall.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CartesianCoordinateSmall.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,26 +25,27 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents the value of a cartesian coordinate with a range of -30,94 metres to +10,00 metres. +# * +# * The value shall be set to: +# * - `3094` if the longitudinal offset is out of range, i.e. less than or equal to -30,94 metres, +# * - `n` (`n > -3 094` and `n < 1 001`) if the longitudinal offset information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre, +# * - `1001` if the longitudinal offset is out of range, i.e. greater than 10 metres. +# * +# * @unit 0,01 m +# * @category: Basic information +# * @revision: Created in V2.1.1 +# */ # CartesianCoordinateSmall::= INTEGER { # negativeOutOfRange (-3094), # positiveOutOfRange (1001) # } (-3094..1001) # ------------------------------------------------------------------------------ -# * -# * This DF represents the value of a cartesian coordinate with a range of -30,94 metres to +10,00 metres. -# * -# * The value shall be set to: -# * - `3094` if the longitudinal offset is out of range, i.e. less than or equal to -30,94 metres, -# * - `n` (`n > -3 094` and `n < 1 001`) if the longitudinal offset information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre, -# * - `1001` if the longitudinal offset is out of range, i.e. greater than 10 metres. -# * -# * @unit 0,01 m -# * @category: Basic information -# * @revision: Created in V2.1.1 -# int16 value int16 MIN = -3094 int16 MAX = 1001 int16 NEGATIVE_OUT_OF_RANGE = -3094 int16 POSITIVE_OUT_OF_RANGE = 1001 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CartesianPosition3d.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CartesianPosition3d.msg index d1a212add..2982dd755 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CartesianPosition3d.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CartesianPosition3d.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,26 +25,26 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents a position in a two- or three-dimensional cartesian coordinate system. +# * +# * It shall include the following components: +# * +# * @field xCoordinate: the X coordinate value. +# * +# * @field yCoordinate: the Y coordinate value. +# * +# * @field zCoordinate: the optional Z coordinate value. +# * +# * @category: GeoReference information +# * @revision: Created in V2.1.1 +# */ # CartesianPosition3d::=SEQUENCE{ # xCoordinate CartesianCoordinate, # yCoordinate CartesianCoordinate, # zCoordinate CartesianCoordinate OPTIONAL # } # ------------------------------------------------------------------------------ -# * -# * This DF represents a position in a two- or three-dimensional cartesian coordinate system. -# * -# * It shall include the following components: -# * -# * @field xCoordinate: the X coordinate value. -# * -# * @field yCoordinate: the Y coordinate value. -# * -# * @field zCoordinate: the optional Z coordinate value. -# * -# * @category: GeoReference information -# * @revision: Created in V2.1.1 -# CartesianCoordinate x_coordinate diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CircularShape.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CircularShape.msg index 5cb04be21..940339422 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CircularShape.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CircularShape.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,29 +25,29 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * +# * This DF represents the shape of a circular area or a right cylinder that is centred on the shape's reference point. +# * +# * It shall include the following components: +# * +# * @field shapeReferencePoint: optional reference point that represents the centre of the circle, relative to an externally specified reference position. +# * If this component is absent, the externally specified reference position represents the shape's reference point. +# * +# * @field radius: the radius of the circular area. +# * +# * @field height: the optional height, present if the shape is a right cylinder extending in the positive z-axis. +# * +# * +# * @category: GeoReference information +# * @revision: Created in V2.1.1 +# */ # CircularShape ::= SEQUENCE { # shapeReferencePoint CartesianPosition3d OPTIONAL, # radius StandardLength12b, # height StandardLength12b OPTIONAL # } # ------------------------------------------------------------------------------ -# * -# * -# * This DF represents the shape of a circular area or a right cylinder that is centred on the shape's reference point. -# * -# * It shall include the following components: -# * -# * @field shapeReferencePoint: optional reference point that represents the centre of the circle, relative to an externally specified reference position. -# * If this component is absent, the externally specified reference position represents the shape's reference point. -# * -# * @field radius: the radius of the circular area. -# * -# * @field height: the optional height, present if the shape is a right cylinder extending in the positive z-axis. -# * -# * -# * @category: GeoReference information -# * @revision: Created in V2.1.1 -# CartesianPosition3d shape_reference_point bool shape_reference_point_is_present diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ClusterBreakupInfo.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ClusterBreakupInfo.msg index 8905ad1a5..d43fd9395 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ClusterBreakupInfo.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ClusterBreakupInfo.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,24 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF provides information about the breakup of a cluster. +# * +# * It shall include the following components: +# * +# * @field clusterBreakupReason: indicates the reason for breakup. +# * +# * @field breakupTime: indicates the time of breakup. +# * +# * @category: Cluster Information +# * @revision: Created in V2.1.1 +# */ # ClusterBreakupInfo ::= SEQUENCE { # clusterBreakupReason ClusterBreakupReason, # breakupTime DeltaTimeQuarterSecond, # ... # } # ------------------------------------------------------------------------------ -# * -# * This DF provides information about the breakup of a cluster. -# * -# * It shall include the following components: -# * -# * @field clusterBreakupReason: indicates the reason for breakup. -# * -# * @field breakupTime: indicates the time of breakup. -# * -# * @category: Cluster Information -# * @revision: Created in V2.1.1 -# ClusterBreakupReason cluster_breakup_reason diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ClusterBreakupReason.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ClusterBreakupReason.msg index 5957ebd28..4ea6560d5 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ClusterBreakupReason.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ClusterBreakupReason.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,21 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the reason why a cluster leader intends to break up the cluster. +# * +# * The value shall be set to: +# * - 0 - `notProvided` - if the information is not provided, +# * - 1 - `clusteringPurposeCompleted` - if the cluster purpose has been completed, +# * - 2 - `leaderMovedOutOfClusterBoundingBox` - if the leader moved out of the cluster's bounding box, +# * - 3 - `joiningAnotherCluster` - if the cluster leader is about to join another cluster, +# * - 4 - `enteringLowRiskAreaBasedOnMaps` - if the cluster is entering an area idenrified as low risk based on the use of maps, +# * - 5 - `receptionOfCpmContainingCluster` - if the leader received a Collective Perception Message containing information about the same cluster. +# * - 6 to 15 - are reserved for future use. +# * +# * @category: Cluster information +# * @revision: Created in V2.1.1 +# */ # ClusterBreakupReason ::= ENUMERATED { # notProvided (0), # clusteringPurposeCompleted (1), @@ -36,21 +50,6 @@ # max(15) # } # ------------------------------------------------------------------------------ -# * -# * This DE indicates the reason why a cluster leader intends to break up the cluster. -# * -# * The value shall be set to: -# * - 0 - `notProvided` - if the information is not provided, -# * - 1 - `clusteringPurposeCompleted` - if the cluster purpose has been completed, -# * - 2 - `leaderMovedOutOfClusterBoundingBox` - if the leader moved out of the cluster's bounding box, -# * - 3 - `joiningAnotherCluster` - if the cluster leader is about to join another cluster, -# * - 4 - `enteringLowRiskAreaBasedOnMaps` - if the cluster is entering an area idenrified as low risk based on the use of maps, -# * - 5 - `receptionOfCpmContainingCluster` - if the leader received a Collective Perception Message containing information about the same cluster. -# * - 6 to 15 - are reserved for future use. -# * -# * @category: Cluster information -# * @revision: Created in V2.1.1 -# uint8 value uint8 NOT_PROVIDED = 0 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ClusterJoinInfo.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ClusterJoinInfo.msg index eb993b9be..c4f8f951f 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ClusterJoinInfo.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ClusterJoinInfo.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,24 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF provides information about the joining of a cluster. +# * +# * It shall include the following components: +# * +# * @field clusterId: indicates the identifier of the cluster. +# * +# * @field joinTime: indicates the time of joining. +# * +# * @category: Cluster Information +# * @revision: Created in V2.1.1 +# */ # ClusterJoinInfo ::= SEQUENCE { # clusterId Identifier1B, # joinTime DeltaTimeQuarterSecond, # ... # } # ------------------------------------------------------------------------------ -# * -# * This DF provides information about the joining of a cluster. -# * -# * It shall include the following components: -# * -# * @field clusterId: indicates the identifier of the cluster. -# * -# * @field joinTime: indicates the time of joining. -# * -# * @category: Cluster Information -# * @revision: Created in V2.1.1 -# Identifier1B cluster_id diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ClusterLeaveInfo.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ClusterLeaveInfo.msg index 0aa601bd6..2a6d47c68 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ClusterLeaveInfo.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ClusterLeaveInfo.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,24 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * The DF provides information about the leaving of a cluster. +# * +# * It shall include the following components: +# * +# * @field clusterId: indicates the cluster. +# * +# * @field clusterLeaveReason: indicates the reason for leaving. +# * +# * @category: Cluster Information +# * @revision: Created in V2.1.1 +# */ # ClusterLeaveInfo ::= SEQUENCE { # clusterId Identifier1B, # clusterLeaveReason ClusterLeaveReason, # ... # } # ------------------------------------------------------------------------------ -# * -# * The DF provides information about the leaving of a cluster. -# * -# * It shall include the following components: -# * -# * @field clusterId: indicates the cluster. -# * -# * @field clusterLeaveReason: indicates the reason for leaving. -# * -# * @category: Cluster Information -# * @revision: Created in V2.1.1 -# Identifier1B cluster_id diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ClusterLeaveReason.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ClusterLeaveReason.msg index d868f08a9..0a1ec1d93 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ClusterLeaveReason.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ClusterLeaveReason.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the reason why a cluster participant is leaving the cluster. +# * +# * The value shall be set to: +# * - 0 - `notProvided ` - if the information is not provided, +# * - 1 - `clusterLeaderLost` - if the cluster leader cannot be found anymore, +# * - 2 - `clusterDisbandedByLeader` - if the cluster has been disbanded by the leader, +# * - 3 - `outOfClusterBoundingBox` - if the participants moved out of the cluster's bounding box, +# * - 4 - `outOfClusterSpeedRange` - if the cluster speed moved out of a defined range, +# * - 5 - `joiningAnotherCluster` - if the participant is joining another cluster, +# * - 6 - `cancelledJoin` - if the participant is cancelling a joining procedure, +# * - 7 - `failedJoin` - if the participant failed to join the cluster, +# * - 8 - `safetyCondition` - if a safety condition applies. +# * - 9 to 15 - are reserved for future use +# * +# * @category: Cluster information +# * @revision: Created in V2.1.1 +# */ # ClusterLeaveReason ::= ENUMERATED { # notProvided (0), # clusterLeaderLost (1), @@ -39,24 +56,6 @@ # max(15) # } # ------------------------------------------------------------------------------ -# * -# * This DE indicates the reason why a cluster participant is leaving the cluster. -# * -# * The value shall be set to: -# * - 0 - `notProvided ` - if the information is not provided, -# * - 1 - `clusterLeaderLost` - if the cluster leader cannot be found anymore, -# * - 2 - `clusterDisbandedByLeader` - if the cluster has been disbanded by the leader, -# * - 3 - `outOfClusterBoundingBox` - if the participants moved out of the cluster's bounding box, -# * - 4 - `outOfClusterSpeedRange` - if the cluster speed moved out of a defined range, -# * - 5 - `joiningAnotherCluster` - if the participant is joining another cluster, -# * - 6 - `cancelledJoin` - if the participant is cancelling a joining procedure, -# * - 7 - `failedJoin` - if the participant failed to join the cluster, -# * - 8 - `safetyCondition` - if a safety condition applies. -# * - 9 to 15 - are reserved for future use -# * -# * @category: Cluster information -# * @revision: Created in V2.1.1 -# uint8 value uint8 NOT_PROVIDED = 0 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Curvature.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Curvature.msg index a58893dce..cb25a8a95 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Curvature.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Curvature.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,24 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents the curvature of the vehicle trajectory and the associated confidence value. +# * The curvature detected by a vehicle represents the curvature of actual vehicle trajectory. +# * +# * It shall include the following components: +# * +# * @field curvatureValue: Detected curvature of the vehicle trajectory. +# * +# * @field curvatureConfidence: along with a confidence value of the curvature value with a predefined confidence level. +# * +# * @category: Vehicle information +# * @revision: Description revised in V2.1.1 +# */ # Curvature ::= SEQUENCE { # curvatureValue CurvatureValue, # curvatureConfidence CurvatureConfidence # } # ------------------------------------------------------------------------------ -# * -# * This DF represents the curvature of the vehicle trajectory and the associated confidence value. -# * The curvature detected by a vehicle represents the curvature of actual vehicle trajectory. -# * -# * It shall include the following components: -# * -# * @field curvatureValue: Detected curvature of the vehicle trajectory. -# * -# * @field curvatureConfidence: along with a confidence value of the curvature value with a predefined confidence level. -# * -# * @category: Vehicle information -# * @revision: Description revised in V2.1.1 -# CurvatureValue curvature_value diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CurvatureCalculationMode.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CurvatureCalculationMode.msg index 325ebcf7e..959d7109f 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CurvatureCalculationMode.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CurvatureCalculationMode.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,17 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * The DE describes whether the yaw rate is used to calculate the curvature for a curvature value. +# * +# * The value shall be set to: +# * - 0 - `yawRateUsed` - if the yaw rate is used, +# * - 1 - `yawRateNotUsed` - if the yaw rate is not used, +# * - 2 - `unavailable` - if the information of curvature calculation mode is unknown. +# * +# * @category: Vehicle information +# * @revision: V1.3.1 +# */ # CurvatureCalculationMode ::= ENUMERATED { # yawRateUsed (0), # yawRateNotUsed (1), @@ -33,17 +43,6 @@ # ... # } # ------------------------------------------------------------------------------ -# * -# * The DE describes whether the yaw rate is used to calculate the curvature for a curvature value. -# * -# * The value shall be set to: -# * - 0 - `yawRateUsed` - if the yaw rate is used, -# * - 1 - `yawRateNotUsed` - if the yaw rate is not used, -# * - 2 - `unavailable` - if the information of curvature calculation mode is unknown. -# * -# * @category: Vehicle information -# * @revision: V1.3.1 -# uint8 value uint8 YAW_RATE_USED = 0 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CurvatureConfidence.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CurvatureConfidence.msg index 0354524a5..f2fd9254e 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CurvatureConfidence.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CurvatureConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,33 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the acceleration confidence value which represents the estimated absolute accuracy range of a curvature value with a confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - 0 - `onePerMeter-0-00002` - if the confidence value is less than or equal to 0,00002 m-1, +# * - 1 - `onePerMeter-0-0001` - if the confidence value is less than or equal to 0,0001 m-1 and greater than 0,00002 m-1, +# * - 2 - `onePerMeter-0-0005` - if the confidence value is less than or equal to 0,0005 m-1 and greater than 0,0001 m-1, +# * - 3 - `onePerMeter-0-002` - if the confidence value is less than or equal to 0,002 m-1 and greater than 0,0005 m-1, +# * - 4 - `nePerMeter-0-01` - if the confidence value is less than or equal to 0,01 m-1 and greater than 0,002 m-1, +# * - 5 - `nePerMeter-0-1` - if the confidence value is less than or equal to 0,1 m-1 and greater than 0,01 m-1, +# * - 6 - `outOfRange` - if the confidence value is out of range, i.e. greater than 0,1 m-1, +# * - 7 - `unavailable` - if the confidence value is not available. +# * +# * @note: The fact that a curvature value is received with confidence value set to `unavailable(7)` can be caused by +# * several reasons, such as: +# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, +# * - the sensor cannot calculate the accuracy due to lack of variables, or +# * - there has been a vehicle bus (e.g. CAN bus) error. +# * In all 3 cases above, the curvature value may be valid and used by the application. +# * +# * @note: If a curvature value is received and its confidence value is set to `outOfRange(6)`, it means that the curvature value is not valid +# * and therefore cannot be trusted. Such value is not useful for the application. +# * +# * @category: Vehicle information +# * @revision: Description revised in V2.1.1 +# */ # CurvatureConfidence ::= ENUMERATED { # onePerMeter-0-00002 (0), # onePerMeter-0-0001 (1), @@ -37,33 +63,6 @@ # unavailable (7) # } # ------------------------------------------------------------------------------ -# * -# * This DE indicates the acceleration confidence value which represents the estimated absolute accuracy range of a curvature value with a confidence level of 95 %. -# * If required, the confidence level can be defined by the corresponding standards applying this DE. -# * -# * The value shall be set to: -# * - 0 - `onePerMeter-0-00002` - if the confidence value is less than or equal to 0,00002 m-1, -# * - 1 - `onePerMeter-0-0001` - if the confidence value is less than or equal to 0,0001 m-1 and greater than 0,00002 m-1, -# * - 2 - `onePerMeter-0-0005` - if the confidence value is less than or equal to 0,0005 m-1 and greater than 0,0001 m-1, -# * - 3 - `onePerMeter-0-002` - if the confidence value is less than or equal to 0,002 m-1 and greater than 0,0005 m-1, -# * - 4 - `nePerMeter-0-01` - if the confidence value is less than or equal to 0,01 m-1 and greater than 0,002 m-1, -# * - 5 - `nePerMeter-0-1` - if the confidence value is less than or equal to 0,1 m-1 and greater than 0,01 m-1, -# * - 6 - `outOfRange` - if the confidence value is out of range, i.e. greater than 0,1 m-1, -# * - 7 - `unavailable` - if the confidence value is not available. -# * -# * @note: The fact that a curvature value is received with confidence value set to `unavailable(7)` can be caused by -# * several reasons, such as: -# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, -# * - the sensor cannot calculate the accuracy due to lack of variables, or -# * - there has been a vehicle bus (e.g. CAN bus) error. -# * In all 3 cases above, the curvature value may be valid and used by the application. -# * -# * @note: If a curvature value is received and its confidence value is set to `outOfRange(6)`, it means that the curvature value is not valid -# * and therefore cannot be trusted. Such value is not useful for the application. -# * -# * @category: Vehicle information -# * @revision: Description revised in V2.1.1 -# uint8 value uint8 ONE_PER_METER_0_00002 = 0 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CurvatureValue.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CurvatureValue.msg index 446401a65..be63445ef 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CurvatureValue.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/CurvatureValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,30 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE describes vehicle turning curve with the following information: +# * ``` +# * Value = 1 / Radius * 10000 +# * ``` +# * wherein radius is the vehicle turning curve radius in metres. +# * +# * Positive values indicate a turning curve to the left hand side of the driver. +# * It corresponds to the vehicle coordinate system as defined in ISO 8855 [21]. +# * +# * The value shall be set to: +# * - `-1023` for values smaller than -1023, +# * - `n` (`n > -1023` and `n < 0`) for negative values equal to or less than `n`, and greater than `(n-1)`, +# * - `0` when the vehicle is moving straight, +# * - `n` (`n > 0` and `n < 1022`) for positive values equal to or less than `n`, and greater than `(n-1)`, +# * - `1022`, for values greater than 1021, +# * - `1023`, if the information is not available. +# * +# * @note: The present DE is limited to vehicle types as defined in ISO 8855 [21]. +# * +# * @unit: 1 over 10 000 metres +# * @category: Vehicle information +# * @revision: description revised in V2.1.1 (the definition of value 1022 has changed slightly) +# */ # CurvatureValue ::= INTEGER { # outOfRangeNegative (-1023), # straight (0), @@ -33,30 +56,6 @@ # unavailable (1023) # } (-1023..1023) # ------------------------------------------------------------------------------ -# * -# * This DE describes vehicle turning curve with the following information: -# * ``` -# * Value = 1 / Radius * 10000 -# * ``` -# * wherein radius is the vehicle turning curve radius in metres. -# * -# * Positive values indicate a turning curve to the left hand side of the driver. -# * It corresponds to the vehicle coordinate system as defined in ISO 8855 [21]. -# * -# * The value shall be set to: -# * - `-1023` for values smaller than -1023, -# * - `n` (`n > -1023` and `n < 0`) for negative values equal to or less than `n`, and greater than `(n-1)`, -# * - `0` when the vehicle is moving straight, -# * - `n` (`n > 0` and `n < 1022`) for positive values equal to or less than `n`, and greater than `(n-1)`, -# * - `1022`, for values greater than 1021, -# * - `1023`, if the information is not available. -# * -# * @note: The present DE is limited to vehicle types as defined in ISO 8855 [21]. -# * -# * @unit: 1 over 10 000 metres -# * @category: Vehicle information -# * @revision: description revised in V2.1.1 (the definition of value 1022 has changed slightly) -# int16 value int16 MIN = -1023 @@ -65,3 +64,4 @@ int16 OUT_OF_RANGE_NEGATIVE = -1023 int16 STRAIGHT = 0 int16 OUT_OF_RANGE_POSITIVE = 1022 int16 UNAVAILABLE = 1023 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/DeltaAltitude.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/DeltaAltitude.msg index b7f1dbf7b..74d47964f 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/DeltaAltitude.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/DeltaAltitude.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,28 +25,28 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents an offset altitude with regards to a defined altitude value. +# * It may be used to describe a geographical point with regards to a specific reference geographical position. +# * +# * The value shall be set to: +# * - `-12 700` for values equal to or lower than -127 metres, +# * - `n` (`n > -12 700` and `n <= 0`) for altitude offset n x 0,01 metre below the reference position, +# * - `0` for no altitudinal offset, +# * - `n` (`n > 0` and `n < 12799`) for altitude offset n x 0,01 metre above the reference position, +# * - `12 799` for values equal to or greater than 127,99 metres, +# * - `12 800` when the information is unavailable. +# * +# * @unit: 0,01 metre +# * @category: GeoReference information +# * @revision: editorial update in V2.1.1 +# */ # DeltaAltitude ::= INTEGER { # negativeOutOfRange (-12700), # positiveOutOfRange (12799), # unavailable (12800) # } (-12700..12800) # ------------------------------------------------------------------------------ -# * -# * This DE represents an offset altitude with regards to a defined altitude value. -# * It may be used to describe a geographical point with regards to a specific reference geographical position. -# * -# * The value shall be set to: -# * - `-12 700` for values equal to or lower than -127 metres, -# * - `n` (`n > -12 700` and `n <= 0`) for altitude offset n x 0,01 metre below the reference position, -# * - `0` for no altitudinal offset, -# * - `n` (`n > 0` and `n < 12799`) for altitude offset n x 0,01 metre above the reference position, -# * - `12 799` for values equal to or greater than 127,99 metres, -# * - `12 800` when the information is unavailable. -# * -# * @unit: 0,01 metre -# * @category: GeoReference information -# * @revision: editorial update in V2.1.1 -# int16 value int16 MIN = -12700 @@ -55,3 +54,4 @@ int16 MAX = 12800 int16 NEGATIVE_OUT_OF_RANGE = -12700 int16 POSITIVE_OUT_OF_RANGE = 12799 int16 UNAVAILABLE = 12800 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/DeltaLatitude.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/DeltaLatitude.msg index 8dc6a9935..4fd89982a 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/DeltaLatitude.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/DeltaLatitude.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,26 +25,27 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents an offset latitude with regards to a defined latitude value. +# * It may be used to describe a geographical point with regards to a specific reference geographical position. +# * +# * The value shall be set to: +# * - `n` (`n >= -131 071` and `n < 0`) for offset n x 10^-7 degree towards the south from the reference position, +# * - `0` for no latitudinal offset, +# * - `n` (`n > 0` and `n < 131 072`) for offset n x 10^-7 degree towards the north from the reference position, +# * - `131 072` when the information is unavailable. +# * +# * @unit: 10^-7 degree +# * @category: GeoReference information +# * @revision: editorial update in V2.1.1 +# */ # DeltaLatitude ::= INTEGER { # unavailable (131072) # } (-131071..131072) # ------------------------------------------------------------------------------ -# * -# * This DE represents an offset latitude with regards to a defined latitude value. -# * It may be used to describe a geographical point with regards to a specific reference geographical position. -# * -# * The value shall be set to: -# * - `n` (`n >= -131 071` and `n < 0`) for offset n x 10^-7 degree towards the south from the reference position, -# * - `0` for no latitudinal offset, -# * - `n` (`n > 0` and `n < 131 072`) for offset n x 10^-7 degree towards the north from the reference position, -# * - `131 072` when the information is unavailable. -# * -# * @unit: 10^-7 degree -# * @category: GeoReference information -# * @revision: editorial update in V2.1.1 -# int32 value int32 MIN = -131071 int32 MAX = 131072 int32 UNAVAILABLE = 131072 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/DeltaLongitude.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/DeltaLongitude.msg index 3952ee467..893cece87 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/DeltaLongitude.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/DeltaLongitude.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,26 +25,27 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents an offset longitude with regards to a defined longitude value. +# * It may be used to describe a geographical point with regards to a specific reference geographical position. +# * +# * The value shall be set to: +# * - `n` (`n >= -131 071` and `n < 0`) for offset n x 10^-7 degree towards the west from the reference position, +# * - `0` for no longitudinal offset, +# * - `n` (`n > 0` and `n < 131 072`) for offset n x 10^-7 degree towards the east from the reference position, +# * - `131 072` when the information is unavailable. +# * +# * @unit: 10^-7 degree +# * @category: GeoReference information +# * @revision: editorial update in V2.1.1 +# */ # DeltaLongitude ::= INTEGER { # unavailable (131072) # } (-131071..131072) # ------------------------------------------------------------------------------ -# * -# * This DE represents an offset longitude with regards to a defined longitude value. -# * It may be used to describe a geographical point with regards to a specific reference geographical position. -# * -# * The value shall be set to: -# * - `n` (`n >= -131 071` and `n < 0`) for offset n x 10^-7 degree towards the west from the reference position, -# * - `0` for no longitudinal offset, -# * - `n` (`n > 0` and `n < 131 072`) for offset n x 10^-7 degree towards the east from the reference position, -# * - `131 072` when the information is unavailable. -# * -# * @unit: 10^-7 degree -# * @category: GeoReference information -# * @revision: editorial update in V2.1.1 -# int32 value int32 MIN = -131071 int32 MAX = 131072 int32 UNAVAILABLE = 131072 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/DeltaReferencePosition.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/DeltaReferencePosition.msg index 36ab2016c..446849bd0 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/DeltaReferencePosition.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/DeltaReferencePosition.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,26 +25,26 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF defines a geographical point position as a 3 dimensional offset position to a geographical reference point. +# * +# * It shall include the following components: +# * +# * @field deltaLatitude: A delta latitude offset with regards to the latitude value of the reference position. +# * +# * @field deltaLongitude: A delta longitude offset with regards to the longitude value of the reference position. +# * +# * @field deltaAltitude: A delta altitude offset with regards to the altitude value of the reference position. +# * +# * @category: GeoReference information +# * @revision: V1.3.1 +# */ # DeltaReferencePosition ::= SEQUENCE { # deltaLatitude DeltaLatitude, # deltaLongitude DeltaLongitude, # deltaAltitude DeltaAltitude # } # ------------------------------------------------------------------------------ -# * -# * This DF defines a geographical point position as a 3 dimensional offset position to a geographical reference point. -# * -# * It shall include the following components: -# * -# * @field deltaLatitude: A delta latitude offset with regards to the latitude value of the reference position. -# * -# * @field deltaLongitude: A delta longitude offset with regards to the longitude value of the reference position. -# * -# * @field deltaAltitude: A delta altitude offset with regards to the altitude value of the reference position. -# * -# * @category: GeoReference information -# * @revision: V1.3.1 -# DeltaLatitude delta_latitude diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/DeltaTimeQuarterSecond.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/DeltaTimeQuarterSecond.msg index 3ab1fa52d..3c0608f54 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/DeltaTimeQuarterSecond.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/DeltaTimeQuarterSecond.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,21 +25,22 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents a difference in time with respect to a reference time. +# * It can be interpreted as the first 8 bits of a GenerationDeltaTime. To convert it to a @ref GenerationDeltaTime, +# * multiply by 256 (i.e. append a `00` byte) +# * +# * @unit: 256 * 0,001 s +# * @category: Basic information +# * @revision: Created in V2.1.1 +# */ # DeltaTimeQuarterSecond::= INTEGER { # unavailable (255) # } (1..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents a difference in time with respect to a reference time. -# * It can be interpreted as the first 8 bits of a GenerationDeltaTime. To convert it to a @ref GenerationDeltaTime, -# * multiply by 256 (i.e. append a `00` byte) -# * -# * @unit: 256 * 0,001 s -# * @category: Basic information -# * @revision: Created in V2.1.1 -# uint8 value uint8 MIN = 1 uint8 MAX = 255 uint8 UNAVAILABLE = 255 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/DeltaTimeTenthOfSecond.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/DeltaTimeTenthOfSecond.msg index faf78f7a3..af7d34a90 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/DeltaTimeTenthOfSecond.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/DeltaTimeTenthOfSecond.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,23 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents a difference in time with respect to a reference time. +# * +# * The value shall be set to: +# * - `0` for a difference in time of 0 seconds. +# * - `n` (`n > 0` and `n < 128`) to indicate a time value equal to or less than n x 0,1 s, and greater than (n-1) x 0,1 s, +# * +# * @unit: 0,1 s +# * @category: Basic information +# * @revision: Created in V2.1.1 +# */ # DeltaTimeTenthOfSecond::= INTEGER { # unavailable (127) # } (0..127) # ------------------------------------------------------------------------------ -# * -# * This DE represents a difference in time with respect to a reference time. -# * -# * The value shall be set to: -# * - `0` for a difference in time of 0 seconds. -# * - `n` (`n > 0` and `n < 128`) to indicate a time value equal to or less than n x 0,1 s, and greater than (n-1) x 0,1 s, -# * -# * @unit: 0,1 s -# * @category: Basic information -# * @revision: Created in V2.1.1 -# uint8 value uint8 MIN = 0 uint8 MAX = 127 uint8 UNAVAILABLE = 127 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/EllipticalShape.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/EllipticalShape.msg index 73c93f083..2dddfd774 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/EllipticalShape.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/EllipticalShape.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,26 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * +# * This DF represents the shape of an elliptical area or right elliptical cylinder that is centred on the shape's reference point. +# * +# * It shall include the following components: +# * +# * @field shapeReferencePoint: optional reference point which represents the centre of the ellipse, relative to an externally specified reference position. +# * If this component is absent, the externally specified reference position represents the shape's reference point. +# * +# * @field semiMajorAxisLength: half length of the major axis of the ellipse. +# * +# * @field semiMinorAxisLength: half length of the minor axis of the ellipse. +# * +# * @field orientation: the optional orientation of the major axis of the ellipse in the WGS84 coordinate system. +# * +# * @field height: the optional height, present if the shape is a right elliptical cylinder extending in the positive z-axis. +# * +# * @category: GeoReference information +# * @revision: Created in V2.1.1 +# */ # EllipticalShape ::= SEQUENCE { # shapeReferencePoint CartesianPosition3d OPTIONAL, # semiMajorAxisLength StandardLength12b, @@ -34,26 +53,6 @@ # height StandardLength12b OPTIONAL # } # ------------------------------------------------------------------------------ -# * -# * -# * This DF represents the shape of an elliptical area or right elliptical cylinder that is centred on the shape's reference point. -# * -# * It shall include the following components: -# * -# * @field shapeReferencePoint: optional reference point which represents the centre of the ellipse, relative to an externally specified reference position. -# * If this component is absent, the externally specified reference position represents the shape's reference point. -# * -# * @field semiMajorAxisLength: half length of the major axis of the ellipse. -# * -# * @field semiMinorAxisLength: half length of the minor axis of the ellipse. -# * -# * @field orientation: the optional orientation of the major axis of the ellipse in the WGS84 coordinate system. -# * -# * @field height: the optional height, present if the shape is a right elliptical cylinder extending in the positive z-axis. -# * -# * @category: GeoReference information -# * @revision: Created in V2.1.1 -# CartesianPosition3d shape_reference_point bool shape_reference_point_is_present diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ExteriorLights.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ExteriorLights.msg index 57d954342..9ce7a90d3 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ExteriorLights.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ExteriorLights.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,35 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE describes the status of the exterior light switches of a vehicle incl. VRU vehicles. +# * +# * The corresponding bit shall be set to 1 under the following conditions: +# * - 0 - `lowBeamHeadlightsOn` - when the low beam head light switch is on, +# * - 1 - `highBeamHeadlightsOn` - when the high beam head light switch is on, +# * - 2 - `leftTurnSignalOn` - when the left turnSignal switch is on, +# * - 3 - `rightTurnSignalOn` - when the right turn signal switch is on, +# * - 4 - `daytimeRunningLightsOn` - when the daytime running light switch is on, +# * - 5 - `reverseLightOn` - when the reverse light switch is on, +# * - 6 - `fogLightOn` - when the tail fog light switch is on, +# * - 7 - `parkingLightsOn` - when the parking light switch is on. +# * +# * @note: The value of each bit indicates the state of the switch, which commands the corresponding light. +# * The bit corresponding to a specific light is set to `1`, when the corresponding switch is turned on, +# * either manually by the driver or automatically by a vehicle system. The bit value does not indicate +# * if the corresponding lamps are alight or not. +# * +# * If a vehicle is not equipped with a certain light or if the light switch status information is not available, +# * the corresponding bit shall be set to `0`. +# * +# * As the bit value indicates only the state of the switch, the turn signal and hazard signal bit values shall not +# * alternate with the blinking interval. +# * +# * For hazard indicator, the `leftTurnSignalOn (2)` and `rightTurnSignalOn (3)` shall be both set to `1`. +# * +# * @category Vehicle information +# * @revision: Description revised in V2.1.1 +# */ # ExteriorLights ::= BIT STRING { # lowBeamHeadlightsOn (0), # highBeamHeadlightsOn (1), @@ -37,35 +65,6 @@ # parkingLightsOn (7) # } (SIZE(8)) # ------------------------------------------------------------------------------ -# * -# * This DE describes the status of the exterior light switches of a vehicle incl. VRU vehicles. -# * -# * The corresponding bit shall be set to 1 under the following conditions: -# * - 0 - `lowBeamHeadlightsOn` - when the low beam head light switch is on, -# * - 1 - `highBeamHeadlightsOn` - when the high beam head light switch is on, -# * - 2 - `leftTurnSignalOn` - when the left turnSignal switch is on, -# * - 3 - `rightTurnSignalOn` - when the right turn signal switch is on, -# * - 4 - `daytimeRunningLightsOn` - when the daytime running light switch is on, -# * - 5 - `reverseLightOn` - when the reverse light switch is on, -# * - 6 - `fogLightOn` - when the tail fog light switch is on, -# * - 7 - `parkingLightsOn` - when the parking light switch is on. -# * -# * @note: The value of each bit indicates the state of the switch, which commands the corresponding light. -# * The bit corresponding to a specific light is set to `1`, when the corresponding switch is turned on, -# * either manually by the driver or automatically by a vehicle system. The bit value does not indicate -# * if the corresponding lamps are alight or not. -# * -# * If a vehicle is not equipped with a certain light or if the light switch status information is not available, -# * the corresponding bit shall be set to `0`. -# * -# * As the bit value indicates only the state of the switch, the turn signal and hazard signal bit values shall not -# * alternate with the blinking interval. -# * -# * For hazard indicator, the `leftTurnSignalOn (2)` and `rightTurnSignalOn (3)` shall be both set to `1`. -# * -# * @category Vehicle information -# * @revision: Description revised in V2.1.1 -# uint8[] value uint8 bits_unused @@ -78,3 +77,4 @@ uint8 BIT_INDEX_DAYTIME_RUNNING_LIGHTS_ON = 4 uint8 BIT_INDEX_REVERSE_LIGHT_ON = 5 uint8 BIT_INDEX_FOG_LIGHT_ON = 6 uint8 BIT_INDEX_PARKING_LIGHTS_ON = 7 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/GeneralizedLanePosition.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/GeneralizedLanePosition.msg index f55154db4..c63330cf9 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/GeneralizedLanePosition.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/GeneralizedLanePosition.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,23 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF indicates a transversal position in relation to the different lanes of the road. +# * It is an extension of DE_LanePosition to cover locations (sidewalks, bicycle paths), where Vehicle ITS-S would normally not be present. +# * +# * The following options are available: +# * +# * @field trafficLanePosition: a position on a traffic lane. +# * +# * @field nonTrafficLanePosition: a position on a lane which is not a traffic lane. +# * +# * @field trafficIslandPosition: a position on a traffic island +# * +# * @field mapPosition: a position on a lane identified in a MAPEM. +# * +# * @category: Road Topology information +# * @revision: created in V2.1.1 +# */ # GeneralizedLanePosition::= CHOICE { # trafficLanePosition LanePosition, # nonTrafficLanePosition LanePositionAndType, @@ -34,23 +50,6 @@ # ... # } # ------------------------------------------------------------------------------ -# * -# * This DF indicates a transversal position in relation to the different lanes of the road. -# * It is an extension of DE_LanePosition to cover locations (sidewalks, bicycle paths), where Vehicle ITS-S would normally not be present. -# * -# * The following options are available: -# * -# * @field trafficLanePosition: a position on a traffic lane. -# * -# * @field nonTrafficLanePosition: a position on a lane which is not a traffic lane. -# * -# * @field trafficIslandPosition: a position on a traffic island -# * -# * @field mapPosition: a position on a lane identified in a MAPEM. -# * -# * @category: Road Topology information -# * @revision: created in V2.1.1 -# uint8 choice diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/GenerationDeltaTime.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/GenerationDeltaTime.msg index 4232eb4b9..a52016d81 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/GenerationDeltaTime.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/GenerationDeltaTime.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,17 +25,18 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents a timestamp based on TimestampIts modulo 65 536. +# * This means that generationDeltaTime = TimestampIts mod 65 536. +# * +# * @category: Basic information +# * @revision: Created in V2.1.1 based on ETSI TS 103 900 [1] +# */ # GenerationDeltaTime ::= INTEGER { oneMilliSec(1) } (0..65535) # ------------------------------------------------------------------------------ -# * -# * This DE represents a timestamp based on TimestampIts modulo 65 536. -# * This means that generationDeltaTime = TimestampIts mod 65 536. -# * -# * @category: Basic information -# * @revision: Created in V2.1.1 based on ETSI TS 103 900 [1] -# uint16 value uint16 MIN = 0 uint16 MAX = 65535 uint16 ONE_MILLI_SEC = 1 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/HeadingChangeIndication.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/HeadingChangeIndication.msg index 608bc5df0..ca9897e54 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/HeadingChangeIndication.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/HeadingChangeIndication.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,24 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF provides information associated to heading change indicators such as a change of direction. +# * +# * It shall include the following components: +# * +# * @field direction: the direction of heading change value. +# * +# * @field actionDeltaTime: the period over which a direction change action is performed. +# * +# * @category: Kinematic Information +# * @revision: created in V2.1.1 +# */ # HeadingChangeIndication ::= SEQUENCE { # direction TurningDirection, # actionDeltaTime DeltaTimeTenthOfSecond, # ... # } # ------------------------------------------------------------------------------ -# * -# * This DF provides information associated to heading change indicators such as a change of direction. -# * -# * It shall include the following components: -# * -# * @field direction: the direction of heading change value. -# * -# * @field actionDeltaTime: the period over which a direction change action is performed. -# * -# * @category: Kinematic Information -# * @revision: created in V2.1.1 -# TurningDirection direction diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/HeadingValue.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/HeadingValue.msg index 1269552bd..75f9f8b3a 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/HeadingValue.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/HeadingValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,16 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the orientation of the horizontal velocity vector with regards to the WGS84 north. +# * When the information is not available, the DE shall be set to 3 601. The value 3600 shall not be used. +# * +# * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref Wgs84AngleValue instead. +# * +# * Unit: 0,1 degree +# * Categories: GeoReference information +# * @revision: Description revised in V2.1.1 (usage of value 3600 specified) +# */ # HeadingValue ::= INTEGER { # wgs84North (0), # wgs84East (900), @@ -35,16 +44,6 @@ # unavailable (3601) # } (0..3601) # ------------------------------------------------------------------------------ -# * -# * This DE represents the orientation of the horizontal velocity vector with regards to the WGS84 north. -# * When the information is not available, the DE shall be set to 3 601. The value 3600 shall not be used. -# * -# * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref Wgs84AngleValue instead. -# * -# * Unit: 0,1 degree -# * Categories: GeoReference information -# * @revision: Description revised in V2.1.1 (usage of value 3600 specified) -# uint16 value uint16 MIN = 0 @@ -55,3 +54,4 @@ uint16 WGS84_SOUTH = 1800 uint16 WGS84_WEST = 2700 uint16 DO_NOT_USE = 3600 uint16 UNAVAILABLE = 3601 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Identifier1B.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Identifier1B.msg index 59debf843..9582fcf0e 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Identifier1B.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Identifier1B.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,14 +25,14 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE is a general identifier. +# * +# * @category: Basic information +# * @revision: Created in V2.1.1 +# */ # Identifier1B ::= INTEGER (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE is a general identifier. -# * -# * @category: Basic information -# * @revision: Created in V2.1.1 -# uint8 value uint8 MIN = 0 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Identifier2B.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Identifier2B.msg index 01236d896..c9f722391 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Identifier2B.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Identifier2B.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,14 +25,14 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE is a general identifier. +# * +# * @category: Basic information +# * @revision: Created in V2.1.1 +# */ # Identifier2B ::= INTEGER (0..65535) # ------------------------------------------------------------------------------ -# * -# * This DE is a general identifier. -# * -# * @category: Basic information -# * @revision: Created in V2.1.1 -# uint16 value uint16 MIN = 0 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/IntersectionReferenceId.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/IntersectionReferenceId.msg index d11d5ad62..a2920222f 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/IntersectionReferenceId.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/IntersectionReferenceId.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,25 +25,25 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents a unique id for an intersection, in accordance with ETSI TS 103 301 [15]. +# * +# * It shall include the following components: +# * +# * @field region: the optional identifier of the entity that is responsible for the region in which the intersection is placed. +# * It is the duty of that entity to guarantee that the @ref Id is unique within the region. +# * +# * @field id: the identifier of the intersection +# * +# * @note: when the component region is present, the IntersectionReferenceId is guaranteed to be globally unique. +# * @category: Road topology information +# * @revision: created in V2.1.1 +# */ # IntersectionReferenceId ::= SEQUENCE { # region Identifier2B OPTIONAL, # id Identifier2B # } # ------------------------------------------------------------------------------ -# * -# * This DF represents a unique id for an intersection, in accordance with ETSI TS 103 301 [15]. -# * -# * It shall include the following components: -# * -# * @field region: the optional identifier of the entity that is responsible for the region in which the intersection is placed. -# * It is the duty of that entity to guarantee that the @ref Id is unique within the region. -# * -# * @field id: the identifier of the intersection -# * -# * @note: when the component region is present, the IntersectionReferenceId is guaranteed to be globally unique. -# * @category: Road topology information -# * @revision: created in V2.1.1 -# Identifier2B region bool region_is_present diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ItsPduHeader.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ItsPduHeader.msg index 207a10e1e..d0fe456a1 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ItsPduHeader.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ItsPduHeader.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,27 +25,27 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents a common message header for application and facilities layer messages. +# * It is included at the beginning of an ITS message as the message header. +# * +# * It shall include the following components: +# * +# * @field protocolVersion: version of the ITS message. +# * +# * @field messageId: type of the ITS message. +# * +# * @field stationId: the identifier of the ITS-S that generated the ITS message. +# * +# * @category: Communication information +# * @revision: update in V2.1.1: messageID and stationID changed to messageId and stationId; messageId is of type MessageId. +# */ # ItsPduHeader ::= SEQUENCE { # protocolVersion OrdinalNumber1B, # messageId MessageId, # stationId StationId # } # ------------------------------------------------------------------------------ -# * -# * This DF represents a common message header for application and facilities layer messages. -# * It is included at the beginning of an ITS message as the message header. -# * -# * It shall include the following components: -# * -# * @field protocolVersion: version of the ITS message. -# * -# * @field messageId: type of the ITS message. -# * -# * @field stationId: the identifier of the ITS-S that generated the ITS message. -# * -# * @category: Communication information -# * @revision: update in V2.1.1: messageID and stationID changed to messageId and stationId; messageId is of type MessageId. -# OrdinalNumber1B protocol_version diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ItsPduHeaderVam.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ItsPduHeaderVam.msg index ccfdec81a..09f7eb0ca 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ItsPduHeaderVam.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ItsPduHeaderVam.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,17 +25,19 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * @details ItsPduHeaderVam +# * The ITS PDU header for the VAM. +# * +# * This DF includes DEs for the VAM _protocolVersion_, the VAM message type identifier _messageID_ +# * and the station identifier _stationID_ of the originating ITS-S. +# * +# * @category: Communication information +# * @revision: V2.2.1 +# */ # ItsPduHeaderVam ::= ItsPduHeader(WITH COMPONENTS {..., protocolVersion(3), messageId(vam)}) # ------------------------------------------------------------------------------ -# * -# * @details ItsPduHeaderVam -# * The ITS PDU header for the VAM. -# * -# * This DF includes DEs for the VAM _protocolVersion_, the VAM message type identifier _messageID_ -# * and the station identifier _stationID_ of the originating ITS-S. -# * -# * @category: Communication information -# * @revision: V2.2.1 -# +# with-components: [None, ('protocolVersion', 3), ('messageId', 'vam')] ItsPduHeader value + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LanePosition.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LanePosition.msg index f58479d08..180cbc491 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LanePosition.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LanePosition.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,36 +25,36 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates a transversal position on the carriageway at a specific longitudinal position, in resolution of lanes of the carriageway. +# * +# * For right-hand traffic roads, the value shall be set to: +# * - `-1` if the position is off, i.e. besides the road, +# * - `0` if the position is on the inner hard shoulder, i.e. the hard should adjacent to the leftmost lane, +# * - `n` (`n > 0` and `n < 14`), if the position is on the n-th driving lane counted from the leftmost lane to the rightmost lane of a specific traffic direction, +# * - `14` if the position is on the outer hard shoulder, i.e. the hard should adjacent to rightmost lane (if present). +# * +# * For left-hand traffic roads, the value shall be set to: +# * - `-1` if the position is off, i.e. besides the road, +# * - `0` if the position is on the inner hard shoulder, i.e. the hard should adjacent to the rightmost lane, +# * - `n` (`n > 0` and `n < 14`), if the position is on the n-th driving lane counted from the rightmost lane to the leftmost lane of a specific traffic direction, +# * - `14` if the position is on the outer hard shoulder, i.e. the hard should adjacent to leftmost lane (if present). +# +# * @note: in practice this means that the position is counted from "inside" to "outside" no matter which traffic practice is used. +# * +# * If the carriageway allows only traffic in one direction (e.g. in case of dual or multiple carriageway roads), the position is counted from the physical border of the carriageway. +# * If the carriageway allows traffic in both directions and there is no physical delimitation between traffic directions (e.g. on a single carrriageway road), +# * the position is counted from the legal (i.e. optical) separation between traffic directions (horizontal marking). +# +# * @category: Road topology information +# * @revision: Description revised in V2.1.1 +# */ # LanePosition ::= INTEGER { # offTheRoad (-1), # innerHardShoulder (0), # outerHardShoulder (14) # } (-1..14) # ------------------------------------------------------------------------------ -# * -# * This DE indicates a transversal position on the carriageway at a specific longitudinal position, in resolution of lanes of the carriageway. -# * -# * For right-hand traffic roads, the value shall be set to: -# * - `-1` if the position is off, i.e. besides the road, -# * - `0` if the position is on the inner hard shoulder, i.e. the hard should adjacent to the leftmost lane, -# * - `n` (`n > 0` and `n < 14`), if the position is on the n-th driving lane counted from the leftmost lane to the rightmost lane of a specific traffic direction, -# * - `14` if the position is on the outer hard shoulder, i.e. the hard should adjacent to rightmost lane (if present). -# * -# * For left-hand traffic roads, the value shall be set to: -# * - `-1` if the position is off, i.e. besides the road, -# * - `0` if the position is on the inner hard shoulder, i.e. the hard should adjacent to the rightmost lane, -# * - `n` (`n > 0` and `n < 14`), if the position is on the n-th driving lane counted from the rightmost lane to the leftmost lane of a specific traffic direction, -# * - `14` if the position is on the outer hard shoulder, i.e. the hard should adjacent to leftmost lane (if present). -# -# * @note: in practice this means that the position is counted from "inside" to "outside" no matter which traffic practice is used. -# * -# * If the carriageway allows only traffic in one direction (e.g. in case of dual or multiple carriageway roads), the position is counted from the physical border of the carriageway. -# * If the carriageway allows traffic in both directions and there is no physical delimitation between traffic directions (e.g. on a single carrriageway road), -# * the position is counted from the legal (i.e. optical) separation between traffic directions (horizontal marking). -# -# * @category: Road topology information -# * @revision: Description revised in V2.1.1 -# int8 value int8 MIN = -1 @@ -63,3 +62,4 @@ int8 MAX = 14 int8 OFF_THE_ROAD = -1 int8 INNER_HARD_SHOULDER = 0 int8 OUTER_HARD_SHOULDER = 14 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LanePositionAndType.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LanePositionAndType.msg index b0ab6297d..752e3bc57 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LanePositionAndType.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LanePositionAndType.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,24 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF indicates a transversal position in resolution of lanes and the associated lane type. +# * +# * It shall include the following components: +# * +# * @field transversalPosition: the transversal position. +# * +# * @field laneType: the type of the lane identified in the component transversalPosition. +# * +# * @category Road topology information +# * @revision: Created in V2.1.1 +# */ # LanePositionAndType::= SEQUENCE { # transversalPosition LanePosition, # laneType LaneType, # ... # } # ------------------------------------------------------------------------------ -# * -# * This DF indicates a transversal position in resolution of lanes and the associated lane type. -# * -# * It shall include the following components: -# * -# * @field transversalPosition: the transversal position. -# * -# * @field laneType: the type of the lane identified in the component transversalPosition. -# * -# * @category Road topology information -# * @revision: Created in V2.1.1 -# LanePosition transversal_position diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LaneType.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LaneType.msg index 714212378..a239b3ac9 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LaneType.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LaneType.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,38 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the type of a lane. +# * +# * The value shall be set to: +# * - 0 - `traffic` - Lane dedicated to the movement of vehicles, +# * - 1 - `through` - Lane dedicated to the movement of vehicles travelling ahead and not turning, +# * - 2 - `reversible` - Lane where the direction of traffic can be changed to match the peak flow, +# * - 3 - `acceleration` - Lane that allows vehicles entering a road to accelerate to the speed of through traffic before merging with it, +# * - 4 - `deceleration` - Lane that allows vehicles exiting a road to decelerate before leaving it, +# * - 5 - `leftHandTurning` - Lane reserved for slowing down and making a left turn, so as not to disrupt traffic, +# * - 6 - `rightHandTurning` - Lane reserved for slowing down and making a right turn so as not to disrupt traffic, +# * - 7 - `dedicatedVehicle` - Lane dedicated to movement of motor vehicles with specific characteristics, such as heavy goods vehicles, etc., +# * - 8 - `bus` - Lane dedicated to movement of buses providing public transport, +# * - 9 - `taxi` - Lane dedicated to movement of taxis, +# * - 10 - `hov` - Carpooling lane or high occupancy vehicle lane, +# * - 11 - `hot` - High occupancy vehicle lanes that is allowed to be used without meeting the occupancy criteria by paying a toll, +# * - 12 - `pedestrian` - Lanes dedicated to pedestrians such as pedestrian sidewalk paths, +# * - 13 - `cycleLane` - Lane dedicated to exclusive or preferred use by bicycles, +# * - 14 - `median` - Lane not dedicated to movement of vehicles but representing a median / central reservation such as the central median, +# separating the two directional carriageways of the highway, +# * - 15 - `striping` - Lane not dedicated to movement of vehicles but covered with roadway markings, +# * - 16 - `trackedVehicle` - Lane dedicated to movement of trains, trams and trolleys, +# * - 17 - `parking` - Lanes dedicated to vehicles parking, stopping and loading lanes, +# * - 18 - `emergency` - Lane dedicated to vehicles in breakdown or to emergency vehicles also called hard shoulder, +# * - 19 - `verge` - Lane representing the verge, i.e. a narrow strip of grass or plants and sometimes also trees located between +# the road surface edge and the boundary of a road, +# * - 20 `minimumRiskManoeuvre` - Lane dedicated to automated vehicles making a minimum risk manoeuvre. +# * - values 21 to 30 reserved for future use. +# * +# * @category: Road topology information +# * @revision: Created in V2.1.1 +# */ # LaneType::= INTEGER{ # traffic (0), # through (1), @@ -51,38 +82,6 @@ # unknown (31) # }(0..31) # ------------------------------------------------------------------------------ -# * -# * This DE represents the type of a lane. -# * -# * The value shall be set to: -# * - 0 - `traffic` - Lane dedicated to the movement of vehicles, -# * - 1 - `through` - Lane dedicated to the movement of vehicles travelling ahead and not turning, -# * - 2 - `reversible` - Lane where the direction of traffic can be changed to match the peak flow, -# * - 3 - `acceleration` - Lane that allows vehicles entering a road to accelerate to the speed of through traffic before merging with it, -# * - 4 - `deceleration` - Lane that allows vehicles exiting a road to decelerate before leaving it, -# * - 5 - `leftHandTurning` - Lane reserved for slowing down and making a left turn, so as not to disrupt traffic, -# * - 6 - `rightHandTurning` - Lane reserved for slowing down and making a right turn so as not to disrupt traffic, -# * - 7 - `dedicatedVehicle` - Lane dedicated to movement of motor vehicles with specific characteristics, such as heavy goods vehicles, etc., -# * - 8 - `bus` - Lane dedicated to movement of buses providing public transport, -# * - 9 - `taxi` - Lane dedicated to movement of taxis, -# * - 10 - `hov` - Carpooling lane or high occupancy vehicle lane, -# * - 11 - `hot` - High occupancy vehicle lanes that is allowed to be used without meeting the occupancy criteria by paying a toll, -# * - 12 - `pedestrian` - Lanes dedicated to pedestrians such as pedestrian sidewalk paths, -# * - 13 - `cycleLane` - Lane dedicated to exclusive or preferred use by bicycles, -# * - 14 - `median` - Lane not dedicated to movement of vehicles but representing a median / central reservation such as the central median, -# separating the two directional carriageways of the highway, -# * - 15 - `striping` - Lane not dedicated to movement of vehicles but covered with roadway markings, -# * - 16 - `trackedVehicle` - Lane dedicated to movement of trains, trams and trolleys, -# * - 17 - `parking` - Lanes dedicated to vehicles parking, stopping and loading lanes, -# * - 18 - `emergency` - Lane dedicated to vehicles in breakdown or to emergency vehicles also called hard shoulder, -# * - 19 - `verge` - Lane representing the verge, i.e. a narrow strip of grass or plants and sometimes also trees located between -# the road surface edge and the boundary of a road, -# * - 20 `minimumRiskManoeuvre` - Lane dedicated to automated vehicles making a minimum risk manoeuvre. -# * - values 21 to 30 reserved for future use. -# * -# * @category: Road topology information -# * @revision: Created in V2.1.1 -# uint8 value uint8 MIN = 0 @@ -109,3 +108,4 @@ uint8 EMERGENCY = 18 uint8 VERGE = 19 uint8 MINIMUM_RISK_MANOEUVRE = 20 uint8 UNKNOWN = 31 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LateralAcceleration.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LateralAcceleration.msg index 322e647be..acb9759a3 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LateralAcceleration.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LateralAcceleration.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,24 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF indicates the vehicle acceleration at lateral direction and the confidence value of the lateral acceleration. +# * +# * It shall include the following components: +# * +# * @field lateralAccelerationValue: lateral acceleration value at a point in time. +# * +# * @field lateralAccelerationConfidence: confidence value of the lateral acceleration value. +# * +# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationComponent instead. +# * @category Vehicle information +# * @revision: Description revised in V2.1.1 +# */ # LateralAcceleration ::= SEQUENCE { # lateralAccelerationValue LateralAccelerationValue, # lateralAccelerationConfidence AccelerationConfidence # } # ------------------------------------------------------------------------------ -# * -# * This DF indicates the vehicle acceleration at lateral direction and the confidence value of the lateral acceleration. -# * -# * It shall include the following components: -# * -# * @field lateralAccelerationValue: lateral acceleration value at a point in time. -# * -# * @field lateralAccelerationConfidence: confidence value of the lateral acceleration value. -# * -# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationComponent instead. -# * @category Vehicle information -# * @revision: Description revised in V2.1.1 -# LateralAccelerationValue lateral_acceleration_value diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LateralAccelerationValue.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LateralAccelerationValue.msg index 6acc843bb..2a4532112 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LateralAccelerationValue.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LateralAccelerationValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,32 +25,32 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the vehicle acceleration at lateral direction in the centre of the mass of the empty vehicle. +# * It corresponds to the vehicle coordinate system as specified in ISO 8855 [21]. +# * +# * The value shall be set to: +# * - `-160` for acceleration values equal to or less than -16 m/s^2, +# * - `n` (`n > -160` and `n <= 0`) to indicate that the vehicle is accelerating towards the right side with regards to the vehicle orientation +# * with acceleration equal to or less than n x 0,1 m/s^2 and greater than (n-1) x 0,1 m/s^2, +# * - `n` (`n > 0` and `n < 160`) to indicate that the vehicle is accelerating towards the left hand side with regards to the vehicle orientation +# with acceleration equal to or less than n x 0,1 m/s^2 and greater than (n-1) x 0,1 m/s^2, +# * - `160` for acceleration values greater than 15,9 m/s^2, +# * - `161` when the data is unavailable. +# * +# * @note: the empty load vehicle is defined in ISO 1176 [8], clause 4.6. +# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationValue instead. +# * +# * @unit: 0,1 m/s^2 +# * @category: Vehicle information +# * @revision: Description updated in V2.1.1 (the meaning of 160 has changed slightly). +# */ # LateralAccelerationValue ::= INTEGER { # negativeOutOfRange (-160), # positiveOutOfRange (160), # unavailable (161) # } (-160 .. 161) # ------------------------------------------------------------------------------ -# * -# * This DE represents the vehicle acceleration at lateral direction in the centre of the mass of the empty vehicle. -# * It corresponds to the vehicle coordinate system as specified in ISO 8855 [21]. -# * -# * The value shall be set to: -# * - `-160` for acceleration values equal to or less than -16 m/s^2, -# * - `n` (`n > -160` and `n <= 0`) to indicate that the vehicle is accelerating towards the right side with regards to the vehicle orientation -# * with acceleration equal to or less than n x 0,1 m/s^2 and greater than (n-1) x 0,1 m/s^2, -# * - `n` (`n > 0` and `n < 160`) to indicate that the vehicle is accelerating towards the left hand side with regards to the vehicle orientation -# with acceleration equal to or less than n x 0,1 m/s^2 and greater than (n-1) x 0,1 m/s^2, -# * - `160` for acceleration values greater than 15,9 m/s^2, -# * - `161` when the data is unavailable. -# * -# * @note: the empty load vehicle is defined in ISO 1176 [8], clause 4.6. -# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationValue instead. -# * -# * @unit: 0,1 m/s^2 -# * @category: Vehicle information -# * @revision: Description updated in V2.1.1 (the meaning of 160 has changed slightly). -# int16 value int16 MIN = -160 @@ -59,3 +58,4 @@ int16 MAX = 161 int16 NEGATIVE_OUT_OF_RANGE = -160 int16 POSITIVE_OUT_OF_RANGE = 160 int16 UNAVAILABLE = 161 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Latitude.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Latitude.msg index ed06fe8bc..e6b206b21 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Latitude.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Latitude.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,27 +25,28 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the absolute geographical latitude in a WGS84 coordinate system, providing a range of 90 degrees in north or +# * in south hemisphere. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `n` (`n >= -900 000 000` and `n < 0`) x 10^-7 degree, i.e. negative values for latitudes south of the Equator, +# * - `0` is used for the latitude of the equator, +# * - `n` (`n > 0` and `n < 900 000 001`) x 10^-7 degree, i.e. positive values for latitudes north of the Equator, +# * - `900 000 001` when the information is unavailable. +# * +# * @unit: 10^-7 degree +# * @category: GeoReference information +# * @revision: Editorial update in V2.1.1 +# */ # Latitude ::= INTEGER { # unavailable(900000001) # } (-900000000..900000001) # ------------------------------------------------------------------------------ -# * -# * This DE represents the absolute geographical latitude in a WGS84 coordinate system, providing a range of 90 degrees in north or -# * in south hemisphere. -# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. -# * -# * The value shall be set to: -# * - `n` (`n >= -900 000 000` and `n < 0`) x 10^-7 degree, i.e. negative values for latitudes south of the Equator, -# * - `0` is used for the latitude of the equator, -# * - `n` (`n > 0` and `n < 900 000 001`) x 10^-7 degree, i.e. positive values for latitudes north of the Equator, -# * - `900 000 001` when the information is unavailable. -# * -# * @unit: 10^-7 degree -# * @category: GeoReference information -# * @revision: Editorial update in V2.1.1 -# int32 value int32 MIN = -900000000 int32 MAX = 900000001 int32 UNAVAILABLE = 900000001 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Longitude.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Longitude.msg index 260a21905..544381342 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Longitude.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Longitude.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,31 +25,32 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the absolute geographical longitude in a WGS84 coordinate system, providing a range of 180 degrees +# * to the east or to the west of the prime meridian. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `n` (`n > -1 800 000 000` and `n < 0`) x 10^-7 degree, i.e. negative values for longitudes to the west, +# * - `0` to indicate the prime meridian, +# * - `n` (`n > 0` and `n < 1 800 000 001`) x 10^-7 degree, i.e. positive values for longitudes to the east, +# * - `1 800 000 001` when the information is unavailable. +# * +# * The value -1 800 000 000 shall not be used. +# * +# * @unit: 10^-7 degree +# * @category: GeoReference information +# * @revision: Description revised in V2.1.1 +# */ # Longitude ::= INTEGER { # valueNotUsed (-1800000000), # unavailable (1800000001) # } (-1800000000..1800000001) # ------------------------------------------------------------------------------ -# * -# * This DE represents the absolute geographical longitude in a WGS84 coordinate system, providing a range of 180 degrees -# * to the east or to the west of the prime meridian. -# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. -# * -# * The value shall be set to: -# * - `n` (`n > -1 800 000 000` and `n < 0`) x 10^-7 degree, i.e. negative values for longitudes to the west, -# * - `0` to indicate the prime meridian, -# * - `n` (`n > 0` and `n < 1 800 000 001`) x 10^-7 degree, i.e. positive values for longitudes to the east, -# * - `1 800 000 001` when the information is unavailable. -# * -# * The value -1 800 000 000 shall not be used. -# * -# * @unit: 10^-7 degree -# * @category: GeoReference information -# * @revision: Description revised in V2.1.1 -# int32 value int32 MIN = -1800000000 int32 MAX = 1800000001 int32 VALUE_NOT_USED = -1800000000 int32 UNAVAILABLE = 1800000001 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LongitudinalAcceleration.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LongitudinalAcceleration.msg index 846d2ebbd..d55e154c8 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LongitudinalAcceleration.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LongitudinalAcceleration.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,24 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF indicates the vehicle acceleration at longitudinal direction and the confidence value of the longitudinal acceleration. +# * +# * It shall include the following components: +# * +# * @field longitudinalAccelerationValue: longitudinal acceleration value at a point in time. +# +# * @field longitudinalAccelerationConfidence: confidence value of the longitudinal acceleration value. +# * +# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationComponent instead. +# * @category: Vehicle information +# * @revision: V1.3.1 +# */ # LongitudinalAcceleration ::= SEQUENCE { # longitudinalAccelerationValue LongitudinalAccelerationValue, # longitudinalAccelerationConfidence AccelerationConfidence # } # ------------------------------------------------------------------------------ -# * -# * This DF indicates the vehicle acceleration at longitudinal direction and the confidence value of the longitudinal acceleration. -# * -# * It shall include the following components: -# * -# * @field longitudinalAccelerationValue: longitudinal acceleration value at a point in time. -# -# * @field longitudinalAccelerationConfidence: confidence value of the longitudinal acceleration value. -# * -# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationComponent instead. -# * @category: Vehicle information -# * @revision: V1.3.1 -# LongitudinalAccelerationValue longitudinal_acceleration_value diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LongitudinalAccelerationValue.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LongitudinalAccelerationValue.msg index 3d1992914..90ce855f2 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LongitudinalAccelerationValue.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LongitudinalAccelerationValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,31 +25,31 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the vehicle acceleration at longitudinal direction in the centre of the mass of the empty vehicle. +# * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11. +# * +# * The value shall be set to: +# * - `-160` for acceleration values equal to or less than -16 m/s^2, +# * - `n` (`n > -160` and `n <= 0`) to indicate that the vehicle is braking with acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2 +# * - `n` (`n > 0` and `n < 160`) to indicate that the vehicle is accelerating with acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, +# * - `160` for acceleration values greater than 15,9 m/s^2, +# * - `161` when the data is unavailable. +# * +# * This acceleration is along the tangent plane of the road surface and does not include gravity components. +# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationValue instead. +# * +# * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6. +# * @unit: 0,1 m/s^2 +# * @category: Vehicle information +# * @revision: description revised in V2.1.1 (the meaning of 160 has changed slightly). T +# */ # LongitudinalAccelerationValue::= INTEGER { # negativeOutOfRange (-160), # positiveOutOfRange (160), # unavailable (161) # } (-160 .. 161) # ------------------------------------------------------------------------------ -# * -# * This DE represents the vehicle acceleration at longitudinal direction in the centre of the mass of the empty vehicle. -# * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11. -# * -# * The value shall be set to: -# * - `-160` for acceleration values equal to or less than -16 m/s^2, -# * - `n` (`n > -160` and `n <= 0`) to indicate that the vehicle is braking with acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2 -# * - `n` (`n > 0` and `n < 160`) to indicate that the vehicle is accelerating with acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, -# * - `160` for acceleration values greater than 15,9 m/s^2, -# * - `161` when the data is unavailable. -# * -# * This acceleration is along the tangent plane of the road surface and does not include gravity components. -# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationValue instead. -# * -# * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6. -# * @unit: 0,1 m/s^2 -# * @category: Vehicle information -# * @revision: description revised in V2.1.1 (the meaning of 160 has changed slightly). T -# int16 value int16 MIN = -160 @@ -58,3 +57,4 @@ int16 MAX = 161 int16 NEGATIVE_OUT_OF_RANGE = -160 int16 POSITIVE_OUT_OF_RANGE = 160 int16 UNAVAILABLE = 161 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LongitudinalLanePosition.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LongitudinalLanePosition.msg index 3ff8281e1..f40f82a79 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LongitudinalLanePosition.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LongitudinalLanePosition.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,23 +25,23 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents the estimated position along the longitudinal length of a particular lane. +# * +# * It shall include the following components: +# * +# * @field longitudinalLanePositionValue: the mean value of the longitudinal position within a particular length. +# * +# * @field longitudinalLanePositionConfidence: The confidence value associated to the value. +# * +# * @category: Road topology information +# * @revision: created in V2.1.1 +# */ # LongitudinalLanePosition ::= SEQUENCE { # longitudinalLanePositionValue LongitudinalLanePositionValue, # longitudinalLanePositionConfidence LongitudinalLanePositionConfidence # } # ------------------------------------------------------------------------------ -# * -# * This DF represents the estimated position along the longitudinal length of a particular lane. -# * -# * It shall include the following components: -# * -# * @field longitudinalLanePositionValue: the mean value of the longitudinal position within a particular length. -# * -# * @field longitudinalLanePositionConfidence: The confidence value associated to the value. -# * -# * @category: Road topology information -# * @revision: created in V2.1.1 -# LongitudinalLanePositionValue longitudinal_lane_position_value diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LongitudinalLanePositionConfidence.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LongitudinalLanePositionConfidence.msg index de81be18f..1035e6a83 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LongitudinalLanePositionConfidence.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LongitudinalLanePositionConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,27 +25,28 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the longitudinal lane position confidence value which represents the estimated accuracy of longitudinal lane position measurement with a default confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 1 022`) if the confidence value is equal to or less than n x 0,1 m, and more than (n-1) x 0,1 m, +# * - `1 022` if the confidence value is out of range i.e. greater than 102,1 m, +# * - `1 023` if the confidence value is unavailable. +# * +# * @unit 0,1 metre +# * @category: GeoReference information +# * @revision: Created in V2.1.1 +# */ # LongitudinalLanePositionConfidence ::= INTEGER { # outOfRange (1022), # unavailable (1023) # } (0..1023) # ------------------------------------------------------------------------------ -# * -# * This DE indicates the longitudinal lane position confidence value which represents the estimated accuracy of longitudinal lane position measurement with a default confidence level of 95 %. -# * If required, the confidence level can be defined by the corresponding standards applying this DE. -# * -# * The value shall be set to: -# * - `n` (`n > 0` and `n < 1 022`) if the confidence value is equal to or less than n x 0,1 m, and more than (n-1) x 0,1 m, -# * - `1 022` if the confidence value is out of range i.e. greater than 102,1 m, -# * - `1 023` if the confidence value is unavailable. -# * -# * @unit 0,1 metre -# * @category: GeoReference information -# * @revision: Created in V2.1.1 -# uint16 value uint16 MIN = 0 uint16 MAX = 1023 uint16 OUT_OF_RANGE = 1022 uint16 UNAVAILABLE = 1023 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LongitudinalLanePositionValue.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LongitudinalLanePositionValue.msg index 6f86cf3f2..bdca3f627 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LongitudinalLanePositionValue.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/LongitudinalLanePositionValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,26 +25,27 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the longitudinal offset of a map-matched position along a matched lane, beginning from the lane's starting point. +# * +# * The value shall be set to: +# * - `n` (`n >= 0` and `n < 32766`) if the longitudinal offset information is equal to or less than n x 0,1 metre and more than (n-1) x 0,1 metre, +# * - `32 766` if the longitudinal offset is out of range, i.e. greater than 3276,5 m, +# * - `32 767` if the longitudinal offset information is not available. +# * +# * @unit 0,1 metre +# * @category: GeoReference information +# * @revision: Created in V2.1.1 +# */ # LongitudinalLanePositionValue ::= INTEGER { # outOfRange(32766), # unavailable(32767) # }(0..32767) # ------------------------------------------------------------------------------ -# * -# * This DE represents the longitudinal offset of a map-matched position along a matched lane, beginning from the lane's starting point. -# * -# * The value shall be set to: -# * - `n` (`n >= 0` and `n < 32766`) if the longitudinal offset information is equal to or less than n x 0,1 metre and more than (n-1) x 0,1 metre, -# * - `32 766` if the longitudinal offset is out of range, i.e. greater than 3276,5 m, -# * - `32 767` if the longitudinal offset information is not available. -# * -# * @unit 0,1 metre -# * @category: GeoReference information -# * @revision: Created in V2.1.1 -# uint16 value uint16 MIN = 0 uint16 MAX = 32767 uint16 OUT_OF_RANGE = 32766 uint16 UNAVAILABLE = 32767 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/MapPosition.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/MapPosition.msg index f771d58d0..312d60ba2 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/MapPosition.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/MapPosition.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF indicates a position on a topology description transmitted in a MAPEM according to ETSI TS 103 301 [15]. +# * +# * It shall include the following components: +# * +# * @field mapReference: optionally identifies the MAPEM containing the topology information. +# * It is absent if the MAPEM topology is known from the context. +# * +# * @field laneId: optionally identifies the lane in the road segment or intersection topology on which the position is located. +# * +# * @field connectionId: optionally identifies the connection inside the conflict area of an intersection, i.e. it identifies a trajectory for travelling through the +# * conflict area of an intersection which connects e.g an ingress with an egress lane. +# * +# * @field longitudinalLanePosition: optionally indicates the longitudinal offset of the map-matched position of the object along the lane or connection. +# * +# * @category: Road topology information +# * @revision: Created in V2.1.1 +# */ # MapPosition ::= SEQUENCE { # mapReference MapReference OPTIONAL, # laneId Identifier1B OPTIONAL, @@ -34,24 +51,6 @@ # ... # } # ------------------------------------------------------------------------------ -# * -# * This DF indicates a position on a topology description transmitted in a MAPEM according to ETSI TS 103 301 [15]. -# * -# * It shall include the following components: -# * -# * @field mapReference: optionally identifies the MAPEM containing the topology information. -# * It is absent if the MAPEM topology is known from the context. -# * -# * @field laneId: optionally identifies the lane in the road segment or intersection topology on which the position is located. -# * -# * @field connectionId: optionally identifies the connection inside the conflict area of an intersection, i.e. it identifies a trajectory for travelling through the -# * conflict area of an intersection which connects e.g an ingress with an egress lane. -# * -# * @field longitudinalLanePosition: optionally indicates the longitudinal offset of the map-matched position of the object along the lane or connection. -# * -# * @category: Road topology information -# * @revision: Created in V2.1.1 -# MapReference map_reference bool map_reference_is_present diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/MapReference.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/MapReference.msg index 9393a77da..f2cf2c496 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/MapReference.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/MapReference.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,23 +25,23 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF provides the reference to the information contained in a MAPEM according to ETSI TS 103 301 [15]. +# * +# * The following options are provided: +# * +# * @field roadsegment: option that identifies the description of a road segment contained in a MAPEM. +# * +# * @field intersection: option that identifies the description of an intersection contained in a MAPEM. +# * +# * @category: Road topology information +# * @revision: Created in V2.1.1 +# */ # MapReference::= CHOICE { # roadsegment RoadSegmentReferenceId, # intersection IntersectionReferenceId # } # ------------------------------------------------------------------------------ -# * -# * This DF provides the reference to the information contained in a MAPEM according to ETSI TS 103 301 [15]. -# * -# * The following options are provided: -# * -# * @field roadsegment: option that identifies the description of a road segment contained in a MAPEM. -# * -# * @field intersection: option that identifies the description of an intersection contained in a MAPEM. -# * -# * @category: Road topology information -# * @revision: Created in V2.1.1 -# uint8 choice diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/MessageId.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/MessageId.msg index 36b69d40b..0c47a57b0 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/MessageId.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/MessageId.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,36 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the type of facility layer message. +# * +# * The value shall be set to: +# * - 1 - `denm` - for Decentralized Environmental Notification Message (DENM) as specified in ETSI EN 302 637-3 [2], +# * - 2 - `cam` - for Cooperative Awareness Message (CAM) as specified in ETSI EN 302 637-2 [1], +# * - 3 - `poi` - for Point of Interest message as specified in ETSI TS 101 556-1 [9], +# * - 4 - `spatem` - for Signal Phase And Timing Extended Message (SPATEM) as specified in ETSI TS 103 301 [15], +# * - 5 - `mapem` - for MAP Extended Message (MAPEM) as specified in ETSI TS 103 301 [15], +# * - 6 - `ivim` - for in Vehicle Information Message (IVIM) as specified in ETSI TS 103 301 [15], +# * - 7 - `ev-rsr` - for Electric vehicle recharging spot reservation message, as defined in ETSI TS 101 556-3 [11], +# * - 8 - `tistpgtransaction` - for messages for Tyre Information System (TIS) and Tyre Pressure Gauge (TPG) interoperability, as specified in ETSI TS 101 556-2 [10], +# * - 9 - `srem` - for Signal Request Extended Message as specified in ETSI TS 103 301 [15], +# * - 10 - `ssem` - for Signal request Status Extended Message as specified in ETSI TS 103 301 [15], +# * - 11 - `evcsn` - for Electrical Vehicle Charging Spot Notification message as specified in ETSI TS 101 556-1 [9], +# * - 12 - `saem` - for Services Announcement Extended Message as specified in ETSI EN 302 890-1 [17], +# * - 13 - `rtcmem` - for Radio Technical Commission for Maritime Services Extended Message (RTCMEM) as specified in ETSI TS 103 301 [15], +# * - 14 - `cpm` - reserved for Collective Perception Message (CPM), +# * - 15 - `imzm` - for Interference Management Zone Message (IMZM) as specified in ETSI TS 103 724 [13], +# * - 16 - `vam` - for Vulnerable Road User Awareness Message as specified in ETSI TS 130 300-3 [12], +# * - 17 - `dsm` - reserved for Diagnosis, logging and Status Message, +# * - 18 - `pcim` - reserved for Parking Control Infrastructure Message, +# * - 19 - `pcvm` - reserved for Parking Control Vehicle Message, +# * - 20 - `mcm` - reserved for Manoeuvre Coordination Message, +# * - 21 - `pam` - reserved for Parking Availability Message, +# * - 22-255 - reserved for future usage. +# * +# * @category: Communication information +# * @revision: Created in V2.1.1 from @ref ItsPduHeader. +# */ # MessageId::= INTEGER { # denm (1), # cam (2), @@ -50,36 +79,6 @@ # pam (21) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the type of facility layer message. -# * -# * The value shall be set to: -# * - 1 - `denm` - for Decentralized Environmental Notification Message (DENM) as specified in ETSI EN 302 637-3 [2], -# * - 2 - `cam` - for Cooperative Awareness Message (CAM) as specified in ETSI EN 302 637-2 [1], -# * - 3 - `poi` - for Point of Interest message as specified in ETSI TS 101 556-1 [9], -# * - 4 - `spatem` - for Signal Phase And Timing Extended Message (SPATEM) as specified in ETSI TS 103 301 [15], -# * - 5 - `mapem` - for MAP Extended Message (MAPEM) as specified in ETSI TS 103 301 [15], -# * - 6 - `ivim` - for in Vehicle Information Message (IVIM) as specified in ETSI TS 103 301 [15], -# * - 7 - `ev-rsr` - for Electric vehicle recharging spot reservation message, as defined in ETSI TS 101 556-3 [11], -# * - 8 - `tistpgtransaction` - for messages for Tyre Information System (TIS) and Tyre Pressure Gauge (TPG) interoperability, as specified in ETSI TS 101 556-2 [10], -# * - 9 - `srem` - for Signal Request Extended Message as specified in ETSI TS 103 301 [15], -# * - 10 - `ssem` - for Signal request Status Extended Message as specified in ETSI TS 103 301 [15], -# * - 11 - `evcsn` - for Electrical Vehicle Charging Spot Notification message as specified in ETSI TS 101 556-1 [9], -# * - 12 - `saem` - for Services Announcement Extended Message as specified in ETSI EN 302 890-1 [17], -# * - 13 - `rtcmem` - for Radio Technical Commission for Maritime Services Extended Message (RTCMEM) as specified in ETSI TS 103 301 [15], -# * - 14 - `cpm` - reserved for Collective Perception Message (CPM), -# * - 15 - `imzm` - for Interference Management Zone Message (IMZM) as specified in ETSI TS 103 724 [13], -# * - 16 - `vam` - for Vulnerable Road User Awareness Message as specified in ETSI TS 130 300-3 [12], -# * - 17 - `dsm` - reserved for Diagnosis, logging and Status Message, -# * - 18 - `pcim` - reserved for Parking Control Infrastructure Message, -# * - 19 - `pcvm` - reserved for Parking Control Vehicle Message, -# * - 20 - `mcm` - reserved for Manoeuvre Coordination Message, -# * - 21 - `pam` - reserved for Parking Availability Message, -# * - 22-255 - reserved for future usage. -# * -# * @category: Communication information -# * @revision: Created in V2.1.1 from @ref ItsPduHeader. -# uint8 value uint8 MIN = 0 @@ -105,3 +104,4 @@ uint8 PCIM = 18 uint8 PCVM = 19 uint8 MCM = 20 uint8 PAM = 21 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/OrdinalNumber1B.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/OrdinalNumber1B.msg index aa29b0de9..fee1bbb6a 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/OrdinalNumber1B.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/OrdinalNumber1B.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,14 +25,14 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * The DE represents an ordinal number that indicates the position of an element in a set. +# * +# * @category: Basic information +# * @revision: Created in V2.1.1 +# */ # OrdinalNumber1B ::= INTEGER(0..255) # ------------------------------------------------------------------------------ -# * -# * The DE represents an ordinal number that indicates the position of an element in a set. -# * -# * @category: Basic information -# * @revision: Created in V2.1.1 -# uint8 value uint8 MIN = 0 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PathDeltaTime.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PathDeltaTime.msg index 3541f4199..020298fb9 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PathDeltaTime.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PathDeltaTime.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,17 +25,17 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the recorded or estimated travel time between a position and a predefined reference position. +# * +# * @unit 0,01 second +# * @category: GeoReference information +# * @revision: V1.3.1 +# */ # PathDeltaTime ::= INTEGER (1..65535, ...) # ------------------------------------------------------------------------------ -# * -# * This DE represents the recorded or estimated travel time between a position and a predefined reference position. -# * -# * @unit 0,01 second -# * @category: GeoReference information -# * @revision: V1.3.1 -# -int64 value -int64 MIN = 1 -int64 MAX = 65535 +uint16 value +uint16 MIN = 1 +uint16 MAX = 65535 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PathHistory.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PathHistory.msg index b437d6277..b9f7175c4 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PathHistory.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PathHistory.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,19 +25,20 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents a path history with a set of path points. +# * It shall contain up to `40` @ref PathPoint. +# * +# * The first PathPoint presents an offset delta position with regards to an external reference position. +# * Each other PathPoint presents an offset delta position and optionally an offset travel time with regards to the previous PathPoint. +# * +# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref Path instead. +# * @category: GeoReference information, Vehicle information +# * @revision: semantics updated in V2.1.1 +# */ # PathHistory::= SEQUENCE (SIZE(40)) OF PathPoint # ------------------------------------------------------------------------------ -# * -# * This DF represents a path history with a set of path points. -# * It shall contain up to `40` @ref PathPoint. -# * -# * The first PathPoint presents an offset delta position with regards to an external reference position. -# * Each other PathPoint presents an offset delta position and optionally an offset travel time with regards to the previous PathPoint. -# * -# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref Path instead. -# * @category: GeoReference information, Vehicle information -# * @revision: semantics updated in V2.1.1 -# PathPoint[] array uint8 SIZE = 40 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PathPoint.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PathPoint.msg index 194260b46..cefaf063e 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PathPoint.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PathPoint.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,23 +25,23 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF defines an offset waypoint position within a path. +# * +# * It shall include the following components: +# * +# * @field pathPosition: The waypoint position defined as an offset position with regards to a pre-defined reference position. +# * +# * @field pathDeltaTime: The optional travel time separated from a waypoint to the predefined reference position. +# * +# * @category GeoReference information +# * @revision: semantics updated in V2.1.1 +# */ # PathPoint ::= SEQUENCE { # pathPosition DeltaReferencePosition, # pathDeltaTime PathDeltaTime OPTIONAL # } # ------------------------------------------------------------------------------ -# * -# * This DF defines an offset waypoint position within a path. -# * -# * It shall include the following components: -# * -# * @field pathPosition: The waypoint position defined as an offset position with regards to a pre-defined reference position. -# * -# * @field pathDeltaTime: The optional travel time separated from a waypoint to the predefined reference position. -# * -# * @category GeoReference information -# * @revision: semantics updated in V2.1.1 -# DeltaReferencePosition path_position diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PathPointPredicted.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PathPointPredicted.msg index a952a9fc7..05ea03c06 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PathPointPredicted.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PathPointPredicted.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,26 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF defines a predicted offset waypoint position within a path. +# * +# * It shall include the following components: +# * +# * @field deltaLatitude: an offset latitude with regards to a pre-defined reference position. +# * +# * @field deltaLongitude: an offset longitude with regards to a pre-defined reference position. +# * +# * @field horizontalPositionConfidence: the confidence value associated to the horizontal geographical position. +# * +# * @field deltaAltitude: an offset altitude with regards to a pre-defined reference position. +# * +# * @field altitudeConfidence: the confidence value associated to the altitude value of the geographical position. +# * +# * @field pathDeltaTime: The travel time separated from the waypoint to the predefined reference position. +# * +# * @category GeoReference information +# * @revision: semantics updated in V2.1.1 +# */ # PathPointPredicted::= SEQUENCE { # deltaLatitude DeltaLatitude, # deltaLongitude DeltaLongitude, @@ -36,26 +55,6 @@ # ... # } # ------------------------------------------------------------------------------ -# * -# * This DF defines a predicted offset waypoint position within a path. -# * -# * It shall include the following components: -# * -# * @field deltaLatitude: an offset latitude with regards to a pre-defined reference position. -# * -# * @field deltaLongitude: an offset longitude with regards to a pre-defined reference position. -# * -# * @field horizontalPositionConfidence: the confidence value associated to the horizontal geographical position. -# * -# * @field deltaAltitude: an offset altitude with regards to a pre-defined reference position. -# * -# * @field altitudeConfidence: the confidence value associated to the altitude value of the geographical position. -# * -# * @field pathDeltaTime: The travel time separated from the waypoint to the predefined reference position. -# * -# * @category GeoReference information -# * @revision: semantics updated in V2.1.1 -# DeltaLatitude delta_latitude @@ -65,10 +64,10 @@ PosConfidenceEllipse horizontal_position_confidence bool horizontal_position_confidence_is_present DeltaAltitude delta_altitude +uint16 DELTA_ALTITUDE_DEFAULT = 12800 AltitudeConfidence altitude_confidence +uint8 ALTITUDE_CONFIDENCE_DEFAULT = 15 DeltaTimeTenthOfSecond path_delta_time - -int16 DELTA_ALTITUDE_DEFAULT = 12800 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PathPredicted.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PathPredicted.msg index 909b8ad43..fb58e13e5 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PathPredicted.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PathPredicted.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,19 +25,20 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents a predicted path with a set of path points. +# * It shall contain up to `15` @ref PathPoint. +# * +# * The first PathPoint presents an offset delta position with regards to an external reference position. +# * Each other PathPoint presents an offset delta position and optionally an offset travel time with regards to the previous PathPoint. +# * +# * @category: GeoReference information +# * @revision: created in V2.1.1 based on PathHistory +# */ # PathPredicted::= SEQUENCE (SIZE(0..15,...)) OF PathPointPredicted # ------------------------------------------------------------------------------ -# * -# * This DF represents a predicted path with a set of path points. -# * It shall contain up to `15` @ref PathPoint. -# * -# * The first PathPoint presents an offset delta position with regards to an external reference position. -# * Each other PathPoint presents an offset delta position and optionally an offset travel time with regards to the previous PathPoint. -# * -# * @category: GeoReference information -# * @revision: created in V2.1.1 based on PathHistory -# PathPointPredicted[] array -int64 MIN_SIZE = 0 -int64 MAX_SIZE = 15 +uint8 MIN_SIZE = 0 +uint8 MAX_SIZE = 15 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PolygonalShape.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PolygonalShape.msg index 1897a4398..3259a802f 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PolygonalShape.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PolygonalShape.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,36 +25,36 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents the shape of a polygonal area or of a right prism. +# * +# * It shall include the following components: +# * +# * @field shapeReferencePoint: the optional reference point used for the definition of the shape, relative to an externally specified reference position. +# * If this component is absent, the externally specified reference position represents the shape's reference point. +# * +# * @field polygon: the polygonal area represented by a list of minimum `3` to maximum `16` @ref CartesianPosition3d. +# * All nodes of the polygon shall be considered relative to the shape's reference point. +# * +# * @field height: the optional height, present if the shape is a right prism extending in the positive z-axis. +# * +# * @category GeoReference information +# * @revision: created in V2.1.1 +# * +# */ # PolygonalShape ::= SEQUENCE { # shapeReferencePoint CartesianPosition3d OPTIONAL, # polygon SequenceOfCartesianPosition3d (SIZE(3..16,...)), # height StandardLength12b OPTIONAL # } # ------------------------------------------------------------------------------ -# * -# * This DF represents the shape of a polygonal area or of a right prism. -# * -# * It shall include the following components: -# * -# * @field shapeReferencePoint: the optional reference point used for the definition of the shape, relative to an externally specified reference position. -# * If this component is absent, the externally specified reference position represents the shape's reference point. -# * -# * @field polygon: the polygonal area represented by a list of minimum `3` to maximum `16` @ref CartesianPosition3d. -# * All nodes of the polygon shall be considered relative to the shape's reference point. -# * -# * @field height: the optional height, present if the shape is a right prism extending in the positive z-axis. -# * -# * @category GeoReference information -# * @revision: created in V2.1.1 -# * -# CartesianPosition3d shape_reference_point bool shape_reference_point_is_present SequenceOfCartesianPosition3d polygon -int64 POLYGON_MIN_SIZE = 3 -int64 POLYGON_MAX_SIZE = 16 +uint8 POLYGON_MIN_SIZE = 3 +uint8 POLYGON_MAX_SIZE = 16 StandardLength12b height bool height_is_present diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PosConfidenceEllipse.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PosConfidenceEllipse.msg index 4eeef1077..fef6e557c 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PosConfidenceEllipse.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PosConfidenceEllipse.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,33 +25,33 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF indicates the horizontal position confidence ellipse which represents the estimated accuracy with a +# * confidence level of 95 %. The centre of the ellipse shape corresponds to the reference +# * position point for which the position accuracy is evaluated. +# * +# * It shall include the following components: +# * +# * @field semiMajorConfidence: half of length of the major axis, i.e. distance between the centre point +# * and major axis point of the position accuracy ellipse. +# * +# * @field semiMinorConfidence: half of length of the minor axis, i.e. distance between the centre point +# * and minor axis point of the position accuracy ellipse. +# * +# * @field semiMajorOrientation: orientation direction of the ellipse major axis of the position accuracy +# * ellipse with regards to the WGS84 north. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * +# * +# * @category GeoReference information +# * @revision: V1.3.1 +# */ # PosConfidenceEllipse ::= SEQUENCE { # semiMajorConfidence SemiAxisLength, # semiMinorConfidence SemiAxisLength, # semiMajorOrientation HeadingValue # } # ------------------------------------------------------------------------------ -# * -# * This DF indicates the horizontal position confidence ellipse which represents the estimated accuracy with a -# * confidence level of 95 %. The centre of the ellipse shape corresponds to the reference -# * position point for which the position accuracy is evaluated. -# * -# * It shall include the following components: -# * -# * @field semiMajorConfidence: half of length of the major axis, i.e. distance between the centre point -# * and major axis point of the position accuracy ellipse. -# * -# * @field semiMinorConfidence: half of length of the minor axis, i.e. distance between the centre point -# * and minor axis point of the position accuracy ellipse. -# * -# * @field semiMajorOrientation: orientation direction of the ellipse major axis of the position accuracy -# * ellipse with regards to the WGS84 north. -# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. -# * -# * -# * @category GeoReference information -# * @revision: V1.3.1 -# SemiAxisLength semi_major_confidence diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PositionConfidenceEllipse.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PositionConfidenceEllipse.msg index 41ebe83f4..804e0667a 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PositionConfidenceEllipse.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/PositionConfidenceEllipse.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,32 +25,32 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF indicates the horizontal position confidence ellipse which represents the estimated accuracy with a +# * confidence level of 95 %. The centre of the ellipse shape corresponds to the reference +# * position point for which the position accuracy is evaluated. +# * +# * It shall include the following components: +# * +# * @field semiMajorAxisLength: half of length of the major axis, i.e. distance between the centre point +# * and major axis point of the position accuracy ellipse. +# * +# * @field semiMinorAxisLength: half of length of the minor axis, i.e. distance between the centre point +# * and minor axis point of the position accuracy ellipse. +# * +# * @field semiMajorAxisOrientation: orientation direction of the ellipse major axis of the position accuracy +# * ellipse with regards to the WGS84 north. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * +# * @category GeoReference information +# * @revision: created in V2.1.1 based on @ref PosConfidenceEllipse +# */ # PositionConfidenceEllipse ::= SEQUENCE { # semiMajorAxisLength SemiAxisLength, # semiMinorAxisLength SemiAxisLength, # semiMajorAxisOrientation Wgs84AngleValue # } # ------------------------------------------------------------------------------ -# * -# * This DF indicates the horizontal position confidence ellipse which represents the estimated accuracy with a -# * confidence level of 95 %. The centre of the ellipse shape corresponds to the reference -# * position point for which the position accuracy is evaluated. -# * -# * It shall include the following components: -# * -# * @field semiMajorAxisLength: half of length of the major axis, i.e. distance between the centre point -# * and major axis point of the position accuracy ellipse. -# * -# * @field semiMinorAxisLength: half of length of the minor axis, i.e. distance between the centre point -# * and minor axis point of the position accuracy ellipse. -# * -# * @field semiMajorAxisOrientation: orientation direction of the ellipse major axis of the position accuracy -# * ellipse with regards to the WGS84 north. -# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. -# * -# * @category GeoReference information -# * @revision: created in V2.1.1 based on @ref PosConfidenceEllipse -# SemiAxisLength semi_major_axis_length diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/RadialShape.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/RadialShape.msg index bbc8400ca..2af9f5e37 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/RadialShape.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/RadialShape.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,40 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF describes a radial shape. The triangular or cone-shaped volume is +# * constructed by sweeping the provided range about the reference point between a horizontal start +# * and a horizontal end angle in positive angular direction of the WGS84 +# * coordinate system. A vertical opening angle may be provided in a Cartesian coordinate system with +# * the x-axis located in the North-East plane of the WGS84 coordinate system. The sensor height may +# * be provided to reflect characteristics of sensors mounted at an altitude (e.g. sensors mounted +# * above intersections). +# * +# * It shall include the following components: +# * +# * @field shapeReferencePoint: the optional reference point used for the definition of the shape, relative to an externally specified reference position. +# * If this component is absent, the externally specified reference position represents the shape's reference point. +# * +# * @field range: the radial range of the shape from the shape's reference point. +# * +# * @field stationaryHorizontalOpeningAngleStart: the orientation indicating the beginning of the +# * shape's horizontal opening angle in positive angular direction with respect to the +# * WGS84 coordinate system. +# * +# * @field stationaryHorizontalOpeningAngleEnd: The orientation indicating the end of the shape's +# * horizontal opening angle in positive angular direction with respect to the WGS84 coordinate system. +# * +# * @field verticalOpeningAngleStart: optional orientation indicating the beginning of the shape's +# * opening angle in positive angular direction of a Cartesian coordinate system with its x-axis +# * located in the north-east plane of the WGS84 coordinate system. +# * +# * @field verticalOpeningAngleEnd: optional orientation indicating the end of the shape's +# * vertical opening angle in positive angular direction of a Cartesian coordinate system with its x-axis +# * located in the north-east plane of the WGS84 coordinate system. +# * +# * @category GeoReference information +# * @revision: created in V2.1.1 +# */ # RadialShape ::= SEQUENCE { # shapeReferencePoint CartesianPosition3d OPTIONAL, # range StandardLength12b, @@ -35,40 +68,6 @@ # verticalOpeningAngleEnd CartesianAngleValue OPTIONAL # } # ------------------------------------------------------------------------------ -# * -# * This DF describes a radial shape. The triangular or cone-shaped volume is -# * constructed by sweeping the provided range about the reference point between a horizontal start -# * and a horizontal end angle in positive angular direction of the WGS84 -# * coordinate system. A vertical opening angle may be provided in a Cartesian coordinate system with -# * the x-axis located in the North-East plane of the WGS84 coordinate system. The sensor height may -# * be provided to reflect characteristics of sensors mounted at an altitude (e.g. sensors mounted -# * above intersections). -# * -# * It shall include the following components: -# * -# * @field shapeReferencePoint: the optional reference point used for the definition of the shape, relative to an externally specified reference position. -# * If this component is absent, the externally specified reference position represents the shape's reference point. -# * -# * @field range: the radial range of the shape from the shape's reference point. -# * -# * @field stationaryHorizontalOpeningAngleStart: the orientation indicating the beginning of the -# * shape's horizontal opening angle in positive angular direction with respect to the -# * WGS84 coordinate system. -# * -# * @field stationaryHorizontalOpeningAngleEnd: The orientation indicating the end of the shape's -# * horizontal opening angle in positive angular direction with respect to the WGS84 coordinate system. -# * -# * @field verticalOpeningAngleStart: optional orientation indicating the beginning of the shape's -# * opening angle in positive angular direction of a Cartesian coordinate system with its x-axis -# * located in the north-east plane of the WGS84 coordinate system. -# * -# * @field verticalOpeningAngleEnd: optional orientation indicating the end of the shape's -# * vertical opening angle in positive angular direction of a Cartesian coordinate system with its x-axis -# * located in the north-east plane of the WGS84 coordinate system. -# * -# * @category GeoReference information -# * @revision: created in V2.1.1 -# CartesianPosition3d shape_reference_point bool shape_reference_point_is_present diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/RadialShapeDetails.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/RadialShapeDetails.msg index 18542a37b..0ab819370 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/RadialShapeDetails.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/RadialShapeDetails.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,36 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF describes a radial shape details. The triangular or cone-shaped volume is +# * constructed by sweeping the provided range about the reference point or about the offset +# * point (if provided) between a horizontal start and a horizontal end angle in positive angular direction of the WGS84 +# * coordinate system. A vertical opening angle may be provided in a Cartesian coordinate system with +# * the x-axis located in the North-East plane of the WGS84 coordinate system. The sensor height may +# * be provided to reflect characteristics of sensors mounted at an altitude (e.g. sensors mounted +# * above intersections). +# * +# * It shall include the following components: +# * +# * @field range: the radial range of the sensor from the reference point or sensor point offset. +# * +# * @field horizontalOpeningAngleStart: the orientation indicating the beginning of the +# * shape's horizontal opening angle in positive angular direction. +# * +# * @field horizontalOpeningAngleEnd: The orientation indicating the end of the shape's horizontal +# * opening angle in positive angular direction. +# * +# * @field verticalOpeningAngleStart: optional orientation indicating the beginning of the shape's +# * vertical opening angle in positive angular direction of a Cartesian coordinate system with its x-axis +# * located in the north-east plane of the WGS84 coordinate system. +# * +# * @field verticalOpeningAngleEnd: optional orientation indicating the end of the shape's +# * vertical opening angle in positive angular direction of a Cartesian coordinate system with its x-axis +# * located in the north-east plane of the WGS84 coordinate system. +# * +# * @category: Georeference information +# * @revision: created in V2.1.1 +# */ # RadialShapeDetails ::= SEQUENCE { # range StandardLength12b, # horizontalOpeningAngleStart CartesianAngleValue, @@ -34,36 +63,6 @@ # verticalOpeningAngleEnd CartesianAngleValue OPTIONAL # } # ------------------------------------------------------------------------------ -# * -# * This DF describes a radial shape details. The triangular or cone-shaped volume is -# * constructed by sweeping the provided range about the reference point or about the offset -# * point (if provided) between a horizontal start and a horizontal end angle in positive angular direction of the WGS84 -# * coordinate system. A vertical opening angle may be provided in a Cartesian coordinate system with -# * the x-axis located in the North-East plane of the WGS84 coordinate system. The sensor height may -# * be provided to reflect characteristics of sensors mounted at an altitude (e.g. sensors mounted -# * above intersections). -# * -# * It shall include the following components: -# * -# * @field range: the radial range of the sensor from the reference point or sensor point offset. -# * -# * @field horizontalOpeningAngleStart: the orientation indicating the beginning of the -# * shape's horizontal opening angle in positive angular direction. -# * -# * @field horizontalOpeningAngleEnd: The orientation indicating the end of the shape's horizontal -# * opening angle in positive angular direction. -# * -# * @field verticalOpeningAngleStart: optional orientation indicating the beginning of the shape's -# * vertical opening angle in positive angular direction of a Cartesian coordinate system with its x-axis -# * located in the north-east plane of the WGS84 coordinate system. -# * -# * @field verticalOpeningAngleEnd: optional orientation indicating the end of the shape's -# * vertical opening angle in positive angular direction of a Cartesian coordinate system with its x-axis -# * located in the north-east plane of the WGS84 coordinate system. -# * -# * @category: Georeference information -# * @revision: created in V2.1.1 -# StandardLength12b range diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/RadialShapes.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/RadialShapes.msg index 66b7e4183..434b4bbfd 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/RadialShapes.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/RadialShapes.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF describes a list of radial shapes. +# * +# * It shall include the following components: +# +# * @field refPointId: the identification of the reference point in case of a sensor mounted to trailer. Defaults to ITS ReferencePoint (0). +# * +# * @field xCoordinate: the x-coordinate of the offset point. +# * +# * @field yCoordinate: the y-coordinate of the offset point. +# * +# * @field zCoordinate: the optional z-coordinate of the offset point. +# * +# * @field radialShapesList: the list of radial shape details. +# * +# * @category: Georeference information +# * @revision: created in V2.1.1 +# */ # RadialShapes ::= SEQUENCE { # refPointId Identifier1B, # xCoordinate CartesianCoordinateSmall, @@ -34,24 +51,6 @@ # radialShapesList RadialShapesList # } # ------------------------------------------------------------------------------ -# * -# * This DF describes a list of radial shapes. -# * -# * It shall include the following components: -# -# * @field refPointId: the identification of the reference point in case of a sensor mounted to trailer. Defaults to ITS ReferencePoint (0). -# * -# * @field xCoordinate: the x-coordinate of the offset point. -# * -# * @field yCoordinate: the y-coordinate of the offset point. -# * -# * @field zCoordinate: the optional z-coordinate of the offset point. -# * -# * @field radialShapesList: the list of radial shape details. -# * -# * @category: Georeference information -# * @revision: created in V2.1.1 -# Identifier1B ref_point_id diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/RadialShapesList.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/RadialShapesList.msg index 9eadfbd04..c5da09ba9 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/RadialShapesList.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/RadialShapesList.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,15 +25,16 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * The DF contains a list of @ref RadialShapeDetails. +# * +# * @category: Georeference information +# * @revision: created in V2.1.1 +# */ # RadialShapesList ::= SEQUENCE SIZE(1..16,...) OF RadialShapeDetails # ------------------------------------------------------------------------------ -# * -# * The DF contains a list of @ref RadialShapeDetails. -# * -# * @category: Georeference information -# * @revision: created in V2.1.1 -# RadialShapeDetails[] array -int64 MIN_SIZE = 1 -int64 MAX_SIZE = 16 +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 16 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/RectangularShape.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/RectangularShape.msg index b2167c4a9..58d86ac9e 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/RectangularShape.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/RectangularShape.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,25 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents the shape of a rectangular area or a right rectangular prism that is centred on a reference position defined outside of the context of this DF. +# * +# * It shall include the following components: +# * +# * @field centerPoint: represents an optional offset point which the rectangle is centred on with respect to the reference position. +# * +# * @field semiLength: represents half the length of the rectangle. +# * +# * @field semiBreadth: represents half the breadth of the rectangle. +# * +# * @field orientation: represents the optional orientation of the lenght of the rectangle in the WGS84 coordinate system. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * +# * @field height: represents the optional height, present if the shape is a right rectangular prism with height extending in the positive z-axis. +# * +# * @category GeoReference information +# * @revision: created in V2.1.1 +# */ # RectangularShape ::= SEQUENCE { # centerPoint CartesianPosition3d OPTIONAL, # semiLength StandardLength12b, @@ -34,25 +52,6 @@ # height StandardLength12b OPTIONAL # } # ------------------------------------------------------------------------------ -# * -# * This DF represents the shape of a rectangular area or a right rectangular prism that is centred on a reference position defined outside of the context of this DF. -# * -# * It shall include the following components: -# * -# * @field centerPoint: represents an optional offset point which the rectangle is centred on with respect to the reference position. -# * -# * @field semiLength: represents half the length of the rectangle. -# * -# * @field semiBreadth: represents half the breadth of the rectangle. -# * -# * @field orientation: represents the optional orientation of the lenght of the rectangle in the WGS84 coordinate system. -# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. -# * -# * @field height: represents the optional height, present if the shape is a right rectangular prism with height extending in the positive z-axis. -# * -# * @category GeoReference information -# * @revision: created in V2.1.1 -# CartesianPosition3d center_point bool center_point_is_present diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ReferencePositionWithConfidence.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ReferencePositionWithConfidence.msg index bd7968edf..17963cfcb 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ReferencePositionWithConfidence.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/ReferencePositionWithConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,22 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * A position within a geographic coordinate system together with a confidence ellipse. +# * +# * It shall include the following components: +# * +# * @field latitude: the latitude of the geographical point. +# * +# * @field longitude: the longitude of the geographical point. +# * +# * @field positionConfidenceEllipse: the confidence ellipse associated to the geographical position. +# * +# * @field altitude: the altitude and an altitude accuracy of the geographical point. +# * +# * @category: GeoReference information +# * @revision: created in V2.1.1 based on @ref ReferencePosition but using @ref PositionConfidenceEllipse. +# */ # ReferencePositionWithConfidence ::= SEQUENCE { # latitude Latitude, # longitude Longitude, @@ -33,22 +48,6 @@ # altitude Altitude # } # ------------------------------------------------------------------------------ -# * -# * A position within a geographic coordinate system together with a confidence ellipse. -# * -# * It shall include the following components: -# * -# * @field latitude: the latitude of the geographical point. -# * -# * @field longitude: the longitude of the geographical point. -# * -# * @field positionConfidenceEllipse: the confidence ellipse associated to the geographical position. -# * -# * @field altitude: the altitude and an altitude accuracy of the geographical point. -# * -# * @category: GeoReference information -# * @revision: created in V2.1.1 based on @ref ReferencePosition but using @ref PositionConfidenceEllipse. -# Latitude latitude diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/RoadSegmentReferenceId.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/RoadSegmentReferenceId.msg index ac5b22576..65e82f985 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/RoadSegmentReferenceId.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/RoadSegmentReferenceId.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,25 +25,25 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents a unique id for a road segment +# * +# * It shall include the following components: +# * +# * @field region: the optional identifier of the entity that is responsible for the region in which the road segment is placed. +# * It is the duty of that entity to guarantee that the @ref Id is unique within the region. +# * +# * @field id: the identifier of the road segment. +# * +# * @note: when the component region is present, the RoadSegmentReferenceId is guaranteed to be globally unique. +# * @category: GeoReference information +# * @revision: created in V2.1.1 +# */ # RoadSegmentReferenceId ::= SEQUENCE { # region Identifier2B OPTIONAL, # id Identifier2B # } # ------------------------------------------------------------------------------ -# * -# * This DF represents a unique id for a road segment -# * -# * It shall include the following components: -# * -# * @field region: the optional identifier of the entity that is responsible for the region in which the road segment is placed. -# * It is the duty of that entity to guarantee that the @ref Id is unique within the region. -# * -# * @field id: the identifier of the road segment. -# * -# * @note: when the component region is present, the RoadSegmentReferenceId is guaranteed to be globally unique. -# * @category: GeoReference information -# * @revision: created in V2.1.1 -# Identifier2B region bool region_is_present diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SafeDistanceIndication.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SafeDistanceIndication.msg index 59ed7f295..9633f84e8 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SafeDistanceIndication.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SafeDistanceIndication.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,25 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF provides the safe distance indication of a traffic participant with other traffic participant(s). +# * +# * It shall include the following components: +# * +# * @field subjectStation: optionally indicates one "other" traffic participant identified by its ITS-S. +# * +# * @field safeDistanceIndicator: indicates whether the distance between the ego ITS-S and the traffic participant(s) is safe. +# * If subjectStation is present then it indicates whether the distance between the ego ITS-S and the traffic participant indicated in the component subjectStation is safe. +# * +# * @field timeToCollision: optionally indicated the time-to-collision calculated as sqrt(LaDi^2 + LoDi^2 + VDi^2/relative speed +# * and represented in the nearest 100 ms. This component may be present only if subjectStation is present. +# * +# * @note: the abbreviations used are Lateral Distance (LaD), Longitudinal Distance (LoD) and Vertical Distance (VD) +# * and their respective thresholds, Minimum Safe Lateral Distance (MSLaD), Minimum Safe Longitudinal Distance (MSLoD), and Minimum Safe Vertical Distance (MSVD). +# * +# * @category: Traffic information, Kinematic information +# * @revision: created in V2.1.1 +# */ # SafeDistanceIndication ::= SEQUENCE { # subjectStation StationId OPTIONAL, # safeDistanceIndicator SafeDistanceIndicator, @@ -33,25 +51,6 @@ # ... # } # ------------------------------------------------------------------------------ -# * -# * This DF provides the safe distance indication of a traffic participant with other traffic participant(s). -# * -# * It shall include the following components: -# * -# * @field subjectStation: optionally indicates one "other" traffic participant identified by its ITS-S. -# * -# * @field safeDistanceIndicator: indicates whether the distance between the ego ITS-S and the traffic participant(s) is safe. -# * If subjectStation is present then it indicates whether the distance between the ego ITS-S and the traffic participant indicated in the component subjectStation is safe. -# * -# * @field timeToCollision: optionally indicated the time-to-collision calculated as sqrt(LaDi^2 + LoDi^2 + VDi^2/relative speed -# * and represented in the nearest 100 ms. This component may be present only if subjectStation is present. -# * -# * @note: the abbreviations used are Lateral Distance (LaD), Longitudinal Distance (LoD) and Vertical Distance (VD) -# * and their respective thresholds, Minimum Safe Lateral Distance (MSLaD), Minimum Safe Longitudinal Distance (MSLoD), and Minimum Safe Vertical Distance (MSVD). -# * -# * @category: Traffic information, Kinematic information -# * @revision: created in V2.1.1 -# StationId subject_station bool subject_station_is_present diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SafeDistanceIndicator.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SafeDistanceIndicator.msg index 7789a8c10..e15f15579 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SafeDistanceIndicator.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SafeDistanceIndicator.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,21 +25,21 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates if a distance is safe. +# * +# * The value shall be set to: +# * - `FALSE` if the triple {LaD, LoD, VD} < {MSLaD, MSLoD, MSVD} is simultaneously satisfied with confidence level of 90 % or more, +# * - `TRUE` otherwise. +# * +# * @note: the abbreviations used are Lateral Distance (LaD), Longitudinal Distance (LoD) and Vertical Distance (VD) +# * and their respective thresholds, Minimum Safe Lateral Distance (MSLaD), Minimum Safe Longitudinal Distance (MSLoD), and Minimum Safe Vertical Distance (MSVD). +# * +# * @category: Traffic information, Kinematic information +# * @revision: created in V2.1.1 +# */ # SafeDistanceIndicator::= BOOLEAN # ------------------------------------------------------------------------------ -# * -# * This DE indicates if a distance is safe. -# * -# * The value shall be set to: -# * - `FALSE` if the triple {LaD, LoD, VD} < {MSLaD, MSLoD, MSVD} is simultaneously satisfied with confidence level of 90 % or more, -# * - `TRUE` otherwise. -# * -# * @note: the abbreviations used are Lateral Distance (LaD), Longitudinal Distance (LoD) and Vertical Distance (VD) -# * and their respective thresholds, Minimum Safe Lateral Distance (MSLaD), Minimum Safe Longitudinal Distance (MSLoD), and Minimum Safe Vertical Distance (MSVD). -# * -# * @category: Traffic information, Kinematic information -# * @revision: created in V2.1.1 -# bool value diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SemiAxisLength.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SemiAxisLength.msg index 9ca2696bc..322019bc3 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SemiAxisLength.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SemiAxisLength.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,31 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the horizontal position confidence value which represents the estimated absolute position accuracy, in one of the axis direction as defined in a shape of ellipse with a +# * confidence level of 95 %. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 4 094`) if the accuracy is equal to or less than n * 0,01 metre, +# * - `4 094` if the accuracy is out of range, i.e. greater than 4,093 m, +# * - `4 095` if the accuracy information is unavailable. +# * +# * The value 0 shall not be used. +# * +# * @note: The fact that a position coordinate value is received with confidence value set to `unavailable(4095)`. +# * can be caused by several reasons, such as: +# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, +# * - the sensor cannot calculate the accuracy due to lack of variables, or +# * - there has been a vehicle bus (e.g. CAN bus) error. +# * In all 3 cases above, the position coordinate value may be valid and used by the application. +# * If a position coordinate value is received and its confidence value is set to `outOfRange(4094)`, it means that +# * the position coordinate value is not valid and therefore cannot be trusted. Such value is not useful +# * for the application. +# +# * @unit 0,01 metre +# * @category: GeoReference Information +# * @revision: Description revised in V2.1.1 +# */ # SemiAxisLength ::= INTEGER{ # doNotUse (0), # outOfRange (4094), @@ -39,3 +63,4 @@ uint16 MAX = 4095 uint16 DO_NOT_USE = 0 uint16 OUT_OF_RANGE = 4094 uint16 UNAVAILABLE = 4095 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SequenceOfCartesianPosition3d.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SequenceOfCartesianPosition3d.msg index 4d2dc2e59..c2678e52d 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SequenceOfCartesianPosition3d.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SequenceOfCartesianPosition3d.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,15 +25,16 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF shall contain a list of DF @ref CartesianPosition3d. +# * +# * @category: GeoReference information +# * @revision: created in V2.1.1 +# */ # SequenceOfCartesianPosition3d ::= SEQUENCE (SIZE(1..16, ...)) OF CartesianPosition3d # ------------------------------------------------------------------------------ -# * -# * This DF shall contain a list of DF @ref CartesianPosition3d. -# * -# * @category: GeoReference information -# * @revision: created in V2.1.1 -# CartesianPosition3d[] array -int64 MIN_SIZE = 1 -int64 MAX_SIZE = 16 +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 16 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SequenceOfSafeDistanceIndication.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SequenceOfSafeDistanceIndication.msg index 14d46e2e3..76dbf3268 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SequenceOfSafeDistanceIndication.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SequenceOfSafeDistanceIndication.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,15 +25,16 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * The DF contains a list of DF @ref SafeDistanceIndication. +# * +# * @category: Traffic information, Kinematic information +# * @revision: created in V2.1.1 +# */ # SequenceOfSafeDistanceIndication ::= SEQUENCE(SIZE(1..8,...)) OF SafeDistanceIndication # ------------------------------------------------------------------------------ -# * -# * The DF contains a list of DF @ref SafeDistanceIndication. -# * -# * @category: Traffic information, Kinematic information -# * @revision: created in V2.1.1 -# SafeDistanceIndication[] array -int64 MIN_SIZE = 1 -int64 MAX_SIZE = 8 +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 8 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SequenceOfTrajectoryInterceptionIndication.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SequenceOfTrajectoryInterceptionIndication.msg index e49adaa3c..624157413 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SequenceOfTrajectoryInterceptionIndication.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SequenceOfTrajectoryInterceptionIndication.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,15 +25,16 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * The DF shall contain a list of DF @ref TrajectoryInterceptionIndication. +# * +# * @category: Traffic information, Kinematic information +# * @revision: created in V2.1.1 +# */ # SequenceOfTrajectoryInterceptionIndication ::= SEQUENCE (SIZE(1..8,...)) OF TrajectoryInterceptionIndication # ------------------------------------------------------------------------------ -# * -# * The DF shall contain a list of DF @ref TrajectoryInterceptionIndication. -# * -# * @category: Traffic information, Kinematic information -# * @revision: created in V2.1.1 -# TrajectoryInterceptionIndication[] array -int64 MIN_SIZE = 1 -int64 MAX_SIZE = 8 +uint8 MIN_SIZE = 1 +uint8 MAX_SIZE = 8 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Shape.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Shape.msg index 74733dcaa..8cc0f53a7 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Shape.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Shape.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,26 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF provides the definition of a geographical area or volume, based on different options. +# * +# * It is a choice of the following components: +# * +# * @field rectangular: definition of an rectangular area or a right rectangular prism (with a rectangular base) also called a cuboid, or informally a rectangular box. +# * +# * @field circular: definition of an area of circular shape or a right circular cylinder. +# * +# * @field polygonal: definition of an area of polygonal shape or a right prism. +# * +# * @field elliptical: definition of an area of elliptical shape or a right elliptical cylinder. +# * +# * @field radial: definition of a radial shape. +# * +# * @field radialList: definition of list of radial shapes. +# * +# * @category: GeoReference information +# * @revision: Created in V2.1.1 +# */ # Shape::= CHOICE { # rectangular RectangularShape, # circular CircularShape, @@ -36,26 +55,6 @@ # ... # } # ------------------------------------------------------------------------------ -# * -# * This DF provides the definition of a geographical area or volume, based on different options. -# * -# * It is a choice of the following components: -# * -# * @field rectangular: definition of an rectangular area or a right rectangular prism (with a rectangular base) also called a cuboid, or informally a rectangular box. -# * -# * @field circular: definition of an area of circular shape or a right circular cylinder. -# * -# * @field polygonal: definition of an area of polygonal shape or a right prism. -# * -# * @field elliptical: definition of an area of elliptical shape or a right elliptical cylinder. -# * -# * @field radial: definition of a radial shape. -# * -# * @field radialList: definition of list of radial shapes. -# * -# * @category: GeoReference information -# * @revision: Created in V2.1.1 -# uint8 choice diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Speed.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Speed.msg index 40d727dd6..cb129ed13 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Speed.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Speed.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,23 +25,23 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents the speed and associated confidence value. +# * +# * It shall include the following components: +# * +# * @field speedValue: the speed value. +# * +# * @field speedConfidence: the confidence value of the speed value. +# * +# * @category: Kinematic information +# * @revision: V1.3.1 +# */ # Speed ::= SEQUENCE { # speedValue SpeedValue, # speedConfidence SpeedConfidence # } # ------------------------------------------------------------------------------ -# * -# * This DF represents the speed and associated confidence value. -# * -# * It shall include the following components: -# * -# * @field speedValue: the speed value. -# * -# * @field speedConfidence: the confidence value of the speed value. -# * -# * @category: Kinematic information -# * @revision: V1.3.1 -# SpeedValue speed_value diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SpeedConfidence.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SpeedConfidence.msg index 47c72b18f..9b14b5bac 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SpeedConfidence.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SpeedConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,36 +25,37 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the speed confidence value which represents the estimated absolute accuracy of a speed value with a default confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `n` (`n > 0` and `n < 126`) if the confidence value is equal to or less than n * 0,01 m/s. +# * - `126` if the confidence value is out of range, i.e. greater than 1,25 m/s, +# * - `127` if the confidence value information is not available. +# * +# * @note: The fact that a speed value is received with confidence value set to `unavailable(127)` can be caused by several reasons, such as: +# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, +# * - the sensor cannot calculate the accuracy due to lack of variables, or +# * - there has been a vehicle bus (e.g. CAN bus) error. +# * In all 3 cases above, the speed value may be valid and used by the application. +# * +# * @note: If a speed value is received and its confidence value is set to `outOfRange(126)`, it means that the speed value is not valid +# * and therefore cannot be trusted. Such is not useful for the application. +# * +# * @unit: 0,01 m/s +# * @category: Vehicle information +# * @revision: Description revised in V2.1.1 +# */ # SpeedConfidence ::= INTEGER { # outOfRange (126), # unavailable (127) # } (1..127) # ------------------------------------------------------------------------------ -# * -# * This DE indicates the speed confidence value which represents the estimated absolute accuracy of a speed value with a default confidence level of 95 %. -# * If required, the confidence level can be defined by the corresponding standards applying this DE. -# * -# * The value shall be set to: -# * - `n` (`n > 0` and `n < 126`) if the confidence value is equal to or less than n * 0,01 m/s. -# * - `126` if the confidence value is out of range, i.e. greater than 1,25 m/s, -# * - `127` if the confidence value information is not available. -# * -# * @note: The fact that a speed value is received with confidence value set to `unavailable(127)` can be caused by several reasons, such as: -# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, -# * - the sensor cannot calculate the accuracy due to lack of variables, or -# * - there has been a vehicle bus (e.g. CAN bus) error. -# * In all 3 cases above, the speed value may be valid and used by the application. -# * -# * @note: If a speed value is received and its confidence value is set to `outOfRange(126)`, it means that the speed value is not valid -# * and therefore cannot be trusted. Such is not useful for the application. -# * -# * @unit: 0,01 m/s -# * @category: Vehicle information -# * @revision: Description revised in V2.1.1 -# uint8 value uint8 MIN = 1 uint8 MAX = 127 uint8 OUT_OF_RANGE = 126 uint8 UNAVAILABLE = 127 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SpeedValue.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SpeedValue.msg index 2f2340071..e55de1a67 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SpeedValue.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/SpeedValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,27 +25,27 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents a speed value, i.e. the magnitude of the velocity-vector. +# * +# * The value shall be set to: +# * - `0` in a standstill situation. +# * - `n` (`n > 0` and `n < 16 382`) if the applicable value is equal to or less than n x 0,01 m/s, and greater than (n-1) x 0,01 m/s, +# * - `16 382` for speed values greater than 163,81 m/s, +# * - `16 383` if the speed accuracy information is not available. +# * +# * @note: the definition of standstill is out of scope of the present document. +# * +# * @unit: 0,01 m/s +# * @category: Kinematic information +# * @revision: Description revised in V2.1.1 (the meaning of 16382 has changed slightly) +# */ # SpeedValue ::= INTEGER { # standstill (0), # outOfRange (16382), # unavailable (16383) # } (0..16383) # ------------------------------------------------------------------------------ -# * -# * This DE represents a speed value, i.e. the magnitude of the velocity-vector. -# * -# * The value shall be set to: -# * - `0` in a standstill situation. -# * - `n` (`n > 0` and `n < 16 382`) if the applicable value is equal to or less than n x 0,01 m/s, and greater than (n-1) x 0,01 m/s, -# * - `16 382` for speed values greater than 163,81 m/s, -# * - `16 383` if the speed accuracy information is not available. -# * -# * @note: the definition of standstill is out of scope of the present document. -# * -# * @unit: 0,01 m/s -# * @category: Kinematic information -# * @revision: Description revised in V2.1.1 (the meaning of 16382 has changed slightly) -# uint16 value uint16 MIN = 0 @@ -54,3 +53,4 @@ uint16 MAX = 16383 uint16 STANDSTILL = 0 uint16 OUT_OF_RANGE = 16382 uint16 UNAVAILABLE = 16383 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/StabilityChangeIndication.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/StabilityChangeIndication.msg index 898f36f93..7930bb35c 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/StabilityChangeIndication.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/StabilityChangeIndication.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,24 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF provides the indication of change in stability. +# * +# * It shall include the following components: +# * +# * @field lossProbability: the probability of stability loss. +# * +# * @field actionDeltaTime: the period over which the the probability of stability loss is estimated. +# * +# * @category: Kinematic information +# * @revision: V2.1.1 +# */ # StabilityChangeIndication ::= SEQUENCE { # lossProbability StabilityLossProbability, # actionDeltaTime DeltaTimeTenthOfSecond, # ... # } # ------------------------------------------------------------------------------ -# * -# * This DF provides the indication of change in stability. -# * -# * It shall include the following components: -# * -# * @field lossProbability: the probability of stability loss. -# * -# * @field actionDeltaTime: the period over which the the probability of stability loss is estimated. -# * -# * @category: Kinematic information -# * @revision: V2.1.1 -# StabilityLossProbability loss_probability diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/StabilityLossProbability.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/StabilityLossProbability.msg index 5157ad6a3..922ab7985 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/StabilityLossProbability.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/StabilityLossProbability.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,26 +25,26 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the estimated probability of a stability level and conversely also the probability of a stability loss. +# * +# * The value shall be set to: +# * - `0` to indicate an estimated probability of a loss of stability of 0 %, i.e. "stable", +# * - `n` (`n > 0` and `n < 50`) to indicate the actual stability level, +# * - `50` to indicate a estimated probability of a loss of stability of 100 %, i.e. "total loss of stability", +# * - the values between 51 and 62 are reserved for future use, +# * - `63`: this value indicates that the information is unavailable. +# * +# * @unit: 2 % +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# */ # StabilityLossProbability ::= INTEGER { # stable (0), # totalLossOfStability (50), # unavailable (63) # } (0..63) # ------------------------------------------------------------------------------ -# * -# * This DE indicates the estimated probability of a stability level and conversely also the probability of a stability loss. -# * -# * The value shall be set to: -# * - `0` to indicate an estimated probability of a loss of stability of 0 %, i.e. "stable", -# * - `n` (`n > 0` and `n < 50`) to indicate the actual stability level, -# * - `50` to indicate a estimated probability of a loss of stability of 100 %, i.e. "total loss of stability", -# * - the values between 51 and 62 are reserved for future use, -# * - `63`: this value indicates that the information is unavailable. -# * -# * @unit: 2 % -# * @category: Kinematic information -# * @revision: Created in V2.1.1 -# uint8 value uint8 MIN = 0 @@ -53,3 +52,4 @@ uint8 MAX = 63 uint8 STABLE = 0 uint8 TOTAL_LOSS_OF_STABILITY = 50 uint8 UNAVAILABLE = 63 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/StandardLength12b.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/StandardLength12b.msg index d701c64c3..7a91bcf2b 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/StandardLength12b.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/StandardLength12b.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,15 +25,15 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * The DE represents length as a measure of distance between points or as a dimension of an object or shape. +# * +# * @unit: 0,1 metre +# * @category: Basic information +# * @revision: Created in V2.1.1 +# */ # StandardLength12b::= INTEGER (0..4095) # ------------------------------------------------------------------------------ -# * -# * The DE represents length as a measure of distance between points or as a dimension of an object or shape. -# * -# * @unit: 0,1 metre -# * @category: Basic information -# * @revision: Created in V2.1.1 -# uint16 value uint16 MIN = 0 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/StationId.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/StationId.msg index 2e86839ea..1f0c6a776 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/StationId.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/StationId.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,15 +25,15 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the identifier of an ITS-S. +# * The ITS-S ID may be a pseudonym. It may change over space and/or over time. +# * +# * @category: Basic information +# * @revision: Created in V2.1.1 based on @ref StationID +# */ # StationId ::= INTEGER(0..4294967295) # ------------------------------------------------------------------------------ -# * -# * This DE represents the identifier of an ITS-S. -# * The ITS-S ID may be a pseudonym. It may change over space and/or over time. -# * -# * @category: Basic information -# * @revision: Created in V2.1.1 based on @ref StationID -# uint32 value uint32 MIN = 0 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/TrafficIslandPosition.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/TrafficIslandPosition.msg index 7a2e04308..e05a268b2 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/TrafficIslandPosition.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/TrafficIslandPosition.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,24 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * Ths DF represents the a position on a traffic island between two lanes. +# * +# * It shall include the following components: +# * +# * @field oneSide: represents one lane. +# * +# * @field otherSide: represents the other lane. +# * +# * @category: Road Topology information +# * @revision: Created in V2.1.1 +# */ # TrafficIslandPosition ::= SEQUENCE { # oneSide LanePositionAndType, # otherSide LanePositionAndType, # ... # } # ------------------------------------------------------------------------------ -# * -# * Ths DF represents the a position on a traffic island between two lanes. -# * -# * It shall include the following components: -# * -# * @field oneSide: represents one lane. -# * -# * @field otherSide: represents the other lane. -# * -# * @category: Road Topology information -# * @revision: Created in V2.1.1 -# LanePositionAndType one_side diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/TrafficParticipantType.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/TrafficParticipantType.msg index 52b5694ee..f4019966c 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/TrafficParticipantType.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/TrafficParticipantType.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,32 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the type of a traffic participant. +# * +# * The value shall be set to: +# * - 0 `unknown` - information about traffic participant is not provided, +# * - 1 `pedestrian` - human being not using a mechanical device for their trip (VRU profile 1), +# * - 2 `cyclist` - non-motorized unicycles, bicycles , tricycles, quadracycles (VRU profile 2), +# * - 3 `moped` - light motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class L1, L2 (VRU Profile 3), +# * - 4 `motorcycles` - motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class L3, L4, L5, L6, L7 (VRU Profile 3), +# * - 5 `passengerCar` - small passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M1, +# * - 6 `bus` - large passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M2, M3, +# * - 7 `lightTruck` - light Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N1, +# * - 8 `heavyTruck` - Heavy Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N2 and N3, +# * - 9 `trailer` - unpowered vehicle that is intended to be towed by a powered vehicle as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class O, +# * - 10 `specialVehicles` - vehicles which have special purposes other than the above (e.g. moving road works vehicle), +# * - 11 `tram` - vehicle which runs on tracks along public streets, +# * - 12 `lightVruVehicle` - human being traveling on light vehicle, incl. possible use of roller skates or skateboards (VRU profile 2), +# * - 13 `animal` - animal presenting a safety risk to other road users e.g. domesticated dog in a city or horse (VRU Profile 4), +# * - 14 `agricultural` - agricultural and forestry vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class T, +# * - 15 `roadSideUnit` - infrastructure typically positioned outside of the drivable roadway (e.g. on a gantry, on a pole, +# on a stationary road works trailer); the infrastructure is static during the entire operation period of the ITS-S (e.g. no stop and go activity), +# * - 16-255 - are reserved for future usage. +# * +# * @category: Communication information. +# * @revision: Created in V2.1.1 based on StationType +# */ # TrafficParticipantType ::= INTEGER { # unknown (0), # pedestrian (1), @@ -45,32 +70,6 @@ # roadSideUnit (15) # } (0..255) # ------------------------------------------------------------------------------ -# * -# * This DE represents the type of a traffic participant. -# * -# * The value shall be set to: -# * - 0 `unknown` - information about traffic participant is not provided, -# * - 1 `pedestrian` - human being not using a mechanical device for their trip (VRU profile 1), -# * - 2 `cyclist` - non-motorized unicycles, bicycles , tricycles, quadracycles (VRU profile 2), -# * - 3 `moped` - light motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class L1, L2 (VRU Profile 3), -# * - 4 `motorcycles` - motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class L3, L4, L5, L6, L7 (VRU Profile 3), -# * - 5 `passengerCar` - small passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M1, -# * - 6 `bus` - large passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M2, M3, -# * - 7 `lightTruck` - light Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N1, -# * - 8 `heavyTruck` - Heavy Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N2 and N3, -# * - 9 `trailer` - unpowered vehicle that is intended to be towed by a powered vehicle as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class O, -# * - 10 `specialVehicles` - vehicles which have special purposes other than the above (e.g. moving road works vehicle), -# * - 11 `tram` - vehicle which runs on tracks along public streets, -# * - 12 `lightVruVehicle` - human being traveling on light vehicle, incl. possible use of roller skates or skateboards (VRU profile 2), -# * - 13 `animal` - animal presenting a safety risk to other road users e.g. domesticated dog in a city or horse (VRU Profile 4), -# * - 14 `agricultural` - agricultural and forestry vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class T, -# * - 15 `roadSideUnit` - infrastructure typically positioned outside of the drivable roadway (e.g. on a gantry, on a pole, -# on a stationary road works trailer); the infrastructure is static during the entire operation period of the ITS-S (e.g. no stop and go activity), -# * - 16-255 - are reserved for future usage. -# * -# * @category: Communication information. -# * @revision: Created in V2.1.1 based on StationType -# uint8 value uint8 MIN = 0 @@ -91,3 +90,4 @@ uint8 LIGHT_VRU_VEHICLE = 12 uint8 ANIMAL = 13 uint8 AGRICULTURAL = 14 uint8 ROAD_SIDE_UNIT = 15 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/TrajectoryInterceptionConfidence.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/TrajectoryInterceptionConfidence.msg index fe8f649be..9a78ff6a2 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/TrajectoryInterceptionConfidence.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/TrajectoryInterceptionConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,18 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE defines the confidence level of the trajectoryInterceptionProbability. +# * +# * The value shall be set to: +# * - `0` - to indicate confidence level less than 50 %, +# * - `1` - to indicate confidence level greater than or equal to 50 % and less than 70 %, +# * - `2` - to indicate confidence level greater than or equal to 70 % and less than 90 %, +# * - `3` - to indicate confidence level greater than or equal to 90%. +# * +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# */ # TrajectoryInterceptionConfidence ::= INTEGER { # lessthan50percent (0), # between50and70Percent (1), @@ -33,18 +44,6 @@ # above90Percent (3) # } (0..3) # ------------------------------------------------------------------------------ -# * -# * This DE defines the confidence level of the trajectoryInterceptionProbability. -# * -# * The value shall be set to: -# * - `0` - to indicate confidence level less than 50 %, -# * - `1` - to indicate confidence level greater than or equal to 50 % and less than 70 %, -# * - `2` - to indicate confidence level greater than or equal to 70 % and less than 90 %, -# * - `3` - to indicate confidence level greater than or equal to 90%. -# * -# * @category: Kinematic information -# * @revision: Created in V2.1.1 -# uint8 value uint8 MIN = 0 @@ -53,3 +52,4 @@ uint8 LESSTHAN50PERCENT = 0 uint8 BETWEEN50AND70_PERCENT = 1 uint8 BETWEEN70AND90_PERCENT = 2 uint8 ABOVE90_PERCENT = 3 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/TrajectoryInterceptionIndication.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/TrajectoryInterceptionIndication.msg index b30c27a4e..b1d796f81 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/TrajectoryInterceptionIndication.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/TrajectoryInterceptionIndication.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,22 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF provides the trajectory interception indication of ego-VRU ITS-S with another ITS-Ss. +# * +# * It shall include the following components: +# * +# * @field subjectStation: indicates the subject station. +# * +# * @field trajectoryInterceptionProbability: indicates the propbability of the interception of the subject station trajectory +# * with the trajectory of the station indicated in the component subjectStation. +# * +# * @field trajectoryInterceptionConfidence: indicates the confidence of interception of the subject station trajectory +# * with the trajectory of the station indicated in the component subjectStation. +# * +# * @category: Vehicle information +# * @revision: Created in V2.1.1 +# */ # TrajectoryInterceptionIndication ::= SEQUENCE { # subjectStation StationId OPTIONAL, # trajectoryInterceptionProbability TrajectoryInterceptionProbability, @@ -33,22 +48,6 @@ # ... # } # ------------------------------------------------------------------------------ -# * -# * This DF provides the trajectory interception indication of ego-VRU ITS-S with another ITS-Ss. -# * -# * It shall include the following components: -# * -# * @field subjectStation: indicates the subject station. -# * -# * @field trajectoryInterceptionProbability: indicates the propbability of the interception of the subject station trajectory -# * with the trajectory of the station indicated in the component subjectStation. -# * -# * @field trajectoryInterceptionConfidence: indicates the confidence of interception of the subject station trajectory -# * with the trajectory of the station indicated in the component subjectStation. -# * -# * @category: Vehicle information -# * @revision: Created in V2.1.1 -# StationId subject_station bool subject_station_is_present diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/TrajectoryInterceptionProbability.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/TrajectoryInterceptionProbability.msg index 8dcb8eebd..882e74efe 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/TrajectoryInterceptionProbability.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/TrajectoryInterceptionProbability.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,24 +25,25 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE defines the probability that the ego trajectory intercepts with any other object's trajectory on the road. +# * +# * The value shall be set to: +# * - `n` (`n >= 0` and `n <= 50`) to indicate the actual probability, +# * - the values between 51 and 62 are reserved, +# * - `63`: to indicate that the information is unavailable. +# * +# * @unit: 2 % +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# */ # TrajectoryInterceptionProbability ::= INTEGER { # unavailable (63) # } (0..63) # ------------------------------------------------------------------------------ -# * -# * This DE defines the probability that the ego trajectory intercepts with any other object's trajectory on the road. -# * -# * The value shall be set to: -# * - `n` (`n >= 0` and `n <= 50`) to indicate the actual probability, -# * - the values between 51 and 62 are reserved, -# * - `63`: to indicate that the information is unavailable. -# * -# * @unit: 2 % -# * @category: Kinematic information -# * @revision: Created in V2.1.1 -# uint8 value uint8 MIN = 0 uint8 MAX = 63 uint8 UNAVAILABLE = 63 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/TurningDirection.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/TurningDirection.msg index 8c995cd2a..be3fdd997 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/TurningDirection.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/TurningDirection.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,21 +25,21 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE provides the turning direction. +# * +# * The value shall be set to: +# * - `left` for turning to te left. +# * - `right` for turing to the right. +# * +# * @category: Kinematic information +# * @revision: Created in V2.1.1 +# */ # TurningDirection::= ENUMERATED { # left, # right # } # ------------------------------------------------------------------------------ -# * -# * This DE provides the turning direction. -# * -# * The value shall be set to: -# * - `left` for turning to te left. -# * - `right` for turing to the right. -# * -# * @category: Kinematic information -# * @revision: Created in V2.1.1 -# uint8 value uint8 LEFT = 0 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VAM.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VAM.msg index 4abcbab8a..4d483020f 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VAM.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VAM.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -31,6 +30,7 @@ # vam VruAwareness # } # ------------------------------------------------------------------------------ + ItsPduHeaderVam header VruAwareness vam diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VamParameters.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VamParameters.msg index 27ccba104..78deb490a 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VamParameters.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VamParameters.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,17 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * @details VamParameters +# * The VAM payload includes the @ref BasicContainer and @ref VruHighFrequencyContainer. +# * The VAM payload may also include additional containers: @ref VruLowFrequencyContainer, +# * @ref VruClusterInformationContainer, @ref VruClusterOperationContainer and @ref VruMotionPredictionContainer. +# * The selection of the additional containers depends on the dissemination criteria, +# * e.g. _vruCluster_ or _MotionDynamicPrediction_ availability. +# * +# * @category: Communication information +# * @revision: V2.2.1 +# **/ # VamParameters ::= SEQUENCE { # basicContainer BasicContainer, # vruHighFrequencyContainer VruHighFrequencyContainer, @@ -36,17 +46,6 @@ # ... # } # ------------------------------------------------------------------------------ -# * -# * @details VamParameters -# * The VAM payload includes the @ref BasicContainer and @ref VruHighFrequencyContainer. -# * The VAM payload may also include additional containers: @ref VruLowFrequencyContainer, -# * @ref VruClusterInformationContainer, @ref VruClusterOperationContainer and @ref VruMotionPredictionContainer. -# * The selection of the additional containers depends on the dissemination criteria, -# * e.g. _vruCluster_ or _MotionDynamicPrediction_ availability. -# * -# * @category: Communication information -# * @revision: V2.2.1 -#* BasicContainer basic_container diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VerticalAcceleration.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VerticalAcceleration.msg index be3f77eee..9a2e0f9b9 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VerticalAcceleration.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VerticalAcceleration.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,25 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF indicates the vehicle acceleration at vertical direction and the associated confidence value. +# * +# * It shall include the following components: +# * +# * @field verticalAccelerationValue: vertical acceleration value at a point in time. +# * +# * @field verticalAccelerationConfidence: confidence value of the vertical acceleration value with a predefined confidence level. +# * +# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationComponent instead. +# * @category Vehicle information +# * @revision: Description revised in V2.1.1 +# */ # VerticalAcceleration ::= SEQUENCE { # verticalAccelerationValue VerticalAccelerationValue, # verticalAccelerationConfidence AccelerationConfidence # } # ------------------------------------------------------------------------------ -# four and more octets length -#* -# * This DF indicates the vehicle acceleration at vertical direction and the associated confidence value. -# * -# * It shall include the following components: -# * -# * @field verticalAccelerationValue: vertical acceleration value at a point in time. -# * -# * @field verticalAccelerationConfidence: confidence value of the vertical acceleration value with a predefined confidence level. -# * -# * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationComponent instead. -# * @category Vehicle information -# * @revision: Description revised in V2.1.1 -# VerticalAccelerationValue vertical_acceleration_value diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VerticalAccelerationValue.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VerticalAccelerationValue.msg index 9e9710e7f..19ad274a5 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VerticalAccelerationValue.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VerticalAccelerationValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,30 +25,30 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the vehicle acceleration at vertical direction in the centre of the mass of the empty vehicle. +# * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11. +# * +# * The value shall be set to: +# * - `-160` for acceleration values equal to or less than -16 m/s^2, +# * - `n` (`n > -160` and `n <= 0`) to indicate downwards acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, +# * - `n` (`n > 0` and `n < 160`) to indicate upwards acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, +# * - `160` for acceleration values greater than 15,9 m/s^2, +# * - `161` when the data is unavailable. +# * +# * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6. +# * +# * @category: Vehicle information +# * @unit: 0,1 m/s^2 +# * @revision: Desciption updated in V2.1.1 (the meaning of 160 has changed slightly). +# * +# */ # VerticalAccelerationValue ::= INTEGER { # negativeOutOfRange (-160), # positiveOutOfRange (160), # unavailable (161) # } (-160 .. 161) # ------------------------------------------------------------------------------ -# * -# * This DE represents the vehicle acceleration at vertical direction in the centre of the mass of the empty vehicle. -# * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11. -# * -# * The value shall be set to: -# * - `-160` for acceleration values equal to or less than -16 m/s^2, -# * - `n` (`n > -160` and `n <= 0`) to indicate downwards acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, -# * - `n` (`n > 0` and `n < 160`) to indicate upwards acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, -# * - `160` for acceleration values greater than 15,9 m/s^2, -# * - `161` when the data is unavailable. -# * -# * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6. -# * -# * @category: Vehicle information -# * @unit: 0,1 m/s^2 -# * @revision: Desciption updated in V2.1.1 (the meaning of 160 has changed slightly). -# * -# int16 value int16 MIN = -160 @@ -57,3 +56,4 @@ int16 MAX = 161 int16 NEGATIVE_OUT_OF_RANGE = -160 int16 POSITIVE_OUT_OF_RANGE = 160 int16 UNAVAILABLE = 161 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruAwareness.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruAwareness.msg index 8bc59aafa..7de96ed32 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruAwareness.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruAwareness.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,20 +25,20 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * @details VruAwareness +# * VAM payload. +# * +# * It includes the time stamp of the VAM and the VAM different containers +# * +# * @category: Communication information +# * @revision: V2.2.1 +# */ # VruAwareness ::= SEQUENCE { # generationDeltaTime GenerationDeltaTime, # vamParameters VamParameters # } # ------------------------------------------------------------------------------ -# * -# * @details VruAwareness -# * VAM payload. -# * -# * It includes the time stamp of the VAM and the VAM different containers -# * -# * @category: Communication information -# * @revision: V2.2.1 -# GenerationDeltaTime generation_delta_time diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruClusterInformation.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruClusterInformation.msg index ac8046383..08472b3dd 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruClusterInformation.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruClusterInformation.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,34 +25,33 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF provides information about a VRU cluster. +# * +# * It shall include the following components: +# * +# * @field clusterId: optional identifier of a VRU cluster . +# * +# * @field clusterBoundingBoxShape: optionally indicates the shape of the cluster bounding box. +# * +# * @field clusterCardinalitySize: indicates an estimation of the number of VRUs in the group, i.e. the known members in the cluster + 1 (for the cluster leader) . +# * +# * @field clusterProfiles: optionally identifies all the VRU profile types that are known to be within the cluster. +# * if this component is absent it means that the information is unavailable. +# * +# * @category: VRU information +# * @revision: Created in V2.1.1 +# */ # VruClusterInformation ::= SEQUENCE { # clusterId Identifier1B OPTIONAL, # clusterBoundingBoxShape Shape (WITH COMPONENTS{..., elliptical ABSENT, radial ABSENT, radialShapes ABSENT}) OPTIONAL, # ------------------------------------------------------------------------------ -# * -# * This DF provides information about a VRU cluster. -# * -# * It shall include the following components: -# * -# * @field clusterId: optional identifier of a VRU cluster . -# * -# * @field clusterBoundingBoxShape: optionally indicates the shape of the cluster bounding box. -# * -# * @field clusterCardinalitySize: indicates an estimation of the number of VRUs in the group, i.e. the known members in the cluster + 1 (for the cluster leader) . -# * -# * @field clusterProfiles: optionally identifies all the VRU profile types that are known to be within the cluster. -# * if this component is absent it means that the information is unavailable. -# * -# * @category: VRU information -# * @revision: Created in V2.1.1 -# Identifier1B cluster_id bool cluster_id_is_present Shape cluster_bounding_box_shape bool cluster_bounding_box_shape_is_present -int64 CLUSTER_BOUNDING_BOX_SHAPE_MIN = 0 CardinalNumber1B cluster_cardinality_size diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruClusterInformationContainer.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruClusterInformationContainer.msg index e6e76bb83..96a5f4d3f 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruClusterInformationContainer.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruClusterInformationContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,23 +25,22 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * @details VruClusterInformationContainer +# * The VRU Cluster Information container of the VAM provides the information/parameters relevant to the VRU cluster. +# * It is mandatory if the VAM is transmitted by VRU cluster leader. +# * It includes the following components (setting indications are specified in clause 7.3.5 of TS 103 300-3): +# * +# * @field vruClusterInformation: set of parammeters releated to the VRU cluster. +# * When transmitted by a VRU ITS-S, the clusterId and clusterBoundingBoxShape fields inside this DF shall be present. +# * The clusterBoundingBoxShape is positioned with respect to the position sent in the BasicContainer. +# * +# * @category: VRU information +# * @revision: V2.2.1 +# */ # VruClusterInformationContainer::= SEQUENCE{ # vruClusterInformation VruClusterInformation (WITH COMPONENTS{..., clusterId, clusterBoundingBoxShape PRESENT}), # ------------------------------------------------------------------------------ -# * -# * @details VruClusterInformationContainer -# * The VRU Cluster Information container of the VAM provides the information/parameters relevant to the VRU cluster. -# * It is mandatory if the VAM is transmitted by VRU cluster leader. -# * It includes the following components (setting indications are specified in clause 7.3.5 of TS 103 300-3): -# * -# * @field vruClusterInformation: set of parammeters releated to the VRU cluster. -# * When transmitted by a VRU ITS-S, the clusterId and clusterBoundingBoxShape fields inside this DF shall be present. -# * The clusterBoundingBoxShape is positioned with respect to the position sent in the BasicContainer. -# * -# * @category: VRU information -# * @revision: V2.2.1 -# VruClusterInformation vru_cluster_information -int64 VRU_CLUSTER_INFORMATION_MIN = 0 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruClusterOperationContainer.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruClusterOperationContainer.msg index 1706de64a..fbd84d54f 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruClusterOperationContainer.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruClusterOperationContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,21 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * @details VruClusterOperationContainer +# * The VRU Cluster Operation container of the VAM provides information relevant to change of cluster state and composition. +# * It is mandatory if the VAM is transmitted by a VRU joining, leaving or breaking up a cluster. +# * It includes the following components (setting indications are specified in clause 7.3.5 of TS 103 300-3). +# * At least one of the fields below shall be present if the container is present in the VAM: +# * +# * @field clusterJoinInfo: indicates the intent of an individual VAM transmitter to join a cluster. +# * @field clusterLeaveInfo : indicates that an individual VAM transmitter has recently left the VRU cluster. +# * @field clusterBreakupInfo: indicates the intent of a cluster VAM transmitter to stop sending cluster VAMs. +# * @field clusterIdChangeTimeInfo: indicates the intent of a cluster VAM transmitter to change cluster ID. +# * +# * @category: VRU information +# * @revision: V2.2.1 +# */ # VruClusterOperationContainer ::= SEQUENCE { # clusterJoinInfo ClusterJoinInfo OPTIONAL, # clusterLeaveInfo ClusterLeaveInfo OPTIONAL, @@ -34,21 +48,6 @@ # ... # } # ------------------------------------------------------------------------------ -# * -# * @details VruClusterOperationContainer -# * The VRU Cluster Operation container of the VAM provides information relevant to change of cluster state and composition. -# * It is mandatory if the VAM is transmitted by a VRU joining, leaving or breaking up a cluster. -# * It includes the following components (setting indications are specified in clause 7.3.5 of TS 103 300-3). -# * At least one of the fields below shall be present if the container is present in the VAM: -# * -# * @field clusterJoinInfo: indicates the intent of an individual VAM transmitter to join a cluster. -# * @field clusterLeaveInfo : indicates that an individual VAM transmitter has recently left the VRU cluster. -# * @field clusterBreakupInfo: indicates the intent of a cluster VAM transmitter to stop sending cluster VAMs. -# * @field clusterIdChangeTimeInfo: indicates the intent of a cluster VAM transmitter to change cluster ID. -# * -# * @category: VRU information -# * @revision: V2.2.1 -# ClusterJoinInfo cluster_join_info bool cluster_join_info_is_present diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruClusterProfiles.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruClusterProfiles.msg index 4ba09183f..144ef6cde 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruClusterProfiles.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruClusterProfiles.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,21 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE Identifies all the VRU profile types within a cluster. +# * It consist of a Bitmap encoding VRU profiles, to allow multiple profiles to be indicated in a single cluster (heterogeneous cluster if more than one profile). +# * +# * The corresponding bit shall be set to 1 under the following conditions: +# * - 0 `pedestrian` - indicates that the VRU cluster contains at least one pedestrian VRU, +# * - 1 `bicycle` - indicates that the VRU cluster contains at least one bicycle VRU member, +# * - 2 `motorcyclist`- indicates that the VRU cluster contains at least one motorcycle VRU member, +# * - 3 `animal` - indicates that the VRU cluster contains at least one animal VRU member. +# * +# * Otherwise, the corresponding bit shall be set to 0. +# * +# * @category: VRU information +# * @revision: Created in V2.1.1 +# */ # VruClusterProfiles ::= BIT STRING { # pedestrian (0), # bicyclist (1), @@ -33,21 +47,6 @@ # animal (3) # } (SIZE(4)) # ------------------------------------------------------------------------------ -# * -# * This DE Identifies all the VRU profile types within a cluster. -# * It consist of a Bitmap encoding VRU profiles, to allow multiple profiles to be indicated in a single cluster (heterogeneous cluster if more than one profile). -# * -# * The corresponding bit shall be set to 1 under the following conditions: -# * - 0 `pedestrian` - indicates that the VRU cluster contains at least one pedestrian VRU, -# * - 1 `bicycle` - indicates that the VRU cluster contains at least one bicycle VRU member, -# * - 2 `motorcyclist`- indicates that the VRU cluster contains at least one motorcycle VRU member, -# * - 3 `animal` - indicates that the VRU cluster contains at least one animal VRU member. -# * -# * Otherwise, the corresponding bit shall be set to 0. -# * -# * @category: VRU information -# * @revision: Created in V2.1.1 -# uint8[] value uint8 bits_unused @@ -56,3 +55,4 @@ uint8 BIT_INDEX_PEDESTRIAN = 0 uint8 BIT_INDEX_BICYCLIST = 1 uint8 BIT_INDEX_MOTORCYCLIST = 2 uint8 BIT_INDEX_ANIMAL = 3 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruDeviceUsage.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruDeviceUsage.msg index dc2901ca2..bf0cfe792 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruDeviceUsage.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruDeviceUsage.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the possible usage conditions of the VRU device. +# +# * - The value shall be set to: +# * - 0 `unavailable` - to indicate that the usage conditions are unavailable, +# * - 1 `other` - to indicate that the VRU device is in a state not defined below, +# * - 2 `idle` - to indicate that the human is currently not interacting with the device, +# * - 3 `listeningToAudio` - to indicate that any audio source other than calling is in use, +# * - 4 `typing` - to indicate that the human is texting or performaing any other manual input activity, +# * - 5 `calling` - to indicate that the VRU device is currently receiving a call, +# * - 6 `playingGames` - to indicate that the human is playing games, +# * - 7 `reading` - to indicate that the human is reading on the VRU device, +# * - 8 `viewing` - to indicate that the human is watching dynamic content, including following navigation prompts, viewing videos or other visual contents that are not static. +# * - value 9 to 255 - are reserved for future usage. Value 255 set to "max" in order to bound the size of the encoded field. +# * +# * @category: VRU information +# * @revision: Created in V2.1.1 +# */ # VruDeviceUsage ::= ENUMERATED { # unavailable (0), # other (1), @@ -39,24 +56,6 @@ # max (255) # } # ------------------------------------------------------------------------------ -# * -# * This DE represents the possible usage conditions of the VRU device. -# -# * - The value shall be set to: -# * - 0 `unavailable` - to indicate that the usage conditions are unavailable, -# * - 1 `other` - to indicate that the VRU device is in a state not defined below, -# * - 2 `idle` - to indicate that the human is currently not interacting with the device, -# * - 3 `listeningToAudio` - to indicate that any audio source other than calling is in use, -# * - 4 `typing` - to indicate that the human is texting or performaing any other manual input activity, -# * - 5 `calling` - to indicate that the VRU device is currently receiving a call, -# * - 6 `playingGames` - to indicate that the human is playing games, -# * - 7 `reading` - to indicate that the human is reading on the VRU device, -# * - 8 `viewing` - to indicate that the human is watching dynamic content, including following navigation prompts, viewing videos or other visual contents that are not static. -# * - value 9 to 255 - are reserved for future usage. Value 255 set to "max" in order to bound the size of the encoded field. -# * -# * @category: VRU information -# * @revision: Created in V2.1.1 -# uint8 value uint8 UNAVAILABLE = 0 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruEnvironment.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruEnvironment.msg index 72473e393..e2220307b 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruEnvironment.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruEnvironment.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,21 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the possible VRU environment conditions. +# * +# * - The value shall be set to: +# * - 0 `unavailable` - to indicate that the information on the type of environment is unavailable, +# * - 1 `intersectionCrossing` - to indicate that the VRU is on an intersection or crossing, +# * - 2 `zebraCrossing` - to indicate that the VRU is on a zebra crossing (crosswalk), +# * - 3 `sidewalk` - to indicate that the VRU is on a sidewalk, +# * - 4 `onVehicleRoad` - to indicate that the VRU is on a traffic lane, +# * - 5 `protectedGeographicArea`- to indicate that the VRU is in a protected area. +# * - value 5 to 255 - are reserved for future usage. Value 255 is set to "max" in order to bound the size of the encoded field. +# * +# * @category: VRU information +# * @revision: Created in V2.1.1 +# */ # VruEnvironment ::= ENUMERATED { # unavailable (0), # intersectionCrossing (1), @@ -36,21 +50,6 @@ # max (255) # } # ------------------------------------------------------------------------------ -# * -# * This DE represents the possible VRU environment conditions. -# * -# * - The value shall be set to: -# * - 0 `unavailable` - to indicate that the information on the type of environment is unavailable, -# * - 1 `intersectionCrossing` - to indicate that the VRU is on an intersection or crossing, -# * - 2 `zebraCrossing` - to indicate that the VRU is on a zebra crossing (crosswalk), -# * - 3 `sidewalk` - to indicate that the VRU is on a sidewalk, -# * - 4 `onVehicleRoad` - to indicate that the VRU is on a traffic lane, -# * - 5 `protectedGeographicArea`- to indicate that the VRU is in a protected area. -# * - value 5 to 255 - are reserved for future usage. Value 255 is set to "max" in order to bound the size of the encoded field. -# * -# * @category: VRU information -# * @revision: Created in V2.1.1 -# uint8 value uint8 UNAVAILABLE = 0 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruExteriorLights.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruExteriorLights.msg index 723a02dd5..34ba2e08f 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruExteriorLights.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruExteriorLights.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,25 +25,25 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents the status of the exterior light switches of a VRU. +# * This DF is an extension of the vehicular DE @ref ExteriorLights. +# * +# * It shall include the following components: +# * +# * @field vehicular: represents the status of the exterior light switches of a road vehicle. +# * +# * @field vruSpecific: represents the status of the exterior light switches of a VRU. +# * +# * @category: VRU information +# * @revision: created in V2.1.1 +# */ # VruExteriorLights ::= SEQUENCE { # vehicular ExteriorLights, # vruSpecific VruSpecificExteriorLights, # ... # } # ------------------------------------------------------------------------------ -# * -# * This DF represents the status of the exterior light switches of a VRU. -# * This DF is an extension of the vehicular DE @ref ExteriorLights. -# * -# * It shall include the following components: -# * -# * @field vehicular: represents the status of the exterior light switches of a road vehicle. -# * -# * @field vruSpecific: represents the status of the exterior light switches of a VRU. -# * -# * @category: VRU information -# * @revision: created in V2.1.1 -# ExteriorLights vehicular diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruHighFrequencyContainer.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruHighFrequencyContainer.msg index 37ffa70ca..87ce74f12 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruHighFrequencyContainer.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruHighFrequencyContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,41 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * @details VruHighFrequencyContainer +# * The VRU HF container of the VAM contains potentially fast-changing status information of the VRU ITS-S. +# * It includes the following components (setting indications are specified in clause 7.3.3 of TS 103 300-3): +# * +# * @field heading: heading and heading confidence of the originating VRU with regards to the true north. +# * @field speed: speed in moving direction and speed confidence of the originating VRU. +# * @field longitudinalAcceleration: longitudinal acceleration of the originating VRU. +# * @field curvature: related to the actual trajectory of the originating VRU vehicle. +# _(recommended for VRU Profile 2)_ +# * @field curvatureCalculationMode: indicates whether vehicle yaw-rate is used in the calculation of +# * the curvature of the VRU vehicle ITS-S that originates the VAM. _(recommended for VRU Profile 2)_ +# * @field yawRate: yaw rate of originating VRU vehicle. _(recommended for VRU Profile 2)_ +# * @field lateralAcceleration: originating VRU lateral acceleration in the street plane. +# * This field shall be present if the data is available at the originating ITS-S. _(recommended for VRU Profile 2)_ +# * @field verticalAcceleration: vertical acceleration of the originating VRU. +# * This field shall be present if the data is available at the originating ITS-S. +# * @field vruLanePosition: lane position of the referencePosition of a VRU, which is either a VRU-specific non-traffic lane +# * or a standard traffic lane. This field shall be present if the data is available at the originating ITS-S. +# * @field environment: provides contextual awareness of the VRU among other road users. +# * This field shall be present only if the data is available at the originating ITS-S. +# * @field movementControl: indicates the mechanism used by the VRU to control the longitudinal movement of the VRU vehicle. +# * This field shall be present only if the data is available at the originating ITS-S. _(recommended for VRU Profile 2)_ +# * @field orientation : complements the dimensions of the VRU vehicle by defining the angle of the VRU vehicle longitudinal +# * axis with regards to the WGS84 north. _(recommended for VRU Profile 2)_ +# * @field rollAngle: provides the angle and angle accuracy between the ground plane and the current orientation of a vehicle's +# * y-axis with respect to the ground plane about the x-axis according to the ISO 8855. +# * This field shall be present only if the data is available at the originating ITS-S. _(recommended for VRU Profile 2)_ +# * @field deviceUsage: provides indications from the personal device about the potential +# * activity of the VRU. This field shall be present only if the data is available at the originating ITS-S. +# * _(recommended for VRU Profile 1)_ +# * +# * @category: VRU information +# * @revision: V2.2.1 +# */ # VruHighFrequencyContainer ::= SEQUENCE { # heading Wgs84Angle, # speed Speed, @@ -44,41 +78,6 @@ # ... # } # ------------------------------------------------------------------------------ -# * -# * @details VruHighFrequencyContainer -# * The VRU HF container of the VAM contains potentially fast-changing status information of the VRU ITS-S. -# * It includes the following components (setting indications are specified in clause 7.3.3 of TS 103 300-3): -# * -# * @field heading: heading and heading confidence of the originating VRU with regards to the true north. -# * @field speed: speed in moving direction and speed confidence of the originating VRU. -# * @field longitudinalAcceleration: longitudinal acceleration of the originating VRU. -# * @field curvature: related to the actual trajectory of the originating VRU vehicle. -# _(recommended for VRU Profile 2)_ -# * @field curvatureCalculationMode: indicates whether vehicle yaw-rate is used in the calculation of -# * the curvature of the VRU vehicle ITS-S that originates the VAM. _(recommended for VRU Profile 2)_ -# * @field yawRate: yaw rate of originating VRU vehicle. _(recommended for VRU Profile 2)_ -# * @field lateralAcceleration: originating VRU lateral acceleration in the street plane. -# * This field shall be present if the data is available at the originating ITS-S. _(recommended for VRU Profile 2)_ -# * @field verticalAcceleration: vertical acceleration of the originating VRU. -# * This field shall be present if the data is available at the originating ITS-S. -# * @field vruLanePosition: lane position of the referencePosition of a VRU, which is either a VRU-specific non-traffic lane -# * or a standard traffic lane. This field shall be present if the data is available at the originating ITS-S. -# * @field environment: provides contextual awareness of the VRU among other road users. -# * This field shall be present only if the data is available at the originating ITS-S. -# * @field movementControl: indicates the mechanism used by the VRU to control the longitudinal movement of the VRU vehicle. -# * This field shall be present only if the data is available at the originating ITS-S. _(recommended for VRU Profile 2)_ -# * @field orientation : complements the dimensions of the VRU vehicle by defining the angle of the VRU vehicle longitudinal -# * axis with regards to the WGS84 north. _(recommended for VRU Profile 2)_ -# * @field rollAngle: provides the angle and angle accuracy between the ground plane and the current orientation of a vehicle's -# * y-axis with respect to the ground plane about the x-axis according to the ISO 8855. -# * This field shall be present only if the data is available at the originating ITS-S. _(recommended for VRU Profile 2)_ -# * @field deviceUsage: provides indications from the personal device about the potential -# * activity of the VRU. This field shall be present only if the data is available at the originating ITS-S. -# * _(recommended for VRU Profile 1)_ -# * -# * @category: VRU information -# * @revision: V2.2.1 -# Wgs84Angle heading diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruLowFrequencyContainer.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruLowFrequencyContainer.msg index 2b1f38fa2..c9857726a 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruLowFrequencyContainer.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruLowFrequencyContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,20 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * @details VruLowFrequencyContainer +# * The VRU LF container of the VAM contains potentially slow-changing information of the VRU ITS-S. +# * It is mandatory with higher periodicity as specified in clause 6.2 or when VRU cluster operation container is present. +# * It includes the following components (setting indications are specified in clause 7.3.4 of TS 103 300-3): +# * +# * @field profileAndSubprofile: profile of the ITS-S that originates the VAM, including sub-profile information. +# * @field sizeClass: information about the size of the VRU. +# * @field exteriorLights: status of the most important exterior lights switches of the VRU ITS-S that originates the VAM. +# * _(conditional mandatory as specified in clause 7.3.4 of TS 103 300-3)_ +# * +# * @category: VRU information +# * @revision: V2.2.1 +# */ # VruLowFrequencyContainer ::= SEQUENCE { # profileAndSubprofile VruProfileAndSubprofile, # sizeClass VruSizeClass OPTIONAL, @@ -33,20 +46,6 @@ # ... # } # ------------------------------------------------------------------------------ -# * -# * @details VruLowFrequencyContainer -# * The VRU LF container of the VAM contains potentially slow-changing information of the VRU ITS-S. -# * It is mandatory with higher periodicity as specified in clause 6.2 or when VRU cluster operation container is present. -# * It includes the following components (setting indications are specified in clause 7.3.4 of TS 103 300-3): -# * -# * @field profileAndSubprofile: profile of the ITS-S that originates the VAM, including sub-profile information. -# * @field sizeClass: information about the size of the VRU. -# * @field exteriorLights: status of the most important exterior lights switches of the VRU ITS-S that originates the VAM. -# * _(conditional mandatory as specified in clause 7.3.4 of TS 103 300-3)_ -# * -# * @category: VRU information -# * @revision: V2.2.1 -# VruProfileAndSubprofile profile_and_subprofile diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruMotionPredictionContainer.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruMotionPredictionContainer.msg index 618dfc7de..2a66bf868 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruMotionPredictionContainer.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruMotionPredictionContainer.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,31 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * @details VruMotionPredictionContainer +# * The VRU Motion Prediction container of the VAM carries the past and future motion state information of the VRU. +# * It includes the following components (setting indications are specified in clause 7.3.6 of TS 103 300-3). +# * At least one of the fields below shall be present if the container is present in the VAM: +# * +# * @field pathHistory: represents the VRU's recent movement over some past time and/or distance. +# * It consists of a list of path points. +# * @field pathPrediction: provides the set of predicted locations of the ITS-S, confidence values +# * and the corresponding future time instants. +# * @field safeDistance: provides indication of safe distance between an ego-VRU and up to 8 other ITS-S +# * or entity on the road to indicate whether the ego-VRU is at a safe distance (that is less likely to +# * physically collide) from another ITS-S or entity on the road. +# * @field trajectoryInterceptionIndication: provides the indication for possible trajectory interception +# * with up to 8 VRUs or other objects on the road.. +# * @field accelerationChangeIndication: provides an acceleration change indication of the VRU. +# * When present this DF indicates an anticipated change in the VRU speed for period of actionDeltaTime. +# * @field headingChangeIndication: provides additional data elements associated to heading change indicators +# * such as a change of travel direction (left or right). +# * The direction change action is performed for a period of actionDeltaTime. +# * @field stabilityChangeIndication: provides an estimation of the VRU stability. +# * +# * @category: GeoReference information, VRU information +# * @revision: V2.2.1 +# */ # VruMotionPredictionContainer ::= SEQUENCE { # pathHistory PathHistory OPTIONAL, # pathPrediction PathPredicted OPTIONAL, @@ -37,31 +61,6 @@ # ... # } # ------------------------------------------------------------------------------ -# * -# * @details VruMotionPredictionContainer -# * The VRU Motion Prediction container of the VAM carries the past and future motion state information of the VRU. -# * It includes the following components (setting indications are specified in clause 7.3.6 of TS 103 300-3). -# * At least one of the fields below shall be present if the container is present in the VAM: -# * -# * @field pathHistory: represents the VRU's recent movement over some past time and/or distance. -# * It consists of a list of path points. -# * @field pathPrediction: provides the set of predicted locations of the ITS-S, confidence values -# * and the corresponding future time instants. -# * @field safeDistance: provides indication of safe distance between an ego-VRU and up to 8 other ITS-S -# * or entity on the road to indicate whether the ego-VRU is at a safe distance (that is less likely to -# * physically collide) from another ITS-S or entity on the road. -# * @field trajectoryInterceptionIndication: provides the indication for possible trajectory interception -# * with up to 8 VRUs or other objects on the road.. -# * @field accelerationChangeIndication: provides an acceleration change indication of the VRU. -# * When present this DF indicates an anticipated change in the VRU speed for period of actionDeltaTime. -# * @field headingChangeIndication: provides additional data elements associated to heading change indicators -# * such as a change of travel direction (left or right). -# * The direction change action is performed for a period of actionDeltaTime. -# * @field stabilityChangeIndication: provides an estimation of the VRU stability. -# * -# * @category: GeoReference information, VRU information -# * @revision: V2.2.1 -# PathHistory path_history bool path_history_is_present diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruMovementControl.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruMovementControl.msg index ada04ff85..78a9b6337 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruMovementControl.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruMovementControl.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,22 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the status of the possible human control over a VRU vehicle. +# * +# * The value shall be set to: +# * - 0 `unavailable` - to indicate that the information is unavailable, +# * - 1 `braking` - to indicate that the VRU is braking, +# * - 2 `hardBraking` - to indicate that the VRU is braking hard, +# * - 3 `stopPedaling` - to indicate that the VRU stopped pedaling, +# * - 4 `brakingAndStopPedaling` - to indicate that the VRU stopped pedaling an is braking, +# * - 5 `hardBrakingAndStopPedaling` - to indicate that the VRU stopped pedaling an is braking hard, +# * - 6 `noReaction` - to indicate that the VRU is not changing its behavior. +# * - 7 to 255 - are reserved for future usage. Value 255 is set to "max" in order to bound the size of the encoded field. +# * +# * @category: VRU information +# * @revision: Created in V2.1.1 +# */ # VruMovementControl ::= ENUMERATED { # unavailable (0), # braking (1), @@ -37,22 +52,6 @@ # max (255) # } # ------------------------------------------------------------------------------ -# * -# * This DE indicates the status of the possible human control over a VRU vehicle. -# * -# * The value shall be set to: -# * - 0 `unavailable` - to indicate that the information is unavailable, -# * - 1 `braking` - to indicate that the VRU is braking, -# * - 2 `hardBraking` - to indicate that the VRU is braking hard, -# * - 3 `stopPedaling` - to indicate that the VRU stopped pedaling, -# * - 4 `brakingAndStopPedaling` - to indicate that the VRU stopped pedaling an is braking, -# * - 5 `hardBrakingAndStopPedaling` - to indicate that the VRU stopped pedaling an is braking hard, -# * - 6 `noReaction` - to indicate that the VRU is not changing its behavior. -# * - 7 to 255 - are reserved for future usage. Value 255 is set to "max" in order to bound the size of the encoded field. -# * -# * @category: VRU information -# * @revision: Created in V2.1.1 -# uint8 value uint8 UNAVAILABLE = 0 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruProfileAndSubprofile.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruProfileAndSubprofile.msg index 477c86f88..2e6a55a2e 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruProfileAndSubprofile.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruProfileAndSubprofile.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,21 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF indicates the profile of a VRU including sub-profile information +# * It identifies four options corresponding to the four types of VRU profiles specified in ETSI TS 103 300-2 [18]: +# * +# * @field pedestrian: VRU Profile 1 - Pedestrian. +# * +# * @field bicyclistAndLightVruVehicle: VRU Profile 2 - Bicyclist. +# * +# * @field motorcyclist: VRU Profile 3 - Motorcyclist. +# * +# * @field animal: VRU Profile 4 - Animal. +# * +# * @category: VRU information +# * @revision: Created in V2.1.1 +# */ # VruProfileAndSubprofile ::= CHOICE { # pedestrian VruSubProfilePedestrian, # bicyclistAndLightVruVehicle VruSubProfileBicyclist, @@ -34,21 +48,6 @@ # ... # } # ------------------------------------------------------------------------------ -# * -# * This DF indicates the profile of a VRU including sub-profile information -# * It identifies four options corresponding to the four types of VRU profiles specified in ETSI TS 103 300-2 [18]: -# * -# * @field pedestrian: VRU Profile 1 - Pedestrian. -# * -# * @field bicyclistAndLightVruVehicle: VRU Profile 2 - Bicyclist. -# * -# * @field motorcyclist: VRU Profile 3 - Motorcyclist. -# * -# * @field animal: VRU Profile 4 - Animal. -# * -# * @category: VRU information -# * @revision: Created in V2.1.1 -# uint8 choice diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruSizeClass.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruSizeClass.msg index 8c3cc15e4..b1c016188 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruSizeClass.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruSizeClass.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,19 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the approximate size of a VRU including the VRU vehicle used. +# * +# * The value shall be set to: +# * - 0 `unavailable` - to indicate that there is no matched size class or due to privacy reasons in profile 1, +# * - 1 `low` - to indicate that the VRU size class is low depending on the VRU profile, +# * - 2 `medium` - to indicate that the VRU size class is medium depending on the VRU profile, +# * - 3 `high` - to indicate that the VRU size class is high depending on the VRU profile. +# * - 4 to 15 - are reserved for future usage. Value 15 is set to "max" in order to bound the size of the encoded field. +# * +# * @category: VRU information +# * @revision: Created in V2.1.1 +# */ # VruSizeClass ::= ENUMERATED { # unavailable (0), # low (1), @@ -34,19 +46,6 @@ # max (15) # } # ------------------------------------------------------------------------------ -# * -# * This DE indicates the approximate size of a VRU including the VRU vehicle used. -# * -# * The value shall be set to: -# * - 0 `unavailable` - to indicate that there is no matched size class or due to privacy reasons in profile 1, -# * - 1 `low` - to indicate that the VRU size class is low depending on the VRU profile, -# * - 2 `medium` - to indicate that the VRU size class is medium depending on the VRU profile, -# * - 3 `high` - to indicate that the VRU size class is high depending on the VRU profile. -# * - 4 to 15 - are reserved for future usage. Value 15 is set to "max" in order to bound the size of the encoded field. -# * -# * @category: VRU information -# * @revision: Created in V2.1.1 -# uint8 value uint8 UNAVAILABLE = 0 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruSpecificExteriorLights.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruSpecificExteriorLights.msg index 53f2016d4..8deb0a4f1 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruSpecificExteriorLights.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruSpecificExteriorLights.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,25 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE describes the status of the exterior light switches of a VRU. +# * +# * The value of each bit indicates the state of the switch, which commands the corresponding light. +# * The bit corresponding to a specific light shall be set to 1, when the corresponding switch is turned on, either manually by the driver or VRU +# * or automatically by a vehicle or VRU system: +# * - 0 `unavailable` - indicates no information available, +# * - 1 `backFlashLight ` - indicates the status of the back flash light, +# * - 2 `helmetLight` - indicates the status of the helmet light, +# * - 3 `armLight` - indicates the status of the arm light, +# * - 4 `legLight` - indicates the status of the leg light, +# * - 5 `wheelLight` - indicates the status of the wheel light. +# * - Bits 6 to 8 - are reserved for future use. +# * The bit values do not indicate if the corresponding lamps are alight or not. +# * If VRU is not equipped with a certain light or if the light switch status information is not available, the corresponding bit shall be set to 0. +# * +# * @category: VRU information +# * @revision: Created in V2.1.1 +# */ # VruSpecificExteriorLights ::= BIT STRING { # unavailable (0), # backFlashLight (1), @@ -35,25 +53,6 @@ # wheelLight (5) # } (SIZE(8)) # ------------------------------------------------------------------------------ -# * -# * This DE describes the status of the exterior light switches of a VRU. -# * -# * The value of each bit indicates the state of the switch, which commands the corresponding light. -# * The bit corresponding to a specific light shall be set to 1, when the corresponding switch is turned on, either manually by the driver or VRU -# * or automatically by a vehicle or VRU system: -# * - 0 `unavailable` - indicates no information available, -# * - 1 `backFlashLight ` - indicates the status of the back flash light, -# * - 2 `helmetLight` - indicates the status of the helmet light, -# * - 3 `armLight` - indicates the status of the arm light, -# * - 4 `legLight` - indicates the status of the leg light, -# * - 5 `wheelLight` - indicates the status of the wheel light. -# * - Bits 6 to 8 - are reserved for future use. -# * The bit values do not indicate if the corresponding lamps are alight or not. -# * If VRU is not equipped with a certain light or if the light switch status information is not available, the corresponding bit shall be set to 0. -# * -# * @category: VRU information -# * @revision: Created in V2.1.1 -# uint8[] value uint8 bits_unused @@ -64,3 +63,4 @@ uint8 BIT_INDEX_HELMET_LIGHT = 2 uint8 BIT_INDEX_ARM_LIGHT = 3 uint8 BIT_INDEX_LEG_LIGHT = 4 uint8 BIT_INDEX_WHEEL_LIGHT = 5 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruSubProfileAnimal.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruSubProfileAnimal.msg index 04a48eecf..65f167aee 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruSubProfileAnimal.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruSubProfileAnimal.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,19 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the profile of an animal +# * +# * The value shall be set to: +# * - 0 `unavailable` - to indicate that the information is unavailable, +# * - 1 `wild-animal` - to indicate a animal living in the wildness, +# * - 2 `farm-animal` - to indicate an animal beloning to a farm, +# * - 3 `service-animal` - to indicate an animal that supports a human being. +# * - 4 to 15 - are reserved for future usage. Value 15 is set to "max" in order to bound the size of the encoded field. +# * +# * @category: VRU information +# * @revision: Created in V2.1.1 +# */ # VruSubProfileAnimal ::= ENUMERATED { # unavailable (0), # wild-animal (1), @@ -34,19 +46,6 @@ # max (15) # } # ------------------------------------------------------------------------------ -# * -# * This DE indicates the profile of an animal -# * -# * The value shall be set to: -# * - 0 `unavailable` - to indicate that the information is unavailable, -# * - 1 `wild-animal` - to indicate a animal living in the wildness, -# * - 2 `farm-animal` - to indicate an animal beloning to a farm, -# * - 3 `service-animal` - to indicate an animal that supports a human being. -# * - 4 to 15 - are reserved for future usage. Value 15 is set to "max" in order to bound the size of the encoded field. -# * -# * @category: VRU information -# * @revision: Created in V2.1.1 -# uint8 value uint8 UNAVAILABLE = 0 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruSubProfileBicyclist.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruSubProfileBicyclist.msg index 6992f8fe1..629a6b9ff 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruSubProfileBicyclist.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruSubProfileBicyclist.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the profile of a VRU and its light VRU vehicle / mounted animal. +# * +# * The value shall be set to: +# * - 0 `unavailable` - to indicate that the information is unavailable, +# * - 1 `bicyclist ` - to indicate a cycle and bicyclist, +# * - 2 `wheelchair-user` - to indicate a wheelchair and its user, +# * - 3 `horse-and-rider` - to indicate a horse and rider, +# * - 4 `rollerskater` - to indicate a rolleskater and skater, +# * - 5 `e-scooter` - to indicate an e-scooter and rider, +# * - 6 `personal-transporter` - to indicate a personal-transporter and rider, +# * - 7 `pedelec` - to indicate a pedelec and rider, +# * - 8 `speed-pedelec` - to indicate a speed-pedelec and rider. +# * - 9 to 15 - are reserved for future usage. Value 15 is set to "max" in order to bound the size of the encoded field. +# * +# * @category: VRU information +# * @revision: Created in V2.1.1 +# */ # VruSubProfileBicyclist ::= ENUMERATED { # unavailable (0), # bicyclist (1), @@ -39,24 +56,6 @@ # max (15) # } # ------------------------------------------------------------------------------ -# * -# * This DE indicates the profile of a VRU and its light VRU vehicle / mounted animal. -# * -# * The value shall be set to: -# * - 0 `unavailable` - to indicate that the information is unavailable, -# * - 1 `bicyclist ` - to indicate a cycle and bicyclist, -# * - 2 `wheelchair-user` - to indicate a wheelchair and its user, -# * - 3 `horse-and-rider` - to indicate a horse and rider, -# * - 4 `rollerskater` - to indicate a rolleskater and skater, -# * - 5 `e-scooter` - to indicate an e-scooter and rider, -# * - 6 `personal-transporter` - to indicate a personal-transporter and rider, -# * - 7 `pedelec` - to indicate a pedelec and rider, -# * - 8 `speed-pedelec` - to indicate a speed-pedelec and rider. -# * - 9 to 15 - are reserved for future usage. Value 15 is set to "max" in order to bound the size of the encoded field. -# * -# * @category: VRU information -# * @revision: Created in V2.1.1 -# uint8 value uint8 UNAVAILABLE = 0 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruSubProfileMotorcyclist.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruSubProfileMotorcyclist.msg index e8214638a..6b8cb0efd 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruSubProfileMotorcyclist.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruSubProfileMotorcyclist.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,20 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the profile of a motorcyclist and corresponding vehicle. +# * +# * The value shall be set to: +# * - 0 `unavailable ` - to indicate that the information is unavailable, +# * - 1 `moped` - to indicate a moped and rider, +# * - 2 `motorcycle` - to indicate a motorcycle and rider, +# * - 3 `motorcycle-and-sidecar-right` - to indicate a motorcycle with sidecar on the right and rider, +# * - 4 `motorcycle-and-sidecar-left` - to indicate a motorcycle with sidecar on the left and rider. +# * - 5 to 15 - are reserved for future usage. Value 15 is set to "max" in order to bound the size of the encoded field. +# * +# * @category: VRU information +# * @revision: Created in V2.1.1 +# */ # VruSubProfileMotorcyclist ::= ENUMERATED { # unavailable (0), # moped (1), @@ -35,20 +48,6 @@ # max (15) # } # ------------------------------------------------------------------------------ -# * -# * This DE indicates the profile of a motorcyclist and corresponding vehicle. -# * -# * The value shall be set to: -# * - 0 `unavailable ` - to indicate that the information is unavailable, -# * - 1 `moped` - to indicate a moped and rider, -# * - 2 `motorcycle` - to indicate a motorcycle and rider, -# * - 3 `motorcycle-and-sidecar-right` - to indicate a motorcycle with sidecar on the right and rider, -# * - 4 `motorcycle-and-sidecar-left` - to indicate a motorcycle with sidecar on the left and rider. -# * - 5 to 15 - are reserved for future usage. Value 15 is set to "max" in order to bound the size of the encoded field. -# * -# * @category: VRU information -# * @revision: Created in V2.1.1 -# uint8 value uint8 UNAVAILABLE = 0 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruSubProfilePedestrian.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruSubProfilePedestrian.msg index 976f31a20..00f4e2272 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruSubProfilePedestrian.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/VruSubProfilePedestrian.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,19 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the profile of a pedestrian. +# * +# * The value shall be set to: +# * - 0 `unavailable` - to indicate that the information on is unavailable, +# * - 1 `ordinary-pedestrian` - to indicate a pedestrian to which no more-specific profile applies, +# * - 2 `road-worker` - to indicate a pedestrian with the role of a road worker, +# * - 3 `first-responder` - to indicate a pedestrian with the role of a first responder. +# * - value 4 to 15 - are reserved for future usage. Value 15 is set to "max" in order to bound the size of the encoded field. +# * +# * @category: VRU information +# * @revision: Created in V2.1.1 +# */ # VruSubProfilePedestrian ::= ENUMERATED { # unavailable (0), # ordinary-pedestrian (1), @@ -34,19 +46,6 @@ # max (15) # } # ------------------------------------------------------------------------------ -# * -# * This DE indicates the profile of a pedestrian. -# * -# * The value shall be set to: -# * - 0 `unavailable` - to indicate that the information on is unavailable, -# * - 1 `ordinary-pedestrian` - to indicate a pedestrian to which no more-specific profile applies, -# * - 2 `road-worker` - to indicate a pedestrian with the role of a road worker, -# * - 3 `first-responder` - to indicate a pedestrian with the role of a first responder. -# * - value 4 to 15 - are reserved for future usage. Value 15 is set to "max" in order to bound the size of the encoded field. -# * -# * @category: VRU information -# * @revision: Created in V2.1.1 -# uint8 value uint8 UNAVAILABLE = 0 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Wgs84Angle.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Wgs84Angle.msg index 4b3425932..e3750aedf 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Wgs84Angle.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Wgs84Angle.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,24 +25,24 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents an angular component along with a confidence value in the WGS84 coordinate system. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * +# * It shall include the following components: +# * +# * @field value: the angle value, which can be estimated as the mean of the current distribution. +# * +# * @field confidence: the confidence value associated to the angle value. +# * +# * @category: GeoReference information +# * @revision: Created in V2.1.1 +# */ # Wgs84Angle ::= SEQUENCE { # value Wgs84AngleValue, # confidence Wgs84AngleConfidence # } # ------------------------------------------------------------------------------ -# * -# * This DF represents an angular component along with a confidence value in the WGS84 coordinate system. -# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. -# * -# * It shall include the following components: -# * -# * @field value: the angle value, which can be estimated as the mean of the current distribution. -# * -# * @field confidence: the confidence value associated to the angle value. -# * -# * @category: GeoReference information -# * @revision: Created in V2.1.1 -# Wgs84AngleValue value diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Wgs84AngleConfidence.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Wgs84AngleConfidence.msg index 595209c01..5ee938574 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Wgs84AngleConfidence.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Wgs84AngleConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,28 +25,29 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the angle confidence value which represents the estimated accuracy of an angle value with a default confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `n` (`n >= 1` and `n < 126`) if the confidence value is equal to or less than n x 0,1 degrees and more than (n-1) x 0,1 degrees, +# * - `126` if the confidence value is out of range, i.e. greater than 12,5 degrees, +# * - `127` if the confidence value is not available. +# * +# * +# * @unit 0,1 degrees +# * @category: GeoReference Information +# * @revision: Created in V2.1.1 +# */ # Wgs84AngleConfidence ::= INTEGER { # outOfRange (126), # unavailable (127) # } (1..127) # ------------------------------------------------------------------------------ -# * -# * This DE indicates the angle confidence value which represents the estimated accuracy of an angle value with a default confidence level of 95 %. -# * If required, the confidence level can be defined by the corresponding standards applying this DE. -# * -# * The value shall be set to: -# * - `n` (`n >= 1` and `n < 126`) if the confidence value is equal to or less than n x 0,1 degrees and more than (n-1) x 0,1 degrees, -# * - `126` if the confidence value is out of range, i.e. greater than 12,5 degrees, -# * - `127` if the confidence value is not available. -# * -# * -# * @unit 0,1 degrees -# * @category: GeoReference Information -# * @revision: Created in V2.1.1 -# uint8 value uint8 MIN = 1 uint8 MAX = 127 uint8 OUT_OF_RANGE = 126 uint8 UNAVAILABLE = 127 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Wgs84AngleValue.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Wgs84AngleValue.msg index 1ab413e2c..8cb4946ff 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Wgs84AngleValue.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/Wgs84AngleValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,15 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents an angle value in degrees described in the WGS84 reference system with respect to the WGS84 north. +# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. +# * When the information is not available, the DE shall be set to 3 601. The value 3600 shall not be used. +# * +# * @unit 0,1 degrees +# * @category: GeoReference Information +# * @revision: Created in V2.1.1 +# */ # Wgs84AngleValue ::= INTEGER { # wgs84North (0), # wgs84East (900), @@ -35,15 +43,6 @@ # unavailable (3601) # } (0..3601) # ------------------------------------------------------------------------------ -# * -# * This DE represents an angle value in degrees described in the WGS84 reference system with respect to the WGS84 north. -# * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. -# * When the information is not available, the DE shall be set to 3 601. The value 3600 shall not be used. -# * -# * @unit 0,1 degrees -# * @category: GeoReference Information -# * @revision: Created in V2.1.1 -# uint16 value uint16 MIN = 0 @@ -54,3 +53,4 @@ uint16 WGS84_SOUTH = 1800 uint16 WGS84_WEST = 2700 uint16 DO_NOT_USE = 3600 uint16 UNAVAILABLE = 3601 + diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/YawRate.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/YawRate.msg index de108b94c..641f18597 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/YawRate.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/YawRate.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,23 +25,23 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DF represents a yaw rate of vehicle at a point in time. +# * +# * It shall include the following components: +# * +# * @field yawRateValue: yaw rate value at a point in time. +# * +# * @field yawRateConfidence: confidence value associated to the yaw rate value. +# * +# * @category: Vehicle Information +# * @revision: V1.3.1 +# */ # YawRate::= SEQUENCE { # yawRateValue YawRateValue, # yawRateConfidence YawRateConfidence # } # ------------------------------------------------------------------------------ -# * -# * This DF represents a yaw rate of vehicle at a point in time. -# * -# * It shall include the following components: -# * -# * @field yawRateValue: yaw rate value at a point in time. -# * -# * @field yawRateConfidence: confidence value associated to the yaw rate value. -# * -# * @category: Vehicle Information -# * @revision: V1.3.1 -# YawRateValue yaw_rate_value diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/YawRateConfidence.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/YawRateConfidence.msg index 52d4de692..d45ae2fd5 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/YawRateConfidence.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/YawRateConfidence.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,6 +25,34 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE indicates the yaw rate confidence value which represents the estimated accuracy for a yaw rate value with a default confidence level of 95 %. +# * If required, the confidence level can be defined by the corresponding standards applying this DE. +# * +# * The value shall be set to: +# * - `0` if the confidence value is equal to or less than 0,01 degree/second, +# * - `1` if the confidence value is equal to or less than 0,05 degrees/second or greater than 0,01 degree/second, +# * - `2` if the confidence value is equal to or less than 0,1 degree/second or greater than 0,05 degree/second, +# * - `3` if the confidence value is equal to or less than 1 degree/second or greater than 0,1 degree/second, +# * - `4` if the confidence value is equal to or less than 5 degrees/second or greater than 1 degrees/second, +# * - `5` if the confidence value is equal to or less than 10 degrees/second or greater than 5 degrees/second, +# * - `6` if the confidence value is equal to or less than 100 degrees/second or greater than 10 degrees/second, +# * - `7` if the confidence value is out of range, i.e. greater than 100 degrees/second, +# * - `8` if the confidence value is unavailable. +# * +# * NOTE: The fact that a yaw rate value is received with confidence value set to `unavailable(8)` can be caused by +# * several reasons, such as: +# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, +# * - the sensor cannot calculate the accuracy due to lack of variables, or +# * - there has been a vehicle bus (e.g. CAN bus) error. +# * In all 3 cases above, the yaw rate value may be valid and used by the application. +# * +# * If a yaw rate value is received and its confidence value is set to `outOfRange(7)`, it means that the +# * yaw rate value is not valid and therefore cannot be trusted. Such value is not useful the application. +# * +# * @category: Vehicle information +# * @revision: Description revised in V2.1.1 +# */ # YawRateConfidence ::= ENUMERATED { # degSec-000-01 (0), # degSec-000-05 (1), @@ -38,34 +65,6 @@ # unavailable (8) # } # ------------------------------------------------------------------------------ -# * -# * This DE indicates the yaw rate confidence value which represents the estimated accuracy for a yaw rate value with a default confidence level of 95 %. -# * If required, the confidence level can be defined by the corresponding standards applying this DE. -# * -# * The value shall be set to: -# * - `0` if the confidence value is equal to or less than 0,01 degree/second, -# * - `1` if the confidence value is equal to or less than 0,05 degrees/second or greater than 0,01 degree/second, -# * - `2` if the confidence value is equal to or less than 0,1 degree/second or greater than 0,05 degree/second, -# * - `3` if the confidence value is equal to or less than 1 degree/second or greater than 0,1 degree/second, -# * - `4` if the confidence value is equal to or less than 5 degrees/second or greater than 1 degrees/second, -# * - `5` if the confidence value is equal to or less than 10 degrees/second or greater than 5 degrees/second, -# * - `6` if the confidence value is equal to or less than 100 degrees/second or greater than 10 degrees/second, -# * - `7` if the confidence value is out of range, i.e. greater than 100 degrees/second, -# * - `8` if the confidence value is unavailable. -# * -# * NOTE: The fact that a yaw rate value is received with confidence value set to `unavailable(8)` can be caused by -# * several reasons, such as: -# * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, -# * - the sensor cannot calculate the accuracy due to lack of variables, or -# * - there has been a vehicle bus (e.g. CAN bus) error. -# * In all 3 cases above, the yaw rate value may be valid and used by the application. -# * -# * If a yaw rate value is received and its confidence value is set to `outOfRange(7)`, it means that the -# * yaw rate value is not valid and therefore cannot be trusted. Such value is not useful the application. -# * -# * @category: Vehicle information -# * @revision: Description revised in V2.1.1 -# uint8 value uint8 DEG_SEC_000_01 = 0 diff --git a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/YawRateValue.msg b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/YawRateValue.msg index f608e71f2..e9e977e00 100644 --- a/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/YawRateValue.msg +++ b/etsi_its_msgs/etsi_its_vam_ts_msgs/msg/YawRateValue.msg @@ -2,7 +2,6 @@ # MIT License # # Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University -# Copyright (c) 2024 Instituto de Telecomunicações, Universidade de Aveiro # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -26,36 +25,36 @@ # --- Auto-generated by asn1ToRosMsg.py ---------------------------------------- # --- ASN.1 Definition --------------------------------------------------------- +# /** +# * This DE represents the vehicle rotation around z-axis of the coordinate system centred on the centre of mass of the empty-loaded +# * vehicle. The leading sign denotes the direction of rotation. +# * +# * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11. +# * +# * The value shall be set to: +# * - `-32 766` to indicate that the yaw rate is equal to or greater than 327,66 degrees/second to the right, +# * - `n` (`n > -32 766` and `n <= 0`) to indicate that the rotation is clockwise (i.e. to the right) and is equal to or less than n x 0,01 degrees/s, +# and greater than (n-1) x 0,01 degrees/s, +# * - `n` (`n > 0` and `n < 32 766`) to indicate that the rotation is anti-clockwise (i.e. to the left) and is equal to or less than n x 0,01 degrees/s, +# and greater than (n-1) x 0,01 degrees/s, +# * - `32 766` to indicate that the yaw rate is greater than 327.65 degrees/second to the left, +# * - `32 767` to indicate that the information is not available. +# * +# * The yaw rate value shall be a raw data value, i.e. not filtered, smoothed or otherwise modified. +# * The reading instant should be the same as for the vehicle acceleration. +# * +# * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6. +# * +# * @unit: 0,01 degree per second. +# * @category: Vehicle Information +# * @revision: Desription revised in V2.1.1 (the meaning of 32766 has changed slightly). +# */ # YawRateValue ::= INTEGER { # negativeOutOfRange (-32766), # positiveOutOfRange (32766), # unavailable (32767) # } (-32766..32767) # ------------------------------------------------------------------------------ -# * -# * This DE represents the vehicle rotation around z-axis of the coordinate system centred on the centre of mass of the empty-loaded -# * vehicle. The leading sign denotes the direction of rotation. -# * -# * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11. -# * -# * The value shall be set to: -# * - `-32 766` to indicate that the yaw rate is equal to or greater than 327,66 degrees/second to the right, -# * - `n` (`n > -32 766` and `n <= 0`) to indicate that the rotation is clockwise (i.e. to the right) and is equal to or less than n x 0,01 degrees/s, -# and greater than (n-1) x 0,01 degrees/s, -# * - `n` (`n > 0` and `n < 32 766`) to indicate that the rotation is anti-clockwise (i.e. to the left) and is equal to or less than n x 0,01 degrees/s, -# and greater than (n-1) x 0,01 degrees/s, -# * - `32 766` to indicate that the yaw rate is greater than 327.65 degrees/second to the left, -# * - `32 767` to indicate that the information is not available. -# * -# * The yaw rate value shall be a raw data value, i.e. not filtered, smoothed or otherwise modified. -# * The reading instant should be the same as for the vehicle acceleration. -# * -# * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6. -# * -# * @unit: 0,01 degree per second. -# * @category: Vehicle Information -# * @revision: Desription revised in V2.1.1 (the meaning of 32766 has changed slightly). -# int16 value int16 MIN = -32766 @@ -63,3 +62,4 @@ int16 MAX = 32767 int16 NEGATIVE_OUT_OF_RANGE = -32766 int16 POSITIVE_OUT_OF_RANGE = 32766 int16 UNAVAILABLE = 32767 + diff --git a/etsi_its_msgs_utils/samples/publish_mapem_ts.py b/etsi_its_msgs_utils/samples/publish_mapem_ts.py new file mode 100755 index 000000000..774001b0c --- /dev/null +++ b/etsi_its_msgs_utils/samples/publish_mapem_ts.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python + +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +import rclpy +from rclpy.node import Node +from etsi_its_mapem_ts_msgs.msg import * +import utils + + +class Publisher(Node): + + def __init__(self): + + super().__init__("mapem_ts_publisher") + topic = "/etsi_its_conversion/mapem_ts/in" + self.publisher = self.create_publisher(MAPEM, topic, 1) + self.timer = self.create_timer(1.0, self.publish) + + def publish(self): + + msg = MAPEM() + + msg.header.protocol_version = 2 + msg.header.message_id = msg.header.MESSAGE_ID_SPATEM + msg.header.station_id.value = 100 + + self.get_logger().info(f"Publishing MAPEM (TS)") + self.publisher.publish(msg) + + +if __name__ == "__main__": + + rclpy.init() + publisher = Publisher() + rclpy.spin(publisher) + rclpy.shutdown() diff --git a/etsi_its_msgs_utils/samples/publish_spatem_ts.py b/etsi_its_msgs_utils/samples/publish_spatem_ts.py new file mode 100755 index 000000000..9b7a196a1 --- /dev/null +++ b/etsi_its_msgs_utils/samples/publish_spatem_ts.py @@ -0,0 +1,75 @@ +#!/usr/bin/env python + +# ============================================================================== +# MIT License +# +# Copyright (c) 2023-2024 Institute for Automotive Engineering (ika), RWTH Aachen University +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# ============================================================================== + +import rclpy +from rclpy.node import Node +from etsi_its_spatem_ts_msgs.msg import * +import utils + + +class Publisher(Node): + + def __init__(self): + + super().__init__("mapem_ts_publisher") + topic = "/etsi_its_conversion/spatem_ts/in" + self.publisher = self.create_publisher(SPATEM, topic, 1) + self.timer = self.create_timer(1.0, self.publish) + + def publish(self): + + msg = SPATEM() + + msg.header.protocol_version = 2 + msg.header.message_id = msg.header.MESSAGE_ID_MAPEM + msg.header.station_id.value = 100 + + movement_event = MovementEvent() + movement_event.event_state.value = movement_event.event_state.PROTECTED_MOVEMENT_ALLOWED + + movement_state = MovementState() + movement_state.signal_group.value = 2 + movement_state.state_time_speed.array.append(movement_event) + + intersection_state = IntersectionState() + intersection_state.id.id.value = 1 + status_array = [0] * intersection_state.status.SIZE_BITS + status_array[intersection_state.status.BIT_INDEX_MANUAL_CONTROL_IS_ENABLED] = 1 + intersection_state.status.value = status_array + intersection_state.states.array.append(movement_state) + + msg.spat.intersections.array.append(intersection_state) + + self.get_logger().info(f"Publishing SPATEM (TS)") + self.publisher.publish(msg) + + +if __name__ == "__main__": + + rclpy.init() + publisher = Publisher() + rclpy.spin(publisher) + rclpy.shutdown() diff --git a/utils/codegen/asn1ToC.py b/utils/codegen/asn1ToC/asn1ToC.py similarity index 73% rename from utils/codegen/asn1ToC.py rename to utils/codegen/asn1ToC/asn1ToC.py index 87e2a2286..ef7bbbcf1 100755 --- a/utils/codegen/asn1ToC.py +++ b/utils/codegen/asn1ToC/asn1ToC.py @@ -31,7 +31,8 @@ import shutil import subprocess import tempfile - +from math import ceil +from multiprocessing import Pool def parseCli(): """Parses script's CLI arguments. @@ -54,9 +55,29 @@ def parseCli(): return args +def adjustIncludesInFile(args): + """ + Adjusts the include statements in a file by adding a prefix to the included headers. + + Args: + args (tuple): A tuple containing the file path, list of headers, and prefix. -def adjustIncludes(parent_path: str): + Returns: + None + """ + file, headers, prefix = args + with open(file, "r") as f: + contents = f.read() + for header in headers: + if re.search(r'^#include\s+"{}"'.format(header), contents, re.MULTILINE): + contents = re.sub(r'(^#include\s+")({}")'.format(re.escape(header)), r'\1{}/\2'.format(prefix), contents, flags=re.MULTILINE) + if re.search(r'^#include\s+<{}>'.format(header), contents, re.MULTILINE): + contents = re.sub(r'(^#include\s+<)({}>)'.format(re.escape(header)), r'\1{}/\2'.format(prefix), contents, flags=re.MULTILINE) + with open(file, "w") as f: + f.write(contents) +def adjustIncludes(parent_path: str): + print("Start adjusting includes") prefix = os.path.basename(parent_path) header_files = [os.path.join(parent_path, "include", prefix, f) for f in os.listdir(os.path.join(parent_path, "include", prefix))] @@ -65,18 +86,13 @@ def adjustIncludes(parent_path: str): source_files = [f for f in source_files if os.path.isfile(f)] headers = [os.path.basename(f) for f in header_files] - for file in [*header_files, *source_files]: - print(file) - with open(file, "r") as f: - contents = f.read() - for header in headers: - if re.search(r'^#include\s+"{}"'.format(header), contents, re.MULTILINE): - contents = re.sub(r'(^#include\s+")({}")'.format(re.escape(header)), r'\1{}/\2'.format(prefix), contents, flags=re.MULTILINE) - if re.search(r'^#include\s+<{}>'.format(header), contents, re.MULTILINE): - contents = re.sub(r'(^#include\s+<)({}>)'.format(re.escape(header)), r'\1{}/\2'.format(prefix), contents, flags=re.MULTILINE) - with open(file, "w") as f: - f.write(contents) + # Prepare arguments for parallel processing + files_to_process = [(file, headers, prefix) for file in [*header_files, *source_files]] + # Use multiprocessing to process files in parallel + with Pool() as pool: + pool = Pool(ceil(os.cpu_count()*0.8)) + pool.map(adjustIncludesInFile, files_to_process) def main(): @@ -107,12 +123,12 @@ def main(): shutil.copy(f, container_input_dir) # run asn1c docker container to generate header and source files - asn1c_cmd_file = os.path.join(os.path.dirname(os.path.abspath(__file__)), "asn1c.sh") - with open(asn1c_cmd_file, "w") as f: + asn1c_cmd_file = tempfile.NamedTemporaryFile(delete=False) + with open(asn1c_cmd_file.name, "w") as f: f.write(f"asn1c $(find /input -name '*.asn' | sort) -fcompound-names -fprefix={args.type}_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER") - subprocess.run(["docker", "run", "--rm", "-u", f"{os.getuid()}:{os.getgid()}", "-v", f"{container_input_dir}:/input:ro", "-v", f"{container_output_dir}:/output", "-v", f"{asn1c_cmd_file}:/asn1c.sh", args.docker_image], check=True) - os.remove(asn1c_cmd_file) + subprocess.run(["docker", "run", "--rm", "-u", f"{os.getuid()}:{os.getgid()}", "-v", f"{container_input_dir}:/input:ro", "-v", f"{container_output_dir}:/output", "-v", f"{asn1c_cmd_file.name}:/asn1c.sh", args.docker_image], check=True) + os.remove(asn1c_cmd_file.name) # move generated header and source files to output directories for f in glob.glob(os.path.join(container_output_dir, "*.h")): @@ -122,6 +138,12 @@ def main(): adjustIncludes(output_dir) + script_dir = os.path.dirname(os.path.abspath(__file__)) + patch_file = os.path.join(script_dir, f"patches/{args.type}.patch") + if os.path.exists(patch_file): + subprocess.run(["git", "apply", patch_file], check=True) + + print("Successfully generated header and source files with asn1c.") if __name__ == "__main__": diff --git a/utils/codegen/docker/asn1c.Dockerfile b/utils/codegen/asn1ToC/docker/asn1c.Dockerfile similarity index 100% rename from utils/codegen/docker/asn1c.Dockerfile rename to utils/codegen/asn1ToC/docker/asn1c.Dockerfile diff --git a/utils/codegen/asn1ToC/patches/mapem_ts.patch b/utils/codegen/asn1ToC/patches/mapem_ts.patch new file mode 100644 index 000000000..39c3c00ee --- /dev/null +++ b/utils/codegen/asn1ToC/patches/mapem_ts.patch @@ -0,0 +1,83 @@ +diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ConnectionTrajectory-addGrpC.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ConnectionTrajectory-addGrpC.h +index 80474765..daa530dc 100644 +--- a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ConnectionTrajectory-addGrpC.h ++++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_ConnectionTrajectory-addGrpC.h +@@ -5,17 +5,17 @@ + * `asn1c -fcompound-names -fprefix=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + ++/* Including external dependencies */ ++#include "etsi_its_mapem_ts_coding/mapem_ts_NodeSetXY.h" ++#include "etsi_its_mapem_ts_coding/mapem_ts_LaneConnectionID.h" ++#include ++ + #ifndef _mapem_ts_ConnectionTrajectory_addGrpC_H_ + #define _mapem_ts_ConnectionTrajectory_addGrpC_H_ + + + #include + +-/* Including external dependencies */ +-#include "etsi_its_mapem_ts_coding/mapem_ts_NodeSetXY.h" +-#include "etsi_its_mapem_ts_coding/mapem_ts_LaneConnectionID.h" +-#include +- + #ifdef __cplusplus + extern "C" { + #endif +diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_NodeOffsetPointXY.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_NodeOffsetPointXY.h +index 48c03456..e9469531 100644 +--- a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_NodeOffsetPointXY.h ++++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_NodeOffsetPointXY.h +@@ -5,11 +5,6 @@ + * `asn1c -fcompound-names -fprefix=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +-#ifndef _mapem_ts_NodeOffsetPointXY_H_ +-#define _mapem_ts_NodeOffsetPointXY_H_ +- +- +-#include + + /* Including external dependencies */ + #include "etsi_its_mapem_ts_coding/mapem_ts_Node-XY-20b.h" +@@ -21,6 +16,11 @@ + #include "etsi_its_mapem_ts_coding/mapem_ts_Node-LLmD-64b.h" + #include "etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h" + #include ++#ifndef _mapem_ts_NodeOffsetPointXY_H_ ++#define _mapem_ts_NodeOffsetPointXY_H_ ++ ++ ++#include + + #ifdef __cplusplus + extern "C" { +diff --git a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h +index b5758b2d..f61d8c18 100644 +--- a/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h ++++ b/etsi_its_coding/etsi_its_mapem_ts_coding/include/etsi_its_mapem_ts_coding/mapem_ts_RegionalExtension.h +@@ -5,11 +5,6 @@ + * `asn1c -fcompound-names -fprefix=mapem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +-#ifndef _mapem_ts_RegionalExtension_H_ +-#define _mapem_ts_RegionalExtension_H_ +- +- +-#include + + /* Including external dependencies */ + #include "etsi_its_mapem_ts_coding/mapem_ts_RegionId.h" +@@ -29,6 +24,11 @@ + #include "etsi_its_mapem_ts_coding/mapem_ts_RequestorDescription-addGrpC.h" + #include "etsi_its_mapem_ts_coding/mapem_ts_RestrictionUserType-addGrpC.h" + #include "etsi_its_mapem_ts_coding/mapem_ts_SignalStatusPackage-addGrpC.h" ++#ifndef _mapem_ts_RegionalExtension_H_ ++#define _mapem_ts_RegionalExtension_H_ ++ ++ ++#include + + #ifdef __cplusplus + extern "C" { diff --git a/utils/codegen/asn1ToC/patches/spatem_ts.patch b/utils/codegen/asn1ToC/patches/spatem_ts.patch new file mode 100644 index 000000000..6782edb51 --- /dev/null +++ b/utils/codegen/asn1ToC/patches/spatem_ts.patch @@ -0,0 +1,83 @@ +diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ConnectionTrajectory-addGrpC.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ConnectionTrajectory-addGrpC.h +index 143c7744..0e09834b 100644 +--- a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ConnectionTrajectory-addGrpC.h ++++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_ConnectionTrajectory-addGrpC.h +@@ -5,17 +5,17 @@ + * `asn1c -fcompound-names -fprefix=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + ++/* Including external dependencies */ ++#include "etsi_its_spatem_ts_coding/spatem_ts_NodeSetXY.h" ++#include "etsi_its_spatem_ts_coding/spatem_ts_LaneConnectionID.h" ++#include ++ + #ifndef _spatem_ts_ConnectionTrajectory_addGrpC_H_ + #define _spatem_ts_ConnectionTrajectory_addGrpC_H_ + + + #include + +-/* Including external dependencies */ +-#include "etsi_its_spatem_ts_coding/spatem_ts_NodeSetXY.h" +-#include "etsi_its_spatem_ts_coding/spatem_ts_LaneConnectionID.h" +-#include +- + #ifdef __cplusplus + extern "C" { + #endif +diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_NodeOffsetPointXY.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_NodeOffsetPointXY.h +index af5eeeb7..3e7db224 100644 +--- a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_NodeOffsetPointXY.h ++++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_NodeOffsetPointXY.h +@@ -5,11 +5,6 @@ + * `asn1c -fcompound-names -fprefix=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +-#ifndef _spatem_ts_NodeOffsetPointXY_H_ +-#define _spatem_ts_NodeOffsetPointXY_H_ +- +- +-#include + + /* Including external dependencies */ + #include "etsi_its_spatem_ts_coding/spatem_ts_Node-XY-20b.h" +@@ -21,6 +16,11 @@ + #include "etsi_its_spatem_ts_coding/spatem_ts_Node-LLmD-64b.h" + #include "etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h" + #include ++#ifndef _spatem_ts_NodeOffsetPointXY_H_ ++#define _spatem_ts_NodeOffsetPointXY_H_ ++ ++ ++#include + + #ifdef __cplusplus + extern "C" { +diff --git a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h +index d2b232a5..7bc58ce8 100644 +--- a/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h ++++ b/etsi_its_coding/etsi_its_spatem_ts_coding/include/etsi_its_spatem_ts_coding/spatem_ts_RegionalExtension.h +@@ -5,11 +5,6 @@ + * `asn1c -fcompound-names -fprefix=spatem_ts_ -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-OER -no-gen-example -gen-UPER` + */ + +-#ifndef _spatem_ts_RegionalExtension_H_ +-#define _spatem_ts_RegionalExtension_H_ +- +- +-#include + + /* Including external dependencies */ + #include "etsi_its_spatem_ts_coding/spatem_ts_RegionId.h" +@@ -29,6 +24,11 @@ + #include "etsi_its_spatem_ts_coding/spatem_ts_RequestorDescription-addGrpC.h" + #include "etsi_its_spatem_ts_coding/spatem_ts_RestrictionUserType-addGrpC.h" + #include "etsi_its_spatem_ts_coding/spatem_ts_SignalStatusPackage-addGrpC.h" ++#ifndef _spatem_ts_RegionalExtension_H_ ++#define _spatem_ts_RegionalExtension_H_ ++ ++ ++#include + + #ifdef __cplusplus + extern "C" { diff --git a/utils/codegen/codegen-py/asn1CodeGenerationUtils.py b/utils/codegen/codegen-py/asn1CodeGenerationUtils.py index b3fba9a5c..93099d13f 100644 --- a/utils/codegen/codegen-py/asn1CodeGenerationUtils.py +++ b/utils/codegen/codegen-py/asn1CodeGenerationUtils.py @@ -61,7 +61,7 @@ def camel2SNAKE(s: str) -> str: ss = ss.upper().lstrip("_").replace("-", "_").replace("__", "_") # EXAMPLE_STRING_WITH_NUMBER123 -> EXAMPLE_STRING_WITH_NUMBER_123 - ss = re.sub("([A-Z])([0-9])", r"\1_\2", ss) + # ss = re.sub("([A-Z])([0-9])", r"\1_\2", ss) # special cases ss = ss.replace("C_A_M", "CAM") @@ -96,7 +96,7 @@ def camel2snake(s: str) -> str: ss = ss.lower().lstrip("_").replace("-", "_").replace("__", "_") # example_string_with_number123 -> example_string_with_number_123 - ss = re.sub("([a-z])([0-9])", r"\1_\2", ss) + # ss = re.sub("([a-z])([0-9])", r"\1_\2", ss) # special cases ss = ss.replace("c_a_m", "cam") @@ -105,6 +105,7 @@ def camel2snake(s: str) -> str: ss = ss.replace("s_p_a_t", "spat") ss = ss.replace("m_a_p_e_m", "mapem") ss = ss.replace("m_a_p", "map") + ss = ss.replace("v_a_m", "vam") ss = ss.replace("d_s_r_c", "dsrc") ss = ss.replace("r_s_u", "rsu") ss = ss.replace("w_m_i", "wmi") @@ -251,8 +252,17 @@ def parseAsn1Files(files: List[str]) -> Tuple[Dict, Dict[str, str]]: with open(file) as f: lines = f.readlines() raw_def = None - for line in lines: + for line_idx, line in enumerate(lines): if "::=" in line: + comment_lines = [] + for rline in reversed(lines[:line_idx]): + if rline.strip().endswith("*/"): + comment_lines.append(rline) + elif len(comment_lines) > 0: + comment_lines.append(rline) + if rline.strip().startswith("/**"): + comment_lines = reversed(comment_lines) + break if line.rstrip().endswith("{"): type = line.split("::=")[0].split("{")[0].strip().split()[0] raw_def = "" @@ -260,14 +270,14 @@ def parseAsn1Files(files: List[str]) -> Tuple[Dict, Dict[str, str]]: type = line.split("::=")[0].strip().split()[0] if "}" in line or not ("{" in line or "}" in line): raw_def = line - asn1_raw[type] = raw_def + asn1_raw[type] = "".join(comment_lines) + raw_def raw_def = None else: raw_def = "" if raw_def is not None: raw_def += line if "}" in line and not "}," in line and not ("::=" in line and line.rstrip().endswith("{")): - asn1_raw[type] = raw_def + asn1_raw[type] = "".join(comment_lines) + raw_def raw_def = None asn1_docs = asn1tools.parse_files(files) @@ -365,6 +375,9 @@ def checkTypeMembersInAsn1(asn1_types: Dict[str, Dict]): if member is None: continue + if "components-of" in member: + member["type"] = member["components-of"] + # check if type is known if member["type"] not in known_types: if ".&" in member["type"]: @@ -390,7 +403,22 @@ def asn1TypeToJinjaContext(t_name: str, asn1: Dict, asn1_types: Dict[str, Dict], Returns: Dict: jinja context """ - + + if "components-of" in asn1: # TODO + warnings.warn(f"Handling of 'components-of' in '{t_name}' not yet supported.") + return { # generate in a way such that compilation will not succeed + "asn1_definition": None, + "comments": [], + "etsi_type": None, + "members": [{"t_name": t_name, "type": "TODO: components-of", "name": "is not yet supported", "name_cc": "is not yet supported"}], + "t_name": t_name, + "t_name_camel": noDash(t_name), + "t_name_snake": camel2snake(t_name), + "type": "components-of", + "asn1_type": "components-of", + "is_primitive": False, + } + type = asn1["type"] context = { @@ -428,6 +456,7 @@ def asn1TypeToJinjaContext(t_name: str, asn1: Dict, asn1_types: Dict[str, Dict], member_context = { "type": ros_type, "asn1_type": type, + "t_name": type, "name": validRosField(camel2snake(name)), "name_cc": validCField(name), "constants": [], @@ -524,22 +553,33 @@ def asn1TypeToJinjaContext(t_name: str, asn1: Dict, asn1_types: Dict[str, Dict], if member is None: continue member_context = asn1TypeToJinjaContext(t_name, member, asn1_types, asn1_values) + if member_context is None: + continue if "optional" in member: member_context["members"][0]["optional"] = True if "default" in member: + asn1_value = {} if member["default"] in asn1_values: asn1_value = asn1_values[member["default"]] - default_value = asn1_value["value"] - default_name = validRosField(f"DEFAULT_{camel2SNAKE(member['name'])}", is_const=True) - if asn1_value["type"] == 'INTEGER': - default_type = simplestRosIntegerType(default_value, default_value) - else: - default_type = ASN1_PRIMITIVES_2_ROS[asn1_value["type"]] - member_context["members"][0]["default"] = { - "type": default_type, - "name": default_name, - "value": default_value - } + elif "named-numbers" in asn1_types[member["type"]] and member["default"] in asn1_types[member["type"]]["named-numbers"]: + asn1_value["value"] = asn1_types[member["type"]]["named-numbers"][member["default"]] + asn1_value["type"] = asn1_types[member["type"]]["type"] + elif asn1_types[member["type"]]["type"] == "ENUMERATED": + for default_tuple in asn1_types[member["type"]]["values"]: + if default_tuple[0] == member["default"]: + asn1_value["value"] = default_tuple[1] + asn1_value["type"] = asn1_types[member["type"]]["type"] + default_value = asn1_value["value"] + default_name = validRosField(f"{camel2SNAKE(member['name'])}_DEFAULT", is_const=True) + if asn1_value["type"] == 'INTEGER' or asn1_value["type"] == 'ENUMERATED': + default_type = simplestRosIntegerType(default_value, default_value) + else: + default_type = ASN1_PRIMITIVES_2_ROS[asn1_value["type"]] + member_context["members"][0]["default"] = { + "type": default_type, + "name": default_name, + "value": default_value + } context["members"].extend(member_context["members"]) # type aliases with multiple options @@ -564,6 +604,8 @@ def asn1TypeToJinjaContext(t_name: str, asn1: Dict, asn1_types: Dict[str, Dict], if "name" in asn1: member_name = validRosField(f"CHOICE_{camel2SNAKE(asn1['name'])}_{camel2SNAKE(member['name'])}", is_const=True) member_context = asn1TypeToJinjaContext(t_name, member, asn1_types, asn1_values) + if member_context is None: + continue if len(member_context["members"]) > 0: if "name" in asn1: member_context["members"][0]["choice_name"] = validCField(asn1["name"]) @@ -588,6 +630,11 @@ def asn1TypeToJinjaContext(t_name: str, asn1: Dict, asn1_types: Dict[str, Dict], # add field for array array_name = asn1["name"] if "name" in asn1 else "array" array_type = asn1['element']['type'] + + if array_type == "RegionalExtension": + warnings.warn(f"Handling of 'RegionalExtension' in '{t_name}' not yet supported.") + return None + member_context = { "t_name": array_type, "type": f"{array_type}[]", @@ -605,8 +652,8 @@ def asn1TypeToJinjaContext(t_name: str, asn1: Dict, asn1_types: Dict[str, Dict], min_size_constant_name = "MIN_SIZE" max_size_constant_name = "MAX_SIZE" if "name" in asn1: - min_constant_name = validRosField(f"{camel2SNAKE(asn1['name'])}_{min_size_constant_name}", is_const=True) - max_constant_name = validRosField(f"{camel2SNAKE(asn1['name'])}_{max_size_constant_name}", is_const=True) + min_size_constant_name = validRosField(f"{camel2SNAKE(asn1['name'])}_{min_size_constant_name}", is_const=True) + max_size_constant_name = validRosField(f"{camel2SNAKE(asn1['name'])}_{max_size_constant_name}", is_const=True) member_context["constants"].append({ "type": ros_type, "name": validRosField(min_size_constant_name, is_const=True), @@ -617,6 +664,17 @@ def asn1TypeToJinjaContext(t_name: str, asn1: Dict, asn1_types: Dict[str, Dict], "name": validRosField(max_size_constant_name, is_const=True), "value": max_size }) + elif "size" in asn1 and isinstance(asn1["size"][0], int): + size = asn1["size"][0] + ros_type = simplestRosIntegerType(size, size) + size_constant_name = "SIZE" + if "name" in asn1: + size_constant_name = validRosField(f"{camel2SNAKE(asn1['name'])}_{size_constant_name}", is_const=True) + member_context["constants"].append({ + "type": ros_type, + "name": validRosField(size_constant_name, is_const=True), + "value": size + }) context["members"].append(member_context) @@ -650,6 +708,10 @@ def asn1TypeToJinjaContext(t_name: str, asn1: Dict, asn1_types: Dict[str, Dict], # custom types elif type in asn1_types: + + if type == "RegionalExtension": + warnings.warn(f"Handling of 'RegionalExtension' in '{t_name}' not yet supported.") + return None name_cc = asn1["name"] if "name" in asn1 else "value" name = camel2snake(name_cc) @@ -657,9 +719,42 @@ def asn1TypeToJinjaContext(t_name: str, asn1: Dict, asn1_types: Dict[str, Dict], "t_name": type, "type": validRosType(type), "name": validRosField(camel2snake(name)), - "name_cc": validCField(name_cc) + "name_cc": validCField(name_cc), + "constants": [] }) + # handle size in custom types + if "size" in asn1 and isinstance(asn1["size"][0], tuple): + min_size = asn1["size"][0][0] + max_size = asn1["size"][0][1] + ros_type = simplestRosIntegerType(min_size, max_size) + min_size_constant_name = "MIN_SIZE" + max_size_constant_name = "MAX_SIZE" + if "name" in asn1: + min_size_constant_name = validRosField(f"{camel2SNAKE(asn1['name'])}_{min_size_constant_name}", is_const=True) + max_size_constant_name = validRosField(f"{camel2SNAKE(asn1['name'])}_{max_size_constant_name}", is_const=True) + context["members"][0]["constants"].append({ + "type": ros_type, + "name": validRosField(min_size_constant_name, is_const=True), + "value": min_size + }) + context["members"][0]["constants"].append({ + "type": ros_type, + "name": validRosField(max_size_constant_name, is_const=True), + "value": max_size + }) + elif "size" in asn1 and isinstance(asn1["size"][0], int): + size = asn1["size"][0] + ros_type = simplestRosIntegerType(size, size) + size_constant_name = "SIZE" + if "name" in asn1: + size_constant_name = validRosField(f"{camel2SNAKE(asn1['name'])}_{size_constant_name}", is_const=True) + context["members"][0]["constants"].append({ + "type": ros_type, + "name": validRosField(size_constant_name, is_const=True), + "value": size + }) + elif type == "NULL": pass diff --git a/utils/codegen/codegen-py/asn1ToConversionHeader.py b/utils/codegen/codegen-py/asn1ToConversionHeader.py index cc0dcebc9..3c8a53a9c 100755 --- a/utils/codegen/codegen-py/asn1ToConversionHeader.py +++ b/utils/codegen/codegen-py/asn1ToConversionHeader.py @@ -25,8 +25,9 @@ # ============================================================================== import argparse +import glob import os -from typing import Dict +from typing import Dict, List import jinja2 @@ -107,6 +108,15 @@ def asn1TypeToConversionHeader(type_name: str, asn1_type: Dict, asn1_types: Dict # add etsi type to context jinja_context["etsi_type"] = etsi_type + + # add a dict entry for unique and sorted members (used for includes) + seen = set() + unique_sorted_members = [] + for member in jinja_context["members"]: + if "t_name" in member and member["t_name"] not in seen: + unique_sorted_members.append(member) + seen.add(member["t_name"]) + jinja_context["unique_sorted_members"] = sorted(unique_sorted_members, key=lambda member: member["t_name"]) # render jinja template with context header = jinja_template.render(jinja_context) @@ -132,8 +142,26 @@ def exportConversionHeader(header: str, type_name: str, output_dir: str): filename = os.path.join(output_dir, f"convert{validRosType(type_name)}.h") with open(filename, "w", encoding="utf-8") as file: file.write(header) - print(filename) +def findDependenciesOfConversionHeaders(parent_file_path: str, type: str, file_list: List[str] = []) -> List[str]: + # duplicate list to avoid modifying the original list + new_file_list = file_list.copy() + + # load contents of conversion file + with open(parent_file_path, 'r') as file: + lines = file.readlines() + for line in lines: + + if line.startswith(f"#include List[str]: + # duplicate list to avoid modifying the original list + new_file_list = file_list.copy() + + # load contents of msg file + with open(parent_file_path, 'r') as file: + lines = file.readlines() + for line in lines: + # if line doesnt start with # or empty line, get first word + if not line.startswith("#") and line.strip() != "": + msg_type = line.split()[0] + # if message type ends with [], remove [] + msg_type = msg_type[:-2] if msg_type.endswith("[]") else msg_type + if msg_type not in new_file_list and os.path.isfile(f"{os.path.dirname(parent_file_path)}/{msg_type}.msg"): + new_file_list.append(msg_type) + new_file_list = findDependenciesOfRosMessageType(f"{os.path.dirname(parent_file_path)}/{msg_type}.msg", new_file_list) + + # make sure there are no duplicates and sort alphabetically + new_file_list = sorted(list(set(new_file_list))) + + return new_file_list + +def generateCMakeLists(msg_files: list, file_path: str, type: str) -> None: + with open(file_path, "w") as f: + msg_file_lines = "\n".join([f" \"msg/{msg_file}.msg\"" for msg_file in msg_files]) + + cmake_content = f"""\ +cmake_minimum_required(VERSION 3.5) +project(etsi_its_{type}_msgs) + +find_package(ros_environment REQUIRED QUIET) +set(ROS_VERSION $ENV{{ROS_VERSION}}) + +# === ROS 2 (AMENT) ============================================================ +if(${{ROS_VERSION}} EQUAL 2) + + find_package(ament_cmake REQUIRED) + find_package(rosidl_default_generators REQUIRED) + + set(msg_files +{msg_file_lines} + ) + + rosidl_generate_interfaces(${{PROJECT_NAME}} + ${{msg_files}} + ) + + ament_export_dependencies(rosidl_default_runtime) + + ament_package() + +# === ROS (CATKIN) ============================================================= +elseif(${{ROS_VERSION}} EQUAL 1) + + find_package(catkin REQUIRED COMPONENTS + message_generation + std_msgs + ) + + add_message_files(DIRECTORY msg) + + generate_messages( + DEPENDENCIES std_msgs + ) + + catkin_package( + CATKIN_DEPENDS + message_runtime + std_msgs + ) + +endif() +""" + + # Write the entire content to the file in one operation + with open(file_path, "w") as f: + f.write(cmake_content) def main(): @@ -137,6 +215,27 @@ def main(): exportRosMsg(ros_msg, type_name, args.output_dir) + # generate CMakelists.txt and remove all msg files that are not required + msg_type = args.type.upper() + + # handle special cases + if args.type == "cpm_ts": + msg_type = "CollectivePerceptionMessage" + elif args.type == "cam_ts": + msg_type = "CAM" + elif args.type == "mapem_ts": + msg_type = "MAPEM" + elif args.type == "spatem_ts": + msg_type = "SPATEM" + elif args.type == "vam_ts": + msg_type = "VAM" + + msg_files = findDependenciesOfRosMessageType(os.path.join(args.output_dir, f"{msg_type}.msg"), [msg_type]) + generateCMakeLists(msg_files, os.path.join(args.output_dir, "../CMakeLists.txt"), args.type) + + for f in glob.glob(os.path.join(args.output_dir, "*.msg")): + if os.path.splitext(os.path.basename(f))[0] not in msg_files: + os.remove(f) if __name__ == "__main__": diff --git a/utils/codegen/codegen-py/templates/RosMessageType.msg.jinja2 b/utils/codegen/codegen-py/templates/RosMessageType.msg.jinja2 index 281807ff4..975ea75bf 100644 --- a/utils/codegen/codegen-py/templates/RosMessageType.msg.jinja2 +++ b/utils/codegen/codegen-py/templates/RosMessageType.msg.jinja2 @@ -47,4 +47,4 @@ uint8 bits_unused {% for const in member.constants -%} {{ const.type }} {{ const.name }} = {{ const.value }} {% endfor %} -{% endfor %} \ No newline at end of file +{% endfor -%} \ No newline at end of file diff --git a/utils/codegen/codegen-py/templates/convertChoiceType.h.jinja2 b/utils/codegen/codegen-py/templates/convertChoiceType.h.jinja2 index ec0f14849..098d6dd0a 100644 --- a/utils/codegen/codegen-py/templates/convertChoiceType.h.jinja2 +++ b/utils/codegen/codegen-py/templates/convertChoiceType.h.jinja2 @@ -26,11 +26,11 @@ SOFTWARE. #pragma once -#include -{% for member in members -%} +#include +{% for member in unique_sorted_members -%} {%- if member.name != "choice" -%} #include -{% endif %} +{% endif -%} {%- endfor -%} #ifdef ROS1 #include @@ -43,40 +43,39 @@ namespace {{ etsi_type }}_msgs = etsi_its_{{ etsi_type }}_msgs::msg; namespace etsi_its_{{ etsi_type }}_conversion { -void toRos_{{ t_name }}(const {{ t_name }}_t& in, {{ etsi_type}}_msgs::{{ t_name }}& out) { -{% for member in members %} +void toRos_{{ t_name }}(const {{ etsi_type }}_{{ t_name }}_t& in, {{ etsi_type}}_msgs::{{ t_name }}& out) { + switch (in.present) { +{%- for member in members %} {%- if member.name != "choice" -%} {% for const in member.constants %} - if (in.present == {{ t_name }}_PR::{{ t_name }}_PR_{{ member.name_cc }}) { -{%- if member.type|replace("[]", "") != "RegionalExtension" %} + case {{etsi_type}}_{{ t_name }}_PR_{{ member.name_cc }}: toRos_{{ member.type|replace("[]", "") }}(in.choice.{{ member.name_cc }}, out.{{ member.name }}); -{%- else %} - // TODO: toRos_{{ member.type|replace("[]", "") }}(in.choice.{{ member.name_cc }}, out.{{ member.name }}); -{%- endif %} out.choice = {{ etsi_type}}_msgs::{{ t_name }}::{{ const.name }}; - } + break; {%- endfor %} -{% endif %} -{%- endfor -%} +{%- endif %} +{%- endfor %} + default: break; + } } -void toStruct_{{ t_name }}(const {{ etsi_type}}_msgs::{{ t_name }}& in, {{ t_name }}_t& out) { +void toStruct_{{ t_name }}(const {{ etsi_type}}_msgs::{{ t_name }}& in, {{ etsi_type }}_{{ t_name }}_t& out) { + memset(&out, 0, sizeof({{etsi_type}}_{{ t_name }}_t)); - memset(&out, 0, sizeof({{ t_name }}_t)); -{% for member in members %} + switch (in.choice) { +{%- for member in members %} {%- if member.name != "choice" -%} {% for const in member.constants %} - if (in.choice == {{ etsi_type}}_msgs::{{ t_name }}::{{ const.name }}) { -{%- if member.type|replace("[]", "") != "RegionalExtension" %} + case {{ etsi_type }}_msgs::{{ t_name }}::{{ const.name }}: toStruct_{{ member.type|replace("[]", "") }}(in.{{ member.name }}, out.choice.{{ member.name_cc }}); -{%- else %} - // TODO: toStruct_{{ member.type|replace("[]", "") }}(in.{{ member.name }}, out.choice.{{ member.name_cc }}); -{%- endif %} - out.present = {{ t_name }}_PR::{{ t_name }}_PR_{{ member.name_cc }}; - } + out.present = {{etsi_type}}_{{ t_name }}_PR::{{etsi_type}}_{{ t_name }}_PR_{{ member.name_cc }}; + break; {%- endfor %} -{% endif %} +{%- endif %} {%- endfor %} + default: break; + } } } + diff --git a/utils/codegen/codegen-py/templates/convertCustomType.h.jinja2 b/utils/codegen/codegen-py/templates/convertCustomType.h.jinja2 index f6022c902..ae4851878 100644 --- a/utils/codegen/codegen-py/templates/convertCustomType.h.jinja2 +++ b/utils/codegen/codegen-py/templates/convertCustomType.h.jinja2 @@ -26,7 +26,7 @@ SOFTWARE. #pragma once -#include +#include {% for member in members -%} #include {% endfor -%} @@ -38,20 +38,21 @@ namespace {{ etsi_type }}_msgs = etsi_its_{{ etsi_type }}_msgs; namespace {{ etsi_type }}_msgs = etsi_its_{{ etsi_type }}_msgs::msg; #endif + namespace etsi_its_{{ etsi_type }}_conversion { -void toRos_{{ t_name }}(const {{ t_name }}_t& in, {{ etsi_type}}_msgs::{{ t_name }}& out) { -{% for member in members %} +void toRos_{{ t_name }}(const {{ etsi_type }}_{{ t_name }}_t& in, {{ etsi_type}}_msgs::{{ t_name }}& out) { +{%- for member in members %} toRos_{{ member.type }}(in, out.{{ member.name_cc }}); {% endfor -%} } -void toStruct_{{ t_name }}(const {{ etsi_type}}_msgs::{{ t_name }}& in, {{ t_name }}_t& out) { - - memset(&out, 0, sizeof({{ t_name }}_t)); -{%- for member in members %} +void toStruct_{{ t_name }}(const {{ etsi_type}}_msgs::{{ t_name }}& in, {{ etsi_type }}_{{ t_name }}_t& out) { + memset(&out, 0, sizeof({{ etsi_type}}_{{ t_name }}_t)); +{% for member in members %} toStruct_{{ member.type }}(in.{{ member.name }}, out); {% endfor -%} } } + diff --git a/utils/codegen/codegen-py/templates/convertEnumeratedType.h.jinja2 b/utils/codegen/codegen-py/templates/convertEnumeratedType.h.jinja2 index 0de3811da..ff1db9040 100644 --- a/utils/codegen/codegen-py/templates/convertEnumeratedType.h.jinja2 +++ b/utils/codegen/codegen-py/templates/convertEnumeratedType.h.jinja2 @@ -26,7 +26,8 @@ SOFTWARE. #pragma once -#include +#include + #ifdef ROS1 #include namespace {{ etsi_type }}_msgs = etsi_its_{{ etsi_type }}_msgs; @@ -38,15 +39,15 @@ namespace {{ etsi_type }}_msgs = etsi_its_{{ etsi_type }}_msgs::msg; namespace etsi_its_{{ etsi_type }}_conversion { -void toRos_{{ t_name }}(const {{ t_name }}_t& in, {{ etsi_type}}_msgs::{{ t_name }}& out) { - +void toRos_{{ t_name }}(const {{ etsi_type }}_{{ t_name }}_t& in, {{ etsi_type}}_msgs::{{ t_name }}& out) { out.value = in; } -void toStruct_{{ t_name }}(const {{ etsi_type}}_msgs::{{ t_name }}& in, {{ t_name }}_t& out) { +void toStruct_{{ t_name }}(const {{ etsi_type}}_msgs::{{ t_name }}& in, {{ etsi_type }}_{{ t_name }}_t& out) { + memset(&out, 0, sizeof({{etsi_type}}_{{ t_name }}_t)); - memset(&out, 0, sizeof({{ t_name }}_t)); out = in.value; } } + diff --git a/utils/codegen/codegen-py/templates/convertPrimitiveType.h.jinja2 b/utils/codegen/codegen-py/templates/convertPrimitiveType.h.jinja2 index 9dd6cab2e..eb4984ec7 100644 --- a/utils/codegen/codegen-py/templates/convertPrimitiveType.h.jinja2 +++ b/utils/codegen/codegen-py/templates/convertPrimitiveType.h.jinja2 @@ -26,7 +26,7 @@ SOFTWARE. #pragma once -#include +#include #include #include #ifdef ROS1 @@ -40,8 +40,8 @@ namespace {{ etsi_type }}_msgs = etsi_its_{{ etsi_type }}_msgs::msg; namespace etsi_its_{{ etsi_type }}_conversion { -void toRos_{{ t_name_camel }}(const {{ t_name|replace("-", "_") }}_t& in, {{ etsi_type}}_msgs::{{ t_name_camel }}& out) { -{% for member in members %} +void toRos_{{ t_name_camel }}(const {{etsi_type}}_{{ t_name|replace("-", "_") }}_t& in, {{ etsi_type}}_msgs::{{ t_name_camel }}& out) { +{%- for member in members %} etsi_its_primitives_conversion::toRos_{{ type }}(in, out.{{ member.name }}); {%- if member.has_bits_unused %} out.bits_unused = in.bits_unused; @@ -49,9 +49,10 @@ void toRos_{{ t_name_camel }}(const {{ t_name|replace("-", "_") }}_t& in, {{ ets {%- endfor %} } -void toStruct_{{ t_name_camel }}(const {{ etsi_type}}_msgs::{{ t_name_camel }}& in, {{ t_name|replace("-", "_") }}_t& out) { -{% for member in members %} - memset(&out, 0, sizeof({{ t_name|replace("-", "_") }}_t)); +void toStruct_{{ t_name_camel }}(const {{ etsi_type}}_msgs::{{ t_name_camel }}& in, {{ etsi_type}}_{{ t_name|replace("-", "_") }}_t& out) { +{%- for member in members %} + memset(&out, 0, sizeof({{ etsi_type}}_{{ t_name|replace("-", "_") }}_t)); + etsi_its_primitives_conversion::toStruct_{{ type }}(in.{{ member.name }}, out); {%- if member.has_bits_unused %} out.bits_unused = in.bits_unused; @@ -60,3 +61,4 @@ void toStruct_{{ t_name_camel }}(const {{ etsi_type}}_msgs::{{ t_name_camel }}& } } + diff --git a/utils/codegen/codegen-py/templates/convertSequenceOfType.h.jinja2 b/utils/codegen/codegen-py/templates/convertSequenceOfType.h.jinja2 index 6fb633eea..17f7dcc01 100644 --- a/utils/codegen/codegen-py/templates/convertSequenceOfType.h.jinja2 +++ b/utils/codegen/codegen-py/templates/convertSequenceOfType.h.jinja2 @@ -29,9 +29,9 @@ SOFTWARE. #include #include -#include +#include {% for member in members -%} -#include +#include #include {% endfor -%} #ifdef ROS1 @@ -51,28 +51,26 @@ namespace {{ etsi_type }}_msgs = etsi_its_{{ etsi_type }}_msgs::msg; namespace etsi_its_{{ etsi_type }}_conversion { -void toRos_{{ t_name }}(const {{ t_name }}_t& in, {{ etsi_type}}_msgs::{{ t_name }}& out) { -{% for member in members %} - for (int i = 0; i < in.list.count; i++) { - {{ etsi_type}}_msgs::{{ member.type|replace("[]", "") }} {{ member.name }}; - toRos_{{ member.type|replace("[]", "") }}(*(in.list.array[i]), {{ member.name }}); - out.array.push_back({{ member.name }}); +void toRos_{{ t_name }}(const {{ etsi_type }}_{{ t_name }}_t& in, {{ etsi_type}}_msgs::{{ t_name }}& out) { +{%- for member in members %} + for (int i = 0; i < in.list.count; ++i) { + {{ etsi_type}}_msgs::{{ member.type|replace("[]", "") }} el; + toRos_{{ member.type|replace("[]", "") }}(*(in.list.array[i]), el); + out.array.push_back(el); } -{% endfor %} +{% endfor -%} } -void toStruct_{{ t_name }}(const {{ etsi_type}}_msgs::{{ t_name }}& in, {{ t_name }}_t& out) { - - memset(&out, 0, sizeof({{ t_name }}_t)); +void toStruct_{{ t_name }}(const {{ etsi_type}}_msgs::{{ t_name }}& in, {{ etsi_type }}_{{ t_name }}_t& out) { + memset(&out, 0, sizeof({{etsi_type}}_{{ t_name }}_t)); {% for member in members %} - for (int i = 0; i < in.array.size(); i++) { - {{ member.type|replace("[]", "") }}_t {{ member.name }}; - toStruct_{{ member.type|replace("[]", "") }}(in.array[i], {{ member.name }}); - {{ member.type|replace("[]", "") }}_t* {{ member.name }}_ptr = new {{ member.type|replace("[]", "") }}_t({{ member.name }}); - int status = asn_sequence_add(&out, {{ member.name }}_ptr); - if (status != 0) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); + for (int i = 0; i < in.array.size(); ++i) { + {{etsi_type}}_{{ member.type|replace("[]", "") }}_t* el = ({{etsi_type}}_{{ member.type|replace("[]", "") }}_t*) calloc(1, sizeof({{etsi_type}}_{{ member.type|replace("[]", "") }}_t)); + toStruct_{{ member.type|replace("[]", "") }}(in.array[i], *el); + if (asn_sequence_add(&out, el)) throw std::invalid_argument("Failed to add to A_SEQUENCE_OF"); } -{% endfor %} +{%- endfor %} } } + diff --git a/utils/codegen/codegen-py/templates/convertSequenceType.h.jinja2 b/utils/codegen/codegen-py/templates/convertSequenceType.h.jinja2 index 3a9ea1cc8..a2aace56b 100644 --- a/utils/codegen/codegen-py/templates/convertSequenceType.h.jinja2 +++ b/utils/codegen/codegen-py/templates/convertSequenceType.h.jinja2 @@ -26,9 +26,10 @@ SOFTWARE. #pragma once -#include -{% for member in members -%} +#include +{% for member in unique_sorted_members -%} {% if member.is_primitive -%} +#include #include {% elif not member.is_choice_var -%} #include @@ -45,28 +46,24 @@ namespace {{ etsi_type }}_msgs = etsi_its_{{ etsi_type }}_msgs::msg; namespace etsi_its_{{ etsi_type }}_conversion { -void toRos_{{ t_name_camel }}(const {{ t_name|replace("-", "_")|replace("RegionalExtension", "RegionalExtension_364P0") }}_t& in, {{ etsi_type}}_msgs::{{ t_name_camel }}& out) { -{% for member in members -%} +void toRos_{{ t_name_camel }}(const {{ etsi_type }}_{{ t_name|replace("-", "_") }}_t& in, {{ etsi_type}}_msgs::{{ t_name_camel }}& out) { +{%- for member in members -%} {% if member.optional or member.default %} if (in.{{ member.name_cc }}) { {%- if member.is_primitive %} etsi_its_primitives_conversion::toRos_{{ member.asn1_type }}(*in.{{ member.name_cc }}, out.{{ member.name }}); {%- else %} -{%- if member.type|replace("[]", "") != "RegionalExtension" %} toRos_{{ member.type|replace("[]", "") }}(*in.{{ member.name_cc }}, out.{{ member.name }}); -{%- else %} - // TODO: toRos_{{ member.type|replace("[]", "") }}(*in.{{ member.name_cc }}, out.{{ member.name }}); -{%- endif %} {%- endif %} {%- if member.optional %} out.{{ member.name }}_is_present = true; {%- endif %} } -{% elif not member.is_choice_var %} +{%- elif not member.is_choice_var %} {%- if member.is_primitive %} etsi_its_primitives_conversion::toRos_{{ member.asn1_type }}(in.{{ member.name_cc }}, out.{{ member.name }}); {%- elif member.is_choice %} - if (in.{{ member.choice_name }}.present == {{ t_name }}__{{ member.choice_name }}_PR::{{ t_name }}__{{ member.choice_name }}_PR_{{ member.choice_option_name }}) { + if (in.{{ member.choice_name }}.present == {{etsi_type}}_{{ t_name }}__{{ member.choice_name }}_PR::{{etsi_type}}_{{ t_name }}__{{ member.choice_name }}_PR_{{ member.choice_option_name }}) { toRos_{{ member.type }}(in.{{ member.choice_name }}.choice.{{ member.choice_option_name }}, out.{{ member.name }}); out.{{ member.choice_var_name }} = {{ etsi_type}}_msgs::{{ t_name }}::{{ member.constants[0].name }}; } @@ -77,44 +74,34 @@ void toRos_{{ t_name_camel }}(const {{ t_name|replace("-", "_")|replace("Regiona {% endfor %} } -void toStruct_{{ t_name_camel }}(const {{ etsi_type}}_msgs::{{ t_name_camel }}& in, {{ t_name|replace("-", "_")|replace("RegionalExtension", "RegionalExtension_364P0") }}_t& out) { - - memset(&out, 0, sizeof({{ t_name|replace("-", "_")|replace("RegionalExtension", "RegionalExtension_364P0") }}_t)); +void toStruct_{{ t_name_camel }}(const {{ etsi_type}}_msgs::{{ t_name_camel }}& in, {{ etsi_type }}_{{ t_name|replace("-", "_") }}_t& out) { + memset(&out, 0, sizeof({{etsi_type}}_{{ t_name|replace("-", "_") }}_t)); {% for member in members -%} {% if member.optional %} if (in.{{ member.name }}_is_present) { {%- if member.is_primitive %} - {{ member.asn1_type }}_t {{ member.name }}; - etsi_its_primitives_conversion::toStruct_{{ member.asn1_type }}(in.{{ member.name }}, {{ member.name }}); - out.{{ member.name_cc }} = new {{ member.asn1_type }}_t({{ member.name }}); -{%- else %} - {{ member.t_name|replace("-", "_")|replace("[]", "")|replace("RegionalExtension", "RegionalExtension_364P0") }}_t {{ member.name }}; -{%- if member.type|replace("[]", "") != "RegionalExtension" %} - toStruct_{{ member.type|replace("[]", "") }}(in.{{ member.name }}, {{ member.name }}); - out.{{ member.name_cc }} = new {{ member.t_name|replace("-", "_")|replace("[]", "")|replace("RegionalExtension", "RegionalExtension_364P0") }}_t({{ member.name }}); + out.{{member.name_cc}} = ({{ member.asn1_type }}_t*) calloc(1, sizeof({{ member.asn1_type }}_t)); + etsi_its_primitives_conversion::toStruct_{{ member.asn1_type }}(in.{{ member.name }}, *out.{{member.name_cc}}); {%- else %} - // TODO: toStruct_{{ member.type|replace("[]", "") }}(in.{{ member.name }}, {{ member.name }}); - // TODO: out.{{ member.name_cc }} = new {{ member.type|replace("[]", "")|replace("RegionalExtension", "RegionalExtension_364P0") }}_t({{ member.name }}); -{%- endif %} + out.{{member.name_cc}} = ({{etsi_type}}_{{member.t_name|replace("-", "_")|replace("[]", "")}}_t*) calloc(1, sizeof({{etsi_type}}_{{member.t_name|replace("-", "_")|replace("[]", "")}}_t)); + toStruct_{{ member.type|replace("[]", "") }}(in.{{ member.name }}, *out.{{member.name_cc}}); {%- endif %} } -{% elif member.default %} +{%- elif member.default %} {%- if member.is_primitive %} - {{ member.asn1_type }}_t {{ member.name }}; - etsi_its_primitives_conversion::toStruct_{{ member.asn1_type }}(in.{{ member.name }}, {{ member.name }}); - out.{{ member.name_cc }} = new {{ member.asn1_type }}_t({{ member.name }}); + out.{{member.name_cc}} = ({{ member.asn1_type }}_t*) calloc(1, sizeof({{ member.asn1_type }}_t)); + etsi_its_primitives_conversion::toStruct_{{ member.asn1_type }}(in.{{ member.name }}, *out.{{member.name_cc}}); {%- else %} - {{ member.type|replace("[]", "") }}_t {{ member.name }}; - toStruct_{{ member.type|replace("[]", "") }}(in.{{ member.name }}, {{ member.name }}); - out.{{ member.name_cc }} = new {{ member.type|replace("[]", "")|replace("RegionalExtension", "RegionalExtension_364P0") }}_t({{ member.name }}); + out.{{member.name_cc}} = ({{etsi_type}}_{{ member.type|replace("[]", "") }}_t*) calloc(1, sizeof({{etsi_type}}_{{ member.type|replace("[]", "") }}_t)); + toStruct_{{ member.type|replace("[]", "") }}(in.{{ member.name }}, *out.{{member.name_cc}}); {%- endif %} -{% elif not member.is_choice_var %} +{%- elif not member.is_choice_var %} {%- if member.is_primitive %} etsi_its_primitives_conversion::toStruct_{{ member.asn1_type }}(in.{{ member.name }}, out.{{ member.name_cc }}); {%- elif member.is_choice %} if (in.{{ member.choice_var_name }} == {{ etsi_type}}_msgs::{{ t_name }}::{{ member.constants[0].name }}) { toStruct_{{ member.type }}(in.{{ member.name }}, out.{{ member.choice_name }}.choice.{{ member.choice_option_name }}); - out.{{ member.choice_name }}.present = {{ t_name }}__{{ member.choice_name }}_PR::{{ t_name }}__{{ member.choice_name }}_PR_{{ member.choice_option_name }}; + out.{{ member.choice_name }}.present = {{etsi_type}}_{{ t_name }}__{{ member.choice_name }}_PR::{{etsi_type}}_{{ t_name }}__{{ member.choice_name }}_PR_{{ member.choice_option_name }}; } {%- else %} toStruct_{{ member.type|replace("[]", "") }}(in.{{ member.name }}, out.{{ member.name_cc }}); @@ -124,3 +111,4 @@ void toStruct_{{ t_name_camel }}(const {{ etsi_type}}_msgs::{{ t_name_camel }}& } } + diff --git a/utils/codegen/codegen-rust/asn1ToConversionHeader.py b/utils/codegen/codegen-rust/asn1ToConversionHeader.py index b834d5699..ee3cd3fc7 100755 --- a/utils/codegen/codegen-rust/asn1ToConversionHeader.py +++ b/utils/codegen/codegen-rust/asn1ToConversionHeader.py @@ -127,6 +127,10 @@ def main(): msg_type = "CollectivePerceptionMessage" elif args.type == "cam_ts": msg_type = "CAM" + elif args.type == "mapem_ts": + msg_type = "MAPEM" + elif args.type == "spatem_ts": + msg_type = "SPATEM" elif args.type == "vam_ts": msg_type = "VAM" diff --git a/utils/codegen/codegen-rust/asn1ToRosMsg.py b/utils/codegen/codegen-rust/asn1ToRosMsg.py index 7106164ae..7313a07ed 100755 --- a/utils/codegen/codegen-rust/asn1ToRosMsg.py +++ b/utils/codegen/codegen-rust/asn1ToRosMsg.py @@ -205,12 +205,13 @@ def main(): msg = file.read() type = os.path.splitext(os.path.basename(f))[0] - raw_def = asn1_raw[type] - comments = "# --- Auto-generated by asn1ToRosMsg.py ----------------------------------------\n\n" +\ - "# --- ASN.1 Definition ---------------------------------------------------------\n" +\ - "\n".join(["# " + line for line in raw_def.split('\n')][:-1]) + '\n' +\ - "# ------------------------------------------------------------------------------" - msg = re.sub(r"^##\s([\w-]+)\s" + type + r"\b", comments, msg, flags=re.MULTILINE) + comments = "# --- Auto-generated by asn1ToRosMsg.py ----------------------------------------\n" + if type in asn1_raw: + raw_def = asn1_raw[type] + comments += "\n# --- ASN.1 Definition ---------------------------------------------------------\n" +\ + "\n".join(["# " + line for line in raw_def.split('\n')][:-1]) + '\n' +\ + "# ------------------------------------------------------------------------------" + msg = re.sub(r".*", comments, msg, flags=re.MULTILINE) with open(f, "w") as file: file.write(msg) @@ -228,6 +229,10 @@ def main(): msg_type = "CollectivePerceptionMessage" elif args.type == "cam_ts": msg_type = "CAM" + elif args.type == "mapem_ts": + msg_type = "MAPEM" + elif args.type == "spatem_ts": + msg_type = "SPATEM" elif args.type == "vam_ts": msg_type = "VAM" diff --git a/utils/codegen/codegen-rust/rgen/src/common/mod.rs b/utils/codegen/codegen-rust/rgen/src/common/mod.rs index 36aaa6296..aeb70153d 100644 --- a/utils/codegen/codegen-rust/rgen/src/common/mod.rs +++ b/utils/codegen/codegen-rust/rgen/src/common/mod.rs @@ -63,7 +63,11 @@ pub fn to_ros_snake_case(input: &str) -> String { lowercase.push(c.to_ascii_lowercase()); } } - lowercase + match lowercase.as_str() { + "long" => "lon".to_string(), + "class" => "cls".to_string(), + _ => lowercase + } } pub fn to_ros_const_case(input: &str) -> String { @@ -72,7 +76,19 @@ pub fn to_ros_const_case(input: &str) -> String { pub fn to_ros_title_case(input: &str) -> String { if !input.is_empty() { - let input = input.replace('-', ""); + // abc-def -> AbcDef + let input = input.split('-').enumerate().map(|(i, part)| { + if i == 0 { + part.to_string() + } else { + let mut c = part.chars(); + match c.next() { + None => String::new(), + Some(f) => f.to_uppercase().collect::() + c.as_str(), + } + } + }).collect::(); + // abcDef -> AbcDef input[0..1].to_uppercase() + &input[1..] } else { input.to_string() diff --git a/utils/codegen/codegen-rust/rgen/src/conversion/utils.rs b/utils/codegen/codegen-rust/rgen/src/conversion/utils.rs index bbcfba70a..533045e2b 100644 --- a/utils/codegen/codegen-rust/rgen/src/conversion/utils.rs +++ b/utils/codegen/codegen-rust/rgen/src/conversion/utils.rs @@ -158,7 +158,7 @@ impl Conversion { ASN1Type::Integer(i) => (i.constraints.clone(), "INTEGER".into()), ASN1Type::Real(_) => (vec![], "float64".into()), ASN1Type::ObjectIdentifier(_o) => todo!(), - ASN1Type::BitString(_b) => todo!(), + ASN1Type::BitString(b) => (b.constraints.clone(), "uint8[]".into()), ASN1Type::OctetString(o) => (o.constraints.clone(), "uint8[]".into()), ASN1Type::GeneralizedTime(_o) => todo!(), ASN1Type::UTCTime(_o) => todo!(), diff --git a/utils/codegen/codegen-rust/rgen/src/msgs/bin.rs b/utils/codegen/codegen-rust/rgen/src/msgs/bin.rs index 8d5b279af..e61cdb09d 100644 --- a/utils/codegen/codegen-rust/rgen/src/msgs/bin.rs +++ b/utils/codegen/codegen-rust/rgen/src/msgs/bin.rs @@ -23,16 +23,43 @@ fn main() { let generated = &compiler_res.unwrap().generated; // Split generated code into individual messages - let re_name = Regex::new(r"##\s([\w-]+)\s(\w+)\b").unwrap(); + let re_name = Regex::new(r"\s*([\w-]+)\s*([\w-]+)\s*").unwrap(); let re_def = Regex::new(r"\n((.|\n)*?)\n").unwrap(); + + // This comments out lines containing "regional" and lines that start with "Reg" followed by an uppercase letter + // since regional extension messages are not yet supported + let re_reg = Regex::new(r"^Reg[A-Z]|^Reg-").unwrap(); + let re_regional = Regex::new(r"\b\w*regional\b").unwrap(); + let generated = generated + .lines() + .map(|line| { + if (line.contains("regional") || line.contains(" REGIONAL") || re_reg.is_match(line)) && !line.contains(""){ + format!("# {}", line) + } else { + line.to_string() + } + }) + .collect::>() + .join("\n"); + generated.split_inclusive("").for_each(|s| { if let Some(def_caps) = re_def.captures(s) { let definition = def_caps.get(1).unwrap().as_str(); + if definition.trim().is_empty() { + return; + } let name = if let Some(name_caps) = re_name.captures(definition) { name_caps.get(2).unwrap().as_str() } else { - "unknown" + panic!("Failed to extract message name from following definition:\n{}", definition); }; + + // This filters out all messages starting with "Reg" followed by an uppercase letter + // since regional extension messages are not yet supported + if re_reg.is_match(name) || re_regional.is_match(name) { + return; + } + let path = args.out.join(format!("{}.msg", name)); std::fs::write(path, definition).unwrap(); } diff --git a/utils/codegen/codegen-rust/rgen/src/msgs/builder.rs b/utils/codegen/codegen-rust/rgen/src/msgs/builder.rs index 88d61cd06..4ff834c19 100644 --- a/utils/codegen/codegen-rust/rgen/src/msgs/builder.rs +++ b/utils/codegen/codegen-rust/rgen/src/msgs/builder.rs @@ -7,7 +7,7 @@ use crate::common::*; use crate::msgs::Msgs; use crate::msgs::template::*; -pub(crate) const INNER_ARRAY_LIKE_PREFIX: &str = "Anonymous_"; +pub(crate) const INNER_ARRAY_LIKE_PREFIX: &str = "Anonymous_"; // TODO: what does this influence? macro_rules! call_template { ($self:ident, $fn:ident, $tld:ident, $($args:expr),*) => { @@ -77,7 +77,7 @@ impl Msgs { } pub fn generate_tld(&self, tld: ToplevelDefinition) -> Result { - match tld { + let result = match tld { ToplevelDefinition::Type(t) => { if t.parameterization.is_some() { return Ok("".into()); @@ -116,7 +116,8 @@ impl Msgs { ASN1Information::ObjectSet(_) => self.generate_information_object_set(i), _ => Ok("".into()), }, - } + }?; + Ok(format!("\n{}\n", result)) // leading closing tags helps with inner types } pub fn generate_typealias( @@ -661,8 +662,9 @@ impl Msgs { format!("{type_id} {}", to_ros_snake_case(variant_name)) }); + let field_enum_type_name = to_ros_title_case(&field_enum_name); field_enums.push(format!( - "## OPEN-TYPE {field_enum_name}\n{class_unique_id_type_name} choice\n{}", + "OPEN-TYPE {field_enum_type_name}\n{class_unique_id_type_name} choice\n{}", variants.fold("".to_string(), |mut acc, v| { acc.push_str(&v); acc.push_str("\n"); diff --git a/utils/codegen/codegen-rust/rgen/src/msgs/mod.rs b/utils/codegen/codegen-rust/rgen/src/msgs/mod.rs index 71612e11c..d8dfcb448 100644 --- a/utils/codegen/codegen-rust/rgen/src/msgs/mod.rs +++ b/utils/codegen/codegen-rust/rgen/src/msgs/mod.rs @@ -34,22 +34,18 @@ impl Backend for Msgs { let tlds = self.merge_tlds(tlds); let (pdus, warnings): (Vec, Vec>) = tlds.into_iter().fold((vec![], vec![]), |mut acc, tld| { - match self.generate_tld(tld) { - Ok(s) => { - s.len().gt(&0).then(|| { - acc.0.push(format!( - "\n\ - {s}\n\ - " - )) - }); - acc - } - Err(e) => { - acc.1.push(Box::new(e)); - acc - } + match self.generate_tld(tld) { + Ok(s) => { + s.len().gt(&0).then(|| { + acc.0.push(s) + }); + acc } + Err(e) => { + acc.1.push(Box::new(e)); + acc + } + } }); Ok(GeneratedModule { generated: Some(format!("{}", pdus.join("\n\n"))), diff --git a/utils/codegen/codegen-rust/rgen/src/msgs/template.rs b/utils/codegen/codegen-rust/rgen/src/msgs/template.rs index fb85c89eb..11f13af13 100644 --- a/utils/codegen/codegen-rust/rgen/src/msgs/template.rs +++ b/utils/codegen/codegen-rust/rgen/src/msgs/template.rs @@ -1,3 +1,5 @@ +use crate::common::{to_ros_title_case}; + const MSG_TEMPLATE: &str = r#"# ============================================================================== # MIT License # @@ -32,8 +34,9 @@ macro_rules! licensed { } pub fn typealias_template(comments: &str, name: &str, alias: &str, annotations: &str) -> String { + let type_name = to_ros_title_case(name); licensed!(&format!( - "## TYPE-ALIAS {name}\n\ + "TYPE-ALIAS {type_name}\n\ {comments}\n\ {alias} value\n\ {annotations}" @@ -41,16 +44,18 @@ pub fn typealias_template(comments: &str, name: &str, alias: &str, annotations: } pub fn integer_value_template(comments: &str, name: &str, vtype: &str, value: &str) -> String { + let type_name = to_ros_title_case(name); licensed!(&format!( - "## INTEGER-DEF {name}\n\ + "INTEGER-DEF {type_name}\n\ {comments}\n\ {vtype} {name} = {value}" )) } pub fn lazy_static_value_template(comments: &str, name: &str, vtype: &str, value: &str) -> String { + let type_name = to_ros_title_case(name); licensed!(&format!( - "## VALUE {name}\n\ + "VALUE {type_name}\n\ {comments}\n\ {vtype} value = {value}" )) @@ -66,8 +71,9 @@ pub fn integer_template( let typed_dvalues = dvalues .replace("{type}", &integer_type) .replace("{prefix}", ""); + let type_name = to_ros_title_case(name); licensed!(&format!( - "## INTEGER {name}\n\ + "INTEGER {type_name}\n\ {comments}\n\ {integer_type} value\n\ {constraints}\n\ @@ -87,8 +93,9 @@ pub fn bit_string_template(comments: &str, name: &str, constraints: &str, dvalue let typed_dvalues = dvalues .replace("{type}", "uint8") .replace("{prefix}", "BIT_INDEX_"); + let type_name = to_ros_title_case(name); licensed!(&format!( - "## BIT-STRING {name}\n\ + "BIT-STRING {type_name}\n\ {comments}\n\ uint8[] value\n\ uint8 bits_unused\n\ @@ -98,8 +105,9 @@ pub fn bit_string_template(comments: &str, name: &str, constraints: &str, dvalue } pub fn octet_string_template(comments: &str, name: &str, constraints: &str) -> String { + let type_name = to_ros_title_case(name); licensed!(&format!( - "## OCTET-STRING {name}\n\ + "OCTET-STRING {type_name}\n\ {comments}\n\ uint8[] value\n\ {constraints}\n" @@ -112,8 +120,9 @@ pub fn char_string_template( string_type: &str, constraints: &str, ) -> String { + let type_name = to_ros_title_case(name); licensed!(&format!( - "## {string_type} {name}\n\ + "{string_type} {type_name}\n\ {comments}\n\ string value\n\ {constraints}\n" @@ -121,8 +130,9 @@ pub fn char_string_template( } pub fn boolean_template(comments: &str, name: &str, constraints: &str) -> String { + let type_name = to_ros_title_case(name); licensed!(&format!( - "## BOOLEAN {name}\n\ + "BOOLEAN {type_name}\n\ {comments}\n\ bool value\n\ {constraints}\n" @@ -165,8 +175,9 @@ pub fn enumerated_template( enum_members: &str, annotations: &str, ) -> String { + let type_name = to_ros_title_case(name); licensed!(&format!( - "## ENUMERATED {name}\n\ + "ENUMERATED {type_name}\n\ {comments}\n\ uint8 value\n\ {enum_members}\n\ @@ -193,8 +204,9 @@ pub fn sequence_or_set_template( default_methods: &str, class_fields: &str, ) -> String { + let type_name = to_ros_title_case(name); licensed!(&vec![ - &format!("## SEQUENCE {name}"), + &format!("SEQUENCE {type_name}"), comments, members, &nested_members.join("\n"), @@ -216,8 +228,9 @@ pub fn sequence_or_set_of_template( member_type: &str, constraints: &str, ) -> String { + let type_name = to_ros_title_case(name); licensed!(&format!( - "## SEQUENCE-OF {name}\n\ + "SEQUENCE-OF {type_name}\n\ {comments}\n\ {member_type}[] array\n\ {constraints}\n" @@ -251,8 +264,9 @@ pub fn choice_template( nested_options: Vec, annotations: &str, ) -> String { + let type_name = to_ros_title_case(name); licensed!(&vec![ - &format!("## CHOICE {name}"), + &format!("CHOICE {type_name}"), comments, "uint8 choice\n", options, diff --git a/utils/codegen/codegen-rust/rgen/src/msgs/utils.rs b/utils/codegen/codegen-rust/rgen/src/msgs/utils.rs index 465a09f5a..f03701a2d 100644 --- a/utils/codegen/codegen-rust/rgen/src/msgs/utils.rs +++ b/utils/codegen/codegen-rust/rgen/src/msgs/utils.rs @@ -306,7 +306,7 @@ impl Msgs { } ASN1Type::Real(_) => (vec![], "float64".into()), ASN1Type::ObjectIdentifier(_o) => todo!(), - ASN1Type::BitString(_b) => todo!(), + ASN1Type::BitString(b) => (b.constraints.clone(), "uint8[]".into()), ASN1Type::OctetString(o) => (o.constraints.clone(), "uint8[]".into()), ASN1Type::GeneralizedTime(_o) => todo!(), ASN1Type::UTCTime(_o) => todo!(), @@ -585,7 +585,11 @@ impl Msgs { .map(|m| { self.generate_tld(ToplevelDefinition::Type(ToplevelTypeDefinition { parameterization: None, - comments: " Inner type ".into(), + comments: format!( + "--- ASN.1 Definition found in {} {}", + parent_name, + "-".repeat(47 - parent_name.len()) + ).into(), name: self.inner_name(&m.name, parent_name).to_string(), ty: m.ty.clone(), tag: None, @@ -630,7 +634,11 @@ impl Msgs { .map(|m| { self.generate_tld(ToplevelDefinition::Type(ToplevelTypeDefinition { parameterization: None, - comments: " Inner type ".into(), + comments: format!( + "--- ASN.1 Definition found in {} {}", + parent_name, + "-".repeat(47 - parent_name.len()) + ).into(), name: self.inner_name(&m.name, parent_name).to_string(), ty: m.ty.clone(), tag: None,