kitt v0.3.0 Kitt.Types View Source
Collection of custom typespec definitions for abstracting the complexity of messages away from the structs that define them.
Link to this section Summary
Link to this section Types
Link to this type
angle()
View Sourceangle() :: :"from000-0to022-5degrees" | :"from022-5to045-0degrees" | :"from045-0to067-5degrees" | :"from067-5to090-0degrees" | :"from090-0to112-5degrees" | :"from112-5to135-0degrees" | :"from135-0to157-5degrees" | :"from157-5to180-0degrees" | :"from180-0to202-5degrees" | :"from202-5to225-0degrees" | :"from225-0to247-5degrees" | :"from247-5to270-0degrees" | :"from270-0to292-5degrees" | :"from292-5to315-0degrees" | :"from315-0to337-5degrees" | :"from337-5to360-0degrees"
Link to this type
basic_vehicle_role()
View Sourcebasic_vehicle_role() :: :basicVehicle | :publicTransport | :specialTransport | :dangerousGoods | :roadWork | :roadRescue | :emergency | :safetyCar | :"none-unknown" | :truck | :motorcycle | :roadSideSource | :police | :fire | :ambulance | :dot | :transit | :slowMoving | :stopNgo | :cyclist | :pedestrian | :nonMotorized | :military
Link to this type
brake_system_status()
View Sourcebrake_system_status() :: %{
wheelBrakes: wheel_brake(),
traction: :unavailable | :off | :on | :engaged,
abs: :unavailable | :off | :on | :engaged,
scs: :unavailable | :off | :on | :engaged,
brakeBoost: :unavailable | :off | :on,
auxBrakes: :unavailable | :off | :on | :reserved
}
Link to this type
bumper_heights()
View Sourcebumper_heights() :: %{front: non_neg_integer(), rear: non_neg_integer()}
Link to this type
computed_lane()
View Sourcecomputed_lane() :: %{
referenceLaneId: non_neg_integer(),
offsetXaxis: driven_lane_offset(),
offsetYaxis: driven_lane_offset(),
rotateXY: non_neg_integer(),
scaleXaxis: integer(),
scaleYaxis: integer(),
regional: [map()]
}
Link to this type
d_date_time()
View Sourced_date_time() :: %{
year: non_neg_integer(),
month: non_neg_integer(),
day: non_neg_integer(),
hour: non_neg_integer(),
minute: non_neg_integer(),
second: non_neg_integer(),
offset: integer()
}
Link to this type
disabled_vehicle()
View Sourcedisabled_vehicle() :: %{
statusDetails: non_neg_integer(),
locationDetails: generic_locations()
}
Link to this type
emergency_details()
View Sourceemergency_details() :: %{
sspRights: non_neg_integer(),
sirenUse: :unavailable | :notInUse | :inUse | :reserved,
lightsUse:
:unavailable
| :notInUse
| :inUse
| :yellowCautionLights
| :schoolBusLights
| :arrowSignsActive
| :slowMovingVehicle
| :freqStops,
multi: :unavailable | :singleVehicle | :multiVehicle | :reserved,
events: privileged_events(),
responseType: response_type()
}
Link to this type
event_description()
View Sourceevent_description() :: %{
typeEvent: non_neg_integer(),
description: [non_neg_integer()],
priority: non_neg_integer(),
heading: Kitt.Types.angle(),
extent: extent(),
regional: [map()]
}
Link to this type
event_flag()
View Sourceevent_flag() :: :eventHazardLights | :eventStopLineViolation | :eventABSactivated | :eventTractionControlLoss | :eventStabilityControlactivated | :eventHazardousMaterials | :eventReserved1 | :eventHardBraking | :eventLightsChanged | :eventWipersChanged | :eventFlatTire | :eventDisabledVehicle | :eventAirBagDeployment
Link to this type
extent()
View Sourceextent() :: :useInstantlyOnly | :useFor3meters | :useFor10meters | :useFor50meters | :useFor100meters | :useFor500meters | :useFor1000meters | :useFor5000meters | :useFor10000meters | :useFor50000meters | :useFor100000meters | :useFor500000meters | :useFor1000000meters | :useFor5000000meters | :useFor10000000meters | :forever
Link to this type
full_position_vector()
View Sourcefull_position_vector() :: %{
utcTime: d_date_time(),
long: integer(),
lat: integer(),
elevation: integer(),
heading: non_neg_integer(),
speed: transmission_and_speed(),
posAccuracy: positional_accuracy(),
timeConfidence:
:unavailable
| :"time-100-000"
| :"time-050-000"
| :"time-020-000"
| :"time-010-000"
| :"time-002-000"
| :"time-001-000"
| :"time-000-500"
| :"time-000-200"
| :"time-000-100"
| :"time-000-050"
| :"time-000-020"
| :"time-000-010"
| :"time-000-005"
| :"time-000-002"
| :"time-000-001"
| :"time-000-000-5"
| :"time-000-000-2"
| :"time-000-000-1"
| :"time-000-000-05"
| :"time-000-000-02"
| :"time-000-000-01"
| :"time-000-000-005"
| :"time-000-000-002"
| :"time-000-000-001"
| :"time-000-000-000-5"
| :"time-000-000-000-2"
| :"time-000-000-000-1"
| :"time-000-000-000-05"
| :"time-000-000-000-02"
| :"time-000-000-000-01"
| :"time-000-000-000-005"
| :"time-000-000-000-002"
| :"time-000-000-000-001"
| :"time-000-000-000-000-5"
| :"time-000-000-000-000-2"
| :"time-000-000-000-000-1"
| :"time-000-000-000-000-05"
| :"time-000-000-000-000-02"
| :"time-000-000-000-000-01"
| {:asn1_enum, non_neg_integer()},
posConfidence: position_confidence_set(),
speedConfidence: speed_and_heading_and_throttle_confidence()
}
Link to this type
generic_locations()
View Sourcegeneric_locations() :: :"on-bridges" | :"in-tunnels" | :"entering-or-leaving-tunnels" | :"on-ramps" | :"in-road-construction-area" | :"around-a-curve" | :"on-curve" | :"on-tracks" | :"in-street" | :shoulder | :"on-minor-roads" | :"in-the-opposing-lanes" | :"adjacent-to-roadway" | :"across-tracks" | :"on-bend" | :intersection | :"entire-intersection" | :"in-the-median" | :"moved-to-side-of-road" | :"moved-to-shoulder" | :"on-the-roadway" | :dip | :"traffic-circle" | :crossover | :"cross-road" | :"side-road" | :to | :by | :through | :"area-of" | :under | :over | :from | :approaching | :"entering-at" | :"exiting-at" | :"in-shaded-areas" | :"in-low-lying-areas" | :"in-the-downtown-area" | :"in-the-inner-city-area" | :"in-parts" | :"in-some-places" | :"in-the-ditch" | :"in-the-valley" | :"on-hill-top" | :"near-the-foothills" | :"at-high-altitudes" | :"near-the-lake" | :"near-the-shore" | :"nearby-basin" | :"over-the-crest-of-a-hill" | :"other-than-on-the-roadway" | :"near-the-beach" | :"near-beach-access-point" | :"mountain-pass" | :"lower-level" | :"upper-level" | :airport | :concourse | :gate | :"baggage-claim" | :"customs-point" | :"reservation-center" | :station | :platform | :dock | :depot | :"ev-charging-point" | :"information-welcome-point" | :"at-rest-area" | :"at-service-area" | :"at-weigh-station" | :"roadside-park" | :"picnic-areas" | :"rest-area" | :"service-stations" | :toilets | :"bus-stop" | :"park-and-ride-lot" | :"on-the-right" | :"on-the-left" | :"in-the-center" | :"in-the-opposite-direction" | :"cross-traffic" | :"northbound-traffic" | :"eastbound-traffic" | :"southbound-traffic" | :"westbound-traffic" | :north | :south | :east | :west | :northwest | :northeast | :southwest | :southeast
Link to this type
incident_response_equipment()
View Sourceincident_response_equipment() :: :"ground-fire-suppression" | :"heavy-ground-equipment" | :aircraft | :"marine-equipment" | :"support-equipment" | :"medical-rescue-unit" | :other | :"ground-fire-suppression-other" | :engine | :"truck-or-aerial" | :quint | :"tanker-pumper-combination" | :"brush-truck" | :"aircraft-rescue-firefighting" | :"heavy-ground-equipment-other" | :"dozer-or-plow" | :tractor | :"tanker-or-tender" | :"aircraft-other" | :"aircraft-fixed-wing-tanker" | :helitanker | :helicopter | :"marine-equipment-other" | :"fire-boat-with-pump" | :"boat-no-pump" | :"support-apparatus-other" | :"breathing-apparatus-support" | :"light-and-air-unit" | :"medical-rescue-unit-other" | :"rescue-unit" | :"urban-search-rescue-unit" | :"high-angle-rescue" | :"crash-fire-rescue" | :"bLS-unit" | :"aLS-unit" | :"mobile-command-post" | :"chief-officer-car" | :"hAZMAT-unit" | :"type-i-hand-crew" | :"type-ii-hand-crew" | :"privately-owned-vehicle" | :"other-apparatus-resource" | :ambulance | :"bomb-squad-van" | :"combine-harvester" | :"construction-vehicle" | :"farm-tractor" | :"grass-cutting-machines" | :"hAZMAT-containment-tow" | :"heavy-tow" | :"light-tow" | :"flatbed-tow" | :"hedge-cutting-machines" | :"mobile-crane" | :"refuse-collection-vehicle" | :"resurfacing-vehicle" | :"road-sweeper" | :"roadside-litter-collection-crews" | :"salvage-vehicle" | :"sand-truck" | :snowplow | :"steam-roller" | :"swat-team-van" | :"track-laying-vehicle" | :"unknown-vehicle" | :"white-lining-vehicle" | :"dump-truck" | :"supervisor-vehicle" | :"snow-blower" | :"rotary-snow-blower" | :"road-grader" | :"steam-truck"
Link to this type
intersection_access_point()
View Sourceintersection_access_point() ::
{:lane, non_neg_integer()}
| {:approach, non_neg_integer()}
| {:connection, non_neg_integer()}
Link to this type
intersection_reference_id()
View Sourceintersection_reference_id() :: %{
region: non_neg_integer(),
id: non_neg_integer()
}
Link to this type
node_attribute()
View Sourcenode_attribute() :: :reserved | :stopLine | :roundedCapStyleA | :roundedCapStyleB | :mergePoint | :divergePoint | :downstreamStopLine | :downstreamStartNode | :closedToTraffic | :safeIsland | :curbPresentAtStepOff | :hydrantPresent
Link to this type
node_attribute_set()
View Sourcenode_attribute_set() :: %{
localNode: [node_attribute()],
disabled: [segment_attribute()],
enabled: [segment_attribute()],
data: [lane_data_attribute()],
dWidth: integer(),
dElevation: integer(),
regional: [map()]
}
Link to this type
node_list_xy()
View Sourcenode_list_xy() :: {:nodes, [node_xy()]} | {:computed, computed_lane()}
Link to this type
node_ll()
View Sourcenode_ll() :: %{delta: node_offset_point_ll(), attributes: node_attribute_set()}
Link to this type
node_xy()
View Sourcenode_xy() :: %{delta: node_offset_point_xy(), attributes: node_attribute_set()}
Link to this type
obstacle_detection()
View Sourceobstacle_detection() :: %{
obDist: non_neg_integer(),
obDirect: non_neg_integer(),
description: non_neg_integer(),
locationDetails: generic_locations(),
dateTime: d_date_time(),
vertEvent: vert_event()
}
Link to this type
offset_system()
View Sourceoffset_system() :: %{scale: non_neg_integer(), offset: offset()}
Link to this type
path_history()
View Sourcepath_history() :: %{
initialPosition: full_position_vector(),
currGNSSstatus: status(),
crumbData: [path_history_point()]
}
Link to this type
path_history_point()
View Sourcepath_history_point() :: %{
latOffset: integer(),
lonOffset: integer(),
elevationOffset: integer(),
timeOffset: non_neg_integer(),
speed: non_neg_integer(),
osAccuracy: positional_accuracy(),
heading: non_neg_integer()
}
Link to this type
path_prediction()
View Sourcepath_prediction() :: %{radiusOfCurve: integer(), confidence: non_neg_integer()}
Link to this type
pivot_point_description()
View Sourcepivot_point_description() :: %{
pivotOffset: integer(),
pivotAngle: non_neg_integer(),
pivots: boolean()
}
Link to this type
position_confidence_set()
View Sourceposition_confidence_set() :: %{
pos:
:unavailable
| :a500m
| :a200m
| :a100m
| :a50m
| :a20m
| :a10m
| :a5m
| :a2m
| :a1m
| :a50cm
| :a20cm
| :a10cm
| :a5cm
| :a2cm
| :a1cm,
elevation:
:unavailable
| :"elev-500-00"
| :"elev-200-00"
| :"elev-100-00"
| :"elev-050-00"
| :"elev-020-00"
| :"elev-010-00"
| :"elev-005-00"
| :"elev-002-00"
| :"elev-001-00"
| :"elev-000-50"
| :"elev-000-20"
| :"elev-000-10"
| :"elev-000-05"
| :"elev-000-02"
| :"elev-000-01"
}
Link to this type
positional_accuracy()
View Sourcepositional_accuracy() :: %{
semiMajor: non_neg_integer(),
semiMinor: non_neg_integer(),
orientation: non_neg_integer()
}
Link to this type
privileged_event_flag()
View Sourceprivileged_event_flag() :: :peUnavailable | :peEmergencyResponse | :peEmergencyLightsActive | :peEmergencySoundActive | :peNonEmergencyLightsActive | :peNonEmergencySoundActive
Link to this type
privileged_events()
View Sourceprivileged_events() :: %{
sspRights: non_neg_integer(),
event: privileged_event_flag()
}
Link to this type
quadrant()
View Sourcequadrant() :: :leftFront | :leftRear | :rightFront | :rightRear
Link to this type
regulatory_speed_limit()
View Sourceregulatory_speed_limit() :: %{
type: speed_limit_type(),
speed: non_neg_integer()
}
Link to this type
requestor_type()
View Sourcerequestor_type() :: %{
role: basic_vehicle_role(),
subrole:
:requestSubRoleUnknown
| :requestSubRole1
| :requestSubRole2
| :requestSubRole3
| :requestSubRole4
| :requestSubRole5
| :requestSubRole6
| :requestSubRole7
| :requestSubRole8
| :requestSubRole9
| :requestSubRole10
| :requestSubRole11
| :requestSubRole12
| :requestSubRole13
| :requestSubRole14
| :requestSubRoleReserved,
request:
:requestImportanceLevelUnknown
| :requestImportanceLevel1
| :requestImportanceLevel2
| :requestImportanceLevel3
| :requestImportanceLevel4
| :requestImportanceLevel5
| :requestImportanceLevel6
| :requestImportanceLevel7
| :requestImportanceLevel8
| :requestImportanceLevel9
| :requestImportanceLevel10
| :requestImportanceLevel11
| :requestImportanceLevel12
| :requestImportanceLevel13
| :requestImportanceLevel14
| :requestImportanceReserved,
iso3883: non_neg_integer(),
hpmsType: vehicle_type(),
regional: [map()]
}
Link to this type
responder_group_affected()
View Sourceresponder_group_affected() :: :"emergency-vehicle-units" | :"federal-law-enforcement-units" | :"state-police-units" | :"county-police-units" | :"local-police-units" | :"ambulance-units" | :"rescue-units" | :"fire-units" | :"hAZMAT-units" | :"light-tow-unit" | :"heavy-tow-unit" | :"freeway-service-patrols" | :"transportation-response-units" | :"private-contractor-response-units"
Link to this type
response_type()
View Sourceresponse_type() :: :notInUseOrNotEquipped | :emergency | :nonEmergency | :pursuit | :stationary | :slowMoving | :stopAndGoMovement
Link to this type
road_segment_reference_id()
View Sourceroad_segment_reference_id() :: %{
region: non_neg_integer(),
id: non_neg_integer()
}
Link to this type
rtcm_header()
View Sourcertcm_header() :: %{status: status(), offsetSet: antenna_offset_set()}
Link to this type
rtcm_package()
View Sourcertcm_package() :: %{rtcmHeader: rtcm_header(), msgs: [non_neg_integer()]}
Link to this type
segment_attribute()
View Sourcesegment_attribute() :: :reserved | :doNotBlock | :whiteLane | :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
Link to this type
speed_and_heading_and_throttle_confidence()
View Sourcespeed_and_heading_and_throttle_confidence() :: %{
heading:
:unavailable
| :prec10deg
| :prec05deg
| :prec01deg
| :"prec0-1deg"
| :"prec0-05deg"
| :"prec0-01deg"
| :"prec0-0125deg",
speed:
:unavailable
| :prec100ms
| :prec10ms
| :prec5ms
| :prec1ms
| :"prec0-1ms"
| :"prec0-05ms"
| :"prec0-01ms",
throttle: :unavailable | :prec10percent | :prec1percent | :"prec0-5percent"
}
Link to this type
speed_limit_type()
View Sourcespeed_limit_type() :: :unknown | :maxSpeedInSchoolZone | :maxSpeedInSchoolZoneWhenChildrenArePresent | :maxSpeedInConstructionZone | :vehicleMinSpeed | :vehicleMaxSpeed | :vehicleNightMaxSpeed | :truckMinSpeed | :truckMaxSpeed | :truckNightMaxSpeed | :vehicleWithTrailersMinSpeed | :vehicleWithTrailersMaxSpeed | :vehicleWithTrailersNightMaxSpeed
Link to this type
speed_profile()
View Sourcespeed_profile() :: %{speedReports: [non_neg_integer()]}
Link to this type
status()
View Sourcestatus() :: :unavailable | :isHealthy | :isMonitored | :baseStationType | :aPDOPofUnder5 | :inViewOfUnder5 | :localCorrectionsPresent | :networkCorrectionsPresent
Link to this type
trailer_data()
View Sourcetrailer_data() :: %{
sspRights: non_neg_integer(),
connection: pivot_point_description(),
units: [trailer_unit_description()]
}
Link to this type
trailer_history_point()
View Sourcetrailer_history_point() :: %{
pivotAngle: non_neg_integer(),
timeOffset: non_neg_integer(),
positionOffset: node_xy_24b(),
elevationOffset: integer(),
heading: non_neg_integer()
}
Link to this type
trailer_unit_description()
View Sourcetrailer_unit_description() :: %{
isDolly: boolean(),
width: non_neg_integer(),
length: non_neg_integer(),
height: non_neg_integer(),
mass: non_neg_integer(),
bumperHeights: bumper_heights(),
centerOfGravity: non_neg_integer(),
frontPivot: pivot_point_description(),
rearPivot: pivot_point_description(),
rearWheelOffset: integer(),
positionOffset: node_xy_24b(),
elevationOffset: integer(),
crumbData: [trailer_history_point()]
}
Link to this type
transmission_and_speed()
View Sourcetransmission_and_speed() :: %{
transmission:
:neutral
| :park
| :forwardGears
| :reverseGears
| :reserved1
| :reserved2
| :reserved3
| :unavailable,
speed: non_neg_integer()
}
Link to this type
transmission_state()
View Sourcetransmission_state() :: :neutral | :park | :forwardGears | :reverseGears | :reserved1 | :reserved2 | :reserved3 | :unavailable
Link to this type
vehicle_classification()
View Sourcevehicle_classification() :: %{
keyType: non_neg_integer(),
role: basic_vehicle_role(),
iso3883: non_neg_integer(),
hpmsType: vehicle_type(),
vehicleType: vehicle_group_affected(),
responseEquip: incident_response_equipment(),
fuelType: non_neg_integer(),
regional: [map()]
}
Link to this type
vehicle_data()
View Sourcevehicle_data() :: %{
height: non_neg_integer(),
bumpers: bumper_heights(),
mass: non_neg_integer(),
trailerWeight: non_neg_integer()
}
Link to this type
vehicle_group_affected()
View Sourcevehicle_group_affected() :: :"all-vehicles" | :bicycles | :motorcycles | :cars | :"light-vehicles" | :"cars-and-light-vehicles" | :"cars-with-trailers" | :"cars-with-recreational-trailers" | :"vehicles-with-trailers" | :"heavy-vehicles" | :trucks | :buses | :"articulated-buses" | :"school-buses" | :"vehicles-with-semi-trailers" | :"vehicles-with-double-trailers" | :"high-profile-vehicles" | :"wide-vehicles" | :"long-vehicles" | :"hazardous-loads" | :"exceptional-loads" | :"abnormal-loads" | :convoys | :"maintenance-vehicles" | :"delivery-vehicles" | :"vehicles-with-even-numbered-license-plates" | :"vehicles-with-odd-numbered-license-plates" | :"vehicles-with-parking-permits" | :"vehicles-with-catalytic-converters" | :"vehicles-without-catalytic-converters" | :"gas-powered-vehicles" | :"diesel-powered-vehicles" | :"lPG-vehicles" | :"military-convoys" | :"military-vehicles"
Link to this type
vehicle_id()
View Sourcevehicle_id() :: {:entityID, non_neg_integer()} | {:stationID, non_neg_integer()}
Link to this type
vehicle_size()
View Sourcevehicle_size() :: %{width: non_neg_integer(), length: non_neg_integer()}
Link to this type
vehicle_type()
View Sourcevehicle_type() :: :none | :unknown | :special | :moto | :car | :carOther | :bus | :axleCnt2 | :axleCnt3 | :axleCnt4 | :axleCnt4Trailer | :axleCnt5Trailer | :axleCnt6Trailer | :axleCnt5MultiTrailer | :axleCnt6MultiTrailer | :axleCnt7MultiTrailer
Link to this type
weather_probe()
View Sourceweather_probe() :: %{
airTemp: non_neg_integer(),
airPressure: non_neg_integer(),
rainRates: wiper_set()
}
Link to this type
weather_report()
View Sourceweather_report() :: %{
isRaining: :precip | :noPrecip | :error,
rainRate: non_neg_integer(),
precipSituation:
:other
| :other
| :unknown
| :noPrecipitation
| :unidentifiedSlight
| :unidentifiedModerate
| :unidentifiedHeavy
| :snowSlight
| :snowModerate
| :snowHeavy
| :rainSlight
| :rainModerate
| :rainHeavy
| :frozenPrecipitationSlight
| :frozenPrecipitationModerate
| :frozenPrecipitationHeavy,
solarRadiation: non_neg_integer(),
friction: non_neg_integer(),
roadFriction: non_neg_integer()
}
Link to this type
wiper_set()
View Sourcewiper_set() :: %{
statusFront: wiper_status(),
rateFront: non_neg_integer(),
statusRear: wiper_status(),
rateRear: non_neg_integer()
}
Link to this type
wiper_status()
View Sourcewiper_status() :: :unavailable | :off | :intermittent | :low | :high | :washerInUse | :automaticPresent