diff --git a/.gitlab-ci.mk b/.gitlab-ci.mk new file mode 100644 index 0000000000000000000000000000000000000000..b67f882e42c9edfa62aefad929e00e54520b37cf --- /dev/null +++ b/.gitlab-ci.mk @@ -0,0 +1,42 @@ +ASN1_SRC := $(wildcard asn/*.asn asn/cam/*.asn asn/cdd/*.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 := CPM +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 docs $(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' \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..386810375da154a9cab1b3fbfd4e7df0fd8e821d --- /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 + cache: + paths: + - iso/* + only: + changes: + - "asn/*.asn" + +documentation: + stage: deploy + script: + - curl --header "PRIVATE-TOKEN:$CI_DOC_TOKEN" https://forge.etsi.org/rep/api/v4/projects/592/repository/files/asn2md.py?ref=master | python3 -c "import sys, json, base64; open('asn2md.py', 'wb').write(base64.b64decode(json.load(sys.stdin)['content']))" + - make -f .gitlab-ci.mk doc + - > + if [ -z "$(git status --untracked-files=no --porcelain)" ]; then + echo "No changes found"; + else + git add docs/*.md && + 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/*.asn" diff --git a/asn/CPM.asn b/asn/CPM.asn index c68bfc6355bfeece8bb9a4465eecafae675ac0a6..7e0d29b5a75cafb8df27123729bbade1115f90b2 100644 --- a/asn/CPM.asn +++ b/asn/CPM.asn @@ -1,5 +1,5 @@ --- @brief Specification of the Collective Perception Message ETSI TS 103 324 --- Latest version available at @url https://forge.etsi.org/rep/ITS/CPM_TS103324 +--! @brief Specification of the Collective Perception Message ETSI TS 103 324 +--! Latest version available at @url https://forge.etsi.org/rep/ITS/CPM_TS103324 CPM-PDU-Descriptions { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) cpm (1) version1 (1) @@ -25,11 +25,11 @@ FROM CAM-PDU-Descriptions {itu-t(0) identified-organization(4) etsi(0) itsDomain MessageSegmentInfo FROM CPM-CommonDataTypes-Descriptions {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) commonDataTypes (2) version1 (1)} --- @brief Import Originating Vehicle Container +--! @brief Import Originating Vehicle Container OriginatingVehicleContainer, OriginatingRSUContainer FROM CPM-OriginatingStationData-Descriptions {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) originatingStationData (3) version1 (1)} --- @brief Import Sensor Information Container +--! @brief Import Sensor Information Container SensorInformationContainer FROM CPM-SensorInformation-Descriptions {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) sensorInformation (4) version1 (1)} @@ -39,7 +39,7 @@ FROM CPM-PerceivedObject-Descriptions {itu-t (0) identified-organization (4) ets FreeSpaceAddendumContainer FROM CPM-FreeSpaceAddendum-Descriptions {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) freeSpaceAddendum (6) version1 (1)}; --- Information Object Class Definitions +--! Information Object Class Definitions CPM-STATIONDATA-ID-AND-TYPE ::= CLASS { &id CpmStationDataId UNIQUE, &Type @@ -77,17 +77,17 @@ PerceptionData CPM-CONTAINER-ID-AND-TYPE ::= { ... } --- ID Assignments for Information Object Classes --- Assignment for Originating Station Container +--! ID Assignments for Information Object Classes +--! Assignment for Originating Station Container originatingStationVehicleContainer CpmStationDataId ::= 1 originatingStationRSUContainer CpmStationDataId ::= 2 --- Assignment for Perception Data Container +--! Assignment for Perception Data Container sensorInformationCpmContainer CpmContainerId ::= 1 perceivedObjectCpmContainer CpmContainerId ::= 2 freeSpaceAdddendumCpmContainer CpmContainerId ::= 3 --- Collective Perception Message +--! Collective Perception Message /** @brief Collective Perception Message Root This DF includes DEs for the CPM protocolVersion, the CP message type identifier _messageID_ and @@ -117,16 +117,16 @@ CollectivePerceptionMessage ::= SEQUENCE { The sequence of mandatory and optional containers. Other containers may be added in the future. */ CpmParameters ::= SEQUENCE { - /** managementContainer + /** @brief managementContainer The managementContainer comprises basic information about the originating ITS-S, which are not specific to vehicles or RSUs. */ managementContainer CpmManagementContainer, - /** stationDataContainer + /** @brief stationDataContainer The stationDataContainer comprises ITS-S type specific information about the sending station. */ stationDataContainer CpmStationDataContainer {{OriginatingStationData}} OPTIONAL, - /** perceptionData + /** @brief perceptionData The perceptionData comprises different container types for describing the sensory properties of the transmitting ITS-S, its detected objects and free space estimates. */ @@ -134,7 +134,7 @@ CpmParameters ::= SEQUENCE { ... } -/** CPM Management Container +/** @brief CPM Management Container The managementContainer comprises basic information about the originating ITS-S, which are not specific to vehicles or RSUs. */ diff --git a/asn/CPM_CommonDataTypes.asn b/asn/CPM_CommonDataTypes.asn index 57515e6e3d96dc9813608855b1953958cb29be6a..8b87735cda233504a4fad198485781590698f37d 100644 --- a/asn/CPM_CommonDataTypes.asn +++ b/asn/CPM_CommonDataTypes.asn @@ -368,10 +368,10 @@ Scaled by 100. @unit: None */ CorrelationRowValue ::= INTEGER { - full-negative-correlation (-100), -- Full negative correlation - no-correlation (0), -- If not correlated or unavailable + full-negative-correlation (-100), --< Full negative correlation + no-correlation (0), --< If not correlated or unavailable point-one (10), - full-positive-correlation (100) -- Full positive correlation + full-positive-correlation (100) --< Full positive correlation } (-100..100) /** @brief Object Class Description @@ -393,7 +393,6 @@ ObjectClassWithConfidence ::= SEQUENCE { The class that best describes the detected object. Each class provides optional subclasses. */ ObjectClass ::= CHOICE { - vehicleSubclass VehicleSubclassType, personSubclass PersonSubclassType, animalSubclass AnimalSubclassType, @@ -415,12 +414,12 @@ Describes the vertical offset from another point. This is specified in close res to SAE J2735 _NodeOffsetPointXY_. */ NodeOffsetPointZ ::= CHOICE { - node-Z1 Offset-B10, -- node is within 5.11m of last node - node-Z2 Offset-B11, -- node is within 10.23m of last node - node-Z3 Offset-B12, -- node is within 20.47m of last node - node-Z4 Offset-B13, -- node is within 40.96m of last node - node-Z5 Offset-B14, -- node is within 81.91m of last node - node-Z6 Offset-B16 -- node is within 327.67m of last node + node-Z1 Offset-B10, --< node is within 5.11m of last node + node-Z2 Offset-B11, --< node is within 10.23m of last node + node-Z3 Offset-B12, --< node is within 20.47m of last node + node-Z4 Offset-B13, --< node is within 40.96m of last node + node-Z5 Offset-B14, --< node is within 81.91m of last node + node-Z6 Offset-B16 --< node is within 327.67m of last node } /** @brief Animal Subclass Type @@ -428,7 +427,7 @@ Describes the subclass of a detected object for class animal. @unit n/a */ AnimalSubclassType ::= INTEGER { - unknown (0) -- the kind of animal is not known + unknown (0) --< the kind of animal is not known } (0..255) /** @brief Person Subclass Type @@ -438,18 +437,18 @@ classification provided in Annex 1 of Regulation EU 168/2013. @unit n/a */ PersonSubclassType ::= INTEGER { - unknown (0), -- the vru type for the detected object is unknown - pedestrian (1), -- the detected object is a pedestrian travelling on foot - personInWheelchair (2), -- the detected object is a person travelling in a wheelchair - cyclist (3), -- the detected object is one or multiple persons travelling on - -- non-motorized unicycles, bicycles, tricycles or quadricycle - personWithStroller (4), -- the detected object is a person travelling on foot pushing or - -- pulling a stroller potentially carrying by one or - -- multiple other persons - personOnSkates (5), -- the detected object is a person travelling on skates, skateboards - -- or a small electric or foot operated scooter - personGroup (6) -- the detected object is a group of persons with similar - -- movement characteristics + unknown (0), --< the vru type for the detected object is unknown + pedestrian (1), --< the detected object is a pedestrian travelling on foot + personInWheelchair (2), --< the detected object is a person travelling in a wheelchair + cyclist (3), --< the detected object is one or multiple persons travelling on + --< non-motorized unicycles, bicycles, tricycles or quadricycle + personWithStroller (4), --< the detected object is a person travelling on foot pushing or + --< pulling a stroller potentially carrying by one or + --< multiple other persons + personOnSkates (5), --< the detected object is a person travelling on skates, skateboards + --< or a small electric or foot operated scooter + personGroup (6) --< the detected object is a group of persons with similar + --< movement characteristics } (0..255) /** @brief Vehicle Subclass Type @@ -457,29 +456,29 @@ Describes the subclass of a detected object for class vehicle. @unit n/a */ VehicleSubclassType ::= INTEGER { - unknown (0), -- the type of vehicle is unknown - moped (1), -- the detected object is a light motor vehicle with less than four - -- wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 class L1, L2 - motorcycle (2), -- the detected object is a light motor vehicle with less than four - -- wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 class L3, L4, L5, L6, L7 - passengerCar (3), -- the detected object is a small passenger car as defined in - -- UNECE/TRANS/WP.29/78/Rev.4 class M1 - bus (4), -- the detected object is a large passenger vehicle as defined - -- in UNECE/TRANS/WP.29/78/Rev.4 class M2, M3 - lightTruck (5), -- the detected object is a light goods vehicle as defined - -- in UNECE/TRANS/WP.29/78/Rev.4 class N1 - heavyTruck (6), -- the detected object is a heavy goods vehicle as defined - -- in UNECE/TRANS/WP.29/78/Rev.4 class N2, N3 - trailer (7), -- the detected object is an unpowered vehicle that is intended - -- to be towed by a powered vehicle as defined in - -- UNECE/TRANS/WP.29/78/Rev.4 class O - specialVehicles (8), -- the detected object is a vehicle which has a special purpose - -- other than the above (e.g. moving road works vehicle) - tram (9), -- the detected object is a vehicle running on tracks along - -- public streets - emergencyVehicle (10), -- the detected object is a vehicle used in an emergency situation - -- such as an ambulance, police car or fire engine - agricultural (11) -- the detected object is a vehicle used for agricultural purposes + unknown (0), --< the type of vehicle is unknown + moped (1), --< the detected object is a light motor vehicle with less than four + --< wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 class L1, L2 + motorcycle (2), --< the detected object is a light motor vehicle with less than four + --< wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 class L3, L4, L5, L6, L7 + passengerCar (3), --< the detected object is a small passenger car as defined in + --< UNECE/TRANS/WP.29/78/Rev.4 class M1 + bus (4), --< the detected object is a large passenger vehicle as defined + --< in UNECE/TRANS/WP.29/78/Rev.4 class M2, M3 + lightTruck (5), --< the detected object is a light goods vehicle as defined + --< in UNECE/TRANS/WP.29/78/Rev.4 class N1 + heavyTruck (6), --< the detected object is a heavy goods vehicle as defined + --< in UNECE/TRANS/WP.29/78/Rev.4 class N2, N3 + trailer (7), --< the detected object is an unpowered vehicle that is intended + --< to be towed by a powered vehicle as defined in + --< UNECE/TRANS/WP.29/78/Rev.4 class O + specialVehicles (8), --< the detected object is a vehicle which has a special purpose + --< other than the above (e.g. moving road works vehicle) + tram (9), --< the detected object is a vehicle running on tracks along + --< public streets + emergencyVehicle (10), --< the detected object is a vehicle used in an emergency situation + --< such as an ambulance, police car or fire engine + agricultural (11) --< the detected object is a vehicle used for agricultural purposes } (0..255) /** @brief Other Subclass Type @@ -496,12 +495,12 @@ Describes the confidence value for the type of a detected object. @unit Percent */ ClassConfidence ::= INTEGER { - unknown (0), -- in case the confidence value is unknown but the reported - -- classification is still valid. + unknown (0), --< in case the confidence value is unknown but the reported + --< classification is still valid. onePercent (1), oneHundredPercent (100), - unavailable (101) -- In case the class confidence value computation is not available - -- for this object. Indicates that the class assignment is invalid. + unavailable (101) --< In case the class confidence value computation is not available + --< for this object. Indicates that the class assignment is invalid. } (0..101) /** @brief WGS 84 Angle Value @@ -558,10 +557,10 @@ The required confidence level is defined by the corresponding standards applying AngleConfidence ::= INTEGER { zeroPointOneDegree (1), oneDegree (10), - outOfRange (126), -- if the accuracy is out of range, i.e. greater than - -- 12,5 degrees. A corresponding reported angle value shall be - -- considered invalid and cannot be trusted. - unavailable (127) -- if the accuracy information is not available + outOfRange (126), --< if the accuracy is out of range, i.e. greater than + --< 12,5 degrees. A corresponding reported angle value shall be + --< considered invalid and cannot be trusted. + unavailable (127) --< if the accuracy information is not available } (1..127) /** @brief Angular Speed Confidence @@ -571,15 +570,15 @@ For correlation computation, maximum interval levels shall be assumed. @ n/a */ AngularSpeedConfidence ::= ENUMERATED { - degSec-000-01 (0), -- if the accuracy is equal to or less than 0,01 degree/second - degSec-000-05 (1), -- 1 if the accuracy is equal to or less than 0,05 degrees/second - degSec-000-10 (2), -- if the accuracy is equal to or less than 0,1 degree/second - degSec-001-00 (3), -- 3 if the accuracy is equal to or less than 1 degree/second - degSec-005-00 (4), -- if the accuracy is equal to or less than 5 degrees/second - degSec-010-00 (5), -- if the accuracy is equal to or less than 10 degrees/second - degSec-100-00 (6), -- if the accuracy is equal to or less than 100 degrees/second - outOfRange (7), -- if the accuracy is out of range, i.e. greater than 100 degrees/second - unavailable (8) -- if the accuracy information is unavailable + degSec-000-01 (0), --< if the accuracy is equal to or less than 0,01 degree/second + degSec-000-05 (1), --< 1 if the accuracy is equal to or less than 0,05 degrees/second + degSec-000-10 (2), --< if the accuracy is equal to or less than 0,1 degree/second + degSec-001-00 (3), --< 3 if the accuracy is equal to or less than 1 degree/second + degSec-005-00 (4), --< if the accuracy is equal to or less than 5 degrees/second + degSec-010-00 (5), --< if the accuracy is equal to or less than 10 degrees/second + degSec-100-00 (6), --< if the accuracy is equal to or less than 100 degrees/second + outOfRange (7), --< if the accuracy is out of range, i.e. greater than 100 degrees/second + unavailable (8) --< if the accuracy information is unavailable } /** @brief Angular Acceleration Confidence @@ -589,15 +588,15 @@ For correlation computation, maximum interval levels shall be assumed. @ n/a */ AngularAccelerationConfidence ::= ENUMERATED { - degSecSquared-000-01 (0), -- if the accuracy is equal to or less than 0,01 degree/second^2 - degSecSquared-000-05 (1), -- 1 if the accuracy is equal to or less than 0,05 degrees/second^2 - degSecSquared-000-10 (2), -- if the accuracy is equal to or less than 0,1 degree/second^2 - degSecSquared-001-00 (3), -- 3 if the accuracy is equal to or less than 1 degree/second^2 - degSecSquared-005-00 (4), -- if the accuracy is equal to or less than 5 degrees/second^2 - degSecSquared-010-00 (5), -- if the accuracy is equal to or less than 10 degrees/second^2 - degSecSquared-100-00 (6), -- if the accuracy is equal to or less than 100 degrees/second^2 - outOfRange (7), -- if the accuracy is out of range, i.e. greater than 100 degrees/second^2 - unavailable (8) -- if the accuracy information is unavailable + degSecSquared-000-01 (0), --< if the accuracy is equal to or less than 0,01 degree/second^2 + degSecSquared-000-05 (1), --< 1 if the accuracy is equal to or less than 0,05 degrees/second^2 + degSecSquared-000-10 (2), --< if the accuracy is equal to or less than 0,1 degree/second^2 + degSecSquared-001-00 (3), --< 3 if the accuracy is equal to or less than 1 degree/second^2 + degSecSquared-005-00 (4), --< if the accuracy is equal to or less than 5 degrees/second^2 + degSecSquared-010-00 (5), --< if the accuracy is equal to or less than 10 degrees/second^2 + degSecSquared-100-00 (6), --< if the accuracy is equal to or less than 100 degrees/second^2 + outOfRange (7), --< if the accuracy is out of range, i.e. greater than 100 degrees/second^2 + unavailable (8) --< if the accuracy information is unavailable } @@ -627,8 +626,8 @@ Absolute accuracy of measurement to a confidence level of 95%. DistanceConfidence ::= INTEGER { zeroPointZeroOneMeter (1), oneMeter (100), - outOfRange (4094), -- shall be set if the accuracy is out of range - unavailable (4095) -- shall be set if the accuracy data is unavailable + outOfRange (4094), --< shall be set if the accuracy is out of range + unavailable (4095) --< shall be set if the accuracy data is unavailable } (0..4095) /** @brief Dynamic Status @@ -638,11 +637,11 @@ position. @unit n/a */ DynamicStatus ::= INTEGER { - dynamic (0), -- the object is moving - hasBeenDynamic (1), -- indicates whether an object has been dynamic before, e.g., a car - -- stopping at a traffic light - static (2) -- shall be used in case an object is identified to be not moving - -- throughout any previous observation + dynamic (0), --< the object is moving + hasBeenDynamic (1), --< indicates whether an object has been dynamic before, e.g., a car + --< stopping at a traffic light + static (2) --< shall be used in case an object is identified to be not moving + --< throughout any previous observation } (0..2) /** @brief Hitch Point Offset @@ -664,8 +663,8 @@ is not overhanging to the front with respect to the trailer reference point. @unit 0,1 m */ FrontOverhang ::= INTEGER { - noOverhang (0), -- trailer is not overhanging to the front with respect to the - -- trailer reference point + noOverhang (0), --< trailer is not overhanging to the front with respect to the + --< trailer reference point zeroPointOneMeter (1), oneMeter (10) } (0..50) @@ -675,10 +674,10 @@ Confidence indicating that an area is not occupied by a traffic participant or o @unit n/a */ FreeSpaceConfidence ::= INTEGER { - unknown (0), -- if the free space confidence is unknown for the described area + unknown (0), --< if the free space confidence is unknown for the described area onePercent (1), oneHundredPercent (100), - unavailable (101) -- if the confidence could not be computed and does not apply. + unavailable (101) --< if the confidence could not be computed and does not apply. } (0..101) /** @brief Longitudinal Lane Position Value @@ -697,8 +696,8 @@ Absolute accuracy of longitudinal lane position measurement to a confidence leve LongitudinalLanePositionConfidence ::= INTEGER { zeroPointZeroOneMeter (1), oneMeter (100), - outOfRange (101), -- shall be set if the accuracy is out of range - unavailable (102) -- shall be set if the accuracy data is unavailable + outOfRange (101), --< shall be set if the accuracy is out of range + unavailable (102) --< shall be set if the accuracy data is unavailable } (0..102) /** @brief Object Age @@ -708,7 +707,7 @@ disseminating station. */ ObjectAge ::= INTEGER { oneMiliSec (1), - moreThan1Point5Second (1500) -- indicates that the object has been observed for more than 1.5s. + moreThan1Point5Second (1500) --< indicates that the object has been observed for more than 1.5s. } (0..1500) /** @brief Object Confidence @@ -718,9 +717,9 @@ on the computation. @unit n/a */ ObjectConfidence ::= INTEGER { - noConfidence (0), -- No confidence in detected object, e.g. for "ghost"-objects or - -- if confidence could not be computed - fullConfidence (15) -- Full confidence in detected object + noConfidence (0), --< No confidence in detected object, e.g. for "ghost"-objects or + --< if confidence could not be computed + fullConfidence (15) --< Full confidence in detected object } (0..15) /** @brief Object Dimension Value @@ -846,10 +845,10 @@ SensorType ::= INTEGER { nightvision (5), ultrasonic (6), pmd (7), - fusion (8), -- object information provided from sensor data fusion system + fusion (8), --< object information provided from sensor data fusion system inductionloop (9), sphericalCamera (10), - itssaggregation (11) -- object information gathered from other received ITS messages + itssaggregation (11) --< object information gathered from other received ITS messages } (0..15) /** @brief Segment Count @@ -864,11 +863,11 @@ Value of a speed component. @unit 0,01 m/s */ SpeedValueExtended ::= INTEGER { - negativeSpeedMaximum (-16383), -- shall be set for values equal to or smaller than -163,83 m/s + negativeSpeedMaximum (-16383), --< shall be set for values equal to or smaller than -163,83 m/s standstill (0), oneCentimeterPerSec (1), - speedMaximum (16382), -- shall be set for values equal to or greater than 163,82 m/s - unavailable (16383) -- shall be set if information is not available + speedMaximum (16382), --< shall be set for values equal to or greater than 163,82 m/s + unavailable (16383) --< shall be set if information is not available } (-16383..16383) /** @brief Acceleration Value @@ -878,7 +877,7 @@ Value of an acceleration component. AccelerationValue ::= INTEGER { pointOneMeterPerSecSquared (1), minusPointOneMeterPerSecSquared (-1), - unavailable (161) -- shall be set if information is not available + unavailable (161) --< shall be set if information is not available } (-160 .. 161) /** @brief Time of Measurement diff --git a/asn/SensorInformation.asn b/asn/SensorInformation.asn index 11e5f9d8a6af58e5dca760439b0b7e00c0600815..81c5a387036f8b476fade7aca30bff6e1c234668 100644 --- a/asn/SensorInformation.asn +++ b/asn/SensorInformation.asn @@ -100,7 +100,7 @@ VehicleSensor ::= SEQUENCE { ... } --- @brief Vehicle Sensor Property List +--! @brief Vehicle Sensor Property List VehicleSensorPropertyList ::= SEQUENCE SIZE(1..10) OF VehicleSensorProperties /** @brief Vehicle Sensor Properties diff --git a/docs/CAM-PDU-Descriptions.md b/docs/CAM-PDU-Descriptions.md new file mode 100644 index 0000000000000000000000000000000000000000..c72d3d04221fc368c31c0e621a1b2948b0cfd27e --- /dev/null +++ b/docs/CAM-PDU-Descriptions.md @@ -0,0 +1,258 @@ +# 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: + + +```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**](#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, + ... +} +``` + + + +```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 +} +``` + + + +```asn1 +DangerousGoodsContainer ::= SEQUENCE { + dangerousGoodsBasic DangerousGoodsBasic + } +``` + + + +```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/CPM-CommonDataTypes-Descriptions.md b/docs/CPM-CommonDataTypes-Descriptions.md new file mode 100644 index 0000000000000000000000000000000000000000..794f15ea1043096736a7aa616aadee3c8872d446 --- /dev/null +++ b/docs/CPM-CommonDataTypes-Descriptions.md @@ -0,0 +1,1582 @@ +# ASN.1 module CPM-CommonDataTypes-Descriptions + OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) commonDataTypes (2) 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)}*
+ Include ETSI TS 102 894-2 v1.3.1 + Include references from https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/v1.3.1/ITS-Container.asn + + * **[DSRC](DSRC.md)** *{iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) version2 (2)}*
+ Include ISO 19091 + Include references from https://standards.iso.org/iso/ts/19091/ed-2/en/ISO-TS-19091-addgrp-C-2018.asn + +## Data Elements: +### Area Circular + +Describes a circular area. The circle is centred about the reference point of the ITS-S or about +the nodeCenterPoint (if provided). The DF shall include the following information: + + +Fields: +* nodeCenterPoint [**OffsetPoint**](#OffsetPoint) OPTIONAL
+ + Optional offset point about which the circle is centred with respect to the reference + position of the ITS-S. + +* radius [**Radius**](#Radius)
+ + The radius of the circular area + +```asn1 +AreaCircular ::= SEQUENCE { + nodeCenterPoint OffsetPoint OPTIONAL, + radius Radius +} +``` + +### Area Ellipse + +Describes an elliptical area. The ellipse is centred about the reference point of the ITS-S or +about the nodeCenterPoint (if provided). + + +Fields: +* nodeCenterPoint [**OffsetPoint**](#OffsetPoint) OPTIONAL
+ + Optional offset point about which the ellipse is centred with respect to the reference + position of the ITS-S. + +* semiMinorRangeLength [**SemiRangeLength**](#SemiRangeLength)
+ + Major radius of the ellipse. + +* semiMajorRangeLength [**SemiRangeLength**](#SemiRangeLength)
+ + Minor radius of the ellipse. + +* semiMajorRangeOrientation [**WGS84AngleValue**](#WGS84AngleValue)
+ + Orientation of the semiMajorRangeLength of the ellipse in the WGS84 coordinate system. + +* semiHeight [**SemiRangeLength**](#SemiRangeLength) OPTIONAL
+```asn1 +AreaEllipse ::= SEQUENCE { + nodeCenterPoint OffsetPoint OPTIONAL, + semiMinorRangeLength SemiRangeLength, + semiMajorRangeLength SemiRangeLength, + semiMajorRangeOrientation WGS84AngleValue, + semiHeight SemiRangeLength OPTIONAL +} +``` + +### Area Rectangle + +Describes a rectangular area. The rectangle is centred about the reference point of the ITS-S or +about the nodeCenterPoint (if provided). + + +Fields: +* nodeCenterPoint [**OffsetPoint**](#OffsetPoint) OPTIONAL
+ + Optional offset point about which the rectangle is centred with respect to the reference + position of the ITS-S. + +* semiMajorRangeLength [**SemiRangeLength**](#SemiRangeLength)
+ + Half length of the rectangle. + +* semiMinorRangeLength [**SemiRangeLength**](#SemiRangeLength)
+ + Half width of the rectangle. + +* semiMajorRangeOrientation [**WGS84AngleValue**](#WGS84AngleValue)
+ + Orientation of the semiMajorRangeLength of the rectangle in the WGS84 coordinate system. + +* semiHeight [**SemiRangeLength**](#SemiRangeLength) OPTIONAL
+```asn1 +AreaRectangle ::= SEQUENCE { + nodeCenterPoint OffsetPoint OPTIONAL, + semiMajorRangeLength SemiRangeLength, + semiMinorRangeLength SemiRangeLength, + semiMajorRangeOrientation WGS84AngleValue, + semiHeight SemiRangeLength OPTIONAL +} +``` + +### Area Polygon + +Describes a polygonal area constructed by connecting the offset points in the sequence +provided. The last point shall be connected with the first point to close the polygon. + + +Fields: +* polyPointList [**PolyPointList**](#PolyPointList)
+```asn1 +AreaPolygon ::= SEQUENCE { + polyPointList PolyPointList +} +``` + +### Poly Point List + +Describes a list of points representing a polygon. The last point shall be connected with the +first point to close the polygon. + + +```asn1 +PolyPointList ::= SEQUENCE (SIZE(3..16, ...)) OF OffsetPoint +``` + +### Area Radial + +Describes a radial area scanned by a stationary sensor. The triangular or cone-shaped area is +constructed by sweeping the provided range about the reference point of the ITS-S or about the +point described by the sensor offset point (if provided) with respect to 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). + + +Fields: +* range [**Range**](#Range)
+ + The radial range of the sensor from the reference point or sensor point offset. + +* stationaryHorizontalOpeningAngleStart [**WGS84AngleValue**](#WGS84AngleValue)
+ + The orientation indicating the beginning of the stationary sensor’s horizontal opening angle + in positive angular direction with respect to the WGS84 coordinate system. + +* stationaryHorizontalOpeningAngleEnd [**WGS84AngleValue**](#WGS84AngleValue)
+ + The orientation indicating the end of the stationary sensor’s horizontal opening angle in + positive angular direction with respect to the WGS84 coordinate system. + +* verticalOpeningAngleStart [**CartesianAngleValue**](#CartesianAngleValue) OPTIONAL
+ + The orientation indicating the beginning of the stationary sensor’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. + +* verticalOpeningAngleEnd [**CartesianAngleValue**](#CartesianAngleValue) OPTIONAL
+ + The orientation indicating the end of the stationary sensor’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. + +* sensorPositionOffset [**OffsetPoint**](#OffsetPoint) OPTIONAL
+ + The offset of the mounting poinf of this sensor from the station's @see ReferencePosition. + +* sensorHeight [**SensorHeight**](#SensorHeight) OPTIONAL
+ + The height of the sensor mounting point. + +```asn1 +AreaRadial ::= SEQUENCE { + range Range, + stationaryHorizontalOpeningAngleStart WGS84AngleValue, + stationaryHorizontalOpeningAngleEnd WGS84AngleValue, + verticalOpeningAngleStart CartesianAngleValue OPTIONAL, + verticalOpeningAngleEnd CartesianAngleValue OPTIONAL, + sensorPositionOffset OffsetPoint OPTIONAL, + sensorHeight SensorHeight OPTIONAL, + ... +} +``` + +### Object Distance With Confidence + +A general Data Frame to describe a distance component along with a confidence with a +predefined confidence level of 95% for the component. + + +Fields: +* value [**DistanceValue**](#DistanceValue)
+ + The distance value which can be estimated as the mean of the current distribution. + +* confidence [**DistanceConfidence**](#DistanceConfidence)
+ + The distance accuracy associated to the provided value at a predefined confidence level + of 95% for the component. + +```asn1 +ObjectDistance ::= SEQUENCE { + value DistanceValue, + confidence DistanceConfidence +} +``` + +### Object Dimension + +A general Data Frame to describe a dimension of an object along with a confidence with a +predefined confidence level of 95% for the component. + + +Fields: +* value [**ObjectDimensionValue**](#ObjectDimensionValue)
+ + The object dimension value which can be estimated as the mean of the current distribution. + +* confidence [**ObjectDimensionConfidence**](#ObjectDimensionConfidence)
+ + The dimension accuracy associated to the provided value at a predefined confidence level + of 95% for the component. + +```asn1 +ObjectDimension ::= SEQUENCE { + value ObjectDimensionValue, + confidence ObjectDimensionConfidence +} +``` + +### Cartesian Angle + +A general Data Frame to describe an angle component along with a confidence with a predefined +confidence level of 95% for the component in a Cartesian coordinate system. + + +Fields: +* value [**CartesianAngleValue**](#CartesianAngleValue)
+ + The angle value which can be estimated as the mean of the current distribution. + +* confidence [**AngleConfidence**](#AngleConfidence)
+ + The accuracy associated to the provided value at a predefined confidence level + of 95% for the component. + +```asn1 +CartesianAngle ::= SEQUENCE { + value CartesianAngleValue, + confidence AngleConfidence +} +``` + +### CartesianAngularSpeed + +A general Data Frame to describe an angular speed component along with a confidence with a predefined +confidence level of 95% for the component in a Cartesian coordinate system. + + +Fields: +* value [**CartesianAngularSpeedValue**](#CartesianAngularSpeedValue)
+ + The angular speed (rate) value which can be estimated as the mean of the current distribution. + +* confidence [**AngularSpeedConfidence**](#AngularSpeedConfidence)
+ + The accuracy associated to the provided value at a predefined confidence level + of 95% for the component. + +```asn1 +CartesianAngularSpeed ::= SEQUENCE { + value CartesianAngularSpeedValue, + confidence AngularSpeedConfidence +} +``` + +### CartesianAngularAcceleration + +A general Data Frame to describe an angular acceleration component along with a confidence with a predefined +confidence level of 95% for the component in a Cartesian coordinate system. + + +Fields: +* value [**CartesianAngularAccelerationValue**](#CartesianAngularAccelerationValue)
+ + The angular acceleration value which can be estimated as the mean of the current distribution. + +* confidence [**AngularAccelerationConfidence**](#AngularAccelerationConfidence)
+ + The accuracy associated to the provided value at a predefined confidence level + of 95% for the component. + +```asn1 +CartesianAngularAcceleration ::= SEQUENCE { + value CartesianAngularAccelerationValue, + confidence AngularAccelerationConfidence +} +``` + +### WGS 84 Angle + +A general Data Frame to describe an angular component along with a confidence with a predefined +confidence level of 95% for the component in the WGS84 coordinate system. + + +Fields: +* value [**WGS84AngleValue**](#WGS84AngleValue)
+ + The angle value which can be estimated as the mean of the current distribution. + +* confidence [**AngleConfidence**](#AngleConfidence)
+ + The accuracy associated to the provided value at a predefined confidence level + of 95% for the component. + +```asn1 +WGS84Angle ::= SEQUENCE { + value WGS84AngleValue, + confidence AngleConfidence +} +``` + +### Speed Extended + +A general Data Frame to describe a speed component along with a confidence with a predefined +confidence level of 95% for the component. + + +Fields: +* value [**SpeedValueExtended**](#SpeedValueExtended)
+ + The speed value which can be estimated as the mean of the current distribution. + +* confidence [**SpeedConfidence**](ITS-Container.md#SpeedConfidence)
+ + The accuracy associated to the provided value at a predefined confidence level + of 95% for the component. + +```asn1 +SpeedExtended ::= SEQUENCE { + value SpeedValueExtended, + confidence SpeedConfidence +} +``` + +### Acceleration + +A general Data Frame to describe an acceleration component along with a confidence with a predefined +confidence level of 95% for the component. + + +Fields: +* value [**AccelerationValue**](#AccelerationValue)
+ + The acceleration value which can be estimated as the mean of the current distribution. + +* confidence [**AccelerationConfidence**](ITS-Container.md#AccelerationConfidence)
+ + The accuracy associated to the provided value at a predefined confidence level + of 95% for the component. + +```asn1 +Acceleration ::= SEQUENCE { + value AccelerationValue, + confidence AccelerationConfidence +} +``` + +### Sensor ID List + +List of sensor IDs. + + +```asn1 +SensorIdList ::= SEQUENCE SIZE(1..128, ...) OF Identifier +``` + +### Trailer Data Container + +List of information about attached trailers. + + +```asn1 +TrailerDataContainer ::= SEQUENCE SIZE(1..2) OF TrailerData +``` + +### Trailer Data + +Provides detailed information about the dimensions and orientation of an attached trailer. + + +Fields: +* refPointId [**RefPointId**](#RefPointId)
+* hitchPointOffset [**HitchPointOffset**](#HitchPointOffset)
+* frontOverhang [**FrontOverhang**](#FrontOverhang)
+* rearOverhang [**RearOverhang**](#RearOverhang)
+* trailerWidth [**VehicleWidth**](ITS-Container.md#VehicleWidth) OPTIONAL
+* hitchAngle [**CartesianAngle**](#CartesianAngle) OPTIONAL
+```asn1 +TrailerData ::= SEQUENCE { + refPointId RefPointId, + hitchPointOffset HitchPointOffset, + frontOverhang FrontOverhang, + rearOverhang RearOverhang, + trailerWidth VehicleWidth OPTIONAL, + hitchAngle CartesianAngle OPTIONAL, + ... +} +``` + +### Matched Position + +Indicates the position of the object mapped on the intersection topology description transmitted +in MAP messages. + + +Fields: +* laneID [**LaneID**](DSRC.md#LaneID) OPTIONAL
+ + Conveys an assigned index that is unique within the intersection with InterSectionReferenceId + of the OriginatingRSUContainer. It shall be presented as specified in + Clause 7.88 of SAE J2735. + +* longitudinalLanePosition [**LongitudinalLanePosition**](#LongitudinalLanePosition) OPTIONAL
+ + Indicates the longitudinal offset of the map-matched position of the object along the lane. + +```asn1 +MatchedPosition ::= SEQUENCE { + laneID LaneID OPTIONAL, + longitudinalLanePosition LongitudinalLanePosition OPTIONAL, + ... +} +``` + +### Longitudinal Lane Position + +Estimated position along the longitudinal length of a particular lane. A lane is provided by +a corresponding MAP message. + + +Fields: +* longitudinalLanePositionValue [**LongitudinalLanePositionValue**](#LongitudinalLanePositionValue)
+ + The mean value of the longitudinal position within a particular length. + +* longitudinalLanePositionConfidence [**LongitudinalLanePositionConfidence**](#LongitudinalLanePositionConfidence)
+ + The confidence associated to the provided value. + +```asn1 +LongitudinalLanePosition ::= SEQUENCE { + longitudinalLanePositionValue LongitudinalLanePositionValue, + longitudinalLanePositionConfidence LongitudinalLanePositionConfidence +} +``` + +### Message Segment Information + +Information about segmented CPM and the number of generated segments. + + +Fields: +* totalMsgSegments [**SegmentCount**](#SegmentCount)
+ + The total number of messages required on the transmitter side to distribute the information + to several messages. + +* thisSegmentNum [**SegmentCount**](#SegmentCount)
+ + Indicates the number of the received message out of the total number of messages + used to realize segmentation. + +```asn1 +MessageSegmentInfo ::= SEQUENCE { + totalMsgSegments SegmentCount, + thisSegmentNum SegmentCount +} +``` + +### Lower Triangular Positive Semi-Definite Matrix + +A general data frame to express the elements of a lower triangular positive semi-definite matrix, not +including the main diagonal elements of the matrix. +Given a matrix "A" of size n x n, the number of columns to be included in the lower triangular matrix is k=n-1. + + +```asn1 +LowerTriangularPositiveSemidefiniteMatrix ::= SEQUENCE SIZE (1..17) OF CorrelationColumn +``` + +### Correlation Column + +The column of the lower triangular positive semi-definite matrix consists of correlation row values. +Given a matrix "A" of size n x n, the number of columns to be included in the lower triangular matrix is k=n-1. +Each column "i" of the lower triangular then contains k-(i-1) values, where "i" refers to the column number count +starting at 1 from the left. + + +```asn1 +CorrelationColumn ::= SEQUENCE SIZE (1..17) OF CorrelationRowValue +``` + +### Correlation Row Value + +The Bravais-Pearson correlation value for each cell of the lower triangular correlation matrix. +Scaled by 100. +@unit: None + + +Values: +* **full-negative-correlation** (-100)
+Full negative correlation +* **no-correlation** (0)
+If not correlated or unavailable +* **point-one** (10)
+* **full-positive-correlation** (100)
+Full positive correlation +```asn1 +CorrelationRowValue ::= INTEGER { + full-negative-correlation (-100), + no-correlation (0), + point-one (10), + full-positive-correlation (100) +} (-100..100) +``` + +### Object Class Description + +A list of object classes. + + +```asn1 +ObjectClassDescription ::= SEQUENCE (SIZE(1..8)) OF ObjectClassWithConfidence +``` + +### Object Class with Confidence + +Describes the classification of a detected object. The object can be classified into one of four +categories: vehicle, person, animal and other. The classification is provided with a +confidence indication. + + +Fields: +* objectClass [**ObjectClass**](#ObjectClass)
+* confidence [**ClassConfidence**](#ClassConfidence)
+```asn1 +ObjectClassWithConfidence ::= SEQUENCE { + objectClass ObjectClass, + confidence ClassConfidence +} +``` + +### Object Class + +The class that best describes the detected object. Each class provides optional subclasses. + + +Fields: +* vehicleSubclass [**VehicleSubclassType**](#VehicleSubclassType)
+* personSubclass [**PersonSubclassType**](#PersonSubclassType)
+* animalSubclass [**AnimalSubclassType**](#AnimalSubclassType)
+* otherSubclass [**OtherSubclassType**](#OtherSubclassType)
+```asn1 +ObjectClass ::= CHOICE { + vehicleSubclass VehicleSubclassType, + personSubclass PersonSubclassType, + animalSubclass AnimalSubclassType, + otherSubclass OtherSubclassType, + ... +} +``` + +### Offset Point + +Describes an offset position in a two- or three-dimensional plane as imported from +CEN ISO/TS 19091. Excludes the node-LatLon DF and regional DF defined therein. + + +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 +} +``` + +### Node Offset Point in Z-direction + +Describes the vertical offset from another point. This is specified in close resemblance +to SAE J2735 _NodeOffsetPointXY_. + + +Fields: +* node-Z1 [**Offset-B10**](DSRC.md#Offset-B10)
+node is within 5.11m of last node +* node-Z2 [**Offset-B11**](DSRC.md#Offset-B11)
+node is within 10.23m of last node +* node-Z3 [**Offset-B12**](DSRC.md#Offset-B12)
+node is within 20.47m of last node +* node-Z4 [**Offset-B13**](DSRC.md#Offset-B13)
+node is within 40.96m of last node +* node-Z5 [**Offset-B14**](DSRC.md#Offset-B14)
+node is within 81.91m of last node +* node-Z6 [**Offset-B16**](DSRC.md#Offset-B16)
+node is within 327.67m of last node +```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 +} +``` + +### Animal Subclass Type + +Describes the subclass of a detected object for class animal. + + +    **Unit**: _n/a_ + +Values: +* **unknown** (0)
+the kind of animal is not known +```asn1 +AnimalSubclassType ::= INTEGER { + unknown (0) +} (0..255) +``` + +### Person Subclass Type + +Describes the subclass of a detected object for class persons. Persons are a subset of the +vulnerable road users as defined in Section 4.2 of ETSI TR 103 300-2 as well as in the +classification provided in Annex 1 of Regulation EU 168/2013. + + +    **Unit**: _n/a_ + +Values: +* **unknown** (0)
+the vru type for the detected object is unknown +* **pedestrian** (1)
+the detected object is a pedestrian travelling on foot +* **personInWheelchair** (2)
+the detected object is a person travelling in a wheelchair +* **cyclist** (3)
+the detected object is one or multiple persons travelling on +non-motorized unicycles, bicycles, tricycles or quadricycle +* **personWithStroller** (4)
+the detected object is a person travelling on foot pushing or +pulling a stroller potentially carrying by one or +multiple other persons +* **personOnSkates** (5)
+the detected object is a person travelling on skates, skateboards +or a small electric or foot operated scooter +* **personGroup** (6)
+the detected object is a group of persons with similar +movement characteristics +```asn1 +PersonSubclassType ::= INTEGER { + unknown (0), + pedestrian (1), + personInWheelchair (2), + cyclist (3), + personWithStroller (4), + personOnSkates (5), + personGroup (6) +} (0..255) +``` + +### Vehicle Subclass Type + +Describes the subclass of a detected object for class vehicle. + + +    **Unit**: _n/a_ + +Values: +* **unknown** (0)
+the type of vehicle is unknown +* **moped** (1)
+the detected object is a light motor vehicle with less than four +wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 class L1, L2 +* **motorcycle** (2)
+the detected object is a light motor vehicle with less than four +wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 class L3, L4, L5, L6, L7 +* **passengerCar** (3)
+the detected object is a small passenger car as defined in +UNECE/TRANS/WP.29/78/Rev.4 class M1 +* **bus** (4)
+the detected object is a large passenger vehicle as defined +in UNECE/TRANS/WP.29/78/Rev.4 class M2, M3 +* **lightTruck** (5)
+the detected object is a light goods vehicle as defined +in UNECE/TRANS/WP.29/78/Rev.4 class N1 +* **heavyTruck** (6)
+the detected object is a heavy goods vehicle as defined +in UNECE/TRANS/WP.29/78/Rev.4 class N2, N3 +* **trailer** (7)
+the detected object is an unpowered vehicle that is intended +to be towed by a powered vehicle as defined in +UNECE/TRANS/WP.29/78/Rev.4 class O +* **specialVehicles** (8)
+the detected object is a vehicle which has a special purpose +other than the above (e.g. moving road works vehicle) +* **tram** (9)
+the detected object is a vehicle running on tracks along +public streets +* **emergencyVehicle** (10)
+the detected object is a vehicle used in an emergency situation +such as an ambulance, police car or fire engine +* **agricultural** (11)
+the detected object is a vehicle used for agricultural purposes +```asn1 +VehicleSubclassType ::= INTEGER { + unknown (0), + moped (1), + motorcycle (2), + passengerCar (3), + bus (4), + lightTruck (5), + heavyTruck (6), + trailer (7), + specialVehicles (8), + tram (9), + emergencyVehicle (10), + agricultural (11) +} (0..255) +``` + +### Other Subclass Type + +Describes the subclass of a detected object for class other. + + +    **Unit**: _n/a_ + +Values: +* **unknown** (0)
+* **roadSideUnit** (1)
+```asn1 +OtherSubclassType ::= INTEGER { + unknown (0), + roadSideUnit (1) +} (0..255) +``` + +### Class Confidence + +Describes the confidence value for the type of a detected object. + + +    **Unit**: _Percent_ + +Values: +* **unknown** (0)
+in case the confidence value is unknown but the reported +classification is still valid. +* **onePercent** (1)
+* **oneHundredPercent** (100)
+* **unavailable** (101)
+In case the class confidence value computation is not available +for this object. Indicates that the class assignment is invalid. +```asn1 +ClassConfidence ::= INTEGER { + unknown (0), + onePercent (1), + oneHundredPercent (100), + unavailable (101) +} (0..101) +``` + +### WGS 84 Angle Value + +An angle value in degrees described in the WGS84 reference system with respect to the WGS84 north. + + +    **Unit**: _0,1 degrees_ + +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) +``` + +### Cartesian Angle Value + +An angle value described in a local Cartesian coordinate system, counted positive in +a right-hand local coordinate system from the abscissa. + + +    **Unit**: _0,1 degrees_ + +Values: +* **zeroPointOneDegree** (1)
+* **oneDegree** (10)
+* **unavailable** (3601)
+```asn1 +CartesianAngleValue ::= INTEGER { + zeroPointOneDegree (1), + oneDegree (10), + unavailable (3601) +} (0..3601) +``` + +### Cartesian Angular Speed Value + +An angular speed value described in a local Cartesian coordinate system, counted positive in +a right-hand local coordinate system from the abscissa. + + +    **Unit**: _0,01 degrees/s_ + +Values: +* **noSpeed** (0)
+* **oneDegreePerSecondAntiClockwise** (100)
+* **oneDegreePerSecondClockwise** (-100)
+```asn1 +CartesianAngularSpeedValue ::= INTEGER { + noSpeed (0), + oneDegreePerSecondAntiClockwise (100), + oneDegreePerSecondClockwise (-100) +} (-32766..32767) +``` + +### Cartesian Angular Acceleration Value + +An angular acceleration value described in a local Cartesian coordinate system, counted positive in +a right-hand local coordinate system from the abscissa. + + +    **Unit**: _0,01 degrees/s^2 (degrees per second squared)_ + +Values: +* **noAcceleration** (0)
+* **oneDegreePerSecondSquaredAntiClockwise** (100)
+* **oneDegreePerSecondSquaredClockwise** (-100)
+```asn1 +CartesianAngularAccelerationValue ::= INTEGER { + noAcceleration (0), + oneDegreePerSecondSquaredAntiClockwise (100), + oneDegreePerSecondSquaredClockwise (-100) +} (-32766..32767) +``` + +### Angle Confidence + +The absolute accuracy of a reported angle value for a predefined confidence level (e.g. 95 %). +The required confidence level is defined by the corresponding standards applying this DE. + + +    **Unit**: _0,1 degrees_ + +Values: +* **zeroPointOneDegree** (1)
+* **oneDegree** (10)
+* **outOfRange** (126)
+if the accuracy is out of range, i.e. greater than +12,5 degrees. A corresponding reported angle value shall be +considered invalid and cannot be trusted. +* **unavailable** (127)
+if the accuracy information is not available +```asn1 +AngleConfidence ::= INTEGER { + zeroPointOneDegree (1), + oneDegree (10), + outOfRange (126), + unavailable (127) +} (1..127) +``` + +### Angular Speed Confidence + +The absolute accuracy of a reported angular speed value for a predefined confidence level (e.g. 95 %). +The required confidence level is defined by the corresponding standards applying this DE. +For correlation computation, maximum interval levels shall be assumed. +@ n/a + + +Values: +* **degSec-000-01** (0)
+if the accuracy is equal to or less than 0,01 degree/second +* **degSec-000-05** (1)
+1 if the accuracy is equal to or less than 0,05 degrees/second +* **degSec-000-10** (2)
+if the accuracy is equal to or less than 0,1 degree/second +* **degSec-001-00** (3)
+3 if the accuracy is equal to or less than 1 degree/second +* **degSec-005-00** (4)
+if the accuracy is equal to or less than 5 degrees/second +* **degSec-010-00** (5)
+if the accuracy is equal to or less than 10 degrees/second +* **degSec-100-00** (6)
+if the accuracy is equal to or less than 100 degrees/second +* **outOfRange** (7)
+if the accuracy is out of range, i.e. greater than 100 degrees/second +* **unavailable** (8)
+if the accuracy information is unavailable +```asn1 +AngularSpeedConfidence ::= 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) +} +``` + +### Angular Acceleration Confidence + +The absolute accuracy of a reported angular acceleration value for a predefined confidence level (e.g. 95 %). +The required confidence level is defined by the corresponding standards applying this DE. +For correlation computation, maximum interval levels shall be assumed. +@ n/a + + +Values: +* **degSecSquared-000-01** (0)
+if the accuracy is equal to or less than 0,01 degree/second^2 +* **degSecSquared-000-05** (1)
+1 if the accuracy is equal to or less than 0,05 degrees/second^2 +* **degSecSquared-000-10** (2)
+if the accuracy is equal to or less than 0,1 degree/second^2 +* **degSecSquared-001-00** (3)
+3 if the accuracy is equal to or less than 1 degree/second^2 +* **degSecSquared-005-00** (4)
+if the accuracy is equal to or less than 5 degrees/second^2 +* **degSecSquared-010-00** (5)
+if the accuracy is equal to or less than 10 degrees/second^2 +* **degSecSquared-100-00** (6)
+if the accuracy is equal to or less than 100 degrees/second^2 +* **outOfRange** (7)
+if the accuracy is out of range, i.e. greater than 100 degrees/second^2 +* **unavailable** (8)
+if the accuracy information is unavailable +```asn1 +AngularAccelerationConfidence ::= ENUMERATED { + degSecSquared-000-01 (0), + degSecSquared-000-05 (1), + degSecSquared-000-10 (2), + degSecSquared-001-00 (3), + degSecSquared-005-00 (4), + degSecSquared-010-00 (5), + degSecSquared-100-00 (6), + outOfRange (7), + unavailable (8) +} +``` + +### Semi Range Length + +The length of an axis of an ellipsoid or rectangle, used to describe the extension in a +particular direction. + + +    **Unit**: _0,1 m_ + +Values: +* **zeroPointOneMeter** (1)
+* **oneMeter** (10)
+```asn1 +SemiRangeLength ::= INTEGER { + zeroPointOneMeter (1), + oneMeter (10) +} (0..10000) +``` + +### Distance Value + +Distance from one point to another. + + +    **Unit**: _0,01 m_ + +Values: +* **zeroPointZeroOneMeter** (1)
+* **oneMeter** (100)
+```asn1 +DistanceValue ::= INTEGER { + zeroPointZeroOneMeter (1), + oneMeter (100) +} (-132768..132767) +``` + +### Distance Confidence + +Absolute accuracy of measurement to a confidence level of 95%. + + +    **Unit**: _0,01 m_ + +Values: +* **zeroPointZeroOneMeter** (1)
+* **oneMeter** (100)
+* **outOfRange** (4094)
+shall be set if the accuracy is out of range +* **unavailable** (4095)
+shall be set if the accuracy data is unavailable +```asn1 +DistanceConfidence ::= INTEGER { + zeroPointZeroOneMeter (1), + oneMeter (100), + outOfRange (4094), + unavailable (4095) +} (0..4095) +``` + +### Dynamic Status + +Indication whether the detected object is classified as a dynamic (i.e. moving) object. +This value indicates whether an object has the general capability to move, i.e. change its +position. + + +    **Unit**: _n/a_ + +Values: +* **dynamic** (0)
+the object is moving +* **hasBeenDynamic** (1)
+indicates whether an object has been dynamic before, e.g., a car +stopping at a traffic light +* **static** (2)
+shall be used in case an object is identified to be not moving +throughout any previous observation +```asn1 +DynamicStatus ::= INTEGER { + dynamic (0), + hasBeenDynamic (1), + static (2) +} (0..2) +``` + +### Hitch Point Offset + +Position of the hitch point in negative x-direction (according to ISO 8855) from the +vehicle Reference Point. + + +    **Unit**: _0,1 m_ + +Values: +* **zeroPointOneMeter** (1)
+* **oneMeter** (10)
+* **outOfRange** (254)
+* **unavailable** (255)
+```asn1 +HitchPointOffset ::= INTEGER { + zeroPointOneMeter (1), + oneMeter (10), + outOfRange (254), + unavailable (255) +} (0..255) +``` + +### Front Overhang + +Length of the trailer overhang in the positive x direction (according to ISO 8855) from the +trailer Reference Point indicated by the refPointID. The value defaults to 0 in case the trailer +is not overhanging to the front with respect to the trailer reference point. + + +    **Unit**: _0,1 m_ + +Values: +* **noOverhang** (0)
+trailer is not overhanging to the front with respect to the +trailer reference point +* **zeroPointOneMeter** (1)
+* **oneMeter** (10)
+```asn1 +FrontOverhang ::= INTEGER { + noOverhang (0), + zeroPointOneMeter (1), + oneMeter (10) +} (0..50) +``` + +### Free Space Confidence + +Confidence indicating that an area is not occupied by a traffic participant or obstacle. + + +    **Unit**: _n/a_ + +Values: +* **unknown** (0)
+if the free space confidence is unknown for the described area +* **onePercent** (1)
+* **oneHundredPercent** (100)
+* **unavailable** (101)
+if the confidence could not be computed and does not apply. +```asn1 +FreeSpaceConfidence ::= INTEGER { + unknown (0), + onePercent (1), + oneHundredPercent (100), + unavailable (101) +} (0..101) +``` + +### Longitudinal Lane Position Value + +Indicates the longitudinal offset of the map-matched position of a particular object along the +matched lane, beginning from the lane’s starting point as defined in CEN ISO/TS 19091 + + +    **Unit**: _0,1 m_ + +Values: +* **zeroPointOneMeter** (1)
+```asn1 +LongitudinalLanePositionValue ::= INTEGER { + zeroPointOneMeter (1) +} (0..32767) +``` + +### Longitudinal Lane Position Confidence + +Absolute accuracy of longitudinal lane position measurement to a confidence level of 95%. + + +    **Unit**: _0,01 m_ + +Values: +* **zeroPointZeroOneMeter** (1)
+* **oneMeter** (100)
+* **outOfRange** (101)
+shall be set if the accuracy is out of range +* **unavailable** (102)
+shall be set if the accuracy data is unavailable +```asn1 +LongitudinalLanePositionConfidence ::= INTEGER { + zeroPointZeroOneMeter (1), + oneMeter (100), + outOfRange (101), + unavailable (102) +} (0..102) +``` + +### Object Age + +Age of object in milliseconds, i.e. for how long the object has been observed by the +disseminating station. + + +    **Unit**: _1 ms_ + +Values: +* **oneMiliSec** (1)
+* **moreThan1Point5Second** (1500)
+indicates that the object has been observed for more than 1.5s. +```asn1 +ObjectAge ::= INTEGER { + oneMiliSec (1), + moreThan1Point5Second (1500) +} (0..1500) +``` + +### Object Confidence + +A single-value indication about the overall information quality of a perceived object. Its computation +is based on several scaling factors and moving averages. See Clause 7.6.4 of ETSI TS 103 324 for details +on the computation. + + +    **Unit**: _n/a_ + +Values: +* **noConfidence** (0)
+No confidence in detected object, e.g. for "ghost"-objects or +if confidence could not be computed +* **fullConfidence** (15)
+Full confidence in detected object +```asn1 +ObjectConfidence ::= INTEGER { + noConfidence (0), + fullConfidence (15) +} (0..15) +``` + +### Object Dimension Value + +A dimension for an object. + + +    **Unit**: _0,1 m_ + +Values: +* **zeroPointOneMeter** (1)
+* **oneMeter** (10)
+```asn1 +ObjectDimensionValue ::= INTEGER { + zeroPointOneMeter (1), + oneMeter (10) +} (0..1023) +``` + +### Object Dimension Confidence + +Accuracy of provided dimension value with a predefined confidence level (e.g. 95%) + + +    **Unit**: _0,01 m_ + +Values: +* **zeroPointZeroOneMeter** (1)
+* **oneMeter** (100)
+* **outOfRange** (101)
+* **unavailable** (102)
+```asn1 +ObjectDimensionConfidence ::= INTEGER { + zeroPointZeroOneMeter (1), + oneMeter (100), + outOfRange (101), + unavailable (102) +} (0..102) +``` + +### Object Reference Point + +Reference point of measurement for the object dimensions. All provided state variables of this +object are given relative to the reference point. The point is included in the plane +perpendicular to the direction of the @see yawAngleValue. + + +Values: +* **mid** (0)
+* **bottomLeft** (1)
+* **midLeft** (2)
+* **topLeft** (3)
+* **bottomMid** (4)
+* **topMid** (5)
+* **bottomRight** (6)
+* **midRight** (7)
+* **topRight** (8)
+```asn1 +ObjectRefPoint ::= INTEGER { + mid (0), + bottomLeft (1), + midLeft (2), + topLeft (3), + bottomMid (4), + topMid (5), + bottomRight (6), + midRight (7), + topRight (8) +} (0..8) +``` + +### Radius + +The dimension of a sensor area in the shape of a circle or a rectangle. + + +    **Unit**: _0,1 m_ + +Values: +* **zeroPointOneMeter** (1)
+* **oneMeter** (10)
+```asn1 +Radius ::= INTEGER { + zeroPointOneMeter (1), + oneMeter (10) +} (0..10000) +``` + +### Range + +Range of sensor within the indicated azimuth Angle defined by the start and end opening angle. + + +    **Unit**: _0,1 m_ + +Values: +* **zeroPointOneMeter** (1)
+* **oneMeter** (10)
+```asn1 +Range ::= INTEGER { + zeroPointOneMeter (1), + oneMeter (10) +} (0..10000) +``` + +### Rear Overhang + +Length of the trailer overhang in the negative x direction (according to ISO 8855) from the +trailer Reference Point indicated by the @see refPointID + + +    **Unit**: _0,1 m_ + +Values: +* **zeroPointOneMeter** (1)
+* **oneMeter** (10)
+```asn1 +RearOverhang ::= INTEGER { + zeroPointOneMeter (1), + oneMeter (10) + } (0..150) +``` + +### Reference Point ID + +Reference point counter for a trailer. + + +    **Unit**: _n/a_ + +```asn1 +RefPointId ::= INTEGER (0..255) +``` + +### Sensor Height + +Height of sensor position relative to altitude provided by the reference position. + + +    **Unit**: _0,01 m_ + +Values: +* **zeroPointZeroOneMeter** (1)
+```asn1 +SensorHeight ::= INTEGER { + zeroPointZeroOneMeter (1) +} (-5000..5000) +``` + +### Vehicle Height + +The height if the vehicle, measured from the ground to the highest point, excluding any antennas. +In case vehicles are equipped with adjustable ride heights, camper shells, and any other +equipment which may result in varying height, the largest possible height shall be used. + + +    **Unit**: _5 cm (DE ranges to 6.35 m)_ + +```asn1 +VehicleHeight ::= INTEGER (0..127) +``` + +### Shadowing Applies Indication + +Boolean indication if tracing approach shall be used to compute a shadowed area behind an object. +If set to TRUE, the simple tracing approach shall be applied for each object intersecting or +located within the area or volume described by the freeSpaceAddendum container. If set to FALSE, +the simple tracing approach shall not be applied for each object intersecting or located within +the area or volume described by the freeSpaceAddenum container. + + +    **Unit**: _n/a_ + +```asn1 +ShadowingApplies ::= BOOLEAN +``` + +### Identifier + +General identifier data element. + + +    **Unit**: _n/a_ + +```asn1 +Identifier ::= INTEGER (0..255) +``` + +### Number of Perceived Objects + +A data element for representing the total number of detected and shared objects of an ITS-S +transmitting a CPM. + + +    **Unit**: _n/a_ + +```asn1 +NumberOfPerceivedObjects ::= INTEGER (0..255) +``` + +### Sensor Type + +Describes the type of attached sensor + + +    **Unit**: _n/a_ + +Values: +* **undefined** (0)
+* **radar** (1)
+* **lidar** (2)
+* **monovideo** (3)
+* **stereovision** (4)
+* **nightvision** (5)
+* **ultrasonic** (6)
+* **pmd** (7)
+* **fusion** (8)
+object information provided from sensor data fusion system +* **inductionloop** (9)
+* **sphericalCamera** (10)
+* **itssaggregation** (11)
+object information gathered from other received ITS messages +```asn1 +SensorType ::= INTEGER { + undefined (0), + radar (1), + lidar (2), + monovideo (3), + stereovision (4), + nightvision (5), + ultrasonic (6), + pmd (7), + fusion (8), + inductionloop (9), + sphericalCamera (10), + itssaggregation (11) +} (0..15) +``` + +### Segment Count + +A data element for representing either the total number of generated segments by the transmitter +or the identification of the received message segment. + + +    **Unit**: _n/a_ + +```asn1 +SegmentCount ::= INTEGER( 1..127) +``` + +### Speed Value Extended + +Value of a speed component. + + +    **Unit**: _0,01 m/s_ + +Values: +* **negativeSpeedMaximum** (-16383)
+shall be set for values equal to or smaller than -163,83 m/s +* **standstill** (0)
+* **oneCentimeterPerSec** (1)
+* **speedMaximum** (16382)
+shall be set for values equal to or greater than 163,82 m/s +* **unavailable** (16383)
+shall be set if information is not available +```asn1 +SpeedValueExtended ::= INTEGER { + negativeSpeedMaximum (-16383), + standstill (0), + oneCentimeterPerSec (1), + speedMaximum (16382), + unavailable (16383) +} (-16383..16383) +``` + +### Acceleration Value + +Value of an acceleration component. + + +    **Unit**: _0,1 m/s2_ + +Values: +* **pointOneMeterPerSecSquared** (1)
+* **minusPointOneMeterPerSecSquared** (-1)
+* **unavailable** (161)
+shall be set if information is not available +```asn1 +AccelerationValue ::= INTEGER { + pointOneMeterPerSecSquared (1), + minusPointOneMeterPerSecSquared (-1), + unavailable (161) +} (-160 .. 161) +``` + +### Time of Measurement + +Time difference with respect to the @see generationDeltaTime for the provided measurement for the +object. Negative values indicate that the provided object state refers to a point in time after +the @see generationDeltaTime has been computed, i.e. after the latest disseminating ITS-S +position update which is used to calculate the generationDeltaTime. + + +    **Unit**: _1 ms_ + +Values: +* **oneMilliSecond** (1)
+```asn1 +TimeOfMeasurement ::= INTEGER { + oneMilliSecond (1) +} (-1500..1500) +``` + +### X Sensor Offset + +Describes the mounting position of a sensor along the negative x-direction from Reference Point +indicated by the @see refPointID + + +    **Unit**: _0,01 m_ + +Values: +* **negativeZeroPointZeroOneMeter** (-1)
+* **negativeOneMeter** (-100)
+* **negativeOutOfRange** (-3094)
+* **positiveOneMeter** (100)
+* **positiveOutOfRange** (1001)
+```asn1 +XSensorOffset ::= INTEGER { + negativeZeroPointZeroOneMeter (-1), + negativeOneMeter (-100), + negativeOutOfRange (-3094), + positiveOneMeter (100), + positiveOutOfRange (1001) +} (-3094..1001) +``` + +### Y Sensor Offset + +Described the mounting position of a sensor in y-direction from Reference Point +indicated by the @see refPointID + + +    **Unit**: _0,01 m_ + +Values: +* **zeroPointZeroOneMeter** (1)
+* **oneMeter** (100)
+```asn1 +YSensorOffset ::= INTEGER { + zeroPointZeroOneMeter (1), + oneMeter (100) +} (-1000..1000) +``` + +### Z Sensor Offset + +Described the mounting position of a sensor in y-direction from Reference Point +indicated by the @see refPointID + + +    **Unit**: _0,01 m_ + +Values: +* **zeroPointZeroOneMeter** (1)
+* **oneMeter** (100)
+```asn1 +ZSensorOffset ::= INTEGER { + zeroPointZeroOneMeter (1), + oneMeter (100) +} (0..1000) +``` + + + diff --git a/docs/CPM-FreeSpaceAddendum-Descriptions.md b/docs/CPM-FreeSpaceAddendum-Descriptions.md new file mode 100644 index 0000000000000000000000000000000000000000..19f047ba8ceeef437ab2eef7503b02cfc42d73ea --- /dev/null +++ b/docs/CPM-FreeSpaceAddendum-Descriptions.md @@ -0,0 +1,86 @@ +# ASN.1 module CPM-FreeSpaceAddendum-Descriptions + OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) freeSpaceAddendum (6) version1 (1) }_ + +## Imports: + * **[CPM-CommonDataTypes-Descriptions](CPM-CommonDataTypes-Descriptions.md)** *{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) commonDataTypes (2) version1 (1)}*
+ +## Data Elements: +### FreeSpaceAddendumContainer + +Free Space Addendum Container +A list of provided free space addendums. Each addendum shall be described asa provided by +@see FreeSpaceAddendum. + + +```asn1 +FreeSpaceAddendumContainer ::= SEQUENCE SIZE(1..128, ...) OF FreeSpaceAddendum +``` + +### FreeSpaceAddendum + +Free Space Addendum +This container shall only be added if the confidence indication needs to be altered with respect +to the isotropic @see FreeSpaceConfidence confidence level indication provided in the +@see SensorInformation. + + +Fields: +* freeSpaceConfidence [**FreeSpaceConfidence**](CPM-CommonDataTypes-Descriptions.md#FreeSpaceConfidence)
+ @detailsfreeSpaceConfidence + Describes an isotropic free space confidence that applies to the entire area as defined in + the @see freeSpaceArea of a particular free space addendum container. + +* freeSpaceArea [**FreeSpaceArea**](#FreeSpaceArea)
+ + Describes the free space area for which the free space confidence of this addendum + container is valid. + +* sensorIDList [**SensorIdList**](CPM-CommonDataTypes-Descriptions.md#SensorIdList) OPTIONAL
+ + Provides a list of pseudonym sensor IDs which performed the measurement to indicate the + free space. + +* shadowingApplies [**ShadowingApplies**](CPM-CommonDataTypes-Descriptions.md#ShadowingApplies) DEFAULT TRUE
+```asn1 +FreeSpaceAddendum ::= SEQUENCE { + freeSpaceConfidence FreeSpaceConfidence, + freeSpaceArea FreeSpaceArea, + sensorIDList SensorIdList OPTIONAL, + shadowingApplies ShadowingApplies DEFAULT TRUE, + ... +} +``` + +### FreeSpaceArea + +Free Space Area +The described area that is considered as not occupied by any traffic participant or obstacle by +the disseminating ITS-S. + + +Fields: +* freeSpacePolygon [**AreaPolygon**](CPM-CommonDataTypes-Descriptions.md#AreaPolygon)
+ + A sequence of node points from a given offset point to describe an arbitrary area shape. + +* freeSpaceCircular [**AreaCircular**](CPM-CommonDataTypes-Descriptions.md#AreaCircular)
+* freeSpaceEllipse [**AreaEllipse**](CPM-CommonDataTypes-Descriptions.md#AreaEllipse)
+ + A description of an elliptical area. + +* freeSpaceRectangle [**AreaRectangle**](CPM-CommonDataTypes-Descriptions.md#AreaRectangle)
+ + A description of a rectangular area. + +```asn1 +FreeSpaceArea ::= CHOICE { + freeSpacePolygon AreaPolygon, + freeSpaceCircular AreaCircular, + freeSpaceEllipse AreaEllipse, + freeSpaceRectangle AreaRectangle, + ... +} +``` + + + diff --git a/docs/CPM-OriginatingStationData-Descriptions.md b/docs/CPM-OriginatingStationData-Descriptions.md new file mode 100644 index 0000000000000000000000000000000000000000..128037e3734b8782c804790e456bae287190a14f --- /dev/null +++ b/docs/CPM-OriginatingStationData-Descriptions.md @@ -0,0 +1,72 @@ +# ASN.1 module CPM-OriginatingStationData-Descriptions + OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) originatingStationData (3) 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)}*
+ Include ETSI TS 102 894-2 + Include references from https://forge.etsi.org/rep/ITS/ITS_ASN1/blob/master/CDD_TS102894-2/ITS-Container.asn + + * **[DSRC](DSRC.md)** *{iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) version2 (2)}*
+ Include ISO 19091 + Include references from https://standards.iso.org/iso/ts/19091/ed-2/en/ISO-TS-19091-addgrp-C-2018.asn + + * **[CPM-CommonDataTypes-Descriptions](CPM-CommonDataTypes-Descriptions.md)** *{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) commonDataTypes (2) version1 (1)}*
+ +## Data Elements: +### Originating Vehicle Container + +The _originatingVehicleContainer_ provides detailed information about the vehicle ITS-S +disseminating the CPM. + + +```asn1 +OriginatingVehicleContainer ::= SEQUENCE { + heading Heading, + speed Speed, + verticalSpeed SpeedExtended OPTIONAL, +``` + +### Originating RSU Container + + +Angle and angle accuracy of the absolute orientation of the disseminating vehicle in the +WGS84 coordinate system with respect to true North. This is opposed to the vehicle heading +which is calculated taking into account the speed vector. The confidence denotes the accuracy +of the measured angle value for a confidence level of 95 %. + + +Angle and angle accuracy between the ground plane and the current orientation of a vehicle's +x-axis with respect to the ground plane about the y-axis according to the ISO 8855. + + +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 + + +Provides detailed information about the trailers dimensions and orientation in case a trailer is present. + +The _originatingRSUContainer_ provides information about the RSU type ITS-S disseminating the CPM. + + +Fields: +* intersectionReferenceId [**IntersectionReferenceID**](DSRC.md#IntersectionReferenceID)
+ + Conveys the combination of an optional RoadRegulatorID and of an IntersectionID that is + unique within that region. When the RoadRegulatorID is present, the IntersectionReferenceID + is guaranteed to be globally unique. + +* roadSegmentReferenceId [**RoadSegmentReferenceID**](DSRC.md#RoadSegmentReferenceID)
+ + Conveys the RoadSegmentReferenceID which is unique to a given road segment of interest, and + also the RoadRegulatorID assigned to the region in which it is operating + +```asn1 +OriginatingRSUContainer ::= CHOICE { + intersectionReferenceId IntersectionReferenceID, + roadSegmentReferenceId RoadSegmentReferenceID, + ... +} +``` + + + diff --git a/docs/CPM-PDU-Descriptions.md b/docs/CPM-PDU-Descriptions.md new file mode 100644 index 0000000000000000000000000000000000000000..748220d7697e4bb0a2a697281f369966b0d76d81 --- /dev/null +++ b/docs/CPM-PDU-Descriptions.md @@ -0,0 +1,213 @@ +# ASN.1 module CPM-PDU-Descriptions + OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) cpm (1) version1 (1) }_ +Specification of the Collective Perception Message ETSI TS 103 324 +Latest version available at https://forge.etsi.org/rep/ITS/CPM_TS103324 + +## 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 v1.3.1 + Include references from https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/v1.3.1/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 v1.4.1 + Include references from https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/v1.4.1/CAM-PDU-Descriptions.asn + + * **[CPM-CommonDataTypes-Descriptions](CPM-CommonDataTypes-Descriptions.md)** *{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) commonDataTypes (2) version1 (1)}*
+ + * **[CPM-OriginatingStationData-Descriptions](CPM-OriginatingStationData-Descriptions.md)** *{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) originatingStationData (3) version1 (1)}*
+ Import Originating Vehicle Container + + * **[CPM-SensorInformation-Descriptions](CPM-SensorInformation-Descriptions.md)** *{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) sensorInformation (4) version1 (1)}*
+ Import Sensor Information Container + + * **[CPM-PerceivedObject-Descriptions](CPM-PerceivedObject-Descriptions.md)** *{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) perceivedObject (5) version1 (1)}*
+ + * **[CPM-FreeSpaceAddendum-Descriptions](CPM-FreeSpaceAddendum-Descriptions.md)** *{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) freeSpaceAddendum (6) version1 (1)}*
+ +## Data Elements: +### CPM-STATIONDATA-ID-AND-TYPE + +Information Object Class Definitions + + +```asn1 +CPM-STATIONDATA-ID-AND-TYPE ::= CLASS { + &id CpmStationDataId UNIQUE, + &Type +} WITH SYNTAX {&Type IDENTIFIED BY &id} +``` + +### CpmStationDataContainer + +Fields: +* containerId [**CPM-STATIONDATA-ID-AND-TYPE**](#CPM-STATIONDATA-ID-AND-TYPE) .&id( {Set} )
+* containerData [**CPM-STATIONDATA-ID-AND-TYPE**](#CPM-STATIONDATA-ID-AND-TYPE) .&Type( {Set}{@containerId} )
+```asn1 +CpmStationDataContainer {CPM-STATIONDATA-ID-AND-TYPE : Set} ::= SEQUENCE { + containerId CPM-STATIONDATA-ID-AND-TYPE.&id( {Set} ), + containerData CPM-STATIONDATA-ID-AND-TYPE.&Type( {Set}{@containerId} ) +} +``` + +### CPM-CONTAINER-ID-AND-TYPE + +```asn1 +CPM-CONTAINER-ID-AND-TYPE ::= CLASS { + &id CpmContainerId UNIQUE, + &Type +} WITH SYNTAX {&Type IDENTIFIED BY &id} +``` + +### CpmPerceptionDataContainer + +Fields: +* containerId [**CPM-CONTAINER-ID-AND-TYPE**](#CPM-CONTAINER-ID-AND-TYPE) .&id( {Set} )
+* containerData [**CPM-CONTAINER-ID-AND-TYPE**](#CPM-CONTAINER-ID-AND-TYPE) .&Type( {Set}{@containerId} )
+```asn1 +CpmPerceptionDataContainer {CPM-CONTAINER-ID-AND-TYPE : Set} ::= SEQUENCE { + containerId CPM-CONTAINER-ID-AND-TYPE.&id( {Set} ), + containerData CPM-CONTAINER-ID-AND-TYPE.&Type( {Set}{@containerId} ) +} +``` + +### CpmStationDataId + +```asn1 +CpmStationDataId ::= INTEGER (0..255) +CpmContainerId ::= INTEGER (0..255) +``` + +### OriginatingStationData + + + +```asn1 +OriginatingStationData CPM-STATIONDATA-ID-AND-TYPE ::= { + {OriginatingVehicleContainer IDENTIFIED BY originatingStationVehicleContainer} | + {OriginatingRSUContainer IDENTIFIED BY originatingStationRSUContainer}, + ... +} +``` + +### PerceptionData + +```asn1 +PerceptionData CPM-CONTAINER-ID-AND-TYPE ::= { + {SensorInformationContainer IDENTIFIED BY sensorInformationCpmContainer} | + {PerceivedObjectContainer IDENTIFIED BY perceivedObjectCpmContainer} | + {FreeSpaceAddendumContainer IDENTIFIED BY freeSpaceAdddendumCpmContainer}, + ... +} +``` + + + +```asn1 +originatingStationVehicleContainer CpmStationDataId ::= 1 +originatingStationRSUContainer CpmStationDataId ::= 2 +``` + + + +```asn1 +sensorInformationCpmContainer CpmContainerId ::= 1 +perceivedObjectCpmContainer CpmContainerId ::= 2 +freeSpaceAdddendumCpmContainer CpmContainerId ::= 3 +``` + +### Collective Perception Message Root + +Collective Perception Message +This DF includes DEs for the CPM protocolVersion, the CP message type identifier _messageID_ and +the station identifier _stationID_ of the originating ITS-S. + + +Fields: +* header [**ItsPduHeader**](ITS-Container.md#ItsPduHeader)
+ + The DE _protocolVersion_ is used to select the appropriate protocol decoder at the receiving + ITS-S. It shall be set to @todo cpm(15). + The DE _messageID_ shall be harmonized with other V2X message identifier definitions. + +* cpm [**CollectivePerceptionMessage**](#CollectivePerceptionMessage)
+```asn1 +CPM ::= SEQUENCE { + header ItsPduHeader, + cpm CollectivePerceptionMessage +} +``` + +### CollectivePerceptionMessage + +Collective Perception Message +This is the actual CPM Payload. It shall include the time stamp of the CPM and the applicable +containers of type _PerceptionData_. The selection of the StationDataContainer type container +depends on the _StationType_ as selected in the @see CpmManagementContainer + + +Fields: +* generationDeltaTime [**GenerationDeltaTime**](CAM-PDU-Descriptions.md#GenerationDeltaTime)
+* cpmParameters [**CpmParameters**](#CpmParameters)
+```asn1 +CollectivePerceptionMessage ::= SEQUENCE { + generationDeltaTime GenerationDeltaTime, + cpmParameters CpmParameters +} +``` + +### CpmParameters + +CPM Parameters +The sequence of mandatory and optional containers. Other containers may be added in the future. + + +Fields: +* managementContainer [**CpmManagementContainer**](#CpmManagementContainer)
+ managementContainer + The managementContainer comprises basic information about the originating ITS-S, which are + not specific to vehicles or RSUs. + +* stationDataContainer [**CpmStationDataContainer**](#CpmStationDataContainer) {{OriginatingStationData}} OPTIONAL
+ stationDataContainer + The stationDataContainer comprises ITS-S type specific information about the sending station. + +* perceptionData **SEQUENCE** SIZE(1..255) OF CpmPerceptionDataContainer {{PerceptionData}} OPTIONAL
+ perceptionData + The perceptionData comprises different container types for describing the sensory properties + of the transmitting ITS-S, its detected objects and free space estimates. + +```asn1 +CpmParameters ::= SEQUENCE { + managementContainer CpmManagementContainer, + stationDataContainer CpmStationDataContainer {{OriginatingStationData}} OPTIONAL, + perceptionData SEQUENCE SIZE(1..255) OF CpmPerceptionDataContainer {{PerceptionData}} OPTIONAL, + ... +} +``` + +### CPM Management Container + +The managementContainer comprises basic information about the originating ITS-S, which are not +specific to vehicles or RSUs. + + +Fields: +* stationType [**StationType**](ITS-Container.md#StationType)
+* messageSegmentInfo [**MessageSegmentInfo**](CPM-CommonDataTypes-Descriptions.md#MessageSegmentInfo) OPTIONAL
+ messageSegmentInfo + The perceived object container segment info describes the segmentation information in case + the data for CPM transmission needs to be split up into multiple messages due to + message size constraints. + +* referencePosition [**ReferencePosition**](ITS-Container.md#ReferencePosition)
+```asn1 +CpmManagementContainer ::= SEQUENCE { + stationType StationType, + messageSegmentInfo MessageSegmentInfo OPTIONAL, + referencePosition ReferencePosition, + ... +} +``` + + + diff --git a/docs/CPM-PerceivedObject-Descriptions.md b/docs/CPM-PerceivedObject-Descriptions.md new file mode 100644 index 0000000000000000000000000000000000000000..5e4a8224d96027c154ce123c67906804fc330747 --- /dev/null +++ b/docs/CPM-PerceivedObject-Descriptions.md @@ -0,0 +1,324 @@ +# ASN.1 module CPM-PerceivedObject-Descriptions + OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) perceivedObject (5) version1 (1) }_ + +## Imports: + * **[CPM-CommonDataTypes-Descriptions](CPM-CommonDataTypes-Descriptions.md)** *{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) commonDataTypes (2) version1 (1)}*
+ +## Data Elements: +### Perceived Object Container + +A list of perceived objects. Each object shall be described as defined in @see PerceivedObject. + + +Fields: +* numberOfPerceivedObjects [**NumberOfPerceivedObjects**](CPM-CommonDataTypes-Descriptions.md#NumberOfPerceivedObjects) DEFAULT 0
+ + The total number of detected objects by the station at the time of generating the message. + Due to the dynamic message generation rules, this number does not have to reflect the number + of objects included in this message but states the number of objects known to the sender at + the time of generating the message. + +* perceivedObjects **SEQUENCE** SIZE(1..128, ...) OF PerceivedObject
+```asn1 +PerceivedObjectContainer ::= SEQUENCE { + numberOfPerceivedObjects NumberOfPerceivedObjects DEFAULT 0, + perceivedObjects SEQUENCE SIZE(1..128, ...) OF PerceivedObject +} +``` + +### Perceived Object + +An object in the context of the CP Service refers to the kinematic and attitude representation of +a detected object within a sensor’s perception range. An object may be reported directly by a +sensor or a sensor fusion system. + + +Fields: +* objectID [**Identifier**](CPM-CommonDataTypes-Descriptions.md#Identifier)
+ + Identifier assigned to a detected object which remains constant as long as the object is + perceived by the disseminating ITS-S. Numbers are assigned in an increasing round-robin + fashion. When the last identifier in the allowed range has been used, the first counter for + the identifier starts from the beginning of the range again. + +* timeOfMeasurement [**TimeOfMeasurement**](CPM-CommonDataTypes-Descriptions.md#TimeOfMeasurement)
+ + Provides the time difference from the message’s generation delta time to the time of the + measurement of the object. + +* xDistance [**ObjectDistance**](CPM-CommonDataTypes-Descriptions.md#ObjectDistance)
+ + Distance to detected object from the ITS-S's reference point in x-direction for the time + of measurement. For a vehicle, the distance is reported in a body-fixed coordinate system + as provided by ISO 8855. For a RSU, the distance is reported in a coordinate system in which + the y-axis corresponds to the North direction, the x-axis to the East direction, and the z- + axis to the vertical direction. + +* yDistance [**ObjectDistance**](CPM-CommonDataTypes-Descriptions.md#ObjectDistance)
+ + Distance to detected object from the ITS-S's reference point in y-direction for the time + of measurement. For a vehicle, the distance is reported in a body-fixed coordinate system + as provided by ISO 8855. For a RSU, the distance is reported in a coordinate system in which + the y-axis corresponds to the North direction, the x-axis to the East direction, and the z- + axis to the vertical direction + +* zDistance [**ObjectDistance**](CPM-CommonDataTypes-Descriptions.md#ObjectDistance) OPTIONAL
+ + Distance to detected object from the ITS-S's reference point in z-direction for the time + of measurement. For a vehicle, the distance is reported in a body-fixed coordinate system + as provided by ISO 8855. For a RSU, the distance is reported in a coordinate system in which + the y-axis corresponds to the North direction, the x-axis to the East direction, and the z- + axis to the vertical direction + +* xSpeed [**SpeedExtended**](CPM-CommonDataTypes-Descriptions.md#SpeedExtended)
+ + Speed of the detected object in the detecting ITS-S’s reference system in x-direction for the + time of measurement (i.e. speed of the object relative to the origin of the station’s reference + system). For a vehicle, the speed is reported in a body-fixed coordinate system as provided by + ISO 8855 originating at the ITS-station’s reference point. For a RSU, the speed is reported in + a coordinate system in which the y-axis corresponds to the North direction, the x-axis to the + East direction, and the z-axis to the vertical direction. + +* ySpeed [**SpeedExtended**](CPM-CommonDataTypes-Descriptions.md#SpeedExtended)
+ + Speed of the detected object in the detecting ITS-S’s reference system in y-direction for the + time of measurement (i.e. speed of the object relative to the origin of the station’s reference + system). For a vehicle, the speed is reported in a body-fixed coordinate system as provided by + ISO 8855 originating at the ITS-station’s reference point. For a RSU, the speed is reported in + a coordinate system in which the y-axis corresponds to the North direction, the x-axis to the + East direction, and the z-axis to the vertical direction. + +* zSpeed [**SpeedExtended**](CPM-CommonDataTypes-Descriptions.md#SpeedExtended) OPTIONAL
+ + Speed of the detected object in the detecting ITS-S’s reference system in z-direction for the + time of measurement (i.e. speed of the object relative to the origin of the station’s reference + system). For a vehicle, the speed is reported in a body-fixed coordinate system as provided by + ISO 8855 originating at the ITS-station’s reference point. For a RSU, the speed is reported in + a coordinate system in which the y-axis corresponds to the North direction, the x-axis to the + East direction, and the z-axis to the vertical direction. + +* xAcceleration [**Acceleration**](CPM-CommonDataTypes-Descriptions.md#Acceleration) OPTIONAL
+ + Acceleration of the detected object from the ITS-S's reference point in x-direction + for the time of measurement. For a vehicle, the acceleration is reported in a body-fixed + coordinate system as provided by ISO 8855 originating at the ITS-station’s reference point. + For a RSU, the acceleration is reported in a coordinate system in which the y-axis corresponds + to the North direction, the x-axis to the East direction, and the z-axis to the vertical direction. + +* yAcceleration [**Acceleration**](CPM-CommonDataTypes-Descriptions.md#Acceleration) OPTIONAL
+ + Acceleration of the detected object from the ITS-S's reference point in y-direction + for the time of measurement. For a vehicle, the acceleration is reported in a body-fixed + coordinate system as provided by ISO 8855 originating at the ITS-station’s reference point. + For a RSU, the acceleration is reported in a coordinate system in which the y-axis corresponds + to the North direction, the x-axis to the East direction, and the z-axis to the vertical direction. + +* zAcceleration [**Acceleration**](CPM-CommonDataTypes-Descriptions.md#Acceleration) OPTIONAL
+ + Acceleration of the detected object from the ITS-S's reference point in z-direction + for the time of measurement. For a vehicle, the acceleration is reported in a body-fixed + coordinate system as provided by ISO 8855 originating at the ITS-station’s reference point. + For a RSU, the acceleration is reported in a coordinate system in which the y-axis corresponds + to the North direction, the x-axis to the East direction, and the z-axis to the vertical direction. + +* rollAngle [**CartesianAngle**](CPM-CommonDataTypes-Descriptions.md#CartesianAngle) OPTIONAL
+ + Roll angle of object from the ITS-S's reference point. For a vehicle, the angle is + reported in a body-fixed coordinate system as provided by ISO 8855 originating at the ITS-station’s + reference point. For a RSU, the angle is reported in a coordinate system in which the y-axis + corresponds to the North direction, the x-axis to the East direction, and the z- axis to the vertical direction. + The angle is measured with positive values considering the object orientation turning + counter-clockwise around the x-axis. + +* pitchAngle [**CartesianAngle**](CPM-CommonDataTypes-Descriptions.md#CartesianAngle) OPTIONAL
+ + Pitch angle of object from the ITS-S's reference point. For a vehicle, the angle is + reported in a body-fixed coordinate system as provided by ISO 8855 originating at the ITS-station’s + reference point. For a RSU, the angle is reported in a coordinate system in which the y-axis + corresponds to the North direction, the x-axis to the East direction, and the z- axis to the vertical direction. + The angle is measured with positive values considering the object orientation turning + counter-clockwise around the y-axis. + +* yawAngle [**CartesianAngle**](CPM-CommonDataTypes-Descriptions.md#CartesianAngle) OPTIONAL
+ + Yaw angle of object from the ITS-S's reference point. For a vehicle, the angle is + reported in a body-fixed coordinate system as provided by ISO 8855 originating at the ITS-station’s + reference point. For a RSU, the angle is reported in a coordinate system in which the y-axis + corresponds to the North direction, the x-axis to the East direction, and the z- axis to the vertical direction. + The angle is measured with positive values considering the object orientation turning + counter-clockwise around the z-axis. + +* rollRate [**CartesianAngularSpeed**](CPM-CommonDataTypes-Descriptions.md#CartesianAngularSpeed) OPTIONAL
+ + Roll rate of object from the ITS-S's reference point. For a vehicle, the angular rate is + reported in a body-fixed coordinate system as provided by ISO 8855 originating at the ITS-station’s + reference point. For a RSU, the angular rate is reported in a coordinate system in which the y-axis + corresponds to the North direction, the x-axis to the East direction, and the z- axis to the vertical direction. + The angular rate is measured with positive values considering the object orientation turning + counter-clockwise around the x-axis. + +* pitchRate [**CartesianAngularSpeed**](CPM-CommonDataTypes-Descriptions.md#CartesianAngularSpeed) OPTIONAL
+ + Pitch rate of object from the ITS-S's reference point. For a vehicle, the angular rate is + reported in a body-fixed coordinate system as provided by ISO 8855 originating at the ITS-station’s + reference point. For a RSU, the angular rate is reported in a coordinate system in which the y-axis + corresponds to the North direction, the x-axis to the East direction, and the z- axis to the vertical direction. + The angular rate is measured with positive values considering the object orientation turning + counter-clockwise around the y-axis. + +* yawRate [**CartesianAngularSpeed**](CPM-CommonDataTypes-Descriptions.md#CartesianAngularSpeed) OPTIONAL
+ + Yaw rate of object from the ITS-S's reference point. For a vehicle, the angular rate is + reported in a body-fixed coordinate system as provided by ISO 8855 originating at the ITS-station’s + reference point. For a RSU, the angular rate is reported in a coordinate system in which the y-axis + corresponds to the North direction, the x-axis to the East direction, and the z- axis to the vertical direction. + The angular rate is measured with positive values considering the object orientation turning + counter-clockwise around the z-axis. + +* rollAcceleration [**CartesianAngularAcceleration**](CPM-CommonDataTypes-Descriptions.md#CartesianAngularAcceleration) OPTIONAL
+ + Roll acceleration of object from the ITS-S's reference point. For a vehicle, the angular acceleration is + reported in a body-fixed coordinate system as provided by ISO 8855 originating at the ITS-station’s + reference point. For a RSU, the angular acceleration is reported in a coordinate system in which the y-axis + corresponds to the North direction, the x-axis to the East direction, and the z- axis to the vertical direction. + The angular acceleration is measured with positive values considering the object orientation turning + counter-clockwise around the x-axis. + +* pitchAcceleration [**CartesianAngularAcceleration**](CPM-CommonDataTypes-Descriptions.md#CartesianAngularAcceleration) OPTIONAL
+ + Pitch acceleration of object from the ITS-S's reference point. For a vehicle, the angular acceleration is + reported in a body-fixed coordinate system as provided by ISO 8855 originating at the ITS-station’s + reference point. For a RSU, the angular acceleration is reported in a coordinate system in which the y-axis + corresponds to the North direction, the x-axis to the East direction, and the z- axis to the vertical direction. + The angular acceleration is measured with positive values considering the object orientation turning + counter-clockwise around the y-axis. + +* yawAcceleration [**CartesianAngularAcceleration**](CPM-CommonDataTypes-Descriptions.md#CartesianAngularAcceleration) OPTIONAL
+ + Yaw acceleration of object from the ITS-S's reference point. For a vehicle, the angular acceleration is + reported in a body-fixed coordinate system as provided by ISO 8855 originating at the ITS-station’s + reference point. For a RSU, the angular acceleration is reported in a coordinate system in which the y-axis + corresponds to the North direction, the x-axis to the East direction, and the z- axis to the vertical direction. + The angular acceleration is measured with positive values considering the object orientation turning + counter-clockwise around the z-axis. + +* lowerTriangularCorrelationMatrixColumns [**LowerTriangularPositiveSemidefiniteMatrix**](CPM-CommonDataTypes-Descriptions.md#LowerTriangularPositiveSemidefiniteMatrix) OPTIONAL
+ + Provides the columns of a lower triangular positive semi definite correlation matrix for the + kinematic state and attitude space provided for this object. + The order of the columns and rows of the correlation matrix is as follows: + - xDistance + - yDistance + - zDistance + - xSpeed + - ySpeed + - zSpeed + - xAcceleration + - yAcceleration + - zAcceleration + - rollAngle + - pitchAngle + - yawAngle + - rollRate + - pitchRate + - yawRate + - rollAcceleration + - pitchAcceleration + - yawAcceleration + The number of lowerTriangularCorrelationMatrixColumns to be included "k" is thereby the number of provided + values "n" of the kinematic state and attitude space minus 1: k = n-1. + Each column "i" of the lowerTriangularCorrelationMatrixColumns contains k-(i-1) values. + In case certain values of the kinematic state and attitude space are not provided, they are omitted from + the lowerTriangularCorrelationMatrixColumns. + +* planarObjectDimension1 [**ObjectDimension**](CPM-CommonDataTypes-Descriptions.md#ObjectDimension) OPTIONAL
+ + First dimension of object as provided by the sensor or environment model. This dimension is + always contained in the plane which is oriented perpendicular to the direction of the angle + indicated by the yawAngle and which contains the object's reference point. + +* planarObjectDimension2 [**ObjectDimension**](CPM-CommonDataTypes-Descriptions.md#ObjectDimension) OPTIONAL
+ + Second dimension of the object as provided by the sensor environment model. This dimension is + contained in the plane oriented in the direction of the angle indicated by the yawAngle and + the object's reference point. + +* verticalObjectDimension [**ObjectDimension**](CPM-CommonDataTypes-Descriptions.md#ObjectDimension) OPTIONAL
+ + Vertical dimension of object as provided by the sensor or object model. + +* objectRefPoint [**ObjectRefPoint**](CPM-CommonDataTypes-Descriptions.md#ObjectRefPoint) DEFAULT 0
+ + The reference point on the perceived object. The kinematic attitude and state data provided + for this object are valid for this reference point of the object. In case no object reference + point can be determined, it is assumed to be the center point of the detected object. + +* objectAge [**ObjectAge**](CPM-CommonDataTypes-Descriptions.md#ObjectAge)
+ + Provides the age of the detected and described object. + +* objectConfidence [**ObjectConfidence**](CPM-CommonDataTypes-Descriptions.md#ObjectConfidence) OPTIONAL
+ + The confidence associated to the object. The computation of the object confidence is based on a sensor's or + fusion system's specific detection confidence, the binary detection success that is, if an object + has been successfully detected by the last measurement and the object age. + +* sensorIDList [**SensorIdList**](CPM-CommonDataTypes-Descriptions.md#SensorIdList) OPTIONAL
+ + List of sensor-IDs which provided the measurement data. Refers to the sensorID in the + @see SensorInformationContainer. + If the @see SensorInformationContainer is never provided by the disseminating ITS-S, the list shall be + populated with random numbers, where each number is assigned to a sensor of the transmitting station. + +* dynamicStatus [**DynamicStatus**](CPM-CommonDataTypes-Descriptions.md#DynamicStatus) OPTIONAL
+ + Indicated the dynamic capabilities of a detected object. + +* classification [**ObjectClassDescription**](CPM-CommonDataTypes-Descriptions.md#ObjectClassDescription) OPTIONAL
+ + Provides the classification of the described object. Multi-dimensional classification may be + provided. + +* matchedPosition [**MatchedPosition**](CPM-CommonDataTypes-Descriptions.md#MatchedPosition) OPTIONAL
+ + The optional map-matched position of an object. This requires that a MAP-message is provided. + +```asn1 +PerceivedObject ::= SEQUENCE { + objectID Identifier, + timeOfMeasurement TimeOfMeasurement, + xDistance ObjectDistance, + yDistance ObjectDistance, + zDistance ObjectDistance OPTIONAL, + xSpeed SpeedExtended, + ySpeed SpeedExtended, + zSpeed SpeedExtended OPTIONAL, + xAcceleration Acceleration OPTIONAL, + yAcceleration Acceleration OPTIONAL, + zAcceleration Acceleration OPTIONAL, + rollAngle CartesianAngle OPTIONAL, + pitchAngle CartesianAngle OPTIONAL, + yawAngle CartesianAngle OPTIONAL, + rollRate CartesianAngularSpeed OPTIONAL, + pitchRate CartesianAngularSpeed OPTIONAL, + yawRate CartesianAngularSpeed OPTIONAL, + rollAcceleration CartesianAngularAcceleration OPTIONAL, + pitchAcceleration CartesianAngularAcceleration OPTIONAL, + yawAcceleration CartesianAngularAcceleration OPTIONAL, + lowerTriangularCorrelationMatrixColumns LowerTriangularPositiveSemidefiniteMatrix OPTIONAL, + planarObjectDimension1 ObjectDimension OPTIONAL, + planarObjectDimension2 ObjectDimension OPTIONAL, + verticalObjectDimension ObjectDimension OPTIONAL, + objectRefPoint ObjectRefPoint DEFAULT 0, + objectAge ObjectAge, + objectConfidence ObjectConfidence OPTIONAL, + sensorIDList SensorIdList OPTIONAL, + dynamicStatus DynamicStatus OPTIONAL, + classification ObjectClassDescription OPTIONAL, + matchedPosition MatchedPosition OPTIONAL, + ... +} +``` + + + diff --git a/docs/CPM-SensorInformation-Descriptions.md b/docs/CPM-SensorInformation-Descriptions.md new file mode 100644 index 0000000000000000000000000000000000000000..5e0cf8b6011e2026c9313f86653ec50f2ffa31ed --- /dev/null +++ b/docs/CPM-SensorInformation-Descriptions.md @@ -0,0 +1,164 @@ +# ASN.1 module CPM-SensorInformation-Descriptions + OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) sensorInformation (4) version1 (1) }_ + +## Imports: + * **[CPM-CommonDataTypes-Descriptions](CPM-CommonDataTypes-Descriptions.md)** *{itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) commonDataTypes (2) version1 (1)}*
+ +## Data Elements: +### Sensor Information Container + +This container contains a list of sensor-types or data fusion systems from which the station +provides information about detected objects. + + +```asn1 +SensorInformationContainer ::= SEQUENCE SIZE(1..128, ...) OF SensorInformation +``` + +### SensorInformation + +Fields: +* sensorID [**Identifier**](CPM-CommonDataTypes-Descriptions.md#Identifier)
+ + Sensor pseudonym ID used to relate which measurement has been received by which sensor. + This ID is referred to in the @see PerceivedObject. + +* type [**SensorType**](CPM-CommonDataTypes-Descriptions.md#SensorType)
+* detectionArea [**DetectionArea**](#DetectionArea)
+* freeSpaceConfidence [**FreeSpaceConfidence**](CPM-CommonDataTypes-Descriptions.md#FreeSpaceConfidence) OPTIONAL
+ + Describes the isotropic free space confidence that can be assumed for the entire detection + area of this sensor. Shadowed areas can be derived from provided objects. Deviations from + this free space derivation can be expressed in the @see FreeSpaceAddendumContainer. + +```asn1 +SensorInformation ::= SEQUENCE { + sensorID Identifier, + type SensorType, + detectionArea DetectionArea, + freeSpaceConfidence FreeSpaceConfidence OPTIONAL, + ... +} +``` + +### Detection Area + +Choice of DFs to detail the sensor information. + + +Fields: +* vehicleSensor [**VehicleSensor**](#VehicleSensor)
+ + The _vehicleSensor_ shall be used for describing non-stationary sensors attached to vehicles. + +* stationarySensorRadial [**AreaRadial**](CPM-CommonDataTypes-Descriptions.md#AreaRadial)
+ + The _stationarySensorRadial_ can be used to provide details for describing sensors mounted to + road-side units + +* stationarySensorPolygon [**AreaPolygon**](CPM-CommonDataTypes-Descriptions.md#AreaPolygon)
+ + The _stationarySensorPolygon_ can be used to describe a polygonal detection area associated + to a single sensor or to describe the union of multiple polygonal areas expressed as one + combined polygon. + +* stationarySensorCircular [**AreaCircular**](CPM-CommonDataTypes-Descriptions.md#AreaCircular)
+ + The _stationarySensorCircular_ describes a circular perception area for a stationary sensor. + The position offset refers to the center point of the circular area. + +* stationarySensorEllipse [**AreaEllipse**](CPM-CommonDataTypes-Descriptions.md#AreaEllipse)
+ + The _stationarySensorEllipse_ describes an ellipse-shaped perception area for a stationary + sensor.The position offset refers to the center point of the ellipse. + +* stationarySensorRectangle [**AreaRectangle**](CPM-CommonDataTypes-Descriptions.md#AreaRectangle)
+ + The _stationarySensorRectangle_ describes a rectangle as a perception area for a stationary + sensor. The position offset refers to the center point of the rectangle. + +```asn1 +DetectionArea ::= CHOICE { + vehicleSensor VehicleSensor, + stationarySensorRadial AreaRadial, + stationarySensorPolygon AreaPolygon, + stationarySensorCircular AreaCircular, + stationarySensorEllipse AreaEllipse, + stationarySensorRectangle AreaRectangle, + ... +} +``` + +### Vehicle Sensor + +Describes the perception capabilities of mobile sensors mounted to vehicles. + + +Fields: +* refPointId [**RefPointId**](CPM-CommonDataTypes-Descriptions.md#RefPointId) DEFAULT 0
+ + An identification of the reference point in case of a sensor mounted to trailer. + Defaults to ITS ReferencePoint (0). + +* xSensorOffset [**XSensorOffset**](CPM-CommonDataTypes-Descriptions.md#XSensorOffset)
+ + Mounting position of sensor in negative x-direction from Reference Point indicated by the @see refPointId. + +* ySensorOffset [**YSensorOffset**](CPM-CommonDataTypes-Descriptions.md#YSensorOffset)
+ + Mounting position of sensor in y-direction from Reference Point indicated by the @see refPointId. + +* zSensorOffset [**ZSensorOffset**](CPM-CommonDataTypes-Descriptions.md#ZSensorOffset) OPTIONAL
+ + Mounting position of sensor in z-direction from Reference Point indicated by the @see refPointId. + +* vehicleSensorPropertyList [**VehicleSensorPropertyList**](#VehicleSensorPropertyList)
+ + The actual extension of the area covered by the specific vehicle sensor. In case of multiple + perception areas for a sensor, a list of areas covered by this sensor can be added. + +```asn1 +VehicleSensor ::= SEQUENCE { + refPointId RefPointId DEFAULT 0, + xSensorOffset XSensorOffset, + ySensorOffset YSensorOffset, + zSensorOffset ZSensorOffset OPTIONAL, + vehicleSensorPropertyList VehicleSensorPropertyList, + ... +} +``` + +### Vehicle Sensor Property List + + + + +```asn1 +VehicleSensorPropertyList ::= SEQUENCE SIZE(1..10) OF VehicleSensorProperties +``` + +### Vehicle Sensor Properties + +The actual extension of the area covered by the specific vehicle sensor. In case of multiple +perception areas for a sensor, a list of areas covered by this sensor can be added. + + +Fields: +* range [**Range**](CPM-CommonDataTypes-Descriptions.md#Range)
+* horizontalOpeningAngleStart [**CartesianAngleValue**](CPM-CommonDataTypes-Descriptions.md#CartesianAngleValue)
+* horizontalOpeningAngleEnd [**CartesianAngleValue**](CPM-CommonDataTypes-Descriptions.md#CartesianAngleValue)
+* verticalOpeningAngleStart [**CartesianAngleValue**](CPM-CommonDataTypes-Descriptions.md#CartesianAngleValue) OPTIONAL
+* verticalOpeningAngleEnd [**CartesianAngleValue**](CPM-CommonDataTypes-Descriptions.md#CartesianAngleValue) OPTIONAL
+```asn1 +VehicleSensorProperties ::= SEQUENCE { + range Range, + horizontalOpeningAngleStart CartesianAngleValue, + horizontalOpeningAngleEnd CartesianAngleValue, + verticalOpeningAngleStart CartesianAngleValue OPTIONAL, + verticalOpeningAngleEnd CartesianAngleValue OPTIONAL, + ... +} +``` + + + diff --git a/docs/ITS-Container.md b/docs/ITS-Container.md new file mode 100644 index 0000000000000000000000000000000000000000..ec361cfcce3f7a87787a21bc1bb12db1e9ce096e --- /dev/null +++ b/docs/ITS-Container.md @@ -0,0 +1,1257 @@ +# 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: + + +```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**](ITS-Container.md#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**](ITS-Container.md#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**](ITS-Container.md#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**](ITS-Container.md#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**](#TimestampIts) OPTIONAL
+* protectedZoneLatitude [**Latitude**](ITS-Container.md#Latitude)
+* protectedZoneLongitude [**Longitude**](ITS-Container.md#Longitude)
+* protectedZoneRadius [**ProtectedZoneRadius**](#ProtectedZoneRadius) OPTIONAL
+* protectedZoneID [**ProtectedZoneID**](#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)) +``` + + +