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