Commit e150cebe authored by ASN.1 Documenter's avatar ASN.1 Documenter
Browse files

Merge branch 'WI-001958' into release2

parents 7c6942fe c122eb14
Loading
Loading
Loading
Loading
Loading

.gitmodules

0 → 100644
+3 −0
Original line number Diff line number Diff line
[submodule "cdd"]
	path = cdd
	url = https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2.git

AVM-Commons.asn

0 → 100644
+369 −0
Original line number Diff line number Diff line
AVM-Commons {
  itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103882) avmCommons (5) major-version-1 (1) minor-version-1(1)
}

DEFINITIONS AUTOMATIC TAGS ::= BEGIN  -- AVM-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)

/** 
 * 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 RO sytem and vehicles of a dedicated OEM.
 *
*/
ProprietaryExtensionField ::= UInt16


/** 
 * This type represents the container of data elements to indicate the vehicle's overall position in a cartesian coordinate system.
 * The location is projected to the ground, elevation is not considered .
 *
 * 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.  x (North) axis of the reference coordinate system.
 *
*/
Pose ::= SEQUENCE {  

  x Centimetre,
  y Centimetre,     
  psi Psi           
}


/** 
 * 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), 
	  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)

/** 
 * 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),       
  backwards(1),  
  neutral(2),    
  forwards(3),   
  unknown (4)	
}

/**
 * Data element directionIndicatorEnum describes the use of vehicle direction indicator system during VMC .
 * It offers the following signal values:
 * 
 * - 0 - `off`		  - The vehicle does not flash indicator lights at this stage. ,
 * - 1 - `right`	  - Flash right indicator lights.  ,
 * - 2 - `left`		  - Flash left indicator lights.  ,
 * - 3 - `both`		  - Flash right and left indicator lights.  ,
 * - 4 - `unknown`	- Direction indicator request is unknown. (Do not use for drive command).
 */
DirectionIndicatorEnum ::= ENUMERATED {
  off(0),      
  right(1),   
  left(2),    
  both(3),    
  unknown(4)  
}

/**
 * Data element MotorSystemEnum optionally describes the desired or system stae of the vehicle's propulsion motor (engine). 
 * It offers the following signal values:
 * 
 * - 0 - `off`      - Propulsion motor  off 
 * - 1 - `on`       - Propulsion motor on
 * - 2 - `unknown`  - The propulsion motor state is unknown.
 *
 */
MotorSystemEnum ::= ENUMERATED {
  off(0),    
  on(1),   
  unknown(2)	
}

/**
 * Data element VidVehicleStateEnum describes the current state in the vehicle identification process .
 * It offers the following signal values:
 * 
 * - 0 - `undefined`                    - Default value ,
 * - 1 - `ready`                        - Vehicle is ready to get flashing code ,
 * - 2 - `lightFlashingInProgress`      - Vehicle flashing is in progress,
 * - 3 - `lightFlashingCompleted`       - Flashing is finished,
 * - 4 - `lightFlashingFailed`          - This indicates that the vehicle can't flash because of vehicle error,
 * - 5 - `authorized`                   - Vehicle identification was successful and vehicle has switched its state.
 *
 */
VidVehicleStateEnum ::= ENUMERATED {
  undefined(0),   
  ready(1),        
  lightFlashingInProgress(2), 
  lightFlashingCompleted(3),   
  lightFlashingFailed(4),  
  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 - `noViolation`                         - Default value ,
 * - 1 - `noDrivingPermissionReceived`         - Vehicle has not received a driving permission ,
 * - 2 - `lastDrivingPermissionTooOld`         - The driving permission is outdated,
 * - 3 - `crcViolationClockSyncRequest`        - The time synchronization request has an invalid checksum,
 * - 4 - `crcViolationDrivingPermission`       - The driving permission has an invalid checksum,
 * - 5 - `expirationTimeViolation`             - the allowed time is expired.
 * - 6 - `drivingDirectionMismatch`            - wrong driving direction is indcated, plausibility error with speed signal,
 * - 7 - `velocityViolation`                   - The speed value is out of the allowed range ,
 * - 8 - `curvatureMinViolation`               - The allowed minimal curvature is out of range ,
 * - 9 - `curvatureMaxViolation`               - The allowed maximal curvature is out of range ,
 * - 10 - `expirationTimeTooHigh`              - The experiation time is out of the allowed range,
 * - 11 - `monitoring`                         - Violation monitoring is ongoing.
 */
 SafetyViolationsEnum ::= ENUMERATED {
  noViolation(0),
  noDrivingPermissionReceived(1),
  lastDrivingPermissionTooOld(2),
  crcViolationClockSyncRequest(3),
  crcViolationDrivingPermission(4),
  expirationTimeViolation(5),
  drivingDirectionMismatch(6),
  velocityViolation(7),
  curvatureMinViolation(8),
  curvatureMaxViolation(9),
  expirationTimeTooHigh(10),
  monitoring(11),
  ...
}

/** 
 * This type represents a container of system management data, i.e. identification labels.
 *
 * It shall include the following components: 
 * 
 * @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 vehicleID: It is a unique identifier that is known by the infrastructure and vehicle The vehicle needs to know its own vehicleID.
 *        This can serve as a safety check for the RO regarding vehicle parameters, as it receives them from the vehicle backend, 
 *        and it can then verify that it is communicating to the right vehicle through MVM (as the vehicle sends its vehicleID there).      
 *
 * @field facilityID: It is a unique identifier that describes the infrastructure in which the vehicle operates.
 *        It is used for documentation purposes. The vehicle does not respond to this data element 
 *
 */
SystemManagementData ::= SEQUENCE {     
  sessionID SessionMissionID OPTIONAL,
  missionID SessionMissionID OPTIONAL,
  vehicleID VehicleID OPTIONAL,
  facilityID FacilityID OPTIONAL
}

/** 
 * 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 serves for the identification of the specified vehicle
 * The value be freely selected as a string of 1 to 17 characters. 
 *
*/
VehicleID ::= IA5String (SIZE(1..17)) 

/** 
 * This DE serves for the identification of infrastructure facility 
 * The value be freely selected as a string of 1 to 32 characters. 
 *
*/
FacilityID ::= IA5String (SIZE(1..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))  

/** 
 * 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 (RO or vehicle). It is to the best effort unique within the network ;
 *                It is negotiated between the RO 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.
 *
*/
AvmE2EProtection ::= SEQUENCE {
  length UInt16,
  rollingCounter UInt16,  
  dataID UInt32,
  crc32 UInt32                     
}

END

LICENSE

0 → 100755
+23 −0
Original line number Diff line number Diff line
Copyright 2022 ETSI

Redistribution and use in source and binary forms, with or without 
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, 
   this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, 
   this list of conditions and the following disclaimer in the documentation 
   and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors 
   may be used to endorse or promote products derived from this software without 
   specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
OF THE POSSIBILITY OF SUCH DAMAGE.
 No newline at end of file
+532 −0

File added.

Preview size limit exceeded, changes collapsed.

+382 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading