Commit 3a0306e3 authored by urhahne's avatar urhahne
Browse files

PCIM AVPcommons latest status for markdown

parent 71437c38
Loading
Loading
Loading
Loading
Loading
+240 −27
Original line number Diff line number Diff line
@@ -4,19 +4,79 @@ AVP-Commons-PDU-Descriptions {

DEFINITIONS AUTOMATIC TAGS ::= BEGIN  -- AVP-specific common data elements


/** 
 * This DE represents with an unsigned interger value. 
 * Size: 8 bit, 1 Byte
 *
*/
UInt8 ::= INTEGER (0..255)


/** 
 * This DE represents with a signed interger value. 
 * Size: 16 bit, 2 Bytes
 *
*/
Int16 ::= INTEGER (-32768..32767)
Int20 ::= INTEGER (-524288..524287)

/** 
 * This DE represents with an unsigned interger value. 
 * Size: 16 bit, 2 Bytes
 *
*/
UInt16 ::= INTEGER (0..65535)

/** 
 * This DE represents with an unsigned interger value. 
 * Size: 32 bit, 4 Bytes
 *
*/
UInt32 ::= INTEGER (0..4294967295)

/** 
 * This DE represents with an unsigned interger value. 
 * Size: 64 bit, 8 Bytes
 *
*/
UInt64 ::= INTEGER(0..18446744073709551615)

/** 
 * This DE represents a rolling counter 
 * The value shall be set to 0 when starting an application: 
 * This DE is incremented by 1 for each consecutive message. In case of overflow due to the size limit it restarts at 0. 
 *
*/
RollingCounter ::= UInt16

/** 
 * This DE represents a waypoint index 
 * The value shall be set according to the sequence of a path snippet or a complete driving trajectory. 
 * In case of overflow due to the size limit it restarts at 0. 
 *
*/
WaypointIndex ::= UInt16

/** 
 * This DE represents a 2 byte unspecified
 * The value shall be set due to specific requirements between a RVO sytem and vehicles of a dedicated OEM.
 *
*/
OEMSpecificData ::= UInt16

WaypointIndex ::= UInt16

/** 
 * This type represents the container of data elements to indicate the vehicle's overall position in a cartesian coordinate system 
 *
 * It includes the following components: 
 *
 * @field x: The position in x direction
 * 
 * @field y: The position in x direction
 *
 * @field psi: The orientation of the vehicle's driving direction
 *
*/
Pose ::= SEQUENCE { -- Projected to the ground, elevation not considered
                    -- x and y are cartesian coordinates
  x Centimetre,
@@ -26,35 +86,159 @@ Pose ::= SEQUENCE { -- Projected to the ground, elevation not considered
                    -- x (North) axis of the reference coordinate system
}


/** 
 * This DE represents the vehicle's Counter-clockwise orientation in a cartesian coordinate system 
 *
 * The value shall be set to: 
 * - `n` (`n >= 0` and `n <= 62831`) to indicate positive orientation equal to or less than n, and greater than (n-1),
 * - `62832` if the  radian is out of range, i.e. greater than 524287 cm,
 * - `-62833` when the data is unavailable.  Remark: 2* Pi = 6.28318
 *
 * @unit: 0.0001 radian
*/
Psi ::= INTEGER {
    xDirection  (0) -- 0.0001 radian
} (0..62831)        -- Counter-clockwise
                    -- Option: the range and enumerated values can be fine-tuned
    xDirection  (0), 
	outOfRange  (62832),
    unavailable (62833)	
} (0..62833)        			

/** 
 * This DE represents a distance in cm 
 *
 * The value shall be set to: 
 * - `n` (`n > -524287` and `n <= 0`) to indicate negative distance equal to or less than n x 1 cm, and greater than (n-1) x 1 cm,
 * - `n` (`n > 0` and `n < 524287`) to indicate positive distance equal to or less than n x 1 cm, and greater than (n-1) x 1 cm,
 * - `-524287` if the  distance is out of negative range
 * - `524287` if the  distance is out of positive range 
 * - `-524288` when the data is unavailable.
 *
 * @unit: 1 centimeter
*/
Centimetre ::= INTEGER {
	negativeOutOfRange (-524287),
    positiveOutOfRange (524287),
    unavailable        (-524288)  
}
(-524288..524287)

--                                    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
RadPerSecond ::= Int16          -- [rad/s]  0.0001
/** 
 * This DE describes vehicle turning curve with the following information:
 * ```
 *     Value = 1 / Radius * 100000
 * ```
 * wherein radius is the vehicle turning curve radius in metres. 
 * 
 * Positive values indicate a turning curve to the left hand side of the driver.
 * It corresponds to the vehicle coordinate system as defined in ISO 8855 [21].
 *
 * The value shall be set to:
 * - `-32767` for  values smaller than -32767,
 * - `n` (`n > -32767` and `n < 0`) for negative values equal to or less than `n`, and greater than `(n-1)`,
 * - `0` when the vehicle is moving straight,
 * - `n` (`n > 0` and `n < 32767`) for positive values equal to or less than `n`, and greater than `(n-1)`,
 * - `32767`, for values  greater than 1021,
 * - `-32768`, if the information is not available.
 * 
 * @note: The present DE is limited to vehicle types as defined in ISO 8855 [21].
 * 
 * @unit: 1 over 100 000 metres
 */
HighResCurvature ::= INTEGER {
    outOfRangeNegative (-32767),
    straight           (0),
    outOfRangePositive (32767), 
    unavailable        (-32768)
} (-32768..32767)


/**
 * This DE represents the rotational speed of a steering wheel movement 
 *
 * The value shall be set to:
 * - `-32 766` to indicate that the rotational speed is equal to or greater than 3.2766 [rad/s] to the right,
 * - `n` (`n > -32 766` and `n <= 0`) to indicate that the rotation is clockwise (i.e. to the right) and is equal to or less than n x 0,01 rad/s, 
      and greater than (n-1) x 0,01 rad/s,
 * - `n` (`n > 0` and `n < 32 766`) to indicate that the rotation is anti-clockwise (i.e. to the left) and is equal to or less than n x 0,01 rad/s, 
      and greater than (n-1) x 0,01 rad/s,
 * - `32 766` to indicate that the rotational speed is greater than 3.2765 rad/second to the left,
 * - `32 767` to indicate that the information is not available.
 * 
 * @unit:0.0001 [rad/s]. 
*/
RadPerSecond ::= INTEGER {
    negativeOutOfRange (-32766), 
    positiveOutOfRange (32766), 
    unavailable        (-32767)
} (-32767..32766)

/**
 * This DE represents a signed time value, size 2 Bytes.
 * 
 * @unit: 0,001 s   (1 ms)
 */
Millisecond16 ::= Int16      

/**
 * Data element GearEnum optionally describes the desired or actual driving direction of the vehicle in alignment with the signed value of the vehicle speed . 
 * It offers the following signal values:
 * 
 * - 0 - `park`			- P: Vehicle engages P ,
 * - 1 - `backwards`	- R: Vehicle drives backwards ,
 * - 2 - `neutral`		- N: Vehicle engages neutral gear,
 * - 3 - `forwards`		- D: Vehicle drives forwards,
 * - 4 - `unknown`		- unknown gear status. Not used for commanding a vehicle gear position.
 *
 */
GearEnum ::= ENUMERATED {
  park(0),       -- P: Vehicle is in secure standstill, e.g. in PARK gear
  backwards(1),  -- R: Vehicle is driving backwards
  neutral(2),    -- N: Neutral / Driving direction is unknown
  forwards(3),   -- D: Vehicle is driving forwards
  unknown (4)	 -- Do not use as a command: Unknown or faulted gear state from vehicle
  park(0),       
  backwards(1),  
  neutral(2),    
  forwards(3),   
  unknown (4)	
}

/**
 * Data element VidVehicleStateEnum describes the current state in the vehicle identification process .
 * It offers the following signal values:
 * 
 * - 0 - `vehicle-undefined`					- Default value ,
 * - 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 can’t flash because of vehicle error,
 * - 5 - `vehicle-authorized`					- Vehicle identification was successful and vehicle has switched its state.
 *
 */
VidVehicleStateEnum ::= ENUMERATED {
  vehicle-undefined(0),           			-- Default value
  vehicle-ready(1),               			-- Vehicle is ready to get flashing code
  vehicle-lightflashing-inprogress (2), 	-- Vehicle flashing in progress
  vehicle-lightflashing-completed(3),  		-- Flashing is finished
  vehicle-lightflashing-failed (4), 		-- indicating vehicle can’t flash because of vehicle error
  vehicle-authorized(5)           			-- Vehicle identification was successful and vehicle has switched its state
  vehicle-undefined(0),   
  vehicle-ready(1),        
  vehicle-lightflashing-inprogress (2), 
  vehicle-lightflashing-completed(3),   
  vehicle-lightflashing-failed (4),  
  vehicle-authorized(5)      
}

/**
 * Data element SafetyViolationsEnum reports the outcome of a specific safety cycle.  
 * As a result a violation leads to stopping the vehicle.
 *
 * It offers the following signal values:
 * 
 * - 0 - `no-violation`							- Default value ,
 * - 1 - `no-driving-permission-received`		- Vehicle has not received a driving permission ,
 * - 2 - `last-driving-permission-too-old`		- The driving permission is outdated,
 * - 3 - `crc-violation-clock-sync-response`	- The time synchronization response has an invalid checksum,
 * - 4 - `crc-violation-driving-permission`		- The driving permission has an invalid checksum,
 * - 5 - `expiration-time-violation`			- the allowed time is expired.
 * - 6 - `driving-direction-mismatch`			- wrong driving direction is indcated, plausibility error with speed signal,
 * - 7 - `velocity-violation`					- The speed value is out of the allowed range ,
 * - 8 - `curvature-min-violation`				- The allowed minimal curvature is out of range ,
 * - 9 - `curvature-max-violation`				- The allowed maximal curvature is out of range ,
 * - 10 - `clocks-not-synchronized`				- RVO and vehicle clocks are not synchrionized,
 * - 11 - `expiration-time-too-high`			- The experiation time is out of the allowed range,
 * - 12 - `monitoring`							- Violation monitoring is ongoing.
 */
 SafetyViolationsEnum ::= ENUMERATED {
  no-violation(0),
  no-driving-permission-received(1),
@@ -71,15 +255,44 @@ SafetyViolationsEnum ::= ENUMERATED {
  monitoring(12),
  ...
}
SessionMissionID ::= IA5String (SIZE(17..32)) -- Session ID response, also suitable to carry VIN for special use cases!

Description ::=  IA5String (SIZE(1..200)) -- for detailed  description, eg. of an error 
/** 
 * This DE represents a the identification of an driving session or mission  
 * The value be freely selected as a string of 17 to 32 characters. 
 *
*/
SessionMissionID ::= IA5String (SIZE(17..32)) 

/** 
 * This DE represents a detailed description.
 * It can serve to generate a more extensive, user-friendly description e.g. of an error. 
 * The value be freely selected as a string of 1 to 200 characters. 
 *
*/
Description ::=  IA5String (SIZE(1..200))  

ParkingControlE2EProtection ::= SEQUENCE { -- AUTOSAR Profile 4 e2e protection
/** 
 * This type represents the container of data elements supporting E2E protection mechanisms for the Parking Control messages 
 * It complies with AUTOSAR Profile 4 e2e protection. It protects the body of the message and starts in a byte aligned position in the BTP stream.
 *
 * It includes the following components: 
 *
 * @field length: represents the overall payload of the body container in the Park Control message. Starting point is this data element.
 * 
 * @field rollingCounter: This is a recurring identifier of a Park control message. This identifier is incremented by 1 for the consecutive  message. 
 *                        In case of overflow due to the size limit it restarts at 0.
 *
 * @field dataID: The data element is usable to identify the originating system (RVO or vehicle). It is of free choice;
 *                It is negotiated between the RVO and the vehicle OEM in case they want to identify each other with this signal
 *
 * @field crc32: The CRC is calculated in byte limits of the body container, considering the data element length. The signal crc32 itself is excluded from the payload
 *
*/
ParkingControlE2EProtection ::= SEQUENCE {
  length UInt16,
  rollingCounter UInt16,  
  dataID UInt32,
  crc32 UInt32                        -- Cyclic redundency check, hamming distance >= 6
  crc32 UInt32                     
}

END
+384 −89

File changed.

Preview size limit exceeded, changes collapsed.