AutoApi.CapabilitiesState (auto_api v13.2.0) View Source
Capabilities state
This is a minimal implementation that has low-level capability and property binary IDs in the struct as well. A future implementation will translate those into modules and property names.
Link to this section Summary
Functions
Callback implementation for AutoApi.State.base/0
.
Build state based on binary value
Convenience function to build the State properties.
Parse state to bin
Link to this section Types
Specs
brand() :: :unknown | :abarth | :alfaromeo | :alpine | :audi | :bmw | :cadillac | :chevrolet | :chrysler | :citroen | :cupra | :dacia | :dodge | :ds | :fiat | :ford | :honda | :hyundai | :iveco | :jaguar | :jeep | :kia | :lancia | :land_rover | :lexus | :man | :mazda | :mercedes_benz | :mini | :mitsubishi | :nissan | :opel | :peugeot | :porsche | :renault | :seat | :skoda | :smart | :subaru | :toyota | :volkswagen | :volvo_cars | :emulator
Specs
nonce() :: binary()
Specs
t() :: %AutoApi.CapabilitiesState{ brand: AutoApi.State.property( :unknown | :abarth | :alfaromeo | :alpine | :audi | :bmw | :cadillac | :chevrolet | :chrysler | :citroen | :cupra | :dacia | :dodge | :ds | :fiat | :ford | :honda | :hyundai | :iveco | :jaguar | :jeep | :kia | :lancia | :land_rover | :lexus | :man | :mazda | :mercedes_benz | :mini | :mitsubishi | :nissan | :opel | :peugeot | :porsche | :renault | :seat | :skoda | :smart | :subaru | :toyota | :volkswagen | :volvo_cars | :emulator ), capabilities: AutoApi.State.multiple_property(AutoApi.CustomType.supported_capability()), nonce: AutoApi.State.property(binary()), timestamp: AutoApi.State.property(DateTime.t()), vehicle_signature: AutoApi.State.property(binary()), vin: AutoApi.State.property(String.t()), webhooks: AutoApi.State.multiple_property(AutoApi.CustomType.webhook()) }
Specs
timestamp() :: DateTime.t()
Specs
vehicle_signature() :: binary()
Specs
vin() :: String.t()
Link to this section Functions
Specs
base() :: t()
Callback implementation for AutoApi.State.base/0
.
Specs
Build state based on binary value
Examples
iex> bin = <<1, 0, 9, 1, 0, 6, 0, 51, 0, 2, 4, 13>>
iex> AutoApi.CapabilitiesState.from_bin(bin)
%AutoApi.CapabilitiesState{capabilities: [%AutoApi.Property{data: %{capability_id: 0x33, supported_property_ids: <<0x04, 0x0D>>}}]}
Specs
Convenience function to build the State properties.
See AutoApi.State.put/3
.
Examples
iex> state_base = AutoApi.DiagnosticsState.base()
iex> odometer = %{value: 10_921, unit: :kilometers}
iex> state_1 = AutoApi.DiagnosticsState.put(state_base, :odometer, data: odometer)
iex> state_2 = AutoApi.State.put(state_base, :odometer, data: odometer)
iex> state_1 === state_2
true
Specs
Parse state to bin
Examples
iex> state = %AutoApi.CapabilitiesState{capabilities: [%AutoApi.Property{data: %{capability_id: 0x33, supported_property_ids: <<0x04, 0x0D>>}}]}
iex> AutoApi.CapabilitiesState.to_bin(state)
<<1, 0, 9, 1, 0, 6, 0, 51, 0, 2, 4, 13>>