Commit 6490334c authored by perezed's avatar perezed
Browse files

- XML merge

parent 6a95d12b
Loading
Loading
Loading
Loading
+0 −295
Original line number Diff line number Diff line
<<<<<<< HEAD
PcimModule DEFINITIONS AUTOMATIC TAGS ::= BEGIN  -- Park Control Infrastucture Message

PCIM ::= SEQUENCE {
  header ItsPduHeader,
  e2eProtection ParkingControlE2EProtection,           -- Mandatory AUTOSAR container
  pcim Pcim  
}

Pcim ::= SEQUENCE {
  vehicles SEQUENCE (SIZE(1..32)) OF VehicleContainer,  -- Max. 32 vehicles at a time based on size of VehicleContainerSeq options.
  ...                                                   -- extension marker
}

VehicleContainer ::= SEQUENCE {
  currentSessionID SessionMissionID,					-- up to 32 character ID
  currentMissionID 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
  drivingPermission DrivingPermission OPTIONAL,      	-- Defines the bounds within which the vehicle is allowed to drive.
  safetyTimeSyncRequest SafetyTimeSyncRequest OPTIONAL, -- Functional Safety related container
  driveCommand DriveCommand,                         	-- Contains commands for the automated drive.
  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
  blinking Blinking,
  ...
}

SafetyTimeSyncRequest ::= SEQUENCE {
  challenge UInt16, -- Challenge chosen by the Remote Vehicle Operation in accordance with the safety requirements. 
                    -- The Remote Vehicle Operation shall use this challenge to relate the response to this request.
  checksum UInt32   -- See safety checksum calculation
}

BlinkingSeed ::= INTEGER(0..18446744073709551615)

Blinking ::= SEQUENCE {
  seed BlinkingSeed,                         -- Seed for calculating codes for flashing indicator lights  .
  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.
}

DrivingPermission ::= SEQUENCE {
  expirationTime TimestampIts,      -- ETSI format from 1.1.2004 onwards.
  velocityMax CentimetrePerSecond,  -- Maximum allowed vehicle velocity.
  curvatureMin HighResCurvature,    -- Right curvature bounds.
  curvatureMax HighResCurvature,    -- Left curvature bounds.
  checksum UInt32                   -- See safety checksum calculation
}

DriveCommand ::= SEQUENCE {
  driveCommandAction DriveCommandActionEnum,   		-- Current driving command.
  terminateReason TerminateReasonEnum,         		-- If action equals terminate, indicates whether a terminate is requested because the vehicle reached the destination or because of an error.
													-- Option: terminateReason is mandatory. It only encodes terminate if the drive command is terminate
													-- Possible resolution: rename to health status, or use CHOICE in driveCommand and use this as a property of terminate drive command
  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.
}

DetectedVehiclePose ::= SEQUENCE {
  detectedPose Pose,
  poseMeasurementTime TimestampIts
}

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

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

WayPoint ::= SEQUENCE {
  index WaypointIndex,              -- Index of 0 means that the WayPoint is not valid/not treated on vehicle side.
  wayPointPose Pose,
  velocity CentimetrePerSecond,     -- Signed velocity value. Positive: drive forwards / Negative: reverse.
  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,
  controlTrajectory ControlTrajectory,
  stateTrajectory StateTrajectory OPTIONAL
}  

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
}

StateTrajectory ::= SEQUENCE (SIZE(0..50)) OF StatePoint

StatePoint ::= SEQUENCE {
  statePose Pose,
  velocity CentimetrePerSecond  -- Vehicle speed
}
  
-- *************** PCIM-SPECIFIC DATA DICTONARY ************************************

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
}

TerminateReasonEnum ::= ENUMERATED {
  proceed(0),               -- Everything is okay. Proceed, do not terminate.
  destination-reached(1),   -- Vehicle has reached its destination
  infrastructure-error(2),  -- Error in infrastructure
  vehicle-error(3),         -- Vehicle has sent an error code
  backend(4)                -- Error in backend
}

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
}

VehicleDirIndicatorEnum ::= ENUMERATED {
  dir-indicator-off(0),     -- Do not flash lights
  dir-indicator-right(1),   -- Flash right
  dir-indicator-left(2),    -- Flash left
  dir-indicator-both(3),    -- Flash left and right
  dir-indicator-unknown(4)  -- Direction indicator state is unknown
}

VidRequestStateEnum ::= ENUMERATED {
  undefined(0), -- Default value
  flashing(1), -- Infrastructure is prepared and waiting for the Subject Vehicle to flash the code.
  successful(2), -- The Subject Vehicle was recognized correctly and the identification is completed.
  new-code(3) -- A new Subject Vehicle identification cycle was started.
}

-- ******************** Imports from AVP_commons ***************************

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

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

GearEnum ::= ENUMERATED {
  neutral(0),    -- N: Neutral / Driving direction is unknown
  forwards(1),   -- D: Vehicle is driving forwards
  backwards(2),  -- R: Vehicle is driving backwards
  park(3)        -- P: Vehicle is in secure standstill, e.g. in PARK gear
}

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

VidVehicleStateEnum ::= ENUMERATED {
  vehicle-undefined(0),           -- Default value
  vehicle-ready(1),               -- Vehicle is ready to get flashing code
  vehicle-flashing-completed(2),  -- Flashing is finished
  vehicle-authorized(3)           -- 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!

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

-- *************************** Imports from CDD *****************************

ItsPduHeader ::= SEQUENCE {
    protocolVersion    OrdinalNumber1B,
    messageId          MessageId,
    stationId          StationId
}

/**
 * The DE represents an ordinal number that indicates the position of an element in a set. 
 * 
 * @category: Basic information
 * @revision: Created in V2.1.1
*/
OrdinalNumber1B ::= INTEGER(0..255) 

/** @category: Communication information
* @revision: Created in V2.1.1 from @ref ItsPduHeader.
*/
MessageId::= INTEGER { 
   denm              (1),  
   cam               (2), 
   poi               (3), 
   spatem            (4), 
   mapem             (5), 
   ivim              (6), 
   ev-rsr            (7), 
   tistpgtransaction (8), 
   srem              (9), 
   ssem              (10), 
   evcsn             (11), 
   saem              (12), 
   rtcmem            (13), 
   cpm               (14),
   imzm              (15),
   vam               (16),
   dsm               (17), 
   pcim              (18),
   pcvm              (19),
   mcm               (20),
   pam               (21)
} (0..255)

/**
 * This DE represents the identifier of an ITS-S.
 * The ITS-S ID may be a pseudonym. It may change over space and/or over time.
 *
 * @category: Basic information
 * @revision: Created in V2.1.1 based on @ref StationID
 */
StationId ::= INTEGER(0..4294967295)

TimestampIts ::= INTEGER (0..4398046511103)

LongitudinalAccelerationValue::= INTEGER {
    negativeOutOfRange (-160),
    positiveOutOfRange (160),
    unavailable        (161)  
} (-160 .. 161)

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

PCIM ::= SEQUENCE {
@@ -615,5 +321,4 @@ LongitudinalAccelerationValue::= INTEGER {
    unavailable        (161)  
} (-160 .. 161)

>>>>>>> remotes/origin/WI-001958
END
 No newline at end of file
+0 −219
Original line number Diff line number Diff line
<<<<<<< HEAD
PcvmModule DEFINITIONS AUTOMATIC TAGS ::= BEGIN  -- Park Control Vehicle Message


PCVM ::= SEQUENCE {
  header ItsPduHeader,
  e2eProtection ParkingControlE2EProtection,           -- Mandatory AUTOSAR container
  pcvm Pcvm
}

Pcvm ::= SEQUENCE {
  sessionID SessionMissionID,										-- 32 character ID
  rollingCounterFromPcim RollingCounter,     						-- Rolling counter of last received PCIM
  vehicleState VehicleState,                 						-- Relevant vehicle information.
  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
  oemSpecific OEMSpecificData OPTIONAL, 							-- OEM specific 16 bit container for special purposes.
  ...                                                               -- extension marker
}

VehicleState ::= SEQUENCE {
  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.
  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) 
}

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

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

VehicleSafetyFeedbackContainer ::= SEQUENCE {
  remainingTimeToDrive Millisecond16,         -- The time which the vehicle is allowed to keep driving until brakes must be engaged. Signed value.
                                              -- Option: CPM's relative time unit could be used if -1500..1500 is enough
  drivingAllowed BOOLEAN,                     -- True if the vehicle is currently allowed to drive, false if a safety stop happened.
  safetyViolations SafetyViolationsContainer, -- List of violations which currently lead to stopping the vehicle.
  currentVehicleSafetyClockTime TimestampIts  -- Time when safety component created this container
}

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
  currentVehicleSafetyClockTime TimestampIts, -- Time of the Vehicle Safety Clock when SafetyTimeSyncRequest was received
  checksum UInt32                             -- See safety checksum calculation
}

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

-- ******************** Imports from AVP_commons ***************************

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

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

GearEnum ::= ENUMERATED {
  neutral(0),    -- N: Neutral / Driving direction is unknown
  forwards(1),   -- D: Vehicle is driving forwards
  backwards(2),  -- R: Vehicle is driving backwards
  park(3)        -- P: Vehicle is in secure standstill, e.g. in PARK gear
}

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

VidVehicleStateEnum ::= ENUMERATED {
  vehicle-undefined(0),           -- Default value
  vehicle-ready(1),               -- Vehicle is ready to get flashing code
  vehicle-flashing-completed(2),  -- Flashing is finished
  vehicle-authorized(3)           -- 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!

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

-- *************************** Imports from CDD *****************************

ItsPduHeader ::= SEQUENCE {
    protocolVersion    OrdinalNumber1B,
    messageId          MessageId,
    stationId          StationId
}

/**
 * The DE represents an ordinal number that indicates the position of an element in a set. 
 * 
 * @category: Basic information
 * @revision: Created in V2.1.1
*/
OrdinalNumber1B ::= INTEGER(0..255) 

/** @category: Communication information
* @revision: Created in V2.1.1 from @ref ItsPduHeader.
*/
MessageId::= INTEGER { 
   denm              (1),  
   cam               (2), 
   poi               (3), 
   spatem            (4), 
   mapem             (5), 
   ivim              (6), 
   ev-rsr            (7), 
   tistpgtransaction (8), 
   srem              (9), 
   ssem              (10), 
   evcsn             (11), 
   saem              (12), 
   rtcmem            (13), 
   cpm               (14),
   imzm              (15),
   vam               (16),
   dsm               (17), 
   pcim              (18),
   pcvm              (19),
   mcm               (20),
   pam               (21)
} (0..255)

/**
 * This DE represents the identifier of an ITS-S.
 * The ITS-S ID may be a pseudonym. It may change over space and/or over time.
 *
 * @category: Basic information
 * @revision: Created in V2.1.1 based on @ref StationID
 */
StationId ::= INTEGER(0..4294967295)

TimestampIts ::= INTEGER (0..4398046511103)

LongitudinalAccelerationValue::= INTEGER {
    negativeOutOfRange (-160),
    positiveOutOfRange (160),
    unavailable        (161)  
} (-160 .. 161)


=======
PcvmModule DEFINITIONS AUTOMATIC TAGS ::= BEGIN  -- Park Control Vehicle Message


@@ -516,5 +298,4 @@ VehicleMass ::= INTEGER {
    unavailable(1024)
} (1..1024) 

>>>>>>> remotes/origin/WI-001958
END
 No newline at end of file