DSRC.asn 180 KB
Newer Older
ritterth's avatar
ritterth committed
* - `rejected`          - 5: The prioritization or preemption request was rejected by the traffic controller
* - `maxPresence`       - 6: The Request has exceeded maxPresence time. Used when the controller has determined that the requester should then back off and request an alternative.
* - `reserviceLocked`   - 7: Prior conditions have resulted in a reservice
*                            locked event: the controller requires the passage of time before another similar request will be accepted
*
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
PrioritizationResponseStatus ::= ENUMERATED {
  unknown           (0),
  requested         (1),
  processing        (2),
  watchOtherTraffic (3),
  granted           (4),
  rejected          (5),
  maxPresence       (6),
  reserviceLocked   (7),
  ...
}

ritterth's avatar
ritterth committed
/**
ritterth's avatar
ritterth committed
* This DE provides a means to indicate if a request (found in the Signal RequestMessage) represents
* a new service request, a request update, or a request cancellation for either preemption or priority services.
ritterth's avatar
ritterth committed
*
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
PriorityRequestType ::= ENUMERATED {
  priorityRequestTypeReserved (0),
  priorityRequest             (1),
  priorityRequestUpdate       (2),
  priorityCancellation        (3),
  ...
}

ritterth's avatar
ritterth committed
/**
ritterth's avatar
ritterth committed
* This DE is used to define regions where unique additional content may be added and
* used in the message set. The index values defined below represent various regions known at the time of publication. This
* list is expected to grow over time. The index values assigned here can be augmented by local (uncoordinated)
* assignments in the allowed range. It should be noted that such a local value is specified in the "REGION" ASN module, so
* there is no need to edit the DSRC ASN specification of the standard. This process is further described in Section 11.1.
ritterth's avatar
ritterth committed
*
ritterth's avatar
ritterth committed
* - `noRegion` - 0: Use default supplied stubs
* - `addGrpA`  - 1: USA
* - `addGrpB`  - 2: Japan
* - `addGrpC`  - 3: EU
*
* @note: new registered regional IDs will be added here
*        The values 128 and above are for local region use
ritterth's avatar
ritterth committed
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
RegionId ::= INTEGER (0..255)
  noRegion     RegionId ::= 0
  addGrpA      RegionId ::= 1
  addGrpB      RegionId ::= 2
  addGrpC      RegionId ::= 3

ritterth's avatar
ritterth committed
/**
* This DE is used to provide a unique ID between two parties for various dialog exchanges.
* Combined with the sender's VehicleID (consisting of a TempID or a Station ID), this provides a unique string for some
* mutually defined period of time. A typical example of use would be a signal preemption or priority request dialog
* containing multiple requests from one sender (denoted by the unique RequestID with each). When such a request is
* processed and reflected in the signal status messages, the original sender and the specific request can both be determined.
*
* @note: In typical use, this value is simply incremented in a modulo fashion to ensure a unique stream of values for the
*        device creating it. Any needs for uniqueness across multiple dialogs to one or more parties shall be the responsibility of
*        the device to manage. There are often normative restrictions on the device changing its TempID during various dialogs
*        when this data element is used. Further details of these operational concepts can be found in the relevant standards.
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
RequestID ::= INTEGER (0..255)

ritterth's avatar
ritterth committed
/**
ritterth's avatar
ritterth committed
* This DE is used to state what type of signal request is being made to a signal
* controller by a DSRC device in a defined role (such as a police vehicle). The levels of the request typically convey a
* sense of urgency or importance with respect to other demands to allow the controller to use predefined business rules to
* determine how to respond. These rules will vary in terms of how details of overall importance and urgency are to be
* ranked, so they are to be implemented locally. As a result of this regional process, the list below should be assigned well-
* defined meanings by the local deployment. These meaning will typically result in assigning a set of values to list for each
* vehicle role type that is to be supported.
*
* - `requestImportanceLevel1`     1: The least important request
* - `requestImportanceLevel14`   14: The most important request
* - `requestImportanceReserved`  15: Reserved for future use
ritterth's avatar
ritterth committed
*
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
RequestImportanceLevel ::= ENUMERATED {
  requestImportanceLevelUnKnown  (0),
  requestImportanceLevel1        (1),
  requestImportanceLevel2        (2),
  requestImportanceLevel3        (3),
  requestImportanceLevel4        (4),
  requestImportanceLevel5        (5),
  requestImportanceLevel6        (6),
  requestImportanceLevel7        (7),
  requestImportanceLevel8        (8),
  requestImportanceLevel9        (9),
  requestImportanceLevel10      (10),
  requestImportanceLevel11      (11),
  requestImportanceLevel12      (12),
  requestImportanceLevel13      (13),
  requestImportanceLevel14      (14),
  requestImportanceReserved     (15)
}

ritterth's avatar
ritterth committed
/**
ritterth's avatar
ritterth committed
* This DE is used to further define the details of the role which any DSRC device might
* play when making a request to a signal controller. This value is not always needed. For example, perhaps in a
* deployment all police vehicles are to be treated equally. The taxonomy of what details are selected to be entered into the
* list is a regional choice but should be devised to allow the controller to use predefined business rules to respond using the
* data. As another example, perhaps in a regional deployment a cross-city express type of transit vehicle is given a different
* service response for the same request than another type of transit vehicle making an otherwise similar request. As a
* result of this regional process, the list below should be assigned well-defined meanings by the local deployment. These
* meanings will typically result in assigning a set of values to list for each vehicle role type that is to be supported.
*
* - `requestSubRole1`        - 1:  The first type of sub role
* - `requestSubRole14`       - 14: The last type of sub role
* - `requestSubRoleReserved` - 15: Reserved for future use
ritterth's avatar
ritterth committed
*
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
RequestSubRole ::= ENUMERATED {
  requestSubRoleUnKnown    (0),
  requestSubRole1          (1),
  requestSubRole2          (2),
  requestSubRole3          (3),
  requestSubRole4          (4),
  requestSubRole5          (5),
  requestSubRole6          (6),
  requestSubRole7          (7),
  requestSubRole8          (8),
  requestSubRole9          (9),
  requestSubRole10        (10),
  requestSubRole11        (11),
  requestSubRole12        (12),
  requestSubRole13        (13),
  requestSubRole14        (14),
  requestSubRoleReserved  (15)
}

ritterth's avatar
ritterth committed
/**
* The RestrictionAppliesTo data element provides a short list of common vehicle types which may have one or more
ritterth's avatar
ritterth committed
* special movements at an intersection. In general, these movements are not visible to other traffic with signal heads, but
* the SPAT data reflects the state of the movement. Various restricted movements at an intersection can be expressed
* using this element to indicate where the movement applies.
*
* - `none` :              applies to nothing
* - `equippedTransit`:    buses etc.
* - `equippedTaxis`:
* - `equippedOther`:      other vehicle types with necessary signal phase state reception equipment
* - `emissionCompliant`:  regional variants with more definitive items also exist
* - `equippedBicycle`:
* - `weightCompliant`:
* - `heightCompliant`:    Items dealing with traveler needs serviced by the infrastructure. These end users (which are not vehicles) are presumed to be suitably equipped
* - `pedestrians`:
* - `slowMovingPersons`:
* - `wheelchairUsers`:
* - `visualDisabilities`:
* - `audioDisabilities`:  hearing
ritterth's avatar
ritterth committed
*
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
RestrictionAppliesTo ::= ENUMERATED {
  none,
  equippedTransit,
  equippedTaxis,
  equippedOther,
  emissionCompliant,
  equippedBicycle,
  weightCompliant,
  heightCompliant,
  pedestrians,
  slowMovingPersons,
  wheelchairUsers,
  visualDisabilities,
  audioDisabilities,
  otherUnknownDisabilities,
  ...
}

ritterth's avatar
ritterth committed
/**
ritterth's avatar
ritterth committed
* This DE defines an intersection-unique value to convey data about classes of users.
* The mapping used varies with each intersection and is defined in the MAP message if needed. The defined mappings
* found there are used to determine when a given class is meant. The typical use of this element is to map additional
* movement restrictions or rights (in both the MAP and SPAT messages) to special classes of users (trucks, high sided
* vehicles, special vehicles etc.). There is the general presumption that in the absence of this data, any allowed movement
* extends to all users.
*
* An index value to identify data about classes of users the value used varies with each intersection's
* needs and is defined in the map to the assigned classes of supported users.
ritterth's avatar
ritterth committed
*
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
RestrictionClassID ::= INTEGER (0..255)

ritterth's avatar
ritterth committed
/**
ritterth's avatar
ritterth committed
* This DE is a 16-bit globally unique identifier assigned to an entity responsible for assigning
* Intersection IDs in the region over which it has such authority. The value zero shall be used for testing, and should only be
* used in the absence of a suitable assignment. A single entity which assigns intersection IDs may be assigned several
* RoadRegulatorIDs. These assignments are presumed to be permanent.
*
* The value zero shall be used for testing only
ritterth's avatar
ritterth committed
*
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
RoadRegulatorID ::= INTEGER (0..65535)

ritterth's avatar
ritterth committed
/**
ritterth's avatar
ritterth committed
* This DE is used to uniquely define a section of roadway within a country or region in a 16-bit field.
* Assignment rules for this value are established elsewhere and may use regional assignment schemas that vary. Within
* the region the policies used to ensure an assigned value’s uniqueness before that value is reused is the responsibility of
* that region. Such reuse is expected to occur, but over somewhat lengthy epoch (months).
*
* The values zero to 255 shall be used for testing only
* Note that the value assigned to an RoadSegment will be
* unique within a given regional ID only during its use
ritterth's avatar
ritterth committed
*
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
RoadSegmentID ::= INTEGER (0..65535)

ritterth's avatar
ritterth committed
/**
* The RoadwayCrownAngle data element relates the gross tangential angle of the roadway surface with respect to
ritterth's avatar
ritterth committed
* the local horizontal axis and is measured at the indicated part of the lane. This measurement is typically made at the
* crown (centerline) or at an edge of the lane path. Its typical use is to relate data used in speed warning and traction
* calculations for the lane segment or roadway segment in which the measurement is taken.
*
* - The value -128 shall be used for unknown
* - The value zero shall be used for angles which are between -0.15 and +0.15
ritterth's avatar
ritterth committed
*
ritterth's avatar
ritterth committed
* @unit: 0.3 degrees of angle over a range of -38.1 to + 38.1 degrees
ritterth's avatar
ritterth committed
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
RoadwayCrownAngle ::= INTEGER (-128..127)

ritterth's avatar
ritterth committed
/**
ritterth's avatar
ritterth committed
* This DE contains the stream of octets of the actual RTCM message that is being sent.
* The message’s contents are defined in RTCM Standard 10403.1 and in RTCM Standard 10402.1 and its successors.
* Note that most RTCM messages are considerably smaller than the size limit defined here, but that some messages may
* need to be broken into smaller messages (as per the rules defined in the RTCM work) in order to be transmitted over DSRC.
ritterth's avatar
ritterth committed
*
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
RTCMmessage ::= OCTET STRING (SIZE(1..1023))

ritterth's avatar
ritterth committed
/**
ritterth's avatar
ritterth committed
* This DE provides the specific revision of the RTCM standard which is being used. This is
* helpful to know precisely the mapping of the message types to their definitions, as well as some minor transport layer
* ordering details when received in the mobile unit. All RTCM SC-104 messages follow a common message numbering
* method (wherein all defined messages are given unique values) which can be decoded from the initial octets of the
* message. This operation is typically performed by the GNSS rover that consumes the messages, so it is transparent at
* the DSRC message set level.
*
* Values:
* - `rtcmRev2`:  Std 10402.x et al
* - `rtcmRev3`:  Std 10403.x et al
*
* @note:: In order to fully support the use of networked transport of RTCM corrections (so-called Ntrip systems), the
*         enumerated list of protocol types provides for all the common types outlined in RTCM Standard 10410.0, Appendix B. It is
*         anticipated that revisions 3.x and 2.3 will predominate in practice as they do today. It should also be noted that RTCM
*         standards use the term `byte` for an 8-bit value, while in this standard the term `octet` is used.
ritterth's avatar
ritterth committed
*
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
RTCM-Revision ::= ENUMERATED {
  unknown  (0),
  rtcmRev2 (1),
  rtcmRev3 (2),
ritterth's avatar
ritterth committed
  reserved (3),
  ...
}

ritterth's avatar
ritterth committed
/**
* A 12-bit signed scaling factor supporting scales from zero (which is not used) to >200%. In this data element, the
ritterth's avatar
ritterth committed
* value zero is taken to represent a value of one (scale 1:1). Values above and below this add or remove exactly 0.05%
* from the initial value of 100%. Hence, a value of 2047 adds 102.35% to 100%, resulting in a scale of 202.35% exactly (the
* largest valid scale value). Negative values which would result in an effective final value below zero are not supported. The
* smallest valid value allowed is -1999 and the remaining negative values are reserved for future definition.
ritterth's avatar
ritterth committed
*
ritterth's avatar
ritterth committed
* @unit: in steps of 0.05 percent
ritterth's avatar
ritterth committed
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
Scale-B12 ::= INTEGER (-2048..2047)

ritterth's avatar
ritterth committed
/**
ritterth's avatar
ritterth committed
* This DE is an index used to map between the internal state machine of one or more signal controllers (or
* other types of traffic flow devices) and a common numbering system that can represent all possible combinations of active
* states (movements and phases in US traffic terminology). All possible movement variations are assigned a unique value
* within the intersection. Conceptually, the ID represents a means to provide a list of lanes in a set which would otherwise
* need to be enumerated in the message. The values zero and 255 are reserved, so there may up to 254 different signal
* group IDs within one single intersection. The value 255 represents a protected-Movement-Allowed or permissive-
* Movement-Allowed condition that exists at all times. This value is applied to lanes, with or without traffic control devices,
* that operate as free-flow lanes. Typically referred to as Channelized Right/Left Turn Lanes (in right/left-hand drive
* countries).
*
* Values:
* - the value `0` shall be used when the ID is not available or not known
* - the value `255` is reserved to indicate a permanent green movement state
* - therefore a simple 8 phase signal controller device might use 1..9 as its groupIDs
ritterth's avatar
ritterth committed
*
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
SignalGroupID ::= INTEGER (0..255)

ritterth's avatar
ritterth committed
/**
* This DE is an enumerated list of attributes about the current lane segment which
* may be enabled or disabled to indicate the presence or absence of the selected attribute on the segment. A segment is
* one or more of the straight lines formed between each set of node points. It is common for a segment attribute to persist
* for more than one set of node points if there is any curvature in the lane itself. The described attributes are all binary flags
* in that they do not need to convey any additional data. Other attributes allow sending short data values to reflect a setting
* which is set and persists in a similar fashion.
*
* Various values which can be Enabled and Disabled for a lane segment
* - reserved:
Thomas Ritter's avatar
Thomas Ritter committed
* - doNotBlock: segment where a vehicle may not come to a stop
* - whiteLine:  segment where lane crossing not allowed such as the final few meters of a lane 
* - mergingLaneLeft: indicates porous lanes
* - mergingLaneRight: indicates porous lanes
* - curbOnLeft: indicates presence of curbs
* - curbOnRight: indicates presence of curbs
ritterth's avatar
ritterth committed
* - loadingzoneOnLeft:  loading or drop off zones
* - loadingzoneOnRight: loading or drop off zones
Thomas Ritter's avatar
Thomas Ritter committed
* - turnOutPointOnLeft: opening to adjacent street/alley/road
* - turnOutPointOnRight: opening to adjacent street/alley/road
* - adjacentParkingOnLeft: side of road parking
* - adjacentParkingOnRight: side of road parking
* - adjacentBikeLaneOnLeft: presence of marked bike lanes
* - adjacentBikeLaneOnRight: presence of marked bike lanes
* - sharedBikeLane: right of way is shared with bikes who may occupy entire lane width
* - bikeBoxInFront:
* - transitStopOnLeft: any form of bus/transit loading, with pull in-out access to lane on left
* - transitStopOnRight: any form of bus/transit loading, with pull in-out access to lane on right
* - transitStopInLane: any form of bus/transit loading, in mid path of the lane
* - sharedWithTrackedVehicle: lane is shared with train or trolley, not used for crossing tracks 
ritterth's avatar
ritterth committed
* - safeIsland: begin/end a safety island in path
* - lowCurbsPresent: for ADA support
* - rumbleStripPresent: for ADA support
* - audibleSignalingPresent: for ADA support
* - adaptiveTimingPresent: for ADA support
* - rfSignalRequestPresent: Supports RF push to walk technologies
* - partialCurbIntrusion: path is blocked by a median or curb but at least 1 meter remains open for use
*                         and at-grade passage Lane geometry details
Thomas Ritter's avatar
Thomas Ritter committed
* - taperToLeft: Used to control final path shape (see standard for defined shapes)
* - taperToRight: Used to control final path shape (see standard for defined shapes)
* - taperToCenterLine: Used to control final path shape (see standard for defined shapes)
ritterth's avatar
ritterth committed
* - parallelParking: Parking at an angle with the street
* - headInParking:   Parking at an angle with the street
* - freeParking:     No restriction on use of parking
* - timeRestrictionsOnParking: Parking is not permitted at all times
*                              typically used when the 'parking' lane becomes a driving lane at times
* - costToPark: Used where parking has a cost
* - midBlockCurbPresent: a protruding curb near lane edge
* - unEvenPavementPresent: a disjoint height at lane edge
*
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
SegmentAttributeXY ::= ENUMERATED {
  reserved                  ,
  doNotBlock                ,
  whiteLine                 ,
  mergingLaneLeft           ,
  mergingLaneRight          ,
  curbOnLeft                ,
  curbOnRight               ,
  loadingzoneOnLeft         ,
  loadingzoneOnRight        ,
  turnOutPointOnLeft        ,
  turnOutPointOnRight       ,
  adjacentParkingOnLeft     ,
  adjacentParkingOnRight    ,
  adjacentBikeLaneOnLeft    ,
  adjacentBikeLaneOnRight   ,
  sharedBikeLane            ,
  bikeBoxInFront            ,
  transitStopOnLeft         ,
  transitStopOnRight        ,
  transitStopInLane         ,
  sharedWithTrackedVehicle  ,
  safeIsland                ,
  lowCurbsPresent           ,
  rumbleStripPresent        ,
  audibleSignalingPresent   ,
  adaptiveTimingPresent     ,
  rfSignalRequestPresent    ,
  partialCurbIntrusion      ,
  taperToLeft               ,
  taperToRight              ,
  taperToCenterLine         ,
  parallelParking           ,
  headInParking             ,
  freeParking               ,
  timeRestrictionsOnParking ,
  costToPark                ,
  midBlockCurbPresent       ,
  unEvenPavementPresent     ,
  ...
}

ritterth's avatar
ritterth committed
/**
* This DE is used to express the radius (length) of the semi-major axis of an
* ellipsoid representing the accuracy which can be expected from a GNSS system in 5cm steps,
* typically at a one sigma level of confidence.
*
* Value is semi-major axis accuracy at one standard dev.
* - Range 0-12.7 meter, LSB = .05m
* - 254 = any value equal or greater than 12.70 meter
* - 255 = unavailable semi-major axis value
*
* @unit: 0.05m
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
SemiMajorAxisAccuracy ::= INTEGER (0..255)

ritterth's avatar
ritterth committed
/**
* This DE is used to orientate the angle of the semi-major axis of an
* ellipsoid representing the accuracy which can be expected from a GNSS system with respect to the coordinate system.
*
* Value is orientation of semi-major axis
* - relative to true north (0-359.9945078786 degrees)
ritterth's avatar
ritterth committed
* - LSB units of 360/65535 deg = 0.0054932479
* - a value of 0 shall be 0 degrees
* - a value of 1 shall be 0.0054932479 degrees
* - a value of 65534 shall be 359.9945078786 deg
* - a value of 65535 shall be used for orientation unavailable
*
* @unit: 360/65535 degree
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
SemiMajorAxisOrientation ::= INTEGER (0..65535)

ritterth's avatar
ritterth committed
/**
* This DE is used to express the radius of the semi-minor axis of an ellipsoid
* representing the accuracy which can be expected from a GNSS system in 5cm steps, typically at a one sigma level of
* confidence.
*
* Value is semi-minor axis accuracy at one standard dev
* - range 0-12.7 meter, LSB = .05m
* - 254 = any value equal or greater than 12.70 meter
* - 255 = unavailable semi-minor axis value
*
* @unit: 0.05m
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
SemiMinorAxisAccuracy ::= INTEGER (0..255)

ritterth's avatar
ritterth committed
/**
* This data element represents the recommended velocity of an object, typically a vehicle speed along a roadway,
* expressed in unsigned units of 0.1 meters per second.
*
* - LSB units are 0.1 m/s
* - the value 499 shall be used for values at or greater than 49.9 m/s
* - the value 500 shall be used to indicate that speed is unavailable
*
* @unit: 0.1 m/s
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
SpeedAdvice ::= INTEGER (0..500)

ritterth's avatar
ritterth committed
/**
* This DE is used to provide the 95% confidence level for the currently reported
* value of @ref Speed, taking into account the current calibration and precision of the sensor(s) used to measure and/or
ritterth's avatar
ritterth committed
* calculate the value. This data element is only to provide the listener with information on the limitations of the sensing
* system, not to support any type of automatic error correction or to imply a guaranteed maximum error. This data element
* should not be used for fault detection or diagnosis, but if a vehicle is able to detect a fault, the confidence interval should
* be increased accordingly.
ritterth's avatar
ritterth committed
*
* - 0 - `unavailable` : Not Equipped or unavailable
* - 1 - `prec100ms`   : 100  meters / sec
* - 2 - `prec10ms`    : 10   meters / sec
* - 3 - `prec5ms`     : 5    meters / sec
* - 4 - `prec1ms`     : 1    meters / sec
* - 5 - `prec0-1ms`   : 0.1  meters / sec
* - 6 - `prec0-05ms`  : 0.05 meters / sec
* - 7 - `prec0-01ms`  : 0.01 meters / sec
*
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
SpeedConfidenceDSRC ::= ENUMERATED {
   unavailable (0),
   prec100ms   (1),
   prec10ms    (2),
   prec5ms     (3),
   prec1ms     (4),
   prec0-1ms   (5),
   prec0-05ms  (6),
   prec0-01ms  (7)
ritterth's avatar
ritterth committed
 }

/**
* This is the 4 octet random device identifier, called the TemporaryID. When used for a mobile OBU device, this value
* will change periodically to ensure the overall anonymity of the vehicle, unlike a typical wireless or wired 802 device ID.
* Because this value is used as a means to identify the local vehicles that are interacting during an encounter, it is used in
* the message set. Other devices, such as infrastructure (RSUs), may have a fixed value for the temporary ID value. See
* also @ref StationId which is used in other deployment regions.
*
* @note: The circumstances and times at which various DSRC devices (notably OBUs) create and change their current
*        Temporary ID is a complex application level topic. It should be noted that the Temporary ID is not the same as a device
*        MAC value, although when used as a means to uniquely identify a device, both have many common properties. It should
*        further be noted that the MAC value for a mobile OBU device (unlike a typical wireless or wired 802 device) will
*        periodically change to a new random value to ensure the overall anonymity of the vehicle.
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
TemporaryID ::= OCTET STRING (SIZE(4))

ritterth's avatar
ritterth committed
/**
* This DE is used to provide the 95% confidence level for the currently reported
* value of DE @ref Throttle, taking into account the current calibration and precision of the sensor(s) used to measure and/or
* calculate the value. This data element is only to provide information on the limitations of the sensing system, not to
* support any type of automatic error correction or to imply a guaranteed maximum error. This data element should not be
* used for fault detection or diagnosis, but if a vehicle is able to detect a fault, the confidence interval should be increased
* accordingly. If a fault that triggers the MIL is of a nature to render throttle performance unreliable, then ThrottleConfidence
* should be represented as "notEquipped."
*
* - 0 - `unavailable`:    B'00 Not Equipped or unavailable
* - 1 - `prec10percent`:  B'01 10 percent Confidence level
* - 2 - `prec1percent`:   B'10 1 percent Confidence level
* - 3 - `prec0-5percent`: B'11 0.5 percent Confidence level
*
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
ThrottleConfidence ::= ENUMERATED {
   unavailable     (0),
   prec10percent   (1),
   prec1percent    (2),
   prec0-5percent  (3)
ritterth's avatar
ritterth committed
* This DE is used to provide the 95% confidence level for the currently reported value
ritterth's avatar
ritterth committed
* of time, taking into account the current calibration and precision of the sensor(s) used to measure and/or calculate the
* value. This data element is only to provide information on the limitations of the sensing system, not to support any type of
* automatic error correction or to imply a guaranteed maximum error. This data element should not be used for fault
* detection or diagnosis, but if a vehicle is able to detect a fault, the confidence interval should be increased accordingly.
*
* - 0 - `unavailable`  : Not Equipped or unavailable
* - 1 - `time-100-000` : Better than 100 Seconds
* - 2 - `time-050-000` : Better than 50 Seconds
* - 3 - `time-020-000` : Better than 20 Seconds
* - 4 - `time-010-000` : Better than 10 Seconds
* - 5 - `time-002-000` : Better than 2 Seconds
* - 6 - `time-001-000` : Better than 1 Second
* - 7 - `time-000-500` : Better than 0.5 Seconds
* - 8 - `time-000-200` : Better than 0.2 Seconds
* - 9 - `time-000-100` : Better than 0.1 Seconds
* - 10 - `time-000-050` : Better than 0.05 Seconds
ritterth's avatar
ritterth committed
* - 11 - `time-000-020` : Better than 0.02 Seconds
* - 12 - `time-000-010` : Better than 0.01 Seconds
* - 13 - `time-000-005` : Better than 0.005 Seconds
* - 14 - `time-000-002` : Better than 0.001 Seconds
* - 15 - `time-000-001` : Better than 0.001 Seconds
Thomas Ritter's avatar
Thomas Ritter committed
* - 16 - `time-000-000-5` : Better than 0.000,5 Seconds
* - 17 - `time-000-000-2` : Better than 0.000,2 Seconds
* - 18 - `time-000-000-1` : Better than 0.000,1 Seconds
* - 19 - `time-000-000-05` : Better than 0.000,05 Seconds
* - 20 - `time-000-000-02` : Better than 0.000,02 Seconds
* - 21 - `time-000-000-01` : Better than 0.000,01 Seconds
* - 22 - `time-000-000-005` : Better than 0.000,005 Seconds
* - 23 - `time-000-000-002` : Better than 0.000,002 Seconds
* - 24 - `time-000-000-001` : Better than 0.000,001 Seconds
* - 25 - `time-000-000-000-5` : Better than 0.000,000,5 Seconds
* - 26 - `time-000-000-000-2` : Better than 0.000,000,2 Seconds
* - 27 - `time-000-000-000-1` : Better than 0.000,000,1 Seconds
* - 28 - `time-000-000-000-05` : Better than 0.000,000,05 Seconds
* - 29 - `time-000-000-000-02` : Better than 0.000,000,02 Seconds
* - 30 - `time-000-000-000-01` : Better than 0.000,000,01 Seconds
* - 31 - `time-000-000-000-005` : Better than 0.000,000,005 Seconds
* - 32 - `time-000-000-000-002` : Better than 0.000,000,002 Seconds
* - 33 - `time-000-000-000-001` : Better than 0.000,000,001 Seconds
ritterth's avatar
ritterth committed
* - 34 - `time-000-000-000-000-5` : Better than 0.000,000,000,5 Seconds
* - 35 - `time-000-000-000-000-2` : Better than 0.000,000,000,2 Seconds
* - 36 - `time-000-000-000-000-1` : Better than 0.000,000,000,1 Seconds
* - 37 - `time-000-000-000-000-05` : Better than 0.000,000,000,05 Seconds
* - 38 - `time-000-000-000-000-02` : Better than 0.000,000,000,02 Seconds
* - 39 - `time-000-000-000-000-01` : Better than 0.000,000,000,01 Seconds
*
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
TimeConfidence ::= ENUMERATED {
   unavailable              (0),
   time-100-000             (1),
   time-050-000             (2),
   time-020-000             (3),
   time-010-000             (4),
   time-002-000             (5),
   time-001-000             (6),
   time-000-500             (7),
   time-000-200             (8),
   time-000-100             (9),
   time-000-050            (10),
   time-000-020            (11),
   time-000-010            (12),
   time-000-005            (13),
   time-000-002            (14),
   time-000-001            (15),
   time-000-000-5          (16),
   time-000-000-2          (17),
   time-000-000-1          (18),
   time-000-000-05         (19),
   time-000-000-02         (20),
   time-000-000-01         (21),
   time-000-000-005        (22),
   time-000-000-002        (23),
   time-000-000-001        (24),
   time-000-000-000-5      (25),
   time-000-000-000-2      (26),
   time-000-000-000-1      (27),
   time-000-000-000-05     (28),
   time-000-000-000-02     (29),
   time-000-000-000-01     (30),
   time-000-000-000-005    (31),
   time-000-000-000-002    (32),
   time-000-000-000-001    (33),
   time-000-000-000-000-5  (34),
   time-000-000-000-000-2  (35),
   time-000-000-000-000-1  (36),
   time-000-000-000-000-05 (37),
   time-000-000-000-000-02 (38),
   time-000-000-000-000-01 (39)
}

ritterth's avatar
ritterth committed
/**
* This is the statistical confidence for the predicted time of signal group state change. For evaluation, the formula
* 10^(x/a)-b with a=82.5 and b=1.3 was used. The values are encoded as probability classes with proposed values listed in
* the below table in the ASN.1 specification.
*
* Value: Probability
* - 0 - 21%
* - 1 - 36%
* - 2 - 47%
* - 3 - 56%
* - 4 - 62%
* - 5 - 68%
* - 6 - 73%
* - 7 - 77%
* - 8 - 81%
* - 9 - 85%
* - 10 - 88%
* - 11 - 91%
* - 12 - 94%
* - 13 - 96%
* - 14 - 98%
* - 15 - 100%
*
* @unit: percent
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
TimeIntervalConfidence ::= INTEGER (0..15)

ritterth's avatar
ritterth committed
/**
*  This DE is used to relate basic level of current ridership.
*
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
TransitVehicleOccupancy ::= ENUMERATED {
  occupancyUnknown    (0),
  occupancyEmpty      (1),
  occupancyVeryLow    (2),
  occupancyLow        (3),
  occupancyMed        (4),
  occupancyHigh       (5),
  occupancyNearlyFull (6),
  occupancyFull       (7)
}

ritterth's avatar
ritterth committed
/**
* This DE is used to relate basic information about the transit run in progress. This is
* typically used in a priority request to a signalized system and becomes part of the input processing for how that system
* will respond to the request.
*
* - 0 - `loading`:     parking and unable to move at this time
* - 1 - `anADAuse`:    an ADA access is in progress (wheelchairs, kneeling, etc.)
* - 2 - `aBikeLoad`:   loading of a bicycle is in progress
* - 3 - `doorOpen`:    a vehicle door is open for passenger access
* - 4 - `charging`:    a vehicle is connected to charging point
* - 5 - `atStopLine`:  a vehicle is at the stop line for the lane it is in
*
* @note: Most of these values are used to detect that the transit vehicle in not in a state where movement can occur
* (and that therefore any priority signal should be ignored until the vehicle is again ready to depart).
*
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
TransitVehicleStatus ::= BIT STRING {
  loading     (0),
  anADAuse    (1),
  aBikeLoad   (2),
  doorOpen    (3),
  charging    (4),
  atStopLine  (5)
} (SIZE(8))

ritterth's avatar
ritterth committed
/**
* This DE is used to provide the current state of the vehicle transmission.
*
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
TransmissionState ::= ENUMERATED {
  neutral      (0),
  park         (1),
  forwardGears (2),
  reverseGears (3),
  reserved1    (4),
  reserved2    (5),
  reserved3    (6),
  unavailable  (7)
}

ritterth's avatar
ritterth committed
/**
* The height of the vehicle, measured from the ground to the highest surface, excluding any antenna(s), and
* expressed in units of 5 cm. In cases of vehicles with adjustable ride heights, camper shells, and other devices which may
* cause the overall height to vary, the largest possible height will be used.
*
* Value is the height of the vehicle, LSB units of 5 cm, range to 6.35 meters
*
* @unit: 5cm
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
VehicleHeight ::= INTEGER (0..127)

ritterth's avatar
ritterth committed
/**
* This DE is a type list (i.e., a classification list) of the vehicle in terms of overall size. The
* data element entries follow the definitions defined in the US DOT Highway Performance Monitoring System (HPMS).
* Many infrastructure roadway operators collect and classify data according to this list for regulatory reporting needs.
* Within the ITS industry and within the DSRC message set standards work, there are many similar lists of types for
* overlapping needs and uses.
*
* - 0 - `none`:       Not Equipped, Not known or unavailable
* - 1 - `unknown`:    Does not fit any other category
* - 2 - `special`:    Special use
* - 3 - `moto`:       Motorcycle
* - 4 - `car`:        Passenger car
* - 5 - `carOther`:   Four tire single units
* - 6 - `bus`:        Buses
* - 7 - `axleCnt2`:   Two axle, six tire single units
* - 8 - `axleCnt3`:   Three axle, single units
* - 9 - `axleCnt4`:   Four or more axle, single unit
* - 10 - `axleCnt4Trailer`:        Four or less axle, single trailer
* - 11 - `axleCnt5Trailer`:        Five or less axle, single trailer
* - 12 - `axleCnt6Trailer`:        Six or more axle, single trailer
* - 13 - `axleCnt5MultiTrailer`:   Five or less axle, multi-trailer
* - 14 - `axleCnt6MultiTrailer`:   Six axle, multi-trailer
* - 15 - `axleCnt7MultiTrailer`:   Seven or more axle, multi-trailer
*
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
VehicleType ::= ENUMERATED {
  none                 (0),
  unknown              (1),
  special              (2),
  moto                 (3),
  car                  (4),
  carOther             (5),
  bus                  (6),
  axleCnt2             (7),
  axleCnt3             (8),
  axleCnt4             (9),
  axleCnt4Trailer      (10),
  axleCnt5Trailer      (11),
  axleCnt6Trailer      (12),
  axleCnt5MultiTrailer (13),
  axleCnt6MultiTrailer (14),
  axleCnt7MultiTrailer (15),
  ...
}

ritterth's avatar
ritterth committed
/**
* This DE represents the velocity of an object, typically a vehicle speed or the recommended speed of
* travel along a roadway, expressed in unsigned units of 0.02 meters per second. When used with motor vehicles it may be
* combined with the transmission state to form a data frame for use. A value of 8191 shall be used when the speed is
* unavailable. Note that Velocity as used here is intended to be a scalar value and not a vector.
*
* The value 8191 indicates that velocity is unavailable
*
* @unit: 0.02 m/s
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
Velocity ::= INTEGER (0..8191)

ritterth's avatar
ritterth committed
/**
* This DE is used to indicate to the vehicle that it must stop at the stop line and not move past.
*
* If "true", the vehicles on this specific connecting maneuver have to stop on the stop-line and not to enter the collision area
*
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
WaitOnStopline ::= BOOLEAN

ritterth's avatar
ritterth committed
/**
* This DE is used to provide an estimated distance from the stop bar, along the lane
* centerline back in the lane to which it pertains. It is used in various ways to relate this distance value. When used with
* clearance zones, it represents the point at which the driver can successfully execute the connection maneuver. It is used
* in the Clearance Maneuver Assist data frame to relate dynamic data about the lane. It is also used to relate the distance
* from the stop bar to the rear edge of any queue. It is further used within the context of a vehicle's traveling speed to
* advise on preferred dynamic approach speeds.
*
* 0 = unknown,
* The value 10000 to be used for Distances >=10000 m (e.g. from known point to another point along a
* known path, often against traffic flow direction when used for measuring queues)
*
* @unit: meter
* @category: Infrastructure information
* @revision: V1.3.1
*/
ritterth's avatar
ritterth committed
ZoneLength ::= INTEGER (0..10000)

Thomas Ritter's avatar
Thomas Ritter committed
/** 
* ## References:
* 1. [ISO TS 19091]: "Intelligent transport systems - Cooperative ITS - Using V2I and I2V communications for applications related to signalized intersections".
* 2. [SAE J2735]: "SURFACE VEHICLE STANDARD - V2X Communications Message Set Dictionary"
*/

ritterth's avatar
ritterth committed
END