Commit c9778217 authored by ASN.1 Documenter's avatar ASN.1 Documenter
Browse files

first tryout to split the code to resolve circular references

parent 1dec6f40
Loading
Loading
Loading
Loading
+213 −0
Original line number Diff line number Diff line
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ISO TS 19091 2018
--
-- This document includes three ASN.1 modules
--    AddGrpC
--
-- This document contains the data element needed for the encoding the SPAT, MapData, SignalRequestMessage, SignalStatusMessage, RTCMcorrections
-- as defined in ISO TS 19091 and basic data element referenced to SAEJ2735
--
-- It includes the addendum extensions for Addgrp-C (e.g. Europe)
-- 
-- ISO Standards maintenance Portal:
-- http://standards.iso.org/iso/ts/19091/addgrp_c/
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

-- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
-- 
-- module: AddGrpC
-- 
-- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
AddGrpC {
  iso (1) standard (0) signalizedIntersection (19091) profilec (2) addgrpc (0)
  version2 (2)
  }

DEFINITIONS AUTOMATIC TAGS::= BEGIN

IMPORTS

DeltaTime, FuelType, IntersectionID, LaneConnectionID, SignalGroupID, VehicleHeight
FROM DSRC { 
  iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) version2 (2)
}

LaneID, NodeOffsetPointXY, NodeSetXY, PrioritizationResponseStatus
FROM DSRC-noCircular { 
  iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc-nocurcular (12) version2 (2)
}

Altitude, DeltaAltitude, StationID, VehicleMass
FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) };

-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- AddGrpC data dictionary extensions to SAEJ2735 
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ConnectionManeuverAssist-addGrpC ::=	SEQUENCE {
  itsStationPosition ItsStationPositionList OPTIONAL,
  ...
}

ConnectionTrajectory-addGrpC ::= SEQUENCE { 
  nodes         NodeSetXY,
  connectionID  LaneConnectionID,
  ...
}

IntersectionState-addGrpC ::=	SEQUENCE {
  activePrioritizations  PrioritizationResponseList	OPTIONAL,
  ...
}

LaneAttributes-addGrpC ::= SEQUENCE {
  maxVehicleHeight  VehicleHeight OPTIONAL,
  maxVehicleWeight  VehicleMass   OPTIONAL,
  ...
}

MapData-addGrpC ::=	SEQUENCE {
  signalHeadLocations  SignalHeadLocationList	OPTIONAL,
  ...
}

MovementEvent-addGrpC ::= SEQUENCE {
  stateChangeReason  ExceptionalCondition OPTIONAL,
  ...
}

NodeAttributeSet-addGrpC  ::=	SEQUENCE { 
  ptvRequest  PtvRequestType  OPTIONAL,
  nodeLink    NodeLink        OPTIONAL,
  node        Node            OPTIONAL,
  ...
}

Position3D-addGrpC ::=	SEQUENCE {
  altitude  Altitude,
  ...
}

RestrictionUserType-addGrpC ::=	SEQUENCE { 
  emission  EmissionType OPTIONAL,
  fuel      FuelType     OPTIONAL,
  ...
}

RequestorDescription-addGrpC ::= SEQUENCE {
  fuel           FuelType      OPTIONAL,
  batteryStatus  BatteryStatus OPTIONAL,
  ...
}

SignalStatusPackage-addGrpC ::= SEQUENCE {
  synchToSchedule  DeltaTime      OPTIONAL,
  rejectedReason   RejectedReason OPTIONAL,
  ...
}


-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- Data frames
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ItsStationPosition ::=	SEQUENCE {
  stationID      StationID,
  laneID         LaneID             OPTIONAL,
  nodeXY         NodeOffsetPointXY  OPTIONAL,
  timeReference  TimeReference      OPTIONAL,
  ...
}

ItsStationPositionList ::=	SEQUENCE SIZE(1..5) OF ItsStationPosition

Node ::= SEQUENCE {
  id              INTEGER,
  lane            LaneID           OPTIONAL,
  connectionID    LaneConnectionID OPTIONAL,
  intersectionID  IntersectionID   OPTIONAL,
  ...
}

NodeLink ::= SEQUENCE SIZE (1..5) OF Node

PrioritizationResponse ::=	SEQUENCE {
  stationID    StationID,
  priorState   PrioritizationResponseStatus,
  signalGroup  SignalGroupID,
  ...
}

PrioritizationResponseList ::=	SEQUENCE SIZE(1..10) OF PrioritizationResponse

SignalHeadLocation ::=	SEQUENCE {
  nodeXY         NodeOffsetPointXY,
  nodeZ          DeltaAltitude,
  signalGroupID  SignalGroupID,
  ...
}

SignalHeadLocationList ::=	SEQUENCE (SIZE(1..64)) OF	SignalHeadLocation


-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- Data elements 
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

BatteryStatus ::= ENUMERATED {
  unknown,
  critical,
  low,
  good, 
  ...
}

EmissionType ::= ENUMERATED {
  euro1,
  euro2,
  euro3,
  euro4,
  euro5,
  euro6,
  ...
}

ExceptionalCondition ::= ENUMERATED {
  unknown,
  publicTransportPriority,
  emergencyVehiclePriority,
  trainPriority,
  bridgeOpen,
  vehicleHeight,
  weather,
  trafficJam,
  tunnelClosure,
  meteringActive,
  truckPriority,
  bicyclePlatoonPriority,
  vehiclePlatoonPriority,
  ...
}

PtvRequestType  ::= ENUMERATED {
  preRequest,
  mainRequest,
  doorCloseRequest,
  cancelRequest,
  emergencyRequest,
  ...
}

RejectedReason ::= ENUMERATED {
  unknown,
  exceptionalCondition,
  maxWaitingTimeExceeded,
  ptPriorityDisabled,
  higherPTPriorityGranted,
  vehicleTrackingUnknown,
  ...
}

TimeReference ::= INTEGER { oneMilliSec(1) } (0..60000)

END

iso-patched/DSRC.asn

0 → 100755
+1277 −0

File added.

Preview size limit exceeded, changes collapsed.

+263 −0
Original line number Diff line number Diff line
DSRC-noCircular { 
  iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc-nocurcular (12) version2 (2)
} 

DEFINITIONS AUTOMATIC TAGS::= BEGIN 

IMPORTS

Longitude, Latitude, StationID
FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }

Reg-LaneDataAttribute, Reg-NodeAttributeSetXY, Reg-NodeOffsetPointXY, Reg-ComputedLane
FROM REGION  {iso (1) standard (0) signalizedIntersection (19091) profilec(2) region (1) version2 (2)}
;

REG-EXT-ID-AND-TYPE ::= CLASS {
  &id     RegionId UNIQUE,
  &Type
} WITH SYNTAX {&Type IDENTIFIED BY &id}

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

RegionId ::= INTEGER (0..255)
 
DeltaAngle ::= INTEGER (-150..150)

RoadwayCrownAngle ::= INTEGER (-128..127) 
 
MergeDivergeNodeAngle ::= INTEGER (-180..180) 

LaneID ::= INTEGER (0..255)

DrivenLineOffsetLg ::= INTEGER (-32767..32767) 

DrivenLineOffsetSm ::= INTEGER (-2047..2047) 

Angle ::= INTEGER (0..28800)

Scale-B12 ::= INTEGER (-2048..2047) 

LaneDataAttribute ::= CHOICE {
   pathEndPointAngle        DeltaAngle,  
   laneCrownPointCenter     RoadwayCrownAngle,  
   laneCrownPointLeft       RoadwayCrownAngle,  
   laneCrownPointRight      RoadwayCrownAngle,  
   laneAngle                MergeDivergeNodeAngle,  
   speedLimits              SpeedLimitList,
   regional  SEQUENCE (SIZE(1..4)) OF 
             RegionalExtension {{Reg-LaneDataAttribute}}, 
   ...
}

LaneDataAttributeList ::= SEQUENCE (SIZE(1..8)) OF LaneDataAttribute

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,
  ... 
}

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,
  ...
}

NodeAttributeXY ::= ENUMERATED {
  reserved,  
  stopLine,
  roundedCapStyleA,
  roundedCapStyleB,
  mergePoint,
  divergePoint,
  downstreamStopLine,
  downstreamStartNode,
  closedToTraffic,
  safeIsland,
  curbPresentAtStepOff,
  hydrantPresent,
  ...
}

NodeAttributeXYList ::= SEQUENCE (SIZE(1..8)) OF NodeAttributeXY

Node-LLmD-64b ::= SEQUENCE {
  lon  Longitude,
  lat  Latitude
}

Node-XY-20b ::= SEQUENCE {
  x  Offset-B10,
  y  Offset-B10
}

Node-XY-22b ::= SEQUENCE {
  x  Offset-B11,
  y  Offset-B11
}

Node-XY-24b ::= SEQUENCE {
  x  Offset-B12,
  y  Offset-B12
}

Node-XY-26b ::= SEQUENCE {
  x  Offset-B13,
  y  Offset-B13
}

Node-XY-28b ::= SEQUENCE {
  x  Offset-B14,
  y  Offset-B14
}

Node-XY-32b ::= SEQUENCE {
  x  Offset-B16,
  y  Offset-B16
}

NodeListXY ::= CHOICE {
  nodes     NodeSetXY,
  computed  ComputedLane,
  ...
}

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

NodeXY ::= SEQUENCE {
  delta       NodeOffsetPointXY,
  attributes  NodeAttributeSetXY OPTIONAL,
  ... 
}

NodeSetXY ::= SEQUENCE (SIZE(2..63)) OF NodeXY

Offset-B09 ::= INTEGER (-256..255)

Offset-B10 ::= INTEGER (-512..511)

Offset-B11 ::= INTEGER (-1024..1023)

Offset-B12 ::= INTEGER (-2048..2047)

Offset-B13 ::= INTEGER (-4096..4095)

Offset-B14 ::= INTEGER (-8192..8191)

Offset-B16 ::= INTEGER (-32768..32767)


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     ,
  ...
}

SegmentAttributeXYList ::= SEQUENCE (SIZE(1..8)) OF SegmentAttributeXY

SpeedLimitList ::= SEQUENCE (SIZE(1..9)) OF RegulatorySpeedLimit

RegulatorySpeedLimit ::= SEQUENCE {
  type        SpeedLimitType, 
  speed       Velocity
}

SpeedLimitType ::= ENUMERATED {
   unknown,
   maxSpeedInSchoolZone,
   maxSpeedInSchoolZoneWhenChildrenArePresent,
   maxSpeedInConstructionZone,
   vehicleMinSpeed,
   vehicleMaxSpeed,
   vehicleNightMaxSpeed,
   truckMinSpeed,
   truckMaxSpeed,
   truckNightMaxSpeed,
   vehiclesWithTrailersMinSpeed,
   vehiclesWithTrailersMaxSpeed,
   vehiclesWithTrailersNightMaxSpeed,
   ...
}

Velocity ::= INTEGER (0..8191)

PrioritizationResponseStatus ::= ENUMERATED {
  unknown           (0),
  requested         (1),
  processing        (2),
  watchOtherTraffic (3),
  granted           (4),
  rejected          (5),
  maxPresence       (6),
  reserviceLocked   (7),
  ...
}

END
+2 −2
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@ EfcDsrcApplication {iso(1) standard(0) 14906 application(0) version6(6)}
DEFINITIONS AUTOMATIC TAGS ::= BEGIN
EXPORTS ALL;
IMPORTS
CountryCode, CS5, IssuerIdentifier
CountryCode, CS5, AVIAEIIssuerIdentifier
FROM AVIAEINumberingAndDataStructures {iso(1) standard(0) iso14816(14816) asnm1(1) version1(1) }
-- defined in ISO 14816 --
AttributeIdList, Attributes{}, AttributeList{}
@@ -415,7 +415,7 @@ PersonalAccountNumber ::= OCTET STRING (SIZE(10))

Provider ::= SEQUENCE {
countryCode CountryCode,
providerIdentifier IssuerIdentifier
providerIdentifier AVIAEIIssuerIdentifier
}
PurseBalance ::= SEQUENCE {
-- The balance on the (electronic) purse, consisting of

iso-patched/REGION.asn

0 → 100755
+134 −0
Original line number Diff line number Diff line
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ISO TS 19091 2018
--
-- This document includes three ASN.1 modules
--    REGION
--
-- This document contains the data element needed for the encoding the SPAT, MapData, SignalRequestMessage, SignalStatusMessage, RTCMcorrections
-- as defined in ISO TS 19091 and basic data element referenced to SAEJ2735
--
-- It includes the addendum extensions for Addgrp-C (e.g. Europe)
-- 
-- ISO Standards maintenance Portal:
-- http://standards.iso.org/iso/ts/19091/addgrp_c/
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

-- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
-- 
-- module: REGION
-- 
-- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-

REGION {
  iso (1) standard (0) signalizedIntersection (19091) profilec (2) region (1)
  version2 (2)
}

DEFINITIONS AUTOMATIC TAGS::= BEGIN

IMPORTS
REG-EXT-ID-AND-TYPE
FROM DSRC-noCircular { 
  iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (12) version2 (2)
}

addGrpC 
FROM DSRC { 
  iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) version2 (2)
}

ConnectionManeuverAssist-addGrpC, ConnectionTrajectory-addGrpC,
IntersectionState-addGrpC, LaneAttributes-addGrpC, MapData-addGrpC,
MovementEvent-addGrpC, NodeAttributeSet-addGrpC, Position3D-addGrpC, RequestorDescription-addGrpC, RestrictionUserType-addGrpC, SignalStatusPackage-addGrpC
FROM AddGrpC {iso (1) standard (0) signalizedIntersection (19091) profilec(2) addgrpc (0) version2 (2)};

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-NodeAttributeSetLL       REG-EXT-ID-AND-TYPE ::= { ... }

Reg-NodeAttributeSetXY          REG-EXT-ID-AND-TYPE ::= {
	{NodeAttributeSet-addGrpC   IDENTIFIED BY addGrpC},
	...
}

-- Reg-NodeOffsetPointLL	   REG-EXT-ID-AND-TYPE ::= { ... }

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
Loading