1-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2-- ISO TS 19321 3-- 4-- This ASN.1 was generateds: 30.08.2016 5-- 6-- Due to typos in the published version, 7-- small ASN.1 syntax adaptations have been executed 8-- 9-- Published version location: 10-- http://standards.iso.org/iso/ts/19321 11-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 12 13IVI {iso (1) standard (0) ivi (19321) version1 (1)} 14 15DEFINITIONS AUTOMATIC TAGS ::= 16BEGIN 17IMPORTS 18ItsPduHeader, Altitude, DangerousGoodsBasic , DeltaLatitude, DeltaLongitude, DeltaReferencePosition, Heading, HeadingValue, Latitude, LanePosition, Longitude, ReferencePosition, RoadType, SpecialTransportType, Speed, StationType, TimestampIts, VehicleRole 19FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) } 20 21AxleWeightLimits, DieselEmissionValues, ExhaustEmissionValues, EngineCharacteristics, EnvironmentalCharacteristics, PassengerCapacity , Provider, SoundLevel, VehicleDimensions, VehicleWeightLimits 22FROM EfcDsrcApplication {iso(1) standard(0) 14906 application(0) version5(5)} 23 24EuVehicleCategoryCode, Iso3833VehicleType 25FROM ElectronicRegistrationIdentificationVehicleDataModule {iso(1) standard(0) iso24534 (24534) vehicleData (1) version1 (1)} 26 27 28VarLengthNumber 29FROM CITSapplMgmtIDs {iso(1) standard(0) cits-applMgmt (17419) ids (1) version1 (1)} 30 31; 32-- End of IMPORTS 33 34 35--Definition of IVI message to be send over the air is outside of the scope and given for information only: 36 37IVI::= SEQUENCE { 38 header ItsPduHeader, 39 ivi IviStructure 40} 41 42--Definition of IVI Structure 43 44 45 46IviStructure::= SEQUENCE{ 47 mandatory IVIManagementContainer, 48 optional SEQUENCE (SIZE (1..8,...)) OF IviContainer OPTIONAL 49 } 50 51--Definition of Containers 52 53IviContainer::= CHOICE { 54 glc GeographicLocationContainer, 55 giv GeneralIviContainer, 56 rcc RoadConfigurationContainer, 57 tc TextContainer, 58 lac LayoutContainer, 59 ... -- extension for future containers 60 } 61 62-- Prefix IVI added due to naming collision with data element ManagementContainer of Module DENM-PDU-Descriptions 63IVIManagementContainer::= SEQUENCE { 64 serviceProviderId Provider, 65 iviIdentificationNumber IviIdentificationNumber, 66 timeStamp TimestampIts OPTIONAL, 67 validFrom TimestampIts OPTIONAL, 68 validTo TimestampIts OPTIONAL, 69 connectedIviStructures SEQUENCE (SIZE(1..8)) OF IviIdentificationNumber OPTIONAL, 70 iviStatus IviStatus, 71 ... 72 } 73 74GeographicLocationContainer::= SEQUENCE { 75 referencePosition ReferencePosition, 76 referencePositionTime TimestampIts OPTIONAL, 77 referencePositionHeading Heading OPTIONAL, 78 referencePositionSpeed Speed OPTIONAL, 79 parts SEQUENCE (SIZE (1..16,...)) OF GlcPart, 80 ... 81 } 82 83GlcPart::= SEQUENCE { 84 zoneId Zid, 85 laneNumber LanePosition OPTIONAL, 86 zoneExtension INTEGER (0..255) OPTIONAL, 87 zoneHeading HeadingValue OPTIONAL, 88 zone Zone OPTIONAL, 89 ... 90 } 91 92GeneralIviContainer::= SEQUENCE (SIZE (1..16,...)) OF GicPart 93 94GicPart::= SEQUENCE { 95 detectionZoneIds SEQUENCE (SIZE (1..8,...)) OF Zid OPTIONAL, 96 its-Rrid VarLengthNumber OPTIONAL, 97 relevanceZoneIds SEQUENCE (SIZE (1..8,...)) OF Zid OPTIONAL, 98 direction Direction OPTIONAL, 99 driverAwarenessZoneIds SEQUENCE (SIZE (1..8,...)) OF Zid OPTIONAL, 100 minimumAwarenessTime INTEGER (0..255) OPTIONAL, 101 applicableLanes SEQUENCE (SIZE (1..8,...)) OF LanePosition OPTIONAL, 102 iviType IviType, 103 iviPurpose IviPurpose OPTIONAL, 104 laneStatus LaneStatus OPTIONAL, 105 vehicleCharacteristics SEQUENCE (SIZE (1..8, ...)) OF CompleteVehicleCharacteristics OPTIONAL, 106 driverCharacteristics DriverCharacteristics OPTIONAL, 107 layoutId INTEGER(1..4,...) OPTIONAL, 108 preStoredlayoutId INTEGER(1..64,...) OPTIONAL, 109 roadSignCodes SEQUENCE (SIZE (1..4,...)) OF RSCode, 110 extraText SEQUENCE (SIZE (1..4,...)) OF Text (WITH COMPONENTS {layoutComponentId, language, textContent (SIZE(1..32))}) OPTIONAL, 111 ... 112 } 113 114RoadConfigurationContainer::= SEQUENCE (SIZE (1..16,...)) OF RccPart 115 116RccPart::= SEQUENCE{ 117 zoneIds SEQUENCE (SIZE (1..8,...)) OF Zid, 118 roadType RoadType, 119 laneConfiguration SEQUENCE (SIZE (1..16,...)) OF LaneInformation, 120 ... 121 } 122 123TextContainer::= SEQUENCE (SIZE (1..16,...)) OF TcPart 124 125TcPart::= SEQUENCE { 126 detectionZoneIds SEQUENCE (SIZE (1..8,...)) OF Zid OPTIONAL, 127 relevanceZoneIds SEQUENCE (SIZE (1..8,...)) OF Zid, 128 direction Direction OPTIONAL, 129 driverAwarenessZoneIds SEQUENCE (SIZE (1..8,...)) OF Zid OPTIONAL, 130 minimumAwarenessTime INTEGER (0..255) OPTIONAL, 131 applicableLanes SEQUENCE (SIZE (1..8,...)) OF LanePosition OPTIONAL, 132 layoutId INTEGER(1..4,...) OPTIONAL, 133 preStoredlayoutId INTEGER(1..64,...) OPTIONAL, 134 text SEQUENCE (SIZE (1..4,...)) OF Text OPTIONAL, 135 data OCTET STRING, 136 ... 137 } 138 139LayoutContainer::=SEQUENCE{ 140 layoutId INTEGER(1..4,...), 141 height INTEGER(10..73) OPTIONAL, 142 width INTEGER(10..265) OPTIONAL, 143 layoutComponents SEQUENCE SIZE (1..4,...) OF LayoutComponent, 144 ... 145 } 146 147-- Definition of Data Frames & Elements 148 149AbsolutePosition::= SEQUENCE{ 150 latitude Latitude, 151 longitude Longitude 152 } 153 154AbsolutePositionWAltitude::= SEQUENCE{ 155 latitude Latitude, 156 longitude Longitude, 157 altitude Altitude 158 } 159 160AnyCatalogue::=SEQUENCE{ 161 owner Provider, 162 version INTEGER(0..255), 163 pictogramCode INTEGER(0..65535), 164 value INTEGER (0..65535) OPTIONAL, 165 unit RSCUnit OPTIONAL, 166 attributes ISO14823Attributes OPTIONAL 167 } 168 169ComparisonOperator ::= INTEGER { 170 greaterThan (0), 171 greaterThanOrEqualTo (1), 172 lessThan (2), 173 lessThanOrEqualTo (3) 174} (0..3) 175 176CompleteVehicleCharacteristics::= SEQUENCE{ 177 tractor TractorCharacteristics OPTIONAL, 178 trailer SEQUENCE (SIZE (1..3)) OF TrailerCharacteristics OPTIONAL, 179 train TrainCharacteristics OPTIONAL 180 } 181 182ComputedSegment::= SEQUENCE { 183 zoneId Zid, 184 laneNumber LanePosition, 185 laneWidth IVILaneWidth, 186 offsetDistance INTEGER (-32768..32767) OPTIONAL, 187 offsetPosition DeltaReferencePosition OPTIONAL 188 } 189 190DeltaPosition::=SEQUENCE{ 191 deltaLatitude DeltaLatitude, 192 deltaLongitude DeltaLongitude 193 } 194 195Direction::= INTEGER{ 196 sameDirection (0), 197 oppositeDirection (1), 198 bothDirections (2), 199 valueNotUsed (3) 200 } (0..3) 201 202Distance::= SEQUENCE { 203 value INTEGER(1..16384), 204 unit RSCUnit (2..4|6..8) 205 } 206 207DistanceOrDuration::= SEQUENCE { 208 value INTEGER(1..16384), 209 unit RSCUnit (2..9) 210 } 211 212DriverCharacteristics::= INTEGER{ 213 unexperiencedDrivers (0), 214 experiencedDrivers (1), 215 rfu1 (2), 216 rfu2 (3) 217 } (0..3) 218 219GoodsType::= INTEGER { 220 ammunition (0), 221 chemicals (1), 222 empty (2), 223 fuel (3), 224 glass (4), 225 dangerous (5), 226 liquid (6), 227 liveStock (7), 228 dangerousForPeople (8), 229 dangerousForTheEnvironment (9), 230 dangerousForWater (10), 231 perishableProducts (11), 232 pharmaceutical (12), 233 vehicles (13) 234 -- other values reserved for future use 235 } (0..15,...) 236 237 238ISO14823Attributes::= SEQUENCE (SIZE(1..8,...)) OF CHOICE{ 239 dtm DTM, -- Date/Time/Period 240 edt EDT, -- Exemption status of Date/Time/Period 241 dfl DFL, -- Directional Flow of Lane 242 ved VED, -- Vehicle Dimensions 243 spe SPE, -- Speed 244 roi ROI, -- Rate of Incline 245 dbv DBV, -- Distance Between Vehicles 246 ddd DDD -- Destination/Direction/Distance 247 } 248 249ISO14823Code ::= SEQUENCE{ 250 pictogramCode SEQUENCE { 251 countryCode OCTET STRING (SIZE (2)) OPTIONAL, 252 serviceCategoryCode CHOICE { 253 trafficSignPictogram ENUMERATED {dangerWarning, regulatory, informative,...}, 254 publicFacilitiesPictogram ENUMERATED {publicFacilities, ...}, 255 ambientOrRoadConditionPictogram ENUMERATED {ambientCondition, roadCondition,...}, 256 ...}, 257 pictogramCategoryCode SEQUENCE { 258 nature INTEGER (1..9), 259 serialNumber INTEGER (0..99) 260 }}, 261 attributes ISO14823Attributes OPTIONAL 262 } 263 264IviIdentificationNumber::= INTEGER(1..32767,...) 265 266IviPurpose::= INTEGER { 267 safety (0), 268 environmental (1), 269 trafficOptimisation (2) 270 } (0..3) 271 272IviStatus::= INTEGER { 273 new (0), 274 update (1), 275 cancellation (2), 276 negation (3) 277 -- other values reserved for future use 278 }(0..7) 279 280IviType::= INTEGER { 281 immediateDangerWarningMessages (0), 282 regulatoryMessages (1), 283 trafficRelatedInformationMessages (2), 284 pollutionMessages (3), 285 notTrafficRelatedInformationMessages (4) 286 -- other values reserved for future use 287 } (0..7) 288 289LaneInformation::= SEQUENCE{ 290 laneNumber LanePosition, 291 direction Direction, 292 validity DTM OPTIONAL, 293 laneType LaneType, 294 laneTypeQualifier CompleteVehicleCharacteristics OPTIONAL, 295 laneStatus LaneStatus, 296 laneWidth IVILaneWidth OPTIONAL, 297 ... 298 } 299 300LaneStatus::= INTEGER { 301 open (0), 302 closed (1), 303 mergeR (2), 304 mergeL (3), 305 mergeLR (4), 306 provisionallyOpen (5), 307 diverging (6) 308 -- value 7 reserved for future use 309} (0..7, ...) 310 311LaneType::= INTEGER{ 312 traffic (0), 313 through (1), 314 reversible (2), 315 acceleration (3), 316 deceleration (4), 317 leftHandTurning (5), 318 rightHandTurning (6), 319 dedicatedVehicle (7), 320 bus (8), 321 taxi (9), 322 hov (10), 323 hot (11), 324 pedestrian (12), 325 bikeLane (13), 326 median (14), 327 striping (15), 328 trackedVehicle (16), 329 parking (17), 330 emergency (18), 331 verge (19) 332-- values 20 to 31 reserved for future use 333 }(0..31) 334 335-- Prefix IVI added due to naming collision with data element LaneWidth of Module DSRC 336IVILaneWidth::= INTEGER (0..1023) 337 338LayoutComponent::=SEQUENCE{ 339 layoutComponentId INTEGER(1..8,...), 340 height INTEGER(10..73), 341 width INTEGER(10..265), 342 x INTEGER(10..265), 343 y INTEGER(10..73), 344 textScripting INTEGER {horizontal (0), vertical (1)}(0..1) 345 } 346 347LoadType::= SEQUENCE{ 348 goodsType GoodsType, 349 dangerousGoodsType DangerousGoodsBasic, 350 specialTransportType SpecialTransportType 351 } 352 353PolygonalLine::= CHOICE { 354 deltaPositions SEQUENCE (SIZE (1..32,...)) OF DeltaPosition, 355 deltaPositionsWithAltitude SEQUENCE (SIZE (1..32,...)) OF DeltaReferencePosition, 356 absolutePositions SEQUENCE (SIZE (1..8,...)) OF AbsolutePosition, 357 absolutePositionsWithAltitude SEQUENCE (SIZE (1..8,...)) OF AbsolutePositionWAltitude, 358 ... 359 } 360 361RSCode::= SEQUENCE{ 362 layoutComponentId INTEGER(1..4,...) OPTIONAL, 363 code CHOICE { 364 viennaConvention VcCode, -- see Vienna Convention Annex A 365 iso14823 ISO14823Code, 366 itisCodes INTEGER (0..65535), -- see SAE J2540 367 anyCatalogue AnyCatalogue, 368 ... 369 }} 370 371RSCUnit::= INTEGER { 372 kmperh (0), 373 milesperh (1), 374 kilometer (2), 375 meter (3), 376 decimeter (4), 377 centimeter (5), 378 mile (6), 379 yard (7), 380 foot (8), 381 minutesOfTime (9), 382 tonnes (10), --1000 kg, not Ton! 383 hundredkg (11), 384 pound (12), --lbs 385 rateOfIncline (13) 386 -- other value reserved for future use 387 } (0..15) 388 389 390Segment::= SEQUENCE { 391 line PolygonalLine, 392 laneWidth IVILaneWidth OPTIONAL 393 } 394 395Text::= SEQUENCE { 396 layoutComponentId INTEGER(1..4,...) OPTIONAL, 397 language BIT STRING (SIZE(10)), 398 textContent UTF8String 399 } 400 401TractorCharacteristics::=SEQUENCE{ 402 equalTo SEQUENCE (SIZE (1..4,...)) OF VehicleCharacteristicsFixValues OPTIONAL, 403 notEqualTo SEQUENCE (SIZE (1..4,...)) OF VehicleCharacteristicsFixValues OPTIONAL, 404 ranges SEQUENCE (SIZE (1..4,...)) OF VehicleCharacteristicsRanges OPTIONAL 405} 406 407TrailerCharacteristics::=SEQUENCE{ 408 equalTo SEQUENCE (SIZE (1..4,...)) OF VehicleCharacteristicsFixValues (WITH COMPONENTS {..., euroAndCo2value ABSENT, engineCharacteristics ABSENT}) OPTIONAL, 409 notEqualTo SEQUENCE (SIZE (1..4,...)) OF VehicleCharacteristicsFixValues (WITH COMPONENTS {..., euroAndCo2value ABSENT, engineCharacteristics ABSENT}) OPTIONAL, 410 ranges SEQUENCE (SIZE (1..4,...)) OF VehicleCharacteristicsRanges (WITH COMPONENTS {comparisonOperator, limits (WITH COMPONENTS {..., exhaustEmissionValues ABSENT, dieselEmissionValues ABSENT, soundLevel ABSENT})}) OPTIONAL 411 } 412 413TrainCharacteristics::= TractorCharacteristics 414 415VcClass::= INTEGER { 416 classA (0), 417 classB (1), 418 classC (2), 419 classD (3), 420 classE (4), 421 classF (5), 422 classG (6), 423 classH (7) 424 } (0..7) 425 426VcCode::= SEQUENCE { 427 roadSignClass VcClass, -- see Vienna Convention 428 roadSignCode INTEGER (1..64), 429 vcOption VcOption, -- e.g. the "a" in H, 3a 430 validity SEQUENCE (SIZE (1..8,...)) OF DTM OPTIONAL, 431 value INTEGER (0..65535) OPTIONAL, 432 unit RSCUnit OPTIONAL 433 } 434 435VcOption::= INTEGER { 436 none (0), 437 a (1), 438 b (2), 439 c (3), 440 d (4), 441 e (5), 442 f (6), 443 g (7) 444 } (0..7) 445 446VehicleCharacteristicsFixValues::= CHOICE{ 447 simpleVehicleType StationType, 448 euVehicleCategoryCode EuVehicleCategoryCode, 449 iso3833VehicleType Iso3833VehicleType, 450 euroAndCo2value EnvironmentalCharacteristics, 451 engineCharacteristics EngineCharacteristics, 452 loadType LoadType, 453 usage VehicleRole, 454 ...} 455 456VehicleCharacteristicsRanges::= SEQUENCE{ 457 comparisonOperator ComparisonOperator, 458 limits CHOICE{ 459 numberOfAxles INTEGER(0..7), 460 vehicleDimensions VehicleDimensions, 461 vehicleWeightLimits VehicleWeightLimits, 462 axleWeightLimits AxleWeightLimits, 463 passengerCapacity PassengerCapacity, 464 exhaustEmissionValues ExhaustEmissionValues, 465 dieselEmissionValues DieselEmissionValues, 466 soundLevel SoundLevel, 467 ...}} 468 469Weight::= SEQUENCE { 470 value INTEGER(1..16384), 471 unit RSCUnit (10..12) 472 } 473 474Zid::= INTEGER (1..32,...) 475 476Zone::= CHOICE { 477 segment Segment, 478 area PolygonalLine, 479 computedSegment ComputedSegment, 480 ... 481 } 482 483-- Definition of the single ISO 14823 Attributes 484 485 486DTM ::= SEQUENCE { 487 year SEQUENCE { -- contains SYR and EYR 488 syr INTEGER(2000..2127,...), 489 eyr INTEGER(2000..2127,...) 490 } OPTIONAL, 491 month-day SEQUENCE { -- contains SMD and EMD 492 smd MonthDay, 493 emd MonthDay 494 } OPTIONAL, 495 pmd PMD OPTIONAL, 496 hourMinutes SEQUENCE { -- contains SHM and EHM 497 shm HoursMinutes, 498 ehm HoursMinutes 499 } OPTIONAL, 500 dayOfWeek DayOfWeek OPTIONAL, -- corresponds to SDY and EDY 501 period HoursMinutes OPTIONAL -- corresponds to LDM 502} 503 504MonthDay ::= SEQUENCE { 505 month INTEGER (1..12), 506 day INTEGER (1..31) 507} 508 509PMD::= BIT STRING {national-holiday (0), even-days(1), odd-days(2), market-day(3) } (SIZE (4)) 510 511HoursMinutes ::= SEQUENCE { 512 hours INTEGER (0..23), -- number of hours after midnight 513 mins INTEGER (0..59) -- number of minutes after the hour 514 } 515 516-- Prefix IVI added due to naming collision with data element DayOfWeek of Module DSRC 517DayOfWeek ::= BIT STRING {unused(0), monday(1), tuesday(2), wednesday(3), thursday(4), friday(5), saturday(6), sunday(7)} (SIZE (8)) 518 519EDT ::= DTM 520 521 522 523DFL::= INTEGER { 524 sDL (1) , -- Straight Direction Only 525 sLT (2) , -- Straight and Left Turn Only 526 sRT (3) , -- Straight and Right Turn Only 527 lTO (4) , -- Left Turn Only 528 rTO (5) , -- Right Turn Only 529 cLL (6) , -- Convergence from the Left Lane 530 cRI (7) , -- Convergence from the Right Lane 531 oVL (8) -- Oncoming Vehicles Lane 532 } (1..8) 533 534VED::=SEQUENCE{ 535 hei Distance OPTIONAL, 536 wid Distance OPTIONAL, 537 vln Distance OPTIONAL, 538 wei Weight OPTIONAL 539 } 540 541SPE::=SEQUENCE{ 542 spm INTEGER(0..250) OPTIONAL, 543 mns INTEGER(0..250) OPTIONAL, 544 unit RSCUnit(0..1) 545 } 546 547ROI::= INTEGER(1..32) 548 549DBV::= Distance 550-- changes: from DDD_IO to DDD-IO 551DDD::= SEQUENCE{ 552 dcj INTEGER(1..128) OPTIONAL, 553 dcr INTEGER(1..128)OPTIONAL, 554 tpl INTEGER(1..128)OPTIONAL, 555 ioList SEQUENCE (SIZE (1..8,...)) OF DDD-IO 556 } 557-- changes: from DDD_IO to DDD-IO 558DDD-IO::= SEQUENCE{ 559 drn INTEGER(0..7), 560 dp SEQUENCE (SIZE (1..4,...)) OF DestinationPlace OPTIONAL, 561 dr SEQUENCE (SIZE (1..4,...)) OF DestinationRoad OPTIONAL, 562 rne INTEGER(1..999) OPTIONAL, 563 stnId INTEGER(1..999) OPTIONAL, 564 stnText UTF8String OPTIONAL, 565 dcp DistanceOrDuration OPTIONAL, 566 ddp DistanceOrDuration OPTIONAL 567 } 568-- changes: from DDD_DEP to DDD-DEP 569DestinationPlace::= SEQUENCE{ 570 depType DDD-DEP, 571 -- Encoding problem: to be checked if the statement is ASN.1 compatible 572 -- depRSCode ISO14823Code (WITH COMPONENTS {..., attributes ABSENT}) OPTIONAL, 573 depRSCode ISO14823Code OPTIONAL, 574 depBlob OCTET STRING OPTIONAL, 575 plnId INTEGER(1..999) OPTIONAL, 576 plnText UTF8String OPTIONAL 577 } 578-- changes: from DDD_DER to DDD-DER 579DestinationRoad::=SEQUENCE{ 580 derType DDD-DER, 581 ronId INTEGER(1..999) OPTIONAL, 582 ronText UTF8String OPTIONAL 583 } 584-- changes: from DDD_DER to DDD-DER 585DDD-DER::= INTEGER { 586 none (0), 587 nationalHighway (1), 588 localHighway (2), 589 tollExpresswayMotorway (3), 590 internationalHighway (4), 591 highway (5), 592 expressway (6), 593 nationalRoad (7), 594 regionalProvincialRoad (8), 595 localRoad (9), 596 motorwayJunction (10), 597 diversion (11), 598 rfu1 (12), 599 rfu2 (13), 600 rfu3 (14), 601 rfu4 (15) 602 } (0..15, ...) 603-- changes: from DDD_DEP to DDD-DEP 604DDD-DEP::= INTEGER { 605 none (0), 606 importantArea (1), 607 principalArea (2), 608 generalArea (3), 609 wellKnownPoint (4), 610 country (5), 611 city (6), 612 street (7), 613 industrialArea (8), 614 historicArea (9), 615 touristicArea (10), 616 culturalArea (11), 617 touristicRoute (12), 618 recommendedRoute (13), 619 touristicAttraction (14), 620 geographicArea (15) 621 } (0..15, ...) 622 623 624 625END 626 627