DEFINITIONS AUTOMATIC TAGS ::= BEGIN -- AVP-specific common data elements
UInt8 ::= INTEGER (0..255)
Int16 ::= INTEGER (-32768..32767)
Int20 ::= INTEGER (-524288..524287)
UInt16 ::= INTEGER (0..65535)
UInt32 ::= INTEGER (0..4294967295)
RollingCounter ::= UInt16
OEMSpecificContainer ::= SEQUENCE {
...
-- Option: this is a discussion point, how we can implement this in ASN.1 the best way
}
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.
}
VehicleAuthorizationEnum ::= 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(2..34)) -- Session ID response, also suitable to carry VIN for special use cases!
-- The data size and the datatype should be reviewed.
authorizationState AuthorizationStateEnum -- current authorization request status
-- For now, we kept the authorization state technology-agnostic.
}
VehicleIdentificationTechnology ::= CHOICE {
blinking Blinking,
...
}
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.
}
DrivingPermission ::= SEQUENCE {
expirationTime Millisecond42, -- ETSI format from 1.1.2004 onwards.
velocityMax MetrePerSecond16, -- Maximum allowed vehicle velocity.
curvatureMin PerMetre16, -- Right curvature bounds.
curvatureMax PerMetre16 -- Left curvature bounds.
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.
}
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.