Commit fa357370 authored by perezed's avatar perezed
Browse files

Merge remote-tracking branch 'remotes/origin/WI-001958' into WI-001958

# Conflicts:
#	AVP_Commons.asn
#	xml/ASNV_Configuration.xml
#	xml/PCIM.asn1
#	xml/PCVM.asn1
parents 7159f6c3 fae9a57f
Loading
Loading
Loading
Loading

.gitlab-ci.yml

0 → 100755
+19 −0
Original line number Diff line number Diff line
include:
  - project: 'forge-tools/asn2md'
    file: '/gitlab-ci/base.yml'

variables:
  ASN1_SRC: 'cdd/*.asn *.asn'
  
validate:
  extends: .validate
  only:
    changes:
      - '*.asn'


documentation:
  extends: .documentation
  only:
    changes:
      - '*.asn'
+88 −0
Original line number Diff line number Diff line
<<<<<<< HEAD
AVP-Commons-PDU-Descriptions {
  itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103882) avpCommons (5) major-version-1 (1) minor-version-1(1)
}
@@ -84,3 +85,90 @@ ParkingControlE2EProtection ::= SEQUENCE { -- AUTOSAR Profile 4 e2e protection
}

END
=======
AVP-Commons-PDU-Descriptions {
  itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103882) avpCommons (5) major-version-1 (1) minor-version-1(1)
}

DEFINITIONS AUTOMATIC TAGS ::= BEGIN  -- AVP-specific common data elements

UInt8 ::= INTEGER (0..255)
Int16 ::= INTEGER (-32768..32767)
Int20 ::= INTEGER (-524288..524287)
UInt16 ::= INTEGER (0..65535)
UInt32 ::= INTEGER (0..4294967295)
UInt64 ::= INTEGER(0..18446744073709551615)

RollingCounter ::= UInt16

OEMSpecificData ::= UInt16

WaypointIndex ::= UInt16

Pose ::= SEQUENCE { -- Projected to the ground, elevation not considered
                    -- x and y are cartesian coordinates
  x Centimetre,
  y Centimetre,     -- The reference point of the vehicle is in the center of the rear axle
  psi Psi           -- Attitude of the vehicle relative to the x axis.
                    -- Angle between the longitudinal axis of the vehicle and the 
                    -- x (North) axis of the reference coordinate system
}

Psi ::= INTEGER {
    xDirection  (0) -- 0.0001 radian
} (0..62831)        -- Counter-clockwise
                    -- Option: the range and enumerated values can be fine-tuned

--                                    UNIT     FACTOR
CentimetrePerSecond ::= Int16   -- [cm/s] Option: the range and enumerated values can be fine-tuned
Centimetre ::= Int20            -- [cm]   Option: the range and enumerated values can be fine-tuned
HighResCurvature ::= Int16      -- [1/m]    0.00001 Option: CAM's curvature was not precise enough
Millisecond16 ::= Int16         -- [ms]     1  Option: CPM's relative time might not precise enough
RadPerSecond ::= Int16          -- [rad/s]  0.0001

GearEnum ::= ENUMERATED {
  park(0),       -- P: Vehicle is in secure standstill, e.g. in PARK gear
  backwards(1),  -- R: Vehicle is driving backwards
  neutral(2),    -- N: Neutral / Driving direction is unknown
  forwards(3),   -- D: Vehicle is driving forwards
  unknown (4)	 -- Do not use as a command: Unknown or faulted gear state from vehicle
}

VidVehicleStateEnum ::= ENUMERATED {
  vehicle-undefined(0),           			-- Default value
  vehicle-ready(1),               			-- Vehicle is ready to get flashing code
  vehicle-lightflashing-inprogress (2), 	-- Vehicle flashing in progress
  vehicle-lightflashing-completed(3),  		-- Flashing is finished
  vehicle-lightflashing-failed (4), 		-- indicating vehicle can’t flash because of vehicle error
  vehicle-authorized(5)           			-- Vehicle identification was successful and vehicle has switched its state
}

SafetyViolationsEnum ::= ENUMERATED {
  no-violation(0),
  no-driving-permission-received(1),
  last-driving-permission-too-old(2),
  crc-violation-clock-sync-response(3),
  crc-violation-driving-permission(4),
  expiration-time-violation(5),
  driving-direction-mismatch(6),
  velocity-violation(7),
  curvature-min-violation(8),
  curvature-max-violation(9),
  clocks-not-synchronized(10),
  expiration-time-too-high(11),
  monitoring(12),
  ...
}
SessionMissionID ::= IA5String (SIZE(17..32)) -- Session ID response, also suitable to carry VIN for special use cases!

Description ::=  IA5String (SIZE(1..200)) -- for detailed  description, eg. of an error 

ParkingControlE2EProtection ::= SEQUENCE { -- AUTOSAR Profile 4 e2e protection
  length UInt16,
  rollingCounter UInt16,  
  dataID UInt32,
  crc32 UInt32                        -- Cyclic redundency check, hamming distance >= 6
}

END
>>>>>>> remotes/origin/WI-001958
+58 −29
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ DEFINITIONS AUTOMATIC TAGS ::= BEGIN -- Park Control Infrastucture Message

IMPORTS

RollingCounter, CentimetrePerSecond, HighResCurvature, GearEnum, WaypointIndex, Pose, ParkingControlE2EProtection, OEMSpecificData, SessionMissionID, UInt8, UInt16, UInt32
RollingCounter, CentimetrePerSecond, Centimetre, HighResCurvature, GearEnum, WaypointIndex, Pose, ParkingControlE2EProtection, OEMSpecificData, SessionMissionID, UInt8, UInt16, UInt32, UInt64
FROM AVP-Commons-PDU-Descriptions {
  itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103882) avpCommons (5) major-version-1 (1) minor-version-1(1)
}
@@ -30,8 +30,10 @@ Pcim ::= SEQUENCE {
}

VehicleContainer ::= SEQUENCE {
  currentSessionID SessionMissionID,					-- up to 32 character ID
  currentMissionID SessionMissionID OPTIONAL,           -- optional missionID 32 character ID
  checksum UInt32 OPTIONAL,
  msgGenerationTime  TimestampIts OPTIONAL,
  sessionID SessionMissionID,							-- up to 32 character ID
  missionID SessionMissionID OPTIONAL,           		-- optional missionID 32 character ID
														-- Option: smaller data size might be sufficient
  rollingCounterFromPcvm RollingCounter,             	-- PCVM Rolling counter signal paired with serverTimeAtPcvm
  vehicleIdentification VidRequest OPTIONAL,         	-- for generating a blinking pattern for the direction indicator lights
@@ -41,10 +43,10 @@ VehicleContainer ::= SEQUENCE {
  detectedVehiclePose DetectedVehiclePose OPTIONAL,  	-- Contains the most recent pose of the vehicle in the fixed infrastructure coordinate system.
  controlInterface ControlInterface,                 	-- Specifies which interface is used to control the vehicle.
  oemSpecific OEMSpecificData OPTIONAL,                	-- OEM specific 16 bit container for special purposes.
  ...
  ...                                                   -- extension marker
}

VidRequest ::= CHOICE {     -- We proposed a change here: now we are flexible with identification technologies
VidRequest ::= CHOICE {     -- We proposed a change here: with extension marker we are flexible with identification technologies
  blinking Blinking,
  ...
}
@@ -55,10 +57,8 @@ SafetyTimeSyncRequest ::= SEQUENCE {
  checksum UInt32   -- See safety checksum calculation
}

BlinkingSeed ::= INTEGER(0..18446744073709551615)

Blinking ::= SEQUENCE {
  seed BlinkingSeed,                         -- Seed for calculating codes for flashing indicator lights  .
  vidRvoPublicKey UInt64,					 -- Public Key used by RVO to derive vehicle identification secret
  codeLength UInt8,                          -- Value that indicated how many bits (8 - 20) from the seed shall be used for blinking. 
  currentState VidRequestStateEnum           -- current authorization request status
                                             -- For now, we kept the authorization state technology-agnostic.
@@ -80,7 +80,9 @@ DriveCommand ::= SEQUENCE {
  selectGear GearEnum OPTIONAL,                     -- Requested gear (in line with the driving direction request), incl. request for neutral gear.
  directionIndicator VehicleDirIndicatorEnum,  		-- The currently requested direction indicator.
													-- Option: Using CDD's ExteriorLights can be considered as well. It would support multiple light request commands.
  emergencyStopRequest EmergencyStopEnum OPTIONAL	-- Signal for triggering an emergency stop or brake prefill.
  emergencyStopRequest EmergencyStopEnum OPTIONAL,	-- Signal for triggering an emergency stop or brake prefill.
  interlockRequest InterlockEnum OPTIONAL,          -- During interlock Vehicle can still receive/act on status commands (Gear, Park Brake...)
  hornRequest VehicleHornRequestEnum OPTIONAL   	-- The currently requested audible alarms
}

DetectedVehiclePose ::= SEQUENCE {
@@ -90,11 +92,10 @@ DetectedVehiclePose ::= SEQUENCE {

ControlInterface ::= CHOICE {
  pathSnippet PathSnippet,
  directControl DirectControl,
  trajectoryControl TrajectoryControl
}

PathSnippet ::= SEQUENCE (SIZE(0..5)) OF WayPoint
PathSnippet ::= SEQUENCE (SIZE(0..50)) OF WayPoint

WayPoint ::= SEQUENCE {
  index WaypointIndex,              -- Index of 0 means that the WayPoint is not valid/not treated on vehicle side.
@@ -103,13 +104,9 @@ WayPoint ::= SEQUENCE {
  curvature HighResCurvature        -- Signed curvature value.
}

DirectControl ::= SEQUENCE {
  velocityReq CentimetrePerSecond,  -- Signed velocity value. Positive: drive forwards / Negative: reverse.
  curvatureReq HighResCurvature     -- Signed curvature value.
}

TrajectoryControl ::= SEQUENCE {
  timeReference TimestampIts,
  driveDirection DriveDirectionEnum OPTIONAL,
  controlTrajectory ControlTrajectory,
  stateTrajectory StateTrajectory OPTIONAL
}  
@@ -118,8 +115,19 @@ ControlTrajectory ::= SEQUENCE (SIZE(0..50)) OF ControlPoint

ControlPoint ::= SEQUENCE {
  curvature HighResCurvature,                 			-- Signed curvature value.
  acceleration LongitudinalAccelerationValue  -- Signed acceleration value.
                                              -- To be discussed in the members groups
  controlParameter ControlParameter					  
}

ControlParameter ::= CHOICE {
controlAcceleration ControlAcceleration,
controlVelocity ControlVelocity
}

ControlAcceleration ::= LongitudinalAccelerationValue 	    -- Signed acceleration value.

ControlVelocity ::= SEQUENCE {
  velocity CentimetrePerSecond,  				-- Signed velocity value. Positive: drive forwards / Negative: reverse.
  distanceToStop Centimetre OPTIONAL			-- Unsigned distance-to-stop value
}

StateTrajectory ::= SEQUENCE (SIZE(0..50)) OF StatePoint
@@ -134,8 +142,9 @@ StatePoint ::= SEQUENCE {
DriveCommandActionEnum ::= ENUMERATED {
  unknown(0),     -- No command given by the RVO.
  initialize(1),  -- The vehicle shall initialize and prepare for a driving job
  drive(2),       -- The vehicle shall actively drive and follow the path
  terminate(3)    -- The vehicle shall disable all interfaces and shutdown as soon as possible
  wait(2), 		  -- The vehicle shall wait in marshalling capable state
  drive(3),       -- The vehicle shall actively drive and follow the path
  terminate(4)    -- The vehicle shall disable all interfaces and shutdown as soon as possible
}

TerminateReasonEnum ::= ENUMERATED {
@@ -149,7 +158,22 @@ TerminateReasonEnum ::= ENUMERATED {
EmergencyStopEnum ::= ENUMERATED {
  inactive(0),   	-- The vehicle shall not use EmergencyStop at this stage
  precharge(1),  	-- The vehicle shall stay in standby (brake prefill) and wait for an active command
  active(2)      -- The vehicle shall initiate an emergency stop using the maximum possible deceleration
  active(2),      	-- The vehicle shall initiate an emergency stop using the maximum possible deceleration
  temp-error(3),	-- Maturing Failures - Decel and hold, waiting for failure to clear or mature)
  suspend(4)		-- for Critical Failures - Decel and secure - not recoverable
} 

InterlockEnum ::= ENUMERATED {
  none(0),   			-- The vehicle shall not use Interlock at this stage
  zonal-interlock(1),  	-- Zonal Interlock (specific to plant case)
  global-stop(2)      	-- global stop for external operator intervention 
}

VehicleHornRequestEnum ::= ENUMERATED {
  none(0),   			-- no horn
  single-horn(1),		-- for alerting surroundings when marshalling of vehicle is starting
  double-horn(2),		-- For notifying pedestrians who pose obstacles
  hold-horn(3)			-- In event of ground staff intervention needed for vehicle
}

VehicleDirIndicatorEnum ::= ENUMERATED {
@@ -167,4 +191,9 @@ VidRequestStateEnum ::= ENUMERATED {
  new-code(3) 		-- A new Subject Vehicle identification cycle was started.
}

DriveDirectionEnum ::= ENUMERATED {
  forwards(0),         -- D: Vehicle shall drive forwards
  backwards(1)		   -- R: Vehicle shall drive backwards
}

END
 No newline at end of file
+87 −21
Original line number Diff line number Diff line
@@ -6,16 +6,16 @@ DEFINITIONS AUTOMATIC TAGS ::= BEGIN -- Park Control Vehicle Message

IMPORTS

ItsPduHeader, TimestampIts
FROM ETSI-ITS-CDD {
  itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) 102894 cdd (2) major-version-3 (3) minor-version-1 (1)
}

RollingCounter, OEMSpecificData, GearEnum, CentimetrePerSecond, HighResCurvature, WaypointIndex, Pose, SessionMissionID, ParkingControlE2EProtection, VehicleOperationModeEnum, VidVehicleStateEnum , UInt8, UInt16, UInt32, Millisecond16, SafetyViolationsEnum 
RollingCounter, OEMSpecificData, GearEnum, CentimetrePerSecond, Centimetre, RadPerSecond, HighResCurvature, WaypointIndex, Pose, SessionMissionID, Description, ParkingControlE2EProtection, VidVehicleStateEnum , UInt8, UInt16, UInt32, UInt64, Millisecond16, SafetyViolationsEnum 
FROM AVP-Commons-PDU-Descriptions {
  itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103882) avpCommons (5) major-version-1 (1) minor-version-1(1)
}

ItsPduHeader, TimestampIts, VehicleMass
FROM ETSI-ITS-CDD {
  itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) 102894 cdd (2) major-version-3 (3) minor-version-1 (1)
}

;

PCVM ::= SEQUENCE {
@@ -25,21 +25,25 @@ PCVM ::= SEQUENCE {
}

Pcvm ::= SEQUENCE {
  msgGenerationTime  TimestampIts OPTIONAL,
  sessionID SessionMissionID,										-- 32 character ID   				
  missionID SessionMissionID OPTIONAL,           					-- optional missionID 32 character ID
  rollingCounterFromPcim RollingCounter,     						-- Rolling counter of last received PCIM
  vehicleState VehicleState,                 						-- Relevant vehicle information.
  vidResponse VidResponse OPTIONAL, 								-- The current vehicle identification stat
  safetyTimeSyncResponse SafetyTimeSyncResponse OPTIONAL,			-- Functional Safety related container
  safeVehicleTypeConfirmation SafeVehicleTypeConfirmation OPTIONAL,	-- Functional Safety related container
  vehicleError VehicleError OPTIONAL,        						-- Optional error information. Depending on the given error, the infrastructure either tries to resolve the issue or aborts the mission.
  vehicleDebug VehicleDebug OPTIONAL,        						-- Optional debug information.
  vehicleSafetyFeedback VehicleSafetyFeedback OPTIONAL, 			-- Relevant safety information from vehicle
  vehicleProperties VehicleProperties OPTIONAL,         			-- Addition of vehicle-specific data elements as feedback from vehicle to external system
  oemSpecific OEMSpecificData OPTIONAL, 							-- OEM specific 16 bit container for special purposes.
  ...                                                               -- extension marker
}

VehicleState ::= SEQUENCE {
  vehicleStateGenerationTime  TimestampIts OPTIONAL,  -- checks on the Data Freshness on receive side 
  operationMode VehicleOperationModeEnum,             -- The current operation mode or state of the vehicle.
  vehicleAutorizationState VidVehicleStateEnum,       -- The current authorization/vehicle identification state
  gearSelected GearEnum,                              -- Direction in which the vehicle is currently driving or about to drive.
  currentVelocity CentimetrePerSecond,                -- Current vehicle velocity. Negative when driving backwards.
  currentCurvature HighResCurvature,                  -- Current vehicle curvature.
@@ -48,16 +52,18 @@ VehicleState ::= SEQUENCE {
  localizedPose Pose OPTIONAL                         -- The current vehicle pose estimated by the vehicle. (Usually close to the pose estimated by the GMS, prediction by the vehicle) 
}

VidResponse ::= SEQUENCE {
 vidVehicleState VidVehicleStateEnum, 				  -- The current vehicle identification state
 vidVehiclePublicKey UInt64 						  -- Public Key used by vehicle to derive vehicle identification secret
}

VehicleError ::= SEQUENCE {
  time TimestampIts,    				-- Timestamp when the error occurred.
  vehCode VehCodeEnum,  				-- Depending on the given error, the infrastructure either tries to resolve the issue or aborts the mission, saves this message for logging and forwards its content to the backend.
  customCode UInt8      -- Customer specific error code. The infrastructure won't further interpret this value.
  customCode UInt8,     				-- Customer specific error code. The infrastructure won't further interpret this value.
  description Description OPTIONAL		-- optional description of the error with further details
}

VehCodeEnum ::= ENUMERATED {
  unspecified(0),        -- Any kind of error that is not specified otherwise. Infrastructure aborts the mission.
  path-not-driveable(1)  -- The vehicle can’t follow the given waypoints, based on the given DetectedVehiclePose. Infrastructure tries to plan a different path or aborts the mission otherwise.
}

VehicleDebug ::= SEQUENCE {               -- Optional information from the vehicle that might help debugging and analysis
  requestedVelocity CentimetrePerSecond,  -- The currently requested velocity sent to the vehicle. Negative when driving backwards.
@@ -80,13 +86,73 @@ SafetyViolationsContainer ::= SEQUENCE (SIZE(0..5)) OF SafetyViolationsEnum -- u

SafetyTimeSyncResponse ::= SEQUENCE {
  challenge UInt16,                           			-- Challenge received in the SafetyTimeSyncRequest message
  currentVehicleSafetyClockTime TimestampIts, -- Time of the Vehicle Safety Clock when SafetyTimeSyncRequest was received
  vehicleSafetyClockReceiveTimestamp TimestampIts,		-- Time of the Vehicle Safety Clock when SafetyTimeSyncRequest arrived in the vehicle
  vehicleSafetyClockTransmitTimestamp TimestampIts,		-- Time of the Vehicle Safety Clock when this response left for the RV
  checksum UInt32                             			-- See safety checksum calculation
}

SafeVehicleTypeConfirmation ::= SEQUENCE {
  vehicleType IA5String (SIZE(32)), -- vehicle type identifier
  vehicleType IA5String (SIZE(1..32)), 	-- vehicle type identifier
  checksum UInt32                   	-- See safety checksum calculation
}

VehicleProperties ::= SEQUENCE {
  basicVehicleClass BasicVehicleClassEnum,
  vehicleLength  Centimetre,  --  
  vehicleWheelbase  Centimetre,  -- 
  vehicleRearOverhang  Centimetre,  -- 
  vehicleWidth  Centimetre,  -- 
  vehicleTireWidth  Centimetre,  -- 
  vehicleTrackWidth Centimetre,  --
  vehicleMass VehicleMass,
  vehicleSpeedLimit  CentimetrePerSecond,  -- 
  vehicleCuvatureLimit  HighResCurvature,   	-- max. curvature for left and right turning (assumed symmetrical)
  vehicleMaxAngularSteeringRate RadPerSecond,  	-- max steering rate for automated operation (rate of road wheel angle)
  ...
}

-- ******************** PCVM specific ENUMs ***************************

VehicleOperationModeEnum ::= ENUMERATED {
  unknown(0),
  initializing(1),  		-- The vehicle is preparing for the mission, but hasn’t entered automted mode yet.
  prepared(2),      		-- The vehicle is in automted mode, but currently doesn’t follow one of the control interfaces (waypoints, direct control, ...).
  driving(3),       		-- The vehicle is in automted mode and actively follows one of the control interfaces (waypoints, direct control, ...). It hasn’t reached the end of the given path yet. Also applies if the vehicle stopped temporarily.
  terminating(4),   		-- The vehicle left automated mode and is terminating related functions.
  suspend (5), 				-- The vehicle is in a critical error state and requires external operator intervention
  temp-error (6),           -- The vehicle is in a non-critical error state and is initiating a deceleration into stop and hold, prior to suspend
  human-in-control (7), 		-- Manual control of the vehicle has been taken over 
  station-hold (8),		    -- The external mfg./customer environment interlocks have taken over and is holding the vehicle from marshalling 
  ...
}

VehCodeEnum ::= ENUMERATED {
  unspecified(0),        		-- Any kind of error that is not specified otherwise. Infrastructure aborts the mission.
  path-not-driveable(1),  		-- The vehicle can’t follow the given waypoints, based on the given DetectedVehiclePose. Infrastructure tries to plan a different path or aborts the mission otherwise.
  onboard-vehicle-fault (2), 	-- fauld during vehicle onboarding
  communication-fault (3),		-- vehicle internal comms fault
  vehicle-egress-fault (4),		-- Failure during vehicle AVP egress or shutdown process
  ...
}

BasicVehicleClassEnum ::= ENUMERATED {
  none (0), -- Not Equipped, Not known or unavailable
  unknown (1), -- Does not fit any other category
  special (2), -- Special use
  moto (3), -- Motorcycle
  car (4), -- Passenger car
  carOther (5), -- Four tire single units
  bus (6), -- Buses
  axleCnt2 (7), -- Two axle, six tire single units
  axleCnt3 (8), -- Three axle, single units
  axleCnt4 (9), -- Four or more axle, single unit
  axleCnt4Trailer (10), -- Four or less axle, single trailer
  axleCnt5Trailer (11), -- Five or less axle, single trailer
  axleCnt6Trailer (12), -- Six or more axle, single trailer
  axleCnt5MultiTrailer (13), -- Five or less axle, multi-trailer
  axleCnt6MultiTrailer (14), -- Six axle, multi-trailer
  axleCnt7MultiTrailer (15), -- Seven or more axle, multi-trailer
  ...
}

END
+140 −0
Original line number Diff line number Diff line
# <a name="AVP-Commons-PDU-Descriptions"></a>ASN.1 module AVP-Commons-PDU-Descriptions
OID: _{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103882) avpCommons (5) major-version-1 (1) minor-version-1(1) }_

## Data Elements:
```asn1

UInt8 ::= INTEGER (0..255)
Int16 ::= INTEGER (-32768..32767)
Int20 ::= INTEGER (-524288..524287)
UInt16 ::= INTEGER (0..65535)
UInt32 ::= INTEGER (0..4294967295)
UInt64 ::= INTEGER(0..18446744073709551615)
```

### <a name="RollingCounter"></a>RollingCounter
```asn1
RollingCounter ::= UInt16
```

### <a name="OEMSpecificData"></a>OEMSpecificData
```asn1
OEMSpecificData ::= UInt16
```

### <a name="WaypointIndex"></a>WaypointIndex
```asn1
WaypointIndex ::= UInt16
```

### <a name="Pose"></a>Pose

Values:
* _--_ of type [**Projected**](#Projected)  to the ground<br>
* **--** x and y are cartesian coordinates<br>
* _x_ of type [**Centimetre**](#Centimetre) <br>
* _y_ of type [**Centimetre**](#Centimetre) <br>
* _psi_ of type [**Psi**](#Psi)            <br>
* _--_ of type [**Angle**](#Angle)  between the longitudinal axis of the vehicle and the <br>
* **--** x (North) axis of the reference coordinate system<br>
```asn1
Pose ::= SEQUENCE { 
  x Centimetre,
  y Centimetre,     
  psi Psi           
}
```

### <a name="Psi"></a>Psi

Values:
* **xDirection** (0) <br>
```asn1
Psi ::= INTEGER {
    xDirection  (0) 
} (0..62831)        
                    
```

```asn1
CentimetrePerSecond ::= Int16   
Centimetre ::= Int20            
HighResCurvature ::= Int16      
Millisecond16 ::= Int16         
RadPerSecond ::= Int16          
```

### <a name="GearEnum"></a>GearEnum

Values:
* **unknown** (4)	 <br>
```asn1
GearEnum ::= ENUMERATED {
  park(0),       
  backwards(1),  
  neutral(2),    
  forwards(3),   
  unknown (4)	 
}
```

### <a name="VidVehicleStateEnum"></a>VidVehicleStateEnum

Values:
* **vehicle-lightflashing-inprogress** (2)<br>
* **vehicle-lightflashing-failed** (4)<br>
```asn1
VidVehicleStateEnum ::= ENUMERATED {
  vehicle-undefined(0),           			
  vehicle-ready(1),               			
  vehicle-lightflashing-inprogress (2), 	
  vehicle-lightflashing-completed(3),  		
  vehicle-lightflashing-failed (4), 		
  vehicle-authorized(5)           			
}
```

### <a name="SafetyViolationsEnum"></a>SafetyViolationsEnum
```asn1
SafetyViolationsEnum ::= ENUMERATED {
  no-violation(0),
  no-driving-permission-received(1),
  last-driving-permission-too-old(2),
  crc-violation-clock-sync-response(3),
  crc-violation-driving-permission(4),
  expiration-time-violation(5),
  driving-direction-mismatch(6),
  velocity-violation(7),
  curvature-min-violation(8),
  curvature-max-violation(9),
  clocks-not-synchronized(10),
  expiration-time-too-high(11),
  monitoring(12),
  ...
}
SessionMissionID ::= IA5String (SIZE(17..32)) 
```

### <a name="Description"></a>Description
```asn1
Description ::=  IA5String (SIZE(1..200)) 
```

### <a name="ParkingControlE2EProtection"></a>ParkingControlE2EProtection

* _--_ of type [**AUTOSAR**](#AUTOSAR)  Profile 4 e2e protection<br>
* _length_ of type [**UInt16**](#UInt16) <br>
* _rollingCounter_ of type [**UInt16**](#UInt16) <br>
* _dataID_ of type [**UInt32**](#UInt32) <br>
* _crc32_ of type [**UInt32**](#UInt32)                         <br>
```asn1
ParkingControlE2EProtection ::= SEQUENCE { 
  length UInt16,
  rollingCounter UInt16,  
  dataID UInt32,
  crc32 UInt32                        
}
```


Loading