Commit fae9a57f authored by ASN.1 Checker's avatar ASN.1 Checker
Browse files

Documentation update

parent 5013a8a6
Loading
Loading
Loading
Loading
+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                        
}
```


docs/ETSI-ITS-CDD.md

0 → 100644
+8783 −0

File added.

Preview size limit exceeded, changes collapsed.

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

## Imports:
* **[AVP-Commons-PDU-Descriptions](AVP-Commons-PDU-Descriptions.md)** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103882) avpCommons (5) major-version-1 (1) minor-version-1(1) }*<br/>
* **[ETSI-ITS-CDD](ETSI-ITS-CDD.md)** *{ itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) 102894 cdd (2) major-version-3 (3) minor-version-1 (1) }*<br/>
## Data Elements:
### <a name="PCIM"></a>PCIM

* _header_ of type [**ItsPduHeader**](ETSI-ITS-CDD.md#ItsPduHeader) <br>
* _e2eProtection_ of type [**ParkingControlE2EProtection**](AVP-Commons-PDU-Descriptions.md#ParkingControlE2EProtection) <br>
* _pcim_ of type [**Pcim**](#Pcim) <br>
```asn1
PCIM ::= SEQUENCE {
  header ItsPduHeader,
  e2eProtection ParkingControlE2EProtection,           
  pcim Pcim  
}
```

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

* _vehicles_ of type **SEQUENCE**  (SIZE(1..32)) OF VehicleContainer<br>
```asn1
Pcim ::= SEQUENCE {
  vehicles SEQUENCE (SIZE(1..32)) OF VehicleContainer,  
  ...                                                   
}
```

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

* _checksum_ of type [**UInt32**](AVP-Commons-PDU-Descriptions.md#UInt32)  OPTIONAL<br>
* _msgGenerationTime_ of type [**TimestampIts**](ETSI-ITS-CDD.md#TimestampIts)  OPTIONAL<br>
* _sessionID_ of type [**SessionMissionID**](AVP-Commons-PDU-Descriptions.md#SessionMissionID) <br>
* _missionID_ of type [**SessionMissionID**](AVP-Commons-PDU-Descriptions.md#SessionMissionID)  OPTIONAL<br>
* _--_ of type [**Option**](#Option) : smaller data size might be sufficient<br>
* _rollingCounterFromPcvm_ of type [**RollingCounter**](AVP-Commons-PDU-Descriptions.md#RollingCounter) <br>
* _vehicleIdentification_ of type [**VidRequest**](#VidRequest)  OPTIONAL<br>
* _drivingPermission_ of type [**DrivingPermission**](#DrivingPermission)  OPTIONAL<br>
* _safetyTimeSyncRequest_ of type [**SafetyTimeSyncRequest**](#SafetyTimeSyncRequest)  OPTIONAL<br>
* _driveCommand_ of type [**DriveCommand**](#DriveCommand) <br>
* _detectedVehiclePose_ of type [**DetectedVehiclePose**](#DetectedVehiclePose)  OPTIONAL<br>
* _controlInterface_ of type [**ControlInterface**](#ControlInterface) <br>
* _oemSpecific_ of type [**OEMSpecificData**](AVP-Commons-PDU-Descriptions.md#OEMSpecificData)  OPTIONAL<br>
```asn1
VehicleContainer ::= SEQUENCE {
  checksum UInt32 OPTIONAL,
  msgGenerationTime  TimestampIts OPTIONAL,
  sessionID SessionMissionID,							
  missionID SessionMissionID OPTIONAL,           		
  rollingCounterFromPcvm RollingCounter,             	
  vehicleIdentification VidRequest OPTIONAL,         	
  drivingPermission DrivingPermission OPTIONAL,      	
  safetyTimeSyncRequest SafetyTimeSyncRequest OPTIONAL, 
  driveCommand DriveCommand,                         	
  detectedVehiclePose DetectedVehiclePose OPTIONAL,  	
  controlInterface ControlInterface,                 	
  oemSpecific OEMSpecificData OPTIONAL,                	
  ...                                                   
}
```

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

* _--_ of type [**We**](#We)  proposed a change here: with extension marker we are flexible with identification technologies<br>
* _blinking_ of type [**Blinking**](#Blinking) <br>
```asn1
VidRequest ::= CHOICE {     
  blinking Blinking,
  ...
}
```

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

* _challenge_ of type [**UInt16**](AVP-Commons-PDU-Descriptions.md#UInt16) <br>
* _--_ of type [**The**](#The)  Remote Vehicle Operation shall use this challenge to relate the response to this request.<br>
* _checksum_ of type [**UInt32**](AVP-Commons-PDU-Descriptions.md#UInt32)    <br>
```asn1
SafetyTimeSyncRequest ::= SEQUENCE {
  challenge UInt16, 
  checksum UInt32   
}
```

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

* _vidRvoPublicKey_ of type [**UInt64**](AVP-Commons-PDU-Descriptions.md#UInt64) <br>
* _codeLength_ of type [**UInt8**](AVP-Commons-PDU-Descriptions.md#UInt8) <br>
* _currentState_ of type [**VidRequestStateEnum**](#VidRequestStateEnum)            <br>
* _--_ of type [**For**](#For)  now<br>
```asn1
Blinking ::= SEQUENCE {
  vidRvoPublicKey UInt64,					 
  codeLength UInt8,                          
  currentState VidRequestStateEnum           
}
```

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

* _expirationTime_ of type [**TimestampIts**](ETSI-ITS-CDD.md#TimestampIts) <br>
* _velocityMax_ of type [**CentimetrePerSecond**](AVP-Commons-PDU-Descriptions.md#CentimetrePerSecond) <br>
* _curvatureMin_ of type [**HighResCurvature**](AVP-Commons-PDU-Descriptions.md#HighResCurvature) <br>
* _curvatureMax_ of type [**HighResCurvature**](AVP-Commons-PDU-Descriptions.md#HighResCurvature) <br>
* _checksum_ of type [**UInt32**](AVP-Commons-PDU-Descriptions.md#UInt32)                    <br>
```asn1
DrivingPermission ::= SEQUENCE {
  expirationTime TimestampIts,      
  velocityMax CentimetrePerSecond,  
  curvatureMin HighResCurvature,    
  curvatureMax HighResCurvature,    
  checksum UInt32                   
}
```

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

* _driveCommandAction_ of type [**DriveCommandActionEnum**](#DriveCommandActionEnum) <br>
* _terminateReason_ of type [**TerminateReasonEnum**](#TerminateReasonEnum) <br>
* _--_ of type [**Option**](#Option) : terminateReason is mandatory. It only encodes terminate if the drive command is terminate<br>
* _--_ of type [**Possible**](#Possible)  resolution: rename to health status<br>
* _selectGear_ of type [**GearEnum**](AVP-Commons-PDU-Descriptions.md#GearEnum)  OPTIONAL<br>
* _directionIndicator_ of type [**VehicleDirIndicatorEnum**](#VehicleDirIndicatorEnum) <br>
* _--_ of type [**Option**](#Option) : Using CDD's ExteriorLights can be considered as well. It would support multiple light request commands.<br>
* _emergencyStopRequest_ of type [**EmergencyStopEnum**](#EmergencyStopEnum)  OPTIONAL<br>
* _interlockRequest_ of type [**InterlockEnum**](#InterlockEnum)  OPTIONAL<br>
* _hornRequest_ of type [**VehicleHornRequestEnum**](#VehicleHornRequestEnum)  OPTIONAL   	<br>
```asn1
DriveCommand ::= SEQUENCE {
  driveCommandAction DriveCommandActionEnum,   		
  terminateReason TerminateReasonEnum,         		
  selectGear GearEnum OPTIONAL,                     
  directionIndicator VehicleDirIndicatorEnum,  		
  emergencyStopRequest EmergencyStopEnum OPTIONAL,	
  interlockRequest InterlockEnum OPTIONAL,          
  hornRequest VehicleHornRequestEnum OPTIONAL   	
}
```

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

* _detectedPose_ of type [**Pose**](AVP-Commons-PDU-Descriptions.md#Pose) <br>
* _poseMeasurementTime_ of type [**TimestampIts**](ETSI-ITS-CDD.md#TimestampIts) <br>
```asn1
DetectedVehiclePose ::= SEQUENCE {
  detectedPose Pose,
  poseMeasurementTime TimestampIts
}
```

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

* _pathSnippet_ of type [**PathSnippet**](#PathSnippet) <br>
* _trajectoryControl_ of type [**TrajectoryControl**](#TrajectoryControl) <br>
```asn1
ControlInterface ::= CHOICE {
  pathSnippet PathSnippet,
  trajectoryControl TrajectoryControl
}
```

### <a name="PathSnippet"></a>PathSnippet
```asn1
PathSnippet ::= SEQUENCE (SIZE(0..50)) OF WayPoint
```

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

* _index_ of type [**WaypointIndex**](AVP-Commons-PDU-Descriptions.md#WaypointIndex) <br>
* _wayPointPose_ of type [**Pose**](AVP-Commons-PDU-Descriptions.md#Pose) <br>
* _velocity_ of type [**CentimetrePerSecond**](AVP-Commons-PDU-Descriptions.md#CentimetrePerSecond) <br>
* _curvature_ of type [**HighResCurvature**](AVP-Commons-PDU-Descriptions.md#HighResCurvature)         <br>
```asn1
WayPoint ::= SEQUENCE {
  index WaypointIndex,              
  wayPointPose Pose,
  velocity CentimetrePerSecond,     
  curvature HighResCurvature        
}
```

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

* _timeReference_ of type [**TimestampIts**](ETSI-ITS-CDD.md#TimestampIts) <br>
* _driveDirection_ of type [**DriveDirectionEnum**](#DriveDirectionEnum)  OPTIONAL<br>
* _controlTrajectory_ of type [**ControlTrajectory**](#ControlTrajectory) <br>
* _stateTrajectory_ of type [**StateTrajectory**](#StateTrajectory)  OPTIONAL<br>
```asn1
TrajectoryControl ::= SEQUENCE {
  timeReference TimestampIts,
  driveDirection DriveDirectionEnum OPTIONAL,
  controlTrajectory ControlTrajectory,
  stateTrajectory StateTrajectory OPTIONAL
}
```

### <a name="ControlTrajectory"></a>ControlTrajectory
```asn1
ControlTrajectory ::= SEQUENCE (SIZE(0..50)) OF ControlPoint
```

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

* _curvature_ of type [**HighResCurvature**](AVP-Commons-PDU-Descriptions.md#HighResCurvature) <br>
* _controlParameter_ of type [**ControlParameter**](#ControlParameter) <br>
```asn1
ControlPoint ::= SEQUENCE {
  curvature HighResCurvature,                 			
  controlParameter ControlParameter					  
}
```

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

* _controlAcceleration_ of type [**ControlAcceleration**](#ControlAcceleration) <br>
* _controlVelocity_ of type [**ControlVelocity**](#ControlVelocity) <br>
```asn1
ControlParameter ::= CHOICE {
controlAcceleration ControlAcceleration,
controlVelocity ControlVelocity
}
```

### <a name="ControlAcceleration"></a>ControlAcceleration
```asn1
ControlAcceleration ::= LongitudinalAccelerationValue 	    
```

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

* _velocity_ of type [**CentimetrePerSecond**](AVP-Commons-PDU-Descriptions.md#CentimetrePerSecond) <br>
* _distanceToStop_ of type [**Centimetre**](AVP-Commons-PDU-Descriptions.md#Centimetre)  OPTIONAL			<br>
```asn1
ControlVelocity ::= SEQUENCE {
  velocity CentimetrePerSecond,  				
  distanceToStop Centimetre OPTIONAL			
}
```

### <a name="StateTrajectory"></a>StateTrajectory
```asn1
StateTrajectory ::= SEQUENCE (SIZE(0..50)) OF StatePoint
```

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

* _statePose_ of type [**Pose**](AVP-Commons-PDU-Descriptions.md#Pose) <br>
* _velocity_ of type [**CentimetrePerSecond**](AVP-Commons-PDU-Descriptions.md#CentimetrePerSecond)   <br>
```asn1
StatePoint ::= SEQUENCE {
  statePose Pose,
  velocity CentimetrePerSecond  
}
```

### <a name="DriveCommandActionEnum"></a>DriveCommandActionEnum
```asn1
DriveCommandActionEnum ::= ENUMERATED {
  unknown(0),     
  initialize(1),  
  wait(2), 		  
  drive(3),       
  terminate(4)    
}
```

### <a name="TerminateReasonEnum"></a>TerminateReasonEnum
```asn1
TerminateReasonEnum ::= ENUMERATED {
  proceed(0),               
  destination-reached(1),   
  infrastructure-error(2),  
  vehicle-error(3),         
  backend(4)                
}
```

### <a name="EmergencyStopEnum"></a>EmergencyStopEnum
```asn1
EmergencyStopEnum ::= ENUMERATED {
  inactive(0),   	
  precharge(1),  	
  active(2),      	
  temp-error(3),	
  suspend(4)		
}
```

### <a name="InterlockEnum"></a>InterlockEnum
```asn1
InterlockEnum ::= ENUMERATED {
  none(0),   			
  zonal-interlock(1),  	
  global-stop(2)      	
}
```

### <a name="VehicleHornRequestEnum"></a>VehicleHornRequestEnum
```asn1
VehicleHornRequestEnum ::= ENUMERATED {
  none(0),   			
  single-horn(1),		
  double-horn(2),		
  hold-horn(3)			
}
```

### <a name="VehicleDirIndicatorEnum"></a>VehicleDirIndicatorEnum
```asn1
VehicleDirIndicatorEnum ::= ENUMERATED {
  dir-indicator-off(0),     
  dir-indicator-right(1),   
  dir-indicator-left(2),    
  dir-indicator-both(3),    
  dir-indicator-unknown(4)  
}
```

### <a name="VidRequestStateEnum"></a>VidRequestStateEnum
```asn1
VidRequestStateEnum ::= ENUMERATED {
  undefined(0), 	
  flashing(1), 		
  successful(2), 	
  new-code(3) 		
}
```

### <a name="DriveDirectionEnum"></a>DriveDirectionEnum
```asn1
DriveDirectionEnum ::= ENUMERATED {
  forwards(0),         
  backwards(1)		   
}
```


+281 −0

File added.

Preview size limit exceeded, changes collapsed.