AddGrpC {
  iso (1) standard (0) signalizedIntersection (19091) profilec (2) addgrpc (0)
  version2 (2)
  }

DEFINITIONS AUTOMATIC TAGS::= BEGIN

IMPORTS

DeltaTime, FuelType, IntersectionID, LaneConnectionID, LaneID, NodeOffsetPointXY, NodeSetXY, PrioritizationResponseStatus, SignalGroupID, VehicleHeight
FROM DSRC { 
  iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) 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) };

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

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

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

