ITS_Container.asn 19.7 KB
Newer Older
tepelmann's avatar
tepelmann committed
ITS-Container {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2)
DEFINITIONS AUTOMATIC TAGS ::=
tepelmann's avatar
tepelmann committed

BEGIN

filatov's avatar
filatov committed
IMPORTS;

tepelmann's avatar
tepelmann committed
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)
tepelmann's avatar
tepelmann committed

ReferencePosition ::= SEQUENCE {
    latitude Latitude,
    longitude Longitude,
    positionConfidenceEllipse PosConfidenceEllipse ,
    altitude Altitude
tepelmann's avatar
tepelmann committed
}

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)
tepelmann's avatar
tepelmann committed

PosConfidenceEllipse ::= SEQUENCE {
    semiMajorConfidence SemiAxisLength,
    semiMinorConfidence SemiAxisLength,
    semiMajorOrientation HeadingValue
tepelmann's avatar
tepelmann committed

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))

tepelmann's avatar
tepelmann committed
AccelerationControl ::= BIT STRING {
    brakePedalEngaged (0),
    gasPedalEngaged (1),
    emergencyBrakeEngaged (2),
    collisionWarningEngaged (3),
    accEngaged (4),
    cruiseControlEngaged (5),
    speedLimiterEngaged (6)
SemiAxisLength ::= INTEGER{oneCentimeter(1), outOfRange(4094), unavailable(4095)} (0..4095)
CauseCode ::= SEQUENCE {
    causeCode CauseCodeType,
    subCauseCode SubCauseCodeType,
    ...
    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)
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)
tepelmann's avatar
tepelmann committed

Curvature ::= SEQUENCE {
    curvatureValue CurvatureValue,
    curvatureConfidence CurvatureConfidence
tepelmann's avatar
tepelmann committed
}
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), ...}
    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), hardShoulder(0), outermostDrivingLane(1), secondLaneFromOutside(2)} (-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)
    speedValue SpeedValue,
    speedConfidence SpeedConfidence
DriveDirection ::= ENUMERATED {forward (0), backward (1), unavailable (2)}
tepelmann's avatar
tepelmann committed

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)
tepelmann's avatar
tepelmann committed

ExteriorLights ::= BIT STRING {
    lowBeamHeadlightsOn (0),
    highBeamHeadlightsOn (1),
    leftTurnSignalOn (2),
    rightTurnSignalOn (3),
    daytimeRunningLightsOn (4),
    reverseLightOn (5),
    fogLightOn (6),
    parkingLightsOn (7)
tepelmann's avatar
tepelmann committed
} (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)
tepelmann's avatar
tepelmann committed
}

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))
tepelmann's avatar
tepelmann committed

LightBarSirenInUse ::= BIT STRING {
    lightBarActivated (0), 
    sirenActivated (1)
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)
tepelmann's avatar
tepelmann committed

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), ...}
tepelmann's avatar
tepelmann committed

VehicleIdentification ::= SEQUENCE {
    wMInumber WMInumber OPTIONAL,
    vDS VDS OPTIONAL,
    ...
tepelmann's avatar
tepelmann committed
}
tepelmann's avatar
tepelmann committed
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))
tepelmann's avatar
tepelmann committed

VehicleLength ::= SEQUENCE {
    vehicleLengthValue VehicleLengthValue,
    vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication
tepelmann's avatar
tepelmann committed
}
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)}
    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)
    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