Commit 5cd27cb6 authored by perezed's avatar perezed
Browse files

- PCVM changes to support auto-generation of documentation.

parent b729341d
Loading
Loading
Loading
Loading
Loading
+114 −30
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 PCIM PDU.
 *
 * It shall include the following components: 
 *
 * @field header: The header of the PCIM PDU.
 *
 * @field e2eProtection: A mandatory container for E2E Protection by Autosar Profile 4.
 *
 * @field pcim: The payload of the PCVM PDU.
*/
PCVM ::= SEQUENCE {
  header ItsPduHeader,
  e2eProtection ParkingControlE2EProtection,           -- Mandatory AUTOSAR container
  e2eProtection ParkingControlE2EProtection,           
  pcvm Pcvm
}

@@ -72,37 +82,123 @@ 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                   	
}

/**
  * 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 {               -- 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.
}


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

/**
@@ -127,18 +223,6 @@ VehicleSafetyFeedbackContainer ::= SEQUENCE {

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
}

/**
  * 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.  
  *