diff --git a/.gitlab-ci.mk b/.gitlab-ci.mk new file mode 100755 index 0000000000000000000000000000000000000000..f85a3998962b55d1aeeb25a8e41069884a6d183c --- /dev/null +++ b/.gitlab-ci.mk @@ -0,0 +1,45 @@ +ASN1_SRC := IMZM-PDU-Descriptions.asn \ + cam/CAM-PDU-Descriptions.asn \ + vam/VAM-Temp-Imports.asn \ + cdd/ITS-Container.asn + +ASN1_SRC_VALIDATE := \ + iso/iso19091_2018.asn \ + iso/iso24534-3_1_2015.asn \ + iso/iso24534-3_2_2015.asn \ + iso/ISO14816_AVIAEINumberingAndDataStructures.asn + +ASN1_PDU := IMZM +ASN1_KNOWN := DATE + +#ASN1CDIR ?= $(USERPROFILE)/Work/asn1c-fillabs +ifneq (,$(ASN1CDIR)) + ASN1C := $(ASN1CDIR)/asn1c/.libs/asn1c -S $(ASN1CDIR)/skeletons +else + ASN1C := asn1c +endif + +.PHONY: validate doc build + +validate: iso build + +doc: docs + python3 asn2md.py -o docs --brief-as-title $(ASN1_SRC) + +iso docs: + mkdir -p $@ + +build: $(ASN1_SRC) $(ASN1_SRC_VALIDATE) + $(ASN1C) -E -F -fcompound-names $(addprefix -fknown-extern-type=,$(ASN1_KNOWN)) $(addprefix -pdu=,$(ASN1_PDU)) $^ >/dev/null + +iso/iso19091_2018.asn: + curl -o $@ 'https://standards.iso.org/iso/ts/19091/ed-2/en/ISO-TS-19091-addgrp-C-2018.asn' + +iso/iso24534-3_1_2015.asn: + curl -o $@ 'https://standards.iso.org/iso/24534/-3/ISO%2024534-3%20ASN.1%20repository/ISO24534-3_ElectronicRegistrationIdentificationVehicleDataModule_ForBallot.asn' + +iso/iso24534-3_2_2015.asn: + curl -o $@ 'https://standards.iso.org/iso/24534/-3/ISO%2024534-3%20ASN.1%20repository/ISO24534-3_ElectronicRegistrationIdentificationEfcVehicleDataModule_ForBallot.asn' + +iso/ISO14816_AVIAEINumberingAndDataStructures.asn: + curl -o $@ 'https://standards.iso.org/iso/14816/ISO14816%20ASN.1%20repository/ISO14816_AVIAEINumberingAndDataStructures.asn' diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..c956871a9edf0bd3caacbe7c8a92a910e4a860ce --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,32 @@ +variables: + GIT_SUBMODULE_STRATEGY: normal + +image: danya25/asn1c:0.0.5 + +validate: + stage: test + script: make -f .gitlab-ci.mk validate + only: + changes: + - "*.asn" + +documentation: + stage: deploy + script: + - > + if ! [ -f asn2md.py ]; then + curl -o asn2md.py --header "PRIVATE-TOKEN:$CI_JOB_TOKEN" "https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py/raw?ref=master" + fi + - make -f .gitlab-ci.mk doc + - git add docs/*.md + - > + if [ -z "$(git status --untracked-files=no --porcelain)" ]; then + echo "No changes found"; + else + git commit -m "Documentation update" && + git remote rm origin && git remote add origin "https://oauth2:${CI_DOC_TOKEN}@forge.etsi.org/rep/$CI_PROJECT_PATH.git" && + git push origin "HEAD:$CI_COMMIT_REF_NAME"; + fi + only: + changes: + - "*.asn" diff --git a/IMZM-PDU-Descriptions.asn b/IMZM-PDU-Descriptions.asn index 6e99718684324931538e3d00b52ece0f63721c94..279fd258fc0dd9ac0e385be8d05e45572b39ae67 100755 --- a/IMZM-PDU-Descriptions.asn +++ b/IMZM-PDU-Descriptions.asn @@ -1,270 +1,268 @@ ---! @brief Specification of the Interference Management Zone Message ETSI TS 103 724 ---! Latest version available at @url https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 - -IMZM-PDU-Descriptions { -itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) -} - -DEFINITIONS AUTOMATIC TAGS ::= - -BEGIN - -IMPORTS ---! @brief Include ETSI TS 102 894-2 ---! Include references from @url https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn -ItsPduHeader, Latitude, Longitude, TimestampIts, ProtectedZoneRadius, ProtectedZoneID FROM ITS-Container { -itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) -ts (102894) cdd (2) version (2) -} - ---! brief Include ETSI EN 302 637-2 ---! Include references from @url https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn -BasicContainer, GenerationDeltaTime FROM CAM-PDU-Descriptions { -itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) -en (302637) cam (2) version (2) -} - ---! @brief Include ETSI TS 103 300-3 ---! This is temporary ---! Import from VAM-Temp-Imports will be changed to CDD ETSI TS 102 894-2 Release 2 when available ---! Include references from @url https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn -AreaCircular, AreaRectangle, AreaPolygon, OffsetPoint, SemiRangeLength, WGS84AngleValue FROM VAM-Temp-Imports { -itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) -ts(103300) temp-imports(255) version1(1) -} -; - ---! @defgroup IMZM Interference Management Zone Message ---! @{ - ---! @brief DF- Interference Management Zone Message Root ---! This DF includes DEs for the IMZM protocolVersion, the IMZ message type identifier _messageID_ ---! and the station identifier _stationID_ of the originating ITS-S. -IMZM ::= SEQUENCE { - --! @details header - --! The DE _protocolVersion_ is used to select the appropriate protocol decoder at the receiving - --! ITS-S. For TS 103 724 V2.1.1, the value of the DE _protocolVersion_ shall be set to 1. - --! The DE _messageID_ shall be harmonized with other V2X message identifier definitions. - --! For IMZM, the DE messageID shall be set to @todo imzm(15). - header ItsPduHeader, - imzm InterferenceManagementZoneMessage -} - ---! @brief DF- Interference Management Zone Message ---! This is the actual IMZM Payload. It shall include the time stamp of the IMZM and the applicable ---! containers of type _BasicContainer_ and _ImzmContainer_. -InterferenceManagementZoneMessage ::= SEQUENCE { - generationDeltaTime GenerationDeltaTime, -- from CAM-PDU-Descriptions - imzmParameters ImzmParameters -} - ---! @brief DF- IMZM Parameters ---! The sequence of containers in the IMZM. Other containers may be added in the future. -ImzmParameters ::= SEQUENCE { - --! @details basicContainer - --! imported from CAM-PDU-Descriptions - basicContainer BasicContainer, - --! @details imzmContainer - --! container specific to the IMZM - imzmContainer ImzmContainer, - ... -} - ---! @brief DF- IMZM Container ---! The IMZM container includes a sequence of up to 16 interference management communication zones. ---! For each interference management communication zones, it contains a sequence of interference ---! management zones per channel together with their characteristics. -ImzmContainer ::= SEQUENCE { - --! @details interferenceManagementZones - --! mapped to the DF_ProtectedCommunicationZone in ETSI TS 102 894-2 - interferenceManagementZones InterferenceManagementZones, - ... -} - ---! @brief DF- InterferenceManagementZones ---! A list of up to 16 interference management communication zones. ---! EXAMPLE: An interference management communication zone may be defined around a ---! CEN DSRC road side equipment or an urban rail operational area. ---! @category: Infrastructure information, Communication information -InterferenceManagementZones ::= SEQUENCE (SIZE(1..16)) OF InterferenceManagementZone - ---! @brief DF- InterferenceManagementZone ---! describes a zone of interferenceManagement inside which the ITS communication should ---! be restricted. ---! @category: Infrastructure information, Communication information -InterferenceManagementZone ::= SEQUENCE { - zoneDefinition ZoneDefinition, - interferenceManagementInfo InterferenceManagementInfo -} - ---! @brief DF- ZoneDefinition ---! describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. ---! @category: Infrastructure information, Communication information -ZoneDefinition::= SEQUENCE{ - --! @details interferenceManagementZoneLatitude - --! Latitude of the centre point of the interference management zone. - interferenceManagementZoneLatitude Latitude, --! from ITS-Container - --! @details interferenceManagementZoneLongitude - --! Longitude of the centre point of the interference management zone. - interferenceManagementZoneLongitude Longitude, --! from ITS-Container - --! @details interferenceManagementZoneRadius - --! Radius of the interference management zone in metres. - --! This DE is present if the data is available - interferenceManagementZoneRadius ProtectedZoneRadius OPTIONAL, --! from ITS-Container - --! @details interferenceManagementZoneID - --! Identification of the interference management zone. - --! This DE is present if the data is available. - interferenceManagementZoneID ProtectedZoneID OPTIONAL, --! from ITS-Container - --! @details interferenceManagementZoneShape - --! Shape of the interference management zone. - --! This DF is present if the data is available. - interferenceManagementZoneShape InterferenceManagementZoneShape OPTIONAL, - ... -} - ---! @brief DF- Interference Management Info ---! A list of up to 16 definitions of which interference management may be applied in the zone, ---! per affected frequency channels. ---! Note: in the case where no mitigation should be applied by the ITS-S, this is indicated ---! by the value of interferenceManagementMitigationType set to unavailable. ---! @category: Infrastructure information, Communication information -InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel - ---! @brief DF- InterferenceManagementInfoPerChannel ---! A break up of the interference management information per affected frequency channels. ---! @category: Infrastructure information, Communication information -InterferenceManagementInfoPerChannel ::= SEQUENCE { - --! @details interferenceManagementChannel - --! Characteritics of the frequency channel for which the zone - --! should be applied interference management - interferenceManagementChannel InterferenceManagementChannel, - --! @details interferenceManagementZoneType - --! Type of the interference management zone. - interferenceManagementZoneType InterferenceManagementZoneType, - --! @details interferenceManagementMitigationType - --! Type of the mitigation to be used in the interference management zone. - interferenceManagementMitigationType InterferenceManagementMitigationType OPTIONAL, - --! @details expiryTime - --! Time at which the validity of the interference management communication zone will expire. - --! This DE is present when the interference management is temporarily valid - expiryTime TimestampIts OPTIONAL, --! from ITS-Container - ... -} - ---! @brief DF- InterferenceManagementChannel ---! indicates which shared frequency channel should be applied interference management in the zone. ---! @category: Communication information -InterferenceManagementChannel ::= SEQUENCE { - --! @details centre frequency of the channel - --! @unit: 10exp+2 Hz (where exp is exponent) - centreFrequency INTEGER (1 .. 99999), - --! @details width of the channel - --! @unit: 10exp Hz (where exp is exponent) - channelWidth INTEGER (0 .. 9999), - --! @details exponent of the power of 10 - --! @unit: MHz - exponent INTEGER (0 .. 15) -} - ---! @brief DE- InterferenceManagementZoneType ---! DE that defines the type of an interference management zone, so that an ITS-S can ---! assert the actions to do while passing by such zone (e.g. reduce the transmit ---! power in case of a DSRC tolling station). ---! @unit: N/A ---! @category: Communication information -InterferenceManagementZoneType ::= ENUMERATED { - permanentCenDsrcTolling(0), --! as specified in ETSI TS 102 792 - temporaryCenDsrcTolling(1), --! as specified in ETSI TS 102 792 - unavailable(2), --! default value. Set to 2 for backwards compatibility with DSRC tolling - urbanRail(3), --! as specified in ETSI TS 103 724, clause 7 - satelliteStation(4), --! as specified in ETSI TS 103 724, clause 7 - fixedLinks(5), --! as specified in ETSI TS 103 724, clause 7 - ... -} - ---! @brief DF- Mitigation type in the interference management zone ---! Information and commands defining the required mitigation type the ---! receiving ITS-S has to use in the defined interference management zone. ---! It indicates the type of mitigation and the parameters to be used to protect the ---! potential victim in the interference management zone per channel access technology class. ---! @category: Communication information -InterferenceManagementMitigationType ::= SEQUENCE { - --! @details Default value to be used when data is not available. - unavailable BOOLEAN OPTIONAL, - mitigationForTechnologies MitigationForTechnologies -} - ---! @brief DF- Mitigation type container for the different channel access technology classes ---! Class of parameters for the relevant channel access technology classes, ---! as specified in ETSI TS 103 724, clause 7. ---! @category: Communication information -MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyClass - ---! @brief DF- Mitigation type container per channel access technology class ---! Class of parameters for the specific technology indicated in the container. ---! All parameters are optional, as they may not apply to some of the technologies or ---! interference management zone types. Specification details are in ETSI TS 103 724, clause 7. ---! @category: Communication information -MitigationPerTechnologyClass ::= SEQUENCE { - --! @details channel access technology in which this mitigation is applied. - --! @unit: N/A - accessTechnologyClass AccessTechnologyClass, - --! @details duty cycle limit. - --! @unit: 0.01% steps - lowDutyCycle INTEGER (0 .. 10000) OPTIONAL, - --! @details power reduction. - --! @unit: dB - powerReduction INTEGER (0 .. 30) OPTIONAL, - --! @details Idle time limit as defined in ETSI TS 103 175. - --! @unit: ms - dmcToffLimit INTEGER (0 .. 1200) OPTIONAL, - --! @details Transmission duration limit, as defined in ETSI EN 302 571. - --! @unit: ms - dmcTonLimit INTEGER (0 .. 20) OPTIONAL, - ... -} - ---! @brief DE- channel access technology class ---! Access technology to which the mitigation type applies. ---! @category: Communication information -AccessTechnologyClass ::= ENUMERATED { - unavailable(0), --! default value. - itsg5Class(1), --! ITS-G5 access technology class. - ltev2xClass(2), --! LTE-V2X access technology class. - nrv2xClass(3), --! NR-V2X access technology class. - ... -} - ---! @brief DF- Shape of the interference management zone ---! Bounding box of an interference management zone ---! @category: GeoReference information -InterferenceManagementZoneShape::= CHOICE { - rectangle AreaRectangle, --! imported from VAM-Temp-Imports - circle AreaCircular, --! imported from VAM-Temp-Imports - polygon AreaPolygon, --! imported from VAM-Temp-Imports - ellipse AreaEllipse, --! could not be imported from another specification yet - ... -} - ---! @brief DF- Area Ellipse ---! Area Ellipse copied from CPM TR 103 562. Will be removed when CDD Release 2 is available. ---! Describes an elliptical area. The ellipse is centred about the reference point ---! of the ITS-S or about the nodeCenterPoint (if provided). ---! @category: GeoReference information -AreaEllipse ::= SEQUENCE { - --! @details nodeCenterPoint - --! Optional offset point about which the ellipse is centred with respect to the reference - --! position of the ITS-S. - nodeCenterPoint OffsetPoint OPTIONAL, - --! @details semiMajorRangeLength - --! Minor radius of the ellipse. - semiMajorRangeLength SemiRangeLength, - --! @details semiMinorRangeLength - --! Major radius of the ellipse. - semiMinorRangeLength SemiRangeLength, - --! @details semiMajorRangeOrientation - --! Orientation of the semiMajorRangeLength of the ellipse in the WGS84 coordinate system. - semiMajorRangeOrientation WGS84AngleValue -} ---! @} -END +--! @brief Specification of the Interference Management Zone Message ETSI TS 103 724 +--! Latest version available at @url https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 + +IMZM-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts103724 (103724) imzm (1) version1 (1) +} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS +--! @brief Include ETSI TS 102 894-2 +--! Include references from @url https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn +ItsPduHeader, Latitude, Longitude, TimestampIts, ProtectedZoneRadius, ProtectedZoneID FROM ITS-Container { +itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) +ts (102894) cdd (2) version (2) +} + +--! @brief Include ETSI EN 302 637-2 +--! Include references from @url https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn +BasicContainer, GenerationDeltaTime FROM CAM-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) +en (302637) cam (2) version (2) +} + +--! @brief Include ETSI TS 103 300-3 +--! All data types, imported from `VAM-Temp-Imports` will be imported from the CDD ETSI TS 102 894-2 Release 2 when available +--! Include references from @url https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn +AreaCircular, AreaRectangle, AreaPolygon, OffsetPoint, SemiRangeLength, WGS84AngleValue FROM VAM-Temp-Imports { +itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) +ts(103300) temp-imports(255) version1(1) +} +; + +--! @brief DF: Interference Management Zone Message Root +--! This DF includes DEs for the IMZM `protocolVersion`, the IMZ message type identifier `messageID` +--! and the station identifier `stationID` of the originating ITS-S. +IMZM ::= SEQUENCE { + --! @details header + --! - The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving + --! ITS-S. For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to 1. + --! - The DE `messageID` shall be harmonized with other V2X message identifier definitions. + --! For IMZM, the DE messageID shall be set to `imzm(15)`. + header ItsPduHeader, + imzm InterferenceManagementZoneMessage +} + +--! @brief DF: Interference Management Zone Message +--! This is the actual IMZM Payload. It shall include the time stamp of the IMZM and the applicable +--! containers of type `BasicContainer` and `ImzmContainer`. +InterferenceManagementZoneMessage ::= SEQUENCE { + generationDeltaTime GenerationDeltaTime, -- from CAM-PDU-Descriptions + imzmParameters ImzmParameters +} + +--! @brief DF: IMZM Parameters +--! The sequence of containers in the IMZM. Other containers may be added in the future. +ImzmParameters ::= SEQUENCE { + --! @details basicContainer + --! imported from CAM-PDU-Descriptions + basicContainer BasicContainer, + --! @details imzmContainer + --! container specific to the IMZM + imzmContainer ImzmContainer, + ... +} + +--! @brief DF: IMZM Container +--! The IMZM container includes a sequence of up to 16 interference management zones. +--! For each interference management zones, it contains a sequence of interference +--! management zones per channel together with their characteristics. +ImzmContainer ::= SEQUENCE { + --! @details interferenceManagementZones + --! mapped to the DF_ProtectedCommunicationZone in ETSI TS 102 894-2 + interferenceManagementZones InterferenceManagementZones, + ... +} + +--! @brief DF: List of Interference Management Zones +--! A list of up to 16 interference management zones. +--! +--! **EXAMPLE**: An interference management communication zone may be defined around a +--! CEN DSRC road side equipment or an urban rail operational area. +--! @category: Infrastructure information, Communication information +InterferenceManagementZones ::= SEQUENCE (SIZE(1..16), ...) OF InterferenceManagementZone + +--! @brief DF: Interference Management Zone +--! Describes a zone of interferenceManagement inside which the ITS communication should +--! be restricted. +--! @category: Infrastructure information, Communication information +InterferenceManagementZone ::= SEQUENCE { + zoneDefinition ZoneDefinition, + interferenceManagementInfo InterferenceManagementInfo +} + +--! @brief DF: Zone Definition +--! Describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. +--! @category: Infrastructure information, Communication information +ZoneDefinition::= SEQUENCE{ + --! @details interferenceManagementZoneLatitude + --! Latitude of the centre point of the interference management zone. + interferenceManagementZoneLatitude Latitude, -- from ITS-Container + --! @details interferenceManagementZoneLongitude + --! Longitude of the centre point of the interference management zone. + interferenceManagementZoneLongitude Longitude, -- from ITS-Container + --! @details interferenceManagementZoneRadius + --! Radius of the interference management zone in metres. + --! This DE is present if the data is available + interferenceManagementZoneRadius ProtectedZoneRadius OPTIONAL, -- from ITS-Container + --! @details interferenceManagementZoneID + --! Identification of the interference management zone. + --! This DE is present if the data is available. + interferenceManagementZoneID ProtectedZoneID OPTIONAL, -- from ITS-Container + --! @details interferenceManagementZoneShape + --! Shape of the interference management zone. + --! This DF is present if the data is available. + interferenceManagementZoneShape InterferenceManagementZoneShape OPTIONAL, + ... +} + +--! @brief DF: Interference Management Information +--! A list of up to 16 definitions containing which interference management may be applied in the zone, +--! per affected frequency channels. +--! +--! **Note**: in the case where no mitigation should be applied by the ITS-S, this is indicated +--! by the value of interferenceManagementMitigationType set to unavailable. +--! @category: Infrastructure information, Communication information +InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel + +--! @brief DF: Interference Management Information Per Channel +--! A break up of the interference management information per affected frequency channels. +--! @category: Infrastructure information, Communication information +InterferenceManagementInfoPerChannel ::= SEQUENCE { + --! @details interferenceManagementChannel + --! Characteritics of the frequency channel for which the zone + --! should be applied interference management + interferenceManagementChannel InterferenceManagementChannel, + --! @details interferenceManagementZoneType + --! Type of the interference management zone. + interferenceManagementZoneType InterferenceManagementZoneType, + --! @details interferenceManagementMitigationType + --! Type of the mitigation to be used in the interference management zone. + interferenceManagementMitigationType InterferenceManagementMitigationType OPTIONAL, + --! @details expiryTime + --! Time at which the validity of the interference management communication zone will expire. + --! This DE is present when the interference management is temporarily valid + expiryTime TimestampIts OPTIONAL, -- from ITS-Container + ... +} + +--! @brief DF: InterferenceManagementChannel +--! Indicates which shared frequency channel should be applied interference management in the zone. +--! @category: Communication information +InterferenceManagementChannel ::= SEQUENCE { + --! @details centre frequency of the channel + --! @unit: 10exp+2 Hz (where exp is exponent) + centreFrequency INTEGER (1 .. 99999), + --! @details width of the channel + --! @unit: 10exp Hz (where exp is exponent) + channelWidth INTEGER (0 .. 9999), + --! @details exponent of the power of 10 + --! @unit: N/A + exponent INTEGER (0 .. 15) +} + +--! @brief DE: InterferenceManagementZoneType +--! defines the type of an interference management zone, so that an ITS-S can +--! assert the actions to do while passing by such zone (e.g. reduce the transmit +--! power in case of a DSRC tolling station). +--! @unit: N/A +--! @category: Communication information +InterferenceManagementZoneType ::= ENUMERATED { + permanentCenDsrcTolling(0), --!< as specified in ETSI TS 102 792 + temporaryCenDsrcTolling(1), --!< as specified in ETSI TS 102 792 + unavailable(2), --!< default value. Set to 2 for backwards compatibility with DSRC tolling + urbanRail(3), --!< as specified in ETSI TS 103 724, clause 7 + satelliteStation(4), --!< as specified in ETSI TS 103 724, clause 7 + fixedLinks(5), --!< as specified in ETSI TS 103 724, clause 7 + ... +} + +--! @brief DF: Mitigation type in the interference management zone +--! Information and commands defining the required mitigation type the +--! receiving ITS-S has to use in the defined interference management zone. +--! It indicates the type of mitigation and the parameters to be used to protect the +--! potential victim in the interference management zone per channel access technology class. +--! @category: Communication information +InterferenceManagementMitigationType ::= CHOICE { + --! @details unavailable is the default value to be used when data is not available. + unavailable NULL, + mitigationForTechnologies MitigationForTechnologies +} + +--! @brief DF: Mitigation type container for the different channel access technology classes +--! Class of parameters for the relevant channel access technology classes, +--! as specified in ETSI TS 103 724, clause 7. +--! @category: Communication information +MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyClass + +--! @brief DF: Mitigation type container per channel access technology class +--! Class of parameters for the specific technology indicated in the container. +--! All parameters are optional, as they may not apply to some of the technologies or +--! interference management zone types. Specification details are in ETSI TS 103 724, clause 7. +--! @category: Communication information +MitigationPerTechnologyClass ::= SEQUENCE { + --! @details channel access technology in which this mitigation is applied. + --! @unit: N/A + accessTechnologyClass AccessTechnologyClass, + --! @details duty cycle limit. + --! @unit: 0.01% steps + lowDutyCycle INTEGER (0 .. 10000) OPTIONAL, + --! @details power reduction. + --! @unit: dB + powerReduction INTEGER (0 .. 30) OPTIONAL, + --! @details Idle time limit as defined in ETSI TS 103 175. + --! @unit: ms + dmcToffLimit INTEGER (0 .. 1200) OPTIONAL, + --! @details Transmission duration limit, as defined in ETSI EN 302 571. + --! @unit: ms + dmcTonLimit INTEGER (0 .. 20) OPTIONAL, + ... +} + +--! @brief DE: channel access technology class +--! Access technology to which the mitigation type applies. +--! @category: Communication information +AccessTechnologyClass ::= ENUMERATED { + any(0), --!< any access technology class (see clause 7 of TS 103 724). + itsg5Class(1), --!< ITS-G5 access technology class. + ltev2xClass(2), --!< LTE-V2X access technology class. + nrv2xClass(3), --!< NR-V2X access technology class. + ... +} + +--! @brief DF: Shape of the interference management zone +--! Bounding box of an interference management zone +--! @category: GeoReference information +InterferenceManagementZoneShape::= CHOICE { + rectangle AreaRectangle, -- imported from VAM-Temp-Imports + circle AreaCircular, -- imported from VAM-Temp-Imports + polygon AreaPolygon, -- imported from VAM-Temp-Imports + ellipse AreaEllipse, -- could not be imported from another specification yet + ... +} + +--! @brief DF: Area Ellipse +--! Area Ellipse copied from CPM TR 103 562. Will be removed when CDD Release 2 is available. +--! Describes an elliptical area. The ellipse is centred about the reference point +--! of the ITS-S or about the nodeCenterPoint (if provided). +--! @category: GeoReference information +AreaEllipse ::= SEQUENCE { + --! @details nodeCenterPoint + --! Optional offset point about which the ellipse is centred with respect to the reference + --! position of the ITS-S. + nodeCenterPoint OffsetPoint OPTIONAL, + --! @details semiMajorRangeLength + --! Minor radius of the ellipse. + semiMajorRangeLength SemiRangeLength, + --! @details semiMinorRangeLength + --! Major radius of the ellipse. + semiMinorRangeLength SemiRangeLength, + --! @details semiMajorRangeOrientation + --! Orientation of the semiMajorRangeLength of the ellipse in the WGS84 coordinate system. + semiMajorRangeOrientation WGS84AngleValue +} + +END diff --git a/README.md b/README.md index 3ebdd7e556d07aa3cb59514903a51824b99d1975..4ab0af7af5bac1d6da05d4083b35d16b1190f8f8 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # ASN.1 module for PZM [ETSI TS 103 724] -This repository will contain the ASN.1 module for ETSI TS 103 724 - Protected Zone beacon message +This repository will contain the ASN.1 module for ETSI Interference Management Zone Service in the file **IMZM-PDU-Descriptions.asn** +* The module is published with the **[ETSI TS 103 724 v2.1.1](http://www.etsi.org/deliver/etsi_ts/103700_103799/103724/02.01.01_60/ts_103274v020101p.pdf)**. -* Note: The base specification is in the draft state ## License diff --git a/docs/CAM-PDU-Descriptions.md b/docs/CAM-PDU-Descriptions.md new file mode 100755 index 0000000000000000000000000000000000000000..5831bd432403cf2805d329a04185478334fecfb7 --- /dev/null +++ b/docs/CAM-PDU-Descriptions.md @@ -0,0 +1,269 @@ +# ASN.1 module CAM-PDU-Descriptions + OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (2) }_ + +## Imports: + * **[ITS-Container](ITS-Container.md)** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*
+ +## Data Elements: +### CAM + +Fields: +* header [**ItsPduHeader**](ITS-Container.md#ItsPduHeader)
+* cam [**CoopAwareness**](#CoopAwareness)
+```asn1 +CAM ::= SEQUENCE { + header ItsPduHeader, + cam CoopAwareness +} +``` + +### CoopAwareness + +Fields: +* generationDeltaTime [**GenerationDeltaTime**](CAM-PDU-Descriptions.md#GenerationDeltaTime)
+* camParameters [**CamParameters**](#CamParameters)
+```asn1 +CoopAwareness ::= SEQUENCE { + generationDeltaTime GenerationDeltaTime, + camParameters CamParameters +} +``` + +### CamParameters + +Fields: +* basicContainer [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer)
+* highFrequencyContainer [**HighFrequencyContainer**](#HighFrequencyContainer)
+* lowFrequencyContainer [**LowFrequencyContainer**](#LowFrequencyContainer) OPTIONAL
+* specialVehicleContainer [**SpecialVehicleContainer**](#SpecialVehicleContainer) OPTIONAL
+```asn1 +CamParameters ::= SEQUENCE { + basicContainer BasicContainer, + highFrequencyContainer HighFrequencyContainer, + lowFrequencyContainer LowFrequencyContainer OPTIONAL, + specialVehicleContainer SpecialVehicleContainer OPTIONAL, + ... +} +``` + +### HighFrequencyContainer + +Fields: +* basicVehicleContainerHighFrequency [**BasicVehicleContainerHighFrequency**](#BasicVehicleContainerHighFrequency)
+* rsuContainerHighFrequency [**RSUContainerHighFrequency**](#RSUContainerHighFrequency)
+```asn1 +HighFrequencyContainer ::= CHOICE { + basicVehicleContainerHighFrequency BasicVehicleContainerHighFrequency, + rsuContainerHighFrequency RSUContainerHighFrequency, + ... +} +``` + +### LowFrequencyContainer + +Fields: +* basicVehicleContainerLowFrequency [**BasicVehicleContainerLowFrequency**](#BasicVehicleContainerLowFrequency)
+```asn1 +LowFrequencyContainer ::= CHOICE { + basicVehicleContainerLowFrequency BasicVehicleContainerLowFrequency, + ... +} +``` + +### SpecialVehicleContainer + +Fields: +* publicTransportContainer [**PublicTransportContainer**](#PublicTransportContainer)
+* specialTransportContainer [**SpecialTransportContainer**](#SpecialTransportContainer)
+* dangerousGoodsContainer [**DangerousGoodsContainer**](#DangerousGoodsContainer)
+* roadWorksContainerBasic [**RoadWorksContainerBasic**](#RoadWorksContainerBasic)
+* rescueContainer [**RescueContainer**](#RescueContainer)
+* emergencyContainer [**EmergencyContainer**](#EmergencyContainer)
+* safetyCarContainer [**SafetyCarContainer**](#SafetyCarContainer)
+```asn1 +SpecialVehicleContainer ::= CHOICE { + publicTransportContainer PublicTransportContainer, + specialTransportContainer SpecialTransportContainer, + dangerousGoodsContainer DangerousGoodsContainer, + roadWorksContainerBasic RoadWorksContainerBasic, + rescueContainer RescueContainer, + emergencyContainer EmergencyContainer, + safetyCarContainer SafetyCarContainer, + ... +} +``` + +### BasicContainer + +Fields: +* stationType [**StationType**](ITS-Container.md#StationType)
+* referencePosition [**ReferencePosition**](ITS-Container.md#ReferencePosition)
+```asn1 +BasicContainer ::= SEQUENCE { + stationType StationType, + referencePosition ReferencePosition, + ... +} +``` + +### BasicVehicleContainerHighFrequency + +Fields: +* heading [**Heading**](ITS-Container.md#Heading)
+* speed [**Speed**](ITS-Container.md#Speed)
+* driveDirection [**DriveDirection**](ITS-Container.md#DriveDirection)
+* vehicleLength [**VehicleLength**](ITS-Container.md#VehicleLength)
+* vehicleWidth [**VehicleWidth**](ITS-Container.md#VehicleWidth)
+* longitudinalAcceleration [**LongitudinalAcceleration**](ITS-Container.md#LongitudinalAcceleration)
+* curvature [**Curvature**](ITS-Container.md#Curvature)
+* curvatureCalculationMode [**CurvatureCalculationMode**](ITS-Container.md#CurvatureCalculationMode)
+* yawRate [**YawRate**](ITS-Container.md#YawRate)
+* accelerationControl [**AccelerationControl**](ITS-Container.md#AccelerationControl) OPTIONAL
+* lanePosition [**LanePosition**](ITS-Container.md#LanePosition) OPTIONAL
+* steeringWheelAngle [**SteeringWheelAngle**](ITS-Container.md#SteeringWheelAngle) OPTIONAL
+* lateralAcceleration [**LateralAcceleration**](ITS-Container.md#LateralAcceleration) OPTIONAL
+* verticalAcceleration [**VerticalAcceleration**](ITS-Container.md#VerticalAcceleration) OPTIONAL
+* performanceClass [**PerformanceClass**](ITS-Container.md#PerformanceClass) OPTIONAL
+* cenDsrcTollingZone [**CenDsrcTollingZone**](ITS-Container.md#CenDsrcTollingZone) OPTIONAL
+```asn1 +BasicVehicleContainerHighFrequency ::= SEQUENCE { + heading Heading, + speed Speed, + driveDirection DriveDirection, + vehicleLength VehicleLength, + vehicleWidth VehicleWidth, + longitudinalAcceleration LongitudinalAcceleration, + curvature Curvature, + curvatureCalculationMode CurvatureCalculationMode, + yawRate YawRate, + accelerationControl AccelerationControl OPTIONAL, + lanePosition LanePosition OPTIONAL, + steeringWheelAngle SteeringWheelAngle OPTIONAL, + lateralAcceleration LateralAcceleration OPTIONAL, + verticalAcceleration VerticalAcceleration OPTIONAL, + performanceClass PerformanceClass OPTIONAL, + cenDsrcTollingZone CenDsrcTollingZone OPTIONAL +} +``` + +### BasicVehicleContainerLowFrequency + +Fields: +* vehicleRole [**VehicleRole**](ITS-Container.md#VehicleRole)
+* exteriorLights [**ExteriorLights**](ITS-Container.md#ExteriorLights)
+* pathHistory [**PathHistory**](ITS-Container.md#PathHistory)
+```asn1 +BasicVehicleContainerLowFrequency ::= SEQUENCE { + vehicleRole VehicleRole, + exteriorLights ExteriorLights, + pathHistory PathHistory +} +``` + +### PublicTransportContainer + +Fields: +* embarkationStatus [**EmbarkationStatus**](ITS-Container.md#EmbarkationStatus)
+* ptActivation [**PtActivation**](ITS-Container.md#PtActivation) OPTIONAL
+```asn1 +PublicTransportContainer ::= SEQUENCE { + embarkationStatus EmbarkationStatus, + ptActivation PtActivation OPTIONAL +} +``` + +### SpecialTransportContainer + +Fields: +* specialTransportType [**SpecialTransportType**](ITS-Container.md#SpecialTransportType)
+* lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
+```asn1 +SpecialTransportContainer ::= SEQUENCE { + specialTransportType SpecialTransportType, + lightBarSirenInUse LightBarSirenInUse +} +``` + +### DangerousGoodsContainer + +Fields: +* dangerousGoodsBasic [**DangerousGoodsBasic**](ITS-Container.md#DangerousGoodsBasic)
+```asn1 +DangerousGoodsContainer ::= SEQUENCE { + dangerousGoodsBasic DangerousGoodsBasic + } +``` + +### RoadWorksContainerBasic + +Fields: +* roadworksSubCauseCode [**RoadworksSubCauseCode**](ITS-Container.md#RoadworksSubCauseCode) OPTIONAL
+* lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
+* closedLanes [**ClosedLanes**](ITS-Container.md#ClosedLanes) OPTIONAL
+```asn1 +RoadWorksContainerBasic ::= SEQUENCE { + roadworksSubCauseCode RoadworksSubCauseCode OPTIONAL, + lightBarSirenInUse LightBarSirenInUse, + closedLanes ClosedLanes OPTIONAL + } +``` + +### RescueContainer + +Fields: +* lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
+```asn1 +RescueContainer ::= SEQUENCE { + lightBarSirenInUse LightBarSirenInUse +} +``` + +### EmergencyContainer + +Fields: +* lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
+* incidentIndication [**CauseCode**](ITS-Container.md#CauseCode) OPTIONAL
+* emergencyPriority [**EmergencyPriority**](ITS-Container.md#EmergencyPriority) OPTIONAL
+```asn1 +EmergencyContainer ::= SEQUENCE { + lightBarSirenInUse LightBarSirenInUse, + incidentIndication CauseCode OPTIONAL, + emergencyPriority EmergencyPriority OPTIONAL +} +``` + +### SafetyCarContainer + +Fields: +* lightBarSirenInUse [**LightBarSirenInUse**](ITS-Container.md#LightBarSirenInUse)
+* incidentIndication [**CauseCode**](ITS-Container.md#CauseCode) OPTIONAL
+* trafficRule [**TrafficRule**](ITS-Container.md#TrafficRule) OPTIONAL
+* speedLimit [**SpeedLimit**](ITS-Container.md#SpeedLimit) OPTIONAL
+```asn1 +SafetyCarContainer ::= SEQUENCE { + lightBarSirenInUse LightBarSirenInUse, + incidentIndication CauseCode OPTIONAL, + trafficRule TrafficRule OPTIONAL, + speedLimit SpeedLimit OPTIONAL +} +``` + +### RSUContainerHighFrequency + +Fields: +* protectedCommunicationZonesRSU [**ProtectedCommunicationZonesRSU**](ITS-Container.md#ProtectedCommunicationZonesRSU) OPTIONAL
+```asn1 +RSUContainerHighFrequency ::= SEQUENCE { + protectedCommunicationZonesRSU ProtectedCommunicationZonesRSU OPTIONAL, + ... +} +``` + +### GenerationDeltaTime + +```asn1 +GenerationDeltaTime ::= INTEGER { oneMilliSec(1) } (0..65535) +``` + + + diff --git a/docs/IMZM-PDU-Descriptions.md b/docs/IMZM-PDU-Descriptions.md new file mode 100644 index 0000000000000000000000000000000000000000..2a52aaa8494824a485fd08fd1740ce1465a1ee1b --- /dev/null +++ b/docs/IMZM-PDU-Descriptions.md @@ -0,0 +1,419 @@ +# ASN.1 module IMZM-PDU-Descriptions + OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103724) imzm (1) version (1) }_ + Specification of the Interference Management Zone Message ETSI TS 103 724 + Latest version available at https://forge.etsi.org/rep/ITS/asn1/imzm_ts103724 + +## Imports: + * **[ITS-Container](ITS-Container.md)** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }*
+ Include ETSI TS 102 894-2 + Include references from https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/master/ITS-Container.asn + + * **[CAM-PDU-Descriptions](CAM-PDU-Descriptions.md)** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (2) }*
+ Include ETSI EN 302 637-2 + Include references from https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/master/CAM-PDU-Descriptions.asn + + * **[VAM-Temp-Imports](VAM-Temp-Imports.md)** *{ itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1) }*
+ Include ETSI TS 103 300-3 + All data types, imported from `VAM-Temp-Imports` will be imported from the CDD ETSI TS 102 894-2 Release 2 when available + Include references from https://forge.etsi.org/rep/ITS/asn1/vam-ts103300_3/blob/master/VAM-Temp-Imports.asn + +## Data Elements: +### IMZM + + DF: Interference Management Zone Message Root + This DF includes DEs for the IMZM `protocolVersion`, the IMZ message type identifier `messageID` + and the station identifier `stationID` of the originating ITS-S. + +Fields: +* header [**ItsPduHeader**](ITS-Container.md#ItsPduHeader)
+ header + - The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving + ITS-S. For TS 103 724 V2.1.1, the value of the DE `protocolVersion` shall be set to 1. + - The DE `messageID` shall be harmonized with other V2X message identifier definitions. + For IMZM, the DE messageID shall be set to `imzm(15)`. +* imzm [**InterferenceManagementZoneMessage**](#InterferenceManagementZoneMessage)
+```asn1 +IMZM ::= SEQUENCE { + header ItsPduHeader, + imzm InterferenceManagementZoneMessage +} +``` + +### InterferenceManagementZoneMessage + + DF: Interference Management Zone Message + This is the actual IMZM Payload. It shall include the time stamp of the IMZM and the applicable + containers of type `BasicContainer` and `ImzmContainer`. + +Fields: +* generationDeltaTime [**GenerationDeltaTime**](CAM-PDU-Descriptions.md#GenerationDeltaTime)
+* imzmParameters [**ImzmParameters**](#ImzmParameters)
+```asn1 +InterferenceManagementZoneMessage ::= SEQUENCE { + generationDeltaTime GenerationDeltaTime, + imzmParameters ImzmParameters +} +``` + +### ImzmParameters + + DF: IMZM Parameters + The sequence of containers in the IMZM. Other containers may be added in the future. + +Fields: +* basicContainer [**BasicContainer**](CAM-PDU-Descriptions.md#BasicContainer)
+ basicContainer + imported from CAM-PDU-Descriptions +* imzmContainer [**ImzmContainer**](#ImzmContainer)
+ imzmContainer + container specific to the IMZM +```asn1 +ImzmParameters ::= SEQUENCE { + basicContainer BasicContainer, + imzmContainer ImzmContainer, + ... +} +``` + +### ImzmContainer + + DF: IMZM Container + The IMZM container includes a sequence of up to 16 interference management zones. + For each interference management zones, it contains a sequence of interference + management zones per channel together with their characteristics. + +Fields: +* interferenceManagementZones [**InterferenceManagementZones**](#InterferenceManagementZones)
+ interferenceManagementZones + mapped to the DF_ProtectedCommunicationZone in ETSI TS 102 894-2 +```asn1 +ImzmContainer ::= SEQUENCE { + interferenceManagementZones InterferenceManagementZones, + ... +} +``` + +### InterferenceManagementZones + + DF: List of Interference Management Zones + A list of up to 16 interference management zones. + + **EXAMPLE**: An interference management communication zone may be defined around a + CEN DSRC road side equipment or an urban rail operational area. + +    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) + + + +```asn1 +InterferenceManagementZones ::= SEQUENCE (SIZE(1..16), ...) OF InterferenceManagementZone +``` + +### InterferenceManagementZone + + DF: Interference Management Zone + Describes a zone of interferenceManagement inside which the ITS communication should + be restricted. + +    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) + +Fields: +* zoneDefinition [**ZoneDefinition**](#ZoneDefinition)
+* interferenceManagementInfo [**InterferenceManagementInfo**](#InterferenceManagementInfo)
+```asn1 +InterferenceManagementZone ::= SEQUENCE { + zoneDefinition ZoneDefinition, + interferenceManagementInfo InterferenceManagementInfo +} +``` + +### ZoneDefinition + + DF: Zone Definition + Describes the zone where band sharing occurs. When reusing CDD Rel.1 types, names are unchanged. + +    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) + +Fields: +* interferenceManagementZoneLatitude [**Latitude**](ITS-Container.md#Latitude)
+ interferenceManagementZoneLatitude + Latitude of the centre point of the interference management zone. +* interferenceManagementZoneLongitude [**Longitude**](ITS-Container.md#Longitude)
+ interferenceManagementZoneLongitude + Longitude of the centre point of the interference management zone. +* interferenceManagementZoneRadius [**ProtectedZoneRadius**](ITS-Container.md#ProtectedZoneRadius) OPTIONAL
+ interferenceManagementZoneRadius + Radius of the interference management zone in metres. + This DE is present if the data is available +* interferenceManagementZoneID [**ProtectedZoneID**](ITS-Container.md#ProtectedZoneID) OPTIONAL
+ interferenceManagementZoneID + Identification of the interference management zone. + This DE is present if the data is available. +* interferenceManagementZoneShape [**InterferenceManagementZoneShape**](#InterferenceManagementZoneShape) OPTIONAL
+ interferenceManagementZoneShape + Shape of the interference management zone. + This DF is present if the data is available. +```asn1 +ZoneDefinition::= SEQUENCE{ + interferenceManagementZoneLatitude Latitude, + interferenceManagementZoneLongitude Longitude, + interferenceManagementZoneRadius ProtectedZoneRadius OPTIONAL, + interferenceManagementZoneID ProtectedZoneID OPTIONAL, + interferenceManagementZoneShape InterferenceManagementZoneShape OPTIONAL, + ... +} +``` + +### InterferenceManagementInfo + + DF: Interference Management Information + A list of up to 16 definitions containing which interference management may be applied in the zone, + per affected frequency channels. + + **Note**: in the case where no mitigation should be applied by the ITS-S, this is indicated + by the value of interferenceManagementMitigationType set to unavailable. + +    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) + + + +```asn1 +InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel +``` + +### InterferenceManagementInfoPerChannel + + DF: Interference Management Information Per Channel + A break up of the interference management information per affected frequency channels. + +    **Categories**: [Infrastructure information](#Infrastructure+information) [Communication information](#Communication+information) + +Fields: +* interferenceManagementChannel [**InterferenceManagementChannel**](#InterferenceManagementChannel)
+ interferenceManagementChannel + Characteritics of the frequency channel for which the zone + should be applied interference management +* interferenceManagementZoneType [**InterferenceManagementZoneType**](#InterferenceManagementZoneType)
+ interferenceManagementZoneType + Type of the interference management zone. +* interferenceManagementMitigationType [**InterferenceManagementMitigationType**](#InterferenceManagementMitigationType) OPTIONAL
+ interferenceManagementMitigationType + Type of the mitigation to be used in the interference management zone. +* expiryTime [**TimestampIts**](ITS-Container.md#TimestampIts) OPTIONAL
+ expiryTime + Time at which the validity of the interference management communication zone will expire. + This DE is present when the interference management is temporarily valid +```asn1 +InterferenceManagementInfoPerChannel ::= SEQUENCE { + interferenceManagementChannel InterferenceManagementChannel, + interferenceManagementZoneType InterferenceManagementZoneType, + interferenceManagementMitigationType InterferenceManagementMitigationType OPTIONAL, + expiryTime TimestampIts OPTIONAL, + ... +} +``` + +### InterferenceManagementChannel + + DF: InterferenceManagementChannel + Indicates which shared frequency channel should be applied interference management in the zone. + +    **Categories**: [Communication information](#Communication+information) + +Fields: +* centreFrequency **INTEGER** (1 .. 99999)
+ centre frequency of the channel +
    **Unit**: _10exp+2 Hz (where exp is exponent)_ + +* channelWidth **INTEGER** (0 .. 9999)
+ width of the channel +
    **Unit**: _10exp Hz (where exp is exponent)_ + +* exponent **INTEGER** (0 .. 15)
+ exponent of the power of 10 +
    **Unit**: _N/A_ + +```asn1 +InterferenceManagementChannel ::= SEQUENCE { + centreFrequency INTEGER (1 .. 99999), + channelWidth INTEGER (0 .. 9999), + exponent INTEGER (0 .. 15) +} +``` + +### InterferenceManagementZoneType + + DE: InterferenceManagementZoneType + defines the type of an interference management zone, so that an ITS-S can + assert the actions to do while passing by such zone (e.g. reduce the transmit + power in case of a DSRC tolling station). + +    **Categories**: [Communication information](#Communication+information) + +
    **Unit**: _N/A_ + + + +```asn1 +InterferenceManagementZoneType ::= ENUMERATED { + permanentCenDsrcTolling(0), + temporaryCenDsrcTolling(1), + unavailable(2), + urbanRail(3), + satelliteStation(4), + fixedLinks(5), + ... +} +``` + +### InterferenceManagementMitigationType + + DF: Mitigation type in the interference management zone + Information and commands defining the required mitigation type the + receiving ITS-S has to use in the defined interference management zone. + It indicates the type of mitigation and the parameters to be used to protect the + potential victim in the interference management zone per channel access technology class. + +    **Categories**: [Communication information](#Communication+information) + +Fields: +* unavailable **NULL**
+ unavailable is the default value to be used when data is not available. +* mitigationForTechnologies [**MitigationForTechnologies**](#MitigationForTechnologies)
+```asn1 +InterferenceManagementMitigationType ::= CHOICE { + unavailable NULL, + mitigationForTechnologies MitigationForTechnologies +} +``` + +### MitigationForTechnologies + + DF: Mitigation type container for the different channel access technology classes + Class of parameters for the relevant channel access technology classes, + as specified in ETSI TS 103 724, clause 7. + +    **Categories**: [Communication information](#Communication+information) + + + +```asn1 +MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyClass +``` + +### MitigationPerTechnologyClass + + DF: Mitigation type container per channel access technology class + Class of parameters for the specific technology indicated in the container. + All parameters are optional, as they may not apply to some of the technologies or + interference management zone types. Specification details are in ETSI TS 103 724, clause 7. + +    **Categories**: [Communication information](#Communication+information) + +Fields: +* accessTechnologyClass [**AccessTechnologyClass**](#AccessTechnologyClass)
+ channel access technology in which this mitigation is applied. +
    **Unit**: _N/A_ + +* lowDutyCycle **INTEGER** (0 .. 10000) OPTIONAL
+ duty cycle limit. +
    **Unit**: _0.01% steps_ + +* powerReduction **INTEGER** (0 .. 30) OPTIONAL
+ power reduction. +
    **Unit**: _dB_ + +* dmcToffLimit **INTEGER** (0 .. 1200) OPTIONAL
+ Idle time limit as defined in ETSI TS 103 175. +
    **Unit**: _ms_ + +* dmcTonLimit **INTEGER** (0 .. 20) OPTIONAL
+ Transmission duration limit, as defined in ETSI EN 302 571. +
    **Unit**: _ms_ + +```asn1 +MitigationPerTechnologyClass ::= SEQUENCE { + accessTechnologyClass AccessTechnologyClass, + lowDutyCycle INTEGER (0 .. 10000) OPTIONAL, + powerReduction INTEGER (0 .. 30) OPTIONAL, + dmcToffLimit INTEGER (0 .. 1200) OPTIONAL, + dmcTonLimit INTEGER (0 .. 20) OPTIONAL, + ... +} +``` + +### AccessTechnologyClass + + DE: channel access technology class + Access technology to which the mitigation type applies. + +    **Categories**: [Communication information](#Communication+information) + + + +```asn1 +AccessTechnologyClass ::= ENUMERATED { + any(0), + itsg5Class(1), + ltev2xClass(2), + nrv2xClass(3), + ... +} +``` + +### InterferenceManagementZoneShape + + DF: Shape of the interference management zone + Bounding box of an interference management zone + +    **Categories**: [GeoReference information](#GeoReference+information) + +Fields: +* rectangle [**AreaRectangle**](VAM-Temp-Imports.md#AreaRectangle)
+* circle [**AreaCircular**](VAM-Temp-Imports.md#AreaCircular)
+* polygon [**AreaPolygon**](VAM-Temp-Imports.md#AreaPolygon)
+* ellipse [**AreaEllipse**](#AreaEllipse)
+```asn1 +InterferenceManagementZoneShape::= CHOICE { + rectangle AreaRectangle, + circle AreaCircular, + polygon AreaPolygon, + ellipse AreaEllipse, + ... +} +``` + +### AreaEllipse + + DF: Area Ellipse + Area Ellipse copied from CPM TR 103 562. Will be removed when CDD Release 2 is available. + Describes an elliptical area. The ellipse is centred about the reference point + of the ITS-S or about the nodeCenterPoint (if provided). + +    **Categories**: [GeoReference information](#GeoReference+information) + +Fields: +* nodeCenterPoint [**OffsetPoint**](VAM-Temp-Imports.md#OffsetPoint) OPTIONAL
+ nodeCenterPoint + Optional offset point about which the ellipse is centred with respect to the reference + position of the ITS-S. +* semiMajorRangeLength [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength)
+ semiMajorRangeLength + Minor radius of the ellipse. +* semiMinorRangeLength [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength)
+ semiMinorRangeLength + Major radius of the ellipse. +* semiMajorRangeOrientation [**WGS84AngleValue**](VAM-Temp-Imports.md#WGS84AngleValue)
+ semiMajorRangeOrientation + Orientation of the semiMajorRangeLength of the ellipse in the WGS84 coordinate system. +```asn1 +AreaEllipse ::= SEQUENCE { + nodeCenterPoint OffsetPoint OPTIONAL, + semiMajorRangeLength SemiRangeLength, + semiMinorRangeLength SemiRangeLength, + semiMajorRangeOrientation WGS84AngleValue +} +``` + + + diff --git a/docs/ITS-Container.md b/docs/ITS-Container.md new file mode 100755 index 0000000000000000000000000000000000000000..853a9ba15bce6a51db93c92b9b5f7eef23e80f57 --- /dev/null +++ b/docs/ITS-Container.md @@ -0,0 +1,1261 @@ +# ASN.1 module ITS-Container + OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }_ + +## Data Elements: +### ItsPduHeader + +Fields: +* 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)
+* stationID [**StationID**](#StationID)
+```asn1 +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), + stationID StationID +} +``` + +### StationID + +```asn1 +StationID ::= INTEGER(0..4294967295) +``` + +### ReferencePosition + +Fields: +* latitude [**Latitude**](ITS-Container.md#Latitude)
+* longitude [**Longitude**](ITS-Container.md#Longitude)
+* positionConfidenceEllipse [**PosConfidenceEllipse**](#PosConfidenceEllipse)
+* altitude [**Altitude**](#Altitude)
+```asn1 +ReferencePosition ::= SEQUENCE { + latitude Latitude, + longitude Longitude, + positionConfidenceEllipse PosConfidenceEllipse , + altitude Altitude +} +``` + +### DeltaReferencePosition + +Fields: +* deltaLatitude [**DeltaLatitude**](#DeltaLatitude)
+* deltaLongitude [**DeltaLongitude**](#DeltaLongitude)
+* deltaAltitude [**DeltaAltitude**](#DeltaAltitude)
+```asn1 +DeltaReferencePosition ::= SEQUENCE { + deltaLatitude DeltaLatitude, + deltaLongitude DeltaLongitude, + deltaAltitude DeltaAltitude +} +``` + +### Longitude + +Values: +* **oneMicrodegreeEast** (10)
+```asn1 +Longitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(1800000001)} (-1800000000..1800000001) +``` + +### Latitude + +Values: +* **oneMicrodegreeNorth** (10)
+```asn1 +Latitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10), unavailable(900000001)} (-900000000..900000001) +``` + +### Altitude + +Fields: +* altitudeValue [**AltitudeValue**](#AltitudeValue)
+* altitudeConfidence [**AltitudeConfidence**](#AltitudeConfidence)
+```asn1 +Altitude ::= SEQUENCE { + altitudeValue AltitudeValue, + altitudeConfidence AltitudeConfidence +} +``` + +### AltitudeValue + +```asn1 +AltitudeValue ::= INTEGER {referenceEllipsoidSurface(0), oneCentimeter(1), unavailable(800001)} (-100000..800001) +``` + +### AltitudeConfidence + +Values: +* **alt-000-01** (0)
+* **alt-000-02** (1)
+* **alt-000-05** (2)
+* **alt-000-10** (3)
+* **alt-000-20** (4)
+* **alt-000-50** (5)
+* **alt-001-00** (6)
+* **alt-002-00** (7)
+* **alt-005-00** (8)
+* **alt-010-00** (9)
+* **alt-020-00** (10)
+* **alt-050-00** (11)
+* **alt-100-00** (12)
+* **alt-200-00** (13)
+* **outOfRange** (14)
+* **unavailable** (15)
+```asn1 +AltitudeConfidence ::= ENUMERATED { + alt-000-01 (0), + alt-000-02 (1), + alt-000-05 (2), + alt-000-10 (3), + alt-000-20 (4), + alt-000-50 (5), + alt-001-00 (6), + alt-002-00 (7), + alt-005-00 (8), + alt-010-00 (9), + alt-020-00 (10), + alt-050-00 (11), + alt-100-00 (12), + alt-200-00 (13), + outOfRange (14), + unavailable (15) +} +``` + +### DeltaLongitude + +Values: +* **oneMicrodegreeEast** (10)
+```asn1 +DeltaLongitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(131072)} (-131071..131072) +``` + +### DeltaLatitude + +Values: +* **oneMicrodegreeNorth** (10)
+```asn1 +DeltaLatitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10) , unavailable(131072)} (-131071..131072) +``` + +### DeltaAltitude + +Values: +* **oneCentimeterUp** (1)
+```asn1 +DeltaAltitude ::= INTEGER {oneCentimeterUp (1), oneCentimeterDown (-1), unavailable(12800)} (-12700..12800) +``` + +### PosConfidenceEllipse + +Fields: +* semiMajorConfidence [**SemiAxisLength**](#SemiAxisLength)
+* semiMinorConfidence [**SemiAxisLength**](#SemiAxisLength)
+* semiMajorOrientation [**HeadingValue**](#HeadingValue)
+```asn1 +PosConfidenceEllipse ::= SEQUENCE { + semiMajorConfidence SemiAxisLength, + semiMinorConfidence SemiAxisLength, + semiMajorOrientation HeadingValue +} +``` + +### PathPoint + +Fields: +* pathPosition [**DeltaReferencePosition**](#DeltaReferencePosition)
+* pathDeltaTime [**PathDeltaTime**](#PathDeltaTime) OPTIONAL
+```asn1 +PathPoint ::= SEQUENCE { + pathPosition DeltaReferencePosition, + pathDeltaTime PathDeltaTime OPTIONAL +} +``` + +### PathDeltaTime + +```asn1 +PathDeltaTime ::= INTEGER {tenMilliSecondsInPast(1)} (1..65535, ...) +``` + +### PtActivation + +Fields: +* ptActivationType [**PtActivationType**](#PtActivationType)
+* ptActivationData [**PtActivationData**](#PtActivationData)
+```asn1 +PtActivation ::= SEQUENCE { + ptActivationType PtActivationType, + ptActivationData PtActivationData +} +``` + +### PtActivationType + +```asn1 +PtActivationType ::= INTEGER {undefinedCodingType(0), r09-16CodingType(1), vdv-50149CodingType(2)} (0..255) +``` + +### PtActivationData + +```asn1 +PtActivationData ::= OCTET STRING (SIZE(1..20)) +``` + +### AccelerationControl + +Values: +* **brakePedalEngaged** (0)
+* **gasPedalEngaged** (1)
+* **emergencyBrakeEngaged** (2)
+* **collisionWarningEngaged** (3)
+* **accEngaged** (4)
+* **cruiseControlEngaged** (5)
+* **speedLimiterEngaged** (6)
+```asn1 +AccelerationControl ::= BIT STRING { + brakePedalEngaged (0), + gasPedalEngaged (1), + emergencyBrakeEngaged (2), + collisionWarningEngaged (3), + accEngaged (4), + cruiseControlEngaged (5), + speedLimiterEngaged (6) +} (SIZE(7)) +``` + +### SemiAxisLength + +```asn1 +SemiAxisLength ::= INTEGER{oneCentimeter(1), outOfRange(4094), unavailable(4095)} (0..4095) +``` + +### CauseCode + +Fields: +* causeCode [**CauseCodeType**](#CauseCodeType)
+* subCauseCode [**SubCauseCodeType**](#SubCauseCodeType)
+```asn1 +CauseCode ::= SEQUENCE { + causeCode CauseCodeType, + subCauseCode SubCauseCodeType, + ... +} +``` + +### CauseCodeType + +Values: +* **reserved** (0)
+* **trafficCondition** (1)
+* **accident** (2)
+* **roadworks** (3)
+* **impassability** (5)
+* **adverseWeatherCondition-Adhesion** (6)
+* **aquaplannning** (7)
+* **hazardousLocation-SurfaceCondition** (9)
+* **hazardousLocation-ObstacleOnTheRoad** (10)
+* **hazardousLocation-AnimalOnTheRoad** (11)
+* **humanPresenceOnTheRoad** (12)
+* **wrongWayDriving** (14)
+* **rescueAndRecoveryWorkInProgress** (15)
+* **adverseWeatherCondition-ExtremeWeatherCondition** (17)
+* **adverseWeatherCondition-Visibility** (18)
+* **adverseWeatherCondition-Precipitation** (19)
+* **slowVehicle** (26)
+* **dangerousEndOfQueue** (27)
+* **vehicleBreakdown** (91)
+* **postCrash** (92)
+* **humanProblem** (93)
+* **stationaryVehicle** (94)
+* **emergencyVehicleApproaching** (95)
+* **hazardousLocation-DangerousCurve** (96)
+* **collisionRisk** (97)
+* **signalViolation** (98)
+* **dangerousSituation** (99)
+```asn1 +CauseCodeType ::= INTEGER { + reserved (0), + trafficCondition (1), + accident (2), + roadworks (3), + impassability (5), + adverseWeatherCondition-Adhesion (6), + aquaplannning (7), + hazardousLocation-SurfaceCondition (9), + hazardousLocation-ObstacleOnTheRoad (10), + hazardousLocation-AnimalOnTheRoad (11), + humanPresenceOnTheRoad (12), + wrongWayDriving (14), + rescueAndRecoveryWorkInProgress (15), + adverseWeatherCondition-ExtremeWeatherCondition (17), + adverseWeatherCondition-Visibility (18), + adverseWeatherCondition-Precipitation (19), + slowVehicle (26), + dangerousEndOfQueue (27), + vehicleBreakdown (91), + postCrash (92), + humanProblem (93), + stationaryVehicle (94), + emergencyVehicleApproaching (95), + hazardousLocation-DangerousCurve (96), + collisionRisk (97), + signalViolation (98), + dangerousSituation (99) +} (0..255) +``` + +### SubCauseCodeType + +```asn1 +SubCauseCodeType ::= INTEGER (0..255) +``` + +### TrafficConditionSubCauseCode + +```asn1 +TrafficConditionSubCauseCode ::= INTEGER {unavailable(0), increasedVolumeOfTraffic(1), trafficJamSlowlyIncreasing(2), trafficJamIncreasing(3), trafficJamStronglyIncreasing(4), trafficStationary(5), trafficJamSlightlyDecreasing(6), trafficJamDecreasing(7), trafficJamStronglyDecreasing(8)} (0..255) +``` + +### AccidentSubCauseCode + +```asn1 +AccidentSubCauseCode ::= INTEGER {unavailable(0), multiVehicleAccident(1), heavyAccident(2), accidentInvolvingLorry(3), accidentInvolvingBus(4), accidentInvolvingHazardousMaterials(5), accidentOnOppositeLane(6), unsecuredAccident(7), assistanceRequested(8)} (0..255) +``` + +### RoadworksSubCauseCode + +```asn1 +RoadworksSubCauseCode ::= INTEGER {unavailable(0), majorRoadworks(1), roadMarkingWork(2), slowMovingRoadMaintenance(3), shortTermStationaryRoadworks(4), streetCleaning(5), winterService(6)} (0..255) +``` + +### HumanPresenceOnTheRoadSubCauseCode + +```asn1 +HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), childrenOnRoadway(1), cyclistOnRoadway(2), motorcyclistOnRoadway(3)} (0..255) +``` + +### WrongWayDrivingSubCauseCode + +```asn1 +WrongWayDrivingSubCauseCode ::= INTEGER {unavailable(0), wrongLane(1), wrongDirection(2)} (0..255) +``` + +### AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode + +```asn1 +AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER {unavailable(0), strongWinds(1), damagingHail(2), hurricane(3), thunderstorm(4), tornado(5), blizzard(6)} (0..255) +``` + +### AdverseWeatherCondition-AdhesionSubCauseCode + +```asn1 +AdverseWeatherCondition-AdhesionSubCauseCode ::= INTEGER {unavailable(0), heavyFrostOnRoad(1), fuelOnRoad(2), mudOnRoad(3), snowOnRoad(4), iceOnRoad(5), blackIceOnRoad(6), oilOnRoad(7), looseChippings(8), instantBlackIce(9), roadsSalted(10)} (0..255) +``` + +### AdverseWeatherCondition-VisibilitySubCauseCode + +```asn1 +AdverseWeatherCondition-VisibilitySubCauseCode ::= INTEGER {unavailable(0), fog(1), smoke(2), heavySnowfall(3), heavyRain(4), heavyHail(5), lowSunGlare(6), sandstorms(7), swarmsOfInsects(8)} (0..255) +``` + +### AdverseWeatherCondition-PrecipitationSubCauseCode + +```asn1 +AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER {unavailable(0), heavyRain(1), heavySnowfall(2), softHail(3)} (0..255) +``` + +### SlowVehicleSubCauseCode + +```asn1 +SlowVehicleSubCauseCode ::= INTEGER {unavailable(0), maintenanceVehicle(1), vehiclesSlowingToLookAtAccident(2), abnormalLoad(3), abnormalWideLoad(4), convoy(5), snowplough(6), deicing(7), saltingVehicles(8)} (0..255) +``` + +### StationaryVehicleSubCauseCode + +```asn1 +StationaryVehicleSubCauseCode ::= INTEGER {unavailable(0), humanProblem(1), vehicleBreakdown(2), postCrash(3), publicTransportStop(4), carryingDangerousGoods(5)} (0..255) +``` + +### HumanProblemSubCauseCode + +```asn1 +HumanProblemSubCauseCode ::= INTEGER {unavailable(0), glycemiaProblem(1), heartProblem(2)} (0..255) +``` + +### EmergencyVehicleApproachingSubCauseCode + +```asn1 +EmergencyVehicleApproachingSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicleApproaching(1), prioritizedVehicleApproaching(2)} (0..255) +``` + +### HazardousLocation-DangerousCurveSubCauseCode + +```asn1 +HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER {unavailable(0), dangerousLeftTurnCurve(1), dangerousRightTurnCurve(2), multipleCurvesStartingWithUnknownTurningDirection(3), multipleCurvesStartingWithLeftTurn(4), multipleCurvesStartingWithRightTurn(5)} (0..255) +``` + +### HazardousLocation-SurfaceConditionSubCauseCode + +```asn1 +HazardousLocation-SurfaceConditionSubCauseCode ::= INTEGER {unavailable(0), rockfalls(1), earthquakeDamage(2), sewerCollapse(3), subsidence(4), snowDrifts(5), stormDamage(6), burstPipe(7), volcanoEruption(8), fallingIce(9)} (0..255) +``` + +### HazardousLocation-ObstacleOnTheRoadSubCauseCode + +```asn1 +HazardousLocation-ObstacleOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), shedLoad(1), partsOfVehicles(2), partsOfTyres(3), bigObjects(4), fallenTrees(5), hubCaps(6), waitingVehicles(7)} (0..255) +``` + +### HazardousLocation-AnimalOnTheRoadSubCauseCode + +```asn1 +HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), wildAnimals(1), herdOfAnimals(2), smallAnimals(3), largeAnimals(4)} (0..255) +``` + +### CollisionRiskSubCauseCode + +```asn1 +CollisionRiskSubCauseCode ::= INTEGER {unavailable(0), longitudinalCollisionRisk(1), crossingCollisionRisk(2), lateralCollisionRisk(3), vulnerableRoadUser(4)} (0..255) +``` + +### SignalViolationSubCauseCode + +```asn1 +SignalViolationSubCauseCode ::= INTEGER {unavailable(0), stopSignViolation(1), trafficLightViolation(2), turningRegulationViolation(3)} (0..255) +``` + +### RescueAndRecoveryWorkInProgressSubCauseCode + +```asn1 +RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicles(1), rescueHelicopterLanding(2), policeActivityOngoing(3), medicalEmergencyOngoing(4), childAbductionInProgress(5)} (0..255) +``` + +### DangerousEndOfQueueSubCauseCode + +```asn1 +DangerousEndOfQueueSubCauseCode ::= INTEGER {unavailable(0), suddenEndOfQueue(1), queueOverHill(2), queueAroundBend(3), queueInTunnel(4)} (0..255) +``` + +### DangerousSituationSubCauseCode + +```asn1 +DangerousSituationSubCauseCode ::= INTEGER {unavailable(0), emergencyElectronicBrakeEngaged(1), preCrashSystemEngaged(2), espEngaged(3), absEngaged(4), aebEngaged(5), brakeWarningEngaged(6), collisionRiskWarningEngaged(7)} (0..255) +``` + +### VehicleBreakdownSubCauseCode + +```asn1 +VehicleBreakdownSubCauseCode ::= INTEGER {unavailable(0), lackOfFuel (1), lackOfBatteryPower (2), engineProblem(3), transmissionProblem(4), engineCoolingProblem(5), brakingSystemProblem(6), steeringProblem(7), tyrePuncture(8), tyrePressureProblem(9)} (0..255) +``` + +### PostCrashSubCauseCode + +```asn1 +PostCrashSubCauseCode ::= INTEGER {unavailable(0), accidentWithoutECallTriggered (1), accidentWithECallManuallyTriggered (2), accidentWithECallAutomaticallyTriggered (3), accidentWithECallTriggeredWithoutAccessToCellularNetwork(4)} (0..255) +``` + +### Curvature + +Fields: +* curvatureValue [**CurvatureValue**](#CurvatureValue)
+* curvatureConfidence [**CurvatureConfidence**](#CurvatureConfidence)
+```asn1 +Curvature ::= SEQUENCE { + curvatureValue CurvatureValue, + curvatureConfidence CurvatureConfidence +} +``` + +### CurvatureValue + +```asn1 +CurvatureValue ::= INTEGER {straight(0), unavailable(1023)} (-1023..1023) +``` + +### CurvatureConfidence + +Values: +* **onePerMeter-0-00002** (0)
+* **onePerMeter-0-0001** (1)
+* **onePerMeter-0-0005** (2)
+* **onePerMeter-0-002** (3)
+* **onePerMeter-0-01** (4)
+* **onePerMeter-0-1** (5)
+* **outOfRange** (6)
+* **unavailable** (7)
+```asn1 +CurvatureConfidence ::= ENUMERATED { + onePerMeter-0-00002 (0), + onePerMeter-0-0001 (1), + onePerMeter-0-0005 (2), + onePerMeter-0-002 (3), + onePerMeter-0-01 (4), + onePerMeter-0-1 (5), + outOfRange (6), + unavailable (7) +} +``` + +### CurvatureCalculationMode + +```asn1 +CurvatureCalculationMode ::= ENUMERATED {yawRateUsed(0), yawRateNotUsed(1), unavailable(2), ...} +``` + +### Heading + +Fields: +* headingValue [**HeadingValue**](#HeadingValue)
+* headingConfidence [**HeadingConfidence**](#HeadingConfidence)
+```asn1 +Heading ::= SEQUENCE { + headingValue HeadingValue, + headingConfidence HeadingConfidence +} +``` + +### HeadingValue + +```asn1 +HeadingValue ::= INTEGER {wgs84North(0), wgs84East(900), wgs84South(1800), wgs84West(2700), unavailable(3601)} (0..3601) +``` + +### HeadingConfidence + +Values: +* **equalOrWithinZeroPointOneDegree** (1)
+```asn1 +HeadingConfidence ::= INTEGER {equalOrWithinZeroPointOneDegree (1), equalOrWithinOneDegree (10), outOfRange(126), unavailable(127)} (1..127) +``` + +### LanePosition + +```asn1 +LanePosition::= INTEGER {offTheRoad(-1), hardShoulder(0), +outermostDrivingLane(1), secondLaneFromOutside(2)} (-1..14) +``` + +### ClosedLanes + +Fields: +* innerhardShoulderStatus [**HardShoulderStatus**](#HardShoulderStatus) OPTIONAL
+* outerhardShoulderStatus [**HardShoulderStatus**](#HardShoulderStatus) OPTIONAL
+* drivingLaneStatus [**DrivingLaneStatus**](#DrivingLaneStatus) OPTIONAL
+```asn1 +ClosedLanes ::= SEQUENCE { + innerhardShoulderStatus HardShoulderStatus OPTIONAL, + outerhardShoulderStatus HardShoulderStatus OPTIONAL, + drivingLaneStatus DrivingLaneStatus OPTIONAL, + ... +} +``` + +### HardShoulderStatus + +```asn1 +HardShoulderStatus ::= ENUMERATED {availableForStopping(0), closed(1), availableForDriving(2)} +``` + +### DrivingLaneStatus + +```asn1 +DrivingLaneStatus ::= BIT STRING (SIZE (1..13)) +``` + +### PerformanceClass + +```asn1 +PerformanceClass ::= INTEGER {unavailable(0), performanceClassA(1), performanceClassB(2)} (0..7) +``` + +### SpeedValue + +```asn1 +SpeedValue ::= INTEGER {standstill(0), oneCentimeterPerSec(1), unavailable(16383)} (0..16383) +``` + +### SpeedConfidence + +```asn1 +SpeedConfidence ::= INTEGER {equalOrWithinOneCentimeterPerSec(1), equalOrWithinOneMeterPerSec(100), outOfRange(126), unavailable(127)} (1..127) +``` + +### VehicleMass + +```asn1 +VehicleMass ::= INTEGER {hundredKg(1), unavailable(1024)} (1..1024) +``` + +### Speed + +Fields: +* speedValue [**SpeedValue**](#SpeedValue)
+* speedConfidence [**SpeedConfidence**](#SpeedConfidence)
+```asn1 +Speed ::= SEQUENCE { + speedValue SpeedValue, + speedConfidence SpeedConfidence +} +``` + +### DriveDirection + +Values: +* **forward** (0)
+```asn1 +DriveDirection ::= ENUMERATED {forward (0), backward (1), unavailable (2)} +``` + +### EmbarkationStatus + +```asn1 +EmbarkationStatus ::= BOOLEAN +``` + +### LongitudinalAcceleration + +Fields: +* longitudinalAccelerationValue [**LongitudinalAccelerationValue**](#LongitudinalAccelerationValue)
+* longitudinalAccelerationConfidence [**AccelerationConfidence**](#AccelerationConfidence)
+```asn1 +LongitudinalAcceleration ::= SEQUENCE { + longitudinalAccelerationValue LongitudinalAccelerationValue, + longitudinalAccelerationConfidence AccelerationConfidence +} +``` + +### LongitudinalAccelerationValue + +```asn1 +LongitudinalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredForward(1), pointOneMeterPerSecSquaredBackward(-1), unavailable(161)} (-160 .. 161) +``` + +### AccelerationConfidence + +```asn1 +AccelerationConfidence ::= INTEGER {pointOneMeterPerSecSquared(1), outOfRange(101), unavailable(102)} (0 .. 102) +``` + +### LateralAcceleration + +Fields: +* lateralAccelerationValue [**LateralAccelerationValue**](#LateralAccelerationValue)
+* lateralAccelerationConfidence [**AccelerationConfidence**](#AccelerationConfidence)
+```asn1 +LateralAcceleration ::= SEQUENCE { + lateralAccelerationValue LateralAccelerationValue, + lateralAccelerationConfidence AccelerationConfidence +} +``` + +### LateralAccelerationValue + +```asn1 +LateralAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredToRight(-1), pointOneMeterPerSecSquaredToLeft(1), unavailable(161)} (-160 .. 161) +``` + +### VerticalAcceleration + +Fields: +* verticalAccelerationValue [**VerticalAccelerationValue**](#VerticalAccelerationValue)
+* verticalAccelerationConfidence [**AccelerationConfidence**](#AccelerationConfidence)
+```asn1 +VerticalAcceleration ::= SEQUENCE { + verticalAccelerationValue VerticalAccelerationValue, + verticalAccelerationConfidence AccelerationConfidence +} +``` + +### VerticalAccelerationValue + +```asn1 +VerticalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredUp(1), pointOneMeterPerSecSquaredDown(-1), unavailable(161)} (-160 .. 161) +``` + +### StationType + +```asn1 +StationType ::= INTEGER {unknown(0), pedestrian(1), cyclist(2), moped(3), motorcycle(4), passengerCar(5), bus(6), +lightTruck(7), heavyTruck(8), trailer(9), specialVehicles(10), tram(11), roadSideUnit(15)} (0..255) +``` + +### ExteriorLights + +Values: +* **lowBeamHeadlightsOn** (0)
+* **highBeamHeadlightsOn** (1)
+* **leftTurnSignalOn** (2)
+* **rightTurnSignalOn** (3)
+* **daytimeRunningLightsOn** (4)
+* **reverseLightOn** (5)
+* **fogLightOn** (6)
+* **parkingLightsOn** (7)
+```asn1 +ExteriorLights ::= BIT STRING { + lowBeamHeadlightsOn (0), + highBeamHeadlightsOn (1), + leftTurnSignalOn (2), + rightTurnSignalOn (3), + daytimeRunningLightsOn (4), + reverseLightOn (5), + fogLightOn (6), + parkingLightsOn (7) +} (SIZE(8)) +``` + +### DangerousGoodsBasic + +```asn1 +DangerousGoodsBasic::= ENUMERATED { + explosives1(0), + explosives2(1), + explosives3(2), + explosives4(3), + explosives5(4), + explosives6(5), + flammableGases(6), + nonFlammableGases(7), + toxicGases(8), + flammableLiquids(9), + flammableSolids(10), + substancesLiableToSpontaneousCombustion(11), + substancesEmittingFlammableGasesUponContactWithWater(12), + oxidizingSubstances(13), + organicPeroxides(14), + toxicSubstances(15), + infectiousSubstances(16), + radioactiveMaterial(17), + corrosiveSubstances(18), + miscellaneousDangerousSubstances(19) +} +``` + +### DangerousGoodsExtended + +Fields: +* dangerousGoodsType [**DangerousGoodsBasic**](ITS-Container.md#DangerousGoodsBasic)
+* unNumber **INTEGER** (0..9999)
+* elevatedTemperature **BOOLEAN**
+* tunnelsRestricted **BOOLEAN**
+* limitedQuantity **BOOLEAN**
+* emergencyActionCode [**IA5String**](#IA5String) (SIZE (1..24)) OPTIONAL
+* phoneNumber [**PhoneNumber**](#PhoneNumber) OPTIONAL
+* companyName [**UTF8String**](#UTF8String) (SIZE (1..24)) OPTIONAL
+```asn1 +DangerousGoodsExtended ::= SEQUENCE { + dangerousGoodsType DangerousGoodsBasic, + unNumber INTEGER (0..9999), + elevatedTemperature BOOLEAN, + tunnelsRestricted BOOLEAN, + limitedQuantity BOOLEAN, + emergencyActionCode IA5String (SIZE (1..24)) OPTIONAL, + phoneNumber PhoneNumber OPTIONAL, + companyName UTF8String (SIZE (1..24)) OPTIONAL, + ... +} +``` + +### SpecialTransportType + +```asn1 +SpecialTransportType ::= BIT STRING {heavyLoad(0), excessWidth(1), excessLength(2), excessHeight(3)} (SIZE(4)) +``` + +### LightBarSirenInUse + +Values: +* **lightBarActivated** (0)
+* **sirenActivated** (1)
+```asn1 +LightBarSirenInUse ::= BIT STRING { + lightBarActivated (0), + sirenActivated (1) +} (SIZE(2)) +``` + +### HeightLonCarr + +```asn1 +HeightLonCarr ::= INTEGER {oneCentimeter(1), unavailable(100)} (1..100) +``` + +### PosLonCarr + +```asn1 +PosLonCarr ::= INTEGER {oneCentimeter(1), unavailable(127)} (1..127) +``` + +### PosPillar + +```asn1 +PosPillar ::= INTEGER {tenCentimeters(1), unavailable(30)} (1..30) +``` + +### PosCentMass + +```asn1 +PosCentMass ::= INTEGER {tenCentimeters(1), unavailable(63)} (1..63) +``` + +### RequestResponseIndication + +```asn1 +RequestResponseIndication ::= ENUMERATED {request(0), response(1)} +``` + +### SpeedLimit + +```asn1 +SpeedLimit ::= INTEGER {oneKmPerHour(1)} (1..255) +``` + +### StationarySince + +```asn1 +StationarySince ::= ENUMERATED {lessThan1Minute(0), lessThan2Minutes(1), lessThan15Minutes(2), equalOrGreater15Minutes(3)} +``` + +### Temperature + +Values: +* **equalOrSmallerThanMinus60Deg** (-60)
+```asn1 +Temperature ::= INTEGER {equalOrSmallerThanMinus60Deg (-60), oneDegreeCelsius(1), equalOrGreaterThan67Deg(67)} (-60..67) +``` + +### TrafficRule + +```asn1 +TrafficRule ::= ENUMERATED {noPassing(0), noPassingForTrucks(1), passToRight(2), passToLeft(3), ... +} +``` + +### WheelBaseVehicle + +```asn1 +WheelBaseVehicle ::= INTEGER {tenCentimeters(1), unavailable(127)} (1..127) +``` + +### TurningRadius + +```asn1 +TurningRadius ::= INTEGER {point4Meters(1), unavailable(255)} (1..255) +``` + +### PosFrontAx + +```asn1 +PosFrontAx ::= INTEGER {tenCentimeters(1), unavailable(20)} (1..20) +``` + +### PositionOfOccupants + +Values: +* **row1LeftOccupied** (0)
+* **row1RightOccupied** (1)
+* **row1MidOccupied** (2)
+* **row1NotDetectable** (3)
+* **row1NotPresent** (4)
+* **row2LeftOccupied** (5)
+* **row2RightOccupied** (6)
+* **row2MidOccupied** (7)
+* **row2NotDetectable** (8)
+* **row2NotPresent** (9)
+* **row3LeftOccupied** (10)
+* **row3RightOccupied** (11)
+* **row3MidOccupied** (12)
+* **row3NotDetectable** (13)
+* **row3NotPresent** (14)
+* **row4LeftOccupied** (15)
+* **row4RightOccupied** (16)
+* **row4MidOccupied** (17)
+* **row4NotDetectable** (18)
+* **row4NotPresent** (19)
+```asn1 +PositionOfOccupants ::= BIT STRING { + row1LeftOccupied (0), + row1RightOccupied (1), + row1MidOccupied (2), + row1NotDetectable (3), + row1NotPresent (4), + row2LeftOccupied (5), + row2RightOccupied (6), + row2MidOccupied (7), + row2NotDetectable (8), + row2NotPresent (9), + row3LeftOccupied (10), + row3RightOccupied (11), + row3MidOccupied (12), + row3NotDetectable (13), + row3NotPresent (14), + row4LeftOccupied (15), + row4RightOccupied (16), + row4MidOccupied (17), + row4NotDetectable (18), + row4NotPresent (19)} (SIZE(20)) +``` + +### PositioningSolutionType + +```asn1 +PositioningSolutionType ::= ENUMERATED {noPositioningSolution(0), sGNSS(1), dGNSS(2), sGNSSplusDR(3), dGNSSplusDR(4), dR(5), ...} +``` + +### VehicleIdentification + +Fields: +* wMInumber [**WMInumber**](#WMInumber) OPTIONAL
+* vDS [**VDS**](#VDS) OPTIONAL
+```asn1 +VehicleIdentification ::= SEQUENCE { + wMInumber WMInumber OPTIONAL, + vDS VDS OPTIONAL, + ... +} +``` + +### WMInumber + +```asn1 +WMInumber ::= IA5String (SIZE(1..3)) +``` + +### VDS + +```asn1 +VDS ::= IA5String (SIZE(6)) +``` + +### EnergyStorageType + +```asn1 +EnergyStorageType ::= BIT STRING {hydrogenStorage(0), electricEnergyStorage(1), liquidPropaneGas(2), compressedNaturalGas(3), diesel(4), gasoline(5), ammonia(6)} (SIZE(7)) +``` + +### VehicleLength + +Fields: +* vehicleLengthValue [**VehicleLengthValue**](#VehicleLengthValue)
+* vehicleLengthConfidenceIndication [**VehicleLengthConfidenceIndication**](#VehicleLengthConfidenceIndication)
+```asn1 +VehicleLength ::= SEQUENCE { + vehicleLengthValue VehicleLengthValue, + vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication +} +``` + +### VehicleLengthValue + +```asn1 +VehicleLengthValue ::= INTEGER {tenCentimeters(1), outOfRange(1022), unavailable(1023)} (1..1023) +``` + +### VehicleLengthConfidenceIndication + +```asn1 +VehicleLengthConfidenceIndication ::= ENUMERATED {noTrailerPresent(0), trailerPresentWithKnownLength(1), trailerPresentWithUnknownLength(2), trailerPresenceIsUnknown(3), unavailable(4)} +``` + +### VehicleWidth + +```asn1 +VehicleWidth ::= INTEGER {tenCentimeters(1), outOfRange(61), unavailable(62)} (1..62) +``` + +### PathHistory + +```asn1 +PathHistory::= SEQUENCE (SIZE(0..40)) OF PathPoint +``` + +### EmergencyPriority + +```asn1 +EmergencyPriority ::= BIT STRING {requestForRightOfWay(0), requestForFreeCrossingAtATrafficLight(1)} (SIZE(2)) +``` + +### InformationQuality + +```asn1 +InformationQuality ::= INTEGER {unavailable(0), lowest(1), highest(7)} (0..7) +``` + +### RoadType + +```asn1 +RoadType ::= ENUMERATED { + urban-NoStructuralSeparationToOppositeLanes(0), + urban-WithStructuralSeparationToOppositeLanes(1), + nonUrban-NoStructuralSeparationToOppositeLanes(2), + nonUrban-WithStructuralSeparationToOppositeLanes(3)} +``` + +### SteeringWheelAngle + +Fields: +* steeringWheelAngleValue [**SteeringWheelAngleValue**](#SteeringWheelAngleValue)
+* steeringWheelAngleConfidence [**SteeringWheelAngleConfidence**](#SteeringWheelAngleConfidence)
+```asn1 +SteeringWheelAngle ::= SEQUENCE { + steeringWheelAngleValue SteeringWheelAngleValue, + steeringWheelAngleConfidence SteeringWheelAngleConfidence +} +``` + +### SteeringWheelAngleValue + +```asn1 +SteeringWheelAngleValue ::= INTEGER {straight(0), onePointFiveDegreesToRight(-1), onePointFiveDegreesToLeft(1), unavailable(512)} (-511..512) +``` + +### SteeringWheelAngleConfidence + +Values: +* **equalOrWithinOnePointFiveDegree** (1)
+```asn1 +SteeringWheelAngleConfidence ::= INTEGER {equalOrWithinOnePointFiveDegree (1), outOfRange(126), unavailable(127)} (1..127) +``` + +### TimestampIts + +```asn1 +TimestampIts ::= INTEGER {utcStartOf2004(0), oneMillisecAfterUTCStartOf2004(1)} (0..4398046511103) +``` + +### VehicleRole + +```asn1 +VehicleRole ::= ENUMERATED {default(0), publicTransport(1), specialTransport(2), dangerousGoods(3), roadWork(4), rescue(5), emergency(6), safetyCar(7), agriculture(8), commercial(9), military(10), roadOperator(11), taxi(12), reserved1(13), reserved2(14), reserved3(15)} +``` + +### YawRate + +Fields: +* yawRateValue [**YawRateValue**](#YawRateValue)
+* yawRateConfidence [**YawRateConfidence**](#YawRateConfidence)
+```asn1 +YawRate::= SEQUENCE { + yawRateValue YawRateValue, + yawRateConfidence YawRateConfidence +} +``` + +### YawRateValue + +```asn1 +YawRateValue ::= INTEGER {straight(0), degSec-000-01ToRight(-1), degSec-000-01ToLeft(1), unavailable(32767)} (-32766..32767) +``` + +### YawRateConfidence + +Values: +* **degSec-000-01** (0)
+* **degSec-000-05** (1)
+* **degSec-000-10** (2)
+* **degSec-001-00** (3)
+* **degSec-005-00** (4)
+* **degSec-010-00** (5)
+* **degSec-100-00** (6)
+* **outOfRange** (7)
+* **unavailable** (8)
+```asn1 +YawRateConfidence ::= ENUMERATED { + degSec-000-01 (0), + degSec-000-05 (1), + degSec-000-10 (2), + degSec-001-00 (3), + degSec-005-00 (4), + degSec-010-00 (5), + degSec-100-00 (6), + outOfRange (7), + unavailable (8) +} +``` + +### ProtectedZoneType + +Values: +* **permanentCenDsrcTolling** (0)
+```asn1 +ProtectedZoneType::= ENUMERATED { permanentCenDsrcTolling (0), ..., temporaryCenDsrcTolling (1) } +``` + +### RelevanceDistance + +```asn1 +RelevanceDistance ::= ENUMERATED {lessThan50m(0), lessThan100m(1), lessThan200m(2), lessThan500m(3), lessThan1000m(4), lessThan5km(5), lessThan10km(6), over10km(7)} +``` + +### RelevanceTrafficDirection + +```asn1 +RelevanceTrafficDirection ::= ENUMERATED {allTrafficDirections(0), upstreamTraffic(1), downstreamTraffic(2), oppositeTraffic(3)} +``` + +### TransmissionInterval + +```asn1 +TransmissionInterval ::= INTEGER {oneMilliSecond(1), tenSeconds(10000)} (1..10000) +``` + +### ValidityDuration + +```asn1 +ValidityDuration ::= INTEGER {timeOfDetection(0), oneSecondAfterDetection(1)} (0..86400) +``` + +### ActionID + +Fields: +* originatingStationID [**StationID**](#StationID)
+* sequenceNumber [**SequenceNumber**](#SequenceNumber)
+```asn1 +ActionID ::= SEQUENCE { + originatingStationID StationID, + sequenceNumber SequenceNumber +} +``` + +### ItineraryPath + +```asn1 +ItineraryPath ::= SEQUENCE SIZE(1..40) OF ReferencePosition +``` + +### ProtectedCommunicationZone + +Fields: +* protectedZoneType [**ProtectedZoneType**](#ProtectedZoneType)
+* expiryTime [**TimestampIts**](ITS-Container.md#TimestampIts) OPTIONAL
+* protectedZoneLatitude [**Latitude**](ITS-Container.md#Latitude)
+* protectedZoneLongitude [**Longitude**](ITS-Container.md#Longitude)
+* protectedZoneRadius [**ProtectedZoneRadius**](ITS-Container.md#ProtectedZoneRadius) OPTIONAL
+* protectedZoneID [**ProtectedZoneID**](ITS-Container.md#ProtectedZoneID) OPTIONAL
+```asn1 +ProtectedCommunicationZone ::= SEQUENCE { + protectedZoneType ProtectedZoneType, + expiryTime TimestampIts OPTIONAL, + protectedZoneLatitude Latitude, + protectedZoneLongitude Longitude, + protectedZoneRadius ProtectedZoneRadius OPTIONAL, + protectedZoneID ProtectedZoneID OPTIONAL, + ... +} +``` + +### Traces + +```asn1 +Traces ::= SEQUENCE SIZE(1..7) OF PathHistory +``` + +### NumberOfOccupants + +Values: +* **oneOccupant** (1)
+```asn1 +NumberOfOccupants ::= INTEGER {oneOccupant (1), unavailable(127)} (0 .. 127) +``` + +### SequenceNumber + +```asn1 +SequenceNumber ::= INTEGER (0..65535) +``` + +### PositionOfPillars + +```asn1 +PositionOfPillars ::= SEQUENCE (SIZE(1..3, ...)) OF PosPillar +``` + +### RestrictedTypes + +```asn1 +RestrictedTypes ::= SEQUENCE (SIZE(1..3, ...)) OF StationType +``` + +### EventHistory + +```asn1 +EventHistory::= SEQUENCE (SIZE(1..23)) OF EventPoint +``` + +### EventPoint + +Fields: +* eventPosition [**DeltaReferencePosition**](#DeltaReferencePosition)
+* eventDeltaTime [**PathDeltaTime**](#PathDeltaTime) OPTIONAL
+* informationQuality [**InformationQuality**](#InformationQuality)
+```asn1 +EventPoint ::= SEQUENCE { + eventPosition DeltaReferencePosition, + eventDeltaTime PathDeltaTime OPTIONAL, + informationQuality InformationQuality +} +``` + +### ProtectedCommunicationZonesRSU + +```asn1 +ProtectedCommunicationZonesRSU ::= SEQUENCE (SIZE(1..16)) OF ProtectedCommunicationZone +``` + +### CenDsrcTollingZone + +Fields: +* protectedZoneLatitude [**Latitude**](ITS-Container.md#Latitude)
+* protectedZoneLongitude [**Longitude**](ITS-Container.md#Longitude)
+* cenDsrcTollingZoneID [**CenDsrcTollingZoneID**](#CenDsrcTollingZoneID) OPTIONAL
+```asn1 +CenDsrcTollingZone ::= SEQUENCE { + protectedZoneLatitude Latitude, + protectedZoneLongitude Longitude, + cenDsrcTollingZoneID CenDsrcTollingZoneID OPTIONAL, + ... +} +``` + +### ProtectedZoneRadius + +```asn1 +ProtectedZoneRadius ::= INTEGER {oneMeter(1)} (1..255,...) +``` + +### ProtectedZoneID + +```asn1 +ProtectedZoneID ::= INTEGER (0.. 134217727) +``` + +### CenDsrcTollingZoneID + +```asn1 +CenDsrcTollingZoneID ::= ProtectedZoneID +``` + +### DigitalMap + +```asn1 +DigitalMap ::= SEQUENCE (SIZE(1..256)) OF ReferencePosition +``` + +### OpeningDaysHours + +```asn1 +OpeningDaysHours ::= UTF8String +``` + +### PhoneNumber + +```asn1 +PhoneNumber ::= NumericString (SIZE(1..16)) +``` + + + diff --git a/docs/VAM-Temp-Imports.md b/docs/VAM-Temp-Imports.md new file mode 100755 index 0000000000000000000000000000000000000000..540031eca50e0a1d453658617f636819e3f49346 --- /dev/null +++ b/docs/VAM-Temp-Imports.md @@ -0,0 +1,170 @@ +# ASN.1 module VAM-Temp-Imports + OID: _{itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) temp-imports(255) version1(1)}_ + +## Imports: + * **[ITS-Container](ITS-Container.md)** *{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2)}*
+ + * **[DSRC](DSRC.md)** *{iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) version (2)}*
+ +## Data Elements: +### BasicContainer + +Fields: +* stationType [**StationType**](ITS-Container.md#StationType)
+* referencePosition [**ReferencePosition**](ITS-Container.md#ReferencePosition)
+```asn1 +BasicContainer ::= SEQUENCE { + stationType StationType, + referencePosition ReferencePosition, + ... +} +``` + +### ItsPduHeader + +Fields: +* 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), vam(14) } (0..255)
+* stationID [**StationID**](ITS-Container.md#StationID)
+```asn1 +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), vam(14) } (0..255), + stationID StationID +} +``` + +### AreaCircular + +Fields: +* nodeCenterPoint [**OffsetPoint**](VAM-Temp-Imports.md#OffsetPoint) OPTIONAL
+* radius [**Radius**](#Radius)
+```asn1 +AreaCircular ::= SEQUENCE { + nodeCenterPoint OffsetPoint OPTIONAL, + radius Radius +} +``` + +### AreaPolygon + +Fields: +* polyPointList [**PolyPointList**](#PolyPointList)
+```asn1 +AreaPolygon ::= SEQUENCE { + polyPointList PolyPointList +} +``` + +### AreaRectangle + +Fields: +* nodeCenterPoint [**OffsetPoint**](VAM-Temp-Imports.md#OffsetPoint) OPTIONAL
+* semiMajorRangeLength [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength)
+* semiMinorRangeLength [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength)
+* semiMajorRangeOrientation [**WGS84AngleValue**](VAM-Temp-Imports.md#WGS84AngleValue)
+* semiHeight [**SemiRangeLength**](VAM-Temp-Imports.md#SemiRangeLength) OPTIONAL
+```asn1 +AreaRectangle ::= SEQUENCE { + nodeCenterPoint OffsetPoint OPTIONAL, + semiMajorRangeLength SemiRangeLength, + semiMinorRangeLength SemiRangeLength, + semiMajorRangeOrientation WGS84AngleValue, + semiHeight SemiRangeLength OPTIONAL +} +``` + +### OffsetPoint + +Fields: +* nodeOffsetPointXY [**NodeOffsetPointXY**](DSRC.md#NodeOffsetPointXY) (WITH COMPONENTS {..., node-LatLon ABSENT, regional ABSENT})
+* nodeOffsetPointZ [**NodeOffsetPointZ**](#NodeOffsetPointZ) OPTIONAL
+```asn1 +OffsetPoint ::= SEQUENCE{ + nodeOffsetPointXY NodeOffsetPointXY (WITH COMPONENTS {..., node-LatLon ABSENT, regional ABSENT}), + nodeOffsetPointZ NodeOffsetPointZ OPTIONAL +} +``` + +### NodeOffsetPointZ + +Fields: +* node-Z1 [**Offset-B10**](DSRC.md#Offset-B10)
+* node-Z2 [**Offset-B11**](DSRC.md#Offset-B11)
+* node-Z3 [**Offset-B12**](DSRC.md#Offset-B12)
+* node-Z4 [**Offset-B13**](DSRC.md#Offset-B13)
+* node-Z5 [**Offset-B14**](DSRC.md#Offset-B14)
+* node-Z6 [**Offset-B16**](DSRC.md#Offset-B16)
+```asn1 +NodeOffsetPointZ ::= CHOICE { + node-Z1 Offset-B10, + node-Z2 Offset-B11, + node-Z3 Offset-B12, + node-Z4 Offset-B13, + node-Z5 Offset-B14, + node-Z6 Offset-B16 +} +``` + +### Radius + +Values: +* **zeroPointOneMeter** (1)
+* **oneMeter** (10)
+```asn1 +Radius ::= INTEGER { + zeroPointOneMeter (1), + oneMeter (10) +} (0..10000) +``` + +### PolyPointList + +```asn1 +PolyPointList ::= SEQUENCE (SIZE(3..16, ...)) OF OffsetPoint +``` + +### SemiRangeLength + +Values: +* **zeroPointOneMeter** (1)
+* **oneMeter** (10)
+```asn1 +SemiRangeLength ::= INTEGER { + zeroPointOneMeter (1), + oneMeter (10) +} (0..10000) +``` + +### WGS84AngleValue + +Values: +* **wgs84North** (0)
+* **wgs84East** (900)
+* **wgs84South** (1800)
+* **wgs84West** (2700)
+* **unavailable** (3601)
+```asn1 +WGS84AngleValue ::= INTEGER { + wgs84North (0), + wgs84East (900), + wgs84South (1800), + wgs84West (2700), + unavailable (3601) +} (0..3601) +``` + +### StationType + +```asn1 +StationType ::= INTEGER { + unknown(0), pedestrian(1), cyclist(2), moped(3), motorcycle(4), + passengerCar(5), bus(6), lightTruck(7), heavyTruck(8), trailer(9), + specialVehicles(10), tram(11), lightVruVehicle(12), animal(13), + roadSideUnit(15) +} +(0..255) +``` + + +