Commit 04198108 authored by urhahne's avatar urhahne
Browse files

Merge branch 'WI-001958' of https://forge.etsi.org/rep/ITS/asn1/avp_ts103882 into WI-001958

parents 92ad3e49 dc79c924
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -205,7 +205,7 @@ GearEnum ::= ENUMERATED {
 * - 1 - `vehicle-ready`						- Vehicle is ready to get flashing code ,
 * - 2 - `vehicle-lightflashing-inprogress`		- Vehicle flashing is in progress,
 * - 3 - `vehicle-lightflashing-completed`		- Flashing is finished,
 * - 4 - `vehicle-lightflashing-failed`			- This indicates that the vehicle cant flash because of vehicle error,
 * - 4 - `vehicle-lightflashing-failed`			- This indicates that the vehicle can't flash because of vehicle error,
 * - 5 - `vehicle-authorized`					- Vehicle identification was successful and vehicle has switched its state.
 *
 */
+31 −24
Original line number Diff line number Diff line
@@ -2,8 +2,6 @@ PCIM-PDU-Descriptions {
  itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103882) pcim (6) major-version-1 (1) minor-version-1 (1)
}



DEFINITIONS AUTOMATIC TAGS ::= BEGIN  -- Park Control Infrastucture Message

IMPORTS
@@ -31,7 +29,6 @@ FROM ETSI-ITS-CDD {
 *
 * @field pcim: the payload of the PCIM PDU.
 */

PCIM ::= SEQUENCE {
  header ItsPduHeader,
  e2eProtection ParkingControlE2EProtection,           
@@ -45,10 +42,9 @@ PCIM ::= SEQUENCE {
 *
 * @field vehicles: the Vehicles Container which carries min 1 and max. 32 vehicles in one PCIM container
*/

Pcim ::= SEQUENCE {
  vehicles SEQUENCE (SIZE(1..32)) OF VehicleContainer,  
  ...                                                   		-- extension marker
  ...
}

/** 
@@ -60,26 +56,34 @@ Pcim ::= SEQUENCE {
 *
 * @field msgGenerationTime: the time at which the vehicle container was fully assembled.
 *
 * @field sessionID: It is a unique identifier that is known by the infrastructure and the vehicle side at the same time. It is valid for a complete parking/marshalling task.
 * @field sessionID: It is a unique identifier that is known by the infrastructure and 
 *        the vehicle side at the same time. It is valid for a complete parking/marshalling task.
 *
 * @field missionID: It is a unique identifier that is known by the infrastructure and the vehicle side at the same time. It identifies a subtask within a sessionID.
 * @field missionID: It is a unique identifier that is known by the infrastructure and 
 *        the vehicle side at the same time. It identifies a subtask within a sessionID.
 *
 * @field rollingCounterFromPcvm: It serves as a mirror of the rolling counter that was received with the latest PCVM of the corresponding vehicle. 
 * @field rollingCounterFromPcvm: It serves as a mirror of the rolling counter that was 
 *        received with the latest PCVM of the corresponding vehicle. 
 *
 * @field vehicleIdentification: It allows the selection of the mechanism for visual vehicle identification. 
 *
 * @field drivingPermission: The driving permission container offers a safety concept to allow or deny vehicle motion. It defines the bounds within which the vehicle is allowed to drive.
 * @field drivingPermission: The driving permission container offers a safety concept to allow or deny vehicle motion.
 *        It defines the bounds within which the vehicle is allowed to drive.
 *
 * @field safetyTimeSyncRequest: The Remote Vehicle Operation needs to be able to continuously determine the current time in which the Subject Vehicle operates. This container supports functional safety concepts.
 * @field safetyTimeSyncRequest: The Remote Vehicle Operation needs to be able to continuously
 *        determine the current time in which the Subject Vehicle operates.
 *        This container supports functional safety concepts.
 *
 * @field driveCommand: It addresses the specific vehicle and determines the actual state request to the vehicle, especially the active drive request for the overall VCM operation.
 * @field driveCommand: It addresses the specific vehicle and determines the actual state
 *        request to the vehicle, especially the active drive request for the overall VCM operation.
 *
 * @field detectedVehiclePose: The RVO permanently senses the vehicle’s position in a proprietary two-dimensional coordinate system (X and Y). 
 * @field detectedVehiclePose: The RVO permanently senses the vehicle's position
 *        in a proprietary two-dimensional coordinate system (X and Y). 
 *
 * @field controlInterface: This container offers different control methods for vehicle motion control VMC as a choice between .
 *
 * @field OEMSpecificData: This data element defines optionally 2 bytes are used to carry specific information or request from an RVO system to a specific OEM vehicle.
 *
 * @field OEMSpecificData: This data element defines optionally 2 bytes are used to carry
 *        specific information or request from an RVO system to a specific OEM vehicle.
 */
VehicleContainer ::= SEQUENCE {
  checksum UInt32 OPTIONAL,
@@ -94,7 +98,7 @@ VehicleContainer ::= SEQUENCE {
  detectedVehiclePose DetectedVehiclePose OPTIONAL,  	
  controlInterface ControlInterface,                 	
  oemSpecific OEMSpecificData OPTIONAL,                	
  ...                                                   -- extension marker
  ...
}


@@ -108,7 +112,7 @@ VehicleContainer ::= SEQUENCE {
*/
VidRequest ::= CHOICE {     
  blinking Blinking,
  ...                                                   -- extension marker
  ...
}

/** 
@@ -116,11 +120,14 @@ VidRequest ::= CHOICE {
 *
 * It shall include the following components: 
 * 
 * @field vidRvoPublicKey : A 64-bit public key is transmitted from the RVO to the vehicle in order to derive the vehicle identification secret.
 * @field vidRvoPublicKey : A 64-bit public key is transmitted from the RVO to the vehicle
 *        in order to derive the vehicle identification secret.
 *
 * @field codeLength : The codelength data element sends a value that indicates how many bits (8 - 20) from the seed shall be used for generating the blinking pattern.
 * @field codeLength : The codelength data element sends a value that indicates how many bits (8 - 20)
 *        from the seed shall be used for generating the blinking pattern.
 *
 * @field currentState : This data element mirrors the current authorization/identification request status from the perspective of the RVO system.
 * @field currentState : This data element mirrors the current authorization/identification
 *        request status from the perspective of the RVO system.
 *
*/
Blinking ::= SEQUENCE {
@@ -205,7 +212,7 @@ DriveCommand ::= SEQUENCE {
/** 
 * This type represents the container with a report of the vehicle's localization.
 *
 * The RVO permanently senses the vehicles position in a relative two-dimensional coordinate system (X and Y). 
 * The RVO permanently senses the vehicle's position in a relative two-dimensional coordinate system (X and Y). 
 *
 * It shall include the following components: 
 * 
@@ -314,7 +321,7 @@ ControlPoint ::= SEQUENCE {
 *
 * It shall include the following components: 
 *
 * @field controlAcceleration: The data element represents the vehicless target acceleration in the according control point.
 * @field controlAcceleration: The data element represents the vehicles's target acceleration in the according control point.
 *
 * @field controlVelocity: The field controlVelocity is selected the according ControlPoint uses speed values instead of acceleration.
 * 
+142 −54
Original line number Diff line number Diff line
@@ -15,12 +15,22 @@ ItsPduHeader, TimestampIts, VehicleMass, VelocityComponentValue
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)
}

;

/** 
 * This type represents the PCVM PDU.
 *
 * It shall include the following components: 
 *
 * @field header: The header of the PCVM PDU.
 *
 * @field e2eProtection: A mandatory container for E2E Protection by Autosar Profile 4.
 *
 * @field pcvm: The payload of the PCVM PDU.
*/
PCVM ::= SEQUENCE {
  header ItsPduHeader,
  e2eProtection ParkingControlE2EProtection,           -- Mandatory AUTOSAR container
  e2eProtection ParkingControlE2EProtection,           
  pcvm Pcvm
}

@@ -29,7 +39,7 @@ PCVM ::= SEQUENCE {
  *
  * It includes the following components: 
  *
  * @ field msgGenerationTime  
  * @field msgGenerationTime: Represents the time when the PCVM was genaerated.   
  * 
  * @field sessionID: Represents a 32 character session ID.   				
  * 
@@ -53,7 +63,7 @@ PCVM ::= SEQUENCE {
  * 
  * @field vehicleProperties: Represents vehicle-specific data elements as feedback from vehicle to external system.
  * 
  * @ field oemSpecific. Represents an OEM specific 16 bit field for special purposes.
  * @field oemSpecific: Represents an OEM specific 16 bit field for special purposes.
  */
Pcvm ::= SEQUENCE {
  msgGenerationTime  TimestampIts OPTIONAL,
@@ -72,38 +82,127 @@ Pcvm ::= SEQUENCE {
  ...                                                           
}

/**
  * This type represents the container theat carries signals about the actual status of the vehicle's condition with reference to the driving task. This return signals from the vehicle is usable in the RVO system for correction and refinement of the vehicle motion control VMC.
  *
  * It includes the following components: 
  *
  * @field vehicleStateGenerationTime: Checks on the data freshness on receive side. 
  * 
  * @field operationMode: The current operation mode or state of the vehicle.
  * 
  * @field gearSelected: Direction in which the vehicle is currently driving or about to drive.
  * 
  * @field currentVelocity: Current vehicle velocity. Negative when driving backwards.
  * 
  * @field currentCurvature: Current vehicle curvature.
  * 
  * @field secureStandstill: True if the vehicle is currently in secure standstill (i.e. standstill and secured against rolling, even when vehicle is powered down and even on ramps).
  * 
  * @field idxLastWayPoint: Index of last WayPoint that has been received from infrastucture. 0 if not applicable.
  * 
  * @field localizedPose: The current vehicle pose estimated by the vehicle. (Usually close to the pose estimated by the GMS, prediction by the vehicle) 
*/
VehicleState ::= SEQUENCE {
  vehicleStateGenerationTime  TimestampIts OPTIONAL,  -- checks on the Data Freshness on receive side 
  operationMode OperationModeEnum,                    -- The current operation mode or state of the vehicle.
  gearSelected GearEnum,                              -- Direction in which the vehicle is currently driving or about to drive.
  currentVelocity VelocityComponentValue,                -- Current vehicle velocity. Negative when driving backwards.
  currentCurvature HighResCurvature,                  -- Current vehicle curvature.
  secureStandstill BOOLEAN,                           -- True if the vehicle is currently in secure standstill (i.e. standstill and secured against rolling, even when vehicle is powered down and even on ramps).
  idxLastWayPoint WaypointIndex OPTIONAL,             -- Index of last WayPoint that has been received from infrastucture. 0 if not applicable.
  localizedPose Pose OPTIONAL                         -- The current vehicle pose estimated by the vehicle. (Usually close to the pose estimated by the GMS, prediction by the vehicle) 
  vehicleStateGenerationTime  TimestampIts OPTIONAL, 
  operationMode OperationModeEnum,                    
  gearSelected GearEnum,                              
  currentVelocity VelocityComponentValue,                
  currentCurvature HighResCurvature,                 
  secureStandstill BOOLEAN,                          
  idxLastWayPoint WaypointIndex OPTIONAL,           
  localizedPose Pose OPTIONAL                     
}

/**
  * This type represents the optional container supporting a key exchange process that allows the two participants to agree on a secret seed. Note: It is assumed that the communication between the participants is authenticated (payloads are signed). The proposed key exchange is for safety only. It does not contribute to security.
  *
  * It includes the following components: 
  * 
  * @field  vidVehicleState: The current vehicle identification state.
  * 
  * @field  vidVehiclePublicKey: Public Key used by vehicle to derive vehicle identification secret.
*/
VidResponse ::= SEQUENCE {
 vidVehicleState VidVehicleStateEnum, 				  -- The current vehicle identification state
 vidVehiclePublicKey UInt64 						  -- Public Key used by vehicle to derive vehicle identification secret
 vidVehicleState VidVehicleStateEnum, 				  
 vidVehiclePublicKey UInt64 						
}

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.
  description Description OPTIONAL		-- optional description of the error with further details
/**
  * This type represents the optional container supporting the calculation of the ITS timestamp given in the expirationTime data element from the DrivingPermission container in the PCIM message.
  *
  * It includes the following components: 
  * 
  * @field challenge: Challenge received in the SafetyTimeSyncRequest message.
  * 
  * @field vehicleSafetyClockReceiveTimestamp: Time of the Vehicle Safety Clock when SafetyTimeSyncRequest arrived in the vehicle.
  * 
  * @field vehicleSafetyClockTransmitTimestamp: Time of the Vehicle Safety Clock when this response left for the RV.
  * 
  * @field checksum: See safety checksum calculation.
*/
SafetyTimeSyncResponse ::= SEQUENCE {
  challenge UInt16,                           			
  vehicleSafetyClockReceiveTimestamp TimestampIts,		
  vehicleSafetyClockTransmitTimestamp TimestampIts,		
  checksum UInt32                             			
}

/**
  * This type represents the optional container supporting a safe confirmation by the Subject Vehicle.
  *
  * It includes the following components: 
  * 
  * @field  vehicleType: Vehicle type identifier.
  * 
  * @field  checksum: Safety checksum calculation.
*/
SafeVehicleTypeConfirmation ::= SEQUENCE {
  vehicleType IA5String (SIZE(1..32)), 	
  checksum UInt32                   	
}

VehicleDebug ::= SEQUENCE {               -- Optional information from the vehicle that might help debugging and analysis
  requestedVelocity VelocityComponentValue,  -- The currently requested velocity sent to the vehicle. Negative when driving backwards.
  requestedCurvature HighResCurvature,    -- The currently requested curvature sent to the vehicle.
  powertrainActive BOOLEAN                -- True if the power train is active, e.g. the engine is running/e-motor ready.
/**
  * This type represents the optional container data carrier and is added to the PCVM message in case an error appears during VMC of the vehicle. 
  *
  * It includes the following components: 
  * 
  * @field time: Timestamp when the error occurred.
  * 
  * @field vehCode: 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.
  * 
  * @field customCode: Customer specific error code. The infrastructure won't further interpret this value.
  * 
  * @field description: optional description of the error with further details.
*/
VehicleError ::= SEQUENCE {
  time TimestampIts,    			
  vehCode VehCodeEnum,  		
  customCode UInt8,     				
  description Description OPTIONAL		
}

/**
  * This type represents the optional container added to the PCVM message mainly for development purposes. It is used during VMC of the vehicle. 
  *
  * It includes the following components: 
  * 
  * @field requestedVelocity: The currently requested velocity sent to the vehicle. Negative when driving backwards.
  * 
  * @field requestedCurvature: The currently requested curvature sent to the vehicle.
  * 
  * @field powertrainActive: True if the power train is active, e.g. the engine is running/e-motor ready.
*/
VehicleDebug ::= SEQUENCE {               
  requestedVelocity VelocityComponentValue,  
  requestedCurvature HighResCurvature,    
  powertrainActive BOOLEAN                
}

VehicleSafetyFeedback ::= SEQUENCE (SIZE(1..5)) OF VehicleSafetyFeedbackContainer   -- up to 5 VehicleSafetyFeedback containers for 20 ms monitoring, logging and debugging
/**
  * Up to 5 VehicleSafetyFeedback containers for 20 ms monitoring, logging and debugging.
*/
VehicleSafetyFeedback ::= SEQUENCE (SIZE(1..5)) OF VehicleSafetyFeedbackContainer   

/**
  * This type represents the optional container added to the PCVM message mainly as a surrogate for missing static vehicle data that RVO will possibly need.  
@@ -125,19 +224,10 @@ VehicleSafetyFeedbackContainer ::= SEQUENCE {
  currentVehicleSafetyClockTime TimestampIts  
}

SafetyViolationsContainer ::= SEQUENCE (SIZE(0..5)) OF SafetyViolationsEnum -- up to 5 safety violations can be reported per cycle

SafetyTimeSyncResponse ::= SEQUENCE {
  challenge UInt16,                           			-- Challenge received in the SafetyTimeSyncRequest message
  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(1..32)), 	-- vehicle type identifier
  checksum UInt32                   	-- See safety checksum calculation
}
/**
  * Up to 5 safety violations can be reported per cycle.
*/
SafetyViolationsContainer ::= SEQUENCE (SIZE(0..5)) OF SafetyViolationsEnum 

/**
  * This type represents the optional container added to the PCVM message mainly as a surrogate for missing static vehicle data that RVO will possibly need.  
@@ -181,16 +271,14 @@ VehicleProperties ::= SEQUENCE {
  ...
}

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

/**
  * This DE saves this state for logging purposes and forwards its content to the backend.
  *
  * The value shall be set to:
  * - 0 - `unknown(0)`            - The vehicle operation mode is not defined, 
  * - 1 - `initializing(1)`  		  - The vehicle is preparing for the mission, but hasnt entered automted mode yet,
  * - 2 - `prepared(2)`      		  - The vehicle is in automted mode, but currently doesnt follow one of the control interfaces (waypoints, direct control, ...),
  * - 3 - `driving(3)`       		  - The vehicle is in automted mode and actively follows one of the control interfaces (waypoints, direct control, ...). It hasnt reached the end of the given path yet. Also applies if the vehicle stopped temporarily,
  * - 1 - `initializing(1)`  		  - The vehicle is preparing for the mission, but hasn't entered automted mode yet,
  * - 2 - `prepared(2)`      		  - The vehicle is in automted mode, but currently doesn't follow one of the control interfaces (waypoints, direct control, ...),
  * - 3 - `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,
  * - 4 - `terminating(4)`   		  - The vehicle left automated mode and is terminating related functions,
  * - 5 - `suspend (5)` 				  - The vehicle is in a critical error state and requires external operator intervention,
  * - 6 - `temp-error (6)`        - The vehicle is in a non-critical error state and is initiating a deceleration into stop and hold, prior to suspend,
@@ -215,7 +303,7 @@ OperationModeEnum ::= ENUMERATED {
  *
  * The value shall be set to:
  * - 0 - `unspecified`        		- Any kind of error that is not specified otherwise. Infrastructure aborts the mission,
  * - 1 - `pathNotDriveable`  		- The vehicle cant follow the given waypoints, based on the given DetectedVehiclePose. Infrastructure tries to plan a different path or aborts the mission otherwise,
  * - 1 - `pathNotDriveable`  		- 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,
  * - 2 - `onboardVehicleFault` 	- Failure during vehicle onboarding,
  * - 3 - `communicationFault`		- vehicle internal comms fault,
  * - 4 - `vehicleEgressFault`	  - Failure during vehicle AVP egress or shutdown process.
+229 −29

File changed.

Preview size limit exceeded, changes collapsed.

+290 −50

File changed.

Preview size limit exceeded, changes collapsed.

Loading