diff --git a/.gitignore b/.gitignore index 15d0e52..7050af6 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,24 @@ local.properties *.jks *.keystore secrets.properties + +# --- local IDE state, not project configuration ------------------------------- +# Which device you last deployed to, your emulator list, and Studio's assistant +# settings are per-machine. deploymentTargetSelector.xml in particular rewrites +# itself on every run, so tracking it means a dirty tree after every deploy. +/.idea/deploymentTargetSelector.xml +/.idea/deviceManager.xml +/.idea/appInsightsSettings.xml +/.idea/studiobot.xml + +# ESP-IDF rewrites sdkconfig on every build and keeps the previous one here. +# sdkconfig.defaults is the real, intentional configuration; these two are output. +sdkconfig.old + +# Claude Code local settings (permissions, per-machine). The skills alongside it +# are project knowledge and may be committed deliberately. +.claude/settings.local.json + +# Third-party working copies kept beside the project, not part of it. The ASN.1 +# modules this project actually needs are vendored under asn1/ instead. +/C-ITS-Parser/ diff --git a/.idea/appInsightsSettings.xml b/.idea/appInsightsSettings.xml deleted file mode 100644 index 7f73dc8..0000000 --- a/.idea/appInsightsSettings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml deleted file mode 100644 index 847499e..0000000 --- a/.idea/deploymentTargetSelector.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.idea/deviceManager.xml b/.idea/deviceManager.xml deleted file mode 100644 index 91f9558..0000000 --- a/.idea/deviceManager.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/studiobot.xml b/.idea/studiobot.xml deleted file mode 100644 index 9298202..0000000 --- a/.idea/studiobot.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/java/com/hawhamburg/micr0bu/domain/asn1/CamUperCodec.kt b/app/src/main/java/com/hawhamburg/micr0bu/domain/asn1/CamUperCodec.kt index 56bdc9d..f5175ed 100644 --- a/app/src/main/java/com/hawhamburg/micr0bu/domain/asn1/CamUperCodec.kt +++ b/app/src/main/java/com/hawhamburg/micr0bu/domain/asn1/CamUperCodec.kt @@ -262,7 +262,7 @@ object CamUperCodec { // Optional-presence bitmap for BasicVehicleContainerHighFrequency's 7 trailing OPTIONAL // fields: accelerationControl, lanePosition, steeringWheelAngle, lateralAcceleration, // verticalAcceleration, performanceClass, cenDsrcTollingZone (see - // C-ITS-Parser/autogen/asn.1/cam_1_4_1.asn). + // asn1/cam_1_4_1.asn). // // Consumed but not acted on, and that is correct: UPER writes a SEQUENCE's presence // bitmap up front but each field's VALUE in declaration order, and all seven of these are @@ -315,7 +315,7 @@ object CamUperCodec { // IMPORTANT: if a future change needs any of those - path history is the likely one - the // 7 optionals must be parsed and consumed first, in declaration order, or every read after // them lands at the wrong bit offset. At that point this hand-written decoder stops being - // the right tool; use the generated codec (see C-ITS-Parser) instead. + // the right tool; use a generated codec (see asn1/README.md) instead. return Cam( stationId = stationId, stationType = stationType, diff --git a/app/src/main/java/com/hawhamburg/micr0bu/domain/asn1/DenmUperCodec.kt b/app/src/main/java/com/hawhamburg/micr0bu/domain/asn1/DenmUperCodec.kt index 6568fb0..f6406c6 100644 --- a/app/src/main/java/com/hawhamburg/micr0bu/domain/asn1/DenmUperCodec.kt +++ b/app/src/main/java/com/hawhamburg/micr0bu/domain/asn1/DenmUperCodec.kt @@ -18,8 +18,7 @@ import com.hawhamburg.micr0bu.domain.denm.DenmEvent * large, deeply nested, and nothing consumes them yet. * * ## Field widths - * Every width below is taken from the ETSI ASN.1 modules in the `C-ITS-Parser` checkout - * (`autogen/asn.1/denm_1_3_1.asn`, `cdd_1_3_1_1.asn`), and every extension marker was + * Every width below is taken from the ETSI ASN.1 modules in `asn1/` (`denm_1_3_1.asn`, `cdd_1_3_1_1.asn`), and every extension marker was * cross-checked against how `rasn` renders the same type (`#[non_exhaustive]` marks an extensible * SEQUENCE). That cross-check matters: hand-derived widths are exactly how this project shipped a * one-bit `CurvatureCalculationMode` bug in CAM that was invisible until measured against real diff --git a/app/src/main/java/com/hawhamburg/micr0bu/domain/asn1/SpatemUperCodec.kt b/app/src/main/java/com/hawhamburg/micr0bu/domain/asn1/SpatemUperCodec.kt index 117f4a1..648e6de 100644 --- a/app/src/main/java/com/hawhamburg/micr0bu/domain/asn1/SpatemUperCodec.kt +++ b/app/src/main/java/com/hawhamburg/micr0bu/domain/asn1/SpatemUperCodec.kt @@ -13,8 +13,7 @@ import com.hawhamburg.micr0bu.domain.spat.SpatEvent * Decode-only: this project never transmits SPATEM, that is an RSU's job. * * ## Field widths - * Every width is taken from the ETSI ASN.1 modules in the `C-ITS-Parser` checkout - * (`dsrc_2_2_1.asn`, `cdd_2_2_1.asn`): + * Every width is taken from the ETSI ASN.1 modules in `asn1/` (`dsrc_2_2_1.asn`, `cdd_2_2_1.asn`): * * - `MinuteOfTheYear` (0..527040) = 20 bits * - `DSecond` (0..65535) = 16 bits diff --git a/app/src/test/java/com/hawhamburg/micr0bu/CamEncodeGoldenTest.kt b/app/src/test/java/com/hawhamburg/micr0bu/CamEncodeGoldenTest.kt index 25a8e4a..a09034d 100644 --- a/app/src/test/java/com/hawhamburg/micr0bu/CamEncodeGoldenTest.kt +++ b/app/src/test/java/com/hawhamburg/micr0bu/CamEncodeGoldenTest.kt @@ -18,7 +18,7 @@ import org.junit.Test * * A round-trip test through this codebase's own decoder cannot catch that - it shares the * mistake. Only an independent implementation can. So the expected bytes below were produced by - * `asn1tools` compiled from the real ETSI modules in the `C-ITS-Parser` checkout: it decoded this + * `asn1tools` compiled from the real ETSI modules in `asn1/`: it decoded this * encoder's output and re-encoded it, and the result was byte-identical to what is asserted here. * That is stronger than "it parses" - it means this encoder emits exactly what the reference * encoder emits. diff --git a/app/src/test/java/com/hawhamburg/micr0bu/DenmAirReceiveTest.kt b/app/src/test/java/com/hawhamburg/micr0bu/DenmAirReceiveTest.kt index 94f7983..8890a78 100644 --- a/app/src/test/java/com/hawhamburg/micr0bu/DenmAirReceiveTest.kt +++ b/app/src/test/java/com/hawhamburg/micr0bu/DenmAirReceiveTest.kt @@ -24,7 +24,7 @@ import org.junit.Test * * ## Why the expected values can be trusted * Every asserted field was cross-checked against `asn1tools` decoding the same bytes with the real - * ETSI modules from the `C-ITS-Parser` checkout (`denm_1_3_1.asn` + `cdd_1_3_1_1.asn`) — an + * ETSI modules in `asn1/` (`denm_1_3_1.asn` + `cdd_1_3_1_1.asn`) — an * independent implementation, not this codebase's own arithmetic. Across the full capture set that * cross-check agreed on all 1885 decodable DENMs, on every field below including `detectionTime`. * diff --git a/app/src/test/java/com/hawhamburg/micr0bu/RsuCamDecodeTest.kt b/app/src/test/java/com/hawhamburg/micr0bu/RsuCamDecodeTest.kt index f6f7283..aa36219 100644 --- a/app/src/test/java/com/hawhamburg/micr0bu/RsuCamDecodeTest.kt +++ b/app/src/test/java/com/hawhamburg/micr0bu/RsuCamDecodeTest.kt @@ -17,7 +17,7 @@ import org.junit.Test * * The fixture is a real 26-byte RSU CAM taken live from the OBU's `v2x/rx/cam` topic; the * expected values are asn1tools' decoding of those same bytes using the ETSI modules in the - * `C-ITS-Parser` checkout. + * `asn1/`. */ class RsuCamDecodeTest { diff --git a/app/src/test/java/com/hawhamburg/micr0bu/SpatemUperCodecTest.kt b/app/src/test/java/com/hawhamburg/micr0bu/SpatemUperCodecTest.kt index 5593d1d..79e3d69 100644 --- a/app/src/test/java/com/hawhamburg/micr0bu/SpatemUperCodecTest.kt +++ b/app/src/test/java/com/hawhamburg/micr0bu/SpatemUperCodecTest.kt @@ -20,7 +20,7 @@ import org.junit.Test * ## Why the expected values can be trusted * The bit layout was validated by replaying **79,042 real SPATEMs** - the whole drive across 7+ * RSUs plus the live trigger - through a port of this decoder and comparing every field against - * `asn1tools` decoding the same bytes with the ETSI modules from the `C-ITS-Parser` checkout. + * `asn1tools` decoding the same bytes with the ETSI modules in `asn1/`. * All 79,042 matched exactly, and none hit an unsupported branch. The values asserted below are * that independent decoder's output, not this codebase's own arithmetic. * diff --git a/asn1/LICENSE b/asn1/LICENSE new file mode 100644 index 0000000..c78ad2e --- /dev/null +++ b/asn1/LICENSE @@ -0,0 +1,21 @@ +MIT License (MIT) + +Copyright (c) 2026 consider it GmbH + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/asn1/README.md b/asn1/README.md new file mode 100644 index 0000000..d86c8f1 --- /dev/null +++ b/asn1/README.md @@ -0,0 +1,70 @@ +# ETSI ASN.1 modules + +The ASN.1 schemas this project's UPER codecs are validated against. **Schemas only** — no parser +code. Nothing in the app or the firmware reads these files at build or run time; they exist so the +hand-written codecs in `app/src/main/java/.../domain/asn1/` can be checked against an independent +implementation. + +## Why this is here rather than just documented + +Three of this project's tests assert exact bytes: + +- `CamEncodeGoldenTest` — the CAM this app transmits, byte for byte +- `DenmAirReceiveTest`, `SpatemUperCodecTest` — real captured frames with field values + +Those expected values were produced by decoding with `asn1tools` compiled from these modules. Without +them the fixtures cannot be regenerated or re-verified, and a golden-byte test you cannot regenerate +is a test nobody can safely touch. + +This matters because the project has shipped the same class of bug three times: a field encoded with +the wrong number of bits, which this codebase then read back with the *same* wrong number. Phone and +ESP32 agree perfectly with each other and with nothing else, so every internal round-trip test passes +while the frames on air are malformed (`CurvatureCalculationMode`, the GeoNetworking reserved bytes, +`yawRateConfidence`). Only a second, independent implementation catches that — which is what these +modules provide. + +## Provenance + +Taken from consider it GmbH's C-ITS-Parser: + +- +- commit `f457426efc2486fac49a02fc9a1c8c7762d160e9` +- MIT licensed — see `LICENSE`, retained here as the licence requires + +Only the seven `.asn` files below are copied, out of a 4.2 MB checkout. The upstream Rust parser is +not used by this project in any way. The schemas themselves are ETSI's standard definitions; the +upstream repo's contribution is assembling them into a compilable set. + +| file | used for | +|---|---| +| `cam_1_4_1.asn` + `cdd_1_3_1_1.asn` | CAM encode/decode | +| `denm_1_3_1.asn` + `cdd_1_3_1_1.asn` | DENM decode | +| `spatem_2_2_1.asn`, `mapem_2_2_1.asn`, `dsrc_2_2_1.asn`, `cdd_2_2_1.asn` | SPATEM/MAPEM decode | + +Note CAM/DENM use the release-1 common dictionary (`cdd_1_3_1_1`) while SPATEM/MAPEM use release 2 +(`cdd_2_2_1`). Both are needed; they are not interchangeable. + +These seven were verified sufficient on their own: copied into an empty directory, all three specs +compile and reproduce the committed golden bytes. + +## Regenerating a fixture + +Requires Python with `asn1tools` (verified with 0.167.0): + +```python +import asn1tools +spec = asn1tools.compile_files(["asn1/cam_1_4_1.asn", "asn1/cdd_1_3_1_1.asn"], "uper") +spec.decode("CAM", raw_uper_bytes) +``` + +For SPATEM, compile `spatem_2_2_1.asn`, `mapem_2_2_1.asn`, `dsrc_2_2_1.asn`, `cdd_2_2_1.asn` +together and decode `"SPATEM"`. + +**Never regenerate a golden fixture from this project's own encoder output** — that is precisely the +mistake these files exist to catch. Regenerate through `asn1tools`, or the test is worthless. + +## Updating + +Re-pin deliberately, not casually. If a newer ETSI release is adopted, copy the new modules, then +re-run the golden-byte tests and confirm any change in expected bytes is explained by the spec +change rather than by a decoder regression. diff --git a/asn1/cam_1_4_1.asn b/asn1/cam_1_4_1.asn new file mode 100644 index 0000000..d5dae39 --- /dev/null +++ b/asn1/cam_1_4_1.asn @@ -0,0 +1,132 @@ +CAM-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (2) +} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS +ItsPduHeader, CauseCode, ReferencePosition, AccelerationControl, Curvature, CurvatureCalculationMode, Heading, LanePosition, EmergencyPriority, EmbarkationStatus, Speed, DriveDirection, LongitudinalAcceleration, LateralAcceleration, VerticalAcceleration, StationType, ExteriorLights, DangerousGoodsBasic, SpecialTransportType, LightBarSirenInUse, VehicleRole, VehicleLength, VehicleWidth, PathHistory, RoadworksSubCauseCode, ClosedLanes, TrafficRule, SpeedLimit, SteeringWheelAngle, PerformanceClass, YawRate, ProtectedCommunicationZone, PtActivation, Latitude, Longitude, ProtectedCommunicationZonesRSU, CenDsrcTollingZone FROM ITS-Container { +itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) +}; + + +-- The root data frame for cooperative awareness messages + +CAM ::= SEQUENCE { + header ItsPduHeader, + cam CoopAwareness +} + +CoopAwareness ::= SEQUENCE { + generationDeltaTime GenerationDeltaTime, + camParameters CamParameters +} + +CamParameters ::= SEQUENCE { + basicContainer BasicContainer, + highFrequencyContainer HighFrequencyContainer, + lowFrequencyContainer LowFrequencyContainer OPTIONAL, + specialVehicleContainer SpecialVehicleContainer OPTIONAL, + ... +} + +HighFrequencyContainer ::= CHOICE { + basicVehicleContainerHighFrequency BasicVehicleContainerHighFrequency, + rsuContainerHighFrequency RSUContainerHighFrequency, + ... +} + + LowFrequencyContainer ::= CHOICE { + basicVehicleContainerLowFrequency BasicVehicleContainerLowFrequency, + ... +} + +SpecialVehicleContainer ::= CHOICE { + publicTransportContainer PublicTransportContainer, + specialTransportContainer SpecialTransportContainer, + dangerousGoodsContainer DangerousGoodsContainer, + roadWorksContainerBasic RoadWorksContainerBasic, + rescueContainer RescueContainer, + emergencyContainer EmergencyContainer, + safetyCarContainer SafetyCarContainer, + ... +} + +BasicContainer ::= SEQUENCE { + stationType StationType, + referencePosition ReferencePosition, + ... +} + +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 ::= SEQUENCE { + vehicleRole VehicleRole, + exteriorLights ExteriorLights, + pathHistory PathHistory +} + +PublicTransportContainer ::= SEQUENCE { + embarkationStatus EmbarkationStatus, + ptActivation PtActivation OPTIONAL +} + +SpecialTransportContainer ::= SEQUENCE { + specialTransportType SpecialTransportType, + lightBarSirenInUse LightBarSirenInUse +} + + DangerousGoodsContainer ::= SEQUENCE { + dangerousGoodsBasic DangerousGoodsBasic + } + + RoadWorksContainerBasic ::= SEQUENCE { + roadworksSubCauseCode RoadworksSubCauseCode OPTIONAL, + lightBarSirenInUse LightBarSirenInUse, + closedLanes ClosedLanes OPTIONAL + } + +RescueContainer ::= SEQUENCE { + lightBarSirenInUse LightBarSirenInUse +} + +EmergencyContainer ::= SEQUENCE { + lightBarSirenInUse LightBarSirenInUse, + incidentIndication CauseCode OPTIONAL, + emergencyPriority EmergencyPriority OPTIONAL +} + +SafetyCarContainer ::= SEQUENCE { + lightBarSirenInUse LightBarSirenInUse, + incidentIndication CauseCode OPTIONAL, + trafficRule TrafficRule OPTIONAL, + speedLimit SpeedLimit OPTIONAL +} + +RSUContainerHighFrequency ::= SEQUENCE { + protectedCommunicationZonesRSU ProtectedCommunicationZonesRSU OPTIONAL, + ... +} + +GenerationDeltaTime ::= INTEGER { oneMilliSec(1) } (0..65535) + +END diff --git a/asn1/cdd_1_3_1_1.asn b/asn1/cdd_1_3_1_1.asn new file mode 100644 index 0000000..8aeec58 --- /dev/null +++ b/asn1/cdd_1_3_1_1.asn @@ -0,0 +1,511 @@ +ITS-Container { +itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) +} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +ItsPduHeader ::= SEQUENCE { + protocolVersion INTEGER (0..255), + messageID INTEGER{ denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13) } (0..255), -- Mantis #7209, #7005 + stationID StationID +} + +StationID ::= INTEGER(0..4294967295) + +ReferencePosition ::= SEQUENCE { + latitude Latitude, + longitude Longitude, + positionConfidenceEllipse PosConfidenceEllipse , + altitude Altitude +} + +DeltaReferencePosition ::= SEQUENCE { + deltaLatitude DeltaLatitude, + deltaLongitude DeltaLongitude, + deltaAltitude DeltaAltitude +} + +Longitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(1800000001)} (-1800000000..1800000001) + +Latitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10), unavailable(900000001)} (-900000000..900000001) + +Altitude ::= SEQUENCE { + altitudeValue AltitudeValue, + altitudeConfidence AltitudeConfidence +} + +AltitudeValue ::= INTEGER {referenceEllipsoidSurface(0), oneCentimeter(1), unavailable(800001)} (-100000..800001) + +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 ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(131072)} (-131071..131072) + +DeltaLatitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10) , unavailable(131072)} (-131071..131072) + +DeltaAltitude ::= INTEGER {oneCentimeterUp (1), oneCentimeterDown (-1), unavailable(12800)} (-12700..12800) + +PosConfidenceEllipse ::= SEQUENCE { + semiMajorConfidence SemiAxisLength, + semiMinorConfidence SemiAxisLength, + semiMajorOrientation HeadingValue +} + +PathPoint ::= SEQUENCE { + pathPosition DeltaReferencePosition, + pathDeltaTime PathDeltaTime OPTIONAL +} + +PathDeltaTime ::= INTEGER {tenMilliSecondsInPast(1)} (1..65535, ...) + +PtActivation ::= SEQUENCE { + ptActivationType PtActivationType, + ptActivationData PtActivationData +} + +PtActivationType ::= INTEGER {undefinedCodingType(0), r09-16CodingType(1), vdv-50149CodingType(2)} (0..255) + +PtActivationData ::= OCTET STRING (SIZE(1..20)) + +AccelerationControl ::= BIT STRING { + brakePedalEngaged (0), + gasPedalEngaged (1), + emergencyBrakeEngaged (2), + collisionWarningEngaged (3), + accEngaged (4), + cruiseControlEngaged (5), + speedLimiterEngaged (6) +} (SIZE(7)) + + +SemiAxisLength ::= INTEGER{oneCentimeter(1), outOfRange(4094), unavailable(4095)} (0..4095) + +CauseCode ::= SEQUENCE { + causeCode CauseCodeType, + subCauseCode SubCauseCodeType, + ... +} + +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 ::= INTEGER (0..255) + +TrafficConditionSubCauseCode ::= INTEGER {unavailable(0), increasedVolumeOfTraffic(1), trafficJamSlowlyIncreasing(2), trafficJamIncreasing(3), trafficJamStronglyIncreasing(4), trafficStationary(5), trafficJamSlightlyDecreasing(6), trafficJamDecreasing(7), trafficJamStronglyDecreasing(8)} (0..255) + +AccidentSubCauseCode ::= INTEGER {unavailable(0), multiVehicleAccident(1), heavyAccident(2), accidentInvolvingLorry(3), accidentInvolvingBus(4), accidentInvolvingHazardousMaterials(5), accidentOnOppositeLane(6), unsecuredAccident(7), assistanceRequested(8)} (0..255) + +RoadworksSubCauseCode ::= INTEGER {unavailable(0), majorRoadworks(1), roadMarkingWork(2), slowMovingRoadMaintenance(3), shortTermStationaryRoadworks(4), streetCleaning(5), winterService(6)} (0..255) + +HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), childrenOnRoadway(1), cyclistOnRoadway(2), motorcyclistOnRoadway(3)} (0..255) + +WrongWayDrivingSubCauseCode ::= INTEGER {unavailable(0), wrongLane(1), wrongDirection(2)} (0..255) + +AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER {unavailable(0), strongWinds(1), damagingHail(2), hurricane(3), thunderstorm(4), tornado(5), blizzard(6)} (0..255) + +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 ::= INTEGER {unavailable(0), fog(1), smoke(2), heavySnowfall(3), heavyRain(4), heavyHail(5), lowSunGlare(6), sandstorms(7), swarmsOfInsects(8)} (0..255) + +AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER {unavailable(0), heavyRain(1), heavySnowfall(2), softHail(3)} (0..255) + +SlowVehicleSubCauseCode ::= INTEGER {unavailable(0), maintenanceVehicle(1), vehiclesSlowingToLookAtAccident(2), abnormalLoad(3), abnormalWideLoad(4), convoy(5), snowplough(6), deicing(7), saltingVehicles(8)} (0..255) + +StationaryVehicleSubCauseCode ::= INTEGER {unavailable(0), humanProblem(1), vehicleBreakdown(2), postCrash(3), publicTransportStop(4), carryingDangerousGoods(5)} (0..255) + +HumanProblemSubCauseCode ::= INTEGER {unavailable(0), glycemiaProblem(1), heartProblem(2)} (0..255) + +EmergencyVehicleApproachingSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicleApproaching(1), prioritizedVehicleApproaching(2)} (0..255) + +HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER {unavailable(0), dangerousLeftTurnCurve(1), dangerousRightTurnCurve(2), multipleCurvesStartingWithUnknownTurningDirection(3), multipleCurvesStartingWithLeftTurn(4), multipleCurvesStartingWithRightTurn(5)} (0..255) + +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 ::= INTEGER {unavailable(0), shedLoad(1), partsOfVehicles(2), partsOfTyres(3), bigObjects(4), fallenTrees(5), hubCaps(6), waitingVehicles(7)} (0..255) + +HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), wildAnimals(1), herdOfAnimals(2), smallAnimals(3), largeAnimals(4)} (0..255) + +CollisionRiskSubCauseCode ::= INTEGER {unavailable(0), longitudinalCollisionRisk(1), crossingCollisionRisk(2), lateralCollisionRisk(3), vulnerableRoadUser(4)} (0..255) + +SignalViolationSubCauseCode ::= INTEGER {unavailable(0), stopSignViolation(1), trafficLightViolation(2), turningRegulationViolation(3)} (0..255) + +RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicles(1), rescueHelicopterLanding(2), policeActivityOngoing(3), medicalEmergencyOngoing(4), childAbductionInProgress(5)} (0..255) + +DangerousEndOfQueueSubCauseCode ::= INTEGER {unavailable(0), suddenEndOfQueue(1), queueOverHill(2), queueAroundBend(3), queueInTunnel(4)} (0..255) + +DangerousSituationSubCauseCode ::= INTEGER {unavailable(0), emergencyElectronicBrakeEngaged(1), preCrashSystemEngaged(2), espEngaged(3), absEngaged(4), aebEngaged(5), brakeWarningEngaged(6), collisionRiskWarningEngaged(7)} (0..255) + +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 ::= INTEGER {unavailable(0), accidentWithoutECallTriggered (1), accidentWithECallManuallyTriggered (2), accidentWithECallAutomaticallyTriggered (3), accidentWithECallTriggeredWithoutAccessToCellularNetwork(4)} (0..255) + +Curvature ::= SEQUENCE { + curvatureValue CurvatureValue, + curvatureConfidence CurvatureConfidence +} + +CurvatureValue ::= INTEGER {straight(0), unavailable(1023)} (-1023..1023) + +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 ::= ENUMERATED {yawRateUsed(0), yawRateNotUsed(1), unavailable(2), ...} + +Heading ::= SEQUENCE { + headingValue HeadingValue, + headingConfidence HeadingConfidence +} + +HeadingValue ::= INTEGER {wgs84North(0), wgs84East(900), wgs84South(1800), wgs84West(2700), unavailable(3601)} (0..3601) + +HeadingConfidence ::= INTEGER {equalOrWithinZeroPointOneDegree (1), equalOrWithinOneDegree (10), outOfRange(126), unavailable(127)} (1..127) + +LanePosition ::= INTEGER {offTheRoad(-1), innerHardShoulder(0), +innermostDrivingLane(1), secondLaneFromInside(2), outerHardShoulder(14) } (-1..14) + +ClosedLanes ::= SEQUENCE { + innerhardShoulderStatus HardShoulderStatus OPTIONAL, + outerhardShoulderStatus HardShoulderStatus OPTIONAL, + drivingLaneStatus DrivingLaneStatus OPTIONAL, + ... +} + +HardShoulderStatus ::= ENUMERATED {availableForStopping(0), closed(1), availableForDriving(2)} + +DrivingLaneStatus ::= BIT STRING (SIZE (1..13)) + + +PerformanceClass ::= INTEGER {unavailable(0), performanceClassA(1), performanceClassB(2)} (0..7) + +SpeedValue ::= INTEGER {standstill(0), oneCentimeterPerSec(1), unavailable(16383)} (0..16383) + +SpeedConfidence ::= INTEGER {equalOrWithinOneCentimeterPerSec(1), equalOrWithinOneMeterPerSec(100), outOfRange(126), unavailable(127)} (1..127) + +VehicleMass ::= INTEGER {hundredKg(1), unavailable(1024)} (1..1024) + +Speed ::= SEQUENCE { + speedValue SpeedValue, + speedConfidence SpeedConfidence +} + +DriveDirection ::= ENUMERATED {forward (0), backward (1), unavailable (2)} + +EmbarkationStatus ::= BOOLEAN + +LongitudinalAcceleration ::= SEQUENCE { + longitudinalAccelerationValue LongitudinalAccelerationValue, + longitudinalAccelerationConfidence AccelerationConfidence +} + +LongitudinalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredForward(1), pointOneMeterPerSecSquaredBackward(-1), unavailable(161)} (-160 .. 161) + +AccelerationConfidence ::= INTEGER {pointOneMeterPerSecSquared(1), outOfRange(101), unavailable(102)} (0 .. 102) + +LateralAcceleration ::= SEQUENCE { + lateralAccelerationValue LateralAccelerationValue, + lateralAccelerationConfidence AccelerationConfidence +} + +LateralAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredToRight(-1), pointOneMeterPerSecSquaredToLeft(1), unavailable(161)} (-160 .. 161) + +VerticalAcceleration ::= SEQUENCE { + verticalAccelerationValue VerticalAccelerationValue, + verticalAccelerationConfidence AccelerationConfidence +} + +VerticalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredUp(1), pointOneMeterPerSecSquaredDown(-1), unavailable(161)} (-160 .. 161) + +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 ::= BIT STRING { + lowBeamHeadlightsOn (0), + highBeamHeadlightsOn (1), + leftTurnSignalOn (2), + rightTurnSignalOn (3), + daytimeRunningLightsOn (4), + reverseLightOn (5), + fogLightOn (6), + parkingLightsOn (7) +} (SIZE(8)) + +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 ::= 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 ::= BIT STRING {heavyLoad(0), excessWidth(1), excessLength(2), excessHeight(3)} (SIZE(4)) + +LightBarSirenInUse ::= BIT STRING { + lightBarActivated (0), + sirenActivated (1) +} (SIZE(2)) + +HeightLonCarr ::= INTEGER {oneCentimeter(1), unavailable(100)} (1..100) + +PosLonCarr ::= INTEGER {oneCentimeter(1), unavailable(127)} (1..127) + +PosPillar ::= INTEGER {tenCentimeters(1), unavailable(30)} (1..30) + +PosCentMass ::= INTEGER {tenCentimeters(1), unavailable(63)} (1..63) + +RequestResponseIndication ::= ENUMERATED {request(0), response(1)} + +SpeedLimit ::= INTEGER {oneKmPerHour(1)} (1..255) + +StationarySince ::= ENUMERATED {lessThan1Minute(0), lessThan2Minutes(1), lessThan15Minutes(2), equalOrGreater15Minutes(3)} + +Temperature ::= INTEGER {equalOrSmallerThanMinus60Deg (-60), oneDegreeCelsius(1), equalOrGreaterThan67Deg(67)} (-60..67) + +TrafficRule ::= ENUMERATED {noPassing(0), noPassingForTrucks(1), passToRight(2), passToLeft(3), ... +} + +WheelBaseVehicle ::= INTEGER {tenCentimeters(1), unavailable(127)} (1..127) + +TurningRadius ::= INTEGER {point4Meters(1), unavailable(255)} (1..255) + +PosFrontAx ::= INTEGER {tenCentimeters(1), unavailable(20)} (1..20) + +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 ::= ENUMERATED {noPositioningSolution(0), sGNSS(1), dGNSS(2), sGNSSplusDR(3), dGNSSplusDR(4), dR(5), ...} + +VehicleIdentification ::= SEQUENCE { + wMInumber WMInumber OPTIONAL, + vDS VDS OPTIONAL, + ... +} + +WMInumber ::= IA5String (SIZE(1..3)) + +VDS ::= IA5String (SIZE(6)) + +EnergyStorageType ::= BIT STRING {hydrogenStorage(0), electricEnergyStorage(1), liquidPropaneGas(2), compressedNaturalGas(3), diesel(4), gasoline(5), ammonia(6)} (SIZE(7)) + +VehicleLength ::= SEQUENCE { + vehicleLengthValue VehicleLengthValue, + vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication +} + +VehicleLengthValue ::= INTEGER {tenCentimeters(1), outOfRange(1022), unavailable(1023)} (1..1023) + +VehicleLengthConfidenceIndication ::= ENUMERATED {noTrailerPresent(0), trailerPresentWithKnownLength(1), trailerPresentWithUnknownLength(2), trailerPresenceIsUnknown(3), unavailable(4)} + +VehicleWidth ::= INTEGER {tenCentimeters(1), outOfRange(61), unavailable(62)} (1..62) + +PathHistory::= SEQUENCE (SIZE(0..40)) OF PathPoint + +EmergencyPriority ::= BIT STRING {requestForRightOfWay(0), requestForFreeCrossingAtATrafficLight(1)} (SIZE(2)) + +InformationQuality ::= INTEGER {unavailable(0), lowest(1), highest(7)} (0..7) + +RoadType ::= ENUMERATED { + urban-NoStructuralSeparationToOppositeLanes(0), + urban-WithStructuralSeparationToOppositeLanes(1), + nonUrban-NoStructuralSeparationToOppositeLanes(2), + nonUrban-WithStructuralSeparationToOppositeLanes(3)} + +SteeringWheelAngle ::= SEQUENCE { + steeringWheelAngleValue SteeringWheelAngleValue, + steeringWheelAngleConfidence SteeringWheelAngleConfidence +} + +SteeringWheelAngleValue ::= INTEGER {straight(0), onePointFiveDegreesToRight(-1), onePointFiveDegreesToLeft(1), unavailable(512)} (-511..512) + +SteeringWheelAngleConfidence ::= INTEGER {equalOrWithinOnePointFiveDegree (1), outOfRange(126), unavailable(127)} (1..127) + +TimestampIts ::= INTEGER {utcStartOf2004(0), oneMillisecAfterUTCStartOf2004(1)} (0..4398046511103) + +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::= SEQUENCE { + yawRateValue YawRateValue, + yawRateConfidence YawRateConfidence +} + +YawRateValue ::= INTEGER {straight(0), degSec-000-01ToRight(-1), degSec-000-01ToLeft(1), unavailable(32767)} (-32766..32767) + +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::= ENUMERATED { permanentCenDsrcTolling (0), ..., temporaryCenDsrcTolling (1) } + +RelevanceDistance ::= ENUMERATED {lessThan50m(0), lessThan100m(1), lessThan200m(2), lessThan500m(3), lessThan1000m(4), lessThan5km(5), lessThan10km(6), over10km(7)} + +RelevanceTrafficDirection ::= ENUMERATED {allTrafficDirections(0), upstreamTraffic(1), downstreamTraffic(2), oppositeTraffic(3)} + +TransmissionInterval ::= INTEGER {oneMilliSecond(1), tenSeconds(10000)} (1..10000) + +ValidityDuration ::= INTEGER {timeOfDetection(0), oneSecondAfterDetection(1)} (0..86400) + +ActionID ::= SEQUENCE { + originatingStationID StationID, + sequenceNumber SequenceNumber +} + +ItineraryPath ::= SEQUENCE SIZE(1..40) OF ReferencePosition + +ProtectedCommunicationZone ::= SEQUENCE { + protectedZoneType ProtectedZoneType, + expiryTime TimestampIts OPTIONAL, + protectedZoneLatitude Latitude, + protectedZoneLongitude Longitude, + protectedZoneRadius ProtectedZoneRadius OPTIONAL, + protectedZoneID ProtectedZoneID OPTIONAL, + ... +} + +Traces ::= SEQUENCE SIZE(1..7) OF PathHistory + +NumberOfOccupants ::= INTEGER {oneOccupant (1), unavailable(127)} (0 .. 127) + +SequenceNumber ::= INTEGER (0..65535) + +PositionOfPillars ::= SEQUENCE (SIZE(1..3, ...)) OF PosPillar + +RestrictedTypes ::= SEQUENCE (SIZE(1..3, ...)) OF StationType + +EventHistory::= SEQUENCE (SIZE(1..23)) OF EventPoint + +EventPoint ::= SEQUENCE { + eventPosition DeltaReferencePosition, + eventDeltaTime PathDeltaTime OPTIONAL, + informationQuality InformationQuality +} + +ProtectedCommunicationZonesRSU ::= SEQUENCE (SIZE(1..16)) OF ProtectedCommunicationZone + + + +CenDsrcTollingZone ::= SEQUENCE { + protectedZoneLatitude Latitude, + protectedZoneLongitude Longitude, + cenDsrcTollingZoneID CenDsrcTollingZoneID OPTIONAL, + ... +} + +ProtectedZoneRadius ::= INTEGER {oneMeter(1)} (1..255,...) + +ProtectedZoneID ::= INTEGER (0.. 134217727) + +CenDsrcTollingZoneID ::= ProtectedZoneID + +DigitalMap ::= SEQUENCE (SIZE(1..256)) OF ReferencePosition + +OpeningDaysHours ::= UTF8String + +PhoneNumber ::= NumericString (SIZE(1..16)) + +END diff --git a/asn1/cdd_2_2_1.asn b/asn1/cdd_2_2_1.asn new file mode 100644 index 0000000..66e391d --- /dev/null +++ b/asn1/cdd_2_2_1.asn @@ -0,0 +1,7260 @@ +--! @options: no-fields-header + +ETSI-ITS-CDD {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) 102894 cdd (2) major-version-4 (4) minor-version-1 (1)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +------------------------------------------ +-- Specification of CDD Data Elements: +------------------------------------------ + +/** + * This DE indicates a change of acceleration. + * + * The value shall be set to: + * - 0 - `accelerate` - if the magnitude of the horizontal velocity vector increases. + * - 1 - `decelerate` - if the magnitude of the horizontal velocity vector decreases. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 +*/ +AccelerationChange::= ENUMERATED { + accelerate (0), + decelerate (1) +} + +/** + * This DE indicates the acceleration confidence value which represents the estimated absolute accuracy of an acceleration value with a default confidence level of 95 %. + * If required, the confidence level can be defined by the corresponding standards applying this DE. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 101`) if the confidence value is equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, + * - `101` if the confidence value is out of range i.e. greater than 10 m/s^2, + * - `102` if the confidence value is unavailable. + * + * The value 0 shall not be used. + * + * @note: The fact that an acceleration value is received with confidence value set to `unavailable(102)` can be caused by several reasons, such as: + * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, + * - the sensor cannot calculate the accuracy due to lack of variables, or + * - there has been a vehicle bus (e.g. CAN bus) error. + * In all 3 cases above, the acceleration value may be valid and used by the application. + * + * @note: If an acceleration value is received and its confidence value is set to `outOfRange(101)`, it means that the value is not valid and therefore cannot be trusted. Such value is not useful for the application. + * + * @unit 0,1 m/s^2 + * @category: Kinematic information + * @revision: Description revised in V2.1.1 + */ +AccelerationConfidence ::= INTEGER { + outOfRange (101), + unavailable (102) +} (0..102) + +/** + * This DE indicates the current controlling mechanism for longitudinal movement of the vehicle. + * The data may be provided via the in-vehicle network. It indicates whether a specific in-vehicle + * acceleration control system is engaged or not. Currently, this DE includes the information of the + * vehicle brake pedal, gas pedal, emergency brake system, collision warning system, adaptive cruise + * control system, cruise control system and speed limiter system. + * + * The corresponding bit shall be set to 1 under the following conditions: + * - 0 - `brakePedalEngaged` - Driver is stepping on the brake pedal, + * - 1 - `gasPedalEngaged` - Driver is stepping on the gas pedal, + * - 2 - `emergencyBrakeEngaged` - emergency brake system is engaged, + * - 3 - `collisionWarningEngaged`- collision warning system is engaged, + * - 4 - `accEngaged` - ACC is engaged, + * - 5 - `cruiseControlEngaged` - cruise control is engaged, + * - 6 - `speedLimiterEngaged` - speed limiter is engaged. + * + * Otherwise (for example when the corresponding system is not available due to non equipped system + * or information is unavailable), the corresponding bit shall be set to 0. + * + * @note: The system engagement condition is OEM specific and therefore out of scope of the present document. + * @category: Vehicle information + * @revision: V1.3.1 + */ +AccelerationControl ::= BIT STRING { + brakePedalEngaged (0), + gasPedalEngaged (1), + emergencyBrakeEngaged (2), + collisionWarningEngaged (3), + accEngaged (4), + cruiseControlEngaged (5), + speedLimiterEngaged (6) +} (SIZE(7)) + +/** + * This DE represents the magnitude of the acceleration vector in a defined coordinate system. + * + * The value shall be set to: + * - `0` to indicate no acceleration, + * - `n` (`n > 0` and `n < 160`) to indicate acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, + * - `160` for acceleration values greater than 15,9 m/s^2, + * - `161` when the data is unavailable. + * + * @unit 0,1 m/s^2 + * @category: Kinematic information + * @revision: Created in V2.1.1 +*/ +AccelerationMagnitudeValue ::= INTEGER { + positiveOutOfRange (160), + unavailable (161) +} (0.. 161) + +/** + * This DE represents the value of an acceleration component in a defined coordinate system. + * + * The value shall be set to: + * - `-160` for acceleration values equal to or less than -16 m/s^2, + * - `n` (`n > -160` and `n <= 0`) to indicate negative acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, + * - `n` (`n > 0` and `n < 160`) to indicate positive acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, + * - `160` for acceleration values greater than 15,9 m/s^2, + * - `161` when the data is unavailable. + * + * @note: the formula for values > -160 and <160 results in rounding up to the next value. Zero acceleration is indicated using n=0. + * @unit 0,1 m/s^2 + * @category: Kinematic information + * @revision: Created in V2.1.1 +*/ +AccelerationValue ::= INTEGER { + negativeOutOfRange (-160), + positiveOutOfRange (160), + unavailable (161) +} (-160 .. 161) + + +/** + * This DE indicates an access technology. + * + * The value shall be set to: + * - `0`: in case of any access technology class, + * - `1`: in case of ITS-G5 access technology class, + * - `2`: in case of LTE-V2X access technology class, + * - `3`: in case of NR-V2X access technology class. + * + * @category: Communication information + * @revision: Created in V2.1.1 + */ +AccessTechnologyClass ::= ENUMERATED { + any (0), + itsg5Class (1), + ltev2xClass (2), + nrv2xClass (3), + ... +} + +/** + * This DE represents the value of the sub cause code of the @ref CauseCode `accident`. + * + * The value shall be set to: + * - 0 - `unavailable` - in case the information on the sub cause of the accident is unavailable, + * - 1 - `multiVehicleAccident` - in case more than two vehicles are involved in accident, + * - 2 - `heavyAccident` - in case the airbag of the vehicle involved in the accident is triggered, + * the accident requires important rescue and/or recovery work, + * - 3 - `accidentInvolvingLorry` - in case the accident involves a lorry, + * - 4 - `accidentInvolvingBus` - in case the accident involves a bus, + * - 5 - `accidentInvolvingHazardousMaterials`- in case the accident involves hazardous material, + * - 6 - `accidentOnOppositeLane` - in case the accident happens on opposite lanes, + * - 7 - `unsecuredAccident` - in case the accident is not secured, + * - 8 - `assistanceRequested` - in case rescue and assistance are requested, + * - 9-255 - reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +AccidentSubCauseCode ::= INTEGER { + unavailable (0), + multiVehicleAccident (1), + heavyAccident (2), + accidentInvolvingLorry (3), + accidentInvolvingBus (4), + accidentInvolvingHazardousMaterials (5), + accidentOnOppositeLane (6), + unsecuredAccident (7), + assistanceRequested (8) +} (0..255) + +/** + * This DE represents the value of the sub cause code of the @ref CauseCode `adverseWeatherCondition-Adhesion`. + * + * The value shall be set to: + * - 0 - `unavailable` - in case information on the cause of the low road adhesion is unavailable, + * - 1 - `heavyFrostOnRoad`- in case the low road adhesion is due to heavy frost on the road, + * - 2 - `fuelOnRoad` - in case the low road adhesion is due to fuel on the road, + * - 3 - `mudOnRoad` - in case the low road adhesion is due to mud on the road, + * - 4 - `snowOnRoad` - in case the low road adhesion is due to snow on the road, + * - 5 - `iceOnRoad` - in case the low road adhesion is due to ice on the road, + * - 6 - `blackIceOnRoad` - in case the low road adhesion is due to black ice on the road, + * - 7 - `oilOnRoad` - in case the low road adhesion is due to oil on the road, + * - 8 - `looseChippings` - in case the low road adhesion is due to loose gravel or stone fragments detached from a road surface or from a hazard, + * - 9 - `instantBlackIce` - in case the low road adhesion is due to instant black ice on the road surface, + * - 10 - `roadsSalted` - when the low road adhesion is due to salted road, + * - 11-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +AdverseWeatherCondition-AdhesionSubCauseCode ::= INTEGER { + unavailable (0), + heavyFrostOnRoad (1), + fuelOnRoad (2), + mudOnRoad (3), + snowOnRoad (4), + iceOnRoad (5), + blackIceOnRoad (6), + oilOnRoad (7), + looseChippings (8), + instantBlackIce (9), + roadsSalted (10) +} (0..255) + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-ExtremeWeatherCondition`. + * + * The value shall be set to: + * - 0 - `unavailable` - in case information on the type of extreme weather condition is unavailable, + * - 1 - `strongWinds` - in case the type of extreme weather condition is strong wind, + * - 2 - `damagingHail`- in case the type of extreme weather condition is damaging hail, + * - 3 - `hurricane` - in case the type of extreme weather condition is hurricane, + * - 4 - `thunderstorm`- in case the type of extreme weather condition is thunderstorm, + * - 5 - `tornado` - in case the type of extreme weather condition is tornado, + * - 6 - `blizzard` - in case the type of extreme weather condition is blizzard. + * - 7-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER { + unavailable (0), + strongWinds (1), + damagingHail (2), + hurricane (3), + thunderstorm (4), + tornado (5), + blizzard (6) +} (0..255) + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-Precipitation`. + * + * The value shall be set to: + * - 0 - `unavailable` - in case information on the type of precipitation is unavailable, + * - 1 - `heavyRain` - in case the type of precipitation is heavy rain, + * - 2 - `heavySnowfall` - in case the type of precipitation is heavy snow fall, + * - 3 - `softHail` - in case the type of precipitation is soft hail. + * - 4-255 - are reserved for future usage + * + * @category: Traffic information + * @revision: V1.3.1 + */ +AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER { + unavailable (0), + heavyRain (1), + heavySnowfall (2), + softHail (3) +} (0..255) + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-Visibility`. + * + * The value shall be set to: + * - 0 - `unavailable` - in case information on the cause of low visibility is unavailable, + * - 1 - `fog` - in case the cause of low visibility is fog, + * - 2 - `smoke` - in case the cause of low visibility is smoke, + * - 3 - `heavySnowfall` - in case the cause of low visibility is heavy snow fall, + * - 4 - `heavyRain` - in case the cause of low visibility is heavy rain, + * - 5 - `heavyHail` - in case the cause of low visibility is heavy hail, + * - 6 - `lowSunGlare` - in case the cause of low visibility is sun glare, + * - 7 - `sandstorms` - in case the cause of low visibility is sand storm, + * - 8 - `swarmsOfInsects`- in case the cause of low visibility is swarm of insects. + * - 9-255 - are reserved for future usage + * + * @category: Traffic information + * @revision: V1.3.1 + */ +AdverseWeatherCondition-VisibilitySubCauseCode ::= INTEGER { + unavailable (0), + fog (1), + smoke (2), + heavySnowfall (3), + heavyRain (4), + heavyHail (5), + lowSunGlare (6), + sandstorms (7), + swarmsOfInsects (8) +} (0..255) + +/** + * This DE represents the air humidity in tenths of percent. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 1001`) indicates that the applicable value is equal to or less than n x 0,1 percent and greater than (n-1) x 0,1 percent. + * - `1001` indicates that the air humidity is unavailable. + * + * @category: Basic information + * @unit: 0,1 % + * @revision: created in V2.1.1 + */ +AirHumidity ::= INTEGER { + oneHundredPercent (1000), + unavailable (1001) +} (1..1001) + +/** + * This DE indicates the altitude confidence value which represents the estimated absolute accuracy of an altitude value of a geographical point with a default confidence level of 95 %. + * If required, the confidence level can be defined by the corresponding standards applying this DE. + * + * The value shall be set to: + * - 0 - `alt-000-01` - if the confidence value is equal to or less than 0,01 metre, + * - 1 - `alt-000-02` - if the confidence value is equal to or less than 0,02 metre and greater than 0,01 metre, + * - 2 - `alt-000-05` - if the confidence value is equal to or less than 0,05 metre and greater than 0,02 metre, + * - 3 - `alt-000-10` - if the confidence value is equal to or less than 0,1 metre and greater than 0,05 metre, + * - 4 - `alt-000-20` - if the confidence value is equal to or less than 0,2 metre and greater than 0,1 metre, + * - 5 - `alt-000-50` - if the confidence value is equal to or less than 0,5 metre and greater than 0,2 metre, + * - 6 - `alt-001-00` - if the confidence value is equal to or less than 1 metre and greater than 0,5 metre, + * - 7 - `alt-002-00` - if the confidence value is equal to or less than 2 metres and greater than 1 metre, + * - 8 - `alt-005-00` - if the confidence value is equal to or less than 5 metres and greater than 2 metres, + * - 9 - `alt-010-00` - if the confidence value is equal to or less than 10 metres and greater than 5 metres, + * - 10 - `alt-020-00` - if the confidence value is equal to or less than 20 metres and greater than 10 metres, + * - 11 - `alt-050-00` - if the confidence value is equal to or less than 50 metres and greater than 20 metres, + * - 12 - `alt-100-00` - if the confidence value is equal to or less than 100 metres and greater than 50 metres, + * - 13 - `alt-200-00` - if the confidence value is equal to or less than 200 metres and greater than 100 metres, + * - 14 - `outOfRange` - if the confidence value is out of range, i.e. greater than 200 metres, + * - 15 - `unavailable` - if the confidence value is unavailable. + * + * @note: The fact that an altitude value is received with confidence value set to `unavailable(15)` can be caused + * by several reasons, such as: + * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, + * - the sensor cannot calculate the accuracy due to lack of variables, or + * - there has been a vehicle bus (e.g. CAN bus) error. + * In all 3 cases above, the altitude value may be valid and used by the application. + * + * @note: If an altitude value is received and its confidence value is set to `outOfRange(14)`, it means that the + * altitude value is not valid and therefore cannot be trusted. Such value is not useful for the application. + * + * @category: GeoReference information + * @revision: Description revised in V2.1.1 + */ +AltitudeConfidence ::= ENUMERATED { + alt-000-01 (0), + alt-000-02 (1), + alt-000-05 (2), + alt-000-10 (3), + alt-000-20 (4), + alt-000-50 (5), + alt-001-00 (6), + alt-002-00 (7), + alt-005-00 (8), + alt-010-00 (9), + alt-020-00 (10), + alt-050-00 (11), + alt-100-00 (12), + alt-200-00 (13), + outOfRange (14), + unavailable (15) +} + +/** + * This DE represents the altitude value in a WGS84 coordinate system. + * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. + * + * The value shall be set to: + * - `-100 000` if the altitude is equal to or less than -1 000 m, + * - `n` (`n > -100 000` and `n < 800 000`) if the altitude is equal to or less than n x 0,01 metre and greater than (n-1) x 0,01 metre, + * - `800 000` if the altitude greater than 7 999,99 m, + * - `800 001` if the information is not available. + * + * @note: the range of this DE does not use the full binary encoding range, but all reasonable values are covered. In order to cover all possible altitude ranges a larger encoding would be necessary. + * @unit: 0,01 metre + * @category: GeoReference information + * @revision: Description revised in V2.1.1 (definition of 800 000 has slightly changed) + */ +AltitudeValue ::= INTEGER { + negativeOutOfRange (-100000), + postiveOutOfRange (800000), + unavailable (800001) +} (-100000..800001) + +/** + * This DE indicates the angle confidence value which represents the estimated absolute accuracy of an angle value with a default confidence level of 95 %. + * If required, the confidence level can be defined by the corresponding standards applying this DE. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 126`) if the accuracy is equal to or less than n * 0,1 degrees and greater than (n-1) x * 0,1 degrees, + * - `126` if the accuracy is out of range, i.e. greater than 12,5 degrees, + * - `127` if the accuracy information is not available. + * + * @unit: 0,1 degrees + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +AngleConfidence ::= INTEGER { + outOfRange (126), + unavailable (127) +} (1..127) + +/** + * This DE indicates the angular speed confidence value which represents the estimated absolute accuracy of an angular speed value with a default confidence level of 95 %. + * If required, the confidence level can be defined by the corresponding standards applying this DE. + * For correlation computation, maximum interval levels can be assumed. + * + * The value shall be set to: + * - 0 - `degSec-01` - if the accuracy is equal to or less than 1 degree/second, + * - 1 - `degSec-02` - if the accuracy is equal to or less than 2 degrees/second and greater than 1 degree/second, + * - 2 - `degSec-05` - if the accuracy is equal to or less than 5 degrees/second and greater than 2 degrees/second, + * - 3 - `degSec-10` - if the accuracy is equal to or less than 10 degrees/second and greater than 5 degrees/second, + * - 4 - `degSec-20` - if the accuracy is equal to or less than 20 degrees/second and greater than 10 degrees/second, + * - 5 - `degSec-50` - if the accuracy is equal to or less than 50 degrees/second and greater than 20 degrees/second, + * - 6 - `outOfRange` - if the accuracy is out of range, i.e. greater than 50 degrees/second, + * - 7 - `unavailable` - if the accuracy information is unavailable. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 +*/ +AngularSpeedConfidence ::= ENUMERATED { + degSec-01 (0), + degSec-02 (1), + degSec-05 (2), + degSec-10 (3), + degSec-20 (4), + degSec-50 (5), + outOfRange (6), + unavailable (7) +} + +/** + * This DE indicates the angular acceleration confidence value which represents the estimated accuracy of an angular acceleration value with a default confidence level of 95 %. + * If required, the confidence level can be defined by the corresponding standards applying this DE. + * For correlation computation, maximum interval levels shall be assumed. + * + * The value shall be set to: + * - 0 - `degSecSquared-01` - if the accuracy is equal to or less than 1 degree/second^2, + * - 1 - `degSecSquared-02` - if the accuracy is equal to or less than 2 degrees/second^2 and greater than 1 degree/second^2, + * - 2 - `degSecSquared-05` - if the accuracy is equal to or less than 5 degrees/second^2 and greater than 1 degree/second^2, + * - 3 - `degSecSquared-10` - if the accuracy is equal to or less than 10 degrees/second^2 and greater than 5 degrees/second^2, + * - 4 - `degSecSquared-20` - if the accuracy is equal to or less than 20 degrees/second^2 and greater than 10 degrees/second^2, + * - 5 - `degSecSquared-50` - if the accuracy is equal to or less than 50 degrees/second^2 and greater than 20 degrees/second^2, + * - 6 - `outOfRange` - if the accuracy is out of range, i.e. greater than 50 degrees/second^2, + * - 7 - `unavailable` - if the accuracy information is unavailable. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 +*/ +AngularAccelerationConfidence ::= ENUMERATED { + degSecSquared-01 (0), + degSecSquared-02 (1), + degSecSquared-05 (2), + degSecSquared-10 (3), + degSecSquared-20 (4), + degSecSquared-50 (5), + outOfRange (6), + unavailable (7) +} + +/** + * This DE indicates the number of axles of a passing train. + * + * The value shall be set to: + * - `n` (`n > 2` and `n < 1001`) indicates that the train has n x axles, + * - `1001`indicates that the number of axles is out of range, + * - `1002` the information is unavailable. + * + * + * @unit: Number of axles + * @category: Vehicle information + * @revision: Created in V2.1.1 +*/ +AxlesCount ::= INTEGER{ + outOfRange (1001), + unavailable (1002) +} (2..1002) + +/** + * This DE represents the measured uncompensated atmospheric pressure. + * + * The value shall be set to: + * - `2999` indicates that the applicable value is less than 29990 Pa, + * - `n` (`n > 2999` and `n <= 12000`) indicates that the applicable value is equal to or less than n x 10 Pa and greater than (n-1) x 10 Pa, + * - `12001` indicates that the values is greater than 120000 Pa, + * - `12002` indicates that the information is not available. + * + * @category: Basic information + * @unit: 10 Pascal + * @revision: Created in V2.1.1 +*/ +BarometricPressure ::= INTEGER{ + outOfRangelower (2999), + outOfRangeUpper (12001), + unavailable (12002) +} (2999..12002) + + +/** + * This DE indicates the cardinal number of bogies of a train. + * + * The value shall be set to: + * - `n` (`n > 1` and `n < 100`) indicates that the train has n x bogies, + * - `100`indicates that the number of bogies is out of range, + * - `101` the information is unavailable. + * + * @unit: Number of bogies + * @category: Vehicle information + * @revision: Created in V2.1.1 +*/ +BogiesCount ::= INTEGER{ + outOfRange (100), + unavailable (101) +} (2..101) + +/** + * The DE represents a cardinal number that counts the size of a set. + * + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +CardinalNumber1B ::= INTEGER(0..255) + +/** + * The DE represents a cardinal number that counts the size of a set. + * + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +CardinalNumber3b ::= INTEGER(1..8) + +/** + * This DE represents an angle value described in a local Cartesian coordinate system, per default counted positive in + * a right-hand local coordinate system from the abscissa. + * + * The value shall be set to: + * - `n` (`n >= 0` and `n < 3600`) if the angle is equal to or less than n x 0,1 degrees, and greater than (n-1) x 0,1 degrees, + * - `3601` if the information is not available. + * + * The value 3600 shall not be used. + * + * @unit 0,1 degrees + * @category: Basic information + * @revision: Created in V2.1.1, description and value for 3601 corrected in V2.2.1 +*/ +CartesianAngleValue ::= INTEGER { + valueNotUsed (3600), + unavailable (3601) +} (0..3601) + +/** + * This DE represents an angular acceleration value described in a local Cartesian coordinate system, per default counted positive in + * a right-hand local coordinate system from the abscissa. + * + * The value shall be set to: + * - `-255` if the acceleration is equal to or less than -255 degrees/s^2, + * - `n` (`n > -255` and `n < 255`) if the acceleration is equal to or less than n x 1 degree/s^2, + and greater than `(n-1)` x 0,01 degree/s^2, + * - `255` if the acceleration is greater than 254 degrees/s^2, + * - `256` if the information is unavailable. + * + * @unit: degree/s^2 (degrees per second squared) + * @category: Kinematic information + * @revision: Created in V2.1.1 +*/ +CartesianAngularAccelerationComponentValue ::= INTEGER { + negativeOutOfRange (-255), + positiveOutOfRange (255), + unavailable (256) +} (-255..256) + +/** + * This DE represents an angular velocity component described in a local Cartesian coordinate system, per default counted positive in + * a right-hand local coordinate system from the abscissa. + * + * The value shall be set to: + * - `-255` if the velocity is equal to or less than -255 degrees/s, + * - `n` (`n > -255` and `n < 255`) if the velocity is equal to or less than n x 1 degree/s, and greater than (n-1) x 1 degree/s, + * - `255` if the velocity is greater than 254 degrees/s, + * - `256` if the information is unavailable. + * + * @unit: degree/s + * @category: Kinematic information + * @revision: Created in V2.1.1 +*/ +CartesianAngularVelocityComponentValue ::= INTEGER { + negativeOutofRange (-255), + positiveOutOfRange (255), + unavailable (256) +} (-255..256) + +/** + *The DE represents the value of the cause code of an event. + * + * The value shall be set to: + * - 0 - reserved for future use, + * - 1 - `trafficCondition` - in case the type of event is an abnormal traffic condition, + * - 2 - `accident` - in case the type of event is a road accident, + * - 3 - `roadworks` - in case the type of event is roadwork, + * - 4 - reserved for future usage, + * - 5 - `impassability` - in case the type of event is unmanaged road blocking, referring to any + * blocking of a road, partial or total, which has not been adequately + * secured and signposted, + * - 6 - `adverseWeatherCondition-Adhesion` - in case the type of event is low adhesion, + * - 7 - `aquaplaning` - danger of aquaplaning on the road, + * - 8 - reserved for future usage, + * - 9 - `hazardousLocation-SurfaceCondition` - in case the type of event is abnormal road surface condition, + * - 10 - `hazardousLocation-ObstacleOnTheRoad` - in case the type of event is obstacle on the road, + * - 11 - `hazardousLocation-AnimalOnTheRoad` - in case the type of event is animal on the road, + * - 12 - `humanPresenceOnTheRoad` - in case the type of event is presence of human vulnerable road user on the road, + * - 13 - reserved for future usage, + * - 14 - `wrongWayDriving` - in case the type of the event is vehicle driving in wrong way, + * - 15 - `rescueAndRecoveryWorkInProgress` - in case the type of event is rescue and recovery work for accident or for a road hazard in progress, + * - 16 - reserved for future usage, + * - 17 - `adverseWeatherCondition-ExtremeWeatherCondition`- in case the type of event is extreme weather condition, + * - 18 - `adverseWeatherCondition-Visibility` - in case the type of event is low visibility, + * - 19 - `adverseWeatherCondition-Precipitation` - in case the type of event is precipitation, + * - 20 - `violence` - in case the the type of event is human violence on or near the road, + * - 21-25 - reserved for future usage, + * - 26 - `slowVehicle` - in case the type of event is slow vehicle driving on the road, + * - 27 - `dangerousEndOfQueue` - in case the type of event is dangerous end of vehicle queue, + * - 28 - `publicTransportVehicleApproaching - in case the type of event is a public transport vehicle approaching, with a priority defined by applicable traffic regulations, + * - 29-90 - are reserved for future usage, + * - 91 - `vehicleBreakdown` - in case the type of event is break down vehicle on the road, + * - 92 - `postCrash` - in case the type of event is a detected crash, + * - 93 - `humanProblem` - in case the type of event is human health problem in vehicles involved in traffic, + * - 94 - `stationaryVehicle` - in case the type of event is stationary vehicle, + * - 95 - `emergencyVehicleApproaching` - in case the type of event is an approaching vehicle operating on a mission for which the applicable + traffic regulations provide it with defined priority rights in traffic. + * - 96 - `hazardousLocation-DangerousCurve` - in case the type of event is dangerous curve, + * - 97 - `collisionRisk` - in case the type of event is a collision risk, + * - 98 - `signalViolation` - in case the type of event is signal violation, + * - 99 - `dangerousSituation` - in case the type of event is dangerous situation in which autonomous safety system in vehicle + * is activated, + * - 100 - `railwayLevelCrossing` - in case the type of event is a railway level crossing. + * - 101-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1, value 28 added in V2.2.1, definition of values 12 and 95 changed in V2.2.1 + */ +CauseCodeType ::= INTEGER { + trafficCondition (1), + accident (2), + roadworks (3), + impassability (5), + adverseWeatherCondition-Adhesion (6), + aquaplaning (7), + hazardousLocation-SurfaceCondition (9), + hazardousLocation-ObstacleOnTheRoad (10), + hazardousLocation-AnimalOnTheRoad (11), + humanPresenceOnTheRoad (12), + wrongWayDriving (14), + rescueAndRecoveryWorkInProgress (15), + adverseWeatherCondition-ExtremeWeatherCondition (17), + adverseWeatherCondition-Visibility (18), + adverseWeatherCondition-Precipitation (19), + violence (20), + slowVehicle (26), + dangerousEndOfQueue (27), + publicTransportVehicleApproaching (28), + vehicleBreakdown (91), + postCrash (92), + humanProblem (93), + stationaryVehicle (94), + emergencyVehicleApproaching (95), + hazardousLocation-DangerousCurve (96), + collisionRisk (97), + signalViolation (98), + dangerousSituation (99), + railwayLevelCrossing (100) +} (0..255) + +/** + * This DF represents the value of a cartesian coordinate with a range of -30,94 metres to +10,00 metres. + * + * The value shall be set to: + * - `3094` if the longitudinal offset is out of range, i.e. less than or equal to -30,94 metres, + * - `n` (`n > -3 094` and `n < 1 001`) if the longitudinal offset information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre, + * - `1001` if the longitudinal offset is out of range, i.e. greater than 10 metres. + * + * @unit 0,01 m + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +CartesianCoordinateSmall::= INTEGER { + negativeOutOfRange (-3094), + positiveOutOfRange (1001) +} (-3094..1001) + +/** + * This DF represents the value of a cartesian coordinate with a range of -327,68 metres to +327,66 metres. + * + * The value shall be set to: + * - `-32 768` if the longitudinal offset is out of range, i.e. less than or equal to -327,68 metres, + * - `n` (`n > -32 768` and `n < 32 767`) if the longitudinal offset information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre, + * - `32 767` if the longitudinal offset is out of range, i.e. greater than + 327,66 metres. + * + * @unit 0,01 m + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +CartesianCoordinate::= INTEGER{ + negativeOutOfRange (-32768), + positiveOutOfRange (32767) +} (-32768..32767) + +/** + * This DF represents the value of a cartesian coordinate with a range of -1 310,72 metres to +1 310,70 metres. + * + * The value shall be set to: + * - `-131072` if the longitudinal offset is out of range, i.e. less than or equal to -1 310,72 metres, + * - `n` (`n > 131 072` and `n < 131 071`) if the longitudinal offset information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre, + * - `131 071` if the longitudinal offset is out of range, i.e. greater than + 1 310,70 metres. + * + * @unit 0,01 m + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +CartesianCoordinateLarge::= INTEGER{ + negativeOutOfRange (-131072), + positiveOutOfRange (131071) +} (-131072..131071) + +/** + * This DE represents the ID of a CEN DSRC tolling zone. + * + * @category: Communication information + * @revision: V1.3.1 + * @note: this DE is deprecated and shall not be used anymore. + */ +CenDsrcTollingZoneID::= ProtectedZoneId + +/** + * This DE indicates the reason why a cluster leader intends to break up the cluster. + * + * The value shall be set to: + * - 0 - `notProvided` - if the information is not provided, + * - 1 - `clusteringPurposeCompleted` - if the cluster purpose has been completed, + * - 2 - `leaderMovedOutOfClusterBoundingBox` - if the leader moved out of the cluster's bounding box, + * - 3 - `joiningAnotherCluster` - if the cluster leader is about to join another cluster, + * - 4 - `enteringLowRiskAreaBasedOnMaps` - if the cluster is entering an area idenrified as low risk based on the use of maps, + * - 5 - `receptionOfCpmContainingCluster` - if the leader received a Collective Perception Message containing information about the same cluster. + * - 6 to 15 - are reserved for future use. + * + * @category: Cluster information + * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 +*/ +ClusterBreakupReason ::= INTEGER { + notProvided (0), + clusteringPurposeCompleted (1), + leaderMovedOutOfClusterBoundingBox (2), + joiningAnotherCluster (3), + enteringLowRiskAreaBasedOnMaps (4), + receptionOfCpmContainingCluster (5) +}(0..15) + +/** + * This DE indicates the reason why a cluster participant is leaving the cluster. + * + * The value shall be set to: + * - 0 - `notProvided ` - if the information is not provided, + * - 1 - `clusterLeaderLost` - if the cluster leader cannot be found anymore, + * - 2 - `clusterDisbandedByLeader` - if the cluster has been disbanded by the leader, + * - 3 - `outOfClusterBoundingBox` - if the participants moved out of the cluster's bounding box, + * - 4 - `outOfClusterSpeedRange` - if the cluster speed moved out of a defined range, + * - 5 - `joiningAnotherCluster` - if the participant is joining another cluster, + * - 6 - `cancelledJoin` - if the participant is cancelling a joining procedure, + * - 7 - `failedJoin` - if the participant failed to join the cluster, + * - 8 - `safetyCondition` - if a safety condition applies. + * - 9 to 15 - are reserved for future use + * + * @category: Cluster information + * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 + */ +ClusterLeaveReason ::= INTEGER { + notProvided (0), + clusterLeaderLost (1), + clusterDisbandedByLeader (2), + outOfClusterBoundingBox (3), + outOfClusterSpeedRange (4), + joiningAnotherCluster (5), + cancelledJoin (6), + failedJoin (7), + safetyCondition (8) +}(0..15) + +/** + * This DE represents the sub cause codes of the @ref CauseCode `collisionRisk`. + * + * The value shall be set to: + * - 0 - `unavailable` - in case information on the type of collision risk is unavailable, + * - 1 - `longitudinalCollisionRisk` - in case the type of detected collision risk is longitudinal collision risk, + * e.g. forward collision or face to face collision, + * - 2 - `crossingCollisionRisk` - in case the type of detected collision risk is crossing collision risk, + * - 3 - `lateralCollisionRisk` - in case the type of detected collision risk is lateral collision risk, + * - 4 - `vulnerableRoadUser` - in case the type of detected collision risk involves vulnerable road users + * e.g. pedestrians or bicycles. + * - 5 - `collisionRiskWithPedestrian` - in case the type of detected collision risk involves at least one pedestrian, + * - 6 - `collisionRiskWithCyclist` - in case the type of detected collision risk involves at least one cyclist (and no pedestrians), + * - 7 - `collisionRiskWithMotorVehicle` - in case the type of detected collision risk involves at least one motor vehicle (and no pedestrians or cyclists), + * - 8-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1, values 5-7 assigned in V2.2.1 + */ +CollisionRiskSubCauseCode ::= INTEGER { + unavailable (0), + longitudinalCollisionRisk (1), + crossingCollisionRisk (2), + lateralCollisionRisk (3), + vulnerableRoadUser (4), + collisionRiskWithPedestrian (5), + collisionRiskWithCyclist (6), + collisionRiskWithMotorVehicle (7) +}(0..255) + +/** + * This DE represents a confidence level in percentage. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 101`) : for the confidence level in %, + * - `101` : in case the confidence level is not available. + * + * @unit Percent + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +ConfidenceLevel ::= INTEGER { + unavailable (101) +} (1..101) + +/** + * This DE indicates the coordinate confidence value which represents the estimated absolute accuracy of a position coordinate with a default confidence level of 95 %. + * If required, the confidence level can be defined by the corresponding standards applying this DE. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 4095`) if the confidence value is is equal to or less than n x 0,01 metre, and greater than (n-1) x 0,01 metre, + * - `4095` if the confidence value is greater than 40,94 metres, + * - `4096` if the confidence value is not available. + * + * @unit 0,01 m + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +CoordinateConfidence ::= INTEGER { + outOfRange (4095), + unavailable (4096) +} (1..4096) + +/** + * This DE represents the Bravais-Pearson correlation value for each cell of a lower triangular correlation matrix. + * + * The value shall be set to: + * - `-100` in case of full negative correlation, + * - `n` (`n > -100` and `n < 0`) if the correlation is negative and equal to n x 100, + * - `0` in case of no correlation, + * - `n` (`n > 0` and `n < 100`) if the correlation is positive and equal to n x 100, + * - `100` in case of full positive correlation, + * - `101` in case the correlation information is unavailable. + * + * @unit: the value is scaled by 100 + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +CorrelationCellValue ::= INTEGER { + full-negative-correlation (-100), + no-correlation (0), + full-positive-correlation (100), + unavailable (101) +} (-100..101) + +/** + * This DE represents an ISO 3166-1 [25] country code encoded using ITA-2 encoding. + * + * @category: Basic information + * @revision: Created in V2.2.1 based on ISO 14816 [23] +*/ +CountryCode ::= BIT STRING(SIZE(10)) + +/** + * The DE describes whether the yaw rate is used to calculate the curvature for a curvature value. + * + * The value shall be set to: + * - 0 - `yawRateUsed` - if the yaw rate is used, + * - 1 - `yawRateNotUsed` - if the yaw rate is not used, + * - 2 - `unavailable` - if the information of curvature calculation mode is unknown. + * + * @category: Vehicle information + * @revision: V1.3.1 + */ +CurvatureCalculationMode ::= ENUMERATED { + yawRateUsed (0), + yawRateNotUsed (1), + unavailable (2), + ... +} + +/** + * This DE indicates the acceleration confidence value which represents the estimated absolute accuracy range of a curvature value with a confidence level of 95 %. + * If required, the confidence level can be defined by the corresponding standards applying this DE. + * + * The value shall be set to: + * - 0 - `onePerMeter-0-00002` - if the confidence value is less than or equal to 0,00002 m-1, + * - 1 - `onePerMeter-0-0001` - if the confidence value is less than or equal to 0,0001 m-1 and greater than 0,00002 m-1, + * - 2 - `onePerMeter-0-0005` - if the confidence value is less than or equal to 0,0005 m-1 and greater than 0,0001 m-1, + * - 3 - `onePerMeter-0-002` - if the confidence value is less than or equal to 0,002 m-1 and greater than 0,0005 m-1, + * - 4 - `nePerMeter-0-01` - if the confidence value is less than or equal to 0,01 m-1 and greater than 0,002 m-1, + * - 5 - `nePerMeter-0-1` - if the confidence value is less than or equal to 0,1 m-1 and greater than 0,01 m-1, + * - 6 - `outOfRange` - if the confidence value is out of range, i.e. greater than 0,1 m-1, + * - 7 - `unavailable` - if the confidence value is not available. + * + * @note: The fact that a curvature value is received with confidence value set to `unavailable(7)` can be caused by + * several reasons, such as: + * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, + * - the sensor cannot calculate the accuracy due to lack of variables, or + * - there has been a vehicle bus (e.g. CAN bus) error. + * In all 3 cases above, the curvature value may be valid and used by the application. + * + * @note: If a curvature value is received and its confidence value is set to `outOfRange(6)`, it means that the curvature value is not valid + * and therefore cannot be trusted. Such value is not useful for the application. + * + * @category: Vehicle information + * @revision: Description revised in V2.1.1 +*/ +CurvatureConfidence ::= ENUMERATED { + onePerMeter-0-00002 (0), + onePerMeter-0-0001 (1), + onePerMeter-0-0005 (2), + onePerMeter-0-002 (3), + onePerMeter-0-01 (4), + onePerMeter-0-1 (5), + outOfRange (6), + unavailable (7) +} + +/** + * This DE describes vehicle turning curve with the following information: + * ``` + * Value = 1 / Radius * 10000 + * ``` + * wherein radius is the vehicle turning curve radius in metres. + * + * Positive values indicate a turning curve to the left hand side of the driver. + * It corresponds to the vehicle coordinate system as defined in ISO 8855 [21]. + * + * The value shall be set to: + * - `-1023` for values smaller than -1023, + * - `n` (`n > -1023` and `n < 0`) for negative values equal to or less than `n`, and greater than `(n-1)`, + * - `0` when the vehicle is moving straight, + * - `n` (`n > 0` and `n < 1022`) for positive values equal to or less than `n`, and greater than `(n-1)`, + * - `1022`, for values greater than 1021, + * - `1023`, if the information is not available. + * + * @note: The present DE is limited to vehicle types as defined in ISO 8855 [21]. + * + * @unit: 1 over 10 000 metres + * @category: Vehicle information + * @revision: description revised in V2.1.1 (the definition of value 1022 has changed slightly) + */ +CurvatureValue ::= INTEGER { + outOfRangeNegative (-1023), + straight (0), + outOfRangePositive (1022), + unavailable (1023) +} (-1023..1023) + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `dangerousEndOfQueue`. + * + * The value shall be set to: + * - 0 - `unavailable` - in case information on the type of dangerous queue is unavailable, + * - 1 - `suddenEndOfQueue`- in case a sudden end of queue is detected, e.g. due to accident or obstacle, + * - 2 - `queueOverHill` - in case the dangerous end of queue is detected on the road hill, + * - 3 - `queueAroundBend` - in case the dangerous end of queue is detected around the road bend, + * - 4 - `queueInTunnel` - in case queue is detected in tunnel, + * - 5-255 - reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +DangerousEndOfQueueSubCauseCode ::= INTEGER { + unavailable (0), + suddenEndOfQueue (1), + queueOverHill (2), + queueAroundBend (3), + queueInTunnel (4) +} (0..255) + +/** + * This DE indicates the type of the dangerous goods being carried by a heavy vehicle. + * The value is assigned according to `class` and `division` definitions of dangerous goods as specified in part II, + * chapter 2.1.1.1 of European Agreement concerning the International Carriage of Dangerous Goods by Road [3]. + * + * + * @category Vehicle information + * @revision: V1.3.1 + */ +DangerousGoodsBasic::= ENUMERATED { + explosives1 (0), + explosives2 (1), + explosives3 (2), + explosives4 (3), + explosives5 (4), + explosives6 (5), + flammableGases (6), + nonFlammableGases (7), + toxicGases (8), + flammableLiquids (9), + flammableSolids (10), + substancesLiableToSpontaneousCombustion (11), + substancesEmittingFlammableGasesUponContactWithWater (12), + oxidizingSubstances (13), + organicPeroxides (14), + toxicSubstances (15), + infectiousSubstances (16), + radioactiveMaterial (17), + corrosiveSubstances (18), + miscellaneousDangerousSubstances (19) +} + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `dangerousSituation` + * + * The value shall be set to: + * - 0 - `unavailable` - in case information on the type of dangerous situation is unavailable, + * - 1 - `emergencyElectronicBrakeEngaged` - in case emergency electronic brake is engaged, + * - 2 - `preCrashSystemEngaged` - in case pre-crash system is engaged, + * - 3 - `espEngaged` - in case Electronic Stability Program (ESP) system is engaged, + * - 4 - `absEngaged` - in case Anti-lock Braking System (ABS) is engaged, + * - 5 - `aebEngaged` - in case Autonomous Emergency Braking (AEB) system is engaged, + * - 6 - `brakeWarningEngaged` - in case brake warning is engaged, + * - 7 - `collisionRiskWarningEngaged` - in case collision risk warning is engaged, + * - 8-255 - reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +DangerousSituationSubCauseCode ::= INTEGER { + unavailable (0), + emergencyElectronicBrakeEngaged (1), + preCrashSystemEngaged (2), + espEngaged (3), + absEngaged (4), + ebEngaged (5), + brakeWarningEngaged (6), + collisionRiskWarningEngaged (7) +} (0..255) + +/** + * This DE represents an offset altitude with regards to a defined altitude value. + * It may be used to describe a geographical point with regards to a specific reference geographical position. + * + * The value shall be set to: + * - `-12 700` for values equal to or lower than -127 metres, + * - `n` (`n > -12 700` and `n <= 0`) for altitude offset n x 0,01 metre below the reference position, + * - `0` for no altitudinal offset, + * - `n` (`n > 0` and `n < 12799`) for altitude offset n x 0,01 metre above the reference position, + * - `12 799` for values equal to or greater than 127,99 metres, + * - `12 800` when the information is unavailable. + * + * @unit: 0,01 metre + * @category: GeoReference information + * @revision: editorial update in V2.1.1 + */ +DeltaAltitude ::= INTEGER { + negativeOutOfRange (-12700), + positiveOutOfRange (12799), + unavailable (12800) +} (-12700..12800) + +/** + * This DE represents an offset latitude with regards to a defined latitude value. + * It may be used to describe a geographical point with regards to a specific reference geographical position. + * + * The value shall be set to: + * - `n` (`n >= -131 071` and `n < 0`) for offset n x 10^-7 degree towards the south from the reference position, + * - `0` for no latitudinal offset, + * - `n` (`n > 0` and `n < 131 072`) for offset n x 10^-7 degree towards the north from the reference position, + * - `131 072` when the information is unavailable. + * + * @unit: 10^-7 degree + * @category: GeoReference information + * @revision: editorial update in V2.1.1 + */ +DeltaLatitude ::= INTEGER { + unavailable (131072) +} (-131071..131072) + +/** + * This DE represents an offset longitude with regards to a defined longitude value. + * It may be used to describe a geographical point with regards to a specific reference geographical position. + * + * The value shall be set to: + * - `n` (`n >= -131 071` and `n < 0`) for offset n x 10^-7 degree towards the west from the reference position, + * - `0` for no longitudinal offset, + * - `n` (`n > 0` and `n < 131 072`) for offset n x 10^-7 degree towards the east from the reference position, + * - `131 072` when the information is unavailable. + * + * @unit: 10^-7 degree + * @category: GeoReference information + * @revision: editorial update in V2.1.1 + */ +DeltaLongitude ::= INTEGER { + unavailable (131072) +} (-131071..131072) + +/** + * This DE represents a difference in time with respect to a reference time. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 10001`) to indicate a time value equal to or less than n x 0,001 s, and greater than (n-1) x 0,001 s, + * + * Example: a time interval between two consecutive message transmissions. + * + * @unit: 0,001 s + * @category: Basic information + * @revision: Created in V2.1.1 from the DE TransmissionInterval in [2] + */ +DeltaTimeMilliSecondPositive ::= INTEGER (1..10000) + +/** + * This DE represents a signed difference in time with respect to a reference time. + * + * The value shall be set to: + * - `-2048` for time values equal to or less than -2,048 s, + * - `n` (`n > -2048` and `n < 2047`) to indicate a time value equal to or less than n x 0,001 s, and greater than (n-1) x 0,001 s, + * - `2047` for time values greater than 2,046 s + * + * @unit: 0,001 s + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +DeltaTimeMilliSecondSigned ::= INTEGER (-2048..2047) + +/** + * This DE represents a difference in time with respect to a reference time. + * It can be interpreted as the first 8 bits of a GenerationDeltaTime. To convert it to a @ref GenerationDeltaTime, + * multiply by 256 (i.e. append a `00` byte) + * + * @unit: 256 * 0,001 s + * @category: Basic information + * @revision: Created in V2.1.1 + */ +DeltaTimeQuarterSecond::= INTEGER { + unavailable (255) +} (1..255) + +/** + * This DE represents a difference in time with respect to a reference time. + * + * The value shall be set to: + * - `0` for a difference in time of 0 seconds. + * - `n` (`n > 0` and `n < 128`) to indicate a time value equal to or less than n x 0,1 s, and greater than (n-1) x 0,1 s, + * + * @unit: 0,1 s + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +DeltaTimeTenthOfSecond::= INTEGER { + unavailable (127) +} (0..127) + +/** + * This DE represents a difference in time with respect to a reference time. + * + * The value shall be set to: + * - `-0` for a difference in time of 0 seconds. + * - `n` (`n > 0` and `n <= 86400`) to indicate a time value equal to or less than n x 1 s, and greater than (n-1) x 1 s, + * + * @unit: 1 s + * @category: Basic information + * @revision: Created in V2.1.1 from ValidityDuration +*/ +DeltaTimeSecond ::= INTEGER (0..86400) + +/** + * This DE represents a difference in time with respect to a reference time. + * + * The value shall be set to: + * - `-0` for a difference in time of 0 seconds. + * - `n` (`n > 0` and `n < 128`) to indicate a time value equal to or less than n x 10 s, and greater than (n-1) x 10 s, + * + * @unit: 10 s + * @category: Basic information + * @revision: Created in V2.2.1 +*/ +DeltaTimeTenSeconds ::= INTEGER (0..127) + +/** + * This DE indicates a direction with respect to a defined reference direction. + * Example: a reference direction may be implicitly defined by the definition of a geographical zone. + * + * The value shall be set to: + * - 0 - `sameDirection` - to indicate the same direction as the reference direction, + * - 1 - `oppositeDirection` - to indicate opposite direction as the reference direction, + * - 2 - `bothDirections` - to indicate both directions, i.e. the same and the opposite direction, + * - 3 - `unavailable` - to indicate that the information is unavailable. + * + * @category: GeoReference information + * @revision: Created in V2.1.1 + */ +Direction::= INTEGER{ + sameDirection (0), + oppositeDirection (1), + bothDirections (2), + unavailable (3) + } (0..3) + +/** + * This DE indicates in which direction something is moving. + * + * The value shall be set to: + * - 0 - `forward` - to indicate it is moving forward, + * - 1 - `backwards` - to indicate it is moving backwards, + * - 2 - `unavailable` - to indicate that the information is unavailable. + * + * @category: Kinematic information + * @revision: editorial update in V2.1.1 + */ +DriveDirection ::= ENUMERATED { + forward (0), + backward (1), + unavailable (2) +} + +/** + * This DE indicates whether a driving lane is open to traffic. + * + * A lane is counted from inside border of the road excluding the hard shoulder. The size of the bit string shall + * correspond to the total number of the driving lanes in the carriageway. + * + * The numbering is matched to @ref LanePosition. + * The bit `0` is used to indicate the innermost lane, bit `1` is used to indicate the second lane from inside border. + * + * If a lane is closed to traffic, the corresponding bit shall be set to `1`. Otherwise, it shall be set to `0`. + * + * @note: hard shoulder status is not provided by this DE but in @ref HardShoulderStatus. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +DrivingLaneStatus ::= BIT STRING (SIZE (1..13)) + +/** + * This DE indicates whether a vehicle (e.g. public transport vehicle, truck) is under the embarkation process. + * If that is the case, the value is *TRUE*, otherwise *FALSE*. + * + * @category: Vehicle information + * @revision: editorial update in V2.1.1 + */ +EmbarkationStatus ::= BOOLEAN + +/** + * This DE indicates the right of priority requested or assumed by an operating emergency vehicle. + * The right-of-priority bit shall be set to `1` if the corresponding right is requested. + * + * The corresponding bit shall be set to 1 under the following conditions: + * - 0 - `requestForRightOfWay` - when the vehicle is requesting/assuming the right of way, + * - 1 - `requestForFreeCrossingAtATrafficLight` - when the vehicle is requesting/assuming the right to pass at a (red) traffic light. + * + * @category: Traffic information + * @revision: description revised in V2.1.1 + */ +EmergencyPriority ::= BIT STRING { + requestForRightOfWay (0), + requestForFreeCrossingAtATrafficLight (1) +} (SIZE(2)) + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode "emergencyVehicleApproaching". + * + * The value shall be set to: + * - 0 - `unavailable` - in case further detailed information on the emergency vehicle approaching event + * is unavailable, + * - 1 - `emergencyVehicleApproaching` - in case an operating emergency vehicle is approaching, + * - 2 - `prioritizedVehicleApproaching` - in case a prioritized vehicle is approaching, + * - 3-255 - reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +EmergencyVehicleApproachingSubCauseCode ::= INTEGER { + unavailable (0), + emergencyVehicleApproaching (1), + prioritizedVehicleApproaching (2) +} (0..255) + +/** + * This DE indicated the type of energy being used and stored in vehicle. + * + * The corresponding bit shall be set to 1 under the following conditions: + * - 0 - `hydrogenStorage` - when hydrogen is being used and stored in vehicle, + * - 1 - `electricEnergyStorage` - when electric energy is being used and stored in vehicle, + * - 2 - `liquidPropaneGas` - when liquid Propane Gas (LPG) is being used and stored in vehicle, + * - 3 - `compressedNaturalGas ` - when compressedNaturalGas (CNG) is being used and stored in vehicle, + * - 4 - `diesel` - when diesel is being used and stored in vehicle, + * - 5 - `gasoline` - when gasoline is being used and stored in vehicle, + * - 6 - `ammonia` - when ammonia is being used and stored in vehicle. + * + * - Otherwise, the corresponding bit shall be set to `0`. + * + * @category: Vehicle information + * @revision: editorial revision in V2.1.1 + */ +EnergyStorageType ::= BIT STRING { + hydrogenStorage (0), + electricEnergyStorage (1), + liquidPropaneGas (2), + compressedNaturalGas (3), + diesel (4), + gasoline (5), + ammonia (6) +}(SIZE(7)) + +/** + * This DE represents one of the specific categories in the L category: L1, L2, L3, L4, L5, L6, or L7 according to UNECE/TRANS/WP.29/78/Rev.4 [16]. + * + * + * @category: Vehicle information + * @revision: V2.1.1 + */ +EuVehicleCategoryL ::= ENUMERATED { l1, l2, l3, l4, l5, l6, l7 } + +/** + * This DE represents one of the specific categories in the M category: M1, M2, or M3 according to UNECE/TRANS/WP.29/78/Rev.4 [16]. + * + * + * @category: Vehicle information + * @revision: V2.1.1 + */ +EuVehicleCategoryM ::= ENUMERATED {m1, m2, m3} + +/** + * This DE represents one of the specific categories in the N category: N1, N2, or N3 according to UNECE/TRANS/WP.29/78/Rev.4 [16]. + * + * + * @category: Vehicle information + * @revision: V2.1.1 + */ +EuVehicleCategoryN ::= ENUMERATED {n1, n2, n3} + +/** + * This DE represents one of the specific categories in the O category: O1, O2, O3 or O4 according to UNECE/TRANS/WP.29/78/Rev.4 [16]. + * + * + * @category: Vehicle information + * @revision: V2.1.1 + */ +EuVehicleCategoryO ::= ENUMERATED {o1, o2, o3, o4} + +/** + * This DE describes the status of the exterior light switches of a vehicle incl. VRU vehicles. + * + * The corresponding bit shall be set to 1 under the following conditions: + * - 0 - `lowBeamHeadlightsOn` - when the low beam head light switch is on, + * - 1 - `highBeamHeadlightsOn` - when the high beam head light switch is on, + * - 2 - `leftTurnSignalOn` - when the left turnSignal switch is on, + * - 3 - `rightTurnSignalOn` - when the right turn signal switch is on, + * - 4 - `daytimeRunningLightsOn` - when the daytime running light switch is on, + * - 5 - `reverseLightOn` - when the reverse light switch is on, + * - 6 - `fogLightOn` - when the tail fog light switch is on, + * - 7 - `parkingLightsOn` - when the parking light switch is on. + * + * @note: The value of each bit indicates the state of the switch, which commands the corresponding light. + * The bit corresponding to a specific light is set to `1`, when the corresponding switch is turned on, + * either manually by the driver or automatically by a vehicle system. The bit value does not indicate + * if the corresponding lamps are alight or not. + * + * If a vehicle is not equipped with a certain light or if the light switch status information is not available, + * the corresponding bit shall be set to `0`. + * + * As the bit value indicates only the state of the switch, the turn signal and hazard signal bit values shall not + * alternate with the blinking interval. + * + * For hazard indicator, the `leftTurnSignalOn (2)` and `rightTurnSignalOn (3)` shall be both set to `1`. + * + * @category Vehicle information + * @revision: Description revised in V2.1.1 + */ +ExteriorLights ::= BIT STRING { + lowBeamHeadlightsOn (0), + highBeamHeadlightsOn (1), + leftTurnSignalOn (2), + rightTurnSignalOn (3), + daytimeRunningLightsOn (4), + reverseLightOn (5), + fogLightOn (6), + parkingLightsOn (7) +} (SIZE(8)) + +/** + * This DE represents a timestamp based on TimestampIts modulo 65 536. + * This means that generationDeltaTime = TimestampIts mod 65 536. + * + * @category: Basic information + * @revision: Created in V2.1.1 based on ETSI TS 103 900 [1] +*/ +GenerationDeltaTime ::= INTEGER { oneMilliSec(1) } (0..65535) + +/** + * This DE indicates the current status of a hard shoulder: whether it is available for special usage + * (e.g. for stopping or for driving) or closed for all vehicles. + * + * The value shall be set to: + * - 0 - `availableForStopping` - if the hard shoulder is available for stopping in e.g. emergency situations, + * - 1 - `closed` - if the hard shoulder is closed and cannot be occupied in any case, + * - 2 - `availableForDriving` - if the hard shoulder is available for regular driving. + * + * @category: Traffic information + * @revision: Description revised in V2.1.1 + */ +HardShoulderStatus ::= ENUMERATED { + availableForStopping (0), + closed (1), + availableForDriving (2) +} + +/** + * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-AnimalOnTheRoad`. + * + * The value shall be set to: + * - 0 - `unavailable` - in case further detailed information on the animal(s) on the road is unavailable, + * - 1 - `wildAnimals` - in case wild animals of unknown size are present on the road, + * - 2 - `herdOfAnimals` - in case a herd of animals is present on the road, + * - 3 - `smallAnimals` - in case small size animals of unknown type are present on the road, + * - 4 - `largeAnimals` - in case large size animals of unknown type are present on the road, + * - 5 - `wildAnimalsSmall` - in case small size wild animal(s) are present on the road, + * - 6 - `wildAnimalsLarge` - in case large size wild animal(s) are present on the road, + * - 7 - `domesticAnimals` - in case domestic animal(s) of unknown size are detected on the road, + * - 8 - `domesticAnimalsSmall` - in case small size domestic animal(s) are present on the road, + * - 9 - `domesticAnimalsLarge` - in case large size domestic animal(s) are present on the road. + * - 10-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1, named values 5 to 9 added in V2.2.1 + */ +HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER { + unavailable (0), + wildAnimals (1), + herdOfAnimals (2), + smallAnimals (3), + largeAnimals (4), + wildAnimalsSmall (5), + wildAnimalsLarge (6), + domesticAnimals (7), + domesticAnimalsSmall (8), + domesticAnimalsLarge (9) +} (0..255) + +/** + * This DE represents the sub cause code of the @ref CauseCode `hazardousLocation-DangerousCurve`. + * + * The value shall be set to: + * - 0 - `unavailable` - in case further detailed information on the dangerous curve is unavailable, + * - 1 - `dangerousLeftTurnCurve` - in case the dangerous curve is a left turn curve, + * - 2 - `dangerousRightTurnCurve` - in case the dangerous curve is a right turn curve, + * - 3 - `multipleCurvesStartingWithUnknownTurningDirection` - in case of multiple curves for which the starting curve turning direction is not known, + * - 4 - `multipleCurvesStartingWithLeftTurn` - in case of multiple curves starting with a left turn curve, + * - 5 - `multipleCurvesStartingWithRightTurn` - in case of multiple curves starting with a right turn curve. + * - 6-255 - are reserved for future usage. + * + * The definition of whether a curve is dangerous may vary according to region and according to vehicle types/mass + * and vehicle speed driving on the curve. This definition is out of scope of the present document. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER { + unavailable (0), + dangerousLeftTurnCurve (1), + dangerousRightTurnCurve (2), + multipleCurvesStartingWithUnknownTurningDirection (3), + multipleCurvesStartingWithLeftTurn (4), + multipleCurvesStartingWithRightTurn (5) +} (0..255) + +/** + * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-ObstacleOnTheRoad`. + * + * The value shall be set to: + * - 0 - `unavailable` - in case further detailed information on the detected obstacle is unavailable, + * - 1 - `shedLoad` - in case detected obstacle is large amount of obstacles (shedload), + * - 2 - `partsOfVehicles`- in case detected obstacles are parts of vehicles, + * - 3 - `partsOfTyres` - in case the detected obstacles are parts of tyres, + * - 4 - `bigObjects` - in case the detected obstacles are big objects, + * - 5 - `fallenTrees` - in case the detected obstacles are fallen trees, + * - 6 - `hubCaps` - in case the detected obstacles are hub caps, + * - 7 - `waitingVehicles`- in case the detected obstacles are waiting vehicles. + * - 8-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +HazardousLocation-ObstacleOnTheRoadSubCauseCode ::= INTEGER { + unavailable (0), + shedLoad (1), + partsOfVehicles (2), + partsOfTyres (3), + bigObjects (4), + fallenTrees (5), + hubCaps (6), + waitingVehicles (7) +} (0..255) + +/** + * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-SurfaceCondition`. + * +The value shall be set to: + * - 0 - `unavailable` - in case further detailed information on the road surface condition is unavailable, + * - 1 - `rockfalls` - in case rock falls are detected on the road surface, + * - 2 - `earthquakeDamage`- in case the road surface is damaged by earthquake, + * - 3 - `sewerCollapse` - in case of sewer collapse on the road surface, + * - 4 - `subsidence` - in case road surface is damaged by subsidence, + * - 5 - `snowDrifts` - in case road surface is damaged due to snow drift, + * - 6 - `stormDamage` - in case road surface is damaged by strong storm, + * - 7 - `burstPipe` - in case road surface is damaged due to pipe burst, + * - 8 - `volcanoEruption` - in case road surface is damaged due to volcano eruption, + * - 9 - `fallingIce` - in case road surface damage is due to falling ice, + * - 10 - `fire` - in case there is fire on or near to the road surface. + * - 11-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +HazardousLocation-SurfaceConditionSubCauseCode ::= INTEGER { + unavailable (0), + rockfalls (1), + earthquakeDamage (2), + sewerCollapse (3), + subsidence (4), + snowDrifts (5), + stormDamage (6), + burstPipe (7), + volcanoEruption (8), + fallingIce (9), + fire (10) +} (0..255) + +/** + * This DE indicates the heading confidence value which represents the estimated absolute accuracy of a heading value with a confidence level of 95 %. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 126`) if the confidence value is equal to or less than n x 0,1 degree and more than (n-1) x 0,1 degree, + * - `126` if the confidence value is out of range, i.e. greater than 12,5 degrees, + * - `127` if the confidence value information is not available. + * + * @note: The fact that a value is received with confidence value set to `unavailable(127)` can be caused by several reasons, + * such as: + * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, + * - the sensor cannot calculate the accuracy due to lack of variables, or + * - there has been a vehicle bus (e.g. CAN bus) error. + * In all 3 cases above, the heading value may be valid and used by the application. + * + * @note: If a heading value is received and its confidence value is set to `outOfRange(126)`, it means that the + * heading value is not valid and therefore cannot be trusted. Such value is not useful for the application. + * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref Wgs84AngleConfidence instead. + * + * @unit: 0,1 degree + * @category: GeoReference information + * @revision: Description revised in V2.1.1 + */ +HeadingConfidence ::= INTEGER { + outOfRange (126), + unavailable (127) +} (1..127) + +/** + * This DE represents the orientation of the horizontal velocity vector with regards to the WGS84 north. + * When the information is not available, the DE shall be set to 3 601. The value 3600 shall not be used. + * + * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref Wgs84AngleValue instead. + * + * Unit: 0,1 degree + * Categories: GeoReference information + * @revision: Description revised in V2.1.1 (usage of value 3600 specified) +*/ +HeadingValue ::= INTEGER { + wgs84North (0), + wgs84East (900), + wgs84South (1800), + wgs84West (2700), + doNotUse (3600), + unavailable (3601) +} (0..3601) + +/** + * This DE represents the height of the left or right longitude carrier of vehicle from base to top (left or right carrier seen from vehicle + * rear to front). + * + * The value shall be set to: + * - `n` (`n >= 1` and `n < 99`) if the height information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre, + * - `99` if the height is out of range, i.e. equal to or greater than 0,98 m, + * - `100` if the height information is not available. + * + * @unit 0,01 metre + * @category Vehicle information + * @revision: Description revised in V2.1.1 (the definition of 99 has changed slightly) + */ +HeightLonCarr ::= INTEGER { + outOfRange(99), + unavailable(100) +} (1..100) + +/** + * This DE represents the value of the sub cause code of the @ref CauseCode `humanPresenceOnTheRoad`. + * + * The value shall be set to: + * - 0 - `unavailable` - in case further detailed information abou the human presence on the road is unavailable, + * - 1 - `childrenOnRoadway` - in case children are present on the road, + * - 2 - `cyclistOnRoadway` - in case cyclist(s) are present on the road, + * - 3 - `motorcyclistOnRoadway` - in case motorcyclist(s) are present on the road, + * - 4 - `pedestrian` - in case pedestrian(s) of any type are present on the road, + * - 5 - `ordinary-pedestrian` - in case pedestrian(s) to which no more-specific profile applies are present on the road, + * - 6 - `road-worker` - in case pedestrian(s) with the role of a road worker applies are present on the road, + * - 7 - `first-responder` - in case pedestrian(s) with the role of a first responder applies are present on the road, + * - 8 - `lightVruVehicle - in case light vru vehicle(s) of any type are present on the road, + * - 9 - `bicyclist ` - in case cycle(s) and their bicyclist(s) are present on the road, + * - 10 - `wheelchair-user` - in case wheelchair(s) and their user(s) are present on the road, + * - 11 - `horse-and-rider` - in case horse(s) and rider(s) are present on the road, + * - 12 - `rollerskater` - in case rolleskater(s) and skater(s) are present on the road, + * - 13 - `e-scooter` - in case e-scooter(s) and rider(s) are present on the road, + * - 14 - `personal-transporter` - in case personal-transporter(s) and rider(s) are present on the road, + * - 15 - `pedelec` - in case pedelec(s) and rider(s) are present on the road, + * - 16 - `speed-pedelec` - in case speed-pedelec(s) and rider(s) are present on the road, + * - 17 - `ptw` - in case powered-two-wheeler(s) of any type are present on the road, + * - 18 - `moped` - in case moped(s) and rider(s) are present on the road, + * - 19 - `motorcycle` - in case motorcycle(s) and rider(s) are present on the road, + * - 20 - `motorcycle-and-sidecar-right` - in case motorcycle(s) with sidecar(s) on the right and rider are present on the road, + * - 21 - `motorcycle-and-sidecar-left` - in case motorcycle(s) with sidecar(s) on the left and rider are present on the road. + * - 22-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: editorial revision in V2.1.1, named values 4-21 added in V2.2.1 + */ +HumanPresenceOnTheRoadSubCauseCode ::= INTEGER { + unavailable (0), + childrenOnRoadway (1), + cyclistOnRoadway (2), + motorcyclistOnRoadway (3), + pedestrian (4), + ordinary-pedestrian (5), + road-worker (6), + first-responder (7), + lightVruVehicle (8), + bicyclist (9), + wheelchair-user (10), + horse-and-rider (11), + rollerskater (12), + e-scooter (13), + personal-transporter (14), + pedelec (15), + speed-pedelec (16), + ptw (17), + moped (18), + motorcycle (19), + motorcycle-and-sidecar-right (20), + motorcycle-and-sidecar-left (21) +} (0..255) + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode "humanProblem". + * + * The value shall be set to: + * - 0 - `unavailable` - in case further detailed information on human health problem is unavailable, + * - 1 - `glycemiaProblem`- in case human problem is due to glycaemia problem, + * - 2 - `heartProblem` - in case human problem is due to heart problem. + * - 3-255 - reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +HumanProblemSubCauseCode ::= INTEGER { + unavailable (0), + glycemiaProblem (1), + heartProblem (2) +} (0..255) + +/** + * This DE is a general identifier. + * + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +Identifier1B ::= INTEGER (0..255) + +/** + * This DE is a general identifier. + * + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +Identifier2B ::= INTEGER (0..65535) + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `impassability` + * + * The value shall be set to: + * - 0 `unavailable` - in case further detailed information about the unmanaged road blockage is unavailable, + * - 1 `flooding ` - in case the road is affected by flooding, + * - 2 `dangerOfAvalanches` - in case the road is at risk of being affected or blocked by avalanches, + * - 3 `blastingOfAvalanches` - in case there is an active blasting of avalanches on or near the road, + * - 4 `landslips` - in case the road is affected by landslips, + * - 5 `chemicalSpillage` - in case the road is affected by chemical spillage, + * - 6 `winterClosure` - in case the road is impassable due to a winter closure. + * - 7 `sinkhole` - in case the road is impassable due to large holes in the road surface. + * - 8 `earthquakeDamage` - in case the road is obstructed or partially obstructed because of damage caused by an earthquake. + * - 9 `fallenTrees` - in case the road is obstructed or partially obstructed by one or more fallen trees. + * - 10 `rockfalls` - in case the road is obstructed or partially obstructed due to fallen rocks. + * - 11 `sewerOverflow` - in case the road is obstructed or partially obstructed by overflows from one or more sewers. + * - 12 `stormDamage` - in case the road is obstructed or partially obstructed by debris caused by strong winds. + * - 13 `subsidence` - in case the road surface has sunken or collapsed in places. + * - 14 `burstPipe` - in case the road surface has sunken or collapsed in places due to burst pipes. + * - 15 `burstWaterMain` - in case the road is obstructed due to local flooding and/or subsidence. + * - 16 `fallenPowerCables` - in case the road is obstructed or partly obstructed by one or more fallen power cables. + * - 17 `snowDrifts` - in case the road is obstructed or partially obstructed by snow drifting in progress or patches of deep snow due to earlier drifting. + * - 15-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: Created in V2.2.1 +*/ +ImpassabilitySubCauseCode ::= INTEGER { + unavailable (0), + flooding (1), + dangerOfAvalanches (2), + blastingOfAvalanches (3), + landslips (4), + chemicalSpillage (5), + winterClosure (6), + sinkhole (7), + earthquakeDamage (8), + fallenTrees (9), + rockfalls (10), + sewerOverflow (11), + stormDamage (12), + subsidence (13), + burstPipe (14), + burstWaterMain (15), + fallenPowerCables (16), + snowDrifts (17) +} (0..255) + +/** + * This DE represents the quality level of provided information. + * + * The value shall be set to: + * - `0` if the information is unavailable, + * - `1` if the quality level is lowest, + * - `n` (`n > 1` and `n < 7`) if the quality level is n, + * - `7` if the quality level is highest. + * + * @note: Definition of quality level is out of scope of the present document. + * @category: Basic information + * @revision: Editorial update in V2.1.1 + */ +InformationQuality ::= INTEGER (0..7) + +/** + * This DE defines the type of an interference management zone, so that an ITS-S can + * assert the actions to do while passing by such zone (e.g. reduce the transmit power in case of a DSRC tolling station). + * It is an extension of the type @ref ProtectedZoneType. + * + * The value shall be set to: + * - 0 - `permanentCenDsrcTolling` - as specified in ETSI TS 102 792 [14], + * - 1 - `temporaryCenDsrcTolling` - as specified in ETSI TS 102 792 [14], + * - 2 - `unavailable` - default value. Set to 2 for backwards compatibility with DSRC tolling, + * - 3 - `urbanRail` - as specified in ETSI TS 103 724 [13], clause 7, + * - 4 - `satelliteStation` - as specified in ETSI TS 103 724 [13], clause 7, + * - 5 - `fixedLinks` - as specified in ETSI TS 103 724 [13], clause 7. + * + * @category: Communication information + * @revision: Created in V2.1.1 + */ +InterferenceManagementZoneType ::= ENUMERATED { + permanentCenDsrcTolling (0), + temporaryCenDsrcTolling (1), + unavailable (2), + urbanRail (3), + satelliteStation (4), + fixedLinks (5), + ... +} + +/** + * This DE represents the vehicle type according to ISO 3833 [22]. + * A "term No" refers to the number of the corresponding term and its definition in ISO 3833. + * + * The value shall be set to: + * - 0 - `passengerCar` - term No 3.1.1 + * - 1 - `saloon` - term No 3.1.1.1 (sedan) + * - 2 - `convertibleSaloon` - term No 3.1.1.2 + * - 3 - `pullmanSaloon` - term No 3.1.1.3 + * - 4 - `stationWagon` - term No 3.1.1.4 + * - 5 - `truckStationWagon` - term No 3.1.1.4.1 + * - 6 - `coupe` - term No 3.1.1.5 (coupe) + * - 7 - `convertible` - term No 3.1.1.6 (open tourer, roadstar, spider) + * - 8 - `multipurposePassengerCar` - term No 3.1.1.7 + * - 9 - `forwardControlPassengerCar`- term No 3.1.1.8 + * - 10 - `specialPassengerCar` - term No 3.1.1.9 + * - 11 - `bus` - term No 3.1.2 + * - 12 - `minibus` - term No 3.1.2.1 + * - 13 - `urbanBus` - term No 3.1.2.2 + * - 14 - `interurbanCoach` - term No 3.1.2.3 + * - 15 - `longDistanceCoach` - term No 3.1.2.4 + * - 16 - `articulatedBus` - term No 3.1.2.5 + * - 17 - `trolleyBus ` - term No 3.1.2.6 + * - 18 - `specialBus` - term No 3.1.2.7 + * - 19 - `commercialVehicle` - term No 3.1.3 + * - 20 - `specialCommercialVehicle` - term No 3.1.3.1 + * - 21 - `specialVehicle` - term No 3.1.4 + * - 22 - `trailingTowingVehicle` - term No 3.1.5 (draw-bar tractor) + * - 23 - `semiTrailerTowingVehicle` - term No 3.1.6 (fifth wheel tractor) + * - 24 - `trailer` - term No 3.2.1 + * - 25 - `busTrailer` - term No 3.2.1.1 + * - 26 - `generalPurposeTrailer` - term No 3.2.1.2 + * - 27 - `caravan` - term No 3.2.1.3 + * - 28 - `specialTrailer` - term No 3.2.1.4 + * - 29 - `semiTrailer` - term No 3.2.2 + * - 30 - `busSemiTrailer` - term No 3.2.2.1 + * - 31 - `generalPurposeSemiTrailer` - term No 3.2.2.2 + * - 32 - `specialSemiTrailer` - term No 3.2.2.3 + * - 33 - `roadTrain` - term No 3.3.1 + * - 34 - `passengerRoadTrain` - term No 3.3.2 + * - 35 - `articulatedRoadTrain` - term No 3.3.3 + * - 36 - `doubleRoadTrain` - term No 3.3.4 + * - 37 - `compositeRoadTrain` - term No 3.3.5 + * - 38 - `specialRoadTrain` - term No 3.3.6 + * - 39 - `moped` - term No 3.4 + * - 40 - `motorCycle` - term No 3.5 + * - 41-255 - reserved for future use + * + * @category: Vehicle information + * @revision: Created in V2.1.1 + */ +Iso3833VehicleType ::= INTEGER { + passengerCar (0), + saloon (1), + convertibleSaloon (2), + pullmanSaloon (3), + stationWagon (4), + truckStationWagon (5), + coupe (6), + convertible (7), + multipurposePassengerCar (8), + forwardControlPassengerCar (9), + specialPassengerCar (10), + bus (11), + minibus (12), + urbanBus (13), + interurbanCoach (14), + longDistanceCoach (15), + articulatedBus (16), + trolleyBus (17), + specialBus (18), + commercialVehicle (19), + specialCommercialVehicle (20), + specialVehicle (21), + trailingTowingVehicle (22), + semiTrailerTowingVehicle (23), + trailer (24), + busTrailer (25), + generalPurposeTrailer (26), + caravan (27), + specialTrailer (28), + semiTrailer (29), + busSemiTrailer (30), + generalPurposeSemiTrailer (31), + specialSemiTrailer (32), + roadTrain (33), + passengerRoadTrain (34), + articulatedRoadTrain (35), + doubleRoadTrain (36), + compositeRoadTrain (37), + specialRoadTrain (38), + moped (39), + motorCycle (40) + } (0..255) + +/** + * This DE represent the identifier of an organization according to the applicable registry. + * + * @category: Basic information + * @revision: Created in V2.2.1 based on ISO 14816 [23] +*/ +IssuerIdentifier ::= INTEGER(0 .. 16383) + +/** + * This DE represents the identifier of the IVIM. + * + * @category: Basic information + * @revision: Created in V2.2.1 based on ETSI TS 103 301 [15] +*/ +IviIdentificationNumber::= INTEGER(1..32767,..., 8388607) + +/** + * This DE indicates a transversal position on the carriageway at a specific longitudinal position, in resolution of lanes of the carriageway. + * + * For right-hand traffic roads, the value shall be set to: + * - `-1` if the position is off, i.e. besides the road, + * - `0` if the position is on the inner hard shoulder, i.e. the hard should adjacent to the leftmost lane, + * - `n` (`n > 0` and `n < 14`), if the position is on the n-th driving lane counted from the leftmost lane to the rightmost lane of a specific traffic direction, + * - `14` if the position is on the outer hard shoulder, i.e. the hard should adjacent to rightmost lane (if present). + * + * For left-hand traffic roads, the value shall be set to: + * - `-1` if the position is off, i.e. besides the road, + * - `0` if the position is on the inner hard shoulder, i.e. the hard should adjacent to the rightmost lane, + * - `n` (`n > 0` and `n < 14`), if the position is on the n-th driving lane counted from the rightmost lane to the leftmost lane of a specific traffic direction, + * - `14` if the position is on the outer hard shoulder, i.e. the hard should adjacent to leftmost lane (if present). + * + * @note: in practice this means that the position is counted from "inside" to "outside" no matter which traffic practice is used. + * + * If the carriageway allows only traffic in one direction (e.g. in case of dual or multiple carriageway roads), the position is counted from the physical border of the carriageway. + * If the carriageway allows traffic in both directions and there is no physical delimitation between traffic directions (e.g. on a single carrriageway road), + * the position is counted from the legal (i.e. optical) separation between traffic directions (horizontal marking). + * + * If not indicated otherwise (by lane markings or traffic signs), the legal separation on carriageways allowing traffic on both directions is identified as follows: + * - If the total number of lanes N is even, the lanes are divided evenly between the traffic directions starting from the outside of the carriageway on both sides and the + * imaginary separation between traffic directions is on the border between the even number of lanes N/2. + * - If the total number of lanes N is odd, the lanes are divided evenly between traffic direction starting from the outside of the carriageway on both sides. + * The remaining middle lane is assigned to both traffic directions as innermost lane. + * + * @category: Road topology information + * @revision: Description of the legal separation of carriageways added in V2.2.1 +*/ +LanePosition ::= INTEGER { + offTheRoad (-1), + innerHardShoulder (0), + outerHardShoulder (14) +} (-1..14) + +/** + * This DE represents the type of a lane. + * + * The value shall be set to: + * - 0 - `traffic` - Lane dedicated to the movement of vehicles, + * - 1 - `through` - Lane dedicated to the movement of vehicles travelling ahead and not turning, + * - 2 - `reversible` - Lane where the direction of traffic can be changed to match the peak flow, + * - 3 - `acceleration` - Lane that allows vehicles entering a road to accelerate to the speed of through traffic before merging with it, + * - 4 - `deceleration` - Lane that allows vehicles exiting a road to decelerate before leaving it, + * - 5 - `leftHandTurning` - Lane reserved for slowing down and making a left turn, so as not to disrupt traffic, + * - 6 - `rightHandTurning` - Lane reserved for slowing down and making a right turn so as not to disrupt traffic, + * - 7 - `dedicatedVehicle` - Lane dedicated to movement of motor vehicles with specific characteristics, such as heavy goods vehicles, etc., + * - 8 - `bus` - Lane dedicated to movement of buses providing public transport, + * - 9 - `taxi` - Lane dedicated to movement of taxis, + * - 10 - `hov` - Carpooling lane or high occupancy vehicle lane, + * - 11 - `hot` - High occupancy vehicle lanes that is allowed to be used without meeting the occupancy criteria by paying a toll, + * - 12 - `pedestrian` - Lanes dedicated to pedestrians such as pedestrian sidewalk paths, + * - 13 - `cycleLane` - Lane dedicated to exclusive or preferred use by bicycles, + * - 14 - `median` - Lane not dedicated to movement of vehicles but representing a median / central reservation such as the central median, + separating the two directional carriageways of the highway, + * - 15 - `striping` - Lane not dedicated to movement of vehicles but covered with roadway markings, + * - 16 - `trackedVehicle` - Lane dedicated to movement of trains, trams and trolleys, + * - 17 - `parking` - Lanes dedicated to vehicles parking, stopping and loading lanes, + * - 18 - `emergency` - Lane dedicated to vehicles in breakdown or to emergency vehicles also called hard shoulder, + * - 19 - `verge` - Lane representing the verge, i.e. a narrow strip of grass or plants and sometimes also trees located between + the road surface edge and the boundary of a road, + * - 20 `minimumRiskManoeuvre` - Lane dedicated to automated vehicles making a minimum risk manoeuvre, + * - 21 `separatedCycleLane` - Lane dedicated to exclusive or preferred use by bicycles that is phyisically separated from the vehicle-traffic lanes, e.g. by a verge. + * - values 22 to 30 reserved for future use. + * + * @category: Road topology information + * @revision: Created in V2.1.1, named value 21 added in V2.2.1 +*/ +LaneType::= INTEGER{ + traffic (0), + through (1), + reversible (2), + acceleration (3), + deceleration (4), + leftHandTurning (5), + rightHandTurning (6), + dedicatedVehicle (7), + bus (8), + taxi (9), + hov (10), + hot (11), + pedestrian (12), + cycleLane (13), + median (14), + striping (15), + trackedVehicle (16), + parking (17), + emergency (18), + verge (19), + minimumRiskManoeuvre (20), + exclusiveCycleLane (21), + unknown (31) +}(0..31) + +/** + * This DE represents the width of a lane measured at a defined position. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 1022`) if the lane width information is equal to or less than n x 0,01 metre and more than (n-1) x 0,01 metre, + * - `1022` if the lane width is out of range, i.e. greater than 10,21 m, + * - `1023` if the lane width information is not available. + * + * The value 0 shall not be used. + * + * @unit: 0,01 metre + * @category: Road topology information + * @revision: Created in V2.1.1 + */ +LaneWidth::= INTEGER (0..1023) + +/** + * This DE represents the absolute geographical latitude in a WGS84 coordinate system, providing a range of 90 degrees in north or + * in south hemisphere. + * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. + * + * The value shall be set to: + * - `n` (`n >= -900 000 000` and `n < 0`) x 10^-7 degree, i.e. negative values for latitudes south of the Equator, + * - `0` is used for the latitude of the equator, + * - `n` (`n > 0` and `n < 900 000 001`) x 10^-7 degree, i.e. positive values for latitudes north of the Equator, + * - `900 000 001` when the information is unavailable. + * + * @unit: 10^-7 degree + * @category: GeoReference information + * @revision: Editorial update in V2.1.1 + */ +Latitude ::= INTEGER { + unavailable(900000001) +} (-900000000..900000001) + +/** + * This DE represents the vehicle acceleration at lateral direction in the centre of the mass of the empty vehicle. + * It corresponds to the vehicle coordinate system as specified in ISO 8855 [21]. + * + * The value shall be set to: + * - `-160` for acceleration values equal to or less than -16 m/s^2, + * - `n` (`n > -160` and `n <= 0`) to indicate that the vehicle is accelerating towards the right side with regards to the vehicle orientation + * with acceleration equal to or less than n x 0,1 m/s^2 and greater than (n-1) x 0,1 m/s^2, + * - `n` (`n > 0` and `n < 160`) to indicate that the vehicle is accelerating towards the left hand side with regards to the vehicle orientation + with acceleration equal to or less than n x 0,1 m/s^2 and greater than (n-1) x 0,1 m/s^2, + * - `160` for acceleration values greater than 15,9 m/s^2, + * - `161` when the data is unavailable. + * + * @note: the empty load vehicle is defined in ISO 1176 [8], clause 4.6. + * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationValue instead. + * + * @unit: 0,1 m/s^2 + * @category: Vehicle information + * @revision: Description updated in V2.1.1 (the meaning of 160 has changed slightly). + */ +LateralAccelerationValue ::= INTEGER { + negativeOutOfRange (-160), + positiveOutOfRange (160), + unavailable (161) +} (-160 .. 161) + +/** + * This DE indicates the status of light bar and any sort of audible alarm system besides the horn. + * This includes various common sirens as well as backup up beepers and other slow speed manoeuvring alerts. + * + * The corresponding bit shall be set to 1 under the following conditions: + * - 0 - `lightBarActivated` - when the light bar is activated, + * - 1 - `sirenActivated` - when the siren is activated. + * + * Otherwise, it shall be set to 0. + * + * @category Vehicle information + * @revision: Editorial update in V2.1.1 + */ +LightBarSirenInUse ::= BIT STRING { + lightBarActivated (0), + sirenActivated (1) +} (SIZE(2)) + +/** + * This DE represents the absolute geographical longitude in a WGS84 coordinate system, providing a range of 180 degrees + * to the east or to the west of the prime meridian. + * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. + * + * The value shall be set to: + * - `n` (`n > -1 800 000 000` and `n < 0`) x 10^-7 degree, i.e. negative values for longitudes to the west, + * - `0` to indicate the prime meridian, + * - `n` (`n > 0` and `n < 1 800 000 001`) x 10^-7 degree, i.e. positive values for longitudes to the east, + * - `1 800 000 001` when the information is unavailable. + * + * The value -1 800 000 000 shall not be used. + * + * @unit: 10^-7 degree + * @category: GeoReference information + * @revision: Description revised in V2.1.1 + */ +Longitude ::= INTEGER { + valueNotUsed (-1800000000), + unavailable (1800000001) +} (-1800000000..1800000001) + + /** + * This DE represents the vehicle acceleration at longitudinal direction in the centre of the mass of the empty vehicle. + * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11. + * + * The value shall be set to: + * - `-160` for acceleration values equal to or less than -16 m/s^2, + * - `n` (`n > -160` and `n <= 0`) to indicate that the vehicle is braking with acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2 + * - `n` (`n > 0` and `n < 160`) to indicate that the vehicle is accelerating with acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, + * - `160` for acceleration values greater than 15,9 m/s^2, + * - `161` when the data is unavailable. + * + * This acceleration is along the tangent plane of the road surface and does not include gravity components. + * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationValue instead. + * + * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6. + * @unit: 0,1 m/s^2 + * @category: Vehicle information + * @revision: description revised in V2.1.1 (the meaning of 160 has changed slightly). T + */ +LongitudinalAccelerationValue::= INTEGER { + negativeOutOfRange (-160), + positiveOutOfRange (160), + unavailable (161) +} (-160 .. 161) + +/** + * This DE represents the longitudinal offset of a map-matched position along a matched lane, beginning from the lane's starting point. + * + * The value shall be set to: + * - `n` (`n >= 0` and `n < 32766`) if the longitudinal offset information is equal to or less than n x 0,1 metre and more than (n-1) x 0,1 metre, + * - `32 766` if the longitudinal offset is out of range, i.e. greater than 3276,5 m, + * - `32 767` if the longitudinal offset information is not available. + * + * @unit 0,1 metre + * @category: GeoReference information + * @revision: Created in V2.1.1 +*/ +LongitudinalLanePositionValue ::= INTEGER { + outOfRange(32766), + unavailable(32767) +}(0..32767) + +/** + * This DE indicates the longitudinal lane position confidence value which represents the estimated accuracy of longitudinal lane position measurement with a default confidence level of 95 %. + * If required, the confidence level can be defined by the corresponding standards applying this DE. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 1 022`) if the confidence value is equal to or less than n x 0,1 m, and more than (n-1) x 0,1 m, + * - `1 022` if the confidence value is out of range i.e. greater than 102,1 m, + * - `1 023` if the confidence value is unavailable. + * + * @unit 0,1 metre + * @category: GeoReference information + * @revision: Created in V2.1.1 +*/ +LongitudinalLanePositionConfidence ::= INTEGER { + outOfRange (1022), + unavailable (1023) +} (0..1023) + +/** + * This DE indicates the components of an @ref PerceivedObject that are included in the @ref LowerTriangularPositiveSemidefiniteMatrix. + * + * The corresponding bit shall be set to 1 if the component is included: + * - 0 - `xCoordinate` - when the component xCoordinate of the component @ref CartesianPosition3dWithConfidence is included, + * - 1 - `yCoordinate` - when the component yCoordinate of the component @ref CartesianPosition3dWithConfidence is included, + * - 2 - `zCoordinate` - when the component zCoordinate of the component @ref CartesianPosition3dWithConfidence is included, + * - 3 - `xVelocityOrVelocityMagnitude` - when the component xVelocity of the component @ref VelocityCartesian or the component VelocityMagnitude of the component @ref VelocityPolarWithZ is included, + * - 4 - `yVelocityOrVelocityDirection` - when the component yVelocity of the component @ref VelocityCartesian or the component VelocityDirection of the component @ref VelocityPolarWithZ is included, + * - 5 - `zVelocity` - when the component zVelocity of the component @ref VelocityCartesian or of the component @ref VelocityPolarWithZ is included, + * - 6 - `xAccelOrAccelMagnitude` - when the component xAcceleration of the component @ref AccelerationCartesian or the component AccelerationMagnitude of the component @ref AccelerationPolarWithZ is included, + * - 7 - `yAccelOrAccelDirection` - when the component yAcceleration of the component @ref AccelerationCartesian or the component AccelerationDirection of the component @ref AccelerationPolarWithZ is included, + * - 8 - `zAcceleration` - when the component zAcceleration of the component @ref AccelerationCartesian or of the component @ref AccelerationPolarWithZ is included, + * - 9 - `zAngle` - when the component zAngle is included, + * - 10 - `yAngle` - when the component yAngle is included, + * - 11 - `xAngle` - when the component xAngle is included, + * - 12 - `zAngularVelocity` - when the component zAngularVelocity is included. + * + * Otherwise, it shall be set to 0. + * + * @category: Sensing information + * @revision: Created in V2.1.1 + */ +MatrixIncludedComponents::= BIT STRING{ + xPosition (0), + yPosition (1), + zPosition (2), + xVelocityOrVelocityMagnitude (3), + yVelocityOrVelocityDirection (4), + zSpeed (5), + xAccelOrAccelMagnitude (6), + yAccelOrAccelDirection (7), + zAcceleration (8), + zAngle (9), + yAngle (10), + xAngle (11), + zAngularVelocity (12) +} (SIZE(13,...)) + +/** + * This DE represents the type of facility layer message. + * + * The value shall be set to: + * - 1 - `denm` - for Decentralized Environmental Notification Message (DENM) as specified in ETSI EN 302 637-3 [2], + * - 2 - `cam` - for Cooperative Awareness Message (CAM) as specified in ETSI EN 302 637-2 [1], + * - 3 - `poim` - for Point of Interest message as specified in ETSI TS 103 916 [9], + * - 4 - `spatem` - for Signal Phase And Timing Extended Message (SPATEM) as specified in ETSI TS 103 301 [15], + * - 5 - `mapem` - for MAP Extended Message (MAPEM) as specified in ETSI TS 103 301 [15], + * - 6 - `ivim` - for in Vehicle Information Message (IVIM) as specified in ETSI TS 103 301 [15], + * - 7 - `rfu1` - reserved for future usage, + * - 8 - `rfu2` - reserved for future usage, + * - 9 - `srem` - for Signal Request Extended Message as specified in ETSI TS 103 301 [15], + * - 10 - `ssem` - for Signal request Status Extended Message as specified in ETSI TS 103 301 [15], + * - 11 - `evcsn` - for Electrical Vehicle Charging Spot Notification message as specified in ETSI TS 101 556-1 [9], + * - 12 - `saem` - for Services Announcement Extended Message as specified in ETSI EN 302 890-1 [17], + * - 13 - `rtcmem` - for Radio Technical Commission for Maritime Services Extended Message (RTCMEM) as specified in ETSI TS 103 301 [15], + * - 14 - `cpm` - reserved for Collective Perception Message (CPM), + * - 15 - `imzm` - for Interference Management Zone Message (IMZM) as specified in ETSI TS 103 724 [13], + * - 16 - `vam` - for Vulnerable Road User Awareness Message as specified in ETSI TS 130 300-3 [12], + * - 17 - `dsm` - reserved for Diagnosis, logging and Status Message, + * - 18 - `pcim` - reserved for Parking Control Infrastructure Message, + * - 19 - `pcvm` - reserved for Parking Control Vehicle Message, + * - 20 - `mcm` - reserved for Manoeuvre Coordination Message, + * - 21 - `pam` - reserved for Parking Availability Message, + * - 22-255 - reserved for future usage. + * + * @category: Communication information + * @revision: Created in V2.1.1 from @ref ItsPduHeader. Value 3 re-assigned to poim and value 7 and 8 reserved in V2.2.1 + */ +MessageId::= INTEGER { + denm (1), + cam (2), + poim (3), + spatem (4), + mapem (5), + ivim (6), + rfu1 (7), + rfu2 (8), + srem (9), + ssem (10), + evcsn (11), + saem (12), + rtcmem (13), + cpm (14), + imzm (15), + vam (16), + dsm (17), + pcim (18), + pcvm (19), + mcm (20), + pam (21) +} (0..255) + +/** + * This DE represents the number of occupants in a vehicle. + * + * The value shall be set to: + * - `n` (`n >= 0` and `n < 126`) for the number n of occupants, + * - `126` for values equal to or higher than 125, + * - `127` if information is not available. + * + * @unit: 1 person + * @category: Vehicle information + * @revision: Editorial update in V2.1.1 + */ +NumberOfOccupants ::= INTEGER { + outOfRange (126), + unavailable (127) +} (0 .. 127) + +/** + * This DE represents a single-value indication about the overall information quality of a perceived object. + * + * The value shall be set to: + * - `0` : if there is no confidence in detected object, e.g. for "ghost"-objects or if confidence could not be computed, + * - `n` (`n > 0` and `n < 15`) : for the applicable confidence value, + * - `15` : if there is full confidence in the detected Object. + * + * @unit n/a + * @category: Sensing information + * @revision: Created in V2.1.1 +*/ +ObjectPerceptionQuality ::= INTEGER { + noConfidence (0), + fullConfidence (15) +} (0..15) + +/** + * This DE represents a single dimension of an object. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 255`) if the accuracy is equal to or less than n x 0,1 m, and more than (n-1) x 0,1 m, + * - `255` if the accuracy is out of range i.e. greater than 25,4 m, + * - `256` if the data is unavailable. + * + * @unit 0,1 m + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +ObjectDimensionValue ::= INTEGER { + outOfRange (255), + unavailable (256) +}(1..256) + +/** + * This DE indicates the object dimension confidence value which represents the estimated absolute accuracy of an object dimension value with a default confidence level of 95 %. + * If required, the confidence level can be defined by the corresponding standards applying this DE. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 31`) if the confidence value is equal to or less than n x 0,1 metre, and more than (n-1) x 0,1 metre, + * - `31` if the confidence value is out of range i.e. greater than 3,0 m, + * - `32` if the confidence value is unavailable. + * + * @unit 0,1 m + * @category: Sensing information + * @revision: Created in V2.1.1 +*/ +ObjectDimensionConfidence ::= INTEGER { + outOfRange (31), + unavailable (32) +} (1..32) + +/** + * This DE indicates the face or part of a face of a solid object. + * + * The object is modelled as a rectangular prism that has a length that is greater than its width, with the faces of the object being defined as: + * - front: the face defined by the prism's width and height, and which is the first face in direction of longitudinal movement of the object, + * - back: the face defined by the prism's width and height, and which is the last face in direction of longitudinal movement of the object, + * - side: the faces defined by the prism's length and height with "left" and "right" defined by looking at the front face and "front" and "back" defined w.r.t to the front and back faces. + * + * Note: It is permissible to derive the required object dimensions and orientation from models to provide a best guess. + * + * @category: Basic information + * @revision: V2.1.1 +*/ +ObjectFace ::= ENUMERATED { + front (0), + sideLeftFront (1), + sideLeftBack (2), + sideRightFront (3), + sideRightBack (4), + back (5) +} + +/** + * This DE represents a time period to describe the opening days and hours of a Point of Interest. + * (for example local commerce). + * + * @category: Basic information + * @revision: V1.3.1 + */ +OpeningDaysHours ::= UTF8String + +/** + * The DE represents an ordinal number that indicates the position of an element in a set. + * + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +OrdinalNumber1B ::= INTEGER(0..255) + + +/** + * The DE represents an ordinal number that indicates the position of an element in a set. + * + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +OrdinalNumber3b ::= INTEGER(1..8) + +/** + * This DE indicates the subclass of a detected object for @ref ObjectClass "otherSubclass". + * + * The value shall be set to: + * - `0` - unknown - if the subclass is unknown. + * - `1` - singleObject - if the object is a single object. + * - `2` - multipleObjects - if the object is a group of multiple objects. + * - `3` - bulkMaterial - if the object is a bulk material. + * + * @category: Sensing information + * @revision: Created in V2.1.1 + */ +OtherSubClass ::= INTEGER { + unknown (0), + singleObject (1), + multipleObjects (2), + bulkMaterial (3) +} (0..255) + +/** + * This DE represents the recorded or estimated travel time between a position and a predefined reference position. + * + * @unit 0,01 second + * @category: Basic information + * @revision: V1.3.1 + */ +PathDeltaTime ::= INTEGER (1..65535, ...) + +/** + * This DE indicates an ordinal number that represents the position of a component in the list of @ref Traces or @ref TracesExtended. + * + * The value shall be set to: + * - `0` - noPath - if no path is identified + * - `1..7` - for instances 1..7 of @ref Traces + * - `8..14` - for instances 1..7 of @ref TracesExtended. + * + * @category: Road topology information + * @revision: Created in V2.2.1 +*/ +PathId ::= INTEGER { + noPath (0), + path1 (1), + path2 (2), + path3 (3), + path4 (4), + path5 (5), + path6 (6), + path7 (7), + pathExtended1 (8), + pathExtended2 (9), + pathExtended3 (10), + pathExtended4 (11), + pathExtended5 (12), + pathExtended6 (13), + pathExtended7 (14) +} (0..14) + +/** + * This DE denotes the ability of an ITS-S to provide up-to-date information. + * A performance class value is used to describe age of data. The exact values are out of scope of the present document. + * + * The value shall be set to: + * - `0` if the performance class is unknown, + * - `1` for performance class A as defined in ETSI TS 101 539-1 [5], + * - `2` for performance class B as defined in ETSI TS 101 539-1 [5], + * - 3-7 reserved for future use. + * + * @category: Vehicle information + * @revision: Editorial update in V2.1.1 + */ +PerformanceClass ::= INTEGER { + unavailable (0), + performanceClassA (1), + performanceClassB (2) +} (0..7) + +/** + * This DE represents a telephone number + * + * @category: Basic information + * @revision: V1.3.1 + */ +PhoneNumber ::= NumericString (SIZE(1..16)) + +/** + * This DE indicates the perpendicular distance from the centre of mass of an empty load vehicle to the front line of + * the vehicle bounding box of the empty load vehicle. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 62`) for any aplicable value n between 0,1 metre and 6,2 metres, + * - `62` for values equal to or higher than 6.1 metres, + * - `63` if the information is unavailable. + * + * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6. + * + * @unit 0,1 metre + * @category Vehicle information + * @revision: description revised in V2.1.1 (the meaning of 62 has changed slightly) + */ +PosCentMass ::= INTEGER { + tenCentimetres (1), + outOfRange (62), + unavailable (63) +} (1..63) + +/** + * This DE indicates the positioning technology being used to estimate a geographical position. + * + * The value shall be set to: + * - 0 `noPositioningSolution` - no positioning solution used, + * - 1 `sGNSS` - Global Navigation Satellite System used, + * - 2 `dGNSS` - Differential GNSS used, + * - 3 `sGNSSplusDR` - GNSS and dead reckoning used, + * - 4 `dGNSSplusDR` - Differential GNSS and dead reckoning used, + * - 5 `dR` - dead reckoning used, + * - 6 `manuallyByOperator` - position set manually by a human operator. + * + * @category: GeoReference information + * @revision: V1.3.1, extension with value 6 added in V2.2.1 + */ +PositioningSolutionType ::= ENUMERATED { + noPositioningSolution (0), + sGNSS (1), + dGNSS (2), + sGNSSplusDR (3), + dGNSSplusDR (4), + dR (5), + ..., + manuallyByOperator (6) +} + +/** + * This DE indicates whether a passenger seat is occupied or whether the occupation status is detectable or not. + * + * The number of row in vehicle seats layout is counted in rows from the driver row backwards from front to the rear + * of the vehicle. + * The left side seat of a row refers to the left hand side seen from vehicle rear to front. + * Additionally, a bit is reserved for each seat row, to indicate if the seat occupation of a row is detectable or not, + * i.e. `row1NotDetectable (3)`, `row2NotDetectable(8)`, `row3NotDetectable(13)` and `row4NotDetectable(18)`. + * Finally, a bit is reserved for each row seat to indicate if the seat row is present or not in the vehicle, + * i.e. `row1NotPresent (4)`, `row2NotPresent (9)`, `row3NotPresent(14)`, `row4NotPresent(19)`. + * + * When a seat is detected to be occupied, the corresponding seat occupation bit shall be set to `1`. + * For example, when the row 1 left seat is occupied, `row1LeftOccupied(0)` bit shall be set to `1`. + * When a seat is detected to be not occupied, the corresponding seat occupation bit shall be set to `0`. + * Otherwise, the value of seat occupation bit shall be set according to the following conditions: + * - If the seat occupation of a seat row is not detectable, the corresponding bit shall be set to `1`. + * When any seat row not detectable bit is set to `1`, all corresponding seat occupation bits of the same row + * shall be set to `1`. + * - If the seat row is not present, the corresponding not present bit of the same row shall be set to `1`. + * When any of the seat row not present bit is set to `1`, the corresponding not detectable bit for that row + * shall be set to `1`, and all the corresponding seat occupation bits in that row shall be set to `0`. + * + * @category: Vehicle information + * @revision: V1.3.1 + */ +PositionOfOccupants ::= BIT STRING { + row1LeftOccupied (0), + row1RightOccupied (1), + row1MidOccupied (2), + row1NotDetectable (3), + row1NotPresent (4), + row2LeftOccupied (5), + row2RightOccupied (6), + row2MidOccupied (7), + row2NotDetectable (8), + row2NotPresent (9), + row3LeftOccupied (10), + row3RightOccupied (11), + row3MidOccupied (12), + row3NotDetectable (13), + row3NotPresent (14), + row4LeftOccupied (15), + row4RightOccupied (16), + row4MidOccupied (17), + row4NotDetectable (18), + row4NotPresent (19) +} (SIZE(20)) + +/** + * This DE indicates the perpendicular distance between the vehicle front line of the bounding box and the front wheel axle in 0,1 metre. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 19`) for any aplicable value between 0,1 metre and 1,9 metres, + * - `19` for values equal to or higher than 1.8 metres, + * - `20` if the information is unavailable. + * + * @category: Vehicle information + * @unit 0,1 metre + * @revision: description revised in V2.1.1 (the meaning of 19 has changed slightly) + */ +PosFrontAx ::= INTEGER { + outOfRange (19), + unavailable(20) +} (1..20) + +/** + * This DE represents a position along a single dimension such as the middle of a road or lane, measured as an offset from an externally defined starting point, + * in direction of an externally defined reference direction. + * + * The value shall be set to: + * - `n` (`n >= -8190` and `n < 0`) if the position is equal to or less than n x 1 metre and more than (n-1) x 1 metre, in opposite direction of the reference direction, + * - `0` if the position is at the starting point, + * - `n` (`n > 0` and `n < 8190`) if the position is equal to or less than n x 1 metre and more than (n-1) x 1 metre, in the same direction as the reference direction, + * - `8 190` if the position is out of range, i.e. equal to or greater than 8 189 m, + * - `8 191` if the position information is not available. + * + * @unit 1 metre + * @category: GeoReference information + * @revision: Created in V2.2.1 + */ +Position1d ::= INTEGER { + outOfRange(8190), + unavailable(8191) +}(-8190..8191) + +/** + * This DE represents the distance from the centre of vehicle front bumper to the right or left longitudinal carrier of vehicle. + * The left/right carrier refers to the left/right as seen from a passenger sitting in the vehicle. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 126`) for any aplicable value between 0,01 metre and 1,26 metres, + * - `126` for values equal to or higher than 1.25 metres, + * - `127` if the information is unavailable. + * + * @unit 0,01 metre + * @category Vehicle information + * @revision: description revised in V2.1.1 (the meaning of 126 has changed slightly) + */ +PosLonCarr ::= INTEGER { + outOfRange (126), + unavailable (127) +} (1..127) + +/** + * This DE represents the perpendicular inter-distance of neighbouring pillar axis of vehicle starting from the + * middle point of the front line of the vehicle bounding box. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 29`) for any aplicable value between 0,1 metre and 2,9 metres, + * - `29` for values equal to or greater than 2.8 metres, + * - `30` if the information is unavailable. + * + * @unit 0,1 metre + * @category Vehicle information + * @revision: description revised in V2.1.1 (the meaning of 29 has changed slightly) + */ +PosPillar ::= INTEGER { + outOfRange (29), + unavailable (30) +} (1..30) + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `postCrash` . + * + * The value shall be set to: + * - 0 `unavailable` - in case further detailed information on post crash event is unavailable, + * - 1 `accidentWithoutECallTriggered` - in case no eCall has been triggered for an accident, + * - 2 `accidentWithECallManuallyTriggered` - in case eCall has been manually triggered and transmitted to eCall back end, + * - 3 `accidentWithECallAutomaticallyTriggered` - in case eCall has been automatically triggered and transmitted to eCall back end, + * - 4 `accidentWithECallTriggeredWithoutAccessToCellularNetwork` - in case eCall has been triggered but cellular network is not accessible from triggering vehicle. + * - 5-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +PostCrashSubCauseCode ::= INTEGER { + unavailable (0), + accidentWithoutECallTriggered (1), + accidentWithECallManuallyTriggered (2), + accidentWithECallAutomaticallyTriggered (3), + accidentWithECallTriggeredWithoutAccessToCellularNetwork (4) +} (0..255) + +/** +* This DE represent the total amount of rain falling during one hour. It is measured in mm per hour at an area of 1 square metre. +* +* The following values are specified: +* - `n` (`n > 0` and `n < 2000`) if the amount of rain falling is equal to or less than n x 0,1 mm/h and greater than (n-1) x 0,1 mm/h, +* - `2000` if the amount of rain falling is greater than 199.9 mm/h, +* - `2001` if the information is not available. +* +* @unit: 0,1 mm/h +* @category: Basic Information +* @revision: created in V2.1.1 +*/ +PrecipitationIntensity ::= INTEGER { + outOfRange (2000), + unavailable (2001) +} (1..2001) + +/** + * This DE represents the indentifier of a protected communication zone. + * + * + * @category: Infrastructure information, Communication information + * @revision: Revision in V2.1.1 (changed name from ProtectedZoneID to ProtectedZoneId) + */ +ProtectedZoneId ::= INTEGER (0.. 134217727) + +/** + * This DE represents the radius of a protected communication zone. + * + * + * @unit: metre + * @category: Infrastructure information, Communication information + * @revision: V1.3.1 + */ +ProtectedZoneRadius ::= INTEGER (1..255,...) + +/** + * This DE indicates the type of a protected communication zone, so that an ITS-S is aware of the actions to do + * while passing by such zone (e.g. reduce the transmit power in case of a DSRC tolling station). + * + * The protected zone type is defined in ETSI TS 102 792 [14]. + * + * + * @category: Communication information + * @revision: V1.3.1 + */ +ProtectedZoneType::= ENUMERATED { + permanentCenDsrcTolling (0), + ..., + temporaryCenDsrcTolling (1) +} + +/** + * This DE is used for various tasks in the public transportation environment, especially for controlling traffic + * signal systems to prioritize and speed up public transportation in urban area (e.g. intersection "_bottlenecks_"). + * The traffic lights may be controlled by an approaching bus or tram automatically. This permits "_In Time_" activation + * of the green phase, will enable the individual traffic to clear a potential traffic jam in advance. Thereby the + * approaching bus or tram may pass an intersection with activated green light without slowing down the speed due to + * traffic congestion. Other usage of the DE is the provision of information like the public transport line number + * or the schedule delay of a public transport vehicle. + * + * @category: Vehicle information + * @revision: V1.3.1 + */ +PtActivationData ::= OCTET STRING (SIZE(1..20)) + +/** + * This DE indicates a certain coding type of the PtActivationData data. + * + * The folowing value are specified: + * - 0 `undefinedCodingType` : undefined coding type, + * - 1 `r09-16CodingType` : coding of PtActivationData conform to VDV recommendation 420 [7], + * - 2 `vdv-50149CodingType` : coding of PtActivationData based on VDV recommendation 420 [7]. + * - 3 - 255 : reserved for alternative and future use. + * + * @category: Vehicle information + * @revision: V1.3.1 + */ +PtActivationType ::= INTEGER { + undefinedCodingType (0), + r09-16CodingType (1), + vdv-50149CodingType (2) +} (0..255) + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `railwayLevelCrossing` . + * + * The value shall be set to: + * - 0 `unavailable` - in case no further detailed information on the railway level crossing status is available, + * - 1 `doNotCrossAbnormalSituation` - in case when something wrong is detected by equation or sensors of the railway level crossing, + including level crossing is closed for too long (e.g. more than 10 minutes long ; default value), + * - 2 `closed` - in case the crossing is closed (barriers down), + * - 3 `unguarded` - in case the level crossing is unguarded (i.e a Saint Andrew cross level crossing without detection of train), + * - 4 `nominal` - in case the barriers are up and lights are off. + * - 5-255: reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +RailwayLevelCrossingSubCauseCode ::= INTEGER { + unavailable (0), + doNotCrossAbnormalSituation (1), + closed (2), + unguarded (3), + nominal (4) +} (0..255) + +/** + * This DE describes a distance of relevance for information indicated in a message. + * + * The value shall be set to: + * - 0 `lessThan50m` - for distances below 50 m, + * - 1 `lessThan100m` - for distances below 100 m, + * - 2 `lessThan200m` - for distances below 200 m, + * - 3 `lessThan500m` - for distances below 300 m, + * - 4 `lessThan1000m` - for distances below 1 000 m, + * - 5 `lessThan5km` - for distances below 5 000 m, + * - 6 `lessThan10km` - for distances below 10 000 m, + * - 7 `over10km` - for distances over 10 000 m. + * + * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref StandardLength3b instead. + * + * @category: GeoReference information + * @revision: Editorial update in V2.1.1 + */ +RelevanceDistance ::= ENUMERATED { + lessThan50m(0), + lessThan100m(1), + lessThan200m(2), + lessThan500m(3), + lessThan1000m(4), + lessThan5km(5), + lessThan10km(6), + over10km(7) +} + +/** + * This DE indicates a traffic direction that is relevant to information indicated in a message. + * + * The value shall be set to: + * - 0 `allTrafficDirections` - for all traffic directions, + * - 1 `upstreamTraffic` - for upstream traffic, + * - 2 `downstreamTraffic` - for downstream traffic, + * - 3 `oppositeTraffic` - for traffic in the opposite direction. + * + * The terms `upstream`, `downstream` and `oppositeTraffic` are relative to the event position. + * + * @note: Upstream traffic corresponds to the incoming traffic towards the event position, + * and downstream traffic to the departing traffic away from the event position. + * + * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref TrafficDirection instead. + * + * @category: GeoReference information + * @revision: Editorial update in V2.1.1 + */ +RelevanceTrafficDirection ::= ENUMERATED { + allTrafficDirections(0), + upstreamTraffic(1), + downstreamTraffic(2), + oppositeTraffic(3) +} + +/** + * This DE indicates whether an ITS message is transmitted as request from ITS-S or a response transmitted from + * ITS-S after receiving request from other ITS-Ss. + * + * The value shall be set to: + * - 0 `request` - for a request message, + * - 1 `response` - for a response message. + * + * @category Communication information + * @revision: Editorial update in V2.1.1 + */ +RequestResponseIndication ::= ENUMERATED { + request (0), + response (1) +} + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `rescueAndRecoveryWorkInProgress` + * + * The value shall be set to: + * - 0 `unavailable` - in case further detailed information on rescue and recovery work is unavailable, + * - 1 `emergencyVehicles` - in case rescue and/or safeguarding work is ongoing by emergency vehicles, i.e. by vehicles that have the absolute right of way, + * - 2 `rescueHelicopterLanding` - in case rescue helicopter is landing, + * - 3 `policeActivityOngoing` - in case police activity is ongoing (only to be used if a more specific sub cause than (1) is needed), + * - 4 `medicalEmergencyOngoing` - in case medical emergency recovery is ongoing (only to be used if a more specific sub cause than (1) is needed), + * - 5 `childAbductionInProgress` - in case a child kidnapping alarm is activated and rescue work is ongoing (only to be used if a more specific sub cause than (1) is needed), + * - 6 `prioritizedVehicle` - in case rescue and/or safeguarding work is ongoing by prioritized vehicles, i.e. by vehicles that have priority but not the absolute right of way, + * - 7 `rescueAndRecoveryVehicle` - in case technical rescue work is ongoing by rescue and recovery vehicles. + * - 8-255: reserved for future usage. + + * + * @category: Traffic information + * @revision: V1.3.1, named values 6 and 7 added in V2.2.1 + */ +RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER { + unavailable (0), + emergencyVehicles (1), + rescueHelicopterLanding (2), + policeActivityOngoing (3), + medicalEmergencyOngoing (4), + childAbductionInProgress (5), + prioritizedVehicle (6), + rescueAndRecoveryVehicle (7) +} (0..255) + + +/** + * This DE indicates an ordinal number that represents the position of a component in the list @ref RoadConfigurationSectionList. + * + * The value shall be set to: + * - `0` - if no road section is identified + * - `1..8` - for instances 1..8 of @ref RoadConfigurationSectionList + * + * @category: Road topology information + * @revision: Created in V2.2.1 +*/ + +RoadSectionId::= INTEGER (0..8, ...) + +/** + * This DE indicates the type of a road segment. + * + * The value shall be set to: + * - 0 `urban-NoStructuralSeparationToOppositeLanes` - for an urban road with no structural separation between lanes carrying traffic in opposite directions, + * - 1 `urban-WithStructuralSeparationToOppositeLanes` - for an urban road with structural separation between lanes carrying traffic in opposite directions, + * - 2 `nonUrban-NoStructuralSeparationToOppositeLanes` - for an non urban road with no structural separation between lanes carrying traffic in opposite directions, + * - 3 `nonUrban-WithStructuralSeparationToOppositeLanes` - for an non urban road with structural separation between lanes carrying traffic in opposite directions. + * + * @category: Road Topology Information + * @revision: Editorial update in V2.1.1 + */ +RoadType ::= ENUMERATED { + urban-NoStructuralSeparationToOppositeLanes (0), + urban-WithStructuralSeparationToOppositeLanes (1), + nonUrban-NoStructuralSeparationToOppositeLanes (2), + nonUrban-WithStructuralSeparationToOppositeLanes (3) +} + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `roadworks`. + * +The value shall be set to: + * - 0 `unavailable` - in case further detailed information on roadworks is unavailable, + * - 1 `majorRoadworks` - in case a major roadworks is ongoing, + * - 2 `roadMarkingWork` - in case a road marking work is ongoing, + * - 3 `slowMovingRoadMaintenance` - in case slow moving road maintenance work is ongoing, + * - 4 `shortTermStationaryRoadworks`- in case a short term stationary roadwork is ongoing, + * - 5 `streetCleaning` - in case a vehicle street cleaning work is ongoing, + * - 6 `winterService` - in case winter service work is ongoing. + * - 7-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +RoadworksSubCauseCode ::= INTEGER { + unavailable (0), + majorRoadworks (1), + roadMarkingWork (2), + slowMovingRoadMaintenance (3), + shortTermStationaryRoadworks (4), + streetCleaning (5), + winterService (6) +} (0..255) + +/** + * This DE indicates if a distance is safe. + * + * The value shall be set to: + * - `FALSE` if the triple {LaD, LoD, VD} < {MSLaD, MSLoD, MSVD} is simultaneously satisfied with confidence level of 90 % or more, + * - `TRUE` otherwise. + * + * @note: the abbreviations used are Lateral Distance (LaD), Longitudinal Distance (LoD) and Vertical Distance (VD) + * and their respective thresholds, Minimum Safe Lateral Distance (MSLaD), Minimum Safe Longitudinal Distance (MSLoD), and Minimum Safe Vertical Distance (MSVD). + * + * @category: Traffic information, Kinematic information + * @revision: created in V2.1.1 +*/ +SafeDistanceIndicator::= BOOLEAN + +/** + * This DE indicates the horizontal position confidence value which represents the estimated absolute position accuracy, in one of the axis direction as defined in a shape of ellipse with a + * confidence level of 95 %. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 4 094`) if the accuracy is equal to or less than n * 0,01 metre, + * - `4 094` if the accuracy is out of range, i.e. greater than 4,093 m, + * - `4 095` if the accuracy information is unavailable. + * + * The value 0 shall not be used. + * + * @note: The fact that a position coordinate value is received with confidence value set to `unavailable(4095)`. + * can be caused by several reasons, such as: + * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, + * - the sensor cannot calculate the accuracy due to lack of variables, or + * - there has been a vehicle bus (e.g. CAN bus) error. + * In all 3 cases above, the position coordinate value may be valid and used by the application. + * If a position coordinate value is received and its confidence value is set to `outOfRange(4094)`, it means that + * the position coordinate value is not valid and therefore cannot be trusted. Such value is not useful + * for the application. + + * @unit 0,01 metre + * @category: GeoReference Information + * @revision: Description revised in V2.1.1 + */ +SemiAxisLength ::= INTEGER{ + doNotUse (0), + outOfRange (4094), + unavailable (4095) +} (0..4095) + +/** + * This DE indicates the type of sensor. + * + * The value shall be set to: + * - 0 `undefined` - in case the sensor type is undefined. + * - 1 `radar` - in case the sensor is a radar, + * - 2 `lidar` - in case the sensor is a lidar, + * - 3 `monovideo` - in case the sensor is mono video, + * - 4 `stereovision` - in case the sensor is stereo vision, + * - 5 `nightvision` - in case the sensor is night vision, + * - 6 `ultrasonic` - in case the sensor is ultrasonic, + * - 7 `pmd` - in case the sensor is photonic mixing device, + * - 8 `inductionLoop` - in case the sensor is an induction loop, + * - 9 `sphericalCamera` - in case the sensor is a spherical camera, + * - 10 `uwb` - in case the sensor is ultra wide band, + * - 11 `acoustic` - in case the sensor is acoustic, + * - 12 `localAggregation` - in case the information is provided by a system that aggregates information from different local sensors. Aggregation may include fusion, + * - 13 `itsAggregation` - in case the information is provided by a system that aggregates information from other received ITS messages. + * - 14-31 - are reserved for future usage. + * + * @category: Sensing Information + * @revision: created in V2.1.1 +*/ +SensorType ::= INTEGER { + undefined (0), + radar (1), + lidar (2), + monovideo (3), + stereovision (4), + nightvision (5), + ultrasonic (6), + pmd (7), + inductionLoop (8), + sphericalCamera (9), + uwb (10), + acoustic (11), + localAggregation (12), + itsAggregation (13) +} (0..31) + +/** + * This DE indicates the type of sensor(s). + * The corresponding bit shall be set to 1 under the following conditions: + * + * - 0 `undefined` - in case the sensor type is undefined. + * - 1 `radar` - in case the sensor is a radar, + * - 2 `lidar` - in case the sensor is a lidar, + * - 3 `monovideo` - in case the sensor is mono video, + * - 4 `stereovision` - in case the sensor is stereo vision, + * - 5 `nightvision` - in case the sensor is night vision, + * - 6 `ultrasonic` - in case the sensor is ultrasonic, + * - 7 `pmd` - in case the sensor is photonic mixing device, + * - 8 `inductionLoop` - in case the sensor is an induction loop, + * - 9 `sphericalCamera` - in case the sensor is a spherical camera, + * - 10 `uwb` - in case the sensor is ultra wide band, + * - 11 `acoustic` - in case the sensor is acoustic, + * - 12 `localAggregation` - in case the information is provided by a system that aggregates information from different local sensors. Aggregation may include fusion, + * - 13 `itsAggregation` - in case the information is provided by a system that aggregates information from other received ITS messages. + * - 14-15 - are reserved for future usage. + * + * @note: If all bits are set to 0, then no sensor type is used + * + * @category: Sensing Information + * @revision: created in V2.2.1 +*/ +SensorTypes ::= BIT STRING { + undefined (0), + radar (1), + lidar (2), + monovideo (3), + stereovision (4), + nightvision (5), + ultrasonic (6), + pmd (7), + inductionLoop (8), + sphericalCamera (9), + uwb (10), + acoustic (11), + localAggregation (12), + itsAggregation (13) +} (SIZE (16,... )) + +/** + * This DE represents a sequence number. + * + * @category: Basic information + * @revision: V1.3.1 + */ +SequenceNumber ::= INTEGER (0..65535) + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `signalViolation`. + * + * The value shall be set to: + * - 0 `unavailable` - in case further detailed information on signal violation event is unavailable, + * - 1 `stopSignViolation` - in case a stop sign violation is detected, + * - 2 `trafficLightViolation` - in case a traffic light violation is detected, + * - 3 `turningRegulationViolation`- in case a turning regulation violation is detected. + * - 4-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +SignalViolationSubCauseCode ::= INTEGER { + unavailable (0), + stopSignViolation (1), + trafficLightViolation (2), + turningRegulationViolation (3) +} (0..255) + +/** + * This DE represents the sub cause codes of the @ref CauseCode "slowVehicle". + * + * The value shall be set to: + * - 0 `unavailable` - in case further detailed information on slow vehicle driving event is + * unavailable, + * - 1 `maintenanceVehicle` - in case of a slow driving maintenance vehicle on the road, + * - 2 `vehiclesSlowingToLookAtAccident`- in case vehicle is temporally slowing down to look at accident, spot, etc., + * - 3 `abnormalLoad` - in case an abnormal loaded vehicle is driving slowly on the road, + * - 4 `abnormalWideLoad` - in case an abnormal wide load vehicle is driving slowly on the road, + * - 5 `convoy` - in case of slow driving convoy on the road, + * - 6 `snowplough` - in case of slow driving snow plough on the road, + * - 7 `deicing` - in case of slow driving de-icing vehicle on the road, + * - 8 `saltingVehicles` - in case of slow driving salting vehicle on the road. + * - 9-255 - are reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +SlowVehicleSubCauseCode ::= INTEGER { + unavailable (0), + maintenanceVehicle (1), + vehiclesSlowingToLookAtAccident (2), + abnormalLoad (3), + abnormalWideLoad (4), + convoy (5), + snowplough (6), + deicing (7), + saltingVehicles (8) +} (0..255) + +/** + * The DE indicates if a vehicle is carrying goods in the special transport conditions. + * + * The corresponding bit shall be set to 1 under the following conditions: + * - 0 `heavyLoad` - the vehicle is carrying goods with heavy load, + * - 1 `excessWidth` - the vehicle is carrying goods in excess of width, + * - 2 `excessLength` - the vehicle is carrying goods in excess of length, + * - 3 `excessHeight` - the vehicle is carrying goods in excess of height. + * + * Otherwise, the corresponding bit shall be set to 0. + * @category Vehicle information + * @revision: Description revised in V2.1.1 + */ +SpecialTransportType ::= BIT STRING { + heavyLoad (0), + excessWidth (1), + excessLength (2), + excessHeight (3) +} (SIZE(4)) + +/** + * This DE indicates the speed confidence value which represents the estimated absolute accuracy of a speed value with a default confidence level of 95 %. + * If required, the confidence level can be defined by the corresponding standards applying this DE. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 126`) if the confidence value is equal to or less than n * 0,01 m/s. + * - `126` if the confidence value is out of range, i.e. greater than 1,25 m/s, + * - `127` if the confidence value information is not available. + * + * @note: The fact that a speed value is received with confidence value set to `unavailable(127)` can be caused by several reasons, such as: + * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, + * - the sensor cannot calculate the accuracy due to lack of variables, or + * - there has been a vehicle bus (e.g. CAN bus) error. + * In all 3 cases above, the speed value may be valid and used by the application. + * + * @note: If a speed value is received and its confidence value is set to `outOfRange(126)`, it means that the speed value is not valid + * and therefore cannot be trusted. Such is not useful for the application. + * + * @unit: 0,01 m/s + * @category: Vehicle information + * @revision: Description revised in V2.1.1 + */ +SpeedConfidence ::= INTEGER { + outOfRange (126), + unavailable (127) +} (1..127) + +/** + * This DE represents a speed limitation applied to a geographical position, a road section or a geographical region. + * + * @unit: km/h + * @category: Infrastructure information, Traffic information + * @revision: V1.3.1 + */ +SpeedLimit ::= INTEGER (1..255) + +/** + * This DE represents a speed value, i.e. the magnitude of the velocity-vector. + * + * The value shall be set to: + * - `0` in a standstill situation. + * - `n` (`n > 0` and `n < 16 382`) if the applicable value is equal to or less than n x 0,01 m/s, and greater than (n-1) x 0,01 m/s, + * - `16 382` for speed values greater than 163,81 m/s, + * - `16 383` if the speed accuracy information is not available. + * + * @note: the definition of standstill is out of scope of the present document. + * + * @unit: 0,01 m/s + * @category: Kinematic information + * @revision: Description revised in V2.1.1 (the meaning of 16382 has changed slightly) +*/ +SpeedValue ::= INTEGER { + standstill (0), + outOfRange (16382), + unavailable (16383) +} (0..16383) + +/** + * This DE indicates the type of stored information. + * + * The corresponding bit shall be set to 1 under the following conditions: + * + * - `0` undefined - in case the stored information type is undefined. + * - `1` staticDb - in case the stored information type is a static database. + * - `2` dynamicDb - in case the stored information type is a dynamic database + * - `3` realTimeDb - in case the stored information type is a real time updated database. + * - `4` map - in case the stored information type is a road topology map. + * - Bits 5 to 7 - are reserved for future use. + * + * @note: If all bits are set to 0, then no stored information type is used + * + * @category: Basic Information + * @revision: created in V2.2.1 +*/ +StoredInformationType::= BIT STRING { + undefined (0), + staticDb (1), + dynamicDb (2), + realTimeDb (3), + map (4) +} (SIZE (8,... )) + +/** + * This DE represents the value of a velocity component in a defined coordinate system. + * + * The value shall be set to: + * - `-16 383` if the velocity is equal to or smaller than -163,83 m/s, + * - `n` (`n > -16 383` and `n < 16 382`) if the applicable value is equal to or less than n x 0,01 m/s, and greater than (n-1) x 0,01 m/s, + * - `16 382` for velocity values equal to or greater than 163,81 m/s, + * - `16 383` if the velocity information is not available. + * + * @unit: 0,01 m/s + * @category: Kinematic information + * @revision: Created in V2.1.1 +*/ +VelocityComponentValue ::= INTEGER { + negativeOutOfRange (-16383), + positiveOutOfRange (16382), + unavailable (16383) +} (-16383..16383) + + +/** + * This DE indicates the estimated probability of a stability level and conversely also the probability of a stability loss. + * + * The value shall be set to: + * - `0` to indicate an estimated probability of a loss of stability of 0 %, i.e. "stable", + * - `n` (`n > 0` and `n < 50`) to indicate the actual stability level, + * - `50` to indicate a estimated probability of a loss of stability of 100 %, i.e. "total loss of stability", + * - the values between 51 and 62 are reserved for future use, + * - `63`: this value indicates that the information is unavailable. + * + * @unit: 2 % + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +StabilityLossProbability ::= INTEGER { + stable (0), + totalLossOfStability (50), + unavailable (63) +} (0..63) + +/** + * The DE represents length as a measure of distance between points or as a dimension of an object or shape. + * + * @unit: 0,1 metre + * @category: Basic information + * @revision: Created in V2.1.1 + */ +StandardLength12b::= INTEGER (0..4095) + +/** + * The DE represents length as a measure of distance between points. + * + * The value shall be set to: + * - 0 `lessThan50m` - for distances below 50 m, + * - 1 `lessThan100m` - for distances below 100 m, + * - 2 `lessThan200m` - for distances below 200 m, + * - 3 `lessThan500m` - for distances below 300 m, + * - 4 `lessThan1000m` - for distances below 1 000 m, + * - 5 `lessThan5km` - for distances below 5 000 m, + * - 6 `lessThan10km` - for distances below 10 000 m, + * - 7 `over10km` - for distances over 10 000 m. + * + * @category: GeoReference information + * @revision: Created in V2.1.1 from RelevanceDistance + */ +StandardLength3b ::= ENUMERATED { + lessThan50m (0), + lessThan100m (1), + lessThan200m (2), + lessThan500m (3), + lessThan1000m (4), + lessThan5km (5), + lessThan10km (6), + over10km (7) +} + +/** + * The DE represents length as a measure of distance between points or as a dimension of an object. + * + * @unit: 0,1 metre + * @category: Basic information + * @revision: Created in V2.1.1 + */ +StandardLength9b::= INTEGER (0..511) + +/** + * The DE represents length as a measure of distance between points or as a dimension of an object. + * + * @unit: 0,1 metre + * @category: Basic information + * @revision: Created in V2.1.1 + */ +StandardLength1B::= INTEGER (0..255) + +/** + * The DE represents length as a measure of distance between points or as a dimension of an object. + * + * @unit: 0,1 metre + * @category: Basic information + * @revision: Created in V2.1.1 + */ +StandardLength2B::= INTEGER (0..65535) + +/** + * This DE indicates the duration in minutes since which something is stationary. + * + * The value shall be set to: + * - 0 `lessThan1Minute` - for being stationary since less than 1 minute, + * - 1 `lessThan2Minutes` - for being stationary since less than 2 minute and for equal to or more than 1 minute, + * - 2 `lessThan15Minutes` - for being stationary since less than 15 minutes and for equal to or more than 1 minute, + * - 3 `equalOrGreater15Minutes` - for being stationary since equal to or more than 15 minutes. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +StationarySince ::= ENUMERATED { + lessThan1Minute (0), + lessThan2Minutes (1), + lessThan15Minutes (2), + equalOrGreater15Minutes (3) +} + +/** + * This DE provides the value of the sub cause codes of the @ref CauseCode "stationaryVehicle". + * + * The value shall be set to: + * - 0 `unavailable` - in case further detailed information on stationary vehicle is unavailable, + * - 1 `humanProblem` - in case stationary vehicle is due to health problem of driver or passenger, + * - 2 `vehicleBreakdown` - in case stationary vehicle is due to vehicle break down, + * - 3 `postCrash` - in case stationary vehicle is caused by collision, + * - 4 `publicTransportStop` - in case public transport vehicle is stationary at bus stop, + * - 5 `carryingDangerousGoods`- in case the stationary vehicle is carrying dangerous goods, + * - 6 `vehicleOnFire` - in case of vehicle on fire. + * - 7-255 reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +StationaryVehicleSubCauseCode ::= INTEGER { + unavailable (0), + humanProblem (1), + vehicleBreakdown (2), + postCrash (3), + publicTransportStop (4), + carryingDangerousGoods (5), + vehicleOnFire (6) +} (0..255) + +/** + * This DE represents the identifier of an ITS-S. + * The ITS-S ID may be a pseudonym. It may change over space and/or over time. + * + * @category: Basic information + * @revision: Created in V2.1.1 based on @ref StationID + */ +StationId ::= INTEGER(0..4294967295) + +/** + * This DE represents the identifier of an ITS-S. + * The ITS-S ID may be a pseudonym. It may change over space and/or over time. + * + * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref StationId instead. + * @category: Basic information + * @revision: V1.3.1 + */ +StationID ::= INTEGER(0..4294967295) + +/** + * This DE represents the type of technical context the ITS-S is integrated in. + * The station type depends on the integration environment of ITS-S into vehicle, mobile devices or at infrastructure. + * + * The value shall be set to: + * - 0 `unknown` - information about the ITS-S context is not provided, + * - 1 `pedestrian` - ITS-S carried by human being not using a mechanical device for their trip (VRU profile 1), + * - 2 `cyclist` - ITS-S mounted on non-motorized unicycles, bicycles , tricycles, quadracycles (VRU profile 2), + * - 3 `moped` - ITS-S mounted on light motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] + class L1, L2 (VRU Profile 3), + * - 4 `motorcycles` - ITS-S mounted on motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] + class L3, L4, L5, L6, L7 (VRU Profile 3), + * - 5 `passengerCar` - ITS-S mounted on small passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M1, + * - 6 `bus` - ITS-S mounted on large passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M2, M3, + * - 7 `lightTruck` - ITS-S mounted on light Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N1, + * - 8 `heavyTruck` - ITS-S mounted on Heavy Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N2 and N3, + * - 9 `trailer` - ITS-S mounted on an unpowered vehicle that is intended to be towed by a powered vehicle as defined in + UNECE/TRANS/WP.29/78/Rev.4 [16] class O, + * - 10 `specialVehicles` - ITS-S mounted on vehicles which have special purposes other than the above (e.g. moving road works vehicle), + * - 11 `tram` - ITS-S mounted on a vehicle which runs on tracks along public streets, + * - 12 `lightVruVehicle` - ITS-S carried by a human being traveling on light vehicle , incl. possible use of roller skates or skateboards (VRU profile 2), + * - 13 `animal` - ITS-S carried by an animal presenting a safety risk to other road users e.g. domesticated dog in a city or horse (VRU Profile 4), + * - 14 - reserved for future usage, + * - 15 `roadSideUnit` - ITS-S mounted on an infrastructure typically positioned outside of the drivable roadway (e.g. on a gantry, on a pole, + on a stationary road works trailer); the infrastructure is static during the entire operation period of the ITS-S (e.g. no stop and go activity), + * - 16-255 - are reserved for future usage. + * + * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref TrafficParticipantType instead. + * @category: Communication information. + * @revision: revised in V2.1.1 (named values 12 and 13 added and note to value 9 deleted) + */ +StationType ::= INTEGER { + unknown (0), + pedestrian (1), + cyclist (2), + moped (3), + motorcycle (4), + passengerCar (5), + bus (6), + lightTruck (7), + heavyTruck (8), + trailer (9), + specialVehicle (10), + tram (11), + lightVruVehicle (12), + animal (13), + roadSideUnit (15) +} (0..255) + +/** + * This DE indicates the steering wheel angle confidence value which represents the estimated absolute accuracy for a steering wheel angle value with a confidence level of 95 %. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 126`) if the confidence value is equal to or less than n x 1,5 degrees, + * - `126` if the confidence value is out of range, i.e. greater than 187,5 degrees, + * - `127` if the confidence value is not available. + * + * @note: The fact that a steering wheel angle value is received with confidence value set to `unavailable(127)` + * can be caused by several reasons, such as: + * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, + * - the sensor cannot calculate the accuracy due to lack of variables, or + * - there has been a vehicle bus (e.g. CAN bus) error. + * In all 3 cases above, the steering wheel angle value may be valid and used by the application. + * + * If a steering wheel angle value is received and its confidence value is set to `outOfRange(126)`, + * it means that the steering wheel angle value is not valid and therefore cannot be trusted. + * Such value is not useful for the application. + * + * @unit: 1,5 degree + * @category: Vehicle Information + * @revision: Description revised in V2.1.1 +*/ +SteeringWheelAngleConfidence ::= INTEGER { + outOfRange (126), + unavailable (127) +} (1..127) + +/** + * This DE represents the steering wheel angle of the vehicle at certain point in time. + * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11. + * + * The value shall be set to: + * - `-511` if the steering wheel angle is equal to or greater than 511 x 1,5 degrees = 766,5 degrees to the right, + * - `n` (`n > -511` and `n <= 0`) if the steering wheel angle is equal to or less than n x 1,5 degrees, and greater than (n-1) x 1,5 degrees, + turning clockwise (i.e. to the right), + * - `n` (`n >= 1` and `n < 511`) if the steering wheel angle is equal to or less than n x 0,1 degrees, and greater than (n-1) x 0,1 degrees, + turning counter-clockwise (i.e. to the left), + * - `511` if the steering wheel angle is greater than 510 x 1,5 degrees = 765 degrees to the left, + * - `512` if information is not available. + * + * @unit: 1,5 degree + * @revision: Description revised in V2.1.1 (meaning of value 511 has changed slightly). + */ +SteeringWheelAngleValue ::= INTEGER { + negativeOutOfRange (-511), + positiveOutOfRange (511), + unavailable (512) +} (-511..512) + +/** + * This DE indicates the generic sub cause of a detected event. + * + * @note: The sub cause code value assignment varies based on value of @ref CauseCode. + * + * @category: Traffic information + * @revision: Description revised in V2.1.1 (this is the generic sub cause type) + */ +SubCauseCodeType ::= INTEGER (0..255) + +/** + * This DE indicates a temperature value. + + * The value shall be set to: + * - `-60` for temperature equal to or less than -60 degrees C, + * - `n` (`n > -60` and `n < 67`) for the actual temperature n in degrees C, + * - `67` for temperature equal to or greater than 67 degrees C. + * + * @unit: degrees Celsius + * @category: Basic information + * @revision: Editorial update in V2.1.1 + */ +Temperature ::= INTEGER { + equalOrSmallerThanMinus60Deg (-60), + equalOrGreaterThan67Deg(67)} (-60..67) + +/** + * This DE represents the number of elapsed (TAI) milliseconds since the ITS Epoch. + * The ITS epoch is `00:00:00.000 UTC, 1 January 2004`. + * "Elapsed" means that the true number of milliseconds is continuously counted without interruption, + * i.e. it is not altered by leap seconds, which occur in UTC. + * + * @note: International Atomic Time (TAI) is the time reference coordinate on the basis of the readings of atomic clocks, + * operated in accordance with the definition of the second, the unit of time of the International System of Units. + * TAI is a continuous time scale. UTC has discontinuities, as it is occasionally adjusted by leap seconds. + * As of 1 January, 2022, TimestampIts is 5 seconds ahead of UTC, because since the ITS epoch on 1 January 2004 00:00:00.000 UTC, + * further 5 leap seconds have been inserted in UTC. + * + * EXAMPLE: The value for TimestampIts for 1 January 2007 00:00:00.000 UTC is `94 694 401 000` milliseconds, + * which includes one leap second insertion since the ITS epoch. + * @unit: 0,001 s + * @category: Basic information + * @revision: Description revised in in V2.1.1 + */ +TimestampIts ::= INTEGER (0..4398046511103) + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `trafficCondition`. + * + * The value shall be set to: + * - 0 `unavailable` - in case further detailed information on the traffic condition is unavailable, + * - 1 `increasedVolumeOfTraffic` - in case the type of traffic condition is increased traffic volume, + * - 2 `trafficJamSlowlyIncreasing` - in case the type of traffic condition is a traffic jam which volume is increasing slowly, + * - 3 `trafficJamIncreasing` - in case the type of traffic condition is a traffic jam which volume is increasing, + * - 4 `trafficJamStronglyIncreasing` - in case the type of traffic condition is a traffic jam which volume is strongly increasing, + * - 5 `trafficJam` ` - in case the type of traffic condition is a traffic jam and no further detailed information about its volume is available, + * - 6 `trafficJamSlightlyDecreasing` - in case the type of traffic condition is a traffic jam which volume is decreasing slowly, + * - 7 `trafficJamDecreasing` - in case the type of traffic condition is a traffic jam which volume is decreasing, + * - 8 `trafficJamStronglyDecreasing` - in case the type of traffic condition is a traffic jam which volume is decreasing rapidly, + * - 9 `trafficJamStable` - in case the traffic condition is a traffic jam with stable volume, + * - 10-255: reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1, definition of value 0 and 1 changed in V2.2.1, name and definition of value 5 changed in V2.2.1, value 9 added in V2.2.1 + */ +TrafficConditionSubCauseCode ::= INTEGER { + unavailable (0), + increasedVolumeOfTraffic (1), + trafficJamSlowlyIncreasing (2), + trafficJamIncreasing (3), + trafficJamStronglyIncreasing (4), + trafficJam (5), + trafficJamSlightlyDecreasing (6), + trafficJamDecreasing (7), + trafficJamStronglyDecreasing (8), + trafficJamStable (9) +} (0..255) + +/** + * This DE indicates a direction of traffic with respect to a reference direction, and a portion of that traffic with respect to a reference position. + * + * The value shall be set to: + * - 0 `allTrafficDirections` - for all directions of traffic, + * - 1 `sameAsReferenceDirection-upstreamOfReferencePosition` - for the direction of traffic according to the reference direction, and the portion of traffic upstream of the reference position, + * - 2 `sameAsReferenceDirection-downstreamOfReferencePosition` - for the direction of traffic according to the reference direction, and the portion of traffic downstream of the reference position, + * - 3 `oppositeToReferenceDirection` - for the direction of traffic opposite to the reference direction. + * + * @note: Upstream traffic corresponds to the incoming traffic towards the event position, and downstream traffic to the departing traffic away from the event position. + * @category: GeoReference information + * @revision: Created in V2.1.1 from RelevanceTrafficDirection, description and naming of values changed in V2.2.1 + * + */ + TrafficDirection ::= ENUMERATED { + allTrafficDirections(0), + sameAsReferenceDirection-upstreamOfReferencePosition(1), + sameAsReferenceDirection-downstreamOfReferencePosition(2), + oppositeToReferenceDirection(3) +} + +/** + * This DE represents the type of a traffic participant. + * + * The value shall be set to: + * - 0 `unknown` - information about traffic participant is not provided, + * - 1 `pedestrian` - human being not using a mechanical device for their trip (VRU profile 1), + * - 2 `cyclist` - non-motorized unicycles, bicycles , tricycles, quadracycles (VRU profile 2), + * - 3 `moped` - light motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class L1, L2 (VRU Profile 3), + * - 4 `motorcycles` - motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class L3, L4, L5, L6, L7 (VRU Profile 3), + * - 5 `passengerCar` - small passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M1, + * - 6 `bus` - large passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class M2, M3, + * - 7 `lightTruck` - light Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N1, + * - 8 `heavyTruck` - Heavy Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class N2 and N3, + * - 9 `trailer` - unpowered vehicle that is intended to be towed by a powered vehicle as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class O, + * - 10 `specialVehicles` - vehicles which have special purposes other than the above (e.g. moving road works vehicle), + * - 11 `tram` - vehicle which runs on tracks along public streets, + * - 12 `lightVruVehicle` - human being traveling on light vehicle, incl. possible use of roller skates or skateboards (VRU profile 2), + * - 13 `animal` - animal presenting a safety risk to other road users e.g. domesticated dog in a city or horse (VRU Profile 4), + * - 14 `agricultural` - agricultural and forestry vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [16] class T, + * - 15 `roadSideUnit` - infrastructure typically positioned outside of the drivable roadway (e.g. on a gantry, on a pole, + on a stationary road works trailer); the infrastructure is static during the entire operation period of the ITS-S (e.g. no stop and go activity), + * - 16-255 - are reserved for future usage. + * + * @category: Communication information. + * @revision: Created in V2.1.1 based on StationType + */ +TrafficParticipantType ::= INTEGER { + unknown (0), + pedestrian (1), + cyclist (2), + moped (3), + motorcycle (4), + passengerCar (5), + bus (6), + lightTruck (7), + heavyTruck (8), + trailer (9), + specialVehicle (10), + tram (11), + lightVruVehicle (12), + animal (13), + agricultural (14), + roadSideUnit (15) +} (0..255) + +/** + * This DE indicates traffic rules that apply to vehicles at a certain position. + * + * The value shall be set to: + * - `0` - if overtaking is prohibited for all vehicles, + * - `1` - if overtaking is prohibited for trucks, + * - `2` - if vehicles should pass to the right lane, + * - `3` - if vehicles should pass to the left lane. + * - `4` - if vehicles should pass to the left or right lane. + * + * @category: Infrastructure information, Traffic information + * @revision: Editorial update in V2.1.1 + */ +TrafficRule ::= ENUMERATED { + noPassing (0), + noPassingForTrucks (1), + passToRight (2), + passToLeft (3), + ..., + passToLeftOrRight (4) +} + +/** + * This DE provides information about the presence of a trailer. + * + * The value shall be set to: + * - 0 `noTrailerPresent` - to indicate that no trailer is present, i.e. either the vehicle is physically not enabled to tow a trailer or it has been detected that no trailer is present. + * - 1 `trailerPresentWithKnownLength` - to indicate that a trailer has been detected as present and the length is included in the vehicle length value. + * - 2 `trailerPresentWithUnknownLength` - to indicate that a trailer has been detected as present and the length is not included in the vehicle length value. + * - 3 `trailerPresenceIsUnknown` - to indicate that information about the trailer presence is unknown, i.e. the vehicle is physically enabled to tow a trailer but the detection of trailer presence/absence is not possible. + * - 4 `unavailable` - to indicate that the information about the presence of a trailer is not available, i.e. it is neither known whether the vehicle is able to tow a trailer + * nor the detection of trailer presence/absence is possible. + * + * @category: Vehicle information + * @revision: Created in V2.1.1 based on VehicleLengthConfidenceIndication +*/ +TrailerPresenceInformation ::= ENUMERATED { + noTrailerPresent (0), + trailerPresentWithKnownLength (1), + trailerPresentWithUnknownLength (2), + trailerPresenceIsUnknown (3), + unavailable (4) +} + +/** + * This DE defines the probability that the ego trajectory intercepts with any other object's trajectory on the road. + * + * The value shall be set to: + * - `n` (`n >= 0` and `n <= 50`) to indicate the actual probability, + * - the values between 51 and 62 are reserved, + * - `63`: to indicate that the information is unavailable. + * + * @unit: 2 % + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +TrajectoryInterceptionProbability ::= INTEGER { + unavailable (63) +} (0..63) + +/** + * This DE defines the confidence level of the trajectoryInterceptionProbability. + * + * The value shall be set to: + * - `0` - to indicate confidence level less than 50 %, + * - `1` - to indicate confidence level greater than or equal to 50 % and less than 70 %, + * - `2` - to indicate confidence level greater than or equal to 70 % and less than 90 %, + * - `3` - to indicate confidence level greater than or equal to 90%. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +TrajectoryInterceptionConfidence ::= INTEGER { + lessthan50percent (0), + between50and70Percent (1), + between70and90Percent (2), + above90Percent (3) +} (0..3) + +/** + * This DE represents the time interval between two consecutive message transmissions. + * + * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref DeltaTimeMilliSecondPos instead. + * @unit: 0,001 s + * @category: Basic information + * @revision: V1.3.1 + */ +TransmissionInterval::= INTEGER (1..10000) + +/** + * This DE provides the turning direction. + * + * The value shall be set to: + * - `left` for turning to te left. + * - `right` for turing to the right. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +TurningDirection::= ENUMERATED { + left, + right +} + +/** + * This DE represents the smallest circular turn (i.e. U-turn) that the vehicle is capable of making. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 254`) to indicate the applicable value is equal to or less than n x 0,4 metre, and greater than (n-1) x 0,4 metre, + * - `254` to indicate that the turning radius is greater than 253 x 0,4 metre = 101.2 metres, + * - `255` to indicate that the information is unavailable. + * + * For vehicle with tracker, the turning radius applies to the vehicle only. + * + * @category: Vehicle information + * @unit 0,4 metre + * @revision: Description revised V2.1.1 (the meaning of 254 has changed slightly) + */ +TurningRadius ::= INTEGER { + outOfRange (254), + unavailable (255) +} (1..255) + +/** + * This DE represents indication of how a certain path or area will be used. + * + * The value shall be set to: + * - 0 - ` noIndication ` - in case it will remain free to be used, + * - 1 - ` specialUse ` - in case it will be physically blocked by special use, + * - 2 - ` rescueOperation` - in case it is intended to be used for rescue operations, + * + * @category: Basic information + * @revision: Created in V2.2.1 + */ +UsageIndication ::= ENUMERATED { + noIndication(0), + specialUse (1), + rescueOperation (2), + ... +} + +/** + * This DE represents the duration of a traffic event validity. + * + * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref DeltaTimeSecond instead. + * @unit: 1 s + * @category: Basic information + * @revision: V1.3.1 +*/ +ValidityDuration::= INTEGER { + timeOfDetection(0), + oneSecondAfterDetection(1) +} (0..86400) + +/** + * This DE represents the Vehicle Descriptor Section (VDS). The values are assigned according to ISO 3779 [6]. + * + * @category: Vehicle information + * @revision: V1.3.1 + */ +VDS ::= IA5String (SIZE(6)) + +/** + * This DE represents the value of the sub cause codes of the @ref CauseCode `vehicleBreakdown`. + * + * The value shall be set to: + * - 0 `unavailable` - in case further detailed information on cause of vehicle break down is unavailable, + * - 1 `lackOfFuel` - in case vehicle break down is due to lack of fuel, + * - 2 `lackOfBatteryPower` - in case vehicle break down is caused by lack of battery power, + * - 3 `engineProblem` - in case vehicle break down is caused by an engine problem, + * - 4 `transmissionProblem` - in case vehicle break down is caused by transmission problem, + * - 5 `engineCoolingProblem`- in case vehicle break down is caused by an engine cooling problem, + * - 6 `brakingSystemProblem`- in case vehicle break down is caused by a braking system problem, + * - 7 `steeringProblem` - in case vehicle break down is caused by a steering problem, + * - 8 `tyrePuncture` - in case vehicle break down is caused by tyre puncture, + * - 9 `tyrePressureProblem` - in case low tyre pressure in detected, + * - 10 `vehicleOnFire` - in case the vehicle is on fire. + * - 11-255 - are reserved for future usage. + * + * @category: Traffic information + + */ +VehicleBreakdownSubCauseCode ::= INTEGER { + unavailable (0), + lackOfFuel (1), + lackOfBatteryPower (2), + engineProblem (3), + transmissionProblem (4), + engineCoolingProblem (5), + brakingSystemProblem (6), + steeringProblem (7), + tyrePuncture (8), + tyrePressureProblem (9), + vehicleOnFire (10) +} (0..255) + +/** + * This DE represents the height of the vehicle, measured from the ground to the highest point, excluding any antennas. + * In case vehicles are equipped with adjustable ride heights, camper shells, and any other + * equipment which may result in varying height, the largest possible height shall be used. + * + * The value shall be set to: + * - `n` (`n >0` and `n < 127`) indicates the applicable value is equal to or less than n x 0,05 metre, and greater than (n-1) x 0,05 metre, + * - `127` indicates that the vehicle width is greater than 6,3 metres, + * - `128` indicates that the information in unavailable. + * + * @unit: 0,05 metre + * @category: Vehicle information + * @revision: created in V2.1.1 +*/ +VehicleHeight ::= INTEGER { + outOfRange (126), + unavailable (127) +}(1..128) + +/** + * This DE provides information about the presence of a trailer. + * + * The value shall be set to: + * - 0 `noTrailerPresent` - to indicate that no trailer is present, i.e. either the vehicle is physically not enabled to tow a trailer or it has been detected that no trailer is present, + * - 1 `trailerPresentWithKnownLength` - to indicate that a trailer has been detected as present and the length is included in the vehicle length value, + * - 2 `trailerPresentWithUnknownLength` - to indicate that a trailer has been detected as present and the length is not included in the vehicle length value, + * - 3 `trailerPresenceIsUnknown` - to indicate that information about the trailer presence is unknown, i.e. the vehicle is physically enabled to tow a trailer but the detection of trailer presence/absence is not possible, + * - 4 `unavailable` - to indicate that the information about the presence of a trailer is not available, i.e. it is neither known whether the vehicle is able to tow a trailer, + * nor the detection of trailer presence/absence is possible. + * + * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref TrailerPresenceInformation instead. + * @category: Vehicle information + * @revision: Description revised in V2.1.1 +*/ +VehicleLengthConfidenceIndication ::= ENUMERATED { + noTrailerPresent (0), + trailerPresentWithKnownLength (1), + trailerPresentWithUnknownLength (2), + trailerPresenceIsUnknown (3), + unavailable (4) +} + +/** + * This DE represents the length of a vehicle. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 1022`) to indicate the applicable value n is equal to or less than n x 0,1 metre, and greater than (n-1) x 0,1 metre, + * - `1 022` to indicate that the vehicle length is greater than 102.1 metres, + * - `1 023` to indicate that the information in unavailable. + * + * + * @unit: 0,1 metre + * @category: Vehicle information + * @revision: Description updated in V2.1.1 (the meaning of 1 022 has changed slightly). + */ +VehicleLengthValue ::= INTEGER { + outOfRange(1022), + unavailable(1023) +} (1..1023) + +/** + * This DE represents the mass of an empty loaded vehicle. + * + * The value shall be set to: + * - `n` (`n > 0` and `n < 1023`) to indicate that the applicable value is equal to or less than n x 10^5 gramm, and greater than (n-1) x 10^5 gramm, + * - `1 023` indicates that the vehicle mass is greater than 102 200 000 g, + * - `1 024` indicates the vehicle mass information is unavailable. + * + * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6. + * + * @unit: 10^5 gramm + * @category: Vehicle information + * @revision: Description updated in V2.1.1 (the meaning of 1 023 has changed slightly). +*/ +VehicleMass ::= INTEGER { + outOfRange (1023), + unavailable(1024) +} (1..1024) + +/** + * This DE indicates the role played by a vehicle at a point in time. + * + * The value shall be set to: + * - 0 `default` - to indicate the default vehicle role as indicated by the vehicle type, + * - 1 `publicTransport` - to indicate that the vehicle is used to operate public transport service, + * - 2 `specialTransport` - to indicate that the vehicle is used for special transport purpose, e.g. oversized trucks, + * - 3 `dangerousGoods` - to indicate that the vehicle is used for dangerous goods transportation, + * - 4 `roadWork` - to indicate that the vehicle is used to realize roadwork or road maintenance mission, + * - 5 `rescue` - to indicate that the vehicle is used for rescue purpose in case of an accident, e.g. as a towing service, + * - 6 `emergency` - to indicate that the vehicle is used for emergency mission, e.g. ambulance, fire brigade, + * - 7 `safetyCar` - to indicate that the vehicle is used for public safety, e.g. patrol, + * - 8 `agriculture` - to indicate that the vehicle is used for agriculture, e.g. farm tractor, + * - 9 `commercial` - to indicate that the vehicle is used for transportation of commercial goods, + * - 10 `military` - to indicate that the vehicle is used for military purpose, + * - 11 `roadOperator` - to indicate that the vehicle is used in road operator missions, + * - 12 `taxi` - to indicate that the vehicle is used to provide an authorized taxi service, + * - 13 `uvar` - to indicate that the vehicle is authorized to enter a zone according to the applicable Urban Vehicle Access Restrictions. + * - 14 `rfu1` - is reserved for future usage. + * - 15 `rfu2` - is reserved for future usage. + * + * @category: Vehicle Information + * @revision: Description updated in V2.1.1 (removed reference to CEN/TS 16157-3), value 13 assigned in V2.2.1 + */ +VehicleRole ::= ENUMERATED { + default (0), + publicTransport (1), + specialTransport(2), + dangerousGoods (3), + roadWork (4), + rescue (5), + emergency (6), + safetyCar (7), + agriculture (8), + commercial (9), + military (10), + roadOperator (11), + taxi (12), + uvar (13), + rfu1 (14), + rfu2 (15) +} + +/** + * This DE represents the width of a vehicle, excluding side mirrors and possible similar extensions. + + * The value shall be set to: + * - `n` (`n > 0` and `n < 61`) indicates the applicable value is equal to or less than n x 0,1 metre, and greater than (n-1) x 0,1 metre, + * - `61` indicates that the vehicle width is greater than 6,0 metres, + * - `62` indicates that the information in unavailable. + * + * @unit: 0,1 metre + * @category: Vehicle information + * @revision: Description updated in V2.1.1 (the meaning of 61 has changed slightly). + */ +VehicleWidth ::= INTEGER { + outOfRange (61), + unavailable (62) +} (1..62) + +/** + * This DE represents the vehicle acceleration at vertical direction in the centre of the mass of the empty vehicle. + * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11. + * + * The value shall be set to: + * - `-160` for acceleration values equal to or less than -16 m/s^2, + * - `n` (`n > -160` and `n <= 0`) to indicate downwards acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, + * - `n` (`n > 0` and `n < 160`) to indicate upwards acceleration equal to or less than n x 0,1 m/s^2, and greater than (n-1) x 0,1 m/s^2, + * - `160` for acceleration values greater than 15,9 m/s^2, + * - `161` when the data is unavailable. + * + * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6. + * + * @category: Vehicle information + * @unit: 0,1 m/s^2 + * @revision: Desciption updated in V2.1.1 (the meaning of 160 has changed slightly). + * +*/ +VerticalAccelerationValue ::= INTEGER { + negativeOutOfRange (-160), + positiveOutOfRange (160), + unavailable (161) +} (-160 .. 161) + +/** + * This DE Identifies all the VRU profile types within a cluster. + * It consist of a Bitmap encoding VRU profiles, to allow multiple profiles to be indicated in a single cluster (heterogeneous cluster if more than one profile). + * + * The corresponding bit shall be set to 1 under the following conditions: + * - 0 `pedestrian` - indicates that the VRU cluster contains at least one pedestrian VRU, + * - 1 `bicycle` - indicates that the VRU cluster contains at least one bicycle VRU member, + * - 2 `motorcyclist`- indicates that the VRU cluster contains at least one motorcycle VRU member, + * - 3 `animal` - indicates that the VRU cluster contains at least one animal VRU member. + * + * Otherwise, the corresponding bit shall be set to 0. + * + * @category: VRU information + * @revision: Created in V2.1.1 +*/ +VruClusterProfiles ::= BIT STRING { + pedestrian (0), + bicyclist (1), + motorcyclist (2), + animal (3) +} (SIZE(4)) + +/** + * This DE represents the possible usage conditions of the VRU device. + + * - The value shall be set to: + * - 0 `unavailable` - to indicate that the usage conditions are unavailable, + * - 1 `other` - to indicate that the VRU device is in a state not defined below, + * - 2 `idle` - to indicate that the human is currently not interacting with the device, + * - 3 `listeningToAudio` - to indicate that any audio source other than calling is in use, + * - 4 `typing` - to indicate that the human is texting or performaing any other manual input activity, + * - 5 `calling` - to indicate that the VRU device is currently receiving a call, + * - 6 `playingGames` - to indicate that the human is playing games, + * - 7 `reading` - to indicate that the human is reading on the VRU device, + * - 8 `viewing` - to indicate that the human is watching dynamic content, including following navigation prompts, viewing videos or other visual contents that are not static. + * - value 9 to 15 - are reserved for future usage. + * + * @category: VRU information + * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 and range changed from 0..255 to 0..15 + */ +VruDeviceUsage ::= INTEGER { + unavailable (0), + other (1), + idle (2), + listeningToAudio (3), + typing (4), + calling (5), + playingGames (6), + reading (7), + viewing (8) +}(0..15) + +/** + * This DE represents the possible VRU environment conditions. + * + * - The value shall be set to: + * - 0 `unavailable` - to indicate that the information on the type of environment is unavailable, + * - 1 `intersectionCrossing` - to indicate that the VRU is on an intersection or crossing, + * - 2 `zebraCrossing` - to indicate that the VRU is on a zebra crossing (crosswalk), + * - 3 `sidewalk` - to indicate that the VRU is on a sidewalk, + * - 4 `onVehicleRoad` - to indicate that the VRU is on a traffic lane, + * - 5 `protectedGeographicArea`- to indicate that the VRU is in a protected area. + * - value 6 to 15 - are reserved for future usage. + * + * @category: VRU information + * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 and range changed from 0..255 to 0..15 + */ +VruEnvironment ::= INTEGER { + unavailable (0), + intersectionCrossing (1), + zebraCrossing (2), + sidewalk (3), + onVehicleRoad (4), + protectedGeographicArea (5) +}(0..15) + +/** + * This DE indicates the status of the possible human control over a VRU vehicle. + * + * The value shall be set to: + * - 0 `unavailable` - to indicate that the information is unavailable, + * - 1 `braking` - to indicate that the VRU is braking, + * - 2 `hardBraking` - to indicate that the VRU is braking hard, + * - 3 `stopPedaling` - to indicate that the VRU stopped pedaling, + * - 4 `brakingAndStopPedaling` - to indicate that the VRU stopped pedaling an is braking, + * - 5 `hardBrakingAndStopPedaling` - to indicate that the VRU stopped pedaling an is braking hard, + * - 6 `noReaction` - to indicate that the VRU is not changing its behavior. + * - 7 to 15 - are reserved for future usage. + * + * @category: VRU information + * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 and range changed from 0..255 to 0..15 + */ +VruMovementControl ::= INTEGER { + unavailable (0), + braking (1), + hardBraking (2), + stopPedaling (3), + brakingAndStopPedaling (4), + hardBrakingAndStopPedaling (5), + noReaction (6) +}(0..15) + +/** + * This DE indicates the profile of a pedestrian. + * + * The value shall be set to: + * - 0 `unavailable` - to indicate that the information on is unavailable, + * - 1 `ordinary-pedestrian` - to indicate a pedestrian to which no more-specific profile applies, + * - 2 `road-worker` - to indicate a pedestrian with the role of a road worker, + * - 3 `first-responder` - to indicate a pedestrian with the role of a first responder. + * - value 4 to 15 - are reserved for future usage. + * + * @category: VRU information + * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 + */ +VruSubProfilePedestrian ::= INTEGER { + unavailable (0), + ordinary-pedestrian (1), + road-worker (2), + first-responder (3) +}(0..15) + +/** + * This DE indicates the profile of a VRU and its light VRU vehicle / mounted animal. + * + * The value shall be set to: + * - 0 `unavailable` - to indicate that the information is unavailable, + * - 1 `bicyclist ` - to indicate a cycle and bicyclist to which no more-specific profile applies, + * - 2 `wheelchair-user` - to indicate a wheelchair and its user, + * - 3 `horse-and-rider` - to indicate a horse and rider, + * - 4 `rollerskater` - to indicate a roller-skater and skater, + * - 5 `e-scooter` - to indicate an e-scooter and rider, + * - 6 `personal-transporter` - to indicate a personal-transporter and rider, + * - 7 `pedelec` - to indicate a pedelec and rider to which no more-specific profile applies, + * - 8 `speed-pedelec` - to indicate a speed-pedelec and rider. + * - 9 `roadbike` - to indicate a road bicycle (or road pedelec) and rider, + * - 10 `childrensbike` - to indicate a children�s bicycle (or children�s pedelec) and rider, + * - 11 to 15 - are reserved for future usage. + * + * @category: VRU information + * @revision: Created in V2.1.1, values 9 and 10 assigned in V2.2.1 + */ +VruSubProfileBicyclist ::= INTEGER { + unavailable (0), + bicyclist (1), + wheelchair-user (2), + horse-and-rider (3), + rollerskater (4), + e-scooter (5), + personal-transporter (6), + pedelec (7), + speed-pedelec (8), + roadbike (9), + childrensbike (10) +}(0..15) + +/** + * This DE indicates the profile of a motorcyclist and corresponding vehicle. + * + * The value shall be set to: + * - 0 `unavailable ` - to indicate that the information is unavailable, + * - 1 `moped` - to indicate a moped and rider, + * - 2 `motorcycle` - to indicate a motorcycle and rider, + * - 3 `motorcycle-and-sidecar-right` - to indicate a motorcycle with sidecar on the right and rider, + * - 4 `motorcycle-and-sidecar-left` - to indicate a motorcycle with sidecar on the left and rider. + * - 5 to 15 - are reserved for future usage. + * + * @category: VRU information + * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 + */ +VruSubProfileMotorcyclist ::= INTEGER { + unavailable (0), + moped (1), + motorcycle (2), + motorcycle-and-sidecar-right (3), + motorcycle-and-sidecar-left (4) +}(0..15) + +/** + * This DE indicates the profile of an animal + * + * The value shall be set to: + * - 0 `unavailable` - to indicate that the information is unavailable, + * - 1 `wild-animal` - to indicate a animal living in the wildness, + * - 2 `farm-animal` - to indicate an animal beloning to a farm, + * - 3 `service-animal` - to indicate an animal that supports a human being. + * - 4 to 15 - are reserved for future usage. + * + * @category: VRU information + * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 + */ +VruSubProfileAnimal ::= INTEGER { + unavailable (0), + wild-animal (1), + farm-animal (2), + service-animal (3) +}(0..15) + +/** + * This DE indicates the approximate size of a VRU including the VRU vehicle used. + * + * The value shall be set to: + * - 0 `unavailable` - to indicate that there is no matched size class or due to privacy reasons in profile 1, + * - 1 `low` - to indicate that the VRU size class is low depending on the VRU profile, + * - 2 `medium` - to indicate that the VRU size class is medium depending on the VRU profile, + * - 3 `high` - to indicate that the VRU size class is high depending on the VRU profile. + * - 4 to 15 - are reserved for future usage. + * + * @category: VRU information + * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 + */ +VruSizeClass ::= INTEGER { + unavailable (0), + low (1), + medium (2), + high (3) +}(0..15) + +/** + * This DE describes the status of the exterior light switches of a VRU. + * + * The value of each bit indicates the state of the switch, which commands the corresponding light. + * The bit corresponding to a specific light shall be set to 1, when the corresponding switch is turned on, either manually by the driver or VRU + * or automatically by a vehicle or VRU system: + * - 0 `unavailable` - indicates no information available, + * - 1 `backFlashLight ` - indicates the status of the back flash light, + * - 2 `helmetLight` - indicates the status of the helmet light, + * - 3 `armLight` - indicates the status of the arm light, + * - 4 `legLight` - indicates the status of the leg light, + * - 5 `wheelLight` - indicates the status of the wheel light. + * - Bits 6 to 8 - are reserved for future use. + * The bit values do not indicate if the corresponding lamps are alight or not. + * If VRU is not equipped with a certain light or if the light switch status information is not available, the corresponding bit shall be set to 0. + * + * @category: VRU information + * @revision: Created in V2.1.1 + */ +VruSpecificExteriorLights ::= BIT STRING { + unavailable (0), + backFlashLight (1), + helmetLight (2), + armLight (3), + legLight (4), + wheelLight (5) +} (SIZE(8)) + +/** + * This DE indicates the perpendicular distance between front and rear axle of the wheel base of vehicle. + * + * The value shall be set to: + * - `n` (`n >= 1` and `n < 126`) if the value is equal to or less than n x 0,1 metre and more than (n-1) x 0,1 metre, + * - `126` indicates that the wheel base distance is equal to or greater than 12,5 metres, + * - `127` indicates that the information is unavailable. + * + * @unit 0,1 metre + * @category: Vehicle information + * @revision: Created in V2.1.1 + */ +WheelBaseVehicle ::= INTEGER { + outOfRange (126), + unavailable (127) +} (1..127) + +/** + * This DE indicates the angle confidence value which represents the estimated accuracy of an angle value with a default confidence level of 95 %. + * If required, the confidence level can be defined by the corresponding standards applying this DE. + * + * The value shall be set to: + * - `n` (`n >= 1` and `n < 126`) if the confidence value is equal to or less than n x 0,1 degrees and more than (n-1) x 0,1 degrees, + * - `126` if the confidence value is out of range, i.e. greater than 12,5 degrees, + * - `127` if the confidence value is not available. + * + * + * @unit 0,1 degrees + * @category: GeoReference Information + * @revision: Created in V2.1.1 +*/ +Wgs84AngleConfidence ::= INTEGER { + outOfRange (126), + unavailable (127) +} (1..127) + + +/** + * This DE represents an angle value in degrees described in the WGS84 reference system with respect to the WGS84 north. + * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. + * When the information is not available, the DE shall be set to 3 601. The value 3600 shall not be used. + * + * @unit 0,1 degrees + * @category: GeoReference Information + * @revision: Created in V2.1.1 +*/ +Wgs84AngleValue ::= INTEGER { + wgs84North (0), + wgs84East (900), + wgs84South (1800), + wgs84West (2700), + doNotUse (3600), + unavailable (3601) +} (0..3601) + +/** + * This DE represents the World Manufacturer Identifier (WMI). The values are assigned according to ISO 3779 [6]. + * + * + * @category: Vehicle information + * @revision: V1.3.1 + */ +WMInumber ::= IA5String (SIZE(1..3)) + +/** + * This DE represents the sub cause codes of the @ref CauseCode `wrongWayDriving` . + * + * The value shall be set to: + * - 0 `unavailable` - in case further detailed information on wrong way driving event is unavailable, + * - 1 `wrongLane` - in case vehicle is driving on a lane for which it has no authorization to use, + * - 2 `wrongDirection` - in case vehicle is driving in a direction that it is not allowed, + * - 3-255 - reserved for future usage. + * + * @category: Traffic information + * @revision: V1.3.1 + */ +WrongWayDrivingSubCauseCode ::= INTEGER { + unavailable (0), + wrongLane (1), + wrongDirection (2) +} (0..255) + +/** + * This DE indicates the yaw rate confidence value which represents the estimated accuracy for a yaw rate value with a default confidence level of 95 %. + * If required, the confidence level can be defined by the corresponding standards applying this DE. + * + * The value shall be set to: + * - `0` if the confidence value is equal to or less than 0,01 degree/second, + * - `1` if the confidence value is equal to or less than 0,05 degrees/second or greater than 0,01 degree/second, + * - `2` if the confidence value is equal to or less than 0,1 degree/second or greater than 0,05 degree/second, + * - `3` if the confidence value is equal to or less than 1 degree/second or greater than 0,1 degree/second, + * - `4` if the confidence value is equal to or less than 5 degrees/second or greater than 1 degrees/second, + * - `5` if the confidence value is equal to or less than 10 degrees/second or greater than 5 degrees/second, + * - `6` if the confidence value is equal to or less than 100 degrees/second or greater than 10 degrees/second, + * - `7` if the confidence value is out of range, i.e. greater than 100 degrees/second, + * - `8` if the confidence value is unavailable. + * + * NOTE: The fact that a yaw rate value is received with confidence value set to `unavailable(8)` can be caused by + * several reasons, such as: + * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor, + * - the sensor cannot calculate the accuracy due to lack of variables, or + * - there has been a vehicle bus (e.g. CAN bus) error. + * In all 3 cases above, the yaw rate value may be valid and used by the application. + * + * If a yaw rate value is received and its confidence value is set to `outOfRange(7)`, it means that the + * yaw rate value is not valid and therefore cannot be trusted. Such value is not useful the application. + * + * @category: Vehicle information + * @revision: Description revised in V2.1.1 + */ +YawRateConfidence ::= ENUMERATED { + degSec-000-01 (0), + degSec-000-05 (1), + degSec-000-10 (2), + degSec-001-00 (3), + degSec-005-00 (4), + degSec-010-00 (5), + degSec-100-00 (6), + outOfRange (7), + unavailable (8) +} + +/** + * This DE represents the vehicle rotation around z-axis of the coordinate system centred on the centre of mass of the empty-loaded + * vehicle. The leading sign denotes the direction of rotation. + * + * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11. + * + * The value shall be set to: + * - `-32 766` to indicate that the yaw rate is equal to or greater than 327,66 degrees/second to the right, + * - `n` (`n > -32 766` and `n <= 0`) to indicate that the rotation is clockwise (i.e. to the right) and is equal to or less than n x 0,01 degrees/s, + and greater than (n-1) x 0,01 degrees/s, + * - `n` (`n > 0` and `n < 32 766`) to indicate that the rotation is anti-clockwise (i.e. to the left) and is equal to or less than n x 0,01 degrees/s, + and greater than (n-1) x 0,01 degrees/s, + * - `32 766` to indicate that the yaw rate is greater than 327.65 degrees/second to the left, + * - `32 767` to indicate that the information is not available. + * + * The yaw rate value shall be a raw data value, i.e. not filtered, smoothed or otherwise modified. + * The reading instant should be the same as for the vehicle acceleration. + * + * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6. + * + * @unit: 0,01 degree per second. + * @category: Vehicle Information + * @revision: Desription revised in V2.1.1 (the meaning of 32766 has changed slightly). +*/ +YawRateValue ::= INTEGER { + negativeOutOfRange (-32766), + positiveOutOfRange (32766), + unavailable (32767) +} (-32766..32767) + +---------------------------------------- +-- Specification of CDD Data Frames: +---------------------------------------- + +/** + * This DF represents an acceleration vector with associated confidence value. + * + * It shall include the following components: + * + * @field polarAcceleration: the representation of the acceleration vector in a polar or cylindrical coordinate system. + * + * @field cartesianAcceleration: the representation of the acceleration vector in a cartesian coordinate system. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +Acceleration3dWithConfidence::= CHOICE { + polarAcceleration AccelerationPolarWithZ, + cartesianAcceleration AccelerationCartesian +} + +/** + * This DF represents an acceleration vector in a polar or cylindrical coordinate system. + + * It shall include the following components: + * + * @field accelerationMagnitude: magnitude of the acceleration vector projected onto the reference plane, with the associated confidence value. + * + * @field accelerationDirection: polar angle of the acceleration vector projected onto the reference plane, with the associated confidence value. + * + * @field zAcceleration: the optional z component of the acceleration vector along the reference axis of the cylindrical coordinate system, with the associated confidence value. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +AccelerationPolarWithZ::= SEQUENCE{ + accelerationMagnitude AccelerationMagnitude, + accelerationDirection CartesianAngle, + zAcceleration AccelerationComponent OPTIONAL +} + +/** + * This DF represents a acceleration vector in a cartesian coordinate system. + + * It shall include the following components: + * + * @field xAcceleration: the x component of the acceleration vector with the associated confidence value. + * + * @field yAcceleration: the y component of the acceleration vector with the associated confidence value. + * + * @field zAcceleration: the optional z component of the acceleration vector with the associated confidence value. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +AccelerationCartesian::= SEQUENCE{ + xAcceleration AccelerationComponent, + yAcceleration AccelerationComponent, + zAcceleration AccelerationComponent OPTIONAL +} + +/** + * This DF represents an acceleration component along with a confidence value. + * + * It shall include the following components: + * + * @field value: the value of the acceleration component which can be estimated as the mean of the current distribution. + * + * @field confidence: the confidence value associated to the provided value. + * + * @category: Kinematic Information + * @revision: Created in V2.1.1 + */ +AccelerationComponent ::= SEQUENCE { + value AccelerationValue, + confidence AccelerationConfidence +} + +/** + * This DF represents information associated to changes in acceleration. + * + * It shall include the following components: + * + * @field accelOrDecel: the indication of an acceleration change. + * + * @field actionDeltaTime: the period over which the acceleration change action is performed. + * + * @category: Kinematic Information + * @revision: Created in V2.1.1 + */ +AccelerationChangeIndication ::= SEQUENCE { + accelOrDecel AccelerationChange, + actionDeltaTime DeltaTimeTenthOfSecond, + ... +} + +/** + * This DF represents the magnitude of the acceleration vector and associated confidence value. + * + * It shall include the following components: + * + * @field accelerationMagnitudeValue: the magnitude of the acceleration vector. + * + * @field accelerationConfidence: the confidence value of the magnitude value. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +AccelerationMagnitude::= SEQUENCE { + accelerationMagnitudeValue AccelerationMagnitudeValue, + accelerationConfidence AccelerationConfidence +} + +/** + * This DF represents an identifier used to describe a protocol action taken by an ITS-S. + * + * It shall include the following components: + * + * @field originatingStationId: Id of the ITS-S that takes the action. + * + * @field sequenceNumber: a sequence number. + * + * @category: Communication information + * @revision: Created in V2.1.1 based on @ref ActionID. + */ +ActionId ::= SEQUENCE { + originatingStationId StationId, + sequenceNumber SequenceNumber +} + +/** + * This DF represents an identifier used to describe a protocol action taken by an ITS-S. + * + * It shall include the following components: + * + * @field originatingStationId: Id of the ITS-S that takes the action. + * + * @field sequenceNumber: a sequence number. + * + * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref ActionId instead. + * @category: Communication information + * @revision: V1.3.1 + */ +ActionID ::= SEQUENCE { + originatingStationId StationID, + sequenceNumber SequenceNumber +} + +/** + * This DF shall contain a list of @ref ActionId. + + * @category: Communication Information + * @revision: Created in V2.1.1 based on ReferenceDenms from DENM Release 1 +*/ +ActionIdList::= SEQUENCE (SIZE(1..8, ...)) OF ActionId + +/** + * This DF provides the altitude and confidence level of an altitude information in a WGS84 coordinate system. + * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. + * + * It shall include the following components: + * + * @field altitudeValue: altitude of a geographical point. + * + * @field altitudeConfidence: confidence level of the altitudeValue. + * + * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref AltitudeWithConfidence instead. + * @category: GeoReference information + * @revision: Description revised in V2.1.1 + */ +Altitude ::= SEQUENCE { + altitudeValue AltitudeValue, + altitudeConfidence AltitudeConfidence +} + +/** + * This DE represents a general container for usage in various types of messages. + * + * It shall include the following components: + * + * @field stationType: the type of technical context in which the ITS-S that has generated the message is integrated in. + * + * @field referencePosition: the reference position of the station that has generated the message that contains the basic container. + * + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +BasicContainer ::= SEQUENCE { + stationType TrafficParticipantType, + referencePosition ReferencePositionWithConfidence, + ... +} + +/** + * This DF provides information about the configuration of a road section in terms of lanes using a list of @ref LanePositionAndType . + * + * @category: Road topology information + * @revision: Created in V2.2.1 +*/ +BasicLaneConfiguration::= SEQUENCE(SIZE(1..16,...)) OF BasicLaneInformation + +/** + * This DF provides basic information about a single lane of a road segment. + * It includes the following components: + * + * @field laneNumber: the number associated to the lane that provides a transversal identification. + * + * @field direction: the direction of traffic flow allowed on the lane. + * + * @field laneWidth: the optional width of the lane. + * + * @field connectingLane: the number of the connecting lane in the next road section, i.e. the number of the lane which the vehicle will use when travelling from one section to the next, + * if it does not actively change lanes. If this component is absent, the lane name number remains the same in the next section. + * + * @field connectingRoadSection: the identifier of the next road section in direction of traffic, that is connecting to the current road section. + * If this component is absent, the connecting road section is the one following the instance where this DF is placed in the @ref RoadConfigurationSectionList. + * + * @category: Road topology information + * @revision: Created in V2.2.1 +*/ + +BasicLaneInformation::= SEQUENCE{ + laneNumber LanePosition, + direction Direction, + laneWidth LaneWidth OPTIONAL, + connectingLane LanePosition OPTIONAL, + connectingRoadSection RoadSectionId OPTIONAL, + ... +} +((WITH COMPONENTS {..., connectingLane PRESENT}) | + (WITH COMPONENTS {..., connectingLane ABSENT, connectingRoadSection ABSENT})) + +/** + * This DF represents a general Data Frame to describe an angle component along with a confidence value in a cartesian coordinate system. + * + * It shall include the following components: + * + * @field value: The angle value which can be estimated as the mean of the current distribution. + * + * @field confidence: The confidence value associated to the provided value. + * + * @category: Basic information + * @revision: Created in V2.1.1 + */ +CartesianAngle ::= SEQUENCE { + value CartesianAngleValue, + confidence AngleConfidence +} + +/** + * This DF represents an angular velocity component along with a confidence value in a cartesian coordinate system. + * + * It shall include the following components: + * + * @field value: The angular velocity component. + * + * @field confidence: The confidence value associated to the provided value. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +CartesianAngularVelocityComponent ::= SEQUENCE { + value CartesianAngularVelocityComponentValue, + confidence AngularSpeedConfidence +} + +/** + * This DF represents a general Data Frame to describe an angular acceleration component along with a confidence value in a cartesian coordinate system. + * + * It shall include the following components: + * + * @field value: The angular acceleration component value. + * + * @field confidence: The confidence value associated to the provided value. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +CartesianAngularAccelerationComponent ::= SEQUENCE { + value CartesianAngularAccelerationComponentValue, + confidence AngularAccelerationConfidence +} + +/** + * This DF represents a coordinate along with a confidence value in a cartesian reference system. + * + * It shall include the following components: + * + * @field value: the coordinate value, which can be estimated as the mean of the current distribution. + * + * @field confidence: the coordinate confidence value associated to the provided value. + * + * @category: GeoReference information + * @revision: Created in V2.1.1 +*/ +CartesianCoordinateWithConfidence ::= SEQUENCE { + value CartesianCoordinateLarge, + confidence CoordinateConfidence +} + +/** + * This DF represents a position in a two- or three-dimensional cartesian coordinate system. + * + * It shall include the following components: + * + * @field xCoordinate: the X coordinate value. + * + * @field yCoordinate: the Y coordinate value. + * + * @field zCoordinate: the optional Z coordinate value. + * + * @category: GeoReference information + * @revision: Created in V2.1.1 +*/ +CartesianPosition3d::=SEQUENCE{ + xCoordinate CartesianCoordinate, + yCoordinate CartesianCoordinate, + zCoordinate CartesianCoordinate OPTIONAL +} + +/** + * This DF represents a position in a two- or three-dimensional cartesian coordinate system with an associated confidence level for each coordinate. + * + * It shall include the following components: + * + * @field xCoordinate: the X coordinate value with the associated confidence level. + * + * @field yCoordinate: the Y coordinate value with the associated confidence level. + * + * @field zCoordinate: the optional Z coordinate value with the associated confidence level. + * + * @category: GeoReference information + * @revision: Created in V2.1.1 +*/ +CartesianPosition3dWithConfidence::= SEQUENCE{ + xCoordinate CartesianCoordinateWithConfidence, + yCoordinate CartesianCoordinateWithConfidence, + zCoordinate CartesianCoordinateWithConfidence OPTIONAL +} + +/** + * This DF is a representation of the cause code value of a traffic event. + * + * It shall include the following components: + * + * @field causeCode: the main cause of a detected event. + * + * @field subCauseCode: the subordinate cause of a detected event. + * + * The semantics of the entire DF are completely defined by the component causeCode. The interpretation of the subCauseCode may + * provide additional information that is not strictly necessary to understand the causeCode itself, and is therefore optional. + * + * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref CauseCodeV2 instead. + * + * @category: Traffic information + * @revision: Editorial update in V2.1.1 + */ +CauseCode ::= SEQUENCE { + causeCode CauseCodeType, + subCauseCode SubCauseCodeType, + ... +} + +/** + * This DF is a representation of the cause code value and associated sub cause code value of a traffic event. + * + * The following options are available: + * - 0 - reserved for future use, + * - 1 - `trafficCondition1` - in case the type of event is an abnormal traffic condition, + * - 2 - `accident2` - in case the type of event is a road accident, + * - 3 - `roadworks3` - in case the type of event is roadwork, + * - 4 - reserved for future usage, + * - 5 - `impassability5` - in case the type of event is unmanaged road blocking, referring to any + * blocking of a road, partial or total, which has not been adequately secured and signposted, + * - 6 - `adverseWeatherCondition-Adhesion6` - in case the type of event is low adhesion, + * - 7 - `aquaplaning7` - danger of aquaplaning on the road, + * - 8 - reserved for future usage, + * - 9 - `hazardousLocation-SurfaceCondition9` - in case the type of event is abnormal road surface condition, + * - 10 - `hazardousLocation-ObstacleOnTheRoad10` - in case the type of event is obstacle on the road, + * - 11 - `hazardousLocation-AnimalOnTheRoad11` - in case the type of event is animal on the road, + * - 12 - `humanPresenceOnTheRoad` - in case the type of event is presence of human vulnerable road user on the road, + * - 13 - reserved for future usage, + * - 14 - `wrongWayDriving14` - in case the type of the event is vehicle driving in wrong way, + * - 15 - `rescueAndRecoveryWorkInProgress15` - in case the type of event is rescue and recovery work for accident or for a road hazard in progress, + * - 16 - reserved for future usage, + * - 17 - `adverseWeatherCondition-ExtremeWeatherCondition17` - in case the type of event is extreme weather condition, + * - 18 - `adverseWeatherCondition-Visibility18` - in case the type of event is low visibility, + * - 19 - `adverseWeatherCondition-Precipitation19` - in case the type of event is precipitation, + * - 20 - `violence20` - in case the the type of event is human violence on or near the road, + * - 21-25 - reserved for future usage, + * - 26 - `slowVehicle26` - in case the type of event is slow vehicle driving on the road, + * - 27 - `dangerousEndOfQueue27` - in case the type of event is dangerous end of vehicle queue, + * - 28 - `publicTransportVehicleApproaching - in case the type of event is a public transport vehicle approaching, with a priority defined by applicable traffic regulations, + * - 29-90 - are reserved for future usage, + * - 91 - `vehicleBreakdown91` - in case the type of event is break down vehicle on the road, + * - 92 - `postCrash92` - in case the type of event is a detected crash, + * - 93 - `humanProblem93` - in case the type of event is human health problem in vehicles involved in traffic, + * - 94 - `stationaryVehicle94` - in case the type of event is stationary vehicle, + * - 95 - `emergencyVehicleApproaching95` - in case the type of event is an approaching vehicle operating on a mission for which the + applicable traffic regulations provide it with defined priority rights in traffic. + * - 96 - `hazardousLocation-DangerousCurve96` - in case the type of event is dangerous curve, + * - 97 - `collisionRisk97` - in case the type of event is a collision risk, + * - 98 - `signalViolation98` - in case the type of event is signal violation, + * - 99 - `dangerousSituation99` - in case the type of event is dangerous situation in which autonomous safety system in vehicle + * is activated, + * - 100 - `railwayLevelCrossing100` - in case the type of event is a railway level crossing. + * - 101-255 - are reserved for future usage. + * + * @note: this DF is defined for use as part of CauseCodeV2. It is recommended to use CauseCodeV2. + * @category: Traffic information + * @revision: Created in V2.1.1, the type of impassability5 changed to ImpassabilitySubCauseCode in V2.2.1, value 28 added in V2.2.1, definition of value 12 and 95 changed in V2.2.1 + */ +CauseCodeChoice::= CHOICE { + reserved0 SubCauseCodeType, + trafficCondition1 TrafficConditionSubCauseCode, + accident2 AccidentSubCauseCode, + roadworks3 RoadworksSubCauseCode, + reserved4 SubCauseCodeType, + impassability5 ImpassabilitySubCauseCode, + adverseWeatherCondition-Adhesion6 AdverseWeatherCondition-AdhesionSubCauseCode, + aquaplaning7 SubCauseCodeType, + reserved8 SubCauseCodeType, + hazardousLocation-SurfaceCondition9 HazardousLocation-SurfaceConditionSubCauseCode, + hazardousLocation-ObstacleOnTheRoad10 HazardousLocation-ObstacleOnTheRoadSubCauseCode, + hazardousLocation-AnimalOnTheRoad11 HazardousLocation-AnimalOnTheRoadSubCauseCode, + humanPresenceOnTheRoad12 HumanPresenceOnTheRoadSubCauseCode, + reserved13 SubCauseCodeType, + wrongWayDriving14 WrongWayDrivingSubCauseCode, + rescueAndRecoveryWorkInProgress15 RescueAndRecoveryWorkInProgressSubCauseCode, + reserved16 SubCauseCodeType, + adverseWeatherCondition-ExtremeWeatherCondition17 AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode, + adverseWeatherCondition-Visibility18 AdverseWeatherCondition-VisibilitySubCauseCode, + adverseWeatherCondition-Precipitation19 AdverseWeatherCondition-PrecipitationSubCauseCode, + violence20 SubCauseCodeType, + reserved21 SubCauseCodeType, + reserved22 SubCauseCodeType, + reserved23 SubCauseCodeType, + reserved24 SubCauseCodeType, + reserved25 SubCauseCodeType, + slowVehicle26 SlowVehicleSubCauseCode, + dangerousEndOfQueue27 DangerousEndOfQueueSubCauseCode, + publicTransportVehicleApproaching28 SubCauseCodeType, + reserved29 SubCauseCodeType, + reserved30 SubCauseCodeType, + reserved31 SubCauseCodeType, + reserved32 SubCauseCodeType, + reserved33 SubCauseCodeType, + reserved34 SubCauseCodeType, + reserved35 SubCauseCodeType, + reserved36 SubCauseCodeType, + reserved37 SubCauseCodeType, + reserved38 SubCauseCodeType, + reserved39 SubCauseCodeType, + reserved40 SubCauseCodeType, + reserved41 SubCauseCodeType, + reserved42 SubCauseCodeType, + reserved43 SubCauseCodeType, + reserved44 SubCauseCodeType, + reserved45 SubCauseCodeType, + reserved46 SubCauseCodeType, + reserved47 SubCauseCodeType, + reserved48 SubCauseCodeType, + reserved49 SubCauseCodeType, + reserved50 SubCauseCodeType, + reserved51 SubCauseCodeType, + reserved52 SubCauseCodeType, + reserved53 SubCauseCodeType, + reserved54 SubCauseCodeType, + reserved55 SubCauseCodeType, + reserved56 SubCauseCodeType, + reserved57 SubCauseCodeType, + reserved58 SubCauseCodeType, + reserved59 SubCauseCodeType, + reserved60 SubCauseCodeType, + reserved61 SubCauseCodeType, + reserved62 SubCauseCodeType, + reserved63 SubCauseCodeType, + reserved64 SubCauseCodeType, + reserved65 SubCauseCodeType, + reserved66 SubCauseCodeType, + reserved67 SubCauseCodeType, + reserved68 SubCauseCodeType, + reserved69 SubCauseCodeType, + reserved70 SubCauseCodeType, + reserved71 SubCauseCodeType, + reserved72 SubCauseCodeType, + reserved73 SubCauseCodeType, + reserved74 SubCauseCodeType, + reserved75 SubCauseCodeType, + reserved76 SubCauseCodeType, + reserved77 SubCauseCodeType, + reserved78 SubCauseCodeType, + reserved79 SubCauseCodeType, + reserved80 SubCauseCodeType, + reserved81 SubCauseCodeType, + reserved82 SubCauseCodeType, + reserved83 SubCauseCodeType, + reserved84 SubCauseCodeType, + reserved85 SubCauseCodeType, + reserved86 SubCauseCodeType, + reserved87 SubCauseCodeType, + reserved88 SubCauseCodeType, + reserved89 SubCauseCodeType, + reserved90 SubCauseCodeType, + vehicleBreakdown91 VehicleBreakdownSubCauseCode, + postCrash92 PostCrashSubCauseCode, + humanProblem93 HumanProblemSubCauseCode, + stationaryVehicle94 StationaryVehicleSubCauseCode, + emergencyVehicleApproaching95 EmergencyVehicleApproachingSubCauseCode, + hazardousLocation-DangerousCurve96 HazardousLocation-DangerousCurveSubCauseCode, + collisionRisk97 CollisionRiskSubCauseCode, + signalViolation98 SignalViolationSubCauseCode, + dangerousSituation99 DangerousSituationSubCauseCode, + railwayLevelCrossing100 RailwayLevelCrossingSubCauseCode, + reserved101 SubCauseCodeType, + reserved102 SubCauseCodeType, + reserved103 SubCauseCodeType, + reserved104 SubCauseCodeType, + reserved105 SubCauseCodeType, + reserved106 SubCauseCodeType, + reserved107 SubCauseCodeType, + reserved108 SubCauseCodeType, + reserved109 SubCauseCodeType, + reserved110 SubCauseCodeType, + reserved111 SubCauseCodeType, + reserved112 SubCauseCodeType, + reserved113 SubCauseCodeType, + reserved114 SubCauseCodeType, + reserved115 SubCauseCodeType, + reserved116 SubCauseCodeType, + reserved117 SubCauseCodeType, + reserved118 SubCauseCodeType, + reserved119 SubCauseCodeType, + reserved120 SubCauseCodeType, + reserved121 SubCauseCodeType, + reserved122 SubCauseCodeType, + reserved123 SubCauseCodeType, + reserved124 SubCauseCodeType, + reserved125 SubCauseCodeType, + reserved126 SubCauseCodeType, + reserved127 SubCauseCodeType, + reserved128 SubCauseCodeType + } + +/** + * This DF is an alternative representation of the cause code value of a traffic event. + * + * It shall include the following components: + * + * @field ccAndScc: the main cause of a detected event. Each entry is of a different type and represents the sub cause code. + + * The semantics of the entire DF are completely defined by the choice value which represents the cause code value. + * The interpretation of the sub cause code value may provide additional information that is not strictly necessary to understand + * the cause code itself, and is therefore optional. + * + * @category: Traffic information + * @revision: Created in V2.1.1, description amended in V2.2.1 + */ +CauseCodeV2 ::= SEQUENCE { + ccAndScc CauseCodeChoice, + ... +} + +/** + * The DF describes the position of a CEN DSRC road side equipment. + * + * It shall include the following components: + * + * @field protectedZoneLatitude: the latitude of the CEN DSRC road side equipment. + * + * @field protectedZoneLongitude: the latitude of the CEN DSRC road side equipment. + * + * @field cenDsrcTollingZoneID: the optional ID of the CEN DSRC road side equipment. + * + * @category: Infrastructure information, Communication information + * @revision: revised in V2.1.1 (cenDsrcTollingZoneId is directly of type ProtectedZoneId) + */ +CenDsrcTollingZone ::= SEQUENCE { + protectedZoneLatitude Latitude, + protectedZoneLongitude Longitude, + cenDsrcTollingZoneId ProtectedZoneId OPTIONAL, + ... +} + +/** + * + * This DF represents the shape of a circular area or a right cylinder that is centred on the shape's reference point. + * + * It shall include the following components: + * + * @field shapeReferencePoint: optional reference point that represents the centre of the circle, relative to an externally specified reference position. + * If this component is absent, the externally specified reference position represents the shape's reference point. + * + * @field radius: the radius of the circular area. + * + * @field height: the optional height, present if the shape is a right cylinder extending in the positive z-axis. + * + * + * @category: GeoReference information + * @revision: Created in V2.1.1 + */ +CircularShape ::= SEQUENCE { + shapeReferencePoint CartesianPosition3d OPTIONAL, + radius StandardLength12b, + height StandardLength12b OPTIONAL +} + +/** + * This DF indicates the opening/closure status of the lanes of a carriageway. + * + * It shall include the following components: + * + * @field innerhardShoulderStatus: this information is optional and shall be included if an inner hard shoulder is present and the information is known. + * It indicates the open/closing status of inner hard shoulder lanes. + * + * @field outerhardShoulderStatus: this information is optional and shall be included if an outer hard shoulder is present and the information is known. + * It indicates the open/closing status of outer hard shoulder lanes. + * + * @field drivingLaneStatus: this information is optional and shall be included if the information is known. + * It indicates the open/closing status of driving lanes. + * For carriageways with more than 13 driving lanes, the drivingLaneStatus component shall not be present. + * + * @category: Infrastructure information, Road topology information + * @revision: Description revised in V2.1.1 + */ +ClosedLanes ::= SEQUENCE { + innerhardShoulderStatus HardShoulderStatus OPTIONAL, + outerhardShoulderStatus HardShoulderStatus OPTIONAL, + drivingLaneStatus DrivingLaneStatus OPTIONAL, + ... +} + +/** + * This DF provides information about the breakup of a cluster. + * + * It shall include the following components: + * + * @field clusterBreakupReason: indicates the reason for breakup. + * + * @field breakupTime: indicates the time of breakup. + * + * @category: Cluster Information + * @revision: Created in V2.1.1 + */ +ClusterBreakupInfo ::= SEQUENCE { + clusterBreakupReason ClusterBreakupReason, + breakupTime DeltaTimeQuarterSecond, + ... +} + +/** + * This DF provides information about the joining of a cluster. + * + * It shall include the following components: + * + * @field clusterId: indicates the identifier of the cluster. + * + * @field joinTime: indicates the time of joining. + * + * @category: Cluster Information + * @revision: Created in V2.1.1 + */ +ClusterJoinInfo ::= SEQUENCE { + clusterId Identifier1B, + joinTime DeltaTimeQuarterSecond, + ... +} + +/** + * The DF provides information about the leaving of a cluster. + * + * It shall include the following components: + * + * @field clusterId: indicates the cluster. + * + * @field clusterLeaveReason: indicates the reason for leaving. + * + * @category: Cluster Information + * @revision: Created in V2.1.1 + */ +ClusterLeaveInfo ::= SEQUENCE { + clusterId Identifier1B, + clusterLeaveReason ClusterLeaveReason, + ... +} + +/** + * This DF represents a column of a lower triangular positive semi-definite matrix and consists of a list of correlation cell values ordered by rows. + * Given a matrix "A" of size n x n, the number of columns to be included in the lower triangular matrix is k=n-1. + * Each column "i" of the lower triangular matrix then contains k-(i-1) values (ordered by rows from 1 to n-1), where "i" refers to the column number count + * starting at 1 from the left. + * + * @category: Sensing Information + * @revision: Created in V2.1.1 +*/ +CorrelationColumn ::= SEQUENCE SIZE (1..13,...) OF CorrelationCellValue + +/** + * This DF represents the curvature of the vehicle trajectory and the associated confidence value. + * The curvature detected by a vehicle represents the curvature of actual vehicle trajectory. + * + * It shall include the following components: + * + * @field curvatureValue: Detected curvature of the vehicle trajectory. + * + * @field curvatureConfidence: along with a confidence value of the curvature value with a predefined confidence level. + * + * @category: Vehicle information + * @revision: Description revised in V2.1.1 + */ +Curvature ::= SEQUENCE { + curvatureValue CurvatureValue, + curvatureConfidence CurvatureConfidence +} + +/** + * This DF provides a description of dangerous goods being carried by a heavy vehicle. + * + * It shall include the following components: + * + * @field dangerousGoodsType: Type of dangerous goods. + * + * @field unNumber: a 4-digit number that identifies the substance of the dangerous goods as specified in + * United Nations Recommendations on the Transport of Dangerous Goods - Model Regulations [4], + * + * @field elevatedTemperature: whether the carried dangerous goods are transported at high temperature. + * If yes, the value shall be set to TRUE, + * + * @field tunnelsRestricted: whether the heavy vehicle carrying dangerous goods is restricted to enter tunnels. + * If yes, the value shall be set to TRUE, + * + * @field limitedQuantity: whether the carried dangerous goods are packed with limited quantity. + * If yes, the value shall be set to TRUE, + * + * @field emergencyActionCode: physical signage placard at the vehicle that carries information on how an emergency + * service should deal with an incident. This component is optional; it shall be present if the information is available. + * + * @field phoneNumber: contact phone number of assistance service in case of incident or accident. + * This component is optional, it shall be present if the information is available. + * + * @field companyName: name of company that manages the transportation of the dangerous goods. + * This component is optional; it shall be present if the information is available. + * + * @category Vehicle information + * @revision: V1.3.1 + */ +DangerousGoodsExtended ::= SEQUENCE { + dangerousGoodsType DangerousGoodsBasic, + unNumber INTEGER (0..9999), + elevatedTemperature BOOLEAN, + tunnelsRestricted BOOLEAN, + limitedQuantity BOOLEAN, + emergencyActionCode IA5String (SIZE (1..24)) OPTIONAL, + phoneNumber PhoneNumber OPTIONAL, + companyName UTF8String (SIZE (1..24)) OPTIONAL, + ... +} + +/** + * This DF defines a geographical point position as a 3 dimensional offset position to a geographical reference point. + * + * It shall include the following components: + * + * @field deltaLatitude: A delta latitude offset with regards to the latitude value of the reference position. + * + * @field deltaLongitude: A delta longitude offset with regards to the longitude value of the reference position. + * + * @field deltaAltitude: A delta altitude offset with regards to the altitude value of the reference position. + * + * @category: GeoReference information + * @revision: V1.3.1 + */ +DeltaReferencePosition ::= SEQUENCE { + deltaLatitude DeltaLatitude, + deltaLongitude DeltaLongitude, + deltaAltitude DeltaAltitude +} + +/** + * This DF represents a portion of digital map. It shall contain a list of waypoints @ref ReferencePosition. + * + * @category: GeoReference information + * @revision: V1.3.1 + */ +DigitalMap ::= SEQUENCE (SIZE(1..256)) OF ReferencePosition + +/** + * + * This DF represents the shape of an elliptical area or right elliptical cylinder that is centred + * on the shape's reference point defined outside of the context of this DF and oriented w.r.t. a + * cartesian coordinate system defined outside of the context of this DF. + * + * It shall include the following components: + * + * @field shapeReferencePoint: optional reference point which represents the centre of the ellipse, + * relative to an externally specified reference position. If this component is absent, the + * externally specified reference position represents the shape's reference point. + * + * @field semiMajorAxisLength: half length of the major axis of the ellipse located in the X-Y Plane. + * + * @field semiMinorAxisLength: half length of the minor axis of the ellipse located in the X-Y Plane. + * + * @field orientation: the optional orientation of the major axis of the ellipse, measured with + * positive values turning around the z-axis using the right-hand rule, starting from the X-axis. + * + * @field height: the optional height, present if the shape is a right elliptical cylinder extending + * in the positive Z-axis. + * + * @category: GeoReference information + * @revision: Created in V2.1.1, the type of the field orientation changed and the description revised in V2.2.1 +*/ + +EllipticalShape ::= SEQUENCE { + shapeReferencePoint CartesianPosition3d OPTIONAL, + semiMajorAxisLength StandardLength12b, + semiMinorAxisLength StandardLength12b, + orientation CartesianAngleValue OPTIONAL, + height StandardLength12b OPTIONAL +} + +/** + * This DF represents the Euler angles which describe the orientation of an object bounding box in a Cartesian coordinate system with an associated confidence level for each angle. + * + * It shall include the following components: + * + * @field zAngle: z-angle of object bounding box at the time of measurement, with the associated confidence. + * The angle is measured with positive values considering the object orientation turning around the z-axis using the right-hand rule, starting from the x-axis. + * This extrinsic rotation shall be applied around the centre point of the object bounding box before all other rotations. + * + * @field yAngle: optional y-angle of object bounding box at the time of measurement, with the associated confidence. + * The angle is measured with positive values considering the object orientation turning around the y-axis using the right-hand rule, starting from the z-axis. + * This extrinsic rotation shall be applied around the centre point of the object bounding box after the rotation by zAngle and before the rotation by xAngle. + * + * @field xAngle: optional x-angle of object bounding box at the time of measurement, with the associated confidence. + * The angle is measured with positive values considering the object orientation turning around the x-axis using the right-hand rule, starting from the z-axis. + * This extrinsic rotation shall be applied around the centre point of the object bounding box after all other rotations. + * + * @category: Basic information + * @revision: Created in V2.1.1 +*/ +EulerAnglesWithConfidence ::= SEQUENCE { + zAngle CartesianAngle, + yAngle CartesianAngle OPTIONAL, + xAngle CartesianAngle OPTIONAL +} + +/** + * + * This DF represents a vehicle category according to the UNECE/TRANS/WP.29/78/Rev.4 [16]. + * The following options are available: + * + * @field euVehicleCategoryL: indicates a vehicle in the L category. + * + * @field euVehicleCategoryM: indicates a vehicle in the M category. + * + * @field euVehicleCategoryN: indicates a vehicle in the N category. + * + * @field euVehicleCategoryO: indicates a vehicle in the O category. + * + * @field euVehicleCategoryT: indicates a vehicle in the T category. + * + * @field euVehicleCategoryG: indicates a vehicle in the G category. + * + * @category: Vehicle information + * @revision: Created in V2.1.1 +*/ +EuVehicleCategoryCode ::= CHOICE { + euVehicleCategoryL EuVehicleCategoryL, + euVehicleCategoryM EuVehicleCategoryM, + euVehicleCategoryN EuVehicleCategoryN, + euVehicleCategoryO EuVehicleCategoryO, + euVehicleCategoryT NULL, + euVehicleCategoryG NULL +} + +/** + * The DF shall contain a list of @ref EventPoint. + * + * The eventPosition of each @ref EventPoint is defined with respect to the previous @ref EventPoint in the list. + * Except for the first @ref EventPoint which is defined with respect to a position outside of the context of this DF. + * + * @category: GeoReference information, Traffic information + * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref EventZone instead. + * @revision: Generalized the semantics in V2.1.1 + */ +EventHistory::= SEQUENCE (SIZE(1..23)) OF EventPoint + +/** + * This DF provides information related to an event at a defined position. + * + * It shall include the following components: + * + * @field eventPosition: offset position of a detected event point to a defined position. + * + * @field eventDeltaTime: optional time travelled by the detecting ITS-S since the previous detected event point. + * + * @field informationQuality: Information quality of the detection for this event point. + * + * @category: GeoReference information, Traffic information + * @revision: generalized the semantics in V2.1.1 + */ +EventPoint ::= SEQUENCE { + eventPosition DeltaReferencePosition, + eventDeltaTime PathDeltaTime OPTIONAL, + informationQuality InformationQuality +} + +/** + * The DF shall contain a list of @ref EventPoint, where all @ref EventPoint either contain the COMPONENT eventDeltaTime + * or do not contain the COMPONENT eventDeltaTime. + * + * The eventPosition of each @ref EventPoint is defined with respect to the previous @ref EventPoint in the list. + * Except for the first @ref EventPoint which is defined with respect to a position outside of the context of this DF. + * + * @category: GeoReference information, Traffic information + * @revision: created in V2.1.1 based on EventHistory + */ +EventZone::= EventHistory + ((WITH COMPONENT (WITH COMPONENTS {..., eventDeltaTime PRESENT})) | + (WITH COMPONENT (WITH COMPONENTS {..., eventDeltaTime ABSENT}))) + +/** + * This DF indicates a geographical position. + * + * It shall include the following components: + * + * @field latitude: the latitude of the geographical position. + * + * @field longitude: the longitude of the geographical position. + * + * @field altitude: the altitude of the geographical position with default value unavailable. + * +*/ +GeoPosition::= SEQUENCE{ + latitude Latitude, + longitude Longitude, + altitude AltitudeValue DEFAULT unavailable +} + +/** + * This DF represents the top-level DF to represent a lane position. A lane position is a transversal position on the carriageway at a specific longitudinal position, in resolution of lanes of the carriageway. + * + * @note: This DF is the most general way to represent a lane position: it provides a complete set of information regarding a transversal (dimensionless) position on the carriageway at a specific + * reference position, i.e. it provides different options and synonyms to represent the lane at which the reference position (the point) is located. A confidence is used to describe the probability + * that the object is located in the provided lane. The dimension of the object or extension of an area are not considered: See @ref OccupiedLanesWithConfidence for describing the occupation of lanes, + * where the dimensions of an object or the extension of an area is considered. + * + * It shall include the following components: + * + * @field lanePositionBased: lane position information for a defined reference position. + * + * @field mapBased: optional lane position information described in the context of a MAPEM as specified in ETSI TS 103 301 [15]. + * If present, it shall describe the same reference position using the lane identification in the MAPEM. This component can be used only if a MAPEM is available for the reference position + * (e.g. on an intersection): In this case it is used as a synonym to the mandatory component lanePositionBased. + * + * @field confidence: confidence information for expressing the probability that the object is located at the indicated lane. + * If the value of the component lanePositionBased is generated directly from the absolute reference position and reference topology information, + * no sensor shall be indicated in the component usedDetectionInformation of the @ref MetaInformation. + * + * @category: Road Topology information + * @revision: newly created in V2.2.1. The previous DF GeneralizedLanePosition is now renamed to @ref LanePositionOptions. + */ +GeneralizedLanePosition ::= SEQUENCE { + lanePositionBased LanePositionOptions, + mapBased MapPosition OPTIONAL, + confidence MetaInformation, + ... +} + +/** + * This DF represents transversal position information with respect to the road, at an externally defined reference position. It shall contain a set of up to `4` @ref GeneralizedLanePosition. + * Multiple entries can be used to describe several lane positions with the associated confidence, in cases where the reference position cannot be mapped to a single lane. + * + * @category: Road Topology information + * @revision: Created in V2.2.1 + */ +GeneralizedLanePositions ::= SEQUENCE (SIZE(1..4)) OF GeneralizedLanePosition + +/** + * This DF represents the Heading in a WGS84 co-ordinates system. + * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. + * + * It shall include the following components: + * + * @field headingValue: the heading value. + * + * @field headingConfidence: the confidence value of the heading value with a predefined confidence level. + * + * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref Wgs84Angle instead. + * @category: Kinematic Information + * @revision: Description revised in V2.1.1 + */ +Heading ::= SEQUENCE { + headingValue HeadingValue, + headingConfidence HeadingConfidence +} + + +/** + * This DF provides information associated to heading change indicators such as a change of direction. + * + * It shall include the following components: + * + * @field direction: the direction of heading change value. + * + * @field actionDeltaTime: the period over which a direction change action is performed. + * + * @category: Kinematic Information + * @revision: created in V2.1.1 + */ +HeadingChangeIndication ::= SEQUENCE { + direction TurningDirection, + actionDeltaTime DeltaTimeTenthOfSecond, + ... +} + +/** + * This DF represents a frequency channel + * + * It shall include the following components: + * + * @field centreFrequency: the centre frequency of the channel in 10^(exp+2) Hz (where exp is exponent) + * + * @field channelWidth: width of the channel in 10^exp Hz (where exp is exponent) + * + * @field exponent: exponent of the power of 10 used in the calculation of the components above. + * + * @category: Communication information + * @revision: created in V2.1.1 +*/ +InterferenceManagementChannel ::= SEQUENCE { + centreFrequency INTEGER (1 .. 99999), + channelWidth INTEGER (0 .. 9999), + exponent INTEGER (0 .. 15) +} + +/** + * + * This DF represents a zone inside which the ITS communication should be restricted in order to manage interference. + * + * It shall include the following components: + * + * @field zoneDefinition: contains the geographical definition of the zone. + * + * @field managementInfo: contains interference management information applicable in the zone defined in the component zoneDefinition. + * + * @category: Communication information + * @revision: created in V2.1.1 + */ +InterferenceManagementZone ::= SEQUENCE { + zoneDefinition InterferenceManagementZoneDefinition, + managementInfo InterferenceManagementInfo +} + +/** + * This DF represents the geographical definition of the zone where band sharing occurs. + * + * It shall include the following components: + * + * @field interferenceManagementZoneLatitude: Latitude of the centre point of the interference management zone. + * + * @field interferenceManagementZoneLongitude: Longitude of the centre point of the interference management zone. + * + * @field interferenceManagementZoneId: optional identification of the interference management zone. + * + * @field interferenceManagementZoneShape: shape of the interference management zone placed at the centre point. + * + * @category: Communication information + * @revision: created in V2.1.1 + */ +InterferenceManagementZoneDefinition::= SEQUENCE{ + interferenceManagementZoneLatitude Latitude, + interferenceManagementZoneLongitude Longitude, + interferenceManagementZoneId ProtectedZoneId OPTIONAL, + interferenceManagementZoneShape Shape + (WITH COMPONENTS{..., radial ABSENT, radialShapes ABSENT}) OPTIONAL, + ... +} + +/** + * This DF shall contain a list of up to 16 definitions containing interference management information, per affected frequency channels. + * + * @category: Communication information. + * @revision: created in V2.1.1 + */ +InterferenceManagementInfo::= SEQUENCE (SIZE(1..16,...)) OF InterferenceManagementInfoPerChannel + + +/** + * This DF contains interference management information for one affected frequency channel. + * + * It shall include the following components: + * + * @field interferenceManagementChannel: frequency channel for which the zone should be applied interference management + * + * @field interferenceManagementZoneType: type of the interference management zone. + * + * @field interferenceManagementMitigationType: optional type of the mitigation to be used in the interference management zone. + * In the case where no mitigation should be applied by the ITS-S, this is indicated by the field interferenceManagementMitigationType being absent. + * + * @field expiryTime: optional time at which the validity of the interference management communication zone will expire. + * This component is present when the interference management is temporarily valid + * + * @category: Communication information + * @revision: created in V2.1.1 + */ +InterferenceManagementInfoPerChannel ::= SEQUENCE { + interferenceManagementChannel InterferenceManagementChannel, + interferenceManagementZoneType InterferenceManagementZoneType, + interferenceManagementMitigationType MitigationForTechnologies OPTIONAL, + expiryTime TimestampIts OPTIONAL, + ... +} + +/** + * This DF shall contain a list of up to 16 interference management zones. + * + * **EXAMPLE**: An interference management communication zone may be defined around a CEN DSRC road side equipment or an urban rail operational area. + * + * @category: Communication information + * @revision: created in V2.1.1 + */ +InterferenceManagementZones ::= SEQUENCE (SIZE(1..16), ...) OF InterferenceManagementZone + +/** + * This DF represents a unique id for an intersection, in accordance with ETSI TS 103 301 [15]. + * + * It shall include the following components: + * + * @field region: the optional identifier of the entity that is responsible for the region in which the intersection is placed. + * It is the duty of that entity to guarantee that the @ref Id is unique within the region. + * + * @field id: the identifier of the intersection + * + * @note: when the component region is present, the IntersectionReferenceId is guaranteed to be globally unique. + * @category: Road topology information + * @revision: created in V2.1.1 + */ +IntersectionReferenceId ::= SEQUENCE { + region Identifier2B OPTIONAL, + id Identifier2B +} + +/** + * This DF shall contain a list of waypoints @ref ReferencePosition. + * + * @category: GeoReference information + * @revision: Editorial update in V2.1.1 + */ +ItineraryPath ::= SEQUENCE SIZE(1..40) OF ReferencePosition + +/** + * This DF represents a common message header for application and facilities layer messages. + * It is included at the beginning of an ITS message as the message header. + * + * It shall include the following components: + * + * @field protocolVersion: version of the ITS message. + * + * @field messageId: type of the ITS message. + * + * @field stationId: the identifier of the ITS-S that generated the ITS message. + * + * @category: Communication information + * @revision: update in V2.1.1: messageID and stationID changed to messageId and stationId; messageId is of type MessageId. + */ +ItsPduHeader ::= SEQUENCE { + protocolVersion OrdinalNumber1B, + messageId MessageId, + stationId StationId +} + +/** + * This DF provides the reference to the information contained in a IVIM according to ETSI TS 103 301 [15]. + * + * It shall include the following components: + * + * @field serviceProviderId: identifier of the organization that provided the IVIM. + * + * @field iviIdentificationNumber: identifier of the IVIM, as assigned by the organization identified in serviceProviderId. + * + * @category: Communication information + * @revision: Created in V2.2.1 + */ +IvimReference::= SEQUENCE { + serviceProviderId Provider, + iviIdentificationNumber IviIdentificationNumber +} + +/** + * This DF shall contain a list of @ref IvimReference. + * + * @category: Communication information + * @revision: Created in V2.2.1 +*/ +IvimReferences::= SEQUENCE (SIZE(1..8,...)) OF IvimReference + +/** + * This DF indicates a transversal position in resolution of lanes and other associated details. + * + * It shall include the following components: + * + * @field transversalPosition: the transversal position. + * + * @field laneType: the type of the lane identified in the component transversalPosition. By default set to `traffic`. + * + * @field direction: the traffic direction for the lane position relative to a defined reference direction. By default set to `sameDirection`, i.e. following the reference direction. + * + * @category Road topology information + * @revision: direction added in V2.2.1 + */ +LanePositionAndType::= SEQUENCE { + transversalPosition LanePosition, + laneType LaneType DEFAULT traffic, + direction Direction DEFAULT sameDirection, + ... +} + +/** + * This DF represents a set of options to describe a lane position and is the second level DF to represent a lane position. The top-level DFs are @ref GeneralizedLanePosition or @ref OccupiedLanesWithConfidence. + * A lane position is a transversal position on the carriageway at a specific longitudinal position, in resolution of lanes of the carriageway. + * + * The following options are available: + * + * @field simplelanePosition: a single lane position without any additional context information. + * + * @field simpleLaneType: a lane type, to be used when the lane position is unknown but the type of lane is known. This can be used in scenarios where a certain confidence about the used lane type is given + * but no or limited knowledge about the absolute lane number is available. For example, a cyclist on a cycle-lane or vehicles on a specific lane that is unique for the part of the road (e.g. a bus lane). + * + * @field detailedlanePosition: a single lane position with additional lane details. + * + * @field lanePositionWithLateralDetails: a single lane position with additional details and the lateral position within the lane. + * + * @field trafficIslandPosition: a position on a traffic island, i.e. between two lanes. + * + * @category: Road Topology information + * @revision: Created in V2.2.1 from the DF GeneralizedLanePosition of V2.1.1. + */ +LanePositionOptions ::= CHOICE { + simplelanePosition LanePosition, + simpleLaneType LaneType, + detailedlanePosition LanePositionAndType, + lanePositionWithLateralDetails LanePositionWithLateralDetails, + trafficIslandPosition TrafficIslandPosition, + ... +} + +/** + * This DF is a third-level DF that represents a lane position and is an extended version of @ref LanePositionAndType that adds the distances to the left and right lane border. + * + * It shall additionally include the following components: + * + * @field distanceToLeftBorder: the distance of the transversal position to the left lane border. The real value shall be rounded to the next lower encoding-value. + * + * @field distanceToRightBorder: the distance of the transversal position to the right lane border. The real value shall be rounded to the next lower encoding-value. + * + * @category: Road Topology information + * @revision: Created in V2.2.1 + */ +LanePositionWithLateralDetails ::= SEQUENCE { + COMPONENTS OF LanePositionAndType, + distanceToLeftBorder StandardLength9b, + distanceToRightBorder StandardLength9b, + ... +} + +/** + * This DF indicates the vehicle acceleration at lateral direction and the confidence value of the lateral acceleration. + * + * It shall include the following components: + * + * @field lateralAccelerationValue: lateral acceleration value at a point in time. + * + * @field lateralAccelerationConfidence: confidence value of the lateral acceleration value. + * + * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationComponent instead. + * @category Vehicle information + * @revision: Description revised in V2.1.1 + */ +LateralAcceleration ::= SEQUENCE { + lateralAccelerationValue LateralAccelerationValue, + lateralAccelerationConfidence AccelerationConfidence +} + +/** + * This DF indicates the vehicle acceleration at longitudinal direction and the confidence value of the longitudinal acceleration. + * + * It shall include the following components: + * + * @field longitudinalAccelerationValue: longitudinal acceleration value at a point in time. + + * @field longitudinalAccelerationConfidence: confidence value of the longitudinal acceleration value. + * + * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationComponent instead. + * @category: Vehicle information + * @revision: V1.3.1 + */ +LongitudinalAcceleration ::= SEQUENCE { + longitudinalAccelerationValue LongitudinalAccelerationValue, + longitudinalAccelerationConfidence AccelerationConfidence +} + +/** + * This DF represents the estimated position along the longitudinal extension of a carriageway or lane. + * + * It shall include the following components: + * + * @field longitudinalLanePositionValue: the mean value of the longitudinal position along the carriageway or lane w.r.t. an externally defined start position. + * + * @field longitudinalLanePositionConfidence: The confidence value associated to the value. + * + * @category: Road topology information + * @revision: created in V2.1.1, description revised in V2.2.1 + */ +LongitudinalLanePosition ::= SEQUENCE { + longitudinalLanePositionValue LongitudinalLanePositionValue, + longitudinalLanePositionConfidence LongitudinalLanePositionConfidence +} + +/** + * This DF shall contain a list of a lower triangular positive semi-definite matrices. + * + * @category: Sensing information + * @revision: Created in V2.1.1 +*/ +LowerTriangularPositiveSemidefiniteMatrices::= SEQUENCE SIZE (1..4) OF LowerTriangularPositiveSemidefiniteMatrix + +/** + * This DF represents a lower triangular positive semi-definite matrix. + * + * It shall include the following components: + * + * @field componentsIncludedIntheMatrix: the indication of which components of a @ref PerceivedObject are included in the matrix. + * This component also implicitly indicates the number n of included components which defines the size (n x n) of the full correlation matrix "A". + * + * @field matrix: the list of cells of the lower triangular positive semi-definite matrix ordered by columns and by rows. + * + * The number of columns to be included "k" is equal to the number of included components "n" indicated by componentsIncludedIntheMatrix minus 1: k = n-1. + * These components shall be included in the order or their appearance in componentsIncludedIntheMatrix. + * Each column "i" of the lowerTriangularCorrelationMatrixColumns contains k-(i-1) values. + * + * @category: Sensing information + * @revision: Created in V2.1.1 +*/ +LowerTriangularPositiveSemidefiniteMatrix ::= SEQUENCE{ + componentsIncludedIntheMatrix MatrixIncludedComponents, + matrix LowerTriangularPositiveSemidefiniteMatrixColumns +} + +/** + * This DF represents the columns of a lower triangular positive semi-definite matrix, each column not including the main diagonal cell of the matrix. + * Given a matrix "A" of size n x n, the number of @ref CorrelationColumn to be included in the lower triangular matrix is k=n-1. + * + * @category: Sensing information + * @revision: Created in V2.1.1, extension indicator added in V2.2.1 +*/ +LowerTriangularPositiveSemidefiniteMatrixColumns ::= SEQUENCE SIZE (1..13,...) OF CorrelationColumn + +/** + * This DF provides information about the configuration of a road section in terms of MAPEM lanes or connections using a list of @ref MapemExtractedElementReference. + + * @category: Road topology information + * @revision: Created in V2.2.1 +*/ +MapemConfiguration::= SEQUENCE(SIZE(1..16,...)) OF MapemElementReference + +/** + * This DF provides references to an element described in a MAPEM according to ETSI TS 103 301 [i.15], such as a lane or connection at a specific intersection or road segment. + * + * It shall include the following components: + * + * @field mapReference: the optional reference to a MAPEM that describes the intersection or road segment. It is absent if the MAPEM topology is known from the context. + * + * @field laneIds: the optional list of the identifiers of the lanes to be referenced. + * + * @field connectionIds: the optional list of the identifiers of the connections to be referenced. + * + * @category: Road topology information + * @revision: Created in V2.2.1 +*/ + +MapemElementReference::= SEQUENCE { + mapReference MapReference OPTIONAL, + laneIds MapemLaneList OPTIONAL, + connectionIds MapemConnectionList OPTIONAL, + ... +} +((WITH COMPONENTS {..., laneIds PRESENT}) | + (WITH COMPONENTS {..., connectionIds PRESENT })) + +/** + * This DF provides references to MAPEM lanes using a list of @ref Identifier1B. + * + * @category: Road topology information + * @revision: Created in 2.2.1 +*/ +MapemLaneList ::= SEQUENCE (SIZE(1..8,...)) OF Identifier1B + +/** + * This DF provides references to MAPEM connections using a list of @ref Identifier1B. + * Note: connections are allowed �maneuvers� (e.g. an ingress / egress relation) on an intersection. + * + * @category: Road topology information + * @revision: Created in V2.2.1 +*/ +MapemConnectionList ::= SEQUENCE (SIZE(1..8,...)) OF Identifier1B + +/** + * This DF indicates a position on a topology description transmitted in a MAPEM according to ETSI TS 103 301 [15]. + * + * It shall include the following components: + * + * @field mapReference: optionally identifies the MAPEM containing the topology information. + * It is absent if the MAPEM topology is known from the context. + * + * @field laneId: optionally identifies the lane in the road segment or intersection topology on which the position is located. + * + * @field connectionId: optionally identifies the connection inside the conflict area of an intersection, i.e. it identifies a trajectory for travelling through the + * conflict area of an intersection which connects e.g an ingress with an egress lane. + * + * @field longitudinalLanePosition: optionally indicates the longitudinal offset of the map-matched position of the object along the lane or connection measured from the start of the lane/connection, along the lane. + * + * @category: Road topology information + * @revision: Created in V2.1.1, definition of longitudinalLanePosition amended in V2.2.1 + */ +MapPosition ::= SEQUENCE { + mapReference MapReference OPTIONAL, + laneId Identifier1B OPTIONAL, + connectionId Identifier1B OPTIONAL, + longitudinalLanePosition LongitudinalLanePosition OPTIONAL, + ... +} + ((WITH COMPONENTS {..., laneId PRESENT, connectionId ABSENT }) | + (WITH COMPONENTS {..., laneId ABSENT, connectionId PRESENT })) + +/** + * This DF provides the reference to the information contained in a MAPEM according to ETSI TS 103 301 [15]. + * + * The following options are provided: + * + * @field roadsegment: option that identifies the description of a road segment contained in a MAPEM. + * + * @field intersection: option that identifies the description of an intersection contained in a MAPEM. + * + * @category: Road topology information + * @revision: Created in V2.1.1 + */ +MapReference::= CHOICE { + roadsegment RoadSegmentReferenceId, + intersection IntersectionReferenceId +} + +/** + * This DF shall contain a list of @ref MapReference. + * + * @category: Road topology information + * @revision: Created in V2.2.1 +*/ +MapReferences::= SEQUENCE (SIZE(1..8,...)) OF MapReference + + +/** + * This DE indicates a message rate. + * + * @field mantissa: indicates the mantissa. + * + * @field exponent: indicates the exponent. + * + * The specified message rate is: mantissa*(10^exponent) + * + * @unit: Hz + * @category: Communication information + * @revision: Created in V2.1.1 + */ +MessageRateHz::= SEQUENCE { + mantissa INTEGER (1..100), + exponent INTEGER (-5..2) +} + +/** + * This DF provides information about a message with respect to the segmentation process on facility layer at the sender. + * + * It shall include the following components: + * + * @field totalMsgNo: indicates the total number of messages that have been assembled on the transmitter side to encode the information + * during the same messsage generation process. + * + * @field thisMsgNo: indicates the position of the message within of the total set of messages generated during the same message generation process. + * + * @category: Communication information + * @revision: Created in V2.1.1, description revised in V2.2.1 + */ +MessageSegmentationInfo ::= SEQUENCE { + totalMsgNo CardinalNumber3b, + thisMsgNo OrdinalNumber3b +} + +/** + * This DF provides information about the source of and confidence in information. + * + * It shall include the following components: + * + * @field usedDetectionInformation: the type of sensor(s) that is used to provide the detection information. + * + * @field usedStoredInformation: the type of source of the stored information. + * + * @field confidenceValue: an optional confidence value associated to the information. + * + * @category: Basic information + * @revision: Created in V2.2.1 +*/ +MetaInformation::=SEQUENCE{ + usedDetectionInformation SensorTypes, + usedStoredInformation StoredInformationType, + confidenceValue ConfidenceLevel OPTIONAL, + ... +} + +/** + * This DF shall contain a list of @ref MitigationPerTechnologyClass. + * + * @category: Communication information + * @revision: Created in V2.1.1 +*/ +MitigationForTechnologies ::= SEQUENCE (SIZE(1..8)) OF MitigationPerTechnologyClass + +/** + * This DF represents a set of mitigation parameters for a specific technology, as specified in ETSI TS 103 724 [24], clause 7. + * + * It shall include the following components: + * + * @field accessTechnologyClass: channel access technology to which this mitigation is intended to be applied. + * + * @field lowDutyCycle: duty cycle limit. + * @unit: 0,01 % steps + * + * @field powerReduction: the delta value of power to be reduced. + * @unit: dB + * + * @field dmcToffLimit: idle time limit as defined in ETSI TS 103 175 [19]. + * @unit: ms + * + * @field dmcTonLimit: Transmission duration limit, as defined in ETSI EN 302 571 [20]. + * @unit: ms + * + * @note: All parameters are optional, as they may not apply to some of the technologies or + * interference management zone types. Specification details are in ETSI TS 103 724 [24], clause 7. + * + * @category: Communication information + * @revision: Created in V2.1.1 + */ +MitigationPerTechnologyClass ::= SEQUENCE { + accessTechnologyClass AccessTechnologyClass, + lowDutyCycle INTEGER (0 .. 10000) OPTIONAL, + powerReduction INTEGER (0 .. 30) OPTIONAL, + dmcToffLimit INTEGER (0 .. 1200) OPTIONAL, + dmcTonLimit INTEGER (0 .. 20) OPTIONAL, + ... +} + +/** + * This DF indicates both the class and associated subclass that best describes an object. + * + * The following options are available: + * + * @field vehicleSubClass: the object is a road vehicle and the specific subclass is specified. + * + * @field vruSubClass: the object is a VRU and the specific subclass is specified. + * + * @field groupSubClass: the object is a VRU group or cluster and the cluster information is specified. + * + * @field otherSubClass: the object is of a different type than the above and the specific subclass is specified. + * + * @category: Sensing information + * @revision: Created in V2.1.1 + */ +ObjectClass ::= CHOICE { + vehicleSubClass TrafficParticipantType (unknown|passengerCar..tram|agricultural), + vruSubClass VruProfileAndSubprofile, + groupSubClass VruClusterInformation + (WITH COMPONENTS{..., clusterBoundingBoxShape ABSENT}), + otherSubClass OtherSubClass, + ... +} + +/** + * This DF shall contain a list of object classes. + * + * @category: Sensing information + * @revision: Created in V2.1.1 +*/ +ObjectClassDescription ::= SEQUENCE (SIZE(1..8)) OF ObjectClassWithConfidence + +/** + * This DF represents the classification of a detected object together with a confidence level. + * + * It shall include the following components: + * + * @field objectClass: the class of the object. + * + * @field Confidence: the associated confidence level. + * + * @category: Sensing information + * @revision: Created in V2.1.1 +*/ +ObjectClassWithConfidence ::= SEQUENCE { + objectClass ObjectClass, + confidence ConfidenceLevel +} + +/** + * This DF represents a dimension of an object together with a confidence value. + * + * It shall include the following components: + * + * @field value: the object dimension value which can be estimated as the mean of the current distribution. + * + * @field confidence: the associated confidence value. + * + * @category: Sensing information + * @revision: Created in V2.1.1 +*/ +ObjectDimension ::= SEQUENCE { + value ObjectDimensionValue, + confidence ObjectDimensionConfidence +} + +/** + * This DF represents a set of lanes which are partially or fully occupied by an object or event at an externally defined reference position. + * + * @note: In contrast to @ref GeneralizedLanePosition, the dimension of the object or event area (width and length) is taken into account to determine the occupancy, + * i.e. this DF describes the lanes which are blocked by an object or event and not the position of the object / event itself. A confidence is used to describe the + * probability that exactly all the provided lanes are occupied. + * + * It shall include the following components: + * + * @field lanePositionBased: a set of up to `4` lanes that are partially or fully occupied by an object or event, ordered by increasing value of @ref LanePosition. + * Lanes that are partially occupied can be described using the component lanePositionWithLateralDetails of @ref Options, with the following constraints: + * The distance to lane borders which are covered by the object / event shall be set to 0. Only the distances to the leftmost and/or rightmost border which are not covered by + * the object / event shall be provided with values > 0. Those values shall be added to the respective instances of @ref LanePositionOptions, i.e. the first entry shall contain the component distanceToLeftBorder > 0 , + * and/or the last entry shall contain the component distanceToRightBorder > 0; the respective other components of these entries shall be set to 0. + * + * @field mapBased: optional lane information described in the context of a MAPEM as specified in ETSI TS 103 301 [15]. + * If present, it shall describe the same lane(s) as listed in the component lanePositionBased, but using the lane identification of the MAPEM. This component can be used only if a + * MAPEM is available for the reference position (e.g. on an intersection): In this case it is used as a synonym to the mandatory component lanePositionBased. + * + * @field confidence: mandatory confidence information for expressing the probability that all the provided lanes are occupied. It also provides information on how the lane + * information were generated. If none of the sensors were used, the lane information is assumed to be derived directly from the absolute reference position and the related dimension. + * + * @category: Road Topology information + * @revision: Created in V2.2.1 + */ +OccupiedLanesWithConfidence::= SEQUENCE { + lanePositionBased SEQUENCE (SIZE(1..4)) OF LanePositionOptions, + mapBased SEQUENCE (SIZE(1..4)) OF MapPosition OPTIONAL, + confidence MetaInformation, + ... +} + +/** + * This DF represents a path with a set of path points. + * It shall contain up to `40` @ref PathPoint. + * + * The first PathPoint presents an offset delta position with regards to an external reference position. + * Each other PathPoint presents an offset delta position and optionally an offset travel time with regards to the previous PathPoint. + * + * @category: GeoReference information, Vehicle information + * @revision: created in V2.1.1 based on PathHistory + */ +Path::= SEQUENCE (SIZE(0..40)) OF PathPoint + +/** + * This DF represents estimated/predicted travel time between a position and a predefined reference position. + * + * the following options are available: + * + * @field deltaTimeHighPrecision: delta time with precision of 0,1 s. + * + * @field deltaTimeBigRange: delta time with precision of 10 s. + * + * @category: Basic information + * @revision: Created in V2.2.1 + */ +PathDeltaTimeChoice::= CHOICE { + deltaTimeHighPrecision DeltaTimeTenthOfSecond, + deltaTimeBigRange DeltaTimeTenSeconds, + ... +} + +/** + * This DF represents a path towards a specific point specified in the @ref EventZone. + * + * It shall include the following components: + * + * @field pointOfEventZone: the ordinal number of the point within the DF EventZone, i.e. within the list of EventPoints. + * + * @field path: the associated path towards the point specified in pointOfEventZone. + * The first PathPoint presents an offset delta position with regards to the position of that pointOfEventZone. + * + * @category: GeoReference information + * @revision: Created in V2.2.1 +*/ +PathExtended::= SEQUENCE { + pointOfEventZone INTEGER(1..23), + path Path +} + +/** + * This DF represents a path history with a set of path points. + * It shall contain up to `40` @ref PathPoint. + * + * The first PathPoint presents an offset delta position with regards to an external reference position. + * Each other PathPoint presents an offset delta position and optionally an offset travel time with regards to the previous PathPoint. + * + * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref Path instead. + * @category: GeoReference information, Vehicle information + * @revision: semantics updated in V2.1.1, size corrected to 0..40 in V2.2.1 + */ +PathHistory::= SEQUENCE (SIZE(0..40)) OF PathPoint + +/** + * This DF represents a predicted path or trajectory with a set of predicted points and optional information to generate a shape which is estimated to contain the real path. + * It shall contain up to `16` @ref PathPointPredicted. + * + * The first PathPoint presents an offset delta position with regards to an external reference position. + * Each other PathPoint presents an offset delta position and optionally an offset travel time with regards to the previous PathPoint. + * + * @category: GeoReference information + * @revision: created in V2.1.1 , size constraint changed to SIZE(1..16, ...) in V2.2.1 + */ +PathPredicted::= SEQUENCE (SIZE(1..16,...)) OF PathPointPredicted + +/** + * This DF represents a predicted path, predicted trajectory or predicted path zone together with usage information and a prediction confidence. + * + * It shall include the following components: + * + * @field pathPredicted: the predicted path (pathDeltaTime ABSENT) or trajectory (pathDeltaTime PRESENT) and/or the path zone (symmetricAreaOffset PRESENT). + * + * @field usageIndication: an indication of how the predicted path will be used. + * + * @field confidenceLevel: the confidence that the path/trajectory in pathPredicted will occur as predicted. + * + * @category: GeoReference information + * @revision: created in V2.2.1 + */ +PathPredicted2::= SEQUENCE{ + pathPredicted PathPredicted + ((WITH COMPONENT (WITH COMPONENTS {..., pathDeltaTime ABSENT, symmetricAreaOffset ABSENT})) | + (WITH COMPONENT (WITH COMPONENTS {..., pathDeltaTime PRESENT, symmetricAreaOffset ABSENT})) | + (WITH COMPONENT (WITH COMPONENTS {..., pathDeltaTime ABSENT, symmetricAreaOffset PRESENT})) | + (WITH COMPONENT (WITH COMPONENTS {..., pathDeltaTime PRESENT, symmetricAreaOffset PRESENT}))), + usageIndication UsageIndication, + confidenceLevel ConfidenceLevel, + ... +} + +/** + * This DF represents one or more predicted paths, or trajectories or path zones (zones that include all possible paths/trajectories within its boundaries) using @ref PathPredicted2. + * It shall contain up to `16` @ref PathPredicted2. + * + * @category: GeoReference information + * @revision: V2.2.1 + */ +PathPredictedList ::= SEQUENCE SIZE(1..16,...) OF PathPredicted2 + +/** + * This DF defines an offset waypoint position within a path. + * + * It shall include the following components: + * + * @field pathPosition: The waypoint position defined as an offset position with regards to a pre-defined reference position. + * + * @field pathDeltaTime: The optional travel time separated from a waypoint to the predefined reference position. + * + * @category GeoReference information + * @revision: semantics updated in V2.1.1 + */ +PathPoint ::= SEQUENCE { + pathPosition DeltaReferencePosition, + pathDeltaTime PathDeltaTime OPTIONAL +} + +/** + * This DF defines a predicted offset position that can be used within a predicted path or trajectory, together with optional data to describe a path zone shape. + * + * It shall include the following components: + * + * @field deltaLatitude: the offset latitude with regards to a pre-defined reference position. + * + * @field deltaLongitude: the offset longitude with regards to a pre-defined reference position. + * + * @field horizontalPositionConfidence: the optional confidence value associated to the horizontal geographical position. + * + * @field deltaAltitude: the optional offset altitude with regards to a pre-defined reference position, with default value unavailable. + * + * @field altitudeConfidence: the optional confidence value associated to the altitude value of the geographical position, with default value unavailable. + * + * @field pathDeltaTime: the optional travel time to the waypoint from the predefined reference position. + + * @field symmetricAreaOffset: the optional symmetric offset to generate a shape, see Annex D for details. + * + * @field asymmetricAreaOffset: the optional asymmetric offset to generate a shape, see Annex D for details. + * + * @category GeoReference information + * @revision: Created in V2.1.1, type of pathDeltaTime changed and optionality added, fields symmetricAreaOffset and asymmetricAreaOffset added in V2.2.1 + */ +PathPointPredicted::= SEQUENCE { + deltaLatitude DeltaLatitude, + deltaLongitude DeltaLongitude, + horizontalPositionConfidence PosConfidenceEllipse OPTIONAL, + deltaAltitude DeltaAltitude DEFAULT unavailable, + altitudeConfidence AltitudeConfidence DEFAULT unavailable, + pathDeltaTime PathDeltaTimeChoice OPTIONAL, + symmetricAreaOffset StandardLength9b OPTIONAL, + asymmetricAreaOffset StandardLength9b OPTIONAL, + ... +} + ((WITH COMPONENTS {..., symmetricAreaOffset ABSENT, asymmetricAreaOffset ABSENT}) | + (WITH COMPONENTS {..., symmetricAreaOffset PRESENT, asymmetricAreaOffset ABSENT}) | + (WITH COMPONENTS {..., symmetricAreaOffset PRESENT, asymmetricAreaOffset PRESENT})) + +/** + * This DF represents a list of references to the components of a @ref Traces or @ref TracesExtended DF using the @ref PathId. + * + * @category: Road topology information + * @revision: Created in V2.2.1 +*/ +PathReferences ::= SEQUENCE (SIZE(1..14)) OF PathId + +/** + * This DF contains information about a perceived object including its kinematic state and attitude vector in a pre-defined coordinate system and with respect to a reference time. + * + * It shall include the following components: + * + * @field objectId: optional identifier assigned to a detected object. + * + * @field measurementDeltaTime: the time difference from a reference time to the time of the measurement of the object. + * Negative values indicate that the provided object state refers to a point in time before the reference time. + * + * @field position: the position of the geometric centre of the object's bounding box within the pre-defined coordinate system. + * + * @field velocity: the velocity vector of the object within the pre-defined coordinate system. + * + * @field acceleration: the acceleration vector of the object within the pre-defined coordinate system. + * + * @field angles: optional Euler angles of the object bounding box at the time of measurement. + * + * @field zAngularVelocity: optional angular velocity of the object around the z-axis at the time of measurement. + * The angular velocity is measured with positive values considering the object orientation turning around the z-axis using the right-hand rule. + * + * @field lowerTriangularCorrelationMatrices: optional set of lower triangular correlation matrices for selected components of the provided kinematic state and attitude vector. + * + * @field objectDimensionZ: optional z-dimension of object bounding box. + * This dimension shall be measured along the direction of the z-axis after all the rotations have been applied. + * + * @field objectDimensionY: optional y-dimension of the object bounding box. + * This dimension shall be measured along the direction of the y-axis after all the rotations have been applied. + * + * @field objectDimensionX: optional x-dimension of object bounding box. + * This dimension shall be measured along the direction of the x-axis after all the rotations have been applied. + * + * @field objectAge: optional age of the detected and described object, i.e. the difference in time between the moment + * it has been first detected and the reference time of the message. Value `1500` indicates that the object has been observed for more than 1.5s. + * + * @field objectPerceptionQuality: optional confidence associated to the object. + * + * @field sensorIdList: optional list of sensor-IDs which provided the measurement data. + * + * @field classification: optional classification of the described object + * + * @field matchedPosition: optional map-matched position of an object. + * + * @category Sensing information + * @revision: created in V2.1.1 + */ +PerceivedObject ::= SEQUENCE { + objectId Identifier2B OPTIONAL, + measurementDeltaTime DeltaTimeMilliSecondSigned, + position CartesianPosition3dWithConfidence, + velocity Velocity3dWithConfidence OPTIONAL, + acceleration Acceleration3dWithConfidence OPTIONAL, + angles EulerAnglesWithConfidence OPTIONAL, + zAngularVelocity CartesianAngularVelocityComponent OPTIONAL, + lowerTriangularCorrelationMatrices LowerTriangularPositiveSemidefiniteMatrices OPTIONAL, + objectDimensionZ ObjectDimension OPTIONAL, + objectDimensionY ObjectDimension OPTIONAL, + objectDimensionX ObjectDimension OPTIONAL, + objectAge DeltaTimeMilliSecondSigned (0..2047) OPTIONAL, + objectPerceptionQuality ObjectPerceptionQuality OPTIONAL, + sensorIdList SequenceOfIdentifier1B OPTIONAL, + classification ObjectClassDescription OPTIONAL, + mapPosition MapPosition OPTIONAL, + ... +} + +/** + * This DF represents the shape of a polygonal area or of a right prism. + * + * It shall include the following components: + * + * @field shapeReferencePoint: the optional reference point used for the definition of the shape, relative to an externally specified reference position. + * If this component is absent, the externally specified reference position represents the shape's reference point. + * + * @field polygon: the polygonal area represented by a list of minimum `3` to maximum `16` @ref CartesianPosition3d. + * All nodes of the polygon shall be considered relative to the shape's reference point. + * + * @field height: the optional height, present if the shape is a right prism extending in the positive z-axis. + * + * @category GeoReference information + * @revision: created in V2.1.1 + * + */ +PolygonalShape ::= SEQUENCE { + shapeReferencePoint CartesianPosition3d OPTIONAL, + polygon SequenceOfCartesianPosition3d (SIZE(3..16,...)), + height StandardLength12b OPTIONAL +} + +/** + * This DF indicates the horizontal position confidence ellipse which represents the estimated accuracy with a + * confidence level of 95 %. The centre of the ellipse shape corresponds to the reference + * position point for which the position accuracy is evaluated. + * + * It shall include the following components: + * + * @field semiMajorConfidence: half of length of the major axis, i.e. distance between the centre point + * and major axis point of the position accuracy ellipse. + * + * @field semiMinorConfidence: half of length of the minor axis, i.e. distance between the centre point + * and minor axis point of the position accuracy ellipse. + * + * @field semiMajorOrientation: orientation direction of the ellipse major axis of the position accuracy + * ellipse with regards to the WGS84 north. + * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. + * + * + * @category GeoReference information + * @revision: V1.3.1 + */ +PosConfidenceEllipse ::= SEQUENCE { + semiMajorConfidence SemiAxisLength, + semiMinorConfidence SemiAxisLength, + semiMajorOrientation HeadingValue +} + +/** + * This DF indicates the horizontal position confidence ellipse which represents the estimated accuracy with a + * confidence level of 95 %. The centre of the ellipse shape corresponds to the reference + * position point for which the position accuracy is evaluated. + * + * It shall include the following components: + * + * @field semiMajorAxisLength: half of length of the major axis, i.e. distance between the centre point + * and major axis point of the position accuracy ellipse. + * + * @field semiMinorAxisLength: half of length of the minor axis, i.e. distance between the centre point + * and minor axis point of the position accuracy ellipse. + * + * @field semiMajorAxisOrientation: orientation direction of the ellipse major axis of the position accuracy + * ellipse with regards to the WGS84 north. + * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. + * + * @category GeoReference information + * @revision: created in V2.1.1 based on @ref PosConfidenceEllipse + */ +PositionConfidenceEllipse ::= SEQUENCE { + semiMajorAxisLength SemiAxisLength, + semiMinorAxisLength SemiAxisLength, + semiMajorAxisOrientation Wgs84AngleValue +} + +/** + * This DF shall contain a list of distances @ref PosPillar that refer to the perpendicular distance between centre of vehicle front bumper + * and vehicle pillar A, between neighbour pillars until the last pillar of the vehicle. + * + * Vehicle pillars refer to the vertical or near vertical support of vehicle, + * designated respectively as the A, B, C or D and other pillars moving in side profile view from the front to rear. + * + * The first value of the DF refers to the perpendicular distance from the centre of vehicle front bumper to + * vehicle A pillar. The second value refers to the perpendicular distance from the centre position of A pillar + * to the B pillar of vehicle and so on until the last pillar. + * + * @category: Vehicle information + * @revision: V1.3.1 + */ +PositionOfPillars ::= SEQUENCE (SIZE(1..3, ...)) OF PosPillar + +/** + * This DF describes a zone of protection inside which the ITS communication should be restricted. + * + * It shall include the following components: + * + * @field protectedZoneType: type of the protected zone. + * + * @field expiryTime: optional time at which the validity of the protected communication zone will expire. + * + * @field protectedZoneLatitude: latitude of the centre point of the protected communication zone. + * + * @field protectedZoneLongitude: longitude of the centre point of the protected communication zone. + * + * @field protectedZoneRadius: optional radius of the protected communication zone in metres. + * + * @field protectedZoneId: the optional ID of the protected communication zone. + * + * @note: A protected communication zone may be defined around a CEN DSRC road side equipment. + * + * @category: Infrastructure information, Communication information + * @revision: revised in V2.1.1 (changed protectedZoneID to protectedZoneId) + */ +ProtectedCommunicationZone ::= SEQUENCE { + protectedZoneType ProtectedZoneType, + expiryTime TimestampIts OPTIONAL, + protectedZoneLatitude Latitude, + protectedZoneLongitude Longitude, + protectedZoneRadius ProtectedZoneRadius OPTIONAL, + protectedZoneId ProtectedZoneId OPTIONAL, + ... +} + +/** + * This DF shall contain a list of @ref ProtectedCommunicationZone provided by a road side ITS-S (Road Side Unit RSU). + * + * It may provide up to 16 protected communication zones information. + * + * @category: Infrastructure information, Communication information + * @revision: V1.3.1 + */ +ProtectedCommunicationZonesRSU ::= SEQUENCE (SIZE(1..16)) OF ProtectedCommunicationZone + +/** + * This DF identifies an organization. + * + * It shall include the following components: + * + * @field countryCode: represents the country code that identifies the country of the national registration administrator for issuers according to ISO 14816. + * + * @field providerIdentifier: identifies the organization according to the national ISO 14816 register for issuers. + * + * @note: See https://www.itsstandards.eu/registries/register-of-nra-i-cs1/ for a list of national registration administrators and their respective registers + * + * @category: Communication information + * @revision: Created in V2.2.1 based on ISO 17573-3 [24] + */ +Provider ::= SEQUENCE { + countryCode CountryCode, + providerIdentifier IssuerIdentifier +} + +/** + * This DF represents activation data for real-time systems designed for operations control, traffic light priorities, track switches, barriers, etc. + * using a range of activation devices equipped in public transport vehicles. + * + * The activation of the corresponding equipment is triggered by the approach or passage of a public transport + * vehicle at a certain point (e.g. a beacon). + * + * @field ptActivationType: type of activation. + * + * @field ptActicationData: data of activation. + * + * Today there are different payload variants defined for public transport activation-data. The R09.x is one of + * the industry standard used by public transport vehicles (e.g. buses, trams) in Europe (e.g. Germany Austria) + * for controlling traffic lights, barriers, bollards, etc. This DF shall include information like route, course, + * destination, priority, etc. + * + * The R09.x content is defined in VDV recommendation 420 [7]. It includes following information: + * - Priority Request Information (pre-request, request, ready to start) + * - End of Prioritization procedure + * - Priority request direction + * - Public Transport line number + * - Priority of public transport + * - Route line identifier of the public transport + * - Route number identification + * - Destination of public transport vehicle + * + * Other countries may use different message sets defined by the local administration. + * @category: Vehicle information + * @revision: V1.3.1 + */ +PtActivation ::= SEQUENCE { + ptActivationType PtActivationType, + ptActivationData PtActivationData +} + +/** + * This DF describes a radial shape. The circular or spherical sector is constructed by sweeping + * the provided range about the reference position specified outside of the context of this DF or + * about the optional shapeReferencePoint. The range is swept between a horizontal start and a + * horizontal end angle in the X-Y plane of a cartesian coordinate system specified outside of the + * context of this DF, in a right-hand positive angular direction w.r.t. the x-axis. + * A vertical opening angle in the X-Z plane may optionally be provided in a right-hand positive + * angular direction w.r.t. the x-axis. + * + * It shall include the following components: + * + * @field shapeReferencePoint: the optional reference point used for the definition of the shape, + * relative to an externally specified reference position. If this component is absent, the + * externally specified reference position represents the shape's reference point. + * + * @field range: the radial range of the shape from the shape's reference point. + * + * @field horizontalOpeningAngleStart: the start of the shape's horizontal opening angle. + * + * @field horizontalOpeningAngleEnd: the end of the shape's horizontal opening angle. + * + * @field verticalOpeningAngleStart: optional start of the shape's vertical opening angle. + * + * @field verticalOpeningAngleEnd: optional end of the shape's vertical opening angle. + * + * @category GeoReference information + * @revision: created in V2.1.1, names and types of the horizontal opening angles changed, constraint added and description revised in V2.2.1 +*/ +RadialShape ::= SEQUENCE { + shapeReferencePoint CartesianPosition3d OPTIONAL, + range StandardLength12b, + horizontalOpeningAngleStart CartesianAngleValue, + horizontalOpeningAngleEnd CartesianAngleValue, + verticalOpeningAngleStart CartesianAngleValue OPTIONAL, + verticalOpeningAngleEnd CartesianAngleValue OPTIONAL +} + ((WITH COMPONENTS {..., verticalOpeningAngleStart ABSENT, verticalOpeningAngleEnd ABSENT }) | + (WITH COMPONENTS {..., verticalOpeningAngleStart PRESENT, verticalOpeningAngleEnd PRESENT })) + + +/** + * This DF describes a list of radial shapes positioned w.r.t. to an offset position defined + * relative to a reference position specified outside of the context of this DF and oriented w.r.t. + * a cartesian coordinate system specified outside of the context of this DF. + * + * It shall include the following components: + * + * @field refPointId: the identification of the reference point in case of a sensor mounted to trailer. Defaults to ITS ReferencePoint (0). + * + * @field xCoordinate: the x-coordinate of the offset position. + * + * @field yCoordinate: the y-coordinate of the offset position. + * + * @field zCoordinate: the optional z-coordinate of the offset position. + * + * @field radialShapesList: the list of radial shape details. + * + * @category: Georeference information + * @revision: created in V2.1.1, description revised in V2.2.1 + */ +RadialShapes ::= SEQUENCE { + refPointId Identifier1B, + xCoordinate CartesianCoordinateSmall, + yCoordinate CartesianCoordinateSmall, + zCoordinate CartesianCoordinateSmall OPTIONAL, + radialShapesList RadialShapesList +} + +/** + * The DF contains a list of @ref RadialShapeDetails. + * + * @category: Georeference information + * @revision: created in V2.1.1 + */ + +RadialShapesList ::= SEQUENCE SIZE(1..16,...) OF RadialShapeDetails + +/** + * This DF describes radial shape details. The circular sector or cone is + * constructed by sweeping the provided range about the position specified outside of the + * context of this DF. The range is swept between a horizontal start and a horizontal end angle in + * the X-Y plane of a right-hand cartesian coordinate system specified outside of the context of + * this DF, in positive angular direction w.r.t. the x-axis. A vertical opening angle in the X-Z + * plane may optionally be provided in positive angular direction w.r.t. the x-axis. + * + * It shall include the following components: + * + * @field range: the radial range of the sensor from the reference point or sensor point offset. + * + * @field horizontalOpeningAngleStart: the start of the shape's horizontal opening angle. + * + * @field horizontalOpeningAngleEnd: the end of the shape's horizontal opening angle. + * + * @field verticalOpeningAngleStart: optional start of the shape's vertical opening angle. + * + * @field verticalOpeningAngleEnd: optional end of the shape's vertical opening angle. + * + * @category: Georeference information + * @revision: created in V2.1.1, description revised and constraint added in V2.2.1 + */ +RadialShapeDetails ::= SEQUENCE { + range StandardLength12b, + horizontalOpeningAngleStart CartesianAngleValue, + horizontalOpeningAngleEnd CartesianAngleValue, + verticalOpeningAngleStart CartesianAngleValue OPTIONAL, + verticalOpeningAngleEnd CartesianAngleValue OPTIONAL +} + ((WITH COMPONENTS {..., verticalOpeningAngleStart ABSENT, verticalOpeningAngleEnd ABSENT }) | + (WITH COMPONENTS {..., verticalOpeningAngleStart PRESENT, verticalOpeningAngleEnd PRESENT })) + +/** + * This DF represents the shape of a rectangular area or a right rectangular prism that is centred + * on a reference position defined outside of the context of this DF and oriented w.r.t. a cartesian + * coordinate system defined outside of the context of this DF. + * + * It shall include the following components: + * + * @field shapeReferencePoint: represents an optional offset point which the rectangle is centred on with + * respect to the reference position. If this component is absent, the externally specified + * reference position represents the shape's reference point. + * + * @field semiLength: represents half the length of the rectangle located in the X-Y Plane. + * + * @field semiBreadth: represents half the breadth of the rectangle located in the X-Y Plane. + * + * @field orientation: represents the optional orientation of the length of the rectangle, + * measured with positive values turning around the Z-axis using the right-hand rule, starting from + * the X-axis. + * + * @field height: represents the optional height, present if the shape is a right rectangular prism + * with height extending in the positive Z-axis. + * + * @category GeoReference information + * @revision: created in V2.1.1, centerPoint renamed to shapeReferencePoint, the type of the field orientation changed and description revised in V2.2.1 + */ +RectangularShape ::= SEQUENCE { + shapeReferencePoint CartesianPosition3d OPTIONAL, + semiLength StandardLength12b, + semiBreadth StandardLength12b, + orientation CartesianAngleValue OPTIONAL, + height StandardLength12b OPTIONAL +} + +/** + * A position within a geographic coordinate system together with a confidence ellipse. + * + * It shall include the following components: + * + * @field latitude: the latitude of the geographical point. + * + * @field longitude: the longitude of the geographical point. + * + * @field positionConfidenceEllipse: the confidence ellipse associated to the geographical position. + * + * @field altitude: the altitude and an altitude accuracy of the geographical point. + * + * @note: this DE is kept for backwards compatibility reasons only. It is recommended to use the @ref ReferencePositionWithConfidence instead. + * @category: GeoReference information + * @revision: description updated in V2.1.1 + */ +ReferencePosition ::= SEQUENCE { + latitude Latitude, + longitude Longitude, + positionConfidenceEllipse PosConfidenceEllipse, + altitude Altitude +} + +/** + * A position within a geographic coordinate system together with a confidence ellipse. + * + * It shall include the following components: + * + * @field latitude: the latitude of the geographical point. + * + * @field longitude: the longitude of the geographical point. + * + * @field positionConfidenceEllipse: the confidence ellipse associated to the geographical position. + * + * @field altitude: the altitude and an altitude accuracy of the geographical point. + * + * @category: GeoReference information + * @revision: created in V2.1.1 based on @ref ReferencePosition but using @ref PositionConfidenceEllipse. + */ +ReferencePositionWithConfidence ::= SEQUENCE { + latitude Latitude, + longitude Longitude, + positionConfidenceEllipse PositionConfidenceEllipse, + altitude Altitude +} + +/** + * This DF shall contain a list of @ref StationType. to which a certain traffic restriction, e.g. the speed limit, applies. + * + * @category: Infrastructure information, Traffic information + * @revision: V1.3.1 + */ +RestrictedTypes ::= SEQUENCE (SIZE(1..3, ...)) OF StationType + +/** + * This DF provides configuration information about a road section. + * + * It shall include the following components: + * + * @field roadSectionDefinition: the topological definition of the road section for which the information in the other components applies throughout its entire length. + * + * @field roadType: the optional type of road on which the section is located. + * + * @field laneConfiguration: the optional configuration of the road section in terms of basic information per lane. + * + * @field mapemConfiguration: the optional configuration of the road section in terms of MAPEM lanes or connections. + * + * @category: Road topology information + * @revision: Created in V2.2.1 +*/ + +RoadConfigurationSection ::= SEQUENCE { + roadSectionDefinition RoadSectionDefinition, + roadType RoadType OPTIONAL, + laneConfiguration BasicLaneConfiguration OPTIONAL, + mapemConfiguration MapemConfiguration OPTIONAL, + ... +} + ((WITH COMPONENTS {..., laneConfiguration PRESENT}) | + (WITH COMPONENTS {..., mapemConfiguration PRESENT})) + +/** + * This DF shall contain a list of @ref RoadConfigurationSection. + * + * @category: Road Topology information + * @revision: Created in V2.2.1 + */ +RoadConfigurationSectionList::= SEQUENCE (SIZE(1..8,...)) OF RoadConfigurationSection + +/** + * This DF provides the basic topological definition of a road section. + * + * It shall include the following components: + * + * @field startingPointSection: the position of the starting point of the section. + * + * @field lengthOfSection: the optional length of the section along the road profile (i.e. including curves). + * + * @field endingPointSection: the optional position of the ending point of the section. + * If this component is absent, the ending position is implicitly defined by other means, e.g. the starting point of the next RoadConfigurationSection, or the section�s length. + * + * @field connectedPaths: the identifier(s) of the path(s) having one or an ordered subset of waypoints located upstream of the RoadConfigurationSection� starting point. + * + * @field includedPaths: the identifier(s) of the path(s) that covers (either with all its length or with a part of it) a RoadConfigurationSection. + * + * @field isEventZoneIncluded: indicates, if set to TRUE, that the @ref EventZone incl. its reference position covers a RoadConfigurationSection (either with all its length or with a part of it). + * + * @field isEventZoneConnected: indicates, if set to TRUE, that the @ref EventZone incl. its reference position has one or an ordered subset of waypoints located upstream of the RoadConfigurationSection� starting point. + * + * @category: Road topology information + * @revision: Created in V2.2.1 +*/ +RoadSectionDefinition::= SEQUENCE { + startingPointSection GeoPosition, + lengthOfSection StandardLength2B OPTIONAL, + endingPointSection GeoPosition OPTIONAL, + connectedPaths PathReferences, + includedPaths PathReferences, + isEventZoneIncluded BOOLEAN, + isEventZoneConnected BOOLEAN, + ... +} + +/** + * This DF represents a unique id for a road segment + * + * It shall include the following components: + * + * @field region: the optional identifier of the entity that is responsible for the region in which the road segment is placed. + * It is the duty of that entity to guarantee that the @ref Id is unique within the region. + * + * @field id: the identifier of the road segment. + * + * @note: when the component region is present, the RoadSegmentReferenceId is guaranteed to be globally unique. + * @category: GeoReference information + * @revision: created in V2.1.1 + */ +RoadSegmentReferenceId ::= SEQUENCE { + region Identifier2B OPTIONAL, + id Identifier2B +} + +/** + * This DF provides the safe distance indication of a traffic participant with other traffic participant(s). + * + * It shall include the following components: + * + * @field subjectStation: optionally indicates one "other" traffic participant identified by its ITS-S. + * + * @field safeDistanceIndicator: indicates whether the distance between the ego ITS-S and the traffic participant(s) is safe. + * If subjectStation is present then it indicates whether the distance between the ego ITS-S and the traffic participant indicated in the component subjectStation is safe. + * + * @field timeToCollision: optionally indicated the time-to-collision calculated as sqrt(LaDi^2 + LoDi^2 + VDi^2/relative speed + * and represented in the nearest 100 ms. This component may be present only if subjectStation is present. + * + * @note: the abbreviations used are Lateral Distance (LaD), Longitudinal Distance (LoD) and Vertical Distance (VD) + * and their respective thresholds, Minimum Safe Lateral Distance (MSLaD), Minimum Safe Longitudinal Distance (MSLoD), and Minimum Safe Vertical Distance (MSVD). + * + * @category: Traffic information, Kinematic information + * @revision: created in V2.1.1 + */ +SafeDistanceIndication ::= SEQUENCE { + subjectStation StationId OPTIONAL, + safeDistanceIndicator SafeDistanceIndicator, + timeToCollision DeltaTimeTenthOfSecond OPTIONAL, + ... +} + +/** + * This DF shall contain a list of DF @ref CartesianPosition3d. + * + * @category: GeoReference information + * @revision: created in V2.1.1 + */ +SequenceOfCartesianPosition3d ::= SEQUENCE (SIZE(1..16, ...)) OF CartesianPosition3d + +/** + * The DF contains a list of DE @ref Identifier1B. + * + * @category: Basic information + * @revision: created in V2.1.1 +*/ +SequenceOfIdentifier1B ::= SEQUENCE SIZE(1..128, ...) OF Identifier1B + +/** + * The DF contains a list of DF @ref SafeDistanceIndication. + * + * @category: Traffic information, Kinematic information + * @revision: created in V2.1.1 +*/ +SequenceOfSafeDistanceIndication ::= SEQUENCE(SIZE(1..8,...)) OF SafeDistanceIndication + +/** + * The DF shall contain a list of DF @ref TrajectoryInterceptionIndication. + * + * @category: Traffic information, Kinematic information + * @revision: created in V2.1.1 +*/ +SequenceOfTrajectoryInterceptionIndication ::= SEQUENCE (SIZE(1..8,...)) OF TrajectoryInterceptionIndication + +/** + * This DF provides the definition of a geographical area or volume, based on different options. + * + * It is a choice of the following components: + * + * @field rectangular: definition of an rectangular area or a right rectangular prism (with a rectangular base) also called a cuboid, or informally a rectangular box. + * + * @field circular: definition of an area of circular shape or a right circular cylinder. + * + * @field polygonal: definition of an area of polygonal shape or a right prism. + * + * @field elliptical: definition of an area of elliptical shape or a right elliptical cylinder. + * + * @field radial: definition of a radial shape. + * + * @field radialList: definition of list of radial shapes. + * + * @category: GeoReference information + * @revision: Created in V2.1.1 + */ +Shape::= CHOICE { + rectangular RectangularShape, + circular CircularShape, + polygonal PolygonalShape, + elliptical EllipticalShape, + radial RadialShape, + radialShapes RadialShapes, + ... +} + +/** + * This DF represents the speed and associated confidence value. + * + * It shall include the following components: + * + * @field speedValue: the speed value. + * + * @field speedConfidence: the confidence value of the speed value. + * + * @category: Kinematic information + * @revision: V1.3.1 + */ +Speed ::= SEQUENCE { + speedValue SpeedValue, + speedConfidence SpeedConfidence +} + +/** + * This DF provides the indication of change in stability. + * + * It shall include the following components: + * + * @field lossProbability: the probability of stability loss. + * + * @field actionDeltaTime: the period over which the the probability of stability loss is estimated. + * + * @category: Kinematic information + * @revision: V2.1.1 + */ +StabilityChangeIndication ::= SEQUENCE { + lossProbability StabilityLossProbability, + actionDeltaTime DeltaTimeTenthOfSecond, + ... +} + +/** + * This DF represents the steering wheel angle of the vehicle at certain point in time. + * + * It shall include the following components: + * + * @field steeringWheelAngleValue: steering wheel angle value. + * + * @field steeringWheelAngleConfidence: confidence value of the steering wheel angle value. + * + * @category: Vehicle information + * @revision: Created in V2.1.1 + */ +SteeringWheelAngle ::= SEQUENCE { + steeringWheelAngleValue SteeringWheelAngleValue, + steeringWheelAngleConfidence SteeringWheelAngleConfidence +} + +/** + * This DF represents one or more paths using @ref Path. + * + * @category: GeoReference information + * @revision: Description revised in V2.1.1. Is is now based on Path and not on PathHistory + */ +Traces ::= SEQUENCE SIZE(1..7) OF Path + +/** + * This DF represents one or more paths using @ref PathExtended. + * + * @category: GeoReference information + * @revision: Created in V2.2.1 + */ +TracesExtended ::= SEQUENCE SIZE(1..7) OF PathExtended + +/** + * Ths DF represents the a position on a traffic island between two lanes. + * + * It shall include the following components: + * + * @field oneSide: represents one lane. + * + * @field otherSide: represents the other lane. + * + * @category: Road Topology information + * @revision: Created in V2.1.1 + */ +TrafficIslandPosition ::= SEQUENCE { + oneSide LanePositionAndType, + otherSide LanePositionAndType, + ... +} + +/** + * This DF provides detailed information about an attached trailer. + * + * It shall include the following components: + * + * @field refPointId: identifier of the reference point of the trailer. + * + * @field hitchPointOffset: optional position of the hitch point in negative x-direction (according to ISO 8855) from the + * vehicle Reference Point. + * + * @field frontOverhang: optional length of the trailer overhang in the positive x direction (according to ISO 8855) from the + * trailer Reference Point indicated by the refPointID. The value defaults to 0 in case the trailer + * is not overhanging to the front with respect to the trailer reference point. + * + * @field rearOverhang: optional length of the trailer overhang in the negative x direction (according to ISO 8855) from the + * trailer Reference Point indicated by the refPointID. + * + * @field trailerWidth: optional width of the trailer. + * + * @field hitchAngle: optional Value and confidence value of the angle between the trailer orientation (corresponding to the x + * direction of the ISO 8855 [21] coordinate system centered on the trailer) and the direction of + * the segment having as end points the reference point of the trailer and the reference point of + * the pulling vehicle, which can be another trailer or a vehicle looking on the horizontal plane + * xy, described in the local Cartesian coordinate system of the trailer. The + * angle is measured with negative values considering the trailer orientation turning clockwise + * starting from the segment direction. The angle value accuracy is provided with the + * confidence level of 95 %. + * + * @category: Vehicle information + * @revision: Created in V2.1.1 +*/ +TrailerData ::= SEQUENCE { + refPointId Identifier1B, + hitchPointOffset StandardLength1B, + frontOverhang StandardLength1B OPTIONAL, + rearOverhang StandardLength1B OPTIONAL, + trailerWidth VehicleWidth OPTIONAL, + hitchAngle CartesianAngle, + ... +} + +/** + * This DF provides the trajectory interception indication of ego-VRU ITS-S with another ITS-Ss. + * + * It shall include the following components: + * + * @field subjectStation: indicates the subject station. + * + * @field trajectoryInterceptionProbability: indicates the propbability of the interception of the subject station trajectory + * with the trajectory of the station indicated in the component subjectStation. + * + * @field trajectoryInterceptionConfidence: indicates the confidence of interception of the subject station trajectory + * with the trajectory of the station indicated in the component subjectStation. + * + * @category: Vehicle information + * @revision: Created in V2.1.1 + */ +TrajectoryInterceptionIndication ::= SEQUENCE { + subjectStation StationId OPTIONAL, + trajectoryInterceptionProbability TrajectoryInterceptionProbability, + trajectoryInterceptionConfidence TrajectoryInterceptionConfidence OPTIONAL, + ... +} + +/** + * This DF together with its sub DFs Ext1, Ext2 and the DE Ext3 provides the custom (i.e. not ASN.1 standard) definition of an integer with variable lenght, that can be used for example to encode the ITS-AID. + * + * @category: Basic information + * @revision: Created in V2.1.1 + */ +VarLengthNumber::=CHOICE{ + content [0] INTEGER(0..127), -- one octet length + extension [1] Ext1 + } +Ext1::=CHOICE{ + content [0] INTEGER(128..16511), -- two octets length + extension [1] Ext2 +} +Ext2::=CHOICE{ + content [0] INTEGER(16512..2113663), -- three octets length + extension [1] Ext3 + } +Ext3::= INTEGER(2113664..270549119,...) -- four and more octets length + +/** + * This DF indicates the vehicle acceleration at vertical direction and the associated confidence value. + * + * It shall include the following components: + * + * @field verticalAccelerationValue: vertical acceleration value at a point in time. + * + * @field verticalAccelerationConfidence: confidence value of the vertical acceleration value with a predefined confidence level. + * + * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref AccelerationComponent instead. + * @category Vehicle information + * @revision: Description revised in V2.1.1 + */ +VerticalAcceleration ::= SEQUENCE { + verticalAccelerationValue VerticalAccelerationValue, + verticalAccelerationConfidence AccelerationConfidence +} + +/** + * This DF provides information related to the identification of a vehicle. + * + * It shall include the following components: + * + * @field wMInumber: World Manufacturer Identifier (WMI) code. + * + * @field vDS: Vehicle Descriptor Section (VDS). + * + * @category: Vehicle information + * @revision: V1.3.1 + */ +VehicleIdentification ::= SEQUENCE { + wMInumber WMInumber OPTIONAL, + vDS VDS OPTIONAL, + ... +} + +/** + * This DF represents the length of vehicle and accuracy indication information. + * + * It shall include the following components: + * + * @field vehicleLengthValue: length of vehicle. + * + * @field vehicleLengthConfidenceIndication: indication of the length value confidence. + * + * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use @ref VehicleLengthV2 instead. + * @category: Vehicle information + * @revision: V1.3.1 + */ +VehicleLength ::= SEQUENCE { + vehicleLengthValue VehicleLengthValue, + vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication +} + +/** + * This DF represents the length of vehicle and accuracy indication information. + * + * It shall include the following components: + * + * @field vehicleLengthValue: length of vehicle. + * + * @field trailerPresenceInformation: information about the trailer presence. + * + * @category: Vehicle information + * @revision: created in V2.1.1 based on @ref VehicleLength but using @ref TrailerPresenceInformation. + */ +VehicleLengthV2 ::= SEQUENCE { + vehicleLengthValue VehicleLengthValue, + trailerPresenceInformation TrailerPresenceInformation +} + +/** + * This DF represents a velocity vector with associated confidence value. + * + * The following options are available: + * + * @field polarVelocity: the representation of the velocity vector in a polar or cylindrical coordinate system. + * + * @field cartesianVelocity: the representation of the velocity vector in a cartesian coordinate system. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +Velocity3dWithConfidence::= CHOICE{ + polarVelocity VelocityPolarWithZ, + cartesianVelocity VelocityCartesian +} + +/** + * This DF represents a velocity vector in a cartesian coordinate system. + + * It shall include the following components: + * + * @field xVelocity: the x component of the velocity vector with the associated confidence value. + * + * @field yVelocity: the y component of the velocity vector with the associated confidence value. + * + * @field zVelocity: the optional z component of the velocity vector with the associated confidence value. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +VelocityCartesian::= SEQUENCE { + xVelocity VelocityComponent, + yVelocity VelocityComponent, + zVelocity VelocityComponent OPTIONAL +} + +/** + * This DF represents a component of the velocity vector and the associated confidence value. + * + * It shall include the following components: + * + * @field value: the value of the component. + * + * @field confidence: the confidence value of the value. + * + * @category: Kinematic information + * @revision: V2.1.1 + */ +VelocityComponent ::= SEQUENCE { + value VelocityComponentValue, + confidence SpeedConfidence +} + +/** + * This DF represents a velocity vector in a polar or cylindrical coordinate system. + * + * It shall include the following components: + * + * @field velocityMagnitude: magnitude of the velocity vector on the reference plane, with the associated confidence value. + * + * @field velocityDirection: polar angle of the velocity vector on the reference plane, with the associated confidence value. + * + * @field zVelocity: the optional z component of the velocity vector along the reference axis of the cylindrical coordinate system, with the associated confidence value. + * + * @category: Kinematic information + * @revision: Created in V2.1.1 + */ +VelocityPolarWithZ::= SEQUENCE { + velocityMagnitude Speed, + velocityDirection CartesianAngle, + zVelocity VelocityComponent OPTIONAL +} + +/** + * This DF provides information about a VRU cluster. + * + * It shall include the following components: + * + * @field clusterId: optional identifier of a VRU cluster. + * + * @field clusterBoundingBoxShape: optionally indicates the shape of the cluster bounding box, per default inside an East-North-Up coordinate system + * centered around a reference point defined outside of the context of this DF. + * + * @field clusterCardinalitySize: indicates an estimation of the number of VRUs in the group, e.g. the known members in the cluster + 1 (for the cluster leader) . + * + * @field clusterProfiles: optionally identifies all the VRU profile types that are estimated to be within the cluster. + * if this component is absent it means that the information is unavailable. + * + * @category: VRU information + * @revision: Created in V2.1.1, description revised in V2.2.1 +*/ +VruClusterInformation ::= SEQUENCE { + clusterId Identifier1B OPTIONAL, + clusterBoundingBoxShape Shape (WITH COMPONENTS{..., elliptical ABSENT, radial ABSENT, radialShapes ABSENT}) OPTIONAL, + clusterCardinalitySize CardinalNumber1B, + clusterProfiles VruClusterProfiles OPTIONAL, + ... +} + +/** + * This DF represents the status of the exterior light switches of a VRU. + * This DF is an extension of the vehicular DE @ref ExteriorLights. + * + * It shall include the following components: + * + * @field vehicular: represents the status of the exterior light switches of a road vehicle. + * + * @field vruSpecific: represents the status of the exterior light switches of a VRU. + * + * @category: VRU information + * @revision: created in V2.1.1 + */ +VruExteriorLights ::= SEQUENCE { + vehicular ExteriorLights, + vruSpecific VruSpecificExteriorLights, + ... +} + +/** + * This DF indicates the profile of a VRU including sub-profile information + * It identifies four options corresponding to the four types of VRU profiles specified in ETSI TS 103 300-2 [18]: + * + * @field pedestrian: VRU Profile 1 - Pedestrian. + * + * @field bicyclistAndLightVruVehicle: VRU Profile 2 - Bicyclist. + * + * @field motorcyclist: VRU Profile 3 - Motorcyclist. + * + * @field animal: VRU Profile 4 - Animal. + * + * @category: VRU information + * @revision: Created in V2.1.1 + */ +VruProfileAndSubprofile ::= CHOICE { + pedestrian VruSubProfilePedestrian, + bicyclistAndLightVruVehicle VruSubProfileBicyclist, + motorcyclist VruSubProfileMotorcyclist, + animal VruSubProfileAnimal, + ... +} + +/** + * This DF represents an angular component along with a confidence value in the WGS84 coordinate system. + * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE. + * + * It shall include the following components: + * + * @field value: the angle value, which can be estimated as the mean of the current distribution. + * + * @field confidence: the confidence value associated to the angle value. + * + * @category: GeoReference information + * @revision: Created in V2.1.1 +*/ +Wgs84Angle ::= SEQUENCE { + value Wgs84AngleValue, + confidence Wgs84AngleConfidence +} + + +/** + * This DF represents a yaw rate of vehicle at a point in time. + * + * It shall include the following components: + * + * @field yawRateValue: yaw rate value at a point in time. + * + * @field yawRateConfidence: confidence value associated to the yaw rate value. + * + * @category: Vehicle Information + * @revision: V1.3.1 + */ +YawRate::= SEQUENCE { + yawRateValue YawRateValue, + yawRateConfidence YawRateConfidence +} + +------------------------------------------ +/** + * ## References: + * 1. ETSI TS 103 900: "Intelligent Transport Systems (ITS); Vehicular Communications; Basic Set of Applications; Part 2: Specification of Cooperative Awareness Basic Service; Release 2". + * 2. ETSI TS 103 831: "Intelligent Transport Systems (ITS); Vehicular Communications; Basic Set of Applications; Part 3: Specifications of Decentralized Environmental Notification Basic Service"; Release 2. + * 3. [European Agreement (Applicable as from 1 January 2011): "Concerning the International Carriage of Dangerous Goods by Road"](http://www.unece.org/trans/danger/publi/adr/adr2011/11ContentsE.html). + * 4. [United Nations: "Recommendations on the Transport of Dangerous Goods - Model Regulations", Twelfth revised edition](http://www.unece.org/trans/danger/publi/unrec/12_e.html). + * 5. ETSI TS 101 539-1: "Intelligent Transport Systems (ITS); V2X Applications; Part 1: Road Hazard Signalling (RHS) application requirements specification". + * 6. ISO 3779 (2011-07): "Road vehicles - Vehicle identification number (VIN) Content and structure". + * 7. VDV recommendation 420 (1992): "Technical Requirements for Automatic Vehicle Location / Control Systems - Radio Data Transmission (BON Version) with Supplement 1 and Supplement 2". + * 8. ISO 1176:1990: "Road vehicles - Masses - Vocabulary and codes". + * 9. ETSI TS 103 916 Intelligent Transport Systems (ITS); Parking Availability Service Specification; Release 2 + * 10. void + * 11. void + * 12. ETSI TS 103 300-3: "Intelligent Transport Systems (ITS); Vulnerable Road Users (VRU) awareness; Part 3: Specification of VRU awareness basic service; Release 2" + * 13. ETSI TS 103 724: "Intelligent Transport Systems (ITS); Facilities layer function; Interference Management Zone Message (IMZM); Release 2" + * 14. ETSI TS 102 792: "Intelligent Transport Systems (ITS); Mitigation techniques to avoid interference between European CEN Dedicated Short Range Communication (CEN DSRC) equipment and Intelligent Transport Systems (ITS) operating in the 5 GHz frequency range". + * 15. ETSI TS 103 301: "Intelligent Transport Systems (ITS); Vehicular Communications; Basic Set of Applications; Facilities layer protocols and communication requirements for infrastructure services; Release 2". + * 16. UNECE/TRANS/WP.29/78/Rev.4: "Consolidated Resolution on the Construction of Vehicles (R.E.3)". + * 17. ETSI EN 302 890-1: "Intelligent Transport Systems (ITS); Facilities layer function; Part 1: Services Announcement (SA) specification". + * 18. ETSI TS 103 300-2 "Intelligent Transport System (ITS); Vulnerable Road Users (VRU) awareness; Part 2: Functional Architecture and Requirements definition; Release 2" + * 19. ETSI TS 103 175: "Intelligent Transport Systems (ITS); Cross Layer DCC Management Entity for operation in the ITS G5A and ITS G5B medium" + * 20. ETSI EN 302 571: "Intelligent Transport Systems (ITS); Radiocommunications equipment operating in the 5 855 MHz to 5 925 MHz frequency band; Harmonised Standard covering the essential requirements of article 3.2 of Directive 2014/53/EU" + * 21. ISO 8855: "Road vehicles - Vehicle dynamics and road-holding ability - Vocabulary". + * 22. ISO 3833: "Road vehicles - Types - Terms and definitions". + * 23. ISO 14816:2015 + Amd1:2019: " Road transport and traffic telematics � Automatic vehicle and equipment identification � Numbering and data structure" + * 24. ISO 17573-3: "Electronic fee collection � System architecture for vehicle-related tolling � Part 3: Data dictionary" + * 25. ISO 3166-1: "Codes for the representation of names of countries and their subdivisions � Part 1: Country code" +*/ + +END + diff --git a/asn1/denm_1_3_1.asn b/asn1/denm_1_3_1.asn new file mode 100644 index 0000000..ebb801b --- /dev/null +++ b/asn1/denm_1_3_1.asn @@ -0,0 +1,108 @@ +DENM-PDU-Descriptions {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) denm (1) version (2) +} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS +ItsPduHeader, CauseCode, Speed, InformationQuality, ReferencePosition, ClosedLanes, DangerousGoodsExtended, Heading, LanePosition, LightBarSirenInUse, RoadType, HeightLonCarr, PosLonCarr, PosCentMass, PositioningSolutionType, RequestResponseIndication, StationType, SpeedLimit, StationarySince, TimestampIts, WheelBaseVehicle, TurningRadius, PosFrontAx, PositionOfOccupants, Temperature, VehicleMass, VehicleIdentification, EnergyStorageType, ActionID, ItineraryPath, NumberOfOccupants, PositionOfPillars, RelevanceTrafficDirection, RestrictedTypes, Traces, TransmissionInterval, ValidityDuration, RelevanceDistance, EventHistory, TrafficRule, DeltaReferencePosition FROM ITS-Container { +itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) +}; + + +DENM ::= SEQUENCE { + header ItsPduHeader, + denm DecentralizedEnvironmentalNotificationMessage +} + +DecentralizedEnvironmentalNotificationMessage ::= SEQUENCE { + management ManagementContainer, + situation SituationContainer OPTIONAL, + location LocationContainer OPTIONAL, + alacarte AlacarteContainer OPTIONAL +} + +ManagementContainer ::= SEQUENCE { + actionID ActionID, + detectionTime TimestampIts, + referenceTime TimestampIts, + termination Termination OPTIONAL, + eventPosition ReferencePosition, + relevanceDistance RelevanceDistance OPTIONAL, + relevanceTrafficDirection RelevanceTrafficDirection OPTIONAL, + validityDuration ValidityDuration DEFAULT defaultValidity, + transmissionInterval TransmissionInterval OPTIONAL, + stationType StationType, + ... +} + +SituationContainer ::= SEQUENCE { + informationQuality InformationQuality, + eventType CauseCode, + linkedCause CauseCode OPTIONAL, + eventHistory EventHistory OPTIONAL, + ... +} + +LocationContainer ::= SEQUENCE { + eventSpeed Speed OPTIONAL, + eventPositionHeading Heading OPTIONAL, + traces Traces, + roadType RoadType OPTIONAL, + ... +} + +ImpactReductionContainer ::= SEQUENCE { + heightLonCarrLeft HeightLonCarr, + heightLonCarrRight HeightLonCarr, + posLonCarrLeft PosLonCarr, + posLonCarrRight PosLonCarr, + positionOfPillars PositionOfPillars, + posCentMass PosCentMass, + wheelBaseVehicle WheelBaseVehicle, + turningRadius TurningRadius, + posFrontAx PosFrontAx, + positionOfOccupants PositionOfOccupants, + vehicleMass VehicleMass, + requestResponseIndication RequestResponseIndication +} + +RoadWorksContainerExtended ::= SEQUENCE { + lightBarSirenInUse LightBarSirenInUse OPTIONAL, + closedLanes ClosedLanes OPTIONAL, + restriction RestrictedTypes OPTIONAL, + speedLimit SpeedLimit OPTIONAL, + incidentIndication CauseCode OPTIONAL, + recommendedPath ItineraryPath OPTIONAL, + startingPointSpeedLimit DeltaReferencePosition OPTIONAL, + trafficFlowRule TrafficRule OPTIONAL, + referenceDenms ReferenceDenms OPTIONAL + } + +StationaryVehicleContainer ::= SEQUENCE { + stationarySince StationarySince OPTIONAL, + stationaryCause CauseCode OPTIONAL, + carryingDangerousGoods DangerousGoodsExtended OPTIONAL, + numberOfOccupants NumberOfOccupants OPTIONAL, + vehicleIdentification VehicleIdentification OPTIONAL, + energyStorageType EnergyStorageType OPTIONAL +} + +AlacarteContainer ::= SEQUENCE { + lanePosition LanePosition OPTIONAL, + impactReduction ImpactReductionContainer OPTIONAL, + externalTemperature Temperature OPTIONAL, + roadWorks RoadWorksContainerExtended OPTIONAL, + positioningSolution PositioningSolutionType OPTIONAL, + stationaryVehicle StationaryVehicleContainer OPTIONAL, + ... +} + +defaultValidity INTEGER ::= 600 + +Termination ::= ENUMERATED {isCancellation(0), isNegation (1)} + +ReferenceDenms ::= SEQUENCE (SIZE(1..8, ...)) OF ActionID + +END diff --git a/asn1/dsrc_2_2_1.asn b/asn1/dsrc_2_2_1.asn new file mode 100644 index 0000000..86ca46b --- /dev/null +++ b/asn1/dsrc_2_2_1.asn @@ -0,0 +1,4468 @@ +/** draft 001 of the ETSI-ITS-DSRC module for TS 103 301 V2.2.1 integrating: +* initial revision based on ASN.1 files of [ISO TS 19091] and [SAE J2735] +*/ +-- Note: the above information will be deleted before publication + +--! @options: no-fields-header + +ETSI-ITS-DSRC { + itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts103301 (103301) dsrc (6) major-version-2 (2) minor-version-1 (1) +} + +DEFINITIONS AUTOMATIC TAGS::= BEGIN + +IMPORTS + +Longitude, Latitude, StationID, Iso3833VehicleType +FROM ETSI-ITS-CDD { + itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) 102894 cdd (2) major-version-4 (4) minor-version-1 (1) +} +WITH SUCCESSORS + +Reg-AdvisorySpeed, Reg-ComputedLane, Reg-ConnectionManeuverAssist, Reg-GenericLane, +Reg-IntersectionGeometry, Reg-IntersectionState, Reg-LaneAttributes, Reg-MapData, +Reg-LaneDataAttribute, Reg-MovementEvent, Reg-MovementState, +Reg-NodeAttributeSetXY, Reg-NodeOffsetPointXY, Reg-Position3D, Reg-RequestorDescription, Reg-RequestorType, Reg-RestrictionUserType, Reg-RoadSegment, +Reg-RTCMcorrections, Reg-SignalControlZone, Reg-SignalRequestPackage, Reg-SignalRequest, Reg-SignalStatus, Reg-SignalStatusPackage, Reg-SignalRequestMessage, +Reg-SignalStatusMessage, Reg-SPAT +FROM ETSI-ITS-DSRC-REGION { + itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts103301 (103301) dsrc (6) region (1) major-version-2 (2) minor-version-1 (1) +} +WITH SUCCESSORS; + +/** +* This information object class is an abstract template to instantiate region extension. +* +* @field &id: the identifier of the region type. +* @field &Type: the extension content +* +* @category: Basic Information +* @revision: V1.3.1 +*/ +REG-EXT-ID-AND-TYPE ::= CLASS { + &id RegionId UNIQUE, + &Type +} WITH SYNTAX {&Type IDENTIFIED BY &id} + +/** +* This DF represents a Region extension preceded by its type identifier and a lenght indicator. +* +* It shall include the following components: +* +* @field regionId: the identifier of the region. +* @field regExtValue: the extension content consistent with the region type. +* +* @category: Basic Information +* @revision: V1.3.1 +*/ +RegionalExtension {REG-EXT-ID-AND-TYPE : Set} ::= SEQUENCE { + regionId REG-EXT-ID-AND-TYPE.&id( {Set} ), + regExtValue REG-EXT-ID-AND-TYPE.&Type( {Set}{@regionId} ) +} + +/** +* This DF is used to convey many types of geographic road information. At the current time its primary +* use is to convey one or more intersection lane geometry maps within a single message. The map message content +* includes such items as complex intersection descriptions, road segment descriptions, high speed curve outlines (used in +* curve safety messages), and segments of roadway (used in some safety applications). A given single MapData message +* may convey descriptions of one or more geographic areas or intersections. The contents of this message involve defining +* the details of indexing systems that are in turn used by other messages to relate additional information (for example, the +* signal phase and timing via the SPAT message) to events at specific geographic locations on the roadway. +* +* @field timeStamp: time reference +* @field msgIssueRevision: The MapData revision is defined by the data element `revision` for each intersection +* geometry (see [ISO TS 19091] G.8.2.4.1). Therefore, an additional revision indication of the overall +* MapData message is not used in this profile. It shall be set to "0" for this profile. +* @field layerType: There is no need to additionally identify the topological content by an additional identifier. The ASN.1 +* definition of the data frames `intersections` and `roadSegments` are clearly defined and need no +* additional identifier. Therefore, this optional data element shall not be used in this profile. +* @field layerID: This profile extends the purpose of the `layerID` data element as defined in SAE J2735 as follows: For +* large intersections, the length of a MapData description may exceed the maximum data length of the +* communication message. Therefore, a fragmentation of the MapData message (at application layer) in +* two or more MapData fragments may be executed. If no MapData fragmentation is needed, the `layerID` +* shall not be used. For more details, see the definition of the data element @ref LayerID. +* @field intersections: All Intersection definitions. +* @field roadSegments: All roadway descriptions. +* @field dataParameters: Any meta data regarding the map contents. +* @field restrictionList: Any restriction ID tables which have established for these map entries +* @field regional: This profile extends the MapData message with the regional data element @ref MapData-addGrpC +* +* @category: Road topology information +* @revision: V1.3.1 +*/ +MapData ::= SEQUENCE { + timeStamp MinuteOfTheYear OPTIONAL, + msgIssueRevision MsgCount, + layerType LayerType OPTIONAL, + layerID LayerID OPTIONAL, + intersections IntersectionGeometryList OPTIONAL, + roadSegments RoadSegmentList OPTIONAL, + dataParameters DataParameters OPTIONAL, + restrictionList RestrictionClassList OPTIONAL, + regional SEQUENCE (SIZE(1..4)) OF + RegionalExtension {{Reg-MapData}} OPTIONAL, + ... +} + +/** +* This DF is used to encapsulate RTCM differential corrections for GPS and other radio +* navigation signals as defined by the RTCM (Radio Technical Commission For Maritime Services) special committee +* number 104 in its various standards. Here, in the work of DSRC, these messages are "wrapped" for transport on the +* DSRC media, and then can be re-constructed back into the final expected formats defined by the RTCM standard and +* used directly by various positioning systems to increase the absolute and relative accuracy estimates produced. +* +* @field msgCnt: monotonic incrementing identifier. +* @field rev: the specific edition of the standard that is being sent. +* @field timeStamp: time reference +* @field anchorPoint: Observer position, if needed. +* @field rtcmHeader: Precise antenna position and noise data for a rover +* @field msgs: one or more RTCM messages. +* @field regional: optional region specific data. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RTCMcorrections ::= SEQUENCE { + msgCnt MsgCount, + rev RTCM-Revision, + timeStamp MinuteOfTheYear OPTIONAL, + anchorPoint FullPositionVector OPTIONAL, + rtcmHeader RTCMheader OPTIONAL, + msgs RTCMmessageList, + regional SEQUENCE (SIZE(1..4)) OF + RegionalExtension {{Reg-RTCMcorrections}} OPTIONAL, + ... +} + +/** +* This DF is used to convey the current status of one or more signalized +* intersections. Along with the MapData message (which describes a full geometric layout of an intersection) the +* receiver of this message can determine the state of the signal phasing and when the next expected phase will occur. +* The SPAT message sends the current movement state of each active phase in the system as needed (such as values of +* what states are active and values at what time a state has begun/does begin earliest, is expected to begin most likely and +* will end latest). The state of inactive movements is not normally transmitted. Movements are mapped to specific +* approaches and connections of ingress to egress lanes and by use of the SignalGroupID in the MapData message +* +* The current signal preemption and priority status values (when present or active) are also sent. A more complete +* summary of any pending priority or preemption events can be found in the Signal Status message. +* +* @field timeStamp: time reference +* @field name: human readable name for this collection. to be used only in debug mode. +* @field intersections: sets of SPAT data (one per intersection) +* @field regional: optional region specific data. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SPAT ::= SEQUENCE { + timeStamp MinuteOfTheYear OPTIONAL, + name DescriptiveName OPTIONAL, + intersections IntersectionStateList, + regional SEQUENCE (SIZE(1..4)) OF + RegionalExtension {{Reg-SPAT}} OPTIONAL, + ... +} + +/** +* This DF is a message sent by a DSRC equipped entity (such as a vehicle) to the RSU in a +* signalized intersection. It is used for either a priority signal request or a preemption signal request depending on the way +* each request is set. Each request defines a path through the intersection which is desired in terms of lanes and +* approaches to be used. Each request can also contain the time of arrival and the expected duration of the service. +* Multiple requests to multiple intersections are supported. The requestor identifies itself in various ways (using methods +* supported by the @refRequestorDescription data frame), and its current speed, heading and location can be placed in this +* structure as well. The specific request for service is typically based on previously decoding and examining the list of lanes +* and approaches for that intersection (sent in MAP messages). The outcome of all of the pending requests to a signal can +* be found in the Signal Status Message (SSM), and may be reflected in the SPAT message contents if successful. +* +* @field timeStamp: time reference +* @field second: time reference +* @field sequenceNumber: monotonic incrementing identifier +* @field requests: Request Data for one or more signalized intersections that support SRM dialogs +* @field requestor: Requesting Device and other User Data contains vehicle ID (if from a vehicle) as well as type data and current +* position and may contain additional transit data +* @field regional: optional region specific data. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SignalRequestMessage ::= SEQUENCE { + timeStamp MinuteOfTheYear OPTIONAL, + second DSecond, + sequenceNumber MsgCount OPTIONAL, + requests SignalRequestList OPTIONAL, + requestor RequestorDescription, + regional SEQUENCE (SIZE(1..4)) OF + RegionalExtension {{Reg-SignalRequestMessage}} OPTIONAL, + ... +} + +/** +* This DF is a message sent by an RSU in a signalized intersection. It is used to relate the current +* status of the signal and the collection of pending or active preemption or priority requests acknowledged by the controller. +* It is also used to send information about preemption or priority requests which were denied. This in turn allows a dialog +* acknowledgment mechanism between any requester and the signal controller. The data contained in this message allows +* other users to determine their "ranking" for any request they have made as well as to see the currently active events. +* When there have been no recently received requests for service messages, this message may not be sent. While the +* outcome of all pending requests to a signal can be found in the Signal Status Message, the current active event (if any) +* will be reflected in the SPAT message contents. +* +* @field timeStamp: time reference +* @field second: time reference +* @field sequenceNumber: monotonic incrementing identifier +* @field status: Status Data for one of more signalized intersections. +* @field regional: optional region specific data. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SignalStatusMessage ::= SEQUENCE { + timeStamp MinuteOfTheYear OPTIONAL, + second DSecond, + sequenceNumber MsgCount OPTIONAL, + status SignalStatusList, + regional SEQUENCE (SIZE(1..4)) OF + RegionalExtension {{Reg-SignalStatusMessage}} OPTIONAL, + ... +} + +/** +* This DF is used to convey a recommended traveling approach speed to an intersection +* from the message issuer to various travelers and vehicle types. Besides support for various eco-driving applications, this +* allows transmitting recommended speeds for specialty vehicles such as transit buses. +* +* @field type: the type of advisory which this is. +* @field speed: See @ref SpeedAdvice for converting and translating speed expressed in mph into units of m/s. +* This element is optional ONLY when superceded by the presence of a regional speed element found in Reg-AdvisorySpeed entry +* @field confidence: A confidence value for the above speed +* @field distance: The distance indicates the region for which the advised speed is recommended, it is specified upstream from the stop bar +* along the connected egressing lane. Unit = 1 meter +* @field class: the vehicle types to which it applies when absent, the AdvisorySpeed applies to all motor vehicle types +* @field regional: optional region specific data. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +AdvisorySpeed ::= SEQUENCE { + type AdvisorySpeedType, + speed SpeedAdvice OPTIONAL, + confidence SpeedConfidenceDSRC OPTIONAL, + distance ZoneLength OPTIONAL, + class RestrictionClassID OPTIONAL, + regional SEQUENCE (SIZE(1..4)) OF + RegionalExtension {{Reg-AdvisorySpeed}} OPTIONAL, + ... +} + +/** +* This DF consists of a list of @ref AdvisorySpeed entries. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +AdvisorySpeedList ::= SEQUENCE (SIZE(1..16)) OF AdvisorySpeed + +/** +* This DF is a collection of three offset values in an orthogonal coordinate system +* which describe how far the electrical phase center of an antenna is in each axis from a nearby known anchor point in units of 1 cm. +* +* When the antenna being described is on a vehicle, the signed offset shall be in the coordinate system defined in section 11.4. +* +* @field antOffsetX: a range of +- 20.47 meters. +* @field antOffsetY: a range of +- 2.55 meters. +* @field antOffsetZ: a range of +- 5.11 meters. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +AntennaOffsetSet ::= SEQUENCE { + antOffsetX Offset-B12, + antOffsetY Offset-B09, + antOffsetZ Offset-B10 +} + +/** +* This DE is used to contain information needed to compute one lane from another +* (hence the name). This concept is used purely as a means of saving size in the message payload. The new lane is +* expressed as an X,Y offset from the first point of the source lane. It can be optionally rotated and scaled. Any attribute +* information found within the node of the source lane list cannot be changed and must be reused. +* +* @field referenceLaneId: the lane ID upon which this computed lane will be based Lane Offset in X and Y direction +* @field offsetXaxis: A path X offset value for translations of the path's points when creating translated lanes. +* @field offsetYaxis: The values found in the reference lane are all offset based on the X and Y values from +* the coordinates of the reference lane's initial path point. +* @field rotateXY: A path rotation value for the entire lane +* Observe that this rotates the existing orientation +* of the referenced lane, it does not replace it. +* Rotation occurs about the initial path point. +* @field scaleXaxis: value for translations or zooming of the path's points. The values found in the reference lane +* @field scaleYaxis: are all expanded or contracted based on the X and Y and width values from the coordinates of the reference lane's initial path point. +* The Z axis remains untouched. +* @field regional: optional region specific data. +* +* @note: The specified transformation shall be applied to the reference lane without any intermediary loss of precision +* (truncation). The order of the transformations shall be: the East-West and North-South offsets, the scaling factors, and +* finally the rotation. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +ComputedLane ::= SEQUENCE { + referenceLaneId LaneID, + offsetXaxis CHOICE { + small DrivenLineOffsetSm, + large DrivenLineOffsetLg + }, + offsetYaxis CHOICE { + small DrivenLineOffsetSm, + large DrivenLineOffsetLg + }, + rotateXY Angle OPTIONAL, + scaleXaxis Scale-B12 OPTIONAL, + scaleYaxis Scale-B12 OPTIONAL, + regional SEQUENCE (SIZE(1..4)) OF + RegionalExtension {{Reg-ComputedLane}} OPTIONAL, + ... +} + +/** +* This DF is used in the generic lane descriptions to provide a sequence of other defined +* lanes to which each lane connects beyond its stop point. See the Connection data frame entry for details. Note that this +* data frame is not used in some lane object types. +* +* @note: The assignment of lanes in the Connection structure shall start with the leftmost lane from the vehicle +* perspective (the u-turn lane in some cases) followed by subsequent lanes in a clockwise assignment order. Therefore, the +* rightmost lane to which this lane connects would always be listed last. Note that this order is observed regardless of which +* side of the road vehicles use. If this structure is used in the lane description, then all valid lanes to which the subject lane +* connects shall be listed. +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +ConnectsToList ::= SEQUENCE (SIZE(1..16)) OF Connection + +/** +* The data concept ties a single lane to a single maneuver needed to reach it from another lane. +* It is typically used to connect the allowed maneuver from the end of a lane to the outbound lane so that these can be +* mapped to the SPAT message to which both lanes apply. +* +* @field lane: Index of the connecting lane. +* +* @field maneuver: This data element allows only the description of a subset of possible manoeuvres and therefore +* represents an incomplete list of possible travel directions. The connecting `lane` data element gives the +* exact information about the manoeuvre relation from ingress to egress lane. Therefore the "maneuver" +* data element may be used only additionally if the travel direction of the manoeuvre is unanmbigoulsy +* represented (e.g. left, right, straight, etc.). +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +ConnectingLane ::= SEQUENCE { + lane LaneID, + maneuver AllowedManeuvers OPTIONAL +} + +/** +* This DF is used to combine/connect multiple physical lanes (i.e. within intersections or road +* segments). For signalized movements, the `connectsTo` data frame defines e.g. the relation between +* ingress and egress lanes within an intersection. It describes the allowed manoeuvres and includes the +* link (`signalGroup` identifier) between the @ref MapData and the @ref PAT message. The data frame is also used +* to describe the relation of lanes within a non signalized intersection (e.g. ingress lanes which are +* bypassing the conflict area and ending in an egress lane without signalization). Within a road segment, +* it is used to combine two or multiple physical lanes into a single lane object. +* +* @field connectingLane: +* @field remoteIntersection: When the data element `remoteIntersection` is used, it indicates +* that the connecting lane belongs to another intersection. +* (see clause [ISO TS 19091] G.9.1 for further explainations). +* @field signalGroup: +* @field userClass: +* @field connectionID: +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +Connection ::= SEQUENCE { + connectingLane ConnectingLane, + remoteIntersection IntersectionReferenceID OPTIONAL, + signalGroup SignalGroupID OPTIONAL, + userClass RestrictionClassID OPTIONAL, + connectionID LaneConnectionID OPTIONAL +} + +/** +* This DF contains information about the the dynamic flow of traffic for the lane(s) +* and maneuvers in question (as determined by the @ref LaneConnectionID). Note that this information can be sent regarding +* any lane-to-lane movement; it need not be limited to the lanes with active (non-red) phases when sent. +* +* @field connectionID: the common connectionID used by all lanes to which this data applies +* (this value traces to ConnectsTo entries in lanes) +* +* @field queueLength: The distance from the stop line to the back edge of the last vehicle in the queue, +* as measured along the lane center line. (Unit = 1 meter, 0 = no queue) +* +* @field availableStorageLength: Distance (e.g. beginning from the downstream stop-line up to a given distance) with a high +* probability for successfully executing the connecting maneuver between the two lanes +* during the current cycle. +* Used for enhancing the awareness of vehicles to anticipate if they can pass the stop line +* of the lane. Used for optimizing the green wave, due to knowledge of vehicles waiting in front +* of a red light (downstream). +* The element nextTime in @ref TimeChangeDetails in the containing data frame contains the next +* timemark at which an active phase is expected, a form of storage flush interval. +* (Unit = 1 meter, 0 = no space remains) +* +* @field waitOnStop: If true, the vehicles on this specific connecting +* maneuver have to stop on the stop-line and not to enter the collision area +* +* @field pedBicycleDetect: true if ANY ped or bicycles are detected crossing the above lanes. Set to false ONLY if there is a +* high certainty that there are none present, otherwise element is not sent. +* +* @field regional: This data element includes additional data content @ref ConnectionManeuverAssist-addGrpC defined in +* this profile (see [ISO TS 19091] G.5.1.1). The content is included using the regional extension framework as defined in +* @ref ConnectionManeuverAssist-addGrpC is used for position feedback to moving ITS stations for executing +* safe manoeuvres and is included for this purpose in the data element "intersectionState" +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +ConnectionManeuverAssist ::= SEQUENCE { + connectionID LaneConnectionID, + queueLength ZoneLength OPTIONAL, + availableStorageLength ZoneLength OPTIONAL, + waitOnStop WaitOnStopline OPTIONAL, + pedBicycleDetect PedestrianBicycleDetect OPTIONAL, + regional SEQUENCE (SIZE(1..4)) OF + RegionalExtension {{Reg-ConnectionManeuverAssist}} OPTIONAL, + ... +} + +/** +* This DF is used to provide basic (static) information on how a map fragment was processed or determined. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +DataParameters ::= SEQUENCE { + processMethod IA5String(SIZE(1..255)) OPTIONAL, + processAgency IA5String(SIZE(1..255)) OPTIONAL, + lastCheckedDate IA5String(SIZE(1..255)) OPTIONAL, + geoidUsed IA5String(SIZE(1..255)) OPTIONAL, + ... +} + +/** +* The DSRC style date is a compound value consisting of finite-length sequences of integers (not characters) of the +* form: "yyyy, mm, dd, hh, mm, ss (sss+)" - as defined below. +* +* @note: Note that some elements of this structure may not be sent when not needed. At least one element shall be present. +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +DDateTime ::= SEQUENCE { + year DYear OPTIONAL, + month DMonth OPTIONAL, + day DDay OPTIONAL, + hour DHour OPTIONAL, + minute DMinute OPTIONAL, + second DSecond OPTIONAL, + offset DOffset OPTIONAL + } + +/** +* This DF is a sequence of lane IDs for lane objects that are activated in the current map +* configuration. These lanes, unlike most lanes, have their RevocableLane bit set to one (asserted). Such lanes are not +* considered to be part of the current map unless they are in the Enabled Lane List. This concept is used to describe all the +* possible regulatory states for a given physical lane. For example, it is not uncommon to enable or disable the ability to +* make a right hand turn on red during different periods of a day. Another similar example would be a lane which is used for +* driving during one period and where parking is allowed at another. Traditionally, this information is conveyed to the vehicle +* driver by local signage. By using the Enabled Lane List data frame in conjunction with the RevocableLane bit and +* constructing a separate lane object in the intersection map for each different configuration, a single unified map can be +* developed and used. +* +* Contents are the unique ID numbers for each lane object which is 'active' as part of the dynamic map contents. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +EnabledLaneList ::= SEQUENCE (SIZE(1..16)) OF LaneID + +/** +* A complete report of the vehicle's position, speed, and heading at an instant in time. Used in the probe vehicle +* message (and elsewhere) as the initial position information. Often followed by other data frames that may provide offset +* path data. +* +* @field utcTime: time with mSec precision +* @field long: Longitude in 1/10th microdegree +* @field lat: Latitude in 1/10th microdegree +* @field elevation: Elevation in units of 0.1 m +* @field heading: Heading value +* @field speed: Speed value +* @field posAccuracy: position accuracy +* @field timeConfidence: time confidence +* @field posConfidence: position confidence +* @field speedConfidence: speed confidence +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +FullPositionVector ::= SEQUENCE { + utcTime DDateTime OPTIONAL, + long Longitude, + lat Latitude, + elevation Elevation OPTIONAL, + heading HeadingDSRC OPTIONAL, + speed TransmissionAndSpeed OPTIONAL, + posAccuracy PositionalAccuracy OPTIONAL, + timeConfidence TimeConfidence OPTIONAL, + posConfidence PositionConfidenceSet OPTIONAL, + speedConfidence SpeedandHeadingandThrottleConfidence OPTIONAL, + ... +} + +/** +* This DF is used for all types of lanes, e.g. motorized vehicle lanes, crosswalks, medians. The +* GenericLane describes the basic attribute information of the lane. The LaneID value for each lane is unique within an +* intersection. One use for the LaneID is in the SPAT message, where a given signal or movement phase is mapped to a +* set of applicable lanes using their respective LaneIDs. The NodeList2 data frame includes a sequence of offset points (or +* node points) representing the center line path of the lane. As described in this standard, node points are sets of variable +* sized delta orthogonal offsets from the prior point in the node path. (The initial point is offset from the LLH anchor point +* used in the intersection.) Each node point may convey optional attribute data as well. The use of attributes is described +* further in the Node definition, and in a later clause, but an example use would be to indicate a node point where the lane +* width changes. +* +* It should be noted that a "lane" is an abstract concept that can describe objects other than motorized vehicle lanes, and +* that the generic lane structure (using features drawn from Japanese usage) also allows combining multiple physical lanes +* into a single lane object. In addition, such lanes can describe connectivity points with other lanes beyond a single +* intersection, extending such a lane description over multiple nearby physical intersections and side streets which +* themselves may not be equipped or assigned an index number in the regional intersection numbering system. (See the +* ConnectsTo entry for details) This has value when describing a broader service area in terms of the roadway network, +* probably with less precision and detail. +* +* @field laneID: The unique ID number assigned to this lane object +* @field name: often for debug use only but at times used to name ped crossings +* @field ingressApproach: inbound Approach ID to which this lane belongs +* @field egressApproach: outbound Approach ID to which this lane belongs +* @field laneAttributes: All Attribute information about the basic selected lane type +* Directions of use, Geometric co-sharing and Type Specific Attributes +* These Attributes are 'lane - global' that is, they are true for the entire length of the lane +* @field maneuvers: This data element allows only the description of a subset of possible manoeuvres and therefore +* reperesents an incomplete list of possible travel directions. The connecting `lane` data element gives +* the exact information about the manoeuvre relation from ingress to egress lane. Therefore the +* "maneuver" data element is used only additionally if the travel direction of the manoeuvre is +* @field nodeList: Lane spatial path information as well as various Attribute information along the node path +* Attributes found here are more general and may come and go over the length of the lane. +* @field connectsTo: a list of other lanes and their signal group IDs each connecting lane and its signal group ID +* is given, therefore this element provides the information formerly in "signalGroups" in prior editions. +* @field overlays: A list of any lanes which have spatial paths that overlay (run on top of, and not simply cross) +* the path of this lane when used +* @field regional: optional region specific data. +* +* @note: The data elements `ingressApproach` and `egressApproach` are used for grouping lanes whin an +* approach (e.g. lanes defined in travel direction towards the intersection, lanes in exiting direction and +* cross walks). For a bidirectrional lane (e.g. bike lane) both dataelements are used for the same lane. The +* integer value used for identifying the `ingressApproach` and the `egressAproach`, based on the +* topology, may be e.g. the same for all lanes within an approach of an intersection. +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +GenericLane ::= SEQUENCE { + laneID LaneID, + name DescriptiveName OPTIONAL, + ingressApproach ApproachID OPTIONAL, + egressApproach ApproachID OPTIONAL, + laneAttributes LaneAttributes, + maneuvers AllowedManeuvers OPTIONAL, + nodeList NodeListXY, + connectsTo ConnectsToList OPTIONAL, + overlays OverlayLaneList OPTIONAL, + regional SEQUENCE (SIZE(1..4)) OF + RegionalExtension {{Reg-GenericLane}} OPTIONAL, + ... +} + +/** +* This DF is used to specify the index of either a single approach or a single lane at +* which a service is needed. This is used, for example, with the Signal Request Message (SRM) to indicate the inbound +* and outbound points by which the requestor (such as a public safety vehicle) can traverse an intersection. +* +* @field lane: the representation of the point as lane identifier. +* @field approach: the representation of the point as approach identifier. +* @field connection: the representation of the point as connection identifier. +* +* @note: Note that the value of zero has a reserved meaning for these two indexing systems. In both cases, this value +* is used to indicate the concept of "none" in use. When the value is of zero is used here, it implies the center of the +* intersection itself. For example, requesting an outbound point of zero implies the requestor wishes to have the intersection +* itself be the destination. Alternatively, an inbound value of zero implies the requestor is within the intersection itself and +* wishes to depart for the outbound value provided. This special meaning for the value zero can be used in either the lane +* or approach with the same results. +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +IntersectionAccessPoint ::= CHOICE { + lane LaneID, + approach ApproachID, + connection LaneConnectionID, + ... +} + +/** +* A complete description of an intersection's roadway geometry and its allowed navigational paths (independent of +* any additional regulatory restrictions that may apply over time or from user classification). +* +* @field name: For debug use only +* @field id: A globally unique value set, consisting of a regionID and intersection ID assignment +* @field revision: This profile extends the purpose of the `revision` data element as defined in SAE J2735 as follows. +* The revision data element is used to communicate the valid release of the intersection geometry +* description. If there are no changes in the deployed intersection description, the same revision counter +* is transmitted. Due to a revised deployment of the intersection description (e.g. new lane added, ID's +* changed, etc.), the revision is increased by one. After revision equal to 127, the increment restarts by 0. +* The intersection geometry and the signal phase and timing information is related each other. Therefore, +* the revision of the intersection geometry of the MapData message shall be the same as the revision of +* the intersection state of the SPAT (see data element `revision` of `DF_IntersectionState` in [ISO TS 19091] G.8.2.9) +* @field refPoint: The reference from which subsequent data points are offset until a new point is used. +* @field laneWidth: Reference width used by all subsequent lanes unless a new width is given +* @field speedLimits: Reference regulatory speed limits used by all subsequent lanes unless a new speed is given +* @field laneSet: Data about one or more lanes (all lane data is found here) Data describing how to use and request preemption and +* priority services from this intersection (if supported) +* @field preemptPriorityData: This DF is not used. +* @field regional: optional region specific data. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +IntersectionGeometry ::= SEQUENCE { + name DescriptiveName OPTIONAL, + id IntersectionReferenceID, + revision MsgCount, + refPoint Position3D, + laneWidth LaneWidth OPTIONAL, + speedLimits SpeedLimitList OPTIONAL, + laneSet LaneList, + preemptPriorityData PreemptPriorityList OPTIONAL, + regional SEQUENCE (SIZE(1..4)) OF + RegionalExtension {{Reg-IntersectionGeometry}} OPTIONAL, + ... +} + +/** +* This DF consists of a list of IntersectionGeometry entries. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +IntersectionGeometryList ::= SEQUENCE (SIZE(1..32)) OF IntersectionGeometry + +/** +* This DF 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. +* +* @field region: a globally unique regional assignment value typical assigned to a regional DOT authority +* the value zero shall be used for testing needs +* @field id: a unique mapping to the intersection in question within the above region of use +* +* @note: A fully qualified intersection consists of its regionally unique ID (the IntersectionID) and its region ID (the +* RoadRegulatorID). Taken together these form a unique value which is never repeated. +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +IntersectionReferenceID ::= SEQUENCE { + region RoadRegulatorID OPTIONAL, + id IntersectionID +} + +/** +* This DF is used to convey all the SPAT information for a single intersection. Both current +* and future data can be sent. +* +* @field name: human readable name for intersection to be used only in debug mode +* @field id: A globally unique value set, consisting of a regionID and intersection ID assignment +* provides a unique mapping to the intersection MAP in question which provides complete location +* and approach/move/lane data +* @field revision: The data element `revision` is used to communicate the actual valid release of the intersection +* description. If there are no changes in the deployed intersection description, almost the same revision +* counter is transmitted. Due to a revised deployment of the intersection description (e.g. introduction of +* additional signal state element), the revision is increased by one. After revision equal to 127, the +* increment leads to 0 (due to the element range). +* The intersection state and the intersection geometry is related to each other. Therefore, the revision of +* the intersection state shall be the same as the revision of the intersection geometry (see the data +* element `revision` of `DF_IntersectionGeometry` in [ISO TS 19091] G.8.2.6). +* @field status: general status of the controller(s) +* @field moy: Minute of current UTC year, used only with messages to be archived. +* @field timeStamp: the mSec point in the current UTC minute that this message was constructed. +* @field enabledLanes: a list of lanes where the RevocableLane bit has been set which are now active and +* therefore part of the current intersection +* @field states: Each Movement is given in turn and contains its signal phase state, +* mapping to the lanes it applies to, and point in time it will end, and it +* may contain both active and future states +* @field maneuverAssistList: Assist data +* @field regional: optional region specific data. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +IntersectionState ::= SEQUENCE { + name DescriptiveName OPTIONAL, + id IntersectionReferenceID, + revision MsgCount, + status IntersectionStatusObject, + moy MinuteOfTheYear OPTIONAL, + timeStamp DSecond OPTIONAL, + enabledLanes EnabledLaneList OPTIONAL, + states MovementList, + maneuverAssistList ManeuverAssistList OPTIONAL, + regional SEQUENCE (SIZE(1..4)) OF + RegionalExtension {{Reg-IntersectionState}} OPTIONAL, + ... +} + +/** +* This DF consists of a list of IntersectionState entries. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +IntersectionStateList ::= SEQUENCE (SIZE(1..32)) OF IntersectionState + +/** +* This DF holds all of the constant attribute information of any lane object (as well as +* denoting the basic lane type itself) within a single structure. Constant attribute information are those values which do not +* change over the path of the lane, such as the direction of allowed travel. Other lane attribute information can change at or +* between each node. +* The structure consists of three element parts as follows: LaneDirection specifies the allowed directions of travel, if any. +* LaneSharing indicates whether this lane type is shared with other types of travel modes or users. The lane type is defined +* in LaneTypeAttributes, along with additional attributes specific to that type. +* The fundamental type of lane object is described by the element selected in the LaneTypeAttributes data concept. +* Additional information specific or unique to a given lane type can be found there as well. A regional extension is provided +* as well. +* Note that combinations of regulatory maneuver information such as "both a left turn and straight ahead movement are +* allowed, but never a u-turn," are expressed by the AllowedManeuvers data concept which typically follows after this +* element and in the same structure. Note that not all lane objects require this information (for example a median). The +* various values are set via bit flags to indicate the assertion of a value. Each defined lane type contains the bit flags +* suitable for its application area. +* Note that the concept of LaneSharing is used to indicate that there are other users of this lane with equal regulatory rights +* to occupy the lane (which is a term this standard does not formally define since it varies by world region). A typical case is +* a light rail vehicle running along the same lane path as motorized traffic. In such a case, motor traffic may be allowed +* equal access to the lane when a train is not present. Another case would be those intersection lanes (at the time of writing +* rather unusual) where bicycle traffic is given full and equal right of way to an entire width of motorized vehicle lane. This +* example would not be a bike lane or bike box in the traditional sense. +* +* @field directionalUse: directions of lane use +* @field sharedWith: co-users of the lane path +* @field laneType: specific lane type data +* @field regional: optional region specific data. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +LaneAttributes ::= SEQUENCE { + directionalUse LaneDirection, + sharedWith LaneSharing, + laneType LaneTypeAttributes, + regional RegionalExtension {{Reg-LaneAttributes}} OPTIONAL +} + +/** +* This DF is used to relate an attribute and a control value at a node point or along a +* lane segment from an enumerated list of defined choices. It is then followed by a defined data value associated with it and +* which is defined elsewhere in this standard. +* +* @field pathEndPointAngle: adjusts final point/width slant of the lane to align with the stop line +* @field laneCrownPointCenter: sets the canter of the road bed from centerline point +* @field laneCrownPointLeft: sets the canter of the road bed from left edge +* @field laneCrownPointRight: sets the canter of the road bed from right edge +* @field laneAngle: the angle or direction of another lane this is required when a merge point angle is required +* @field speedLimits: Reference regulatory speed limits used by all segments +* @field regional: optional region specific data. +* +* @note: This data concept handles a variety of use case needs with a common and consistent message pattern. The +* typical use of this data concept (and several similar others) is to inject the selected Attribute into the spatial description of +* a lane's center line path (the segment list). In this way, attribute information which is true for a portion of the overall lane +* can be described when needed. This attribute information applies from the node point in the stream of segment data until +* changed again. Denoting the porous aspects of a lane along its path as it merges with another lane would be an example +* of this use case. In this case the start and end node points would be followed by suitable segment attributes. Re-using a +* lane path (previously called a computed lane) is another example. In this case the reference lane to be re-used appears +* as a segment attribute followed by the lane value. It is then followed by one or more segment attributes which relate the +* positional translation factors to be used (offset, rotate, scale) and any further segment attribute changes. +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +LaneDataAttribute ::= CHOICE { + pathEndPointAngle DeltaAngle, + laneCrownPointCenter RoadwayCrownAngle, + laneCrownPointLeft RoadwayCrownAngle, + laneCrownPointRight RoadwayCrownAngle, + laneAngle MergeDivergeNodeAngle, + speedLimits SpeedLimitList, + regional SEQUENCE (SIZE(1..4)) OF + RegionalExtension {{Reg-LaneDataAttribute}}, + ... +} + +/** +* This DF consists of a list of LaneDataAttribute entries. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +LaneDataAttributeList ::= SEQUENCE (SIZE(1..8)) OF LaneDataAttribute + +/** +* This DF consists of a list of GenericLane entries. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +LaneList ::= SEQUENCE (SIZE(1..255)) OF GenericLane + +/** +* This DE is used to denote the presence of other user types (travel modes) who have an +* equal right to access and use the lane. There may also be another lane object describing their use of a lane. This data +* concept is used to indicate lanes and/or users that travel along the same path, and not those that simply cross over the +* lane's segments path (such as a pedestrian crosswalk crossing a lane for motor vehicle use). The typical use is to alert +* the user of the MAP data that additional traffic of another mode may be present in the same spatial lane. +* +* Bits used: +* - 0 - overlappingLaneDescriptionProvided: Assert when another lane object is present to describe the +* path of the overlapping shared lane this construct is not used for lane objects which simply cross +* - 1 - multipleLanesTreatedAsOneLane: Assert if the lane object path and width details represents multiple lanes within it +* that are not further described Various modes and type of traffic that may share this lane: +* - 2 - otherNonMotorizedTrafficTypes: horse drawn etc. +* - 3 - individualMotorizedVehicleTraffic: +* - 4 - busVehicleTraffic: +* - 5 - taxiVehicleTraffic: +* - 6 - pedestriansTraffic: +* - 7 - cyclistVehicleTraffic: +* - 8 - trackedVehicleTraffic: +* - 9 - pedestrianTraffic: +* +* @note: All zeros would indicate `not shared` and `not overlapping` +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +LaneSharing ::= BIT STRING { + overlappingLaneDescriptionProvided (0), + multipleLanesTreatedAsOneLane (1), + otherNonMotorizedTrafficTypes (2), + individualMotorizedVehicleTraffic (3), + busVehicleTraffic (4), + taxiVehicleTraffic (5), + pedestriansTraffic (6), + cyclistVehicleTraffic (7), + trackedVehicleTraffic (8), + pedestrianTraffic (9) +} (SIZE (10)) + +/** +* This DF is used to hold attribute information specific to a given lane type. It is typically +* used in the DE_LaneAttributes data frame as part of an overall description of a lane object. Information unique to the +* specific type of lane is found here. Information common to lanes is expressed in other entries. The various values are set +* by bit flags to indicate the assertion of a value. Each defined lane type contains bit flags suitable for its application area. +* +* @field vehicle: motor vehicle lanes +* +* @field crosswalk: pedestrian crosswalks +* +* @field bikeLane: bike lanes +* +* @field sidewalk: pedestrian sidewalk paths +* +* @field median: medians & channelization +* +* @field striping: roadway markings +* +* @field trackedVehicle: trains and trolleys +* +* @field parking: parking and stopping lanes +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +LaneTypeAttributes ::= CHOICE { + vehicle LaneAttributes-Vehicle, + crosswalk LaneAttributes-Crosswalk, + bikeLane LaneAttributes-Bike, + sidewalk LaneAttributes-Sidewalk, + median LaneAttributes-Barrier, + striping LaneAttributes-Striping, + trackedVehicle LaneAttributes-TrackedVehicle, + parking LaneAttributes-Parking, + ... +} + +/** +* This DF consists of a list of @ref ConnectionManeuverAssist entries. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +ManeuverAssistList ::= SEQUENCE (SIZE(1..16)) OF ConnectionManeuverAssist + +/** +* This DF contains details about a single movement. It is used by the movement state to +* convey one of number of movements (typically occurring over a sequence of times) for a SignalGroupID. +* +* @field eventState: Consisting of: Phase state (the basic 11 states), Directional, protected, or permissive state +* @field timing: Timing Data in UTC time stamps for event includes start and min/max end times of phase confidence and estimated next occurrence +* @field speeds: various speed advisories for use by general and specific types of vehicles supporting green-wave and other flow needs +* @field regional: optional region specific data. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +MovementEvent ::= SEQUENCE { + eventState MovementPhaseState, + timing TimeChangeDetails OPTIONAL, + speeds AdvisorySpeedList OPTIONAL, + regional SEQUENCE (SIZE(1..4)) OF + RegionalExtension {{Reg-MovementEvent}} OPTIONAL, + ... +} + +/** +* This DF consists of a list of @ref MovementEvent entries. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +MovementEventList ::= SEQUENCE (SIZE(1..16)) OF MovementEvent + +/** +* This DF consists of a list of @ref MovementState entries. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +MovementList ::= SEQUENCE (SIZE(1..255)) OF MovementState + +/** +* This DF is used to convey various information about the current or future movement state of +* a designated collection of one or more lanes of a common type. This is referred to as the GroupID. Note that lane object +* types supported include both motorized vehicle lanes as well as pedestrian lanes and dedicated rail and transit lanes. Of +* the reported data elements, the time to change (the time remaining in the current state) is often of the most value. Lanes +* with a common state (typically adjacent sets of lanes in an approach) in a signalized intersection will have individual lane +* values such as total vehicle counts, summed. It is used in the SPAT message to convey every active movement in a +* given intersection so that vehicles, when combined with certain map information, can determine the state of the signal phases. +* +* @field movementName: uniquely defines movement by name human readable name for intersection to be used only in debug mode. +* @field signalGroup: is used to map to lists of lanes (and their descriptions) which this MovementState data applies to. +* @field state-time-speed: Consisting of sets of movement data with @ref SignalPhaseState, @ref TimeChangeDetail and @ref AdvisorySpeed +* *Note:* one or more of the movement events may be for a future time and that this allows conveying multiple +* predictive phase and movement timing for various uses for the current signal group. +* @field maneuverAssistList: This information may also be placed in the @ref IntersectionState when common information applies to different lanes in the same way +* @field regional: optional region specific data. +* +* @note: Note that the value given for the time to change will vary in many actuated signalized intersections based on +* the sensor data received during the phase. The data transmitted always reflects the then most current timemark value +* (which is the point in UTC time when the change will occur). As an example, in a phase which may vary from 15 to 25 +* seconds of duration based on observed traffic flows, a time to change value of 15 seconds in the future might be +* transmitted for many consecutive seconds (and the time mark value extended for as much as 10 seconds depending on +* the extension time logic used by the controller before it either times out or gaps out), followed by a final time mark value +* reflecting the decreasing values as the time runs out, presuming the value was not again extended to a new time mark +* due to other detection events. The time to change element can therefore generally be regarded as a guaranteed minimum +* value of the time that will elapse unless a preemption event occurs. +* +* In use, the @ref SignalGroupID element is matched to lanes that are members of that ID. The type of lane (vehicle, crosswalk, +* etc.) is known by the lane description as well as its allowed maneuvers and any vehicle class restrictions. Every lane type +* is treated the same way (cross walks map to suitable meanings, etc.). Lane objects which are not part of the sequence of +* signalized lanes do not appear in any GroupID. The visual details of how a given signal phase is presented to a mobile +* user will vary based on lane type and with regional conventions. Not all signal states will be used in all regional +* deployments. For example, a pre-green visual indication is not generally found in US deployments. Under such operating +* conditions, the unused phase states are simply skipped. +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +MovementState ::= SEQUENCE { + movementName DescriptiveName OPTIONAL, + signalGroup SignalGroupID, + state-time-speed MovementEventList, + maneuverAssistList ManeuverAssistList OPTIONAL, + regional SEQUENCE (SIZE(1..4)) OF + RegionalExtension {{Reg-MovementState}} OPTIONAL, + ... +} + +/** +* All the node attributes defined in this DF are valid in the direction of +* node declaration and not in driving direction (i.e. along the sequence of the declared nodes). E.g. node +* attributes of an `ingress` or an `egress` lane are defined from the conflict area (first node) to the +* outside of the intersection (last node). Node attributes with ‘left’ and ‘right’ in their name are also +* defined in the direction of the node declaration. This allows using attributes in a unambigious way also +* for lanes with biderctional driving. See the following attribuets examples for additianl explanations. +* +* @field localNode: Attribute states which pertain to this node point +* @field disabled: Attribute states which are disabled at this node point +* @field enabled: Attribute states which are enabled at this node point and which remain enabled until disabled or the lane ends +* @field data: Attributes which require an additional data values some of these are local to the node point, while others +* persist with the provided values until changed and this is indicated in each entry +* @field dWidth: A value added to the current lane width at this node and from this node onwards, in 1cm steps +* lane width between nodes are a linear taper between pts the value of zero shall not be sent here. +* @field dElevation: A value added to the current Elevation at this node from this node onwards, in 10cm steps +* elevations between nodes are a linear taper between pts the value of zero shall not be sent here +* @field regional: optional region specific data. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +NodeAttributeSetXY ::= SEQUENCE { + localNode NodeAttributeXYList OPTIONAL, + disabled SegmentAttributeXYList OPTIONAL, + enabled SegmentAttributeXYList OPTIONAL, + data LaneDataAttributeList OPTIONAL, + dWidth Offset-B10 OPTIONAL, + dElevation Offset-B10 OPTIONAL, + regional SEQUENCE (SIZE(1..4)) OF + RegionalExtension {{Reg-NodeAttributeSetXY}} OPTIONAL, + ... +} + +/** +* This DE is an enumerated list of attributes which can pertain to the current node +* point. The 'scope' of these values is limited to the node itself. That is, unlike other types of attributes which can be +* switched on or off at any given node (and hence pertains to one or more segments), the DE_NodeAttribute is local to the +* node in which it is found. These attributes are all binary flags in that they do not need to convey any additional data. Other +* attributes allow sending short data values to reflect a setting which is set and persists in a similar fashion. +* +* - reserved: do not use +* - stopLine: point where a mid-path stop line exists. See also 'do not block' for segments +* - roundedCapStyleA: Used to control final path rounded end shape with edge of curve at final point in a circle +* - roundedCapStyleB: Used to control final path rounded end shape with edge of curve extending 50% of width past final point in a circle +* - mergePoint: merge with 1 or more lanes +* - divergePoint: diverge with 1 or more lanes +* - downstreamStopLine: downstream intersection (a 2nd intersection) stop line +* - downstreamStartNode: downstream intersection (a 2nd intersection) start node +* - closedToTraffic: where a pedestrian may NOT go to be used during construction events +* - safeIsland: a pedestrian safe stopping point also called a traffic island +* This usage described a point feature on a path, other entries can describe a path +* - curbPresentAtStepOff: the sidewalk to street curb is NOT angled where it meets the edge of the roadway (user must step up/down) +* - hydrantPresent: Or other services access +* +* @note: See usage examples in [ISO TS 19091] G.8.2.8 +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +NodeAttributeXY ::= ENUMERATED { + reserved, + stopLine, + roundedCapStyleA, + roundedCapStyleB, + mergePoint, + divergePoint, + downstreamStopLine, + downstreamStartNode, + closedToTraffic, + safeIsland, + curbPresentAtStepOff, + hydrantPresent, + ... +} + +/** +* This DF consists of a list of @ref NodeAttributeXY entries. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +NodeAttributeXYList ::= SEQUENCE (SIZE(1..8)) OF NodeAttributeXY + +/** +* A 64-bit node type with lat-long values expressed in one tenth of a micro degree. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +Node-LLmD-64b ::= SEQUENCE { + lon Longitude, + lat Latitude +} + +/** +* A 20-bit node type with offset values from the last point in X and Y. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +Node-XY-20b ::= SEQUENCE { + x Offset-B10, + y Offset-B10 +} + +/** +* A 22-bit node type with offset values from the last point in X and Y. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +Node-XY-22b ::= SEQUENCE { + x Offset-B11, + y Offset-B11 +} + +/** +* A 24-bit node type with offset values from the last point in X and Y. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +Node-XY-24b ::= SEQUENCE { + x Offset-B12, + y Offset-B12 +} + +/** +* A 26-bit node type with offset values from the last point in X and Y. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +Node-XY-26b ::= SEQUENCE { + x Offset-B13, + y Offset-B13 +} + +/** +* A 28-bit node type with offset values from the last point in X and Y. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +Node-XY-28b ::= SEQUENCE { + x Offset-B14, + y Offset-B14 +} + +/** +* A 32-bit node type with offset values from the last point in X and Y. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +Node-XY-32b ::= SEQUENCE { + x Offset-B16, + y Offset-B16 +} + +/** +* This DF provides the sequence of signed offset node point values for determining the Xs and Ys +* (and possibly Width or Zs when present), using the then current Position3D object to build a path for the centerline of +* the subject lane type. Each X,Y point is referred to as a Node Point. The straight line paths between these points are +* referred to as Segments. +* All nodes may have various optional attributes the state of which can vary along the path and which are enabled and +* disabled by the sequence of objects found in the list of node structures. Refer to the explanatory text in Section 11 for a +* description of how to correctly encode and decode this type of the data element. As a simple example, a motor vehicle +* lane may have a section of the overall lane path marked "do not block", indicating that vehicles should not come to a stop +* and remain in that region. This is encoded in the Node data structures by an element in one node to indicate the start of +* the "do not block" lane attributes at a given offset, and then by a termination element when this attribute is set false. Other +* types of elements in the segment choice allow inserting attributes containing data values affecting the segment or the +* node. +* +* @field nodes: a lane made up of two or more XY node points and any attributes defined in those nodes +* @field computed: a lane path computed by translating the data defined by another lane +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +NodeListXY ::= CHOICE { + nodes NodeSetXY, + computed ComputedLane, + ... +} + +/** +* This DF presents a structure to hold different sized data frames for a single node +* point in a lane. Nodes are described in terms of X and Y offsets in units of 1 centimeter (when zoom is 1:1). Changes in +* elevation and in the lane width can be expressed in a similar way with the optional Attributes data entry which appears +* alongside the NodeOffsetPoint in use. +* +* The choice of which node type is driven by the magnitude (size) of the offset data to be encoded. When the distance from +* the last node point is smaller, the smaller entries can (and should) be chosen +* Each single selected node is computed as an X and Y offset from the prior node point unless one of the entries reflecting +* a complete lat-long representation is selected. In this case, subsequent entries become offsets from that point. This ability +* was added for assistance with the development, storage, and back office exchange of messages where message size is +* not a concern and should not be sent over the air due to its additional message payload size. +* +* The general usage guidance is to construct the content of each lane node point with the smallest possible element to +* conserve message size. However, using an element which is larger than needed is not a violation of the ASN.1 rules. +* +* @field node-XY1: node is within 5.11m of last node +* @field node-XY2: node is within 10.23m of last node +* @field node-XY3: node is within 20.47m of last node +* @field node-XY4: node is within 40.96m of last node +* @field node-XY5: node is within 81.91m of last node +* @field node-XY6: node is within 327.67m of last node +* @field node-LatLon: node is a full 32b Lat/Lon range +* @field regional: optional region specific data. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +NodeOffsetPointXY ::= CHOICE { + node-XY1 Node-XY-20b, + node-XY2 Node-XY-22b, + node-XY3 Node-XY-24b, + node-XY4 Node-XY-26b, + node-XY5 Node-XY-28b, + node-XY6 Node-XY-32b, + node-LatLon Node-LLmD-64b, + regional RegionalExtension {{Reg-NodeOffsetPointXY}} +} + +/** +* This DF presents a structure to hold data for a single node point in a path. Each selected node +* has an X and Y offset from the prior node point (or a complete lat-long representation in some cases) as well as optional +* attribute information. The node list for a lane (or other object) is made up of a sequence of these to describe the desired +* path. The X,Y points are selected to reflect the centerline of the path with sufficient accuracy for the intended applications. +* Simple lanes can be adequately described with only two node points, while lanes with curvature may require more points. +* Changes to the lane width and elevation can be expressed in the NodeAttributes entry, as well as various attributes that +* pertain to either the current node point or to one of more subsequent segments along the list of lane node points. As a +* broad concept, NodeAttributes are used to describe aspects of the lane that persist for only a portion of the overall lane +* path (either at a node or over a set of segments). +* A further description of the use of the NodeOffsetPoint and the Attributes data concepts can be found in the data +* dictionary entries for each one. Note that each allows regional variants to be supported as well. +* +* @field delta: A choice of which X,Y offset value to use this includes various delta values as well a regional choices. +* @field attributes: Any optional Attributes which are needed. This includes changes to the current lane width and elevation. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +NodeXY ::= SEQUENCE { + delta NodeOffsetPointXY, + attributes NodeAttributeSetXY OPTIONAL, + ... +} + +/** +* This DF consists of a list of Node entries using XY offsets. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +NodeSetXY ::= SEQUENCE (SIZE(2..63)) OF NodeXY + +/** This DF is the ODG Addition for Legancy R09 telegrams. +* +* @field reportingPoint: reporting point as of R09 (maps to R09 field M Meldepunktnummer) +* @field priorityLevel: priority level as of R09 (maps to R09 field P Prioritaet) +* @field length: train length point as of R09 (maps to R09 field A Zuglaenge) +* @field route: route as of R09 (maps to R09 field K Kursnummer) +* @field line: line as of R09 (maps to R09 field L Liniennummer) +* @field direction: direction as of R09 (maps to R09 field H Richtung von Hand) +* @field tour: tour as of R09 (maps to R09 field Z Zielnummer) +* @field version: version of R09 +* +* @category: Infrastructure information +* @revision: V2.2.1 +*/ +OcitRequestorDescriptionContainer ::= SEQUENCE { + reportingPoint ReportingPoint OPTIONAL, + priorityLevel PriorityLevel OPTIONAL, + length TrainLength OPTIONAL, + route RouteNumber OPTIONAL, + line LineNumber OPTIONAL, + direction TransitDirection OPTIONAL, + tour TourNumber OPTIONAL, + version VersionId OPTIONAL, + ... +} + +/** +* This DF is a sequence of lane IDs which refers to lane objects that overlap or overlay the current lane's spatial path. +* +* Contains the unique ID numbers for any lane object which have spatial paths that overlay (run on top of, and not +* simply cross with) the current lane. +* Such as a train path that overlays a motor vehicle lane object for a roadway segment. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +OverlayLaneList ::= SEQUENCE (SIZE(1..5)) OF LaneID + +/** +* This DF consists of various parameters of quality used to model the accuracy of the +* positional determination with respect to each given axis. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +PositionalAccuracy ::= SEQUENCE { + semiMajor SemiMajorAxisAccuracy, + semiMinor SemiMinorAxisAccuracy, + orientation SemiMajorAxisOrientation +} + +/** +* This DF combines multiple related bit fields into a single concept. +* +* @field pos: confidence for both horizontal directions +* @field elevation: confidence for vertical direction +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +PositionConfidenceSet ::= SEQUENCE { + pos PositionConfidence, + elevation ElevationConfidence +} + +/** +* This DF provides a precise location in the WGS-84 coordinate system, from which short +* offsets may be used to create additional data using a flat earth projection centered on this location. Position3D is typically +* used in the description of maps and intersections, as well as signs and traveler data. +* +* @field lat: Latitude in 1/10th microdegrees +* @field long: Longitude in 1/10th microdegrees +* @field elevation: The elevation information is defined by the regional extension (see module ETSI-ITS-DSRC-AddGrpC). +* Therefore, the `elevation` data element of `DF_Position3D` is not used. +* @field regional: optional region specific data. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +Position3D ::= SEQUENCE { + lat Latitude, + long Longitude, + elevation Elevation OPTIONAL, + regional SEQUENCE (SIZE(1..4)) OF + RegionalExtension {{Reg-Position3D}} OPTIONAL, + ... +} + +/** +* This DF consists of a list of RegionalSignalControlZone entries. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +PreemptPriorityList ::= SEQUENCE (SIZE(1..32)) OF SignalControlZone + +/** +* This DF is used to convey a regulatory speed about a lane, lanes, or roadway segment. +* +* @field type: The type of regulatory speed which follows +* @field speed: The speed in units of 0.02 m/s +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RegulatorySpeedLimit ::= SEQUENCE { + type SpeedLimitType, + speed Velocity +} + +/** +* This DF is used to provide identity information about a selected vehicle or users. +* This data frame is typically used with fleet type vehicles which can (or which must) safely release such information for use +* with probe measurements or with other interactions (such as a signal request). +* +* @field id: The ID used in the CAM of the requestor. This ID is presumed not to change during the exchange. +* @field type: Information regarding all type and class data about the requesting vehicle +* @field position: The location of the requesting vehicle +* @field name: A human readable name for debugging use +* @field routeName: A string for transit operations use +* @field transitStatus: current vehicle state (loading, etc.) +* @field transitOccupancy: current vehicle occupancy +* @field transitSchedule: current vehicle schedule adherence +* @field regional: optional region specific data. +* @field ocit: Extension container for Legacy R09 data (as defined by [OCIT]). +* +* @note: Note that the requestor description elements which are used when the request (the req) is made differ from +* those used when the status of an active or pending request is reported (the ack). Typically, when reporting the status to +* other parties, less information is required and only the temporaryID (contained in the VehicleID) and request number (a +* unique ID used in the orginal request) are used. +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RequestorDescription ::= SEQUENCE { + id VehicleID, + type RequestorType OPTIONAL, + position RequestorPositionVector OPTIONAL, + name DescriptiveName OPTIONAL, + routeName DescriptiveName OPTIONAL, + transitStatus TransitVehicleStatus OPTIONAL, + transitOccupancy TransitVehicleOccupancy OPTIONAL, + transitSchedule DeltaTime OPTIONAL, + regional SEQUENCE (SIZE(1..4)) OF RegionalExtension {{Reg-RequestorDescription}} OPTIONAL, + ..., + [[ + ocit OcitRequestorDescriptionContainer -- Extension for OCIT in V2.2.1 + ]] +} + +/** +* This DF provides a report of the requestor's position, speed, and heading. +* Used by a vehicle or other type of user to request services and at other times when the larger FullPositionVector is not required. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RequestorPositionVector ::= SEQUENCE { + position Position3D, + heading Angle OPTIONAL, + speed TransmissionAndSpeed OPTIONAL, + ... +} + +/** +* This DF is used when a DSRC-equipped device is requesting service from another +* device. The most common use case is when a vehicle is requesting a signal preemption or priority service call from the +* signal controller in an intersection. This data frame provides the details of the requestor class taxonomy required to +* support the request. Depending on the precise use case and the local implementation, these details can vary +* considerably. As a result, besides the basic role of the vehicle, the other classification systems supported are optional. It +* should also be observed that often only a subset of the information in the RequestorType data frame is used to report the +* "results" of such a request to others. As an example, a police vehicle might request service based on being in a police +* vehicle role (and any further sub-type if required) and on the type of service call to which the vehicle is then responding +* (perhaps a greater degree of emergency than another type of call), placing these information elements in the +* RequestorType, which is then part of the Signal Request Message (SRM). This allows the roadway operator to define +* suitable business rules regarding how to reply. When informing the requestor and other nearby drivers of the outcome, +* using the Signal Status Message (SSM) message, only the fact that the preemption was granted or denied to some +* vehicle with a unique request ID is conveyed. +* +* @field role: Basic role of this user at this time. +* @field subrole: A local list with role based items. +* @field request: A local list with request items +* @field iso3883: Additional classification details +* @field hpmsType: HPMS classification types +* @field regional: optional region specific data. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RequestorType ::= SEQUENCE { + role BasicVehicleRole, + subrole RequestSubRole OPTIONAL, + request RequestImportanceLevel OPTIONAL, + iso3883 Iso3833VehicleType OPTIONAL, + hpmsType VehicleType OPTIONAL, + regional RegionalExtension {{Reg-RequestorType}} OPTIONAL, + ... +} + +/** +* This DF is used to assign (or bind) a single RestrictionClassID data +* element to a list of all user classes to which it applies. A collection of these bindings is conveyed in the +* RestrictionClassList data frame in the MAP message to travelers. The established index is then used in the lane object of +* the MAP message, in the ConnectTo data frame, to qualify to whom a signal group ID applies when it is sent by the SPAT +* message about a movement. +* +* @field id: the unique value (within an intersection or local region) that is assigned to this group of users. +* @field users: The list of user types/classes to which this restriction ID applies. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RestrictionClassAssignment ::= SEQUENCE { + id RestrictionClassID, + users RestrictionUserTypeList +} + +/** +* This DF is used to enumerate a list of user classes which belong to a given +* assigned index. The resulting collection is treated as a group by the signal controller when it issues movement data +* (signal phase information) with the GroupID for this group. This data frame is typically static for long periods of time +* (months) and conveyed to the user by means of the MAP message. +* +* @note: The overall restriction class assignment process allows dynamic support within the framework of the common +* message set for the various special cases that some signalized intersections must support. While the assigned value +* needs to be unique only within the scope of the intersection that uses it, the resulting assignment lists will tend to be static +* and stable for regional deployment areas such as a metropolitan area based on their operational practices and needs. +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RestrictionClassList ::= SEQUENCE (SIZE(1..254)) OF RestrictionClassAssignment + +/** +* This DF is used to provide a means to select one, and only one, user type or class +* from a number of well-known lists. The selected entry is then used in the overall Restriction Class assignment process to +* indicate that a given GroupID (a way of expressing a movement in the SPAT/MAP system) applies to (is restricted to) this +* class of user. +* +* @field basicType: a set of the most commonly used types. +* @field regional: optional region specific data. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RestrictionUserType ::= CHOICE { + basicType RestrictionAppliesTo, + regional SEQUENCE (SIZE(1..4)) OF + RegionalExtension {{Reg-RestrictionUserType}}, + ... +} + +/** +* This DF consists of a list of @ref RestrictionUserType entries. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RestrictionUserTypeList ::= SEQUENCE (SIZE(1..16)) OF RestrictionUserType + +/** +* This DF consists of a list of GenericLane entries used to describe a segment of roadway. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RoadLaneSetList ::= SEQUENCE (SIZE(1..255)) OF GenericLane + +/** +* This DF is used to convey theRoadSegmentID which is unique to a given road segment of interest, +* and also the RoadRegulatorID assigned to the region in which it is operating (when required). +* +* @field region: a globally unique regional assignment value typically assigned to a regional DOT authority the value zero shall be used for testing needs. +* @field id: a unique mapping to the road segment in question within the above region of use during its period of assignment and use +* note that unlike intersectionID values, this value can be reused by the region. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RoadSegmentReferenceID ::= SEQUENCE { + region RoadRegulatorID OPTIONAL, + id RoadSegmentID +} + +/** +* This DF is a complete description of a RoadSegment including its geometry and its +* allowed navigational paths (independent of any additional regulatory restrictions that may apply over time or from user +* classification) and any current disruptions such as a work zone or incident event. +* +* @field name: some descriptive text. +* @field id: a globally unique value for the segment. +* @field revision: . +* @field refPoint: the reference from which subsequent data points are offset until a new point is used. +* @field laneWidth: Reference width used by all subsequent lanes unless a new width is given. +* @field speedLimits: Reference regulatory speed limits used by all subsequent lanes unless a new speed is given. +* @field roadLaneSet: Data describing disruptions in the RoadSegment such as work zones etc will be added here. +* @field regional: optional region specific data. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RoadSegment ::= SEQUENCE { + name DescriptiveName OPTIONAL, + id RoadSegmentReferenceID, + revision MsgCount, + refPoint Position3D, + laneWidth LaneWidth OPTIONAL, + speedLimits SpeedLimitList OPTIONAL, + roadLaneSet RoadLaneSetList, + regional SEQUENCE (SIZE(1..4)) OF + RegionalExtension {{Reg-RoadSegment}} OPTIONAL, + ... +} + +/** +* This DF consists of a list of @ref RoadSegment entries. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RoadSegmentList ::= SEQUENCE (SIZE(1..32)) OF RoadSegment + +/** +* This DF is a collection of data values used to convey RTCM information between users. It +* is not required or used when sending RTCM data from a corrections source to end users (from a base station to devices +* deployed in the field which are called rovers). +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RTCMheader ::= SEQUENCE { + status GNSSstatus, + offsetSet AntennaOffsetSet +} + +/** +* This DF consists of a list of @ref RTCMmessage entries. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RTCMmessageList ::= SEQUENCE (SIZE(1..5)) OF RTCMmessage + +/** +* This DF consists of a list of @ref SegmentAttributeXY entries. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SegmentAttributeXYList ::= SEQUENCE (SIZE(1..8)) OF SegmentAttributeXY + +/** +* This DF is a dummy placeholder to contain a regional SignalControlZone DF. +* It is not used, yet here for backwards compatibility. +* +* @field regional: optional region specific data. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SignalControlZone ::= SEQUENCE { + zone RegionalExtension {{Reg-SignalControlZone}}, + ... +} + +/** +* This DF is used to contain information regarding the entity that requested a given +* signal behavior. In addition to the VehicleID, the data frame also contains a request reference number used to uniquely +* refer to the request and some basic type information about the request maker which may be used by other parties. +* +* @field id: to uniquely identify the requester and the specific request to all parties. +* @field request: to uniquely identify the requester and the specific request to all parties. +* @field sequenceNumber: to uniquely identify the requester and the specific request to all parties. +* @field role: vehicle role +* @field typeData: Used when addition data besides the role is needed, at which point the role entry above is not sent. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SignalRequesterInfo ::= SEQUENCE { + id VehicleID, + request RequestID, + sequenceNumber MsgCount, + role BasicVehicleRole OPTIONAL, + typeData RequestorType OPTIONAL, + ... +} + +/** +* This DF is used (as part of a request message) to request either a priority or a preemption service +* from a signalized intersection. It relates the intersection ID as well as the specific request information. Additional +* information includes the approach and egress values or lanes to be used. +* +* @field id: the unique ID of the target intersection +* @field requestID: The unique requestID used by the requestor +* @field requestType: The type of request or cancel for priority or preempt use when a prior request is canceled, only the requestID is needed. +* @field inBoundLane: desired entry approach or lane. +* @field outBoundLane: desired exit approach or lane. the value zero is used to indicate intent to stop within the intersection. +* @field regional: optional region specific data. +* +* @note: In typical use either an approach or a lane number would be given, this indicates the requested +* path through the intersection to the degree it is known. +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SignalRequest ::= SEQUENCE { + id IntersectionReferenceID, + requestID RequestID, + requestType PriorityRequestType, + inBoundLane IntersectionAccessPoint, + outBoundLane IntersectionAccessPoint OPTIONAL, + regional SEQUENCE (SIZE(1..4)) OF + RegionalExtension {{Reg-SignalRequest}} OPTIONAL, + ... +} + +/** +* This DF consists of a list of @ref SignalRequest entries. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SignalRequestList ::= SEQUENCE (SIZE(1..32)) OF SignalRequestPackage + +/** +* This DF contains both the service request itself (the preemption and priority +* details and the inbound-outbound path details for an intersection) and the time period (start and end time) over which this +* service is sought from one single intersection. One or more of these packages are contained in a list in the Signal +* Request Message (SREM). +* +* @field request: The specific request to the intersection contains IntersectionID, request type, requested action (approach/lane request). +* @field minute: Time period start. +* @field second: Time period start. +* @field duration: The duration value is used to provide a short interval that extends the ETA so that the requesting vehicle can arrive at +* the point of service with uncertainty or with some desired duration of service. This concept can be used to avoid needing +* to frequently update the request. The requester must update the ETA and duration values if the +* period of services extends beyond the duration time. It should be assumed that if the vehicle does not clear the +* intersection when the duration is reached, the request will be cancelled and the intersection will revert to normal operation. +* @field regional: optional region specific data. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SignalRequestPackage ::= SEQUENCE { + request SignalRequest, + minute MinuteOfTheYear OPTIONAL, + second DSecond OPTIONAL, + duration DSecond OPTIONAL, + regional SEQUENCE (SIZE(1..4)) OF + RegionalExtension {{Reg-SignalRequestPackage}} OPTIONAL, + ... +} + +/** +* This DF is used to provide the status of a single intersection to others, including any active +* preemption or priority state in effect. +* +* @field sequenceNumber: changed whenever the below contents have change +* @field id: this provides a unique mapping to the intersection map in question which provides complete location +* and approach/movement/lane data as well as zones for priority/preemption. +* @field sigStatus: a list of detailed status containing all priority or preemption state data, both active and pending, +* and who requested it requests which are denied are also listed here for a short period of time. +* @field regional: optional region specific data. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SignalStatus ::= SEQUENCE { + sequenceNumber MsgCount, + id IntersectionReferenceID, + sigStatus SignalStatusPackageList, + regional SEQUENCE (SIZE(1..4)) OF + RegionalExtension {{Reg-SignalStatus}} OPTIONAL, + ... +} + +/** +* This DF consists of a list of @ref SignalStatus entries. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SignalStatusList ::= SEQUENCE (SIZE(1..32)) OF SignalStatus + +/** +* This DF consists of a list of @ref SignalStatusPackage entries. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SignalStatusPackageList ::= SEQUENCE (SIZE(1..32)) OF SignalStatusPackage + +/** +* This DF contains all the data needed to describe the preemption or priority state +* of the signal controller with respect to a given request and to uniquely identify the party who requested that state to occur. +* It should be noted that this data frame describes both active and anticipated states of the controller. A requested service +* may not be active when the message is created and issued. A requested service may be rejected. This structure allows +* the description of pending requests that have been granted (accepted rather than rejected) but are not yet active and +* being serviced. It also provides for the description of rejected requests so that the initial message is acknowledged +* (completing a dialog using the broadcast messages). +* +* @field requester: The party that made the initial SREM request. +* @field inboundOn: estimated lane / approach of vehicle. +* @field outboundOn: estimated lane / approach of vehicle. +* @field minute: The Estimated Time of Arrival (ETA) when the service is requested. This data echos the data of the request. +* @field second: seconds part of ETA. +* @field duration: duration part of ETA. +* @field status: Status of request, this may include rejection. +* @field regional: optional region specific data. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SignalStatusPackage ::= SEQUENCE { + requester SignalRequesterInfo OPTIONAL, + inboundOn IntersectionAccessPoint, + outboundOn IntersectionAccessPoint OPTIONAL, + minute MinuteOfTheYear OPTIONAL, + second DSecond OPTIONAL, + duration DSecond OPTIONAL, + status PrioritizationResponseStatus, + regional SEQUENCE (SIZE(1..4)) OF + RegionalExtension {{Reg-SignalStatusPackage}} OPTIONAL, + ... +} + +/** +* This DF is a single data frame combining multiple related bit fields into one concept. +* +* @field heading: confidence for heading values +* @field speed: confidence for speed values +* @field throttle: confidence for throttle values +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SpeedandHeadingandThrottleConfidence ::= SEQUENCE { + heading HeadingConfidenceDSRC, + speed SpeedConfidenceDSRC, + throttle ThrottleConfidence +} + +/** +* This DF consists of a list of SpeedLimit entries. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SpeedLimitList ::= SEQUENCE (SIZE(1..9)) OF RegulatorySpeedLimit + +/** +* This DE relates the type of speed limit to which a given speed refers. +* +* - unknown: Speed limit type not available +* - maxSpeedInSchoolZone: Only sent when the limit is active +* - maxSpeedInSchoolZoneWhenChildrenArePresent: Sent at any time +* - maxSpeedInConstructionZone: Used for work zones, incident zones, etc. where a reduced speed is present +* - vehicleMinSpeed: Regulatory speed limit for general traffic +* - vehicleMaxSpeed: Regulatory speed limit for general traffic +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SpeedLimitType ::= ENUMERATED { + unknown, + maxSpeedInSchoolZone, + maxSpeedInSchoolZoneWhenChildrenArePresent, + maxSpeedInConstructionZone, + vehicleMinSpeed, + vehicleMaxSpeed, + vehicleNightMaxSpeed, + truckMinSpeed, + truckMaxSpeed, + truckNightMaxSpeed, + vehiclesWithTrailersMinSpeed, + vehiclesWithTrailersMaxSpeed, + vehiclesWithTrailersNightMaxSpeed, + ... +} + +/** +* This DF conveys details about the timing of a phase within a movement. The core +* data concept expressed is the time stamp (time mark) at which the related phase will change to the next state. This is +* often found in the MinEndTime element, but the other elements may be needed to convey the full concept when adaptive +* timing is employed. +* +* @field startTime: is used to relate when the phase itself started or is expected to start. This in turn allows the +* indication that a set of time change details refers to a future phase, rather than a currently active phase. +* By this method, timing information about "pre" phase events (which are the short transitional phase used to alert OBUs to +* an impending green/go or yellow/caution phase) and the longer yellow-caution phase data is supported in the same form +* as various green/go phases. In theory, the time change details could be sent for a large sequence of phases if the signal +* timing was not adaptive and the operator wished to do so. In practice, it is expected only the "next" future phase will +* commonly be sent. It should be noted that this also supports the sending of time periods regarding various red phases; +* however, this is not expected to be done commonly. +* @field minEndTime: is used to convey the earliest time possible at which the phase could change, except when +* unpredictable events relating to a preemption or priority call disrupt a currently active timing plan. In a phase where the +* time is fixed (as in a fixed yellow or clearance time), this element shall be used alone. This value can be viewed as the +* earliest possible time at which the phase could change, except when unpredictable events relating to a preemption or +* priority call come into play and disrupt a currently active timing plan. +* @field maxEndTime: is used to convey the latest time possible which the phase could change, +* except when unpredictable events relating to a preemption or priority +* call come into play and disrupt a currently active timing plan. In a phase where the time is fixed (as in a fixed yellow or +* clearance time), this element shall be used alone. +* @field likelyTime: is used to convey the most likely time the phase changes. This occurs between MinEndTime and +* MaxEndTime and is only relevant for traffic-actuated control programs. This time might be calculated out of logged +* historical values, detected events (e.g., from inductive loops), or from other sources. +* @field confidence: is used to convey basic confidence data about the likelyTime. +* @field nextTime: is used to express a general (and presumably less precise) value regarding when this phase will +* next occur. This is intended to be used to alert the OBU when the next green/go may occur so that various ECO driving +* applications can better manage the vehicle during the intervening stopped time. +* +* @note: Remarks: It should be noted that all times are expressed as absolute values and not as countdown timer values. When +* the stated time mark is reached, the state changes to the next state. Several technical reasons led to this choice; among +* these was that with a countdown embodiment, there is an inherent need to update the remaining time every time a SPAT +* message is issued. This would require re-formulating the message content as as well as cryptographically signing the +* message each time. With the use of absolute values (time marks) chosen here, the current count down time when the +* message is created is added to the then-current time to create an absolute value and can be used thereafter without +* change. The message content need only change when the signal controller makes a timing decision to be published. This +* allows a clean separation of the logical functions of message creation from the logical functions of message scheduling +* and sending, and fulfills the need to minimize further real time processing when possible. This Standard sets no limits on +* where each of these functions is performed in the overall roadside system. +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +TimeChangeDetails ::= SEQUENCE { + startTime TimeMark OPTIONAL, + minEndTime TimeMark, + maxEndTime TimeMark OPTIONAL, + likelyTime TimeMark OPTIONAL, + confidence TimeIntervalConfidence OPTIONAL, + nextTime TimeMark OPTIONAL +} + +/** +* This DE is used to relate a moment in UTC (Coordinated Universal Time)-based time when a +* signal phase is predicted to change, with a precision of 1/10 of a second. A range of 60 full minutes is supported and it +* can be presumed that the receiver shares a common sense of time with the sender which is kept aligned to within a +* fraction of a second or better. +* +* If there is a need to send a value greater than the range allowed by the data element (over one hour in the future), the +* value 36000 shall be sent and shall be interpreted to indicate an indefinite future time value. When the value to be used is +* undefined or unknown a value of 36001 shall be sent. Note that leap seconds are also supported. +* +* The value is tenths of a second in the current or next hour in units of 1/10th second from UTC time +* - A range of 0-36000 covers one hour +* - The values 35991..35999 are used when a leap second occurs +* - The value 36000 is used to indicate time >3600 seconds +* - 36001 is to be used when value undefined or unknown +* +* @note: Note that this is NOT expressed in GPS time or in local time +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +TimeMark ::= INTEGER (0..36001) + +/** +* This DF expresses the speed of the vehicle and the state of the transmission. +* The transmission state of 'reverse' can be used as a sign value for the speed element when needed. +* +* @field transmisson: state of the transmission +* @field speed: speed of the vehicle +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +TransmissionAndSpeed ::= SEQUENCE { + transmisson TransmissionState, + speed Velocity +} + +/** +* This DF is used to contain either a (US) TemporaryID or an (EU) StationID in a simple frame. +* These two different value domains are used to uniquely identify a vehicle or other object in these two regional DSRC +* value is unavailable but needed by another type of user (such as the roadside infrastructure sending data about an +* environments. In normal use cases, this value changes over time to prevent tracking of the subject vehicle. When this +* unequipped vehicle), the value zero shall be used. A typical restriction on the use of this value during a dialog or other +* exchange is that the value remains constant for the duration of that exchange. Refer to the performance requirements for +* a given application for details. +* +* @field entityID: representation for US stations +* @field stationID: representation for EU stations +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +VehicleID ::= CHOICE { + entityID TemporaryID, + stationID StationID +} + +/** +* This DE relates the type of travel to which a given speed refers. This element is +* typically used as part of an @ref AdvisorySpeed data frame for signal phase and timing data. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +AdvisorySpeedType ::= ENUMERATED { + none (0), + greenwave (1), + ecoDrive (2), + transit (3), + ... +} + +/** +* This DE relates the allowed (possible) maneuvers from a lane, typically a +* motorized vehicle lane. It should be noted that in practice these values may be further restricted by vehicle class, local +* regulatory environment and other changing conditions. +* +* @note: When used by data frames, the AllowedManeuvers data concept is used in two places: optionally in the +* generic lane structure to list all possible maneuvers (as in what that lane can do at its stop line point); and within each +* ConnectsTo structure. Each ConnectsTo structure contains a list used to provide a single valid maneuver in the context of +* one lane connecting to another in the context of a signal phase that applies to that maneuver. It should be noted that, in +* some intersections, multiple outbound lanes can be reached by the same maneuver (for example two independent left +* turns might be found in a 5-legged intersection) but that to reach any given lane from the stop line of another lane is +* always a single maneuver item (hence the use of a list). Not all intersection descriptions may contain an exhaustive set of +* ConnectsTo information (unsignalized intersections for example) and in such cases the AllowedManeuvers in the generic +* lane structure can be used. If present in both places, the data expressed in the generic lane shall not conflict with the data +* found in the collection of ConnectsTo entries. +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +AllowedManeuvers ::= BIT STRING { + maneuverStraightAllowed (0), + maneuverLeftAllowed (1), + maneuverRightAllowed (2), + maneuverUTurnAllowed (3), + maneuverLeftTurnOnRedAllowed (4), + maneuverRightTurnOnRedAllowed (5), + maneuverLaneChangeAllowed (6), + maneuverNoStoppingAllowed (7), + yieldAllwaysRequired (8), + goWithHalt (9), + caution (10), + reserved1 (11) +} (SIZE(12)) + +/** +* This DE is used to describe an angular measurement in units of degrees. This data +* element is often used as a heading direction when in motion. In this use, the current heading of the sending device is +* expressed in unsigned units of 0.0125 degrees from North, such that 28799 such degrees represent 359.9875 degrees. +* North shall be defined as the axis defined by the WGS-84 coordinate system and its reference ellipsoid. Any angle "to the +* east" is defined as the positive direction. A value of 28800 shall be used when Angle is unavailable. +* +* @note: Note that other heading and angle data elements of various sizes and precisions are found in other parts of this standard and in ITS. +* @unit: 0.0125 degrees +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +Angle ::= INTEGER (0..28800) + +/** +* This DE is used to relate the index of an approach, either ingress or egress within the +* subject lane. In general, an approach index in the context of a timing movement is not of value in the MAP and SPAT +* process because the lane ID and signal group ID concepts handle this with more precision. This value can also be useful +* as an aid as it can be used to indicate the gross position of a moving object (vehicle) when its lane level accuracy is +* unknown. This value can also be used when a deployment represents sets of lanes as groups without further details (as is +* done in Japan). +* +* @note: zero to be used when valid value is unknown +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +ApproachID ::= INTEGER (0..15) + +/** +* This DE provides a means to indicate the current role that a DSRC device is playing +* This is most commonly employed when a vehicle needs to take on another role in order to send certain DSRC message +* types. As an example, when a public safety vehicle such as a police car wishes to send a signal request message (SRM) +* to an intersection to request a preemption service, the vehicle takes on the role "police" from the below list in both the +* SRM message itself and also in the type of security CERT which is sent (the SSP in the CERT it used to identify the +* requester as being of type "police" and that they are allowed to send this message in this way). The BasicVehicleRole +* entry is often used and combined with other information about the requester as well, such as details of why the request is +* being made. +* +* - 0 - `basicVehicle` - Light duty passenger vehicle type +* - 1 - `publicTransport` - Used in EU for Transit us +* - 2 - `specialTransport` - Used in EU (e.g. heavy load) +* - 3 - `dangerousGoods` - Used in EU for any HAZMAT +* - 4 - `roadWork` - Used in EU for State and Local DOT uses +* - 5 - `roadRescue` - Used in EU and in the US to include tow trucks. +* - 6 - `emergency` - Used in EU for Police, Fire and Ambulance units +* - 7 - `safetyCar` - Used in EU for Escort vehicles +* - 8 - `none-unknown` - added to follow current SAE style guidelines +* - 9 - `truck` - Heavy trucks with additional BSM rights and obligations +* - 10 - `motorcycle` - Motorcycle +* - 11 - `roadSideSource` - For infrastructure generated calls such as fire house, rail infrastructure, roadwork site, etc. +* - 12 - `police` - Police vehicle +* - 13 - `fire` - Firebrigade +* - 14 - `ambulance` - (does not include private para-transit etc.) +* - 15 - `dot` - all roadwork vehicles +* - 16 - `transit` - all transit vehicles +* - 17 - `slowMoving` - to also include oversize etc. +* - 18 - `stopNgo` - to include trash trucks, school buses and others +* - 19 - `cyclist` - bicycles +* - 20 - `pedestrian` - also includes those with mobility limitations +* - 21 - `nonMotorized` - other, horse drawn, etc. +* - 22 - `military` - military vehicles +* +* @note: It should be observed that devices can at times change their roles (i.e. a fire operated by a volunteer +* fireman can assume a fire role for a period of time when in service, or a pedestrian may assume a cyclist role when using +* a bicycle). It should be observed that not all devices (or vehicles) can assume all roles, nor that a given +* device in a given role will be provided with a security certificate (CERT) that has suitable SSP credentials to provide the +* ability to send a particular message or message content. The ultimate responsibility to determine what role is to be used, +* and what CERTs would be provided for that role (which in turn controls the messages and message content that can be +* sent within SAE-defined PSIDs) rests with the regional deployment. +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +BasicVehicleRole ::= ENUMERATED { + basicVehicle (0), + publicTransport (1), + specialTransport (2), + dangerousGoods (3), + roadWork (4), + roadRescue (5), + emergency (6), + safetyCar (7), + none-unknown (8), + truck (9), + motorcycle (10), + roadSideSource (11), + police (12), + fire (13), + ambulance (14), + dot (15), + transit (16), + slowMoving (17), + stopNgo (18), + cyclist (19), + pedestrian (20), + nonMotorized (21), + military (22), + ..., + tram (23) -- Extension in V2.2.1 +} + +/** +* The DSRC style day is a simple value consisting of integer values from zero to 31. The value of zero shall represent an unknown value. +* +* @unit: days +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +DDay ::= INTEGER (0..31) + +/** +* This DE provides the final angle used in the last point of the lane path. Used to "cant" the stop line of the lane. +* +* With an angle range from negative 150 to positive 150 in one degree steps where zero is directly +* along the axis or the lane center line as defined by the two closest points. +* +* @unit: degree +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +DeltaAngle ::= INTEGER (-150..150) + +/** +* This DE provides a time definition for an object's schedule adherence (typically a transit +* vehicle) within a limited range of time. When the reporting object is ahead of schedule, a positive value is used; when +* behind, a negative value is used. A value of zero indicates schedule adherence. This value is typically sent from a vehicle +* to the traffic signal controller's RSU to indicate the urgency of a signal request in the context of being within schedule or +* not. In another use case, the traffic signal controller may advise the transit vehicle to speed up (DeltaTime > 0) or to slow +* down (DeltaTime < 0) to optimize the transit vehicle distribution driving along a specific route (e.g. a Bus route). +* +* Supporting a range of +/- 20 minute in steps of 10 seconds: +* - the value of `-121` shall be used when more than -20 minutes +* - the value of `+120` shall be used when more than +20 minutes +* - the value `-122` shall be used when the value is unavailable +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +DeltaTime ::= INTEGER (-122 .. 121) + +/** +* This DE is used in maps and intersections to provide a human readable and +* recognizable name for the feature that follows. It is typically used when debugging a data flow and not in production use. +* One key exception to this general rule is to provide a human-readable string for disabled travelers in the case of +* crosswalks and sidewalk lane objects. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +DescriptiveName ::= IA5String (SIZE(1..63)) + +/** +* The DSRC hour consists of integer values from zero to 23 representing the hours within a day. The value of 31 shall +* represent an unknown value. The range 24 to 30 is used in some transit applications to represent schedule adherence. +* +* @unit: hours +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +DHour ::= INTEGER (0..31) + +/** +* The DSRC style minute is a simple value consisting of integer values from zero to 59 representing the minutes +* within an hour. The value of 60 shall represent an unknown value. +* +* @unit: minutes +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +DMinute ::= INTEGER (0..60) + +/** +* The DSRC month consists of integer values from one to 12, representing the month within a year. The value of 0 +* shall represent an unknown value. +* +* @unit: months +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +DMonth ::= INTEGER (0..12) + +/** +* The DSRC (time zone) offset consists of a signed integer representing an hour and minute value set from -14:00 to +* +14:00, representing all the world’s local time zones in units of minutes. The value of zero (00:00) may also represent an +* unknown value. Note some time zones are do not align to hourly boundaries. +* +* @unit: minutes from UTC time +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +DOffset ::= INTEGER (-840..840) + +/** +* This DE is an integer value expressing the offset in a defined axis from a +* reference lane number from which a computed lane is offset. The measurement is taken from the reference lane center +* line to the new center line, independent of any width values. The units are a signed value with an LSB of 1 cm. +* +* @unit: cm +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +DrivenLineOffsetLg ::= INTEGER (-32767..32767) + +/** +* The DrivenLineOffsetSmall data element is an integer value expressing the offset in a defined axis from a reference +* lane number from which a computed lane is offset. The measurement is taken from the reference lane center line to the +* new center line, independent of any width values. The units are a signed value with an LSB of 1 cm. +* +* @unit: cm +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +DrivenLineOffsetSm ::= INTEGER (-2047..2047) + +/** +* The DSRC second expressed in this DE consists of integer values from zero to 60999, representing the +* milliseconds within a minute. A leap second is represented by the value range 60000 to 60999. The value of 65535 shall +* represent an unavailable value in the range of the minute. The values from 61000 to 65534 are reserved. +* +* @unit: milliseconds +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +DSecond ::= INTEGER (0..65535) + +/** +* The DSRC year consists of integer values from zero to 4095 representing the year according to the Gregorian +* calendar date system. The value of zero shall represent an unknown value. +* +* @unit: years +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +DYear ::= INTEGER (0..4095) + +/** +* This DE represents the geographic position above or below the reference ellipsoid (typically WGS-84). +* The number has a resolution of 1 decimeter and represents an asymmetric range of positive and negative +* values. Any elevation higher than +6143.9 meters is represented as +61439. +* +* Any elevation lower than -409.5 meters is represented as -4095. +* +* If the sending device does not know its elevation, it shall encode the Elevation data element with -4096. +* +* @note: When a vehicle is being measured, the elevation is taken from the horizontal spatial center of the vehicle +* projected downward, regardless of vehicle tilt, to the point where the vehicle meets the road surface. +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +Elevation ::= INTEGER (-4096..61439) + +/** +* This DE is used to provide the 95% confidence level for the currently reported value of @ref Elevation, +* taking into account the current calibration and precision of the sensor(s) used to measure and/or +* calculate the value. This data element is only to provide the listener with information on the limitations of the sensing +* system, not to support any type of automatic error correction or to imply a guaranteed maximum error. This data element +* should not be used for fault detection or diagnosis, but if a vehicle is able to detect a fault, the confidence interval should +* be increased accordingly. The frame of reference and axis of rotation used shall be in accordance with that defined in Section 11. +* +* - `unavailable` - 0: B'0000 Not Equipped or unavailable +* - `elev-500-00` - 1: B'0001 (500 m) +* - `elev-200-00` - 2: B'0010 (200 m) +* - `elev-100-00` - 3: B'0011 (100 m) +* - `elev-050-00` - 4: B'0100 (50 m) +* - `elev-020-00` - 5: B'0101 (20 m) +* - `elev-010-00` - 6: B'0110 (10 m) +* - `elev-005-00` - 7: B'0111 (5 m) +* - `elev-002-00` - 8: B'1000 (2 m) +* - `elev-001-00` - 9: B'1001 (1 m) +* - `elev-000-50` - 10: B'1010 (50 cm) +* - `elev-000-20` - 11: B'1011 (20 cm) +* - `elev-000-10` - 12: B'1100 (10 cm) +* - `elev-000-05` - 13: B'1101 (5 cm) +* - `elev-000-02` - 14: B'1110 (2 cm) +* - `elev-000-01` - 15: B'1111 (1 cm) +* +* @note: Encoded as a 4 bit value +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +ElevationConfidence ::= ENUMERATED { + unavailable (0), + elev-500-00 (1), + elev-200-00 (2), + elev-100-00 (3), + elev-050-00 (4), + elev-020-00 (5), + elev-010-00 (6), + elev-005-00 (7), + elev-002-00 (8), + elev-001-00 (9), + elev-000-50 (10), + elev-000-20 (11), + elev-000-10 (12), + elev-000-05 (13), + elev-000-02 (14), + elev-000-01 (15) +} + +/** +* This DE provides the type of fuel used by a vehicle. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +FuelType ::= INTEGER (0..15) + unknownFuel FuelType ::= 0 + gasoline FuelType ::= 1 + ethanol FuelType ::= 2 + diesel FuelType ::= 3 + electric FuelType ::= 4 + hybrid FuelType ::= 5 + hydrogen FuelType ::= 6 + natGasLiquid FuelType ::= 7 + natGasComp FuelType ::= 8 + propane FuelType ::= 9 + +/** +* This DE is used to relate the current state of a GPS/GNSS rover or base system in terms +* of its general health, lock on satellites in view, and use of any correction information. Various bits can be asserted (made +* to a value of one) to reflect these values. A GNSS set with unknown health and no tracking or corrections would be +* represented by setting the unavailable bit to one. A value of zero shall be used when a defined data element is +* unavailable. The term "GPS" in any data element name in this standard does not imply that it is only to be used for GPS- +* type GNSS systems. +* +* - `unavailable` - 0: Not Equipped or unavailable +* - `isHealthy` - 1: +* - `isMonitored` - 2: +* - `baseStationType` - 3: Set to zero if a moving base station, or if a rover device (an OBU), Set to one if it is a fixed base station +* - `aPDOPofUnder5` - 4: A dilution of precision greater than 5 +* - `inViewOfUnder5` - 5: Less than 5 satellites in view +* - `localCorrectionsPresent` - 6: DGPS type corrections used +* - `networkCorrectionsPresen` - 7: RTK type corrections used +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +GNSSstatus ::= BIT STRING { + unavailable (0), + isHealthy (1), + isMonitored (2), + baseStationType (3), + aPDOPofUnder5 (4), + inViewOfUnder5 (5), + localCorrectionsPresent (6), + networkCorrectionsPresent (7) + } (SIZE(8)) + +/** +* The DE_HeadingConfidence data element is used to provide the 95% confidence level for the currently reported +* calculate the value. This data element is only to provide the listener with information on the limitations of the sensing +* value of DE_Heading, taking into account the current calibration and precision of the sensor(s) used to measure and/or +* system, not to support any type of automatic error correction or to imply a guaranteed maximum error. This data element +* should not be used for fault detection or diagnosis, but if a vehicle is able to detect a fault, the confidence interval should +* be increased accordingly. The frame of reference and axis of rotation used shall be in accordance with that defined Section 11. +* +* - `unavailable` - 0: B'000 Not Equipped or unavailable +* - `prec10deg` - 1: B'010 10 degrees +* - `prec05deg` - 2: B'011 5 degrees +* - `prec01deg` - 3: B'100 1 degrees +* - `prec0-1deg` - 4: B'101 0.1 degrees +* - `prec0-05deg` - 5: B'110 0.05 degrees +* - `prec0-01deg` - 6: B'110 0.01 degrees +* - `prec0-0125deg` - 7: B'111 0.0125 degrees, aligned with heading LSB +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +HeadingConfidenceDSRC ::= ENUMERATED { + unavailable (0), + prec10deg (1), + prec05deg (2), + prec01deg (3), + prec0-1deg (4), + prec0-05deg (5), + prec0-01deg (6), + prec0-0125deg (7) +} + +/** +* This DE provides the current heading of the sending device, expressed in unsigned units of +* 0.0125 degrees from North such that 28799 such degrees represent 359.9875 degrees. North shall be defined as the axis +* prescribed by the WGS-84 coordinate system and its reference ellipsoid. Headings "to the east" are defined as the +* positive direction. A value of 28800 shall be used when unavailable. This element indicates the direction of motion of the +* device. When the sending device is stopped and the trajectory (path) over which it traveled to reach that location is well +* known, the past heading may be used. +* +* Value provides a range of 0 to 359.9875 degrees +* +* @unit: Note that other heading data elements of various sizes and precisions are found in other parts of this standard +* and in ITS. This element should no longer be used for new work: the @ref Angle entry is preferred. +* +* @unit: 0.0125 degrees +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +HeadingDSRC ::= INTEGER (0..28800) + +/** +* This DE is used within a region to uniquely define an intersection within that country or region in a 16-bit +* field. Assignment rules are established by the regional authority associated with the RoadRegulatorID under which this +* IntersectionID is assigned. Within the region the policies used to ensure an assigned value’s uniqueness before that value +* is reused (if ever) is the responsibility of that region. Any such reuse would be expected to occur over a long epoch (many years). +* The values zero through 255 are allocated for testing purposes +* +* @note: Note that the value assigned to an intersection will be unique within a given regional ID only +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +IntersectionID ::= INTEGER (0..65535) + +/** +* The Intersection Status Object contains Advanced Traffic Controller (ATC) status information that may be sent to +* local OBUs as part of the SPAT process. +* +* With bits as defined: +* - `manualControlIsEnabled` - 0: Timing reported is per programmed values, etc. but person at cabinet can manually request that certain intervals are terminated early (e.g. green). +* - `stopTimeIsActivated` - 1: And all counting/timing has stopped. +* - `failureFlash` - 2: Above to be used for any detected hardware failures, e.g. conflict monitor as well as for police flash +* - `fixedTimeOperation` - 5: Schedule of signals is based on time only (i.e. the state can be calculated) +* - `trafficDependentOperation` - 6: Operation is based on different levels of traffic parameters (requests, duration of gaps or more complex parameters) +* - `standbyOperation` - 7: Controller: partially switched off or partially amber flashing +* - `failureMode` - 8: Controller has a problem or failure in operation +* - `off` - 9: Controller is switched off +* - `recentMAPmessageUpdate` - 10: Map revision with content changes +* - `recentChangeInMAPassignedLanesIDsUsed` - 11: Change in MAP's assigned lanes used (lane changes) Changes in the active lane list description +* - `noValidMAPisAvailableAtThisTime` - 12: MAP (and various lanes indexes) not available +* - `noValidSPATisAvailableAtThisTime` - 13: SPAT system is not working at this time +* - Bits 14,15 reserved at this time and shall be zero +* +* @note: All zeros indicate normal operating mode with no recent changes. The duration of the term 'recent' is defined by the system performance requirement in use. +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +IntersectionStatusObject ::= BIT STRING { + manualControlIsEnabled (0), + stopTimeIsActivated (1), + failureFlash (2), + preemptIsActive (3), + signalPriorityIsActive (4), + fixedTimeOperation (5), + trafficDependentOperation (6), + standbyOperation (7), + failureMode (8), + off (9), + recentMAPmessageUpdate (10), + recentChangeInMAPassignedLanesIDsUsed (11), + noValidMAPisAvailableAtThisTime (12), + noValidSPATisAvailableAtThisTime (13) +} (SIZE(16)) + +/** +* This DE relates specific properties found in a Barrier or Median lane type (a type of lane object used to separate traffic lanes). +* It should be noted that various common lane attribute properties (such as travel directions and allowed movements or maneuvers) can be found in other entries. +* +* With bits as defined: +* - `median-RevocableLane` - 0: this lane may be activated or not based on the current SPAT message contents if not asserted, the lane is ALWAYS present +* - Bits 10-15 reserved and set to zero +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +LaneAttributes-Barrier ::= BIT STRING { + median-RevocableLane (0), + median (1), + whiteLineHashing (2), + stripedLines (3), + doubleStripedLines (4), + trafficCones (5), + constructionBarrier (6), + trafficChannels (7), + lowCurbs (8), + highCurbs (9) +} (SIZE (16)) + +/** +* This DE relates specific properties found in a bicycle lane type. It should be noted that various common lane attribute properties +* (such as travel directions and allowed movements or maneuvers) can be found in other entries. +* +* With bits as defined: +* - `bikeRevocableLane` - 0: this lane may be activated or not based on the current SPAT message contents if not asserted, the lane is ALWAYS present +* - `pedestrianUseAllowed` - 1: The path allows pedestrian traffic, if not set, this mode is prohibited +* - `isBikeFlyOverLane` - 2: path of lane is not at grade +* - `fixedCycleTime` - 3: the phases use preset times, i.e. there is not a 'push to cross' button +* - `biDirectionalCycleTimes` - 4: ped walk phases use different SignalGroupID for each direction. The first SignalGroupID in the first Connection +* represents 'inbound' flow (the direction of travel towards the first node point) while second SignalGroupID in the +* next Connection entry represents the 'outbound' flow. And use of RestrictionClassID entries in the Connect follow this same pattern in pairs. +* -`isolatedByBarrier` - 5: The lane path is isolated by a fixed barrier +* -`unsignalizedSegmentsPresent` - 6: The lane path consists of one of more segments which are not part of a signal group ID +* - Bits 7-15 reserved and set to zero +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +LaneAttributes-Bike ::= BIT STRING { + bikeRevocableLane (0), + pedestrianUseAllowed (1), + isBikeFlyOverLane (2), + fixedCycleTime (3), + biDirectionalCycleTimes (4), + isolatedByBarrier (5), + unsignalizedSegmentsPresent (6) +} (SIZE (16)) + +/** +* This DE relates specific properties found in a crosswalk lane type. It should be noted that various common lane attribute properties +* (such as travel directions and allowed movements or maneuvers) can be found in other entries. +* +* With bits as defined: +* - `crosswalkRevocableLane` - 0: this lane may be activated or not based on the current SPAT message contents if not asserted, the lane is ALWAYS present +* - `bicyleUseAllowed` - 1: The path allows bicycle traffic, if not set, this mode is prohibited +* - `isXwalkFlyOverLane` - 2: path of lane is not at grade +* - `fixedCycleTime` - 3: ped walk phases use preset times. i.e. there is not a 'push to cross' button +* - `biDirectionalCycleTimes` - 4: ped walk phases use different SignalGroupID for each direction. The first SignalGroupID +* in the first Connection represents 'inbound' flow (the direction of travel towards the first +* node point) while second SignalGroupID in the next Connection entry represents the 'outbound' +* flow. And use of RestrictionClassID entries in the Connect follow this same pattern in pairs. +* - `hasPushToWalkButton` - 5: Has a demand input +* - `audioSupport` - 6: audio crossing cues present +* - `rfSignalRequestPresent` - 7: Supports RF push to walk technologies +* - `unsignalizedSegmentsPresent` - 8: The lane path consists of one of more segments which are not part of a signal group ID +* - Bits 9-15 reserved and set to zero +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +LaneAttributes-Crosswalk ::= BIT STRING { + crosswalkRevocableLane (0), + bicyleUseAllowed (1), + isXwalkFlyOverLane (2), + fixedCycleTime (3), + biDirectionalCycleTimes (4), + hasPushToWalkButton (5), + audioSupport (6), + rfSignalRequestPresent (7), + unsignalizedSegmentsPresent (8) +} (SIZE (16)) + +/** +* This DE relates specific properties found in a vehicle parking lane type. It should be noted that various common lane attribute +* properties can be found in other entries. +* +* With bits as defined: +* - `parkingRevocableLane` - 0: this lane may be activated or not based on the current SPAT message contents if not asserted, the lane is ALWAYS present +* - `doNotParkZone` - 3: used to denote fire hydrants as well as short disruptions in a parking zone +* - `noPublicParkingUse` - 6: private parking, as in front of private property +* - Bits 7-15 reserved and set to zero* +* +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +LaneAttributes-Parking ::= BIT STRING { + parkingRevocableLane (0), + parallelParkingInUse (1), + headInParkingInUse (2), + doNotParkZone (3), + parkingForBusUse (4), + parkingForTaxiUse (5), + noPublicParkingUse (6) +} (SIZE (16)) + +/** +* This DE relates specific properties found in a sidewalk lane type. It should be noted that various common lane attribute properties +* (such as travel directions and allowed movements or maneuvers) can be found in other entries. +* +* With bits as defined: +* - `sidewalk-RevocableLane`- 0: this lane may be activated or not based on the current SPAT message contents if not asserted, the lane is ALWAYS present. +* - `bicyleUseAllowed` - 1: The path allows bicycle traffic, if not set, this mode is prohibited +* - `isSidewalkFlyOverLane` - 2: path of lane is not at grade +* - `walkBikes` - 3: bike traffic must dismount and walk +* - Bits 4-15 reserved and set to zero +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +LaneAttributes-Sidewalk ::= BIT STRING { + sidewalk-RevocableLane (0), + bicyleUseAllowed (1), + isSidewalkFlyOverLane (2), + walkBikes (3) +} (SIZE (16)) + +/** +* This DE relates specific properties found in various types of ground striping lane +* types. This includes various types of painted lane ground striping and iconic information needs to convey information in a +* complex intersection. Typically, this consists of visual guidance for drivers to assist them to connect across the +* intersection to the correct lane. Such markings are typically used with restraint and only under conditions when the +* geometry of the intersection makes them more beneficial than distracting. It should be noted that various common lane +* attribute properties (such as travel directions and allowed movements or maneuvers) can be found in other entries. +* +* With bits as defined: +* - `stripeToConnectingLanesRevocableLane` - 0: this lane may be activated or not activated based on the current SPAT message contents if not asserted, the lane is ALWAYS present +* - `stripeToConnectingLanesAhead` - 5: the stripe type should be presented to the user visually to reflect stripes in the intersection for the type of movement indicated. +* - Bits 6-15 reserved and set to zero +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +LaneAttributes-Striping ::= BIT STRING { + stripeToConnectingLanesRevocableLane (0), + stripeDrawOnLeft (1), + stripeDrawOnRight (2), + stripeToConnectingLanesLeft (3), + stripeToConnectingLanesRight (4), + stripeToConnectingLanesAhead (5) +} (SIZE (16)) + +/** +* This DE relates specific properties found in a tracked vehicle lane types (trolley +* and train lanes). The term “rail vehicle” can be considered synonymous. In this case, the term does not relate to vehicle +* types with tracks or treads. It should be noted that various common lane attribute properties (such as travel directions and +* allowed movements or maneuvers) can be found in other entries. It should also be noted that often this type of lane object +* does not clearly relate to an approach in the traditional traffic engineering sense, although the message set allows +* assigning a value when desired. +* +* With bits as defined: +* - `spec-RevocableLane` - 0: this lane may be activated or not based on the current SPAT message contents if not asserted, the lane is ALWAYS present. +* - Bits 5-15 reserved and set to zero +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +LaneAttributes-TrackedVehicle ::= BIT STRING { + spec-RevocableLane (0), + spec-commuterRailRoadTrack (1), + spec-lightRailRoadTrack (2), + spec-heavyRailRoadTrack (3), + spec-otherRailType (4) +} (SIZE (16)) + + +/** +* This DE relates specific properties found in a vehicle lane type. This data element provides a means to denote that the use of a lane +* is restricted to certain vehicle types. Various common lane attribute properties (such as travel directions and allowed movements or maneuvers) +* can be found in other entries. +* +* With bits as defined: +* - `isVehicleRevocableLane` - 0: this lane may be activated or not based on the current SPAT message contents if not asserted, the lane is ALWAYS present +* - `isVehicleFlyOverLane` - 1: path of lane is not at grade +* - `permissionOnRequest` - 7: e.g. to inform about a lane for e-cars +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +LaneAttributes-Vehicle ::= BIT STRING { + isVehicleRevocableLane (0), + isVehicleFlyOverLane (1), + hovLaneUseOnly (2), + restrictedToBusUse (3), + restrictedToTaxiUse (4), + restrictedFromPublicUse (5), + hasIRbeaconCoverage (6), + permissionOnRequest (7) +} (SIZE (8,...)) + +/** +* This DE is used to state a connection index for a lane to lane connection. It is used to +* relate this connection between the lane (defined in the MAP) and any dynamic clearance data sent in the SPAT. It should +* be noted that the index may be shared with other lanes (for example, two left turn lanes may share the same dynamic +* clearance data). It should also be noted that a given lane to lane connection may be part of more than one GroupID due +* to signal phase considerations, but will only have one ConnectionID. The ConnectionID concept is not used (is not +* present) when dynamic clearance data is not provided in the SPAT. +* +* @note: It should be noted that the LaneConnectionID is used as a means to index to a connection description +* between two lanes. It is not the same as the laneID, which is the unique index to each lane itself. +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +LaneConnectionID ::= INTEGER (0..255) + +/** +* This DE is used to denote the allowed direction of travel over a lane object. By convention, the lane object is always described +* from the stop line outwards away from the intersection. Therefore, the ingress direction is from the end of the path to the stop +* line and the egress direction is from the stop line outwards. +* +* It should be noted that some lane objects are not used for travel and that some lane objects allow bi-directional travel. +* +* With bits as defined: +* - Allowed directions of travel in the lane object +* - All lanes are described from the stop line outwards +* +* @field ingressPath: travel from rear of path to front is allowed +* +* @field egressPath: travel from front of path to rear is allowed +* +* @note: No Travel, i.e. the lane object type does not support travel (medians, curbs, etc.) is indicated by not +* asserting any bit value Bi-Directional Travel (such as a ped crosswalk) is indicated by asserting both of the bits. +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +LaneDirection ::= BIT STRING { + ingressPath (0), + egressPath (1) +} (SIZE (2)) + +/** +* This DE conveys an assigned index that is unique within an intersection. It is used to refer to +* that lane by other objects in the intersection map data structure. Lanes may be ingress (inbound traffic) or egress +* (outbound traffic) in nature, as well as barriers and other types of specialty lanes. Each lane (each lane object) is +* assigned a unique ID. The Lane ID, in conjunction with the intersection ID, forms a regionally unique way to address a +* specific lane in that region. +* +* - the value 0 shall be used when the lane ID is not available or not known +* - the value 255 is reserved for future use +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +LaneID ::= INTEGER (0..255) + +/** +* Large @ref MapData descriptions are not possible to be broadcast with a single message and have to be +* fragmented using two or more messages over the air. Therefore, the LayerID allows defining an +* index for fragmentation of large @ref MapData descriptions. The fragmentation of the messages shall be +* executed on application layer. The fragmentation occurs on an approach base. This means that almost a +* complete approach (e.g. lanes, connectsTo, etc.) has to be included within a fragment. +* The decimal value of the `layerID` is used to define the amount of maximum @ref MapData fragments. The +* lower value defines the actual fragment. +* +* Example: +* If a MapData consists of three fragments (e.g. three approaches), the fragments are identified as follows: +* - `31` - first fragment of three (e.g. approach south); +* - `33` - third fragment of three (e.g. approach north). +* - `32` - second fragment of three (e.g. approach west); +* +* If there are only two fragments, the fragment identification will be 21, 22. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +LayerID ::= INTEGER (0..100) + +/** +* This DE is used to uniquely identify the type of information to be found in a layer of a geographic map fragment such as an intersection. +* +* @field `mixedContent`: two or more of the below types +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +LayerType ::= ENUMERATED { + none, + mixedContent, + generalMapData, + intersectionData, + curveData, + roadwaySectionData, + parkingAreaData, + sharedLaneData, + ... +} + +/** +* This DE conveys the width of a lane in LSB units of 1 cm. Maximum value for a lane is 327.67 meters in width +* +* @units: cm +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +LaneWidth ::= INTEGER (0..32767) + +/** +* This DE is used to provide the R09 line information. +* +* @category: Infrastructure information +* @revision: V2.2.1 +*/ +LineNumber ::= INTEGER (0..4294967295) + +/** +* The angle at which another lane path meets the current lanes at the node point. Typically found in the node +* attributes and used to describe the angle of the departing or merging lane. Note that oblique and obtuse angles are allowed. +* +* The value `-180` shall be used to represent data is not available or unknown +* +* @unit: 1.5 degrees from north +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +MergeDivergeNodeAngle ::= INTEGER (-180..180) + +/** +* This DE expresses the number of elapsed minutes of the current year in the time system being used (typically UTC time). +* +* It is typically used to provide a longer range time stamp indicating when a message was created. +* Taken together with the DSecond data element, it provides a range of one full year with a resolution of 1 millisecond. +* +* The value 527040 shall be used for invalid. +* +* @note: It should be noted that at the yearly roll-over point there is no "zero" minute, in the same way that there was +* never a "year zero" at the very start of the common era (BC -> AD). By using the number of elapsed whole minutes here +* this issue is avoided and the first valid value of every new year is zero, followed by one, etc. Leap years are +* accommodated, as are leap seconds in the DSecond data concept. +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +MinuteOfTheYear ::= INTEGER (0..527040) + +/** +* This DE provides the overall current state of the movement (in many cases a signal state), including its core phase state +* and an indication of whether this state is permissive or protected. +* +* It is expected that the allowed transitions from one state to another will be defined by regional deployments. Not all +* regions will use all states; however, no new states are to be defined. In most regions a regulatory body provides precise +* legal definitions of these state changes. For example, in the US the MUTCD is used, as is indicated in the US regional +* variant of the above image. In various regions and modes of transportation, the visual expression of these states varies +* (the precise meaning of various color combinations, shapes, and/or flashing etc.). The below definition is designed to to +* be independent of these regional conventions. +* +* Values: +* - `unavailable` - 0: This state is used for unknown or error +* - `dark` - 1: The signal head is dark (unlit) +* - `stop-Then-Proceed` - 2: Often called 'flashing red' +* Driver Action: +* - Stop vehicle at stop line. +* - Do not proceed unless it is safe. +* Note that the right to proceed either right or left when it is safe may be contained in the lane description to +* handle what is called a 'right on red' +* - `stop-And-Remain` - 3: e.g. called 'red light' +* Driver Action: +* - Stop vehicle at stop line. +* - Do not proceed. +* Note that the right to proceed either right or left when it is safe may be contained in the lane description to +* handle what is called a 'right on red' +* - `pre-Movement` - 4: Not used in the US, red+yellow partly in EU +* Driver Action: +* - Stop vehicle. +* - Prepare to proceed (pending green) +* - (Prepare for transition to green/go) +* - `permissive-Movement-Allowed` - 5: Often called 'permissive green' +* Driver Action: +* - Proceed with caution, +* - must yield to all conflicting traffic +* Conflicting traffic may be present in the intersection conflict area +* - `protected-Movement-Allowed` - 6: Often called 'protected green' +* Driver Action: +* - Proceed, tossing caution to the wind, in indicated (allowed) direction. +* - `permissive-clearance` - 7: Often called 'permissive yellow'. +* The vehicle is not allowed to cross the stop bar if it is possible +* to stop without danger. +* Driver Action: +* - Prepare to stop. +* - Proceed if unable to stop, +* - Clear Intersection. +* Conflicting traffic may be present in the intersection conflict area +* - `protected-clearance` - 8: Often called 'protected yellow' +* Driver Action: +* - Prepare to stop. +* - Proceed if unable to stop, in indicated direction (to connected lane) +* - Clear Intersection. +* - `caution-Conflicting-Traffic` - 9: Often called 'flashing yellow' +* Often used for extended periods of time +* Driver Action: +* - Proceed with caution, +* Conflicting traffic may be present in the intersection conflict area +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +MovementPhaseState ::= ENUMERATED { + unavailable (0), + dark (1), + stop-Then-Proceed (2), + stop-And-Remain (3), + pre-Movement (4), + permissive-Movement-Allowed (5), + protected-Movement-Allowed (6), + permissive-clearance (7), + protected-clearance (8), + caution-Conflicting-Traffic (9) +} + +/** +* This DE is used to provide a sequence number within a stream of messages with the same DSRCmsgID and from the same sender. +* A sender may initialize this element to any value in the range 0-127 when sending the first message with a given DSRCmsgID, +* or if the sender has changed identity (e.g. by changing its TemporaryID) since sending the most recent message with that DSRCmsgID. +* +* Depending on the application the sequence number may change with every message or may remain fixed during a stream of messages when the content within each +* message has not changed from the prior message sent. For this element, the value after 127 is zero. +* +* The receipt of a non-sequential MsgCount value (from the same sending device and message type) implies that one or +* more messages from that sending device may have been lost, unless MsgCount has been re-initialized due to an identity +* change. +* +* @note: In the absence of additional requirements defined in a standard using this data element, the follow guidelines shall be used. +* +* In usage, some devices change their Temporary ID frequently, to prevent identity tracking, while others do not. A change +* in Temporary ID data element value (which also changes the message contents in which it appears) implies that the +* MsgCount may also change value. +* +* If a sender is composing a message with new content with a given DSRCmsgID, and the TemporaryID has not changed +* since it sent the previous message, the sender shall increment the previous value. +* If a sender is composing a message with new content with a given DSRCmsgID, and the TemporaryID has changed since +* it sent the previous message, the sender may set the MsgCount element to any valid value in the range (including +* incrementing the previous value). +* +* If a sender is composing a message with the same content as the most recent message with the same DSRCmsgID, and +* less than 10 seconds have elapsed since it sent the previous message with that DSRCmsgID, the sender will use the +* same MsgCount as sent in the previous message. +* +* If a sender is composing a message with the same content as the most recent message with the same DSRCmsgID, and +* at least 10 seconds have elapsed since it sent the previous message with that DSRCmsgID, the sender may set the +* MsgCount element to any valid value in the range; this includes the re-use of the previous value. +* +* If a sending device sends more than one stream of messages from message types that utilize the MsgCount element, it +* shall maintain a separate MsgCount state for each message type so that the MsgCount value in a given message +* identifies its place in the stream of that message type. The MsgCount element is a function only of the message type in a +* given sending device, not of the one or more applications in that device which may be sending the same type of message. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +MsgCount ::= INTEGER (0..127) + +/** +* A 9-bit delta offset in X, Y or Z direction from some known point. For non-vehicle centric coordinate frames of +* reference, offset is positive to the East (X) and to the North (Y) directions. The most negative value shall be used to +* indicate an unknown value. +* a range of +- 2.55 meters +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +Offset-B09 ::= INTEGER (-256..255) + +/** +* A 10-bit delta offset in X, Y or Z direction from some known point. For non-vehicle centric coordinate frames of +* reference, offset is positive to the East (X) and to the North (Y) directions. The most negative value shall be used to +* indicate an unknown value. +* a range of +- 5.11 meters +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +Offset-B10 ::= INTEGER (-512..511) + +/** +* An 11-bit delta offset in X or Y direction from some known point. For non-vehicle centric coordinate frames of +* reference, offset is positive to the East (X) and to the North (Y) directions. The most negative value shall be used to +* indicate an unknown value. +* a range of +- 10.23 meters +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +Offset-B11 ::= INTEGER (-1024..1023) + +/** +* A 12-bit delta offset in X, Y or Z direction from some known point. For non-vehicle centric coordinate frames of +* reference, non-vehicle centric coordinate frames of reference, offset is positive to the East (X) and to the North (Y) +* directions. The most negative value shall be used to indicate an unknown value. +* a range of +- 20.47 meters +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +Offset-B12 ::= INTEGER (-2048..2047) + +/** +* A 13-bit delta offset in X or Y direction from some known point. For non-vehicle centric coordinate frames of +* reference, offset is positive to the East (X) and to the North (Y) directions. The most negative value shall be used to +* indicate an unknown value. +* a range of +- 40.95 meters +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +Offset-B13 ::= INTEGER (-4096..4095) + +/** +* A 14-bit delta offset in X or Y direction from some known point. For non-vehicle centric coordinate frames of +* reference, offset is positive to the East (X) and to the North (Y) directions. +* a range of +- 81.91 meters +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +Offset-B14 ::= INTEGER (-8192..8191) + +/** +* A 16-bit delta offset in X, Y or Z direction from some known point. For non-vehicle centric coordinate frames of +* reference, offset is positive to the East (X) and to the North (Y) directions. The most negative value shall be used to +* indicate an unknown value. +* a range of +- 327.68 meters +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +Offset-B16 ::= INTEGER (-32768..32767) + +/** +* This DE is used to provide an indication of whether Pedestrians and/or Bicyclists have been detected in the crossing lane. +* true if ANY Pedestrians or Bicyclists are detected crossing the target lane or lanes +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +PedestrianBicycleDetect ::= BOOLEAN + +/** +* This DE entry is used to provide the 95% confidence level for the currently reported value of +* entries such as the DE_Position entries, taking into account the current calibration and precision of the sensor(s) used to +* measure and/or calculate the value. It is used in the horizontal plane. This data element is only to provide the listener with +* information on the limitations of the sensing system; not to support any type of automatic error correction or to imply a +* guaranteed maximum error. This data element should not be used for fault detection or diagnosis, but if a vehicle is able +* to detect a fault, the confidence interval should be increased accordingly. The frame of reference and axis of rotation used +* shall be accordance with that defined in Section 11 of this standard. +* +* - `unavailable` - 0: B'0000 Not Equipped or unavailable +* - `a500m` - 1: B'0001 500m or about 5 * 10 ^ -3 decimal degrees +* - `a200m` - 2: B'0010 200m or about 2 * 10 ^ -3 decimal degrees +* - `a100m` - 3: B'0011 100m or about 1 * 10 ^ -3 decimal degrees +* - `a50m` - 4: B'0100 50m or about 5 * 10 ^ -4 decimal degrees +* - `a20m` - 5: B'0101 20m or about 2 * 10 ^ -4 decimal degrees +* - `a10m` - 6: B'0110 10m or about 1 * 10 ^ -4 decimal degrees +* - `a5m` - 7: B'0111 5m or about 5 * 10 ^ -5 decimal degrees +* - `a2m` - 8: B'1000 2m or about 2 * 10 ^ -5 decimal degrees +* - `a1m` - 9: B'1001 1m or about 1 * 10 ^ -5 decimal degrees +* - `a50cm` - 10: B'1010 0.50m or about 5 * 10 ^ -6 decimal degrees +* - `a20cm` - 11: B'1011 0.20m or about 2 * 10 ^ -6 decimal degrees +* - `a10cm` - 12: B'1100 0.10m or about 1 * 10 ^ -6 decimal degrees +* - `a5cm` - 13: B'1101 0.05m or about 5 * 10 ^ -7 decimal degrees +* - `a2cm` - 14: B'1110 0.02m or about 2 * 10 ^ -7 decimal degrees +* - `a1cm` - 15) B'1111 0.01m or about 1 * 10 ^ -7 decimal degrees +* - Encoded as a 4 bit value +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +PositionConfidence ::= ENUMERATED { + unavailable (0), + a500m (1), + a200m (2), + a100m (3), + a50m (4), + a20m (5), + a10m (6), + a5m (7), + a2m (8), + a1m (9), + a50cm (10), + a20cm (11), + a10cm (12), + a5cm (13), + a2cm (14), + a1cm (15) + } + +/** +* This DE is used in the @ref PrioritizationResponse data frame to indicate the +* general status of a prior prioritization request. +* +* - `unknown` - 0: Unknown state +* - `requested` - 1: This prioritization request was detected by the traffic controller +* - `processing` - 2: Checking request (request is in queue, other requests are prior) +* - `watchOtherTraffic` - 3: Cannot give full permission, therefore watch for other traffic. Note that other requests may be present +* - `granted` - 4: Intervention was successful and now prioritization is active +* - `rejected` - 5: The prioritization or preemption request was rejected by the traffic controller +* - `maxPresence` - 6: The Request has exceeded maxPresence time. Used when the controller has determined that the requester should then back off and request an alternative. +* - `reserviceLocked` - 7: Prior conditions have resulted in a reservice +* locked event: the controller requires the passage of time before another similar request will be accepted +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +PrioritizationResponseStatus ::= ENUMERATED { + unknown (0), + requested (1), + processing (2), + watchOtherTraffic (3), + granted (4), + rejected (5), + maxPresence (6), + reserviceLocked (7), + ... +} + +/** +* This DE is used to provide the R09 priority. +* +* @category: Infrastructure information +* @revision: V2.2.1 +*/ +PriorityLevel ::= INTEGER (0..255) + +/** +* This DE provides a means to indicate if a request (found in the Signal RequestMessage) represents +* a new service request, a request update, or a request cancellation for either preemption or priority services. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +PriorityRequestType ::= ENUMERATED { + priorityRequestTypeReserved (0), + priorityRequest (1), + priorityRequestUpdate (2), + priorityCancellation (3), + ... +} + +/** +* This DE is used to define regions where unique additional content may be added and +* used in the message set. The index values defined below represent various regions known at the time of publication. This +* list is expected to grow over time. The index values assigned here can be augmented by local (uncoordinated) +* assignments in the allowed range. It should be noted that such a local value is specified in the "REGION" ASN module, so +* there is no need to edit the DSRC ASN specification of the standard. This process is further described in Section 11.1. +* +* - `noRegion` - 0: Use default supplied stubs +* - `addGrpA` - 1: USA +* - `addGrpB` - 2: Japan +* - `addGrpC` - 3: EU +* +* @note: new registered regional IDs will be added here +* The values 128 and above are for local region use +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RegionId ::= INTEGER (0..255) + noRegion RegionId ::= 0 + addGrpA RegionId ::= 1 + addGrpB RegionId ::= 2 + addGrpC RegionId ::= 3 + +/** +* This DE is used to provide the R09 reporting point. +* +* @category: Infrastructure information +* @revision: V2.2.1 +*/ +ReportingPoint ::= INTEGER (0..65535) + +/** +* This DE is used to provide a unique ID between two parties for various dialog exchanges. +* Combined with the sender's VehicleID (consisting of a TempID or a Station ID), this provides a unique string for some +* mutually defined period of time. A typical example of use would be a signal preemption or priority request dialog +* containing multiple requests from one sender (denoted by the unique RequestID with each). When such a request is +* processed and reflected in the signal status messages, the original sender and the specific request can both be determined. +* +* @note: In typical use, this value is simply incremented in a modulo fashion to ensure a unique stream of values for the +* device creating it. Any needs for uniqueness across multiple dialogs to one or more parties shall be the responsibility of +* the device to manage. There are often normative restrictions on the device changing its TempID during various dialogs +* when this data element is used. Further details of these operational concepts can be found in the relevant standards. +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RequestID ::= INTEGER (0..255) + +/** +* This DE is used to state what type of signal request is being made to a signal +* controller by a DSRC device in a defined role (such as a police vehicle). The levels of the request typically convey a +* sense of urgency or importance with respect to other demands to allow the controller to use predefined business rules to +* determine how to respond. These rules will vary in terms of how details of overall importance and urgency are to be +* ranked, so they are to be implemented locally. As a result of this regional process, the list below should be assigned well- +* defined meanings by the local deployment. These meaning will typically result in assigning a set of values to list for each +* vehicle role type that is to be supported. +* +* - `requestImportanceLevel1` 1: The least important request +* - `requestImportanceLevel14` 14: The most important request +* - `requestImportanceReserved` 15: Reserved for future use +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RequestImportanceLevel ::= ENUMERATED { + requestImportanceLevelUnKnown (0), + requestImportanceLevel1 (1), + requestImportanceLevel2 (2), + requestImportanceLevel3 (3), + requestImportanceLevel4 (4), + requestImportanceLevel5 (5), + requestImportanceLevel6 (6), + requestImportanceLevel7 (7), + requestImportanceLevel8 (8), + requestImportanceLevel9 (9), + requestImportanceLevel10 (10), + requestImportanceLevel11 (11), + requestImportanceLevel12 (12), + requestImportanceLevel13 (13), + requestImportanceLevel14 (14), + requestImportanceReserved (15) +} + +/** +* This DE is used to further define the details of the role which any DSRC device might +* play when making a request to a signal controller. This value is not always needed. For example, perhaps in a +* deployment all police vehicles are to be treated equally. The taxonomy of what details are selected to be entered into the +* list is a regional choice but should be devised to allow the controller to use predefined business rules to respond using the +* data. As another example, perhaps in a regional deployment a cross-city express type of transit vehicle is given a different +* service response for the same request than another type of transit vehicle making an otherwise similar request. As a +* result of this regional process, the list below should be assigned well-defined meanings by the local deployment. These +* meanings will typically result in assigning a set of values to list for each vehicle role type that is to be supported. +* +* - `requestSubRole1` - 1: The first type of sub role +* - `requestSubRole14` - 14: The last type of sub role +* - `requestSubRoleReserved` - 15: Reserved for future use +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RequestSubRole ::= ENUMERATED { + requestSubRoleUnKnown (0), + requestSubRole1 (1), + requestSubRole2 (2), + requestSubRole3 (3), + requestSubRole4 (4), + requestSubRole5 (5), + requestSubRole6 (6), + requestSubRole7 (7), + requestSubRole8 (8), + requestSubRole9 (9), + requestSubRole10 (10), + requestSubRole11 (11), + requestSubRole12 (12), + requestSubRole13 (13), + requestSubRole14 (14), + requestSubRoleReserved (15) +} + +/** +* The RestrictionAppliesTo data element provides a short list of common vehicle types which may have one or more +* special movements at an intersection. In general, these movements are not visible to other traffic with signal heads, but +* the SPAT data reflects the state of the movement. Various restricted movements at an intersection can be expressed +* using this element to indicate where the movement applies. +* +* - `none` : applies to nothing +* - `equippedTransit`: buses etc. +* - `equippedTaxis`: +* - `equippedOther`: other vehicle types with necessary signal phase state reception equipment +* - `emissionCompliant`: regional variants with more definitive items also exist +* - `equippedBicycle`: +* - `weightCompliant`: +* - `heightCompliant`: Items dealing with traveler needs serviced by the infrastructure. These end users (which are not vehicles) are presumed to be suitably equipped +* - `pedestrians`: +* - `slowMovingPersons`: +* - `wheelchairUsers`: +* - `visualDisabilities`: +* - `audioDisabilities`: hearing +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RestrictionAppliesTo ::= ENUMERATED { + none, + equippedTransit, + equippedTaxis, + equippedOther, + emissionCompliant, + equippedBicycle, + weightCompliant, + heightCompliant, + pedestrians, + slowMovingPersons, + wheelchairUsers, + visualDisabilities, + audioDisabilities, + otherUnknownDisabilities, + ... +} + +/** +* This DE defines an intersection-unique value to convey data about classes of users. +* The mapping used varies with each intersection and is defined in the MAP message if needed. The defined mappings +* found there are used to determine when a given class is meant. The typical use of this element is to map additional +* movement restrictions or rights (in both the MAP and SPAT messages) to special classes of users (trucks, high sided +* vehicles, special vehicles etc.). There is the general presumption that in the absence of this data, any allowed movement +* extends to all users. +* +* An index value to identify data about classes of users the value used varies with each intersection's +* needs and is defined in the map to the assigned classes of supported users. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RestrictionClassID ::= INTEGER (0..255) + +/** +* This DE is a 16-bit globally unique identifier assigned to an entity responsible for assigning +* Intersection IDs in the region over which it has such authority. The value zero shall be used for testing, and should only be +* used in the absence of a suitable assignment. A single entity which assigns intersection IDs may be assigned several +* RoadRegulatorIDs. These assignments are presumed to be permanent. +* +* The value zero shall be used for testing only +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RoadRegulatorID ::= INTEGER (0..65535) + +/** +* This DE is used to uniquely define a section of roadway within a country or region in a 16-bit field. +* Assignment rules for this value are established elsewhere and may use regional assignment schemas that vary. Within +* the region the policies used to ensure an assigned value’s uniqueness before that value is reused is the responsibility of +* that region. Such reuse is expected to occur, but over somewhat lengthy epoch (months). +* +* The values zero to 255 shall be used for testing only +* Note that the value assigned to an RoadSegment will be +* unique within a given regional ID only during its use +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RoadSegmentID ::= INTEGER (0..65535) + +/** +* The RoadwayCrownAngle data element relates the gross tangential angle of the roadway surface with respect to +* the local horizontal axis and is measured at the indicated part of the lane. This measurement is typically made at the +* crown (centerline) or at an edge of the lane path. Its typical use is to relate data used in speed warning and traction +* calculations for the lane segment or roadway segment in which the measurement is taken. +* +* - The value -128 shall be used for unknown +* - The value zero shall be used for angles which are between -0.15 and +0.15 +* +* @unit: 0.3 degrees of angle over a range of -38.1 to + 38.1 degrees +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RoadwayCrownAngle ::= INTEGER (-128..127) + +/** +* This DE is used to provide the R09 route information. +* +* @category: Infrastructure information +* @revision: V2.2.1 +*/ +RouteNumber ::= INTEGER (0..4294967295) + +/** +* This DE contains the stream of octets of the actual RTCM message that is being sent. +* The message’s contents are defined in RTCM Standard 10403.1 and in RTCM Standard 10402.1 and its successors. +* Note that most RTCM messages are considerably smaller than the size limit defined here, but that some messages may +* need to be broken into smaller messages (as per the rules defined in the RTCM work) in order to be transmitted over DSRC. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RTCMmessage ::= OCTET STRING (SIZE(1..1023)) + +/** +* This DE provides the specific revision of the RTCM standard which is being used. This is +* helpful to know precisely the mapping of the message types to their definitions, as well as some minor transport layer +* ordering details when received in the mobile unit. All RTCM SC-104 messages follow a common message numbering +* method (wherein all defined messages are given unique values) which can be decoded from the initial octets of the +* message. This operation is typically performed by the GNSS rover that consumes the messages, so it is transparent at +* the DSRC message set level. +* +* Values: +* - `rtcmRev2`: Std 10402.x et al +* - `rtcmRev3`: Std 10403.x et al +* +* @note:: In order to fully support the use of networked transport of RTCM corrections (so-called Ntrip systems), the +* enumerated list of protocol types provides for all the common types outlined in RTCM Standard 10410.0, Appendix B. It is +* anticipated that revisions 3.x and 2.3 will predominate in practice as they do today. It should also be noted that RTCM +* standards use the term `byte` for an 8-bit value, while in this standard the term `octet` is used. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RTCM-Revision ::= ENUMERATED { + unknown (0), + rtcmRev2 (1), + rtcmRev3 (2), + reserved (3), + ... +} + +/** +* A 12-bit signed scaling factor supporting scales from zero (which is not used) to >200%. In this data element, the +* value zero is taken to represent a value of one (scale 1:1). Values above and below this add or remove exactly 0.05% +* from the initial value of 100%. Hence, a value of 2047 adds 102.35% to 100%, resulting in a scale of 202.35% exactly (the +* largest valid scale value). Negative values which would result in an effective final value below zero are not supported. The +* smallest valid value allowed is -1999 and the remaining negative values are reserved for future definition. +* +* @unit: in steps of 0.05 percent +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +Scale-B12 ::= INTEGER (-2048..2047) + +/** +* This DE is an index used to map between the internal state machine of one or more signal controllers (or +* other types of traffic flow devices) and a common numbering system that can represent all possible combinations of active +* states (movements and phases in US traffic terminology). All possible movement variations are assigned a unique value +* within the intersection. Conceptually, the ID represents a means to provide a list of lanes in a set which would otherwise +* need to be enumerated in the message. The values zero and 255 are reserved, so there may up to 254 different signal +* group IDs within one single intersection. The value 255 represents a protected-Movement-Allowed or permissive- +* Movement-Allowed condition that exists at all times. This value is applied to lanes, with or without traffic control devices, +* that operate as free-flow lanes. Typically referred to as Channelized Right/Left Turn Lanes (in right/left-hand drive +* countries). +* +* Values: +* - the value `0` shall be used when the ID is not available or not known +* - the value `255` is reserved to indicate a permanent green movement state +* - therefore a simple 8 phase signal controller device might use 1..9 as its groupIDs +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SignalGroupID ::= INTEGER (0..255) + +/** +* This DE is an enumerated list of attributes about the current lane segment which +* may be enabled or disabled to indicate the presence or absence of the selected attribute on the segment. A segment is +* one or more of the straight lines formed between each set of node points. It is common for a segment attribute to persist +* for more than one set of node points if there is any curvature in the lane itself. The described attributes are all binary flags +* in that they do not need to convey any additional data. Other attributes allow sending short data values to reflect a setting +* which is set and persists in a similar fashion. +* +* Various values which can be Enabled and Disabled for a lane segment +* - reserved: +* - doNotBlock: segment where a vehicle may not come to a stop +* - whiteLine: segment where lane crossing not allowed such as the final few meters of a lane +* - mergingLaneLeft: indicates porous lanes +* - mergingLaneRight: indicates porous lanes +* - curbOnLeft: indicates presence of curbs +* - curbOnRight: indicates presence of curbs +* - loadingzoneOnLeft: loading or drop off zones +* - loadingzoneOnRight: loading or drop off zones +* - turnOutPointOnLeft: opening to adjacent street/alley/road +* - turnOutPointOnRight: opening to adjacent street/alley/road +* - adjacentParkingOnLeft: side of road parking +* - adjacentParkingOnRight: side of road parking +* - adjacentBikeLaneOnLeft: presence of marked bike lanes +* - adjacentBikeLaneOnRight: presence of marked bike lanes +* - sharedBikeLane: right of way is shared with bikes who may occupy entire lane width +* - bikeBoxInFront: +* - transitStopOnLeft: any form of bus/transit loading, with pull in-out access to lane on left +* - transitStopOnRight: any form of bus/transit loading, with pull in-out access to lane on right +* - transitStopInLane: any form of bus/transit loading, in mid path of the lane +* - sharedWithTrackedVehicle: lane is shared with train or trolley, not used for crossing tracks +* - safeIsland: begin/end a safety island in path +* - lowCurbsPresent: for ADA support +* - rumbleStripPresent: for ADA support +* - audibleSignalingPresent: for ADA support +* - adaptiveTimingPresent: for ADA support +* - rfSignalRequestPresent: Supports RF push to walk technologies +* - partialCurbIntrusion: path is blocked by a median or curb but at least 1 meter remains open for use +* and at-grade passage Lane geometry details +* - taperToLeft: Used to control final path shape (see standard for defined shapes) +* - taperToRight: Used to control final path shape (see standard for defined shapes) +* - taperToCenterLine: Used to control final path shape (see standard for defined shapes) +* - parallelParking: Parking at an angle with the street +* - headInParking: Parking at an angle with the street +* - freeParking: No restriction on use of parking +* - timeRestrictionsOnParking: Parking is not permitted at all times +* typically used when the 'parking' lane becomes a driving lane at times +* - costToPark: Used where parking has a cost +* - midBlockCurbPresent: a protruding curb near lane edge +* - unEvenPavementPresent: a disjoint height at lane edge +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SegmentAttributeXY ::= ENUMERATED { + reserved , + doNotBlock , + whiteLine , + mergingLaneLeft , + mergingLaneRight , + curbOnLeft , + curbOnRight , + loadingzoneOnLeft , + loadingzoneOnRight , + turnOutPointOnLeft , + turnOutPointOnRight , + adjacentParkingOnLeft , + adjacentParkingOnRight , + adjacentBikeLaneOnLeft , + adjacentBikeLaneOnRight , + sharedBikeLane , + bikeBoxInFront , + transitStopOnLeft , + transitStopOnRight , + transitStopInLane , + sharedWithTrackedVehicle , + safeIsland , + lowCurbsPresent , + rumbleStripPresent , + audibleSignalingPresent , + adaptiveTimingPresent , + rfSignalRequestPresent , + partialCurbIntrusion , + taperToLeft , + taperToRight , + taperToCenterLine , + parallelParking , + headInParking , + freeParking , + timeRestrictionsOnParking , + costToPark , + midBlockCurbPresent , + unEvenPavementPresent , + ... +} + +/** +* This DE is used to express the radius (length) of the semi-major axis of an +* ellipsoid representing the accuracy which can be expected from a GNSS system in 5cm steps, +* typically at a one sigma level of confidence. +* +* Value is semi-major axis accuracy at one standard dev. +* - Range 0-12.7 meter, LSB = .05m +* - 254 = any value equal or greater than 12.70 meter +* - 255 = unavailable semi-major axis value +* +* @unit: 0.05m +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SemiMajorAxisAccuracy ::= INTEGER (0..255) + +/** +* This DE is used to orientate the angle of the semi-major axis of an +* ellipsoid representing the accuracy which can be expected from a GNSS system with respect to the coordinate system. +* +* Value is orientation of semi-major axis +* - relative to true north (0-359.9945078786 degrees) +* - LSB units of 360/65535 deg = 0.0054932479 +* - a value of 0 shall be 0 degrees +* - a value of 1 shall be 0.0054932479 degrees +* - a value of 65534 shall be 359.9945078786 deg +* - a value of 65535 shall be used for orientation unavailable +* +* @unit: 360/65535 degree +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SemiMajorAxisOrientation ::= INTEGER (0..65535) + +/** +* This DE is used to express the radius of the semi-minor axis of an ellipsoid +* representing the accuracy which can be expected from a GNSS system in 5cm steps, typically at a one sigma level of +* confidence. +* +* Value is semi-minor axis accuracy at one standard dev +* - range 0-12.7 meter, LSB = .05m +* - 254 = any value equal or greater than 12.70 meter +* - 255 = unavailable semi-minor axis value +* +* @unit: 0.05m +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SemiMinorAxisAccuracy ::= INTEGER (0..255) + +/** +* This data element represents the recommended velocity of an object, typically a vehicle speed along a roadway, +* expressed in unsigned units of 0.1 meters per second. +* +* - LSB units are 0.1 m/s +* - the value 499 shall be used for values at or greater than 49.9 m/s +* - the value 500 shall be used to indicate that speed is unavailable +* +* @unit: 0.1 m/s +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SpeedAdvice ::= INTEGER (0..500) + +/** +* This DE is used to provide the 95% confidence level for the currently reported +* value of @ref Speed, taking into account the current calibration and precision of the sensor(s) used to measure and/or +* calculate the value. This data element is only to provide the listener with information on the limitations of the sensing +* system, not to support any type of automatic error correction or to imply a guaranteed maximum error. This data element +* should not be used for fault detection or diagnosis, but if a vehicle is able to detect a fault, the confidence interval should +* be increased accordingly. +* +* - 0 - `unavailable` : Not Equipped or unavailable +* - 1 - `prec100ms` : 100 meters / sec +* - 2 - `prec10ms` : 10 meters / sec +* - 3 - `prec5ms` : 5 meters / sec +* - 4 - `prec1ms` : 1 meters / sec +* - 5 - `prec0-1ms` : 0.1 meters / sec +* - 6 - `prec0-05ms` : 0.05 meters / sec +* - 7 - `prec0-01ms` : 0.01 meters / sec +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SpeedConfidenceDSRC ::= ENUMERATED { + unavailable (0), + prec100ms (1), + prec10ms (2), + prec5ms (3), + prec1ms (4), + prec0-1ms (5), + prec0-05ms (6), + prec0-01ms (7) + } + +/** +* This is the 4 octet random device identifier, called the TemporaryID. When used for a mobile OBU device, this value +* will change periodically to ensure the overall anonymity of the vehicle, unlike a typical wireless or wired 802 device ID. +* Because this value is used as a means to identify the local vehicles that are interacting during an encounter, it is used in +* the message set. Other devices, such as infrastructure (RSUs), may have a fixed value for the temporary ID value. See +* also @ref StationId which is used in other deployment regions. +* +* @note: The circumstances and times at which various DSRC devices (notably OBUs) create and change their current +* Temporary ID is a complex application level topic. It should be noted that the Temporary ID is not the same as a device +* MAC value, although when used as a means to uniquely identify a device, both have many common properties. It should +* further be noted that the MAC value for a mobile OBU device (unlike a typical wireless or wired 802 device) will +* periodically change to a new random value to ensure the overall anonymity of the vehicle. +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +TemporaryID ::= OCTET STRING (SIZE(4)) + +/** +* This DE is used to provide the 95% confidence level for the currently reported +* value of DE @ref Throttle, taking into account the current calibration and precision of the sensor(s) used to measure and/or +* calculate the value. This data element is only to provide information on the limitations of the sensing system, not to +* support any type of automatic error correction or to imply a guaranteed maximum error. This data element should not be +* used for fault detection or diagnosis, but if a vehicle is able to detect a fault, the confidence interval should be increased +* accordingly. If a fault that triggers the MIL is of a nature to render throttle performance unreliable, then ThrottleConfidence +* should be represented as "notEquipped." +* +* - 0 - `unavailable`: B'00 Not Equipped or unavailable +* - 1 - `prec10percent`: B'01 10 percent Confidence level +* - 2 - `prec1percent`: B'10 1 percent Confidence level +* - 3 - `prec0-5percent`: B'11 0.5 percent Confidence level +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +ThrottleConfidence ::= ENUMERATED { + unavailable (0), + prec10percent (1), + prec1percent (2), + prec0-5percent (3) + } + +/** +* This DE is used to provide the 95% confidence level for the currently reported value +* of time, taking into account the current calibration and precision of the sensor(s) used to measure and/or calculate the +* value. This data element is only to provide information on the limitations of the sensing system, not to support any type of +* automatic error correction or to imply a guaranteed maximum error. This data element should not be used for fault +* detection or diagnosis, but if a vehicle is able to detect a fault, the confidence interval should be increased accordingly. +* +* - 0 - `unavailable` : Not Equipped or unavailable +* - 1 - `time-100-000` : Better than 100 Seconds +* - 2 - `time-050-000` : Better than 50 Seconds +* - 3 - `time-020-000` : Better than 20 Seconds +* - 4 - `time-010-000` : Better than 10 Seconds +* - 5 - `time-002-000` : Better than 2 Seconds +* - 6 - `time-001-000` : Better than 1 Second +* - 7 - `time-000-500` : Better than 0.5 Seconds +* - 8 - `time-000-200` : Better than 0.2 Seconds +* - 9 - `time-000-100` : Better than 0.1 Seconds +* - 10 - `time-000-050` : Better than 0.05 Seconds +* - 11 - `time-000-020` : Better than 0.02 Seconds +* - 12 - `time-000-010` : Better than 0.01 Seconds +* - 13 - `time-000-005` : Better than 0.005 Seconds +* - 14 - `time-000-002` : Better than 0.001 Seconds +* - 15 - `time-000-001` : Better than 0.001 Seconds +* - 16 - `time-000-000-5` : Better than 0.000,5 Seconds +* - 17 - `time-000-000-2` : Better than 0.000,2 Seconds +* - 18 - `time-000-000-1` : Better than 0.000,1 Seconds +* - 19 - `time-000-000-05` : Better than 0.000,05 Seconds +* - 20 - `time-000-000-02` : Better than 0.000,02 Seconds +* - 21 - `time-000-000-01` : Better than 0.000,01 Seconds +* - 22 - `time-000-000-005` : Better than 0.000,005 Seconds +* - 23 - `time-000-000-002` : Better than 0.000,002 Seconds +* - 24 - `time-000-000-001` : Better than 0.000,001 Seconds +* - 25 - `time-000-000-000-5` : Better than 0.000,000,5 Seconds +* - 26 - `time-000-000-000-2` : Better than 0.000,000,2 Seconds +* - 27 - `time-000-000-000-1` : Better than 0.000,000,1 Seconds +* - 28 - `time-000-000-000-05` : Better than 0.000,000,05 Seconds +* - 29 - `time-000-000-000-02` : Better than 0.000,000,02 Seconds +* - 30 - `time-000-000-000-01` : Better than 0.000,000,01 Seconds +* - 31 - `time-000-000-000-005` : Better than 0.000,000,005 Seconds +* - 32 - `time-000-000-000-002` : Better than 0.000,000,002 Seconds +* - 33 - `time-000-000-000-001` : Better than 0.000,000,001 Seconds +* - 34 - `time-000-000-000-000-5` : Better than 0.000,000,000,5 Seconds +* - 35 - `time-000-000-000-000-2` : Better than 0.000,000,000,2 Seconds +* - 36 - `time-000-000-000-000-1` : Better than 0.000,000,000,1 Seconds +* - 37 - `time-000-000-000-000-05` : Better than 0.000,000,000,05 Seconds +* - 38 - `time-000-000-000-000-02` : Better than 0.000,000,000,02 Seconds +* - 39 - `time-000-000-000-000-01` : Better than 0.000,000,000,01 Seconds +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +TimeConfidence ::= ENUMERATED { + unavailable (0), + time-100-000 (1), + time-050-000 (2), + time-020-000 (3), + time-010-000 (4), + time-002-000 (5), + time-001-000 (6), + time-000-500 (7), + time-000-200 (8), + time-000-100 (9), + time-000-050 (10), + time-000-020 (11), + time-000-010 (12), + time-000-005 (13), + time-000-002 (14), + time-000-001 (15), + time-000-000-5 (16), + time-000-000-2 (17), + time-000-000-1 (18), + time-000-000-05 (19), + time-000-000-02 (20), + time-000-000-01 (21), + time-000-000-005 (22), + time-000-000-002 (23), + time-000-000-001 (24), + time-000-000-000-5 (25), + time-000-000-000-2 (26), + time-000-000-000-1 (27), + time-000-000-000-05 (28), + time-000-000-000-02 (29), + time-000-000-000-01 (30), + time-000-000-000-005 (31), + time-000-000-000-002 (32), + time-000-000-000-001 (33), + time-000-000-000-000-5 (34), + time-000-000-000-000-2 (35), + time-000-000-000-000-1 (36), + time-000-000-000-000-05 (37), + time-000-000-000-000-02 (38), + time-000-000-000-000-01 (39) +} + +/** +* This is the statistical confidence for the predicted time of signal group state change. For evaluation, the formula +* 10^(x/a)-b with a=82.5 and b=1.3 was used. The values are encoded as probability classes with proposed values listed in +* the below table in the ASN.1 specification. +* +* Value: Probability +* - 0 - 21% +* - 1 - 36% +* - 2 - 47% +* - 3 - 56% +* - 4 - 62% +* - 5 - 68% +* - 6 - 73% +* - 7 - 77% +* - 8 - 81% +* - 9 - 85% +* - 10 - 88% +* - 11 - 91% +* - 12 - 94% +* - 13 - 96% +* - 14 - 98% +* - 15 - 100% +* +* @unit: percent +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +TimeIntervalConfidence ::= INTEGER (0..15) + +/** +* This DE is used to provide the R09 tour information. +* +* @category: Infrastructure information +* @revision: V2.2.1 +*/ +TourNumber ::= INTEGER (0..4294967295) + +/** +* This DE is used to provide the R09 train length. +* +* @category: Infrastructure information +* @revision: V2.2.1 +*/ +TrainLength ::= INTEGER (0..7) + +/** +* This DE is used to provide the R09 direction information. +* +* @category: Infrastructure information +* @revision: V2.2.1 +*/ +TransitDirection ::= INTEGER (0..255) + +/** +* This DE is used to relate basic level of current ridership. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +TransitVehicleOccupancy ::= ENUMERATED { + occupancyUnknown (0), + occupancyEmpty (1), + occupancyVeryLow (2), + occupancyLow (3), + occupancyMed (4), + occupancyHigh (5), + occupancyNearlyFull (6), + occupancyFull (7) +} + +/** +* This DE is used to relate basic information about the transit run in progress. This is +* typically used in a priority request to a signalized system and becomes part of the input processing for how that system +* will respond to the request. +* +* - 0 - `loading`: parking and unable to move at this time +* - 1 - `anADAuse`: an ADA access is in progress (wheelchairs, kneeling, etc.) +* - 2 - `aBikeLoad`: loading of a bicycle is in progress +* - 3 - `doorOpen`: a vehicle door is open for passenger access +* - 4 - `charging`: a vehicle is connected to charging point +* - 5 - `atStopLine`: a vehicle is at the stop line for the lane it is in +* +* @note: Most of these values are used to detect that the transit vehicle in not in a state where movement can occur +* (and that therefore any priority signal should be ignored until the vehicle is again ready to depart). +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +TransitVehicleStatus ::= BIT STRING { + loading (0), + anADAuse (1), + aBikeLoad (2), + doorOpen (3), + charging (4), + atStopLine (5) +} (SIZE(8)) + +/** +* This DE is used to provide the current state of the vehicle transmission. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +TransmissionState ::= ENUMERATED { + neutral (0), + park (1), + forwardGears (2), + reverseGears (3), + reserved1 (4), + reserved2 (5), + reserved3 (6), + unavailable (7) +} + +/** +* The height of the vehicle, measured from the ground to the highest surface, excluding any antenna(s), and +* expressed in units of 5 cm. In cases of vehicles with adjustable ride heights, camper shells, and other devices which may +* cause the overall height to vary, the largest possible height will be used. +* +* Value is the height of the vehicle, LSB units of 5 cm, range to 6.35 meters +* +* @unit: 5cm +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +VehicleHeight ::= INTEGER (0..127) + +/** +* This DE is a type list (i.e., a classification list) of the vehicle in terms of overall size. The +* data element entries follow the definitions defined in the US DOT Highway Performance Monitoring System (HPMS). +* Many infrastructure roadway operators collect and classify data according to this list for regulatory reporting needs. +* Within the ITS industry and within the DSRC message set standards work, there are many similar lists of types for +* overlapping needs and uses. +* +* - 0 - `none`: Not Equipped, Not known or unavailable +* - 1 - `unknown`: Does not fit any other category +* - 2 - `special`: Special use +* - 3 - `moto`: Motorcycle +* - 4 - `car`: Passenger car +* - 5 - `carOther`: Four tire single units +* - 6 - `bus`: Buses +* - 7 - `axleCnt2`: Two axle, six tire single units +* - 8 - `axleCnt3`: Three axle, single units +* - 9 - `axleCnt4`: Four or more axle, single unit +* - 10 - `axleCnt4Trailer`: Four or less axle, single trailer +* - 11 - `axleCnt5Trailer`: Five or less axle, single trailer +* - 12 - `axleCnt6Trailer`: Six or more axle, single trailer +* - 13 - `axleCnt5MultiTrailer`: Five or less axle, multi-trailer +* - 14 - `axleCnt6MultiTrailer`: Six axle, multi-trailer +* - 15 - `axleCnt7MultiTrailer`: Seven or more axle, multi-trailer +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +VehicleType ::= ENUMERATED { + none (0), + unknown (1), + special (2), + moto (3), + car (4), + carOther (5), + bus (6), + axleCnt2 (7), + axleCnt3 (8), + axleCnt4 (9), + axleCnt4Trailer (10), + axleCnt5Trailer (11), + axleCnt6Trailer (12), + axleCnt5MultiTrailer (13), + axleCnt6MultiTrailer (14), + axleCnt7MultiTrailer (15), + ... +} + +/** +* This DE represents the velocity of an object, typically a vehicle speed or the recommended speed of +* travel along a roadway, expressed in unsigned units of 0.02 meters per second. When used with motor vehicles it may be +* combined with the transmission state to form a data frame for use. A value of 8191 shall be used when the speed is +* unavailable. Note that Velocity as used here is intended to be a scalar value and not a vector. +* +* The value 8191 indicates that velocity is unavailable +* +* @unit: 0.02 m/s +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +Velocity ::= INTEGER (0..8191) + +/** +* This DE is used to provide the R09 version information. +* +* @category: Infrastructure information +* @revision: V2.2.1 +*/ +VersionId ::= INTEGER (0..4294967295) + +/** +* This DE is used to indicate to the vehicle that it must stop at the stop line and not move past. +* +* If "true", the vehicles on this specific connecting maneuver have to stop on the stop-line and not to enter the collision area +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +WaitOnStopline ::= BOOLEAN + +/** +* This DE is used to provide an estimated distance from the stop bar, along the lane +* centerline back in the lane to which it pertains. It is used in various ways to relate this distance value. When used with +* clearance zones, it represents the point at which the driver can successfully execute the connection maneuver. It is used +* in the Clearance Maneuver Assist data frame to relate dynamic data about the lane. It is also used to relate the distance +* from the stop bar to the rear edge of any queue. It is further used within the context of a vehicle's traveling speed to +* advise on preferred dynamic approach speeds. +* +* 0 = unknown, +* The value 10000 to be used for Distances >=10000 m (e.g. from known point to another point along a +* known path, often against traffic flow direction when used for measuring queues) +* +* @unit: meter +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +ZoneLength ::= INTEGER (0..10000) + +/** +* ## References: +* 1. [ISO TS 19091]: "Intelligent transport systems - Cooperative ITS - Using V2I and I2V communications for applications related to signalized intersections". +* 2. [SAE J2735]: "SURFACE VEHICLE STANDARD - V2X Communications Message Set Dictionary" +* 3. [OCIT]: "OCIT Developer Group. https://ocit.org" +*/ + +END + +/** draft 001 of the ETSI-ITS-DSRC-REGION module for TS 103 301 V2.2.1 integrating: +* initial revision based on ASN.1 files of [ISO TS 19091] and [SAE J2735] +*/ +-- Note: the above information will be deleted before publication + +--! @options: no-fields-header + +ETSI-ITS-DSRC-REGION { + itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts103301 (103301) dsrc (6) region (1) major-version-2 (2) minor-version-1 (1) +} + +DEFINITIONS AUTOMATIC TAGS::= BEGIN + +IMPORTS + +addGrpC, REG-EXT-ID-AND-TYPE +FROM ETSI-ITS-DSRC { + itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts103301 (103301) dsrc (6) major-version-2 (2) minor-version-1 (1) +} +WITH SUCCESSORS + +ConnectionManeuverAssist-addGrpC, ConnectionTrajectory-addGrpC, +IntersectionState-addGrpC, LaneAttributes-addGrpC, MapData-addGrpC, +MovementEvent-addGrpC, NodeAttributeSet-addGrpC, Position3D-addGrpC, RequestorDescription-addGrpC, RestrictionUserType-addGrpC, SignalStatusPackage-addGrpC +FROM ETSI-ITS-DSRC-AddGrpC { + itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts103301 (103301) dsrc (6) addgrpc (0) major-version-2 (2) minor-version-1 (1) +} +WITH SUCCESSORS; + +Reg-AdvisorySpeed REG-EXT-ID-AND-TYPE ::= { ... } + +Reg-ComputedLane REG-EXT-ID-AND-TYPE ::= { ... } + +Reg-ConnectionManeuverAssist REG-EXT-ID-AND-TYPE ::= { + {ConnectionManeuverAssist-addGrpC IDENTIFIED BY addGrpC}, + ... +} + +Reg-GenericLane REG-EXT-ID-AND-TYPE ::= { + {ConnectionTrajectory-addGrpC IDENTIFIED BY addGrpC} , + ... +} + +Reg-IntersectionGeometry REG-EXT-ID-AND-TYPE ::= { ... } + +Reg-IntersectionState REG-EXT-ID-AND-TYPE ::= { + {IntersectionState-addGrpC IDENTIFIED BY addGrpC}, + ... +} + +Reg-LaneAttributes REG-EXT-ID-AND-TYPE ::= { + {LaneAttributes-addGrpC IDENTIFIED BY addGrpC} , + ... +} +Reg-LaneDataAttribute REG-EXT-ID-AND-TYPE ::= { ... } + +Reg-MapData REG-EXT-ID-AND-TYPE ::= { + {MapData-addGrpC IDENTIFIED BY addGrpC}, + ... +} + +Reg-MovementEvent REG-EXT-ID-AND-TYPE ::= { + {MovementEvent-addGrpC IDENTIFIED BY addGrpC} , + ... +} +Reg-MovementState REG-EXT-ID-AND-TYPE ::= { ... } + + +Reg-NodeAttributeSetXY REG-EXT-ID-AND-TYPE ::= { + {NodeAttributeSet-addGrpC IDENTIFIED BY addGrpC}, + ... +} + +Reg-NodeOffsetPointXY REG-EXT-ID-AND-TYPE ::= { ... } + +Reg-Position3D REG-EXT-ID-AND-TYPE ::= { + {Position3D-addGrpC IDENTIFIED BY addGrpC} , + ... +} + +Reg-RequestorDescription REG-EXT-ID-AND-TYPE ::= { + { RequestorDescription-addGrpC IDENTIFIED BY addGrpC} , + ... +} + +Reg-RequestorType REG-EXT-ID-AND-TYPE ::= { ... } + +Reg-RestrictionUserType REG-EXT-ID-AND-TYPE ::= { + {RestrictionUserType-addGrpC IDENTIFIED BY addGrpC} , + ... +} + +Reg-RoadSegment REG-EXT-ID-AND-TYPE ::= { ... } + +Reg-RTCMcorrections REG-EXT-ID-AND-TYPE ::= { ... } + +Reg-SignalControlZone REG-EXT-ID-AND-TYPE ::= { ... } + +Reg-SignalRequest REG-EXT-ID-AND-TYPE ::= { ... } + +Reg-SignalRequestMessage REG-EXT-ID-AND-TYPE ::= { ... } + +Reg-SignalRequestPackage REG-EXT-ID-AND-TYPE ::= { ... } + +Reg-SignalStatus REG-EXT-ID-AND-TYPE ::= { ... } + +Reg-SignalStatusMessage REG-EXT-ID-AND-TYPE ::= { ... } + +Reg-SignalStatusPackage REG-EXT-ID-AND-TYPE ::= { + { SignalStatusPackage-addGrpC IDENTIFIED BY addGrpC }, + ... +} + +Reg-SPAT REG-EXT-ID-AND-TYPE ::= { ... } + +END + +/** draft 001 of the ETSI-ITS-DSRC-AddGrpC module for TS 103 301 V2.2.1 integrating: +* initial revision based on ASN.1 files of [ISO TS 19091] and [SAE J2735] +*/ +-- Note: the above information will be deleted before publication + +--! @options: no-fields-header + +ETSI-ITS-DSRC-AddGrpC { + itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts103301 (103301) dsrc (6) addgrpc (0) major-version-2 (2) minor-version-1 (1) +} + +DEFINITIONS AUTOMATIC TAGS::= BEGIN + +IMPORTS + +DeltaTime, FuelType, IntersectionID, LaneConnectionID, LaneID, NodeOffsetPointXY, NodeSetXY, PrioritizationResponseStatus, SignalGroupID, VehicleHeight +FROM ETSI-ITS-DSRC { + itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts103301 (103301) dsrc (6) major-version-2 (2) minor-version-1 (1) +} +WITH SUCCESSORS + +Altitude, DeltaAltitude, StationID, VehicleMass +FROM ETSI-ITS-CDD { + itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) 102894 cdd (2) major-version-4 (4) minor-version-1 (1) +} +WITH SUCCESSORS; + +/** +* This DF adds positioning support from the infrastructure to the vehicle. +* +* @field itsStationPositions: defines a list of ITS stations (e.g. vehicles) and their corresponding position on +* the driving lane as defined in the lane topology of the MapData message or the GNSS position +* deviation of the ITS Station from the high precision reference position in X/Y coordinates. It +* enables accurate, real-time positioning support to the moving ITS entities by the infrastructure.* +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +ConnectionManeuverAssist-addGrpC ::= SEQUENCE { + itsStationPosition ItsStationPositionList OPTIONAL, + ... +} + +/** +* This DF defines the trajectory for travelling through the conflict area of an intersection and connects +* e.g an ingress with an egress lane. The trajectory is defined by two or more nodes. +* The starting node overlaps e.g. with the node of the ingress lane towards the +* conflict zone. The ending node overlaps e.g. with the first node of the connected egress lane. +* See the example in clause [ISO TS 19091] G.8.2.5. +* +* @field nodes: defines a list of nodes for the trajectory. It defines e.g. a geometric trajectory from an ingressing +* to a connected egressing lane and the X/Y position value of the first node of the trajectory is the same as +* the node of the ingress lane. The X/Y position of the last node is the same as the X/Y position of the first +* node of the egressing lane. +* @field connectionID: defines the identifier of an allowed `maneuver` (e.g. ingress / egress relation). +* A generic Lane offers one or more allowed `maneuvers`, therefore the trajectory is reference to the related `maneuver`. +* +* @note: @ref Reg-GenericLane allows providing up to 4 connecting trajectories. In case a lane has more than 4 connecting trajectories, +* priority should be given to connecting trajectories of motorized traffic and complex manoeuvres. +* +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +ConnectionTrajectory-addGrpC ::= SEQUENCE { + nodes NodeSetXY, + connectionID LaneConnectionID, + ... +} + +/** +* This DF defines a list of prioritization responses e.g. public transport acceleration. +* The signal prioritization (e.g. public transport) procedure in this profile follows two strategies. +* - For simple prioritization requests, the CAM/SPAT messages are used. +* This allows the migration of old legal systems towards C-ITS. +* In this case, the CAM message is used to trigger the request towards the traffic light controller. +* The traffic light controller checks the request and broadcasts the status for the priority request with this DF (see [ISO TS 19091] G.5.1.9). +* - For more complex signal requests, the SignalRequestMessage/SignalStatusMessage messages are to be used. +* +* @field activePrioritizations: list of Prioritizations. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +IntersectionState-addGrpC ::= SEQUENCE { + activePrioritizations PrioritizationResponseList OPTIONAL, + ... +} + +/** +* Lanes may have limitations regarding vehicle height (e.g. due to a tunnel) and vehicle weight (e.g. due to a bridge). +* +* @field maxVehicleHeight: maximum allowed vehicle height +* @field maxVehicleWeight: maximum allowed vehicle mass +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +LaneAttributes-addGrpC ::= SEQUENCE { + maxVehicleHeight VehicleHeight OPTIONAL, + maxVehicleWeight VehicleMass OPTIONAL, + ... +} + +/** +* This DF defines a list of three-dimensional positions of signal heads in an intersection. +* It enables vehicles to identify the signal head location for optical evaluation of the traffic light. +* Combined with the SPAT/MapData messages, it enables e.g. driving vehicles to enhance safety decision in critical situations. +* +* @field signalHeadLocations: list of geo positions +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +MapData-addGrpC ::= SEQUENCE { + signalHeadLocations SignalHeadLocationList OPTIONAL, + ... +} + +/** +* Priority and preemption have a considerable impact to the timing parameters in the SPAT message (eventState). +* User acceptance is expected to increase if the reason for sudden changes in timing parameters is communicated to them. +* +* @field stateChangeReason: reason code +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +MovementEvent-addGrpC ::= SEQUENCE { + stateChangeReason ExceptionalCondition OPTIONAL, + ... +} + +/** +* This DF defines additional attributes to support public transport and to enable a simple way of defining lane links. +* +* @field ptvRequest: defines control types attached to a node on a lane used by public transport for triggering +* the transmission of messages (e.g. prioritization request). It includes control points for public transport prioritization. +* These control points are currently implemented by legacy systems using hardware sensors mounted on the roadside. +* @field nodeLink: defines a link to one or to a set of another node/lane from this node. The nodeLink allows to set a link between specific nodes +* of generic lanes or trajectories. This supports e.g. lane merging/diverging situations ([ISO TS 19091] G.8.2.7) and the linking of trajectories +* in the conflict zone to lanes (see example [ISO TS 19091] G.8.2.5). +* @field node: defines an identifier of this node. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +NodeAttributeSet-addGrpC ::= SEQUENCE { + ptvRequest PtvRequestType OPTIONAL, + nodeLink NodeLink OPTIONAL, + node Node OPTIONAL, + ... +} + +/** +* This DF includes the altitude data element defined in the common data dictionary [ETSI CDD]. +* +* @field elevation: the data element is replaced by the ETSI `altitude` data element using the regional extension. +* The `altitude` data element is defined in Position3D-addGrpC of this profile. +* Position3D-addGrpC extends the @ref Position3D using the regional extension framework. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +Position3D-addGrpC ::= SEQUENCE { + altitude Altitude, + ... +} + +/** +* This DF defines the driving restriction based on toxic emission type. +* The meaning of the word `restriction` is ambiguous as it may have a double interpretation, being: +* - only these vehicles are allowed OR +* - these vehicles are not allowed and all others are. +* The former is what is intended by the base standard. +* +* @field emission: restriction baesed on emission. +* @field fuel: restriction baesed on fuel. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RestrictionUserType-addGrpC ::= SEQUENCE { + emission EmissionType OPTIONAL, + fuel FuelType OPTIONAL, + ... +} + +/** +* Some road authorities like to give priority to vehicles based on the type of fuel they use. In addition, +* electric vehicles may receive priority based on their battery status. +* +* @field fuel: fuel used by vehicle. +* @field batteryStatus: current batter status of vehicle. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RequestorDescription-addGrpC ::= SEQUENCE { + fuel FuelType OPTIONAL, + batteryStatus BatteryStatus OPTIONAL, + ... +} + +/** +* The traffic control centre (TCC) may advice a public transport vehicle (e.g. bus) to synchronize his travel time. +* This may happen when, for example, two busses, due to special traffic conditions, are out of schedule. +* The first might be too late, the second too fast. The consequence is that the second is driving +* just behind the first and is empty as all passengers are within the first one. To avoid this often-occurring +* situation, the TCC transmits time synchronization advices to the public transport vehicles using the +* signal status message. +* +* @field synchToSchedule: DeltaTime. +* @field rejectedReason: RejectedReason. +* +* @Note: The @ref PrioritizationResponseStatus provides optionally the reason for prioritization response rejection. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SignalStatusPackage-addGrpC ::= SEQUENCE { + synchToSchedule DeltaTime OPTIONAL, + rejectedReason RejectedReason OPTIONAL, + ... +} + +/** +* This DF is used to provide real-time positioning information feedback to a specific ITS station +* (e.g. vehicle, pedestrian, bicycle) by infrastructure equipment. +* The position information includes, for example, the driving, crossing lane and/or the X/Y coordinates in relation to +* the reference position of the MapData. The `timeReference` indicates the time stamp of the the +* message (received from an ITS station) for which the positioning feedback has been computed. +* +* @field stationID: unique identifier. +* @field laneID: LaneID. +* @field nodeXY: NodeOffsetPointXY. +* @field timeReference: TimeReference. +* +* @note: The computation of the positioning feedback is out of focus of this standard. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +ItsStationPosition ::= SEQUENCE { + stationID StationID, + laneID LaneID OPTIONAL, + nodeXY NodeOffsetPointXY OPTIONAL, + timeReference TimeReference OPTIONAL, + ... +} + +ItsStationPositionList ::= SEQUENCE SIZE(1..5) OF ItsStationPosition + +/** +* This DF is used to to identify a node of a lane (waypoint) by its `lane` and node identifier `id`. +* +* The `intersectionID` is used if the referenced lane belongs to an adjacent intersection. If the node +* belongs to a connection trajectory ([ISO TS 19091] G.5.1.2) the `connectionID` is used. +* +* @field id: unique identifier. +* @field lane: identifier from lane. +* @field connectionID: identifier from connection. +* @field intersectionID: identifier from intersection. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +Node ::= SEQUENCE { + id INTEGER, + lane LaneID OPTIONAL, + connectionID LaneConnectionID OPTIONAL, + intersectionID IntersectionID OPTIONAL, + ... +} + +NodeLink ::= SEQUENCE SIZE (1..5) OF Node + +/** +* This DF is used to provide the prioritization status response and the +* signal group identifier for a specific ITS station (e.g. vehicle). +* +* @field stationID: StationID. +* @field priorState: PrioritizationResponseStatus. +* @field signalGroup: SignalGroupID. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +PrioritizationResponse ::= SEQUENCE { + stationID StationID, + priorState PrioritizationResponseStatus, + signalGroup SignalGroupID, + ... +} + +PrioritizationResponseList ::= SEQUENCE SIZE(1..10) OF PrioritizationResponse + +/** +* This DF defines the XYZ position of a signal head within an intersection +* and indicates the related signal group identifier. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +SignalHeadLocation ::= SEQUENCE { + nodeXY NodeOffsetPointXY, + nodeZ DeltaAltitude, + signalGroupID SignalGroupID, + ... +} + +SignalHeadLocationList ::= SEQUENCE (SIZE(1..64)) OF SignalHeadLocation + +/** +* This DE defines an enumerated list of battery states. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +BatteryStatus ::= ENUMERATED { + unknown, + critical, + low, + good, + ... +} + +/** +* This DE defines an enumerated list of toxic emission types for vehicles. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +EmissionType ::= ENUMERATED { + euro1, + euro2, + euro3, + euro4, + euro5, + euro6, + ... +} + +/** +* This DE defines a list of reasons for sudden changes in +* eventState parameters, thereby offering a reason for extended waiting times. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +ExceptionalCondition ::= ENUMERATED { + unknown, + publicTransportPriority, + emergencyVehiclePriority, + trainPriority, + bridgeOpen, + vehicleHeight, + weather, + trafficJam, + tunnelClosure, + meteringActive, + truckPriority, + bicyclePlatoonPriority, + vehiclePlatoonPriority, + ... +} + +/** +* This DE defines a list of activation requests used for C-ITS migration of legacy public +* transport prioritization systems. +* The activation points are used while approaching to an intersection. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +PtvRequestType ::= ENUMERATED { + preRequest, + mainRequest, + doorCloseRequest, + cancelRequest, + emergencyRequest, + ... +} + +/** +* This DE defines a list of reasons for rejected priority requests. +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +RejectedReason ::= ENUMERATED { + unknown, + exceptionalCondition, + maxWaitingTimeExceeded, + ptPriorityDisabled, + higherPTPriorityGranted, + vehicleTrackingUnknown, + ... +} + +/** +* This DE defines a value in milliseconds in the current minute related to UTC time. +* The range of 60 000 covers one minute (60 seconds * 1 000 milliseconds) +* +* @category: Infrastructure information +* @revision: V1.3.1 +*/ +TimeReference ::= INTEGER { oneMilliSec(1) } (0..60000) + +/** +* ## References: +* 1. [ISO TS 19091]: "Intelligent transport systems - Cooperative ITS - Using V2I and I2V communications for applications related to signalized intersections". +* 2. [SAE J2735]: "SURFACE VEHICLE STANDARD - V2X Communications Message Set Dictionary" +*/ + +END + diff --git a/asn1/mapem_2_2_1.asn b/asn1/mapem_2_2_1.asn new file mode 100644 index 0000000..e805433 --- /dev/null +++ b/asn1/mapem_2_2_1.asn @@ -0,0 +1,54 @@ +/** draft 001 of the MAPEM-PDU-Descriptions module for TS 103 831 V2.2.1 integrating: +* initial revision based on ASN.1 files of [ISO TS 19091] and [SAE J2735] +*/ +-- Note: the above information will be deleted before publication + +--! @options: no-fields-header + +MAPEM-PDU-Descriptions { + itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts103301 (103301) mapem (1) version2 (2) +} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + +/** +* Includes from ETSI-ITS-DSRC +*/ +MapData +FROM ETSI-ITS-DSRC { + itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts103301 (103301) dsrc (6) major-version-2 (2) minor-version-1 (1) +} +WITH SUCCESSORS + +/** +* Include ETSI TS 102 894-2 (ETSI-ITS-CDD) +*/ +ItsPduHeader +FROM ETSI-ITS-CDD { + itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) 102894 cdd (2) major-version-4 (4) minor-version-1 (1) +} +WITH SUCCESSORS; + +/** +* Map (lane topology) extended Message +* This DF includes DEs for the MAPEM: protocolVersion, the MAPEM message type identifier `messageID`, +* the station identifier `stationID` of the originating ITS-S and the Map data from ETSI-ITS-DSRC. +* +* @field header: The DE `protocolVersion` is used to select the appropriate protocol decoder at the receiving ITS-S. +* It shall be set to 2. +* The DE `messageID` shall be mapem(5). +* @field map: contains the MAP data as defined in ETSI-ITS-DSRC. +* +* @category: Basic Information +* @revision: V1.3.1 +*/ +MAPEM ::= SEQUENCE { + header ItsPduHeader, + map MapData +} + +END diff --git a/asn1/spatem_2_2_1.asn b/asn1/spatem_2_2_1.asn new file mode 100644 index 0000000..aed3b11 --- /dev/null +++ b/asn1/spatem_2_2_1.asn @@ -0,0 +1,56 @@ +/** draft 001 of the SPATEM-PDU-Descriptions module for TS 103 301 V2.2.1 integrating: +* initial revision based on ASN.1 files of [ISO TS 19091] and [SAE J2735] +*/ +-- Note: the above information will be deleted before publication + +--! @options: no-fields-header + +SPATEM-PDU-Descriptions { + itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts103301 (103301) spatem (0) major-version-2 (2) minor-version-1 (1) +} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + +/** +* Includes from ETSI-ITS-DSRC +*/ +SPAT +FROM ETSI-ITS-DSRC { + itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts103301 (103301) dsrc (6) major-version-2 (2) minor-version-1 (1) +} +WITH SUCCESSORS + +/** +* Include ETSI TS 102 894-2 (ETSI-ITS-CDD) +*/ +ItsPduHeader +FROM ETSI-ITS-CDD { + itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) 102894 cdd (2) major-version-4 (4) minor-version-1 (1) +} +WITH SUCCESSORS; + +/** +* Signal phase and timing extended Message +* +* Signal phase and timing extended Message Root +* This DF includes DEs for the SPATEM: protocolVersion, the SPATEM message type identifier `messageID`, +* the station identifier `stationID` of the originating ITS-S and the SPaT data from ETSI-ITS-DSRC module. +* +* @field header: The DE `protocolVersion` used to select the appropriate protocol decoder at the receiving ITS-S. +* It shall be set to 2. +* The DE `messageID` shall be spatem(4). +* @field spat: contains the SPaT data as defined in ETSI-ITS-DSRC. +* +* @category: Basic Information +* @revision: V1.3.1 +*/ +SPATEM ::= SEQUENCE { + header ItsPduHeader, + spat SPAT +} + +END diff --git a/obu-firmware/sdkconfig.old b/obu-firmware/sdkconfig.old deleted file mode 100644 index 30cb5ef..0000000 --- a/obu-firmware/sdkconfig.old +++ /dev/null @@ -1,2509 +0,0 @@ -# -# Automatically generated file. DO NOT EDIT. -# Espressif IoT Development Framework (ESP-IDF) 5.5.4 Project Configuration -# -CONFIG_SOC_ADC_SUPPORTED=y -CONFIG_SOC_ANA_CMPR_SUPPORTED=y -CONFIG_SOC_DEDICATED_GPIO_SUPPORTED=y -CONFIG_SOC_UART_SUPPORTED=y -CONFIG_SOC_UHCI_SUPPORTED=y -CONFIG_SOC_GDMA_SUPPORTED=y -CONFIG_SOC_AHB_GDMA_SUPPORTED=y -CONFIG_SOC_GPTIMER_SUPPORTED=y -CONFIG_SOC_PCNT_SUPPORTED=y -CONFIG_SOC_MCPWM_SUPPORTED=y -CONFIG_SOC_TWAI_SUPPORTED=y -CONFIG_SOC_ETM_SUPPORTED=y -CONFIG_SOC_PARLIO_SUPPORTED=y -CONFIG_SOC_ASYNC_MEMCPY_SUPPORTED=y -CONFIG_SOC_USB_SERIAL_JTAG_SUPPORTED=y -CONFIG_SOC_TEMP_SENSOR_SUPPORTED=y -CONFIG_SOC_WIFI_SUPPORTED=y -CONFIG_SOC_SUPPORTS_SECURE_DL_MODE=y -CONFIG_SOC_LP_CORE_SUPPORTED=y -CONFIG_SOC_ULP_SUPPORTED=y -CONFIG_SOC_EFUSE_KEY_PURPOSE_FIELD=y -CONFIG_SOC_EFUSE_SUPPORTED=y -CONFIG_SOC_RTC_FAST_MEM_SUPPORTED=y -CONFIG_SOC_RTC_MEM_SUPPORTED=y -CONFIG_SOC_I2S_SUPPORTED=y -CONFIG_SOC_RMT_SUPPORTED=y -CONFIG_SOC_SDM_SUPPORTED=y -CONFIG_SOC_GPSPI_SUPPORTED=y -CONFIG_SOC_LEDC_SUPPORTED=y -CONFIG_SOC_I2C_SUPPORTED=y -CONFIG_SOC_SYSTIMER_SUPPORTED=y -CONFIG_SOC_SUPPORT_COEXISTENCE=y -CONFIG_SOC_AES_SUPPORTED=y -CONFIG_SOC_MPI_SUPPORTED=y -CONFIG_SOC_SHA_SUPPORTED=y -CONFIG_SOC_RSA_SUPPORTED=y -CONFIG_SOC_HMAC_SUPPORTED=y -CONFIG_SOC_DIG_SIGN_SUPPORTED=y -CONFIG_SOC_ECC_SUPPORTED=y -CONFIG_SOC_ECC_EXTENDED_MODES_SUPPORTED=y -CONFIG_SOC_FLASH_ENC_SUPPORTED=y -CONFIG_SOC_SECURE_BOOT_SUPPORTED=y -CONFIG_SOC_IEEE802154_SUPPORTED=y -CONFIG_SOC_BOD_SUPPORTED=y -CONFIG_SOC_APM_SUPPORTED=y -CONFIG_SOC_PMU_SUPPORTED=y -CONFIG_SOC_PAU_SUPPORTED=y -CONFIG_SOC_LP_TIMER_SUPPORTED=y -CONFIG_SOC_LP_AON_SUPPORTED=y -CONFIG_SOC_LP_PERIPHERALS_SUPPORTED=y -CONFIG_SOC_LP_I2C_SUPPORTED=y -CONFIG_SOC_ULP_LP_UART_SUPPORTED=y -CONFIG_SOC_CLK_TREE_SUPPORTED=y -CONFIG_SOC_ASSIST_DEBUG_SUPPORTED=y -CONFIG_SOC_WDT_SUPPORTED=y -CONFIG_SOC_SDIO_SLAVE_SUPPORTED=y -CONFIG_SOC_SPI_FLASH_SUPPORTED=y -CONFIG_SOC_ECDSA_SUPPORTED=y -CONFIG_SOC_RNG_SUPPORTED=y -CONFIG_SOC_KEY_MANAGER_SUPPORTED=y -CONFIG_SOC_HUK_SUPPORTED=y -CONFIG_SOC_MODEM_CLOCK_SUPPORTED=y -CONFIG_SOC_LIGHT_SLEEP_SUPPORTED=y -CONFIG_SOC_DEEP_SLEEP_SUPPORTED=y -CONFIG_SOC_PM_SUPPORTED=y -CONFIG_SOC_CLOCK_TREE_MANAGEMENT_SUPPORTED=y -CONFIG_SOC_SPIRAM_SUPPORTED=y -CONFIG_SOC_BT_SUPPORTED=y -CONFIG_SOC_PHY_SUPPORTED=y -CONFIG_SOC_BITSCRAMBLER_SUPPORTED=y -CONFIG_SOC_XTAL_SUPPORT_40M=y -CONFIG_SOC_XTAL_SUPPORT_48M=y -CONFIG_SOC_XTAL_CLOCK_PATH_DEPENDS_ON_TOP_DOMAIN=y -CONFIG_SOC_AES_SUPPORT_DMA=y -CONFIG_SOC_AES_GDMA=y -CONFIG_SOC_AES_SUPPORT_AES_128=y -CONFIG_SOC_AES_SUPPORT_AES_256=y -CONFIG_SOC_AES_SUPPORT_PSEUDO_ROUND_FUNCTION=y -CONFIG_SOC_ADC_DIG_CTRL_SUPPORTED=y -CONFIG_SOC_ADC_DIG_IIR_FILTER_SUPPORTED=y -CONFIG_SOC_ADC_MONITOR_SUPPORTED=y -CONFIG_SOC_ADC_DMA_SUPPORTED=y -CONFIG_SOC_ADC_PERIPH_NUM=1 -CONFIG_SOC_ADC_MAX_CHANNEL_NUM=6 -CONFIG_SOC_ADC_ATTEN_NUM=4 -CONFIG_SOC_ADC_DIGI_CONTROLLER_NUM=1 -CONFIG_SOC_ADC_PATT_LEN_MAX=8 -CONFIG_SOC_ADC_DIGI_MAX_BITWIDTH=12 -CONFIG_SOC_ADC_DIGI_MIN_BITWIDTH=12 -CONFIG_SOC_ADC_DIGI_IIR_FILTER_NUM=2 -CONFIG_SOC_ADC_DIGI_MONITOR_NUM=2 -CONFIG_SOC_ADC_DIGI_RESULT_BYTES=4 -CONFIG_SOC_ADC_DIGI_DATA_BYTES_PER_CONV=4 -CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=83333 -CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=611 -CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=12 -CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12 -CONFIG_SOC_ADC_CALIBRATION_V1_SUPPORTED=y -CONFIG_SOC_ADC_CALIB_CHAN_COMPENS_SUPPORTED=y -CONFIG_SOC_ADC_TEMPERATURE_SHARE_INTR=y -CONFIG_SOC_ADC_SHARED_POWER=y -CONFIG_SOC_BROWNOUT_RESET_SUPPORTED=y -CONFIG_SOC_SHARED_IDCACHE_SUPPORTED=y -CONFIG_SOC_CACHE_WRITEBACK_SUPPORTED=y -CONFIG_SOC_CACHE_FREEZE_SUPPORTED=y -CONFIG_SOC_CPU_CORES_NUM=1 -CONFIG_SOC_CPU_INTR_NUM=32 -CONFIG_SOC_CPU_HAS_FLEXIBLE_INTC=y -CONFIG_SOC_CPU_SUPPORT_WFE=y -CONFIG_SOC_INT_CLIC_SUPPORTED=y -CONFIG_SOC_INT_HW_NESTED_SUPPORTED=y -CONFIG_SOC_BRANCH_PREDICTOR_SUPPORTED=y -CONFIG_SOC_CPU_BREAKPOINTS_NUM=3 -CONFIG_SOC_CPU_WATCHPOINTS_NUM=3 -CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=0x100 -CONFIG_SOC_CPU_HAS_PMA=y -CONFIG_SOC_CPU_IDRAM_SPLIT_USING_PMP=y -CONFIG_SOC_CPU_PMP_REGION_GRANULARITY=128 -CONFIG_SOC_CPU_HAS_LOCKUP_RESET=y -CONFIG_SOC_DS_SIGNATURE_MAX_BIT_LEN=3072 -CONFIG_SOC_DS_KEY_PARAM_MD_IV_LENGTH=16 -CONFIG_SOC_DS_KEY_CHECK_MAX_WAIT_US=1100 -CONFIG_SOC_DMA_CAN_ACCESS_FLASH=y -CONFIG_SOC_AHB_GDMA_VERSION=2 -CONFIG_SOC_GDMA_NUM_GROUPS_MAX=1 -CONFIG_SOC_GDMA_PAIRS_PER_GROUP_MAX=3 -CONFIG_SOC_GDMA_SUPPORT_ETM=y -CONFIG_SOC_GDMA_SUPPORT_SLEEP_RETENTION=y -CONFIG_SOC_AHB_GDMA_SUPPORT_PSRAM=y -CONFIG_SOC_GDMA_EXT_MEM_ENC_ALIGNMENT=16 -CONFIG_SOC_ETM_GROUPS=1 -CONFIG_SOC_ETM_CHANNELS_PER_GROUP=50 -CONFIG_SOC_ETM_SUPPORT_SLEEP_RETENTION=y -CONFIG_SOC_GPIO_PORT=1 -CONFIG_SOC_GPIO_PIN_COUNT=29 -CONFIG_SOC_GPIO_SUPPORT_PIN_GLITCH_FILTER=y -CONFIG_SOC_GPIO_FLEX_GLITCH_FILTER_NUM=8 -CONFIG_SOC_GPIO_SUPPORT_PIN_HYS_FILTER=y -CONFIG_SOC_GPIO_SUPPORT_ETM=y -CONFIG_SOC_GPIO_SUPPORT_RTC_INDEPENDENT=y -CONFIG_SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP=y -CONFIG_SOC_LP_IO_CLOCK_IS_INDEPENDENT=y -CONFIG_SOC_GPIO_IN_RANGE_MAX=28 -CONFIG_SOC_GPIO_OUT_RANGE_MAX=28 -CONFIG_SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK=0 -CONFIG_SOC_GPIO_DEEP_SLEEP_WAKE_SUPPORTED_PIN_CNT=7 -CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0x0000000001FFFF80 -CONFIG_SOC_GPIO_SUPPORT_FORCE_HOLD=y -CONFIG_SOC_GPIO_SUPPORT_HOLD_SINGLE_IO_IN_DSLP=y -CONFIG_SOC_GPIO_CLOCKOUT_BY_GPIO_MATRIX=y -CONFIG_SOC_CLOCKOUT_HAS_SOURCE_GATE=y -CONFIG_SOC_GPIO_CLOCKOUT_CHANNEL_NUM=3 -CONFIG_SOC_RTCIO_PIN_COUNT=7 -CONFIG_SOC_RTCIO_INPUT_OUTPUT_SUPPORTED=y -CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y -CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y -CONFIG_SOC_RTCIO_EDGE_WAKE_SUPPORTED=y -CONFIG_SOC_DEDIC_GPIO_OUT_CHANNELS_NUM=8 -CONFIG_SOC_DEDIC_GPIO_IN_CHANNELS_NUM=8 -CONFIG_SOC_DEDIC_PERIPH_ALWAYS_ENABLE=y -CONFIG_SOC_ANA_CMPR_NUM=1 -CONFIG_SOC_ANA_CMPR_CAN_DISTINGUISH_EDGE=y -CONFIG_SOC_ANA_CMPR_SUPPORT_ETM=y -CONFIG_SOC_I2C_NUM=2 -CONFIG_SOC_HP_I2C_NUM=1 -CONFIG_SOC_I2C_FIFO_LEN=32 -CONFIG_SOC_I2C_CMD_REG_NUM=8 -CONFIG_SOC_I2C_SUPPORT_SLAVE=y -CONFIG_SOC_I2C_SUPPORT_HW_FSM_RST=y -CONFIG_SOC_I2C_SUPPORT_XTAL=y -CONFIG_SOC_I2C_SUPPORT_RTC=y -CONFIG_SOC_I2C_SUPPORT_10BIT_ADDR=y -CONFIG_SOC_I2C_SLAVE_SUPPORT_BROADCAST=y -CONFIG_SOC_I2C_SLAVE_CAN_GET_STRETCH_CAUSE=y -CONFIG_SOC_I2C_SLAVE_SUPPORT_I2CRAM_ACCESS=y -CONFIG_SOC_I2C_SLAVE_SUPPORT_SLAVE_UNMATCH=y -CONFIG_SOC_I2C_SUPPORT_SLEEP_RETENTION=y -CONFIG_SOC_LP_I2C_NUM=1 -CONFIG_SOC_LP_I2C_FIFO_LEN=16 -CONFIG_SOC_I2S_NUM=1 -CONFIG_SOC_I2S_HW_VERSION_2=y -CONFIG_SOC_I2S_SUPPORTS_ETM=y -CONFIG_SOC_I2S_SUPPORTS_XTAL=y -CONFIG_SOC_I2S_SUPPORTS_PLL_F160M=y -CONFIG_SOC_I2S_SUPPORTS_PLL_F240M=y -CONFIG_SOC_I2S_SUPPORTS_PCM=y -CONFIG_SOC_I2S_SUPPORTS_PDM=y -CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y -CONFIG_SOC_I2S_SUPPORTS_PCM2PDM=y -CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y -CONFIG_SOC_I2S_SUPPORTS_TX_SYNC_CNT=y -CONFIG_SOC_I2S_PDM_MAX_TX_LINES=2 -CONFIG_SOC_I2S_PDM_MAX_RX_LINES=1 -CONFIG_SOC_I2S_SUPPORTS_TDM=y -CONFIG_SOC_I2S_TDM_FULL_DATA_WIDTH=y -CONFIG_SOC_I2S_SUPPORT_SLEEP_RETENTION=y -CONFIG_SOC_LEDC_SUPPORT_PLL_DIV_CLOCK=y -CONFIG_SOC_LEDC_SUPPORT_XTAL_CLOCK=y -CONFIG_SOC_LEDC_TIMER_NUM=4 -CONFIG_SOC_LEDC_CHANNEL_NUM=6 -CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=20 -CONFIG_SOC_LEDC_SUPPORT_FADE_STOP=y -CONFIG_SOC_LEDC_GAMMA_CURVE_FADE_SUPPORTED=y -CONFIG_SOC_LEDC_GAMMA_CURVE_FADE_RANGE_MAX=16 -CONFIG_SOC_LEDC_FADE_PARAMS_BIT_WIDTH=10 -CONFIG_SOC_LEDC_SUPPORT_SLEEP_RETENTION=y -CONFIG_SOC_MMU_PERIPH_NUM=1 -CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=1 -CONFIG_SOC_MMU_DI_VADDR_SHARED=y -CONFIG_SOC_PCNT_GROUPS=1 -CONFIG_SOC_PCNT_UNITS_PER_GROUP=4 -CONFIG_SOC_PCNT_CHANNELS_PER_UNIT=2 -CONFIG_SOC_PCNT_THRES_POINT_PER_UNIT=2 -CONFIG_SOC_PCNT_SUPPORT_RUNTIME_THRES_UPDATE=y -CONFIG_SOC_PCNT_SUPPORT_CLEAR_SIGNAL=y -CONFIG_SOC_PCNT_SUPPORT_STEP_NOTIFY=y -CONFIG_SOC_PCNT_SUPPORT_SLEEP_RETENTION=y -CONFIG_SOC_RMT_GROUPS=1 -CONFIG_SOC_RMT_TX_CANDIDATES_PER_GROUP=2 -CONFIG_SOC_RMT_RX_CANDIDATES_PER_GROUP=2 -CONFIG_SOC_RMT_CHANNELS_PER_GROUP=4 -CONFIG_SOC_RMT_MEM_WORDS_PER_CHANNEL=48 -CONFIG_SOC_RMT_SUPPORT_RX_PINGPONG=y -CONFIG_SOC_RMT_SUPPORT_RX_DEMODULATION=y -CONFIG_SOC_RMT_SUPPORT_ASYNC_STOP=y -CONFIG_SOC_RMT_SUPPORT_TX_LOOP_COUNT=y -CONFIG_SOC_RMT_SUPPORT_TX_LOOP_AUTO_STOP=y -CONFIG_SOC_RMT_SUPPORT_TX_SYNCHRO=y -CONFIG_SOC_RMT_SUPPORT_TX_CARRIER_DATA_ONLY=y -CONFIG_SOC_RMT_SUPPORT_XTAL=y -CONFIG_SOC_RMT_SUPPORT_SLEEP_RETENTION=y -CONFIG_SOC_MCPWM_GROUPS=1 -CONFIG_SOC_MCPWM_TIMERS_PER_GROUP=3 -CONFIG_SOC_MCPWM_OPERATORS_PER_GROUP=3 -CONFIG_SOC_MCPWM_COMPARATORS_PER_OPERATOR=2 -CONFIG_SOC_MCPWM_GENERATORS_PER_OPERATOR=2 -CONFIG_SOC_MCPWM_EVENT_COMPARATORS_PER_OPERATOR=2 -CONFIG_SOC_MCPWM_TRIGGERS_PER_OPERATOR=2 -CONFIG_SOC_MCPWM_GPIO_FAULTS_PER_GROUP=3 -CONFIG_SOC_MCPWM_CAPTURE_TIMERS_PER_GROUP=y -CONFIG_SOC_MCPWM_CAPTURE_CHANNELS_PER_TIMER=3 -CONFIG_SOC_MCPWM_GPIO_SYNCHROS_PER_GROUP=3 -CONFIG_SOC_MCPWM_SWSYNC_CAN_PROPAGATE=y -CONFIG_SOC_MCPWM_SUPPORT_ETM=y -CONFIG_SOC_MCPWM_SUPPORT_EVENT_COMPARATOR=y -CONFIG_SOC_MCPWM_CAPTURE_CLK_FROM_GROUP=y -CONFIG_SOC_MCPWM_SUPPORT_SLEEP_RETENTION=y -CONFIG_SOC_PARLIO_GROUPS=1 -CONFIG_SOC_PARLIO_TX_UNITS_PER_GROUP=1 -CONFIG_SOC_PARLIO_RX_UNITS_PER_GROUP=1 -CONFIG_SOC_PARLIO_TX_UNIT_MAX_DATA_WIDTH=8 -CONFIG_SOC_PARLIO_RX_UNIT_MAX_DATA_WIDTH=8 -CONFIG_SOC_PARLIO_TX_CLK_SUPPORT_GATING=y -CONFIG_SOC_PARLIO_RX_CLK_SUPPORT_GATING=y -CONFIG_SOC_PARLIO_RX_CLK_SUPPORT_OUTPUT=y -CONFIG_SOC_PARLIO_TRANS_BIT_ALIGN=y -CONFIG_SOC_PARLIO_TX_SUPPORT_LOOP_TRANSMISSION=y -CONFIG_SOC_PARLIO_TX_SUPPORT_EOF_FROM_DMA=y -CONFIG_SOC_PARLIO_SUPPORT_SLEEP_RETENTION=y -CONFIG_SOC_PARLIO_SUPPORT_SPI_LCD=y -CONFIG_SOC_PARLIO_SUPPORT_I80_LCD=y -CONFIG_SOC_MPI_MEM_BLOCKS_NUM=4 -CONFIG_SOC_MPI_OPERATIONS_NUM=3 -CONFIG_SOC_RSA_MAX_BIT_LEN=3072 -CONFIG_SOC_SHA_DMA_MAX_BUFFER_SIZE=3968 -CONFIG_SOC_SHA_SUPPORT_DMA=y -CONFIG_SOC_SHA_SUPPORT_RESUME=y -CONFIG_SOC_SHA_GDMA=y -CONFIG_SOC_SHA_SUPPORT_SHA1=y -CONFIG_SOC_SHA_SUPPORT_SHA224=y -CONFIG_SOC_SHA_SUPPORT_SHA256=y -CONFIG_SOC_SHA_SUPPORT_SHA384=y -CONFIG_SOC_SHA_SUPPORT_SHA512=y -CONFIG_SOC_SHA_SUPPORT_SHA512_224=y -CONFIG_SOC_SHA_SUPPORT_SHA512_256=y -CONFIG_SOC_SHA_SUPPORT_SHA512_T=y -CONFIG_SOC_ECC_CONSTANT_TIME_POINT_MUL=y -CONFIG_SOC_ECC_SUPPORT_CURVE_P384=y -CONFIG_SOC_ECDSA_SUPPORT_EXPORT_PUBKEY=y -CONFIG_SOC_ECDSA_SUPPORT_DETERMINISTIC_MODE=y -CONFIG_SOC_ECDSA_SUPPORT_HW_DETERMINISTIC_LOOP=y -CONFIG_SOC_ECDSA_SUPPORT_CURVE_P384=y -CONFIG_SOC_ECDSA_SUPPORT_CURVE_SPECIFIC_KEY_PURPOSES=y -CONFIG_SOC_SDM_GROUPS=1 -CONFIG_SOC_SDM_CHANNELS_PER_GROUP=4 -CONFIG_SOC_SDM_CLK_SUPPORT_PLL_F80M=y -CONFIG_SOC_SDM_CLK_SUPPORT_XTAL=y -CONFIG_SOC_SPI_PERIPH_NUM=2 -CONFIG_SOC_SPI_MAX_CS_NUM=6 -CONFIG_SOC_SPI_MAXIMUM_BUFFER_SIZE=64 -CONFIG_SOC_SPI_SUPPORT_DDRCLK=y -CONFIG_SOC_SPI_SLAVE_SUPPORT_SEG_TRANS=y -CONFIG_SOC_SPI_SUPPORT_CD_SIG=y -CONFIG_SOC_SPI_SUPPORT_CONTINUOUS_TRANS=y -CONFIG_SOC_SPI_SUPPORT_SLAVE_HD_VER2=y -CONFIG_SOC_SPI_SUPPORT_SLEEP_RETENTION=y -CONFIG_SOC_SPI_SUPPORT_CLK_XTAL=y -CONFIG_SOC_SPI_SUPPORT_CLK_PLL_F160M=y -CONFIG_SOC_SPI_SUPPORT_CLK_RC_FAST=y -CONFIG_SOC_MEMSPI_IS_INDEPENDENT=y -CONFIG_SOC_SPI_MAX_PRE_DIVIDER=16 -CONFIG_SOC_SPIRAM_XIP_SUPPORTED=y -CONFIG_SOC_PSRAM_DMA_CAPABLE=y -CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_WAIT_IDLE=y -CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_SUSPEND=y -CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_RESUME=y -CONFIG_SOC_SPI_MEM_SUPPORT_IDLE_INTR=y -CONFIG_SOC_SPI_MEM_SUPPORT_SW_SUSPEND=y -CONFIG_SOC_SPI_MEM_SUPPORT_CHECK_SUS=y -CONFIG_SOC_SPI_MEM_SUPPORT_WRAP=y -CONFIG_SOC_SPI_MEM_SUPPORT_WB_MODE_INDEPENDENT_CONTROL=y -CONFIG_SOC_SPI_MEM_SUPPORT_CACHE_32BIT_ADDR_MAP=y -CONFIG_SOC_SPI_MEM_SUPPORT_TIMING_TUNING=y -CONFIG_SOC_SPI_MEM_SUPPORT_TSUS_TRES_SEPERATE_CTR=y -CONFIG_SOC_SPI_MEM_PSRAM_FREQ_AXI_CONSTRAINED=y -CONFIG_SOC_SPI_MEM_FLASH_SUPPORT_HPM=y -CONFIG_SOC_MEMSPI_TIMING_TUNING_BY_MSPI_DELAY=y -CONFIG_SOC_SYSTIMER_COUNTER_NUM=2 -CONFIG_SOC_SYSTIMER_ALARM_NUM=3 -CONFIG_SOC_SYSTIMER_BIT_WIDTH_LO=32 -CONFIG_SOC_SYSTIMER_BIT_WIDTH_HI=20 -CONFIG_SOC_SYSTIMER_FIXED_DIVIDER=y -CONFIG_SOC_SYSTIMER_SUPPORT_RC_FAST=y -CONFIG_SOC_SYSTIMER_INT_LEVEL=y -CONFIG_SOC_SYSTIMER_ALARM_MISS_COMPENSATE=y -CONFIG_SOC_SYSTIMER_SUPPORT_ETM=y -CONFIG_SOC_LP_TIMER_BIT_WIDTH_LO=32 -CONFIG_SOC_LP_TIMER_BIT_WIDTH_HI=16 -CONFIG_SOC_TIMER_GROUPS=2 -CONFIG_SOC_TIMER_GROUP_TIMERS_PER_GROUP=1 -CONFIG_SOC_TIMER_GROUP_COUNTER_BIT_WIDTH=54 -CONFIG_SOC_TIMER_GROUP_SUPPORT_XTAL=y -CONFIG_SOC_TIMER_GROUP_SUPPORT_RC_FAST=y -CONFIG_SOC_TIMER_GROUP_TOTAL_TIMERS=2 -CONFIG_SOC_TIMER_SUPPORT_ETM=y -CONFIG_SOC_TIMER_SUPPORT_SLEEP_RETENTION=y -CONFIG_SOC_MWDT_SUPPORT_SLEEP_RETENTION=y -CONFIG_SOC_TWAI_CONTROLLER_NUM=2 -CONFIG_SOC_TWAI_MASK_FILTER_NUM=3 -CONFIG_SOC_TWAI_RANGE_FILTER_NUM=1 -CONFIG_SOC_TWAI_BRP_MIN=1 -CONFIG_SOC_TWAI_BRP_MAX=255 -CONFIG_SOC_TWAI_CLK_SUPPORT_XTAL=y -CONFIG_SOC_TWAI_SUPPORTS_RX_STATUS=y -CONFIG_SOC_TWAI_SUPPORT_FD=y -CONFIG_SOC_TWAI_SUPPORT_TIMESTAMP=y -CONFIG_SOC_EFUSE_DIS_PAD_JTAG=y -CONFIG_SOC_EFUSE_DIS_USB_JTAG=y -CONFIG_SOC_EFUSE_DIS_DIRECT_BOOT=y -CONFIG_SOC_EFUSE_SOFT_DIS_JTAG=y -CONFIG_SOC_EFUSE_DIS_ICACHE=y -CONFIG_SOC_EFUSE_ECDSA_KEY=y -CONFIG_SOC_EFUSE_ECDSA_KEY_P192=y -CONFIG_SOC_EFUSE_ECDSA_KEY_P384=y -CONFIG_SOC_HUK_MEM_NEEDS_RECHARGE=y -CONFIG_SOC_KEY_MANAGER_SUPPORT_KEY_DEPLOYMENT=y -CONFIG_SOC_KEY_MANAGER_ECDSA_KEY_DEPLOY=y -CONFIG_SOC_KEY_MANAGER_FE_KEY_DEPLOY=y -CONFIG_SOC_KEY_MANAGER_FE_KEY_DEPLOY_XTS_AES_128=y -CONFIG_SOC_KEY_MANAGER_FE_KEY_DEPLOY_XTS_AES_256=y -CONFIG_SOC_KEY_MANAGER_HMAC_KEY_DEPLOY=y -CONFIG_SOC_KEY_MANAGER_DS_KEY_DEPLOY=y -CONFIG_SOC_SECURE_BOOT_V2_RSA=y -CONFIG_SOC_SECURE_BOOT_V2_ECC=y -CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=3 -CONFIG_SOC_EFUSE_REVOKE_BOOT_KEY_DIGESTS=y -CONFIG_SOC_SUPPORT_SECURE_BOOT_REVOKE_KEY=y -CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=64 -CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES=y -CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_128=y -CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_SUPPORT_PSEUDO_ROUND=y -CONFIG_SOC_PSRAM_ENCRYPTION_XTS_AES_128=y -CONFIG_SOC_RECOVERY_BOOTLOADER_SUPPORTED=y -CONFIG_SOC_BOOTLOADER_ANTI_ROLLBACK_SUPPORTED=y -CONFIG_SOC_APM_CTRL_FILTER_SUPPORTED=y -CONFIG_SOC_APM_LP_APM0_SUPPORTED=y -CONFIG_SOC_APM_CPU_APM_SUPPORTED=y -CONFIG_SOC_APM_SUPPORT_LP_TEE_CTRL=y -CONFIG_SOC_APM_SUPPORT_CTRL_CFG_LOCK=y -CONFIG_SOC_APM_SUPPORT_TEE_PERI_ACCESS_CTRL=y -CONFIG_SOC_CRYPTO_DPA_PROTECTION_SUPPORTED=y -CONFIG_SOC_RNG_BUF_CHAIN_ENTROPY_SOURCE=y -CONFIG_SOC_RNG_RTC_TIMER_ENTROPY_SOURCE=y -CONFIG_SOC_UART_NUM=3 -CONFIG_SOC_UART_HP_NUM=2 -CONFIG_SOC_UART_LP_NUM=1 -CONFIG_SOC_UART_FIFO_LEN=128 -CONFIG_SOC_LP_UART_FIFO_LEN=16 -CONFIG_SOC_UART_BITRATE_MAX=5000000 -CONFIG_SOC_UART_SUPPORT_PLL_F80M_CLK=y -CONFIG_SOC_UART_SUPPORT_RTC_CLK=y -CONFIG_SOC_UART_SUPPORT_XTAL_CLK=y -CONFIG_SOC_UART_SUPPORT_WAKEUP_INT=y -CONFIG_SOC_UART_HAS_LP_UART=y -CONFIG_SOC_UART_SUPPORT_SLEEP_RETENTION=y -CONFIG_SOC_UART_SUPPORT_FSM_TX_WAIT_SEND=y -CONFIG_SOC_UART_WAKEUP_CHARS_SEQ_MAX_LEN=5 -CONFIG_SOC_UART_WAKEUP_SUPPORT_ACTIVE_THRESH_MODE=y -CONFIG_SOC_UART_WAKEUP_SUPPORT_FIFO_THRESH_MODE=y -CONFIG_SOC_UART_WAKEUP_SUPPORT_START_BIT_MODE=y -CONFIG_SOC_UART_WAKEUP_SUPPORT_CHAR_SEQ_MODE=y -CONFIG_SOC_UHCI_NUM=1 -CONFIG_SOC_COEX_HW_PTI=y -CONFIG_SOC_EXTERNAL_COEX_ADVANCE=y -CONFIG_SOC_WIFI_LIGHT_SLEEP_CLK_WIDTH=12 -CONFIG_SOC_RTC_MEM_SUPPORT_SPEED_MODE_SWITCH=y -CONFIG_SOC_PM_SUPPORT_WIFI_WAKEUP=y -CONFIG_SOC_PM_SUPPORT_BEACON_WAKEUP=y -CONFIG_SOC_PM_SUPPORT_BT_WAKEUP=y -CONFIG_SOC_PM_SUPPORT_EXT1_WAKEUP=y -CONFIG_SOC_PM_SUPPORT_EXT1_WAKEUP_MODE_PER_PIN=y -CONFIG_SOC_PM_SUPPORT_CPU_PD=y -CONFIG_SOC_PM_SUPPORT_MODEM_PD=y -CONFIG_SOC_PM_SUPPORT_XTAL32K_PD=y -CONFIG_SOC_PM_SUPPORT_RC32K_PD=y -CONFIG_SOC_PM_SUPPORT_RC_FAST_PD=y -CONFIG_SOC_PM_SUPPORT_VDDSDIO_PD=y -CONFIG_SOC_PM_SUPPORT_TOP_PD=y -CONFIG_SOC_PM_SUPPORT_HP_AON_PD=y -CONFIG_SOC_PM_SUPPORT_MAC_BB_PD=y -CONFIG_SOC_PM_SUPPORT_RTC_PERIPH_PD=y -CONFIG_SOC_PM_SUPPORT_PMU_MODEM_STATE=y -CONFIG_SOC_PM_SUPPORT_PMU_CLK_ICG=y -CONFIG_SOC_PM_SUPPORT_DEEPSLEEP_CHECK_STUB_ONLY=y -CONFIG_SOC_PM_CPU_RETENTION_BY_SW=y -CONFIG_SOC_PM_MODEM_RETENTION_BY_REGDMA=y -CONFIG_SOC_EXT_MEM_CACHE_TAG_IN_CPU_DOMAIN=y -CONFIG_SOC_PM_PAU_LINK_NUM=5 -CONFIG_SOC_PM_PAU_REGDMA_LINK_CONFIGURABLE=y -CONFIG_SOC_PM_PAU_REGDMA_LINK_IDX_WIFIMAC=4 -CONFIG_SOC_PM_PAU_REGDMA_COMMON_PHY_LINK_ENTRY=y -CONFIG_SOC_PM_PMU_MIN_SLP_SLOW_CLK_CYCLE_FIXED=y -CONFIG_SOC_PM_RETENTION_MODULE_NUM=32 -CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y -CONFIG_SOC_MODEM_CLOCK_IS_INDEPENDENT=y -CONFIG_SOC_RNG_CLOCK_IS_INDEPENDENT=y -CONFIG_SOC_CLK_XTAL32K_SUPPORTED=y -CONFIG_SOC_CLK_OSC_SLOW_SUPPORTED=y -CONFIG_SOC_CLK_LP_FAST_SUPPORT_XTAL=y -CONFIG_SOC_CLK_LP_FAST_SUPPORT_XTAL_D2=y -CONFIG_SOC_RCC_IS_INDEPENDENT=y -CONFIG_SOC_CLK_ANA_I2C_MST_HAS_ROOT_GATE=y -CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_FAST_RC=y -CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_XTAL=y -CONFIG_SOC_TEMPERATURE_SENSOR_INTR_SUPPORT=y -CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_SLEEP_RETENTION=y -CONFIG_SOC_TEMPERATURE_SENSOR_UNDER_PD_TOP_DOMAIN=y -CONFIG_SOC_WIFI_HW_TSF=y -CONFIG_SOC_WIFI_FTM_SUPPORT=y -CONFIG_SOC_WIFI_GCMP_SUPPORT=y -CONFIG_SOC_WIFI_WAPI_SUPPORT=y -CONFIG_SOC_WIFI_TXOP_SUPPORT=y -CONFIG_SOC_WIFI_CSI_SUPPORT=y -CONFIG_SOC_WIFI_MESH_SUPPORT=y -CONFIG_SOC_WIFI_HE_SUPPORT=y -CONFIG_SOC_WIFI_SUPPORT_5G=y -CONFIG_SOC_WIFI_MAC_VERSION_NUM=3 -CONFIG_SOC_WIFI_NAN_SUPPORT=y -CONFIG_SOC_BLE_SUPPORTED=y -CONFIG_SOC_ESP_NIMBLE_CONTROLLER=y -CONFIG_SOC_BLE_50_SUPPORTED=y -CONFIG_SOC_BLE_DEVICE_PRIVACY_SUPPORTED=y -CONFIG_SOC_BLE_POWER_CONTROL_SUPPORTED=y -CONFIG_SOC_BLE_PERIODIC_ADV_ENH_SUPPORTED=y -CONFIG_SOC_BLUFI_SUPPORTED=y -CONFIG_SOC_BLE_MULTI_CONN_OPTIMIZATION=y -CONFIG_SOC_BLE_CTE_SUPPORTED=y -CONFIG_SOC_BLE_SUBRATE_SUPPORTED=y -CONFIG_SOC_BLE_PERIODIC_ADV_WITH_RESPONSE=y -CONFIG_SOC_PHY_CALIBRATION_CLOCK_IS_INDEPENDENT=y -CONFIG_SOC_LP_CORE_SINGLE_INTERRUPT_VECTOR=y -CONFIG_SOC_LP_CORE_SUPPORT_ETM=y -CONFIG_SOC_LP_CORE_SUPPORT_STORE_LOAD_EXCEPTIONS=y -CONFIG_IDF_CMAKE=y -CONFIG_IDF_ENV_BRINGUP=y -CONFIG_IDF_TOOLCHAIN="gcc" -CONFIG_IDF_TOOLCHAIN_GCC=y -CONFIG_IDF_TARGET_ARCH_RISCV=y -CONFIG_IDF_TARGET_ARCH="riscv" -CONFIG_IDF_TARGET="esp32c5" -CONFIG_IDF_INIT_VERSION="5.5.4" -CONFIG_IDF_TARGET_ESP32C5=y -CONFIG_IDF_FIRMWARE_CHIP_ID=0x0017 - -# -# Build type -# -CONFIG_APP_BUILD_TYPE_APP_2NDBOOT=y -# CONFIG_APP_BUILD_TYPE_RAM is not set -CONFIG_APP_BUILD_GENERATE_BINARIES=y -CONFIG_APP_BUILD_BOOTLOADER=y -CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y -# CONFIG_APP_REPRODUCIBLE_BUILD is not set -# CONFIG_APP_NO_BLOBS is not set -# end of Build type - -# -# Bootloader config -# - -# -# Bootloader manager -# -CONFIG_BOOTLOADER_COMPILE_TIME_DATE=y -CONFIG_BOOTLOADER_PROJECT_VER=1 -# end of Bootloader manager - -# -# Application Rollback -# -# CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set -# end of Application Rollback - -# -# Recovery Bootloader and Rollback -# -# CONFIG_BOOTLOADER_RECOVERY_ENABLE is not set -# end of Recovery Bootloader and Rollback - -CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x2000 -CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y -# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set -# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set - -# -# Log -# -CONFIG_BOOTLOADER_LOG_VERSION_1=y -CONFIG_BOOTLOADER_LOG_VERSION=1 -# CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set -CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y -# CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set -CONFIG_BOOTLOADER_LOG_LEVEL=3 - -# -# Format -# -# CONFIG_BOOTLOADER_LOG_COLORS is not set -CONFIG_BOOTLOADER_LOG_TIMESTAMP_SOURCE_CPU_TICKS=y -# end of Format - -# -# Settings -# -CONFIG_BOOTLOADER_LOG_MODE_TEXT_EN=y -CONFIG_BOOTLOADER_LOG_MODE_TEXT=y -# end of Settings -# end of Log - -# -# Serial Flash Configurations -# -# CONFIG_BOOTLOADER_FLASH_DC_AWARE is not set -CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y -# end of Serial Flash Configurations - -# CONFIG_BOOTLOADER_FACTORY_RESET is not set -# CONFIG_BOOTLOADER_APP_TEST is not set -CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE=y -CONFIG_BOOTLOADER_WDT_ENABLE=y -# CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set -CONFIG_BOOTLOADER_WDT_TIME_MS=9000 -# CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set -# CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set -# CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set -CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0 -# CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set -# end of Bootloader config - -# -# Security features -# -CONFIG_SECURE_BOOT_V2_RSA_SUPPORTED=y -CONFIG_SECURE_BOOT_V2_ECC_SUPPORTED=y -CONFIG_SECURE_BOOT_V2_PREFERRED=y -# CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set -# CONFIG_SECURE_BOOT is not set -# CONFIG_SECURE_FLASH_ENC_ENABLED is not set -CONFIG_SECURE_ROM_DL_MODE_ENABLED=y -# end of Security features - -# -# Application manager -# -CONFIG_APP_COMPILE_TIME_DATE=y -# CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set -# CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set -# CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set -CONFIG_APP_RETRIEVE_LEN_ELF_SHA=9 -# end of Application manager - -CONFIG_ESP_ROM_HAS_CRC_LE=y -CONFIG_ESP_ROM_HAS_CRC_BE=y -CONFIG_ESP_ROM_HAS_JPEG_DECODE=y -CONFIG_ESP_ROM_UART_CLK_IS_XTAL=y -CONFIG_ESP_ROM_USB_SERIAL_DEVICE_NUM=3 -CONFIG_ESP_ROM_HAS_RETARGETABLE_LOCKING=y -CONFIG_ESP_ROM_GET_CLK_FREQ=y -CONFIG_ESP_ROM_HAS_RVFPLIB=y -CONFIG_ESP_ROM_HAS_HAL_WDT=y -CONFIG_ESP_ROM_HAS_HAL_SYSTIMER=y -CONFIG_ESP_ROM_SYSTIMER_INIT_PATCH=y -CONFIG_ESP_ROM_HAS_HEAP_TLSF=y -CONFIG_ESP_ROM_TLSF_CHECK_PATCH=y -CONFIG_ESP_ROM_MULTI_HEAP_WALK_PATCH=y -CONFIG_ESP_ROM_HAS_LAYOUT_TABLE=y -CONFIG_ESP_ROM_HAS_SPI_FLASH=y -CONFIG_ESP_ROM_HAS_SPI_FLASH_MMAP=y -CONFIG_ESP_ROM_WITHOUT_REGI2C=y -CONFIG_ESP_ROM_HAS_NEWLIB=y -CONFIG_ESP_ROM_HAS_NEWLIB_NANO_FORMAT=y -CONFIG_ESP_ROM_WDT_INIT_PATCH=y -CONFIG_ESP_ROM_NEEDS_SET_CACHE_MMU_SIZE=y -CONFIG_ESP_ROM_RAM_APP_NEEDS_MMU_INIT=y -CONFIG_ESP_ROM_HAS_VERSION=y -CONFIG_ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB=y -CONFIG_ESP_ROM_USB_OTG_NUM=-1 -CONFIG_ESP_ROM_HAS_OUTPUT_PUTC_FUNC=y -CONFIG_ESP_ROM_CLIC_INT_THRESH_PATCH=y -CONFIG_ESP_ROM_HAS_SUBOPTIMAL_NEWLIB_ON_MISALIGNED_MEMORY=y -CONFIG_ESP_ROM_DELAY_US_PATCH=y -CONFIG_ESP_ROM_SUPPORT_SECURE_BOOT_FAST_WAKEUP=y - -# -# Boot ROM Behavior -# -CONFIG_BOOT_ROM_LOG_ALWAYS_ON=y -# CONFIG_BOOT_ROM_LOG_ALWAYS_OFF is not set -# CONFIG_BOOT_ROM_LOG_ON_GPIO_HIGH is not set -# CONFIG_BOOT_ROM_LOG_ON_GPIO_LOW is not set -# end of Boot ROM Behavior - -# -# ESP-TEE (Trusted Execution Environment) -# -# CONFIG_SECURE_ENABLE_TEE is not set -CONFIG_SECURE_TEE_LOG_LEVEL=0 -# end of ESP-TEE (Trusted Execution Environment) - -# -# Serial flasher config -# -CONFIG_ESPTOOLPY_NO_STUB=y -# CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set -# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set -CONFIG_ESPTOOLPY_FLASHMODE_DIO=y -# CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set -CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y -CONFIG_ESPTOOLPY_FLASHMODE="dio" -# CONFIG_ESPTOOLPY_FLASHFREQ_120M is not set -CONFIG_ESPTOOLPY_FLASHFREQ_80M=y -# CONFIG_ESPTOOLPY_FLASHFREQ_40M is not set -# CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set -CONFIG_ESPTOOLPY_FLASHFREQ="80m" -# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE_2MB=y -# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE="2MB" -# CONFIG_ESPTOOLPY_HEADER_FLASHSIZE_UPDATE is not set -CONFIG_ESPTOOLPY_BEFORE_RESET=y -# CONFIG_ESPTOOLPY_BEFORE_NORESET is not set -CONFIG_ESPTOOLPY_BEFORE="default_reset" -CONFIG_ESPTOOLPY_AFTER_RESET=y -# CONFIG_ESPTOOLPY_AFTER_NORESET is not set -CONFIG_ESPTOOLPY_AFTER="hard_reset" -CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 -# end of Serial flasher config - -# -# Partition Table -# -CONFIG_PARTITION_TABLE_SINGLE_APP=y -# CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set -# CONFIG_PARTITION_TABLE_TWO_OTA is not set -# CONFIG_PARTITION_TABLE_TWO_OTA_LARGE is not set -# CONFIG_PARTITION_TABLE_CUSTOM is not set -CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" -CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp.csv" -CONFIG_PARTITION_TABLE_OFFSET=0x8000 -CONFIG_PARTITION_TABLE_MD5=y -# end of Partition Table - -# -# Compiler options -# -CONFIG_COMPILER_OPTIMIZATION_DEBUG=y -# CONFIG_COMPILER_OPTIMIZATION_SIZE is not set -# CONFIG_COMPILER_OPTIMIZATION_PERF is not set -# CONFIG_COMPILER_OPTIMIZATION_NONE is not set -CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y -# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set -# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set -CONFIG_COMPILER_ASSERT_NDEBUG_EVALUATE=y -# CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB is not set -CONFIG_COMPILER_FLOAT_LIB_FROM_RVFPLIB=y -CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2 -# CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set -CONFIG_COMPILER_HIDE_PATHS_MACROS=y -# CONFIG_COMPILER_CXX_EXCEPTIONS is not set -# CONFIG_COMPILER_CXX_RTTI is not set -CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y -# CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set -# CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set -# CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set -# CONFIG_COMPILER_NO_MERGE_CONSTANTS is not set -# CONFIG_COMPILER_WARN_WRITE_STRINGS is not set -# CONFIG_COMPILER_SAVE_RESTORE_LIBCALLS is not set -CONFIG_COMPILER_DISABLE_DEFAULT_ERRORS=y -# CONFIG_COMPILER_DISABLE_GCC12_WARNINGS is not set -# CONFIG_COMPILER_DISABLE_GCC13_WARNINGS is not set -# CONFIG_COMPILER_DISABLE_GCC14_WARNINGS is not set -# CONFIG_COMPILER_DUMP_RTL_FILES is not set -CONFIG_COMPILER_RT_LIB_GCCLIB=y -CONFIG_COMPILER_RT_LIB_NAME="gcc" -CONFIG_COMPILER_ORPHAN_SECTIONS_WARNING=y -# CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE is not set -# CONFIG_COMPILER_STATIC_ANALYZER is not set -# end of Compiler options - -# -# Component config -# - -# -# Application Level Tracing -# -# CONFIG_APPTRACE_DEST_JTAG is not set -CONFIG_APPTRACE_DEST_NONE=y -# CONFIG_APPTRACE_DEST_UART1 is not set -# CONFIG_APPTRACE_DEST_UART2 is not set -CONFIG_APPTRACE_DEST_UART_NONE=y -CONFIG_APPTRACE_UART_TASK_PRIO=1 -CONFIG_APPTRACE_LOCK_ENABLE=y -# end of Application Level Tracing - -# -# Bluetooth -# -# CONFIG_BT_ENABLED is not set - -# -# Common Options -# - -# -# BLE Log -# -# CONFIG_BLE_LOG_ENABLED is not set -# end of BLE Log - -# CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED is not set -# CONFIG_BT_BLE_LOG_UHCI_OUT_ENABLED is not set -# CONFIG_BT_LE_USED_MEM_STATISTICS_ENABLED is not set -# end of Common Options -# end of Bluetooth - -# -# Console Library -# -# CONFIG_CONSOLE_SORTED_HELP is not set -# end of Console Library - -# -# Driver Configurations -# - -# -# Legacy TWAI Driver Configurations -# -# CONFIG_TWAI_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy TWAI Driver Configurations - -# -# Legacy ADC Driver Configuration -# -# CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_ADC_SKIP_LEGACY_CONFLICT_CHECK is not set - -# -# Legacy ADC Calibration Configuration -# -# CONFIG_ADC_CALI_SUPPRESS_DEPRECATE_WARN is not set -# end of Legacy ADC Calibration Configuration -# end of Legacy ADC Driver Configuration - -# -# Legacy MCPWM Driver Configurations -# -# CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_MCPWM_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy MCPWM Driver Configurations - -# -# Legacy Timer Group Driver Configurations -# -# CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_GPTIMER_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy Timer Group Driver Configurations - -# -# Legacy RMT Driver Configurations -# -# CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_RMT_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy RMT Driver Configurations - -# -# Legacy I2S Driver Configurations -# -# CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_I2S_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy I2S Driver Configurations - -# -# Legacy I2C Driver Configurations -# -# CONFIG_I2C_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy I2C Driver Configurations - -# -# Legacy PCNT Driver Configurations -# -# CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_PCNT_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy PCNT Driver Configurations - -# -# Legacy SDM Driver Configurations -# -# CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_SDM_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy SDM Driver Configurations - -# -# Legacy Temperature Sensor Driver Configurations -# -# CONFIG_TEMP_SENSOR_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_TEMP_SENSOR_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy Temperature Sensor Driver Configurations -# end of Driver Configurations - -# -# eFuse Bit Manager -# -# CONFIG_EFUSE_CUSTOM_TABLE is not set -# CONFIG_EFUSE_VIRTUAL is not set -CONFIG_EFUSE_MAX_BLK_LEN=256 -# end of eFuse Bit Manager - -# -# ESP-TLS -# -CONFIG_ESP_TLS_USING_MBEDTLS=y -# CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set -CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y -# CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set -# CONFIG_ESP_TLS_SERVER_SESSION_TICKETS is not set -# CONFIG_ESP_TLS_SERVER_CERT_SELECT_HOOK is not set -# CONFIG_ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL is not set -# CONFIG_ESP_TLS_PSK_VERIFICATION is not set -# CONFIG_ESP_TLS_INSECURE is not set -CONFIG_ESP_TLS_DYN_BUF_STRATEGY_SUPPORTED=y -# end of ESP-TLS - -# -# ADC and ADC Calibration -# -# CONFIG_ADC_ONESHOT_CTRL_FUNC_IN_IRAM is not set -# CONFIG_ADC_CONTINUOUS_ISR_IRAM_SAFE is not set -# CONFIG_ADC_ENABLE_DEBUG_LOG is not set -# end of ADC and ADC Calibration - -# -# Wireless Coexistence -# -CONFIG_ESP_COEX_ENABLED=y -CONFIG_ESP_COEX_SW_COEXIST_ENABLE=y -# CONFIG_ESP_COEX_EXTERNAL_COEXIST_ENABLE is not set -# CONFIG_ESP_COEX_POWER_MANAGEMENT is not set -# CONFIG_ESP_COEX_GPIO_DEBUG is not set -# end of Wireless Coexistence - -# -# Common ESP-related -# -CONFIG_ESP_ERR_TO_NAME_LOOKUP=y -# end of Common ESP-related - -# -# ESP-Driver:Analog Comparator Configurations -# -CONFIG_ANA_CMPR_ISR_HANDLER_IN_IRAM=y -# CONFIG_ANA_CMPR_CTRL_FUNC_IN_IRAM is not set -# CONFIG_ANA_CMPR_ISR_CACHE_SAFE is not set -CONFIG_ANA_CMPR_OBJ_CACHE_SAFE=y -# CONFIG_ANA_CMPR_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:Analog Comparator Configurations - -# -# ESP-Driver:BitScrambler Configurations -# -# CONFIG_BITSCRAMBLER_CTRL_FUNC_IN_IRAM is not set -# end of ESP-Driver:BitScrambler Configurations - -# -# ESP-Driver:GPIO Configurations -# -# CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set -# end of ESP-Driver:GPIO Configurations - -# -# ESP-Driver:GPTimer Configurations -# -CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y -# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set -# CONFIG_GPTIMER_ISR_CACHE_SAFE is not set -CONFIG_GPTIMER_OBJ_CACHE_SAFE=y -# CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:GPTimer Configurations - -# -# ESP-Driver:I2C Configurations -# -# CONFIG_I2C_ISR_IRAM_SAFE is not set -# CONFIG_I2C_ENABLE_DEBUG_LOG is not set -# CONFIG_I2C_ENABLE_SLAVE_DRIVER_VERSION_2 is not set -CONFIG_I2C_MASTER_ISR_HANDLER_IN_IRAM=y -# end of ESP-Driver:I2C Configurations - -# -# ESP-Driver:I2S Configurations -# -# CONFIG_I2S_ISR_IRAM_SAFE is not set -# CONFIG_I2S_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:I2S Configurations - -# -# ESP-Driver:LEDC Configurations -# -# CONFIG_LEDC_CTRL_FUNC_IN_IRAM is not set -# end of ESP-Driver:LEDC Configurations - -# -# ESP-Driver:MCPWM Configurations -# -CONFIG_MCPWM_ISR_HANDLER_IN_IRAM=y -# CONFIG_MCPWM_ISR_CACHE_SAFE is not set -# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set -CONFIG_MCPWM_OBJ_CACHE_SAFE=y -# CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:MCPWM Configurations - -# -# ESP-Driver:Parallel IO Configurations -# -CONFIG_PARLIO_TX_ISR_HANDLER_IN_IRAM=y -CONFIG_PARLIO_RX_ISR_HANDLER_IN_IRAM=y -# CONFIG_PARLIO_TX_ISR_CACHE_SAFE is not set -# CONFIG_PARLIO_RX_ISR_CACHE_SAFE is not set -CONFIG_PARLIO_OBJ_CACHE_SAFE=y -# CONFIG_PARLIO_ENABLE_DEBUG_LOG is not set -# CONFIG_PARLIO_ISR_IRAM_SAFE is not set -# end of ESP-Driver:Parallel IO Configurations - -# -# ESP-Driver:PCNT Configurations -# -# CONFIG_PCNT_CTRL_FUNC_IN_IRAM is not set -# CONFIG_PCNT_ISR_IRAM_SAFE is not set -# CONFIG_PCNT_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:PCNT Configurations - -# -# ESP-Driver:RMT Configurations -# -CONFIG_RMT_ENCODER_FUNC_IN_IRAM=y -CONFIG_RMT_TX_ISR_HANDLER_IN_IRAM=y -CONFIG_RMT_RX_ISR_HANDLER_IN_IRAM=y -# CONFIG_RMT_RECV_FUNC_IN_IRAM is not set -# CONFIG_RMT_TX_ISR_CACHE_SAFE is not set -# CONFIG_RMT_RX_ISR_CACHE_SAFE is not set -CONFIG_RMT_OBJ_CACHE_SAFE=y -# CONFIG_RMT_ENABLE_DEBUG_LOG is not set -# CONFIG_RMT_ISR_IRAM_SAFE is not set -# end of ESP-Driver:RMT Configurations - -# -# ESP-Driver:Sigma Delta Modulator Configurations -# -# CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set -# CONFIG_SDM_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:Sigma Delta Modulator Configurations - -# -# ESP-Driver:SPI Configurations -# -# CONFIG_SPI_MASTER_IN_IRAM is not set -CONFIG_SPI_MASTER_ISR_IN_IRAM=y -# CONFIG_SPI_SLAVE_IN_IRAM is not set -CONFIG_SPI_SLAVE_ISR_IN_IRAM=y -# end of ESP-Driver:SPI Configurations - -# -# ESP-Driver:Temperature Sensor Configurations -# -# CONFIG_TEMP_SENSOR_ENABLE_DEBUG_LOG is not set -# CONFIG_TEMP_SENSOR_ISR_IRAM_SAFE is not set -# end of ESP-Driver:Temperature Sensor Configurations - -# -# ESP-Driver:TWAI Configurations -# -# CONFIG_TWAI_ISR_IN_IRAM is not set -# CONFIG_TWAI_IO_FUNC_IN_IRAM is not set -# CONFIG_TWAI_ISR_CACHE_SAFE is not set -# CONFIG_TWAI_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:TWAI Configurations - -# -# ESP-Driver:UART Configurations -# -# CONFIG_UART_ISR_IN_IRAM is not set -# end of ESP-Driver:UART Configurations - -# -# ESP-Driver:UHCI Configurations -# -# CONFIG_UHCI_ISR_HANDLER_IN_IRAM is not set -# CONFIG_UHCI_ISR_CACHE_SAFE is not set -# CONFIG_UHCI_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:UHCI Configurations - -# -# ESP-Driver:USB Serial/JTAG Configuration -# -CONFIG_USJ_ENABLE_USB_SERIAL_JTAG=y -# end of ESP-Driver:USB Serial/JTAG Configuration - -# -# Ethernet -# -CONFIG_ETH_ENABLED=y -CONFIG_ETH_USE_SPI_ETHERNET=y -# CONFIG_ETH_SPI_ETHERNET_DM9051 is not set -# CONFIG_ETH_SPI_ETHERNET_W5500 is not set -# CONFIG_ETH_SPI_ETHERNET_KSZ8851SNL is not set -# CONFIG_ETH_USE_OPENETH is not set -# CONFIG_ETH_TRANSMIT_MUTEX is not set -# end of Ethernet - -# -# Event Loop Library -# -# CONFIG_ESP_EVENT_LOOP_PROFILING is not set -CONFIG_ESP_EVENT_POST_FROM_ISR=y -CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR=y -# end of Event Loop Library - -# -# GDB Stub -# -CONFIG_ESP_GDBSTUB_ENABLED=y -# CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set -CONFIG_ESP_GDBSTUB_SUPPORT_TASKS=y -CONFIG_ESP_GDBSTUB_MAX_TASKS=32 -# end of GDB Stub - -# -# ESP HID -# -CONFIG_ESPHID_TASK_SIZE_BT=2048 -CONFIG_ESPHID_TASK_SIZE_BLE=4096 -# end of ESP HID - -# -# ESP HTTP client -# -CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y -# CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set -# CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH is not set -# CONFIG_ESP_HTTP_CLIENT_ENABLE_CUSTOM_TRANSPORT is not set -CONFIG_ESP_HTTP_CLIENT_EVENT_POST_TIMEOUT=2000 -# end of ESP HTTP client - -# -# HTTP Server -# -CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024 -CONFIG_HTTPD_MAX_URI_LEN=512 -CONFIG_HTTPD_ERR_RESP_NO_DELAY=y -CONFIG_HTTPD_PURGE_BUF_LEN=32 -# CONFIG_HTTPD_LOG_PURGE_DATA is not set -# CONFIG_HTTPD_WS_SUPPORT is not set -# CONFIG_HTTPD_QUEUE_WORK_BLOCKING is not set -CONFIG_HTTPD_SERVER_EVENT_POST_TIMEOUT=2000 -# end of HTTP Server - -# -# ESP HTTPS OTA -# -# CONFIG_ESP_HTTPS_OTA_DECRYPT_CB is not set -# CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP is not set -CONFIG_ESP_HTTPS_OTA_EVENT_POST_TIMEOUT=2000 -# end of ESP HTTPS OTA - -# -# ESP HTTPS server -# -# CONFIG_ESP_HTTPS_SERVER_ENABLE is not set -CONFIG_ESP_HTTPS_SERVER_EVENT_POST_TIMEOUT=2000 -# CONFIG_ESP_HTTPS_SERVER_CERT_SELECT_HOOK is not set -# end of ESP HTTPS server - -# -# Hardware Settings -# -CONFIG_ESP_HW_SUPPORT_FUNC_IN_IRAM=y - -# -# Chip revision -# -CONFIG_ESP32C5_REV_MIN_100=y -# CONFIG_ESP32C5_REV_MIN_102 is not set -CONFIG_ESP32C5_REV_MIN_FULL=100 -CONFIG_ESP_REV_MIN_FULL=100 - -# -# Maximum Supported ESP32-C5 Revision (Rev v1.99) -# -CONFIG_ESP32C5_REV_MAX_FULL=199 -CONFIG_ESP_REV_MAX_FULL=199 -CONFIG_ESP_EFUSE_BLOCK_REV_MIN_FULL=0 -CONFIG_ESP_EFUSE_BLOCK_REV_MAX_FULL=99 - -# -# Maximum Supported ESP32-C5 eFuse Block Revision (eFuse Block Rev v0.99) -# -# end of Chip revision - -# -# MAC Config -# -CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y -CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y -CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y -CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y -CONFIG_ESP_MAC_ADDR_UNIVERSE_IEEE802154=y -CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES_FOUR=y -CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES=4 -# CONFIG_ESP32C5_UNIVERSAL_MAC_ADDRESSES_TWO is not set -CONFIG_ESP32C5_UNIVERSAL_MAC_ADDRESSES_FOUR=y -CONFIG_ESP32C5_UNIVERSAL_MAC_ADDRESSES=4 -# CONFIG_ESP_MAC_USE_CUSTOM_MAC_AS_BASE_MAC is not set -# end of MAC Config - -# -# Sleep Config -# -# CONFIG_ESP_SLEEP_POWER_DOWN_FLASH is not set -CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND=y -# CONFIG_ESP_SLEEP_MSPI_NEED_ALL_IO_PU is not set -CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND=y -CONFIG_ESP_SLEEP_WAIT_FLASH_READY_EXTRA_DELAY=0 -# CONFIG_ESP_SLEEP_CACHE_SAFE_ASSERTION is not set -# CONFIG_ESP_SLEEP_DEBUG is not set -CONFIG_ESP_SLEEP_GPIO_ENABLE_INTERNAL_RESISTORS=y -# end of Sleep Config - -# -# RTC Clock Config -# -CONFIG_RTC_CLK_SRC_INT_RC=y -# CONFIG_RTC_CLK_SRC_EXT_CRYS is not set -# CONFIG_RTC_CLK_SRC_EXT_OSC is not set -CONFIG_RTC_CLK_CAL_CYCLES=1024 -CONFIG_RTC_FAST_CLK_SRC_RC_FAST=y -# CONFIG_RTC_FAST_CLK_SRC_XTAL is not set -CONFIG_RTC_CLK_FUNC_IN_IRAM=y -CONFIG_RTC_TIME_FUNC_IN_IRAM=y -# end of RTC Clock Config - -# -# Peripheral Control -# -CONFIG_ESP_PERIPH_CTRL_FUNC_IN_IRAM=y -CONFIG_ESP_REGI2C_CTRL_FUNC_IN_IRAM=y -# end of Peripheral Control - -# -# ETM Configuration -# -# CONFIG_ETM_ENABLE_DEBUG_LOG is not set -# end of ETM Configuration - -# -# GDMA Configurations -# -CONFIG_GDMA_CTRL_FUNC_IN_IRAM=y -CONFIG_GDMA_ISR_HANDLER_IN_IRAM=y -CONFIG_GDMA_OBJ_DRAM_SAFE=y -# CONFIG_GDMA_ENABLE_DEBUG_LOG is not set -# CONFIG_GDMA_ISR_IRAM_SAFE is not set -# end of GDMA Configurations - -# -# Main XTAL Config -# -CONFIG_XTAL_FREQ_AUTO=y -CONFIG_XTAL_FREQ=0 -# end of Main XTAL Config - -# -# Power Supplier -# - -# -# Brownout Detector -# -CONFIG_ESP_BROWNOUT_DET=y -CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7=y -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set -CONFIG_ESP_BROWNOUT_DET_LVL=7 -CONFIG_ESP_BROWNOUT_USE_INTR=y -# end of Brownout Detector -# end of Power Supplier - -CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y -CONFIG_ESP_CLK_RC32K_NOT_TO_USE=y -CONFIG_ESP_INTR_IN_IRAM=y -# end of Hardware Settings - -# -# ESP-Driver:LCD Controller Configurations -# -# CONFIG_LCD_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:LCD Controller Configurations - -# -# ESP-MM: Memory Management Configurations -# -# CONFIG_ESP_MM_CACHE_MSYNC_C2M_CHUNKED_OPS is not set -# end of ESP-MM: Memory Management Configurations - -# -# ESP NETIF Adapter -# -CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120 -# CONFIG_ESP_NETIF_PROVIDE_CUSTOM_IMPLEMENTATION is not set -CONFIG_ESP_NETIF_TCPIP_LWIP=y -# CONFIG_ESP_NETIF_LOOPBACK is not set -CONFIG_ESP_NETIF_USES_TCPIP_WITH_BSD_API=y -CONFIG_ESP_NETIF_REPORT_DATA_TRAFFIC=y -# CONFIG_ESP_NETIF_RECEIVE_REPORT_ERRORS is not set -# CONFIG_ESP_NETIF_L2_TAP is not set -# CONFIG_ESP_NETIF_BRIDGE_EN is not set -# CONFIG_ESP_NETIF_SET_DNS_PER_DEFAULT_NETIF is not set -# end of ESP NETIF Adapter - -# -# Partition API Configuration -# -# end of Partition API Configuration - -# -# PHY -# -CONFIG_ESP_PHY_ENABLED=y -CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y -# CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set -CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20 -CONFIG_ESP_PHY_MAX_TX_POWER=20 -# CONFIG_ESP_PHY_REDUCE_TX_POWER is not set -# CONFIG_ESP_PHY_ENABLE_CERT_TEST is not set -CONFIG_ESP_PHY_RF_CAL_PARTIAL=y -# CONFIG_ESP_PHY_RF_CAL_NONE is not set -# CONFIG_ESP_PHY_RF_CAL_FULL is not set -CONFIG_ESP_PHY_CALIBRATION_MODE=0 -CONFIG_ESP_PHY_PLL_TRACK_PERIOD_MS=1000 -# CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set -# CONFIG_ESP_PHY_RECORD_USED_TIME is not set -CONFIG_ESP_PHY_IRAM_OPT=y -# CONFIG_ESP_PHY_DEBUG is not set -# end of PHY - -# -# Power Management -# -CONFIG_PM_SLEEP_FUNC_IN_IRAM=y -# CONFIG_PM_ENABLE is not set -CONFIG_PM_SLP_IRAM_OPT=y -CONFIG_PM_SLP_DEFAULT_PARAMS_OPT=y -CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=y -# CONFIG_PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP is not set -CONFIG_PM_WORKAROUND_FREQ_LIMIT_ENABLED=y -# end of Power Management - -# -# ESP PSRAM -# -# CONFIG_SPIRAM is not set -# end of ESP PSRAM - -# -# ESP Ringbuf -# -# CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH is not set -# end of ESP Ringbuf - -# -# ESP-ROM -# -CONFIG_ESP_ROM_PRINT_IN_IRAM=y -# end of ESP-ROM - -# -# ESP Security Specific -# - -# -# Crypto DPA Protection -# -CONFIG_ESP_CRYPTO_DPA_PROTECTION_AT_STARTUP=y -CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_LOW=y -# CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_MEDIUM is not set -# CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_HIGH is not set -CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL=1 -# end of Crypto DPA Protection - -# CONFIG_ESP_CRYPTO_FORCE_ECC_CONSTANT_TIME_POINT_MUL is not set -# end of ESP Security Specific - -# -# ESP System Settings -# -# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80 is not set -# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160 is not set -CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y -CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=240 - -# -# Cache config -# -CONFIG_CACHE_L1_CACHE_SIZE=0x8000 -CONFIG_CACHE_L1_CACHE_LINE_SIZE=32 -# end of Cache config - -CONFIG_ESP_SYSTEM_IN_IRAM=y -# CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set -CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y -# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set -# CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set -CONFIG_ESP_SYSTEM_PANIC_REBOOT_DELAY_SECONDS=0 -CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE=y -CONFIG_ESP_SYSTEM_RTC_FAST_MEM_AS_HEAP_DEPCHECK=y -CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP=y -CONFIG_ESP_SYSTEM_NO_BACKTRACE=y -# CONFIG_ESP_SYSTEM_USE_EH_FRAME is not set -# CONFIG_ESP_SYSTEM_USE_FRAME_POINTER is not set - -# -# Memory protection -# -CONFIG_ESP_SYSTEM_PMP_IDRAM_SPLIT=y -# CONFIG_ESP_SYSTEM_PMP_LP_CORE_RESERVE_MEM_EXECUTABLE is not set -# end of Memory protection - -CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32 -CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304 -CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584 -CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y -# CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set -CONFIG_ESP_MAIN_TASK_AFFINITY=0x0 -CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048 -CONFIG_ESP_CONSOLE_UART_DEFAULT=y -# CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG is not set -# CONFIG_ESP_CONSOLE_UART_CUSTOM is not set -# CONFIG_ESP_CONSOLE_NONE is not set -# CONFIG_ESP_CONSOLE_SECONDARY_NONE is not set -CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG=y -CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG_ENABLED=y -CONFIG_ESP_CONSOLE_UART=y -CONFIG_ESP_CONSOLE_UART_NUM=0 -CONFIG_ESP_CONSOLE_ROM_SERIAL_PORT_NUM=0 -CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 -CONFIG_ESP_INT_WDT=y -CONFIG_ESP_INT_WDT_TIMEOUT_MS=300 -CONFIG_ESP_TASK_WDT_EN=y -CONFIG_ESP_TASK_WDT_INIT=y -# CONFIG_ESP_TASK_WDT_PANIC is not set -CONFIG_ESP_TASK_WDT_TIMEOUT_S=5 -CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y -# CONFIG_ESP_PANIC_HANDLER_IRAM is not set -# CONFIG_ESP_DEBUG_STUBS_ENABLE is not set -CONFIG_ESP_DEBUG_OCDAWARE=y -CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y -CONFIG_ESP_SYSTEM_HW_STACK_GUARD=y -CONFIG_ESP_SYSTEM_HW_PC_RECORD=y -# end of ESP System Settings - -# -# IPC (Inter-Processor Call) -# -CONFIG_ESP_IPC_TASK_STACK_SIZE=1024 -# end of IPC (Inter-Processor Call) - -# -# ESP Timer (High Resolution Timer) -# -CONFIG_ESP_TIMER_IN_IRAM=y -# CONFIG_ESP_TIMER_PROFILING is not set -CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y -CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y -CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584 -CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1 -# CONFIG_ESP_TIMER_SHOW_EXPERIMENTAL is not set -CONFIG_ESP_TIMER_TASK_AFFINITY=0x0 -CONFIG_ESP_TIMER_TASK_AFFINITY_CPU0=y -CONFIG_ESP_TIMER_ISR_AFFINITY_CPU0=y -# CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set -CONFIG_ESP_TIMER_IMPL_SYSTIMER=y -# end of ESP Timer (High Resolution Timer) - -# -# Wi-Fi -# -CONFIG_ESP_WIFI_ENABLED=y -CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=10 -CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=32 -# CONFIG_ESP_WIFI_STATIC_TX_BUFFER is not set -CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER=y -CONFIG_ESP_WIFI_TX_BUFFER_TYPE=1 -CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=32 -CONFIG_ESP_WIFI_STATIC_RX_MGMT_BUFFER=y -# CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUFFER is not set -CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUF=0 -CONFIG_ESP_WIFI_RX_MGMT_BUF_NUM_DEF=5 -# CONFIG_ESP_WIFI_CSI_ENABLED is not set -CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y -CONFIG_ESP_WIFI_TX_BA_WIN=6 -CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y -CONFIG_ESP_WIFI_RX_BA_WIN=6 -CONFIG_ESP_WIFI_NVS_ENABLED=y -CONFIG_ESP_WIFI_SOFTAP_BEACON_MAX_LEN=752 -CONFIG_ESP_WIFI_MGMT_SBUF_NUM=32 -CONFIG_ESP_WIFI_IRAM_OPT=y -CONFIG_ESP_WIFI_EXTRA_IRAM_OPT=y -CONFIG_ESP_WIFI_RX_IRAM_OPT=y -CONFIG_ESP_WIFI_ENABLE_WPA3_SAE=y -CONFIG_ESP_WIFI_ENABLE_SAE_PK=y -CONFIG_ESP_WIFI_ENABLE_SAE_H2E=y -CONFIG_ESP_WIFI_SOFTAP_SAE_SUPPORT=y -CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA=y -CONFIG_ESP_WIFI_SLP_IRAM_OPT=y -CONFIG_ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME=50 -CONFIG_ESP_WIFI_BSS_MAX_IDLE_SUPPORT=y -CONFIG_ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME=10 -CONFIG_ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME=15 -# CONFIG_ESP_WIFI_FTM_ENABLE is not set -CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y -# CONFIG_ESP_WIFI_GCMP_SUPPORT is not set -CONFIG_ESP_WIFI_GMAC_SUPPORT=y -CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y -# CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set -CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=7 -# CONFIG_ESP_WIFI_NAN_ENABLE is not set -CONFIG_ESP_WIFI_MBEDTLS_CRYPTO=y -CONFIG_ESP_WIFI_MBEDTLS_TLS_CLIENT=y -# CONFIG_ESP_WIFI_WAPI_PSK is not set -# CONFIG_ESP_WIFI_SUITE_B_192 is not set -# CONFIG_ESP_WIFI_11KV_SUPPORT is not set -# CONFIG_ESP_WIFI_MBO_SUPPORT is not set -# CONFIG_ESP_WIFI_DPP_SUPPORT is not set -# CONFIG_ESP_WIFI_11R_SUPPORT is not set -# CONFIG_ESP_WIFI_WPS_SOFTAP_REGISTRAR is not set -# CONFIG_ESP_WIFI_ENABLE_WIFI_TX_STATS is not set -# CONFIG_ESP_WIFI_ENABLE_WIFI_RX_STATS is not set -CONFIG_ESP_WIFI_TX_HETB_QUEUE_NUM=3 -# CONFIG_ESP_WIFI_ENABLE_DUMP_HESIGB is not set -# CONFIG_ESP_WIFI_ENABLE_DUMP_MU_CFO is not set -# CONFIG_ESP_WIFI_ENABLE_DUMP_CTRL_NDPA is not set -# CONFIG_ESP_WIFI_ENABLE_DUMP_CTRL_BFRP is not set - -# -# WPS Configuration Options -# -# CONFIG_ESP_WIFI_WPS_STRICT is not set -# CONFIG_ESP_WIFI_WPS_PASSPHRASE is not set -# CONFIG_ESP_WIFI_WPS_RECONNECT_ON_FAIL is not set -# end of WPS Configuration Options - -# CONFIG_ESP_WIFI_DEBUG_PRINT is not set -CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT=y -# CONFIG_ESP_WIFI_ENT_FREE_DYNAMIC_BUFFER is not set -# end of Wi-Fi - -# -# Core dump -# -# CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set -# CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set -CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y -# end of Core dump - -# -# FAT Filesystem support -# -CONFIG_FATFS_VOLUME_COUNT=2 -CONFIG_FATFS_LFN_NONE=y -# CONFIG_FATFS_LFN_HEAP is not set -# CONFIG_FATFS_LFN_STACK is not set -# CONFIG_FATFS_SECTOR_512 is not set -CONFIG_FATFS_SECTOR_4096=y -# CONFIG_FATFS_CODEPAGE_DYNAMIC is not set -CONFIG_FATFS_CODEPAGE_437=y -# CONFIG_FATFS_CODEPAGE_720 is not set -# CONFIG_FATFS_CODEPAGE_737 is not set -# CONFIG_FATFS_CODEPAGE_771 is not set -# CONFIG_FATFS_CODEPAGE_775 is not set -# CONFIG_FATFS_CODEPAGE_850 is not set -# CONFIG_FATFS_CODEPAGE_852 is not set -# CONFIG_FATFS_CODEPAGE_855 is not set -# CONFIG_FATFS_CODEPAGE_857 is not set -# CONFIG_FATFS_CODEPAGE_860 is not set -# CONFIG_FATFS_CODEPAGE_861 is not set -# CONFIG_FATFS_CODEPAGE_862 is not set -# CONFIG_FATFS_CODEPAGE_863 is not set -# CONFIG_FATFS_CODEPAGE_864 is not set -# CONFIG_FATFS_CODEPAGE_865 is not set -# CONFIG_FATFS_CODEPAGE_866 is not set -# CONFIG_FATFS_CODEPAGE_869 is not set -# CONFIG_FATFS_CODEPAGE_932 is not set -# CONFIG_FATFS_CODEPAGE_936 is not set -# CONFIG_FATFS_CODEPAGE_949 is not set -# CONFIG_FATFS_CODEPAGE_950 is not set -CONFIG_FATFS_CODEPAGE=437 -CONFIG_FATFS_FS_LOCK=0 -CONFIG_FATFS_TIMEOUT_MS=10000 -CONFIG_FATFS_PER_FILE_CACHE=y -# CONFIG_FATFS_USE_FASTSEEK is not set -CONFIG_FATFS_USE_STRFUNC_NONE=y -# CONFIG_FATFS_USE_STRFUNC_WITHOUT_CRLF_CONV is not set -# CONFIG_FATFS_USE_STRFUNC_WITH_CRLF_CONV is not set -CONFIG_FATFS_VFS_FSTAT_BLKSIZE=0 -# CONFIG_FATFS_IMMEDIATE_FSYNC is not set -# CONFIG_FATFS_USE_LABEL is not set -CONFIG_FATFS_LINK_LOCK=y -# CONFIG_FATFS_USE_DYN_BUFFERS is not set - -# -# File system free space calculation behavior -# -CONFIG_FATFS_DONT_TRUST_FREE_CLUSTER_CNT=0 -CONFIG_FATFS_DONT_TRUST_LAST_ALLOC=0 -# end of File system free space calculation behavior -# end of FAT Filesystem support - -# -# FreeRTOS -# - -# -# Kernel -# -# CONFIG_FREERTOS_SMP is not set -CONFIG_FREERTOS_UNICORE=y -CONFIG_FREERTOS_HZ=100 -CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y -# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set -# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set -CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y -CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1 -CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536 -# CONFIG_FREERTOS_USE_IDLE_HOOK is not set -# CONFIG_FREERTOS_USE_TICK_HOOK is not set -CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 -# CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set -CONFIG_FREERTOS_USE_TIMERS=y -CONFIG_FREERTOS_TIMER_SERVICE_TASK_NAME="Tmr Svc" -# CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU0 is not set -CONFIG_FREERTOS_TIMER_TASK_NO_AFFINITY=y -CONFIG_FREERTOS_TIMER_SERVICE_TASK_CORE_AFFINITY=0x7FFFFFFF -CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 -CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 -CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 -CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 -CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1 -# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set -# CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES is not set -# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set -# CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG is not set -# end of Kernel - -# -# Port -# -CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y -# CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set -CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y -# CONFIG_FREERTOS_TASK_PRE_DELETION_HOOK is not set -# CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set -CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y -CONFIG_FREERTOS_ISR_STACKSIZE=1536 -CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y -CONFIG_FREERTOS_TICK_SUPPORT_SYSTIMER=y -CONFIG_FREERTOS_CORETIMER_SYSTIMER_LVL1=y -# CONFIG_FREERTOS_CORETIMER_SYSTIMER_LVL3 is not set -CONFIG_FREERTOS_SYSTICK_USES_SYSTIMER=y -# CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set -# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set -# end of Port - -# -# Extra -# -# end of Extra - -CONFIG_FREERTOS_PORT=y -CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF -CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y -CONFIG_FREERTOS_DEBUG_OCDAWARE=y -CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y -CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y -CONFIG_FREERTOS_NUMBER_OF_CORES=1 -CONFIG_FREERTOS_IN_IRAM=y -# end of FreeRTOS - -# -# Hardware Abstraction Layer (HAL) and Low Level (LL) -# -CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y -# CONFIG_HAL_ASSERTION_DISABLE is not set -# CONFIG_HAL_ASSERTION_SILENT is not set -# CONFIG_HAL_ASSERTION_ENABLE is not set -CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2 -CONFIG_HAL_SYSTIMER_USE_ROM_IMPL=y -CONFIG_HAL_WDT_USE_ROM_IMPL=y -# end of Hardware Abstraction Layer (HAL) and Low Level (LL) - -# -# Heap memory debugging -# -CONFIG_HEAP_POISONING_DISABLED=y -# CONFIG_HEAP_POISONING_LIGHT is not set -# CONFIG_HEAP_POISONING_COMPREHENSIVE is not set -CONFIG_HEAP_TRACING_OFF=y -# CONFIG_HEAP_TRACING_STANDALONE is not set -# CONFIG_HEAP_TRACING_TOHOST is not set -# CONFIG_HEAP_USE_HOOKS is not set -# CONFIG_HEAP_TASK_TRACKING is not set -# CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set -CONFIG_HEAP_TLSF_USE_ROM_IMPL=y -# CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH is not set -# end of Heap memory debugging - -# -# IEEE 802.15.4 -# -CONFIG_IEEE802154_ENABLED=y -CONFIG_IEEE802154_RX_BUFFER_SIZE=20 -# CONFIG_IEEE802154_CCA_CARRIER is not set -CONFIG_IEEE802154_CCA_ED=y -# CONFIG_IEEE802154_CCA_CARRIER_OR_ED is not set -# CONFIG_IEEE802154_CCA_CARRIER_AND_ED is not set -CONFIG_IEEE802154_CCA_MODE=1 -CONFIG_IEEE802154_CCA_THRESHOLD=-75 -CONFIG_IEEE802154_PENDING_TABLE_SIZE=20 -# CONFIG_IEEE802154_MULTI_PAN_ENABLE is not set -CONFIG_IEEE802154_INTERFACE_NUM=1 -CONFIG_IEEE802154_TIMING_OPTIMIZATION=y -# CONFIG_IEEE802154_DEBUG is not set -# end of IEEE 802.15.4 - -# -# Log -# -CONFIG_LOG_VERSION_1=y -# CONFIG_LOG_VERSION_2 is not set -CONFIG_LOG_VERSION=1 - -# -# Log Level -# -# CONFIG_LOG_DEFAULT_LEVEL_NONE is not set -# CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set -# CONFIG_LOG_DEFAULT_LEVEL_WARN is not set -CONFIG_LOG_DEFAULT_LEVEL_INFO=y -# CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set -# CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set -CONFIG_LOG_DEFAULT_LEVEL=3 -CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y -# CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set -# CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set -CONFIG_LOG_MAXIMUM_LEVEL=3 - -# -# Level Settings -# -# CONFIG_LOG_MASTER_LEVEL is not set -CONFIG_LOG_DYNAMIC_LEVEL_CONTROL=y -# CONFIG_LOG_TAG_LEVEL_IMPL_NONE is not set -# CONFIG_LOG_TAG_LEVEL_IMPL_LINKED_LIST is not set -CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_AND_LINKED_LIST=y -# CONFIG_LOG_TAG_LEVEL_CACHE_ARRAY is not set -CONFIG_LOG_TAG_LEVEL_CACHE_BINARY_MIN_HEAP=y -CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_SIZE=31 -# end of Level Settings -# end of Log Level - -# -# Format -# -# CONFIG_LOG_COLORS is not set -CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y -# CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set -# end of Format - -# -# Settings -# -CONFIG_LOG_MODE_TEXT_EN=y -CONFIG_LOG_MODE_TEXT=y -# end of Settings - -CONFIG_LOG_IN_IRAM=y -# end of Log - -# -# LWIP -# -CONFIG_LWIP_ENABLE=y -CONFIG_LWIP_LOCAL_HOSTNAME="espressif" -CONFIG_LWIP_TCPIP_TASK_PRIO=18 -# CONFIG_LWIP_TCPIP_CORE_LOCKING is not set -# CONFIG_LWIP_CHECK_THREAD_SAFETY is not set -CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y -# CONFIG_LWIP_L2_TO_L3_COPY is not set -# CONFIG_LWIP_IRAM_OPTIMIZATION is not set -# CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION is not set -CONFIG_LWIP_TIMERS_ONDEMAND=y -CONFIG_LWIP_ND6=y -# CONFIG_LWIP_FORCE_ROUTER_FORWARDING is not set -CONFIG_LWIP_MAX_SOCKETS=10 -# CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set -# CONFIG_LWIP_SO_LINGER is not set -CONFIG_LWIP_SO_REUSE=y -CONFIG_LWIP_SO_REUSE_RXTOALL=y -# CONFIG_LWIP_SO_RCVBUF is not set -# CONFIG_LWIP_NETBUF_RECVINFO is not set -CONFIG_LWIP_IP_DEFAULT_TTL=64 -CONFIG_LWIP_IP4_FRAG=y -CONFIG_LWIP_IP6_FRAG=y -# CONFIG_LWIP_IP4_REASSEMBLY is not set -# CONFIG_LWIP_IP6_REASSEMBLY is not set -CONFIG_LWIP_IP_REASS_MAX_PBUFS=10 -# CONFIG_LWIP_IP_FORWARD is not set -# CONFIG_LWIP_STATS is not set -CONFIG_LWIP_ESP_GRATUITOUS_ARP=y -CONFIG_LWIP_GARP_TMR_INTERVAL=60 -CONFIG_LWIP_ESP_MLDV6_REPORT=y -CONFIG_LWIP_MLDV6_TMR_INTERVAL=40 -CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32 -CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y -# CONFIG_LWIP_DHCP_DOES_ACD_CHECK is not set -# CONFIG_LWIP_DHCP_DOES_NOT_CHECK_OFFERED_IP is not set -# CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set -CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y -# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set -CONFIG_LWIP_DHCP_OPTIONS_LEN=69 -CONFIG_LWIP_NUM_NETIF_CLIENT_DATA=0 -CONFIG_LWIP_DHCP_COARSE_TIMER_SECS=1 - -# -# DHCP server -# -CONFIG_LWIP_DHCPS=y -CONFIG_LWIP_DHCPS_LEASE_UNIT=60 -CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8 -CONFIG_LWIP_DHCPS_STATIC_ENTRIES=y -CONFIG_LWIP_DHCPS_ADD_DNS=y -# end of DHCP server - -# CONFIG_LWIP_AUTOIP is not set -CONFIG_LWIP_IPV4=y -CONFIG_LWIP_IPV6=y -# CONFIG_LWIP_IPV6_AUTOCONFIG is not set -CONFIG_LWIP_IPV6_NUM_ADDRESSES=3 -# CONFIG_LWIP_IPV6_FORWARD is not set -# CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set -CONFIG_LWIP_NETIF_LOOPBACK=y -CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8 - -# -# TCP -# -CONFIG_LWIP_MAX_ACTIVE_TCP=16 -CONFIG_LWIP_MAX_LISTENING_TCP=16 -CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y -CONFIG_LWIP_TCP_MAXRTX=12 -CONFIG_LWIP_TCP_SYNMAXRTX=12 -CONFIG_LWIP_TCP_MSS=1440 -CONFIG_LWIP_TCP_TMR_INTERVAL=250 -CONFIG_LWIP_TCP_MSL=60000 -CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000 -CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5760 -CONFIG_LWIP_TCP_WND_DEFAULT=5760 -CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 -CONFIG_LWIP_TCP_ACCEPTMBOX_SIZE=6 -CONFIG_LWIP_TCP_QUEUE_OOSEQ=y -CONFIG_LWIP_TCP_OOSEQ_TIMEOUT=6 -CONFIG_LWIP_TCP_OOSEQ_MAX_PBUFS=4 -# CONFIG_LWIP_TCP_SACK_OUT is not set -CONFIG_LWIP_TCP_OVERSIZE_MSS=y -# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set -# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set -CONFIG_LWIP_TCP_RTO_TIME=1500 -# end of TCP - -# -# UDP -# -CONFIG_LWIP_MAX_UDP_PCBS=16 -CONFIG_LWIP_UDP_RECVMBOX_SIZE=6 -# end of UDP - -# -# Checksums -# -# CONFIG_LWIP_CHECKSUM_CHECK_IP is not set -# CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set -CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y -# end of Checksums - -CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072 -CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y -# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set -CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF -CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 -CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 -CONFIG_LWIP_IPV6_ND6_NUM_PREFIXES=5 -CONFIG_LWIP_IPV6_ND6_NUM_ROUTERS=3 -CONFIG_LWIP_IPV6_ND6_NUM_DESTINATIONS=10 -# CONFIG_LWIP_IPV6_ND6_ROUTE_INFO_OPTION_SUPPORT is not set -# CONFIG_LWIP_PPP_SUPPORT is not set -# CONFIG_LWIP_SLIP_SUPPORT is not set - -# -# ICMP -# -CONFIG_LWIP_ICMP=y -# CONFIG_LWIP_MULTICAST_PING is not set -# CONFIG_LWIP_BROADCAST_PING is not set -# end of ICMP - -# -# LWIP RAW API -# -CONFIG_LWIP_MAX_RAW_PCBS=16 -# end of LWIP RAW API - -# -# SNTP -# -CONFIG_LWIP_SNTP_MAX_SERVERS=1 -# CONFIG_LWIP_DHCP_GET_NTP_SRV is not set -CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000 -CONFIG_LWIP_SNTP_STARTUP_DELAY=y -CONFIG_LWIP_SNTP_MAXIMUM_STARTUP_DELAY=5000 -# end of SNTP - -# -# DNS -# -CONFIG_LWIP_DNS_MAX_HOST_IP=1 -CONFIG_LWIP_DNS_MAX_SERVERS=3 -# CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set -# CONFIG_LWIP_DNS_SETSERVER_WITH_NETIF is not set -# CONFIG_LWIP_USE_ESP_GETADDRINFO is not set -# end of DNS - -CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7 -CONFIG_LWIP_ESP_LWIP_ASSERT=y - -# -# Hooks -# -# CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set -CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y -# CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set -CONFIG_LWIP_HOOK_IP6_ROUTE_NONE=y -# CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT is not set -# CONFIG_LWIP_HOOK_IP6_ROUTE_CUSTOM is not set -CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y -# CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT is not set -# CONFIG_LWIP_HOOK_ND6_GET_GW_CUSTOM is not set -CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_NONE=y -# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_DEFAULT is not set -# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_CUSTOM is not set -CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_NONE=y -# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_DEFAULT is not set -# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_CUSTOM is not set -CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y -# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set -# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set -CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_NONE=y -# CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_CUSTOM is not set -# CONFIG_LWIP_HOOK_IP6_INPUT_NONE is not set -CONFIG_LWIP_HOOK_IP6_INPUT_DEFAULT=y -# CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM is not set -# end of Hooks - -# CONFIG_LWIP_DEBUG is not set -# end of LWIP - -# -# mbedTLS -# -CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y -# CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set -# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set -CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y -CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384 -CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096 -# CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set -# CONFIG_MBEDTLS_DEBUG is not set - -# -# mbedTLS v3.x related -# -# CONFIG_MBEDTLS_SSL_PROTO_TLS1_3 is not set -# CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH is not set -# CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set -# CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set -CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y -# CONFIG_MBEDTLS_SSL_KEYING_MATERIAL_EXPORT is not set -CONFIG_MBEDTLS_PKCS7_C=y -# end of mbedTLS v3.x related - -# -# Certificate Bundle -# -CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y -CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y -# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set -# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set -# CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set -# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEPRECATED_LIST is not set -CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS=200 -# end of Certificate Bundle - -# CONFIG_MBEDTLS_ECP_RESTARTABLE is not set -CONFIG_MBEDTLS_CMAC_C=y -CONFIG_MBEDTLS_HARDWARE_AES=y -CONFIG_MBEDTLS_AES_USE_INTERRUPT=y -CONFIG_MBEDTLS_AES_INTERRUPT_LEVEL=0 -# CONFIG_MBEDTLS_AES_USE_PSEUDO_ROUND_FUNC is not set -CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER=y -CONFIG_MBEDTLS_HARDWARE_MPI=y -CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI=y -CONFIG_MBEDTLS_MPI_USE_INTERRUPT=y -CONFIG_MBEDTLS_MPI_INTERRUPT_LEVEL=0 -CONFIG_MBEDTLS_HARDWARE_SHA=y -CONFIG_MBEDTLS_HARDWARE_ECC=y -CONFIG_MBEDTLS_ECC_OTHER_CURVES_SOFT_FALLBACK=y -CONFIG_MBEDTLS_ROM_MD5=y -# CONFIG_MBEDTLS_HARDWARE_ECDSA_SIGN is not set -CONFIG_MBEDTLS_HARDWARE_ECDSA_VERIFY=y -# CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set -# CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set -CONFIG_MBEDTLS_HAVE_TIME=y -# CONFIG_MBEDTLS_PLATFORM_TIME_ALT is not set -# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set -CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y -CONFIG_MBEDTLS_SHA1_C=y -CONFIG_MBEDTLS_SHA512_C=y -# CONFIG_MBEDTLS_SHA3_C is not set -CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y -# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set -# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set -# CONFIG_MBEDTLS_TLS_DISABLED is not set -CONFIG_MBEDTLS_TLS_SERVER=y -CONFIG_MBEDTLS_TLS_CLIENT=y -CONFIG_MBEDTLS_TLS_ENABLED=y - -# -# TLS Key Exchange Methods -# -# CONFIG_MBEDTLS_PSK_MODES is not set -CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y -# end of TLS Key Exchange Methods - -CONFIG_MBEDTLS_SSL_RENEGOTIATION=y -CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y -# CONFIG_MBEDTLS_SSL_PROTO_GMTSSL1_1 is not set -# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set -CONFIG_MBEDTLS_SSL_ALPN=y -CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y -CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y - -# -# Symmetric Ciphers -# -CONFIG_MBEDTLS_AES_C=y -# CONFIG_MBEDTLS_CAMELLIA_C is not set -# CONFIG_MBEDTLS_DES_C is not set -# CONFIG_MBEDTLS_BLOWFISH_C is not set -# CONFIG_MBEDTLS_XTEA_C is not set -CONFIG_MBEDTLS_CCM_C=y -CONFIG_MBEDTLS_GCM_C=y -# CONFIG_MBEDTLS_NIST_KW_C is not set -# end of Symmetric Ciphers - -# CONFIG_MBEDTLS_RIPEMD160_C is not set - -# -# Certificates -# -CONFIG_MBEDTLS_PEM_PARSE_C=y -CONFIG_MBEDTLS_PEM_WRITE_C=y -CONFIG_MBEDTLS_X509_CRL_PARSE_C=y -CONFIG_MBEDTLS_X509_CSR_PARSE_C=y -# end of Certificates - -CONFIG_MBEDTLS_ECP_C=y -CONFIG_MBEDTLS_PK_PARSE_EC_EXTENDED=y -CONFIG_MBEDTLS_PK_PARSE_EC_COMPRESSED=y -# CONFIG_MBEDTLS_DHM_C is not set -CONFIG_MBEDTLS_ECDH_C=y -CONFIG_MBEDTLS_ECDSA_C=y -# CONFIG_MBEDTLS_ECJPAKE_C is not set -CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y -CONFIG_MBEDTLS_ECP_NIST_OPTIM=y -# CONFIG_MBEDTLS_ECP_FIXED_POINT_OPTIM is not set -# CONFIG_MBEDTLS_POLY1305_C is not set -# CONFIG_MBEDTLS_CHACHA20_C is not set -# CONFIG_MBEDTLS_HKDF_C is not set -# CONFIG_MBEDTLS_THREADING_C is not set -CONFIG_MBEDTLS_ERROR_STRINGS=y -CONFIG_MBEDTLS_FS_IO=y -# CONFIG_MBEDTLS_ALLOW_WEAK_CERTIFICATE_VERIFICATION is not set -# end of mbedTLS - -# -# ESP-MQTT Configurations -# -CONFIG_MQTT_PROTOCOL_311=y -# CONFIG_MQTT_PROTOCOL_5 is not set -CONFIG_MQTT_TRANSPORT_SSL=y -CONFIG_MQTT_TRANSPORT_WEBSOCKET=y -CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y -# CONFIG_MQTT_MSG_ID_INCREMENTAL is not set -# CONFIG_MQTT_SKIP_PUBLISH_IF_DISCONNECTED is not set -# CONFIG_MQTT_REPORT_DELETED_MESSAGES is not set -# CONFIG_MQTT_USE_CUSTOM_CONFIG is not set -# CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set -# CONFIG_MQTT_CUSTOM_OUTBOX is not set -# end of ESP-MQTT Configurations - -# -# LibC -# -CONFIG_LIBC_NEWLIB=y -# CONFIG_LIBC_PICOLIBC is not set -CONFIG_LIBC_MISC_IN_IRAM=y -CONFIG_LIBC_LOCKS_PLACE_IN_IRAM=y -CONFIG_LIBC_STDOUT_LINE_ENDING_CRLF=y -# CONFIG_LIBC_STDOUT_LINE_ENDING_LF is not set -# CONFIG_LIBC_STDOUT_LINE_ENDING_CR is not set -# CONFIG_LIBC_STDIN_LINE_ENDING_CRLF is not set -# CONFIG_LIBC_STDIN_LINE_ENDING_LF is not set -CONFIG_LIBC_STDIN_LINE_ENDING_CR=y -# CONFIG_LIBC_NEWLIB_NANO_FORMAT is not set -CONFIG_LIBC_TIME_SYSCALL_USE_RTC_HRT=y -# CONFIG_LIBC_TIME_SYSCALL_USE_RTC is not set -# CONFIG_LIBC_TIME_SYSCALL_USE_HRT is not set -# CONFIG_LIBC_TIME_SYSCALL_USE_NONE is not set -CONFIG_LIBC_OPTIMIZED_MISALIGNED_ACCESS=y -CONFIG_LIBC_ASSERT_BUFFER_SIZE=200 -# end of LibC - -# -# NVS -# -# CONFIG_NVS_ENCRYPTION is not set -# CONFIG_NVS_ASSERT_ERROR_CHECK is not set -# CONFIG_NVS_LEGACY_DUP_KEYS_COMPATIBILITY is not set -# end of NVS - -# -# OpenThread -# -# CONFIG_OPENTHREAD_ENABLED is not set - -# -# OpenThread Spinel -# -# CONFIG_OPENTHREAD_SPINEL_ONLY is not set -# end of OpenThread Spinel - -# CONFIG_OPENTHREAD_DEBUG is not set -# end of OpenThread - -# -# Protocomm -# -CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_0=y -CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1=y -CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2=y -CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_PATCH_VERSION=y -# end of Protocomm - -# -# PThreads -# -CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5 -CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 -CONFIG_PTHREAD_STACK_MIN=768 -CONFIG_PTHREAD_TASK_CORE_DEFAULT=-1 -CONFIG_PTHREAD_TASK_NAME_DEFAULT="pthread" -# end of PThreads - -# -# MMU Config -# -CONFIG_MMU_PAGE_SIZE_64KB=y -CONFIG_MMU_PAGE_MODE="64KB" -CONFIG_MMU_PAGE_SIZE=0x10000 -# end of MMU Config - -# -# Main Flash configuration -# - -# -# SPI Flash behavior when brownout -# -CONFIG_SPI_FLASH_BROWNOUT_RESET_XMC=y -CONFIG_SPI_FLASH_BROWNOUT_RESET=y -# end of SPI Flash behavior when brownout - -# -# Optional and Experimental Features (READ DOCS FIRST) -# - -# -# Features here require specific hardware (READ DOCS FIRST!) -# -# CONFIG_SPI_FLASH_HPM_ENA is not set -CONFIG_SPI_FLASH_HPM_AUTO=y -# CONFIG_SPI_FLASH_HPM_DIS is not set -# CONFIG_SPI_FLASH_AUTO_SUSPEND is not set -CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50 -CONFIG_SPI_FLASH_SUSPEND_TRS_VAL_US=50 -# CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND is not set -# CONFIG_SPI_FLASH_FORCE_ENABLE_C6_H2_SUSPEND is not set -CONFIG_SPI_FLASH_PLACE_FUNCTIONS_IN_IRAM=y -# end of Optional and Experimental Features (READ DOCS FIRST) -# end of Main Flash configuration - -# -# SPI Flash driver -# -# CONFIG_SPI_FLASH_VERIFY_WRITE is not set -# CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set -CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y -# CONFIG_SPI_FLASH_ROM_IMPL is not set -CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y -# CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set -# CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set -# CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set -CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y -CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20 -CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1 -CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192 -# CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set -# CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set -# CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST is not set - -# -# Auto-detect flash chips -# -CONFIG_SPI_FLASH_VENDOR_XMC_SUPPORT_ENABLED=y -CONFIG_SPI_FLASH_VENDOR_GD_SUPPORT_ENABLED=y -CONFIG_SPI_FLASH_VENDOR_BOYA_SUPPORT_ENABLED=y -# CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP is not set -# CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP is not set -CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y -# CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP is not set -CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=y -# CONFIG_SPI_FLASH_SUPPORT_TH_CHIP is not set -# end of Auto-detect flash chips - -CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y -CONFIG_SPI_FLASH_FREQ_LIMIT_C5_240MHZ=y -# end of SPI Flash driver - -# -# SPIFFS Configuration -# -CONFIG_SPIFFS_MAX_PARTITIONS=3 - -# -# SPIFFS Cache Configuration -# -CONFIG_SPIFFS_CACHE=y -CONFIG_SPIFFS_CACHE_WR=y -# CONFIG_SPIFFS_CACHE_STATS is not set -# end of SPIFFS Cache Configuration - -CONFIG_SPIFFS_PAGE_CHECK=y -CONFIG_SPIFFS_GC_MAX_RUNS=10 -# CONFIG_SPIFFS_GC_STATS is not set -CONFIG_SPIFFS_PAGE_SIZE=256 -CONFIG_SPIFFS_OBJ_NAME_LEN=32 -# CONFIG_SPIFFS_FOLLOW_SYMLINKS is not set -CONFIG_SPIFFS_USE_MAGIC=y -CONFIG_SPIFFS_USE_MAGIC_LENGTH=y -CONFIG_SPIFFS_META_LENGTH=4 -CONFIG_SPIFFS_USE_MTIME=y - -# -# Debug Configuration -# -# CONFIG_SPIFFS_DBG is not set -# CONFIG_SPIFFS_API_DBG is not set -# CONFIG_SPIFFS_GC_DBG is not set -# CONFIG_SPIFFS_CACHE_DBG is not set -# CONFIG_SPIFFS_CHECK_DBG is not set -# CONFIG_SPIFFS_TEST_VISUALISATION is not set -# end of Debug Configuration -# end of SPIFFS Configuration - -# -# TCP Transport -# - -# -# Websocket -# -CONFIG_WS_TRANSPORT=y -CONFIG_WS_BUFFER_SIZE=1024 -# CONFIG_WS_DYNAMIC_BUFFER is not set -# end of Websocket -# end of TCP Transport - -# -# Ultra Low Power (ULP) Co-processor -# -# CONFIG_ULP_COPROC_ENABLED is not set - -# -# ULP Debugging Options -# -# end of ULP Debugging Options -# end of Ultra Low Power (ULP) Co-processor - -# -# Unity unit testing library -# -CONFIG_UNITY_ENABLE_FLOAT=y -CONFIG_UNITY_ENABLE_DOUBLE=y -# CONFIG_UNITY_ENABLE_64BIT is not set -# CONFIG_UNITY_ENABLE_COLOR is not set -CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y -# CONFIG_UNITY_ENABLE_FIXTURE is not set -# CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set -# CONFIG_UNITY_TEST_ORDER_BY_FILE_PATH_AND_LINE is not set -# end of Unity unit testing library - -# -# Virtual file system -# -CONFIG_VFS_SUPPORT_IO=y -CONFIG_VFS_SUPPORT_DIR=y -CONFIG_VFS_SUPPORT_SELECT=y -CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y -# CONFIG_VFS_SELECT_IN_RAM is not set -CONFIG_VFS_SUPPORT_TERMIOS=y -CONFIG_VFS_MAX_COUNT=8 - -# -# Host File System I/O (Semihosting) -# -CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1 -# end of Host File System I/O (Semihosting) - -CONFIG_VFS_INITIALIZE_DEV_NULL=y -# end of Virtual file system - -# -# Wear Levelling -# -# CONFIG_WL_SECTOR_SIZE_512 is not set -CONFIG_WL_SECTOR_SIZE_4096=y -CONFIG_WL_SECTOR_SIZE=4096 -# end of Wear Levelling - -# -# Wi-Fi Provisioning Manager -# -CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16 -CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30 -CONFIG_WIFI_PROV_STA_ALL_CHANNEL_SCAN=y -# CONFIG_WIFI_PROV_STA_FAST_SCAN is not set -# end of Wi-Fi Provisioning Manager -# end of Component config - -# CONFIG_IDF_EXPERIMENTAL_FEATURES is not set - -# Deprecated options for backward compatibility -# CONFIG_APP_BUILD_TYPE_ELF_RAM is not set -# CONFIG_NO_BLOBS is not set -# CONFIG_APP_ROLLBACK_ENABLE is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set -CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y -# CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set -# CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set -CONFIG_LOG_BOOTLOADER_LEVEL=3 -# CONFIG_FLASH_ENCRYPTION_ENABLED is not set -# CONFIG_FLASHMODE_QIO is not set -# CONFIG_FLASHMODE_QOUT is not set -CONFIG_FLASHMODE_DIO=y -# CONFIG_FLASHMODE_DOUT is not set -CONFIG_MONITOR_BAUD=115200 -CONFIG_OPTIMIZATION_LEVEL_DEBUG=y -CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y -CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y -# CONFIG_OPTIMIZATION_LEVEL_RELEASE is not set -# CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set -CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y -# CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set -# CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set -CONFIG_OPTIMIZATION_ASSERTION_LEVEL=2 -# CONFIG_CXX_EXCEPTIONS is not set -CONFIG_STACK_CHECK_NONE=y -# CONFIG_STACK_CHECK_NORM is not set -# CONFIG_STACK_CHECK_STRONG is not set -# CONFIG_STACK_CHECK_ALL is not set -# CONFIG_WARN_WRITE_STRINGS is not set -# CONFIG_ESP32_APPTRACE_DEST_TRAX is not set -CONFIG_ESP32_APPTRACE_DEST_NONE=y -CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y -CONFIG_SW_COEXIST_ENABLE=y -CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE=y -CONFIG_ESP_WIFI_SW_COEXIST_ENABLE=y -# CONFIG_EXTERNAL_COEX_ENABLE is not set -# CONFIG_ESP_WIFI_EXTERNAL_COEXIST_ENABLE is not set -# CONFIG_ANA_CMPR_ISR_IRAM_SAFE is not set -# CONFIG_GPTIMER_ISR_IRAM_SAFE is not set -# CONFIG_MCPWM_ISR_IRAM_SAFE is not set -# CONFIG_EVENT_LOOP_PROFILING is not set -CONFIG_POST_EVENTS_FROM_ISR=y -CONFIG_POST_EVENTS_FROM_IRAM_ISR=y -CONFIG_GDBSTUB_SUPPORT_TASKS=y -CONFIG_GDBSTUB_MAX_TASKS=32 -# CONFIG_OTA_ALLOW_HTTP is not set -# CONFIG_ESP_SYSTEM_PD_FLASH is not set -CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y -CONFIG_BROWNOUT_DET=y -CONFIG_BROWNOUT_DET_LVL_SEL_7=y -# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set -# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set -CONFIG_BROWNOUT_DET_LVL=7 -CONFIG_ESP_SYSTEM_BROWNOUT_INTR=y -CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y -# CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION is not set -CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20 -CONFIG_ESP32_PHY_MAX_TX_POWER=20 -# CONFIG_REDUCE_PHY_TX_POWER is not set -# CONFIG_ESP32_REDUCE_PHY_TX_POWER is not set -CONFIG_ESP_SYSTEM_PM_POWER_DOWN_CPU=y -CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32 -CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304 -CONFIG_MAIN_TASK_STACK_SIZE=3584 -CONFIG_CONSOLE_UART_DEFAULT=y -# CONFIG_CONSOLE_UART_CUSTOM is not set -# CONFIG_CONSOLE_UART_NONE is not set -# CONFIG_ESP_CONSOLE_UART_NONE is not set -CONFIG_CONSOLE_UART=y -CONFIG_CONSOLE_UART_NUM=0 -CONFIG_CONSOLE_UART_BAUDRATE=115200 -CONFIG_INT_WDT=y -CONFIG_INT_WDT_TIMEOUT_MS=300 -CONFIG_TASK_WDT=y -CONFIG_ESP_TASK_WDT=y -# CONFIG_TASK_WDT_PANIC is not set -CONFIG_TASK_WDT_TIMEOUT_S=5 -CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y -# CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set -CONFIG_IPC_TASK_STACK_SIZE=1024 -CONFIG_TIMER_TASK_STACK_SIZE=3584 -CONFIG_ESP32_WIFI_ENABLED=y -CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10 -CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32 -# CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set -CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y -CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1 -CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32 -# CONFIG_ESP32_WIFI_CSI_ENABLED is not set -CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y -CONFIG_ESP32_WIFI_TX_BA_WIN=6 -CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y -CONFIG_ESP32_WIFI_RX_BA_WIN=6 -CONFIG_ESP32_WIFI_NVS_ENABLED=y -CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752 -CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32 -CONFIG_ESP32_WIFI_IRAM_OPT=y -CONFIG_ESP32_WIFI_RX_IRAM_OPT=y -CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y -CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=y -CONFIG_WPA_MBEDTLS_CRYPTO=y -CONFIG_WPA_MBEDTLS_TLS_CLIENT=y -# CONFIG_WPA_WAPI_PSK is not set -# CONFIG_WPA_SUITE_B_192 is not set -# CONFIG_WPA_11KV_SUPPORT is not set -# CONFIG_WPA_MBO_SUPPORT is not set -# CONFIG_WPA_DPP_SUPPORT is not set -# CONFIG_WPA_11R_SUPPORT is not set -# CONFIG_WPA_WPS_SOFTAP_REGISTRAR is not set -# CONFIG_WPA_WPS_STRICT is not set -# CONFIG_WPA_DEBUG_PRINT is not set -# CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set -# CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set -CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y -CONFIG_TIMER_TASK_PRIORITY=1 -CONFIG_TIMER_TASK_STACK_DEPTH=2048 -CONFIG_TIMER_QUEUE_LENGTH=10 -# CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set -# CONFIG_HAL_ASSERTION_SILIENT is not set -# CONFIG_L2_TO_L3_COPY is not set -CONFIG_ESP_GRATUITOUS_ARP=y -CONFIG_GARP_TMR_INTERVAL=60 -CONFIG_TCPIP_RECVMBOX_SIZE=32 -CONFIG_TCP_MAXRTX=12 -CONFIG_TCP_SYNMAXRTX=12 -CONFIG_TCP_MSS=1440 -CONFIG_TCP_MSL=60000 -CONFIG_TCP_SND_BUF_DEFAULT=5760 -CONFIG_TCP_WND_DEFAULT=5760 -CONFIG_TCP_RECVMBOX_SIZE=6 -CONFIG_TCP_QUEUE_OOSEQ=y -CONFIG_TCP_OVERSIZE_MSS=y -# CONFIG_TCP_OVERSIZE_QUARTER_MSS is not set -# CONFIG_TCP_OVERSIZE_DISABLE is not set -CONFIG_UDP_RECVMBOX_SIZE=6 -CONFIG_TCPIP_TASK_STACK_SIZE=3072 -CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y -# CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set -CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF -# CONFIG_PPP_SUPPORT is not set -CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y -# CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set -# CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set -# CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set -# CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set -CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y -# CONFIG_NEWLIB_NANO_FORMAT is not set -CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y -# CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC is not set -# CONFIG_NEWLIB_TIME_SYSCALL_USE_HRT is not set -# CONFIG_NEWLIB_TIME_SYSCALL_USE_NONE is not set -CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5 -CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 -CONFIG_ESP32_PTHREAD_STACK_MIN=768 -CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT=-1 -CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread" -CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y -# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS is not set -# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set -CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y -CONFIG_SUPPORT_TERMIOS=y -CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1 -# End of deprecated options