auto_api v0.1.0 AutoApi.CapabilitiesCommand View Source
Handles Capabilities commands and apply binary commands on %AutoApi.CapabilitiesState{}
Link to this section Summary
Functions
Parses the binary command and makes changes or returns the state
Converts VehicleLocation state to capability’s state in binary
Converts command to binary format
Link to this section Functions
Link to this function
execute(state, arg)
View Source
execute(AutoApi.CapabilitiesState.t(), binary()) :: {:state | :state_changed, AutoApi.CapabilitiesState.t()}
Parses the binary command and makes changes or returns the state
iex> AutoApi.CapabilitiesCommand.execute(%AutoApi.CapabilitiesState{}, <<0x00>>)
{:state, %AutoApi.CapabilitiesState{}}
iex> state = %AutoApi.CapabilitiesState{diagnostics: [:get_diagnostics_state], door_locks: [:get_door_locks]}
iex> AutoApi.CapabilitiesCommand.execute(state, <<0x02, 0x00, 0x33>>)
{:state_changed, %AutoApi.CapabilitiesState{diagnostics: [:get_diagnostics_state], door_locks: []}}
Converts VehicleLocation state to capability’s state in binary
iex> AutoApi.CapabilitiesState.to_bin(%AutoApi.CapabilitiesState{diagnostics: [:get_diagnostics_state, :diagnostics_state], door_locks: [:get_lock_state, :lock_state, :lock_unlock_doors]})
<<1, 0, 4, 0, 0x33, 0, 1, 1, 0, 5, 0, 0x20, 0, 1, 2>>
iex> AutoApi.CapabilitiesState.to_bin(%AutoApi.CapabilitiesState{diagnostics: [:get_diagnostics_state, :diagnostics_state], door_locks: []})
<<1, 0, 4, 0, 0x33, 0, 1>>
Link to this function
to_bin(atom, list)
View Source
to_bin(AutoApi.CapabilitiesCapability.command_type(), [any()]) :: binary()
Converts command to binary format
iex> AutoApi.CapabilitiesCommand.to_bin(:get_capabilities, [])
<<0x00>>
iex> caps = %AutoApi.CapabilitiesState{diagnostics: [:get_diagnostics_state, :diagnostics_state], door_locks: [:lock_unlock_doors]}
iex> AutoApi.CapabilitiesCommand.to_bin(:capabilities, [caps])
<<1, 1, 0, 4, 0, 51, 0, 1, 1, 0, 3, 0, 32, 2>>