fix report softawre version
parent
df4faf9174
commit
65286edfe4
|
@ -43,7 +43,7 @@ config :farmbot, Farmbot.System.ConfigStorage,
|
|||
# SystemTasks for host mode.
|
||||
config :farmbot, :behaviour,
|
||||
authorization: Farmbot.Bootstrap.Authorization,
|
||||
system_tasks: Farmbot.Host.SystemTasks
|
||||
# firmware_handler: Farmbot.Firmware.UartHandler
|
||||
system_tasks: Farmbot.Host.SystemTasks,
|
||||
firmware_handler: Farmbot.Firmware.UartHandler
|
||||
|
||||
config :farmbot, :uart_handler, tty: "/dev/ttyACM0"
|
||||
|
|
|
@ -70,6 +70,11 @@ defmodule Farmbot.Firmware do
|
|||
GenStage.call(__MODULE__, {:write_pin, [pin, mode, value]}, :infinity)
|
||||
end
|
||||
|
||||
@doc "Request version."
|
||||
def request_software_version do
|
||||
GenStage.call(__MODULE__, {:request_software_version, []}, :infinity)
|
||||
end
|
||||
|
||||
@doc "Start the firmware services."
|
||||
def start_link do
|
||||
GenStage.start_link(__MODULE__, [], name: __MODULE__)
|
||||
|
@ -233,6 +238,7 @@ defmodule Farmbot.Firmware do
|
|||
end
|
||||
end
|
||||
read_all_params()
|
||||
request_software_version()
|
||||
end
|
||||
end
|
||||
{nil, %{state | initializing: true}}
|
||||
|
@ -252,12 +258,15 @@ defmodule Farmbot.Firmware do
|
|||
end
|
||||
end
|
||||
|
||||
|
||||
defp handle_gcode(:report_params_complete, state) do
|
||||
Logger.success 3, "Firmware initialized."
|
||||
{nil, %{state | initialized: true}}
|
||||
end
|
||||
|
||||
defp handle_gcode({:report_software_version, version}, state) do
|
||||
{:informational_settings, %{firmware_version: version}, state}
|
||||
end
|
||||
|
||||
defp handle_gcode(:busy, state) do
|
||||
Farmbot.BotState.set_busy(true)
|
||||
{:informational_settings, %{busy: true}, %{state | idle: false}}
|
||||
|
|
|
@ -77,8 +77,8 @@ defmodule Farmbot.Firmware.Gcode.Parser do
|
|||
|
||||
@spec parse_version(binary) :: {binary, {:report_software_version, binary}}
|
||||
defp parse_version(version) do
|
||||
[derp | [code]] = String.split(version, " Q")
|
||||
{code, {:report_software_version, derp}}
|
||||
[v | [code]] = String.split(version, " Q")
|
||||
{code, {:report_software_version, v}}
|
||||
end
|
||||
|
||||
@type reporter ::
|
||||
|
|
|
@ -71,4 +71,7 @@ defmodule Farmbot.Firmware.Handler do
|
|||
@doc "Write a pin."
|
||||
@callback write_pin(handler, pin, pin_mode, number) :: fw_ret_val
|
||||
|
||||
@doc "Request firmware version."
|
||||
@callback request_software_version(handler) :: fw_ret_val
|
||||
|
||||
end
|
||||
|
|
|
@ -62,6 +62,10 @@ defmodule Farmbot.Firmware.StubHandler do
|
|||
GenStage.call(handler, {:write_pin, pin, pin_mode, value})
|
||||
end
|
||||
|
||||
def request_software_version(handler) do
|
||||
GenStage.call(handler, :request_software_version)
|
||||
end
|
||||
|
||||
## GenStage Behaviour
|
||||
|
||||
defmodule State do
|
||||
|
@ -147,4 +151,8 @@ defmodule Farmbot.Firmware.StubHandler do
|
|||
def handle_call(:emergency_unlock, _from, state) do
|
||||
{:reply, :ok, [:done], state}
|
||||
end
|
||||
|
||||
def handle_call(:request_software_version, _, state) do
|
||||
{:reply, :ok, [{:report_software_version, "STUBFW"}, :done], state}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -60,6 +60,10 @@ defmodule Farmbot.Firmware.UartHandler do
|
|||
GenStage.call(handler, {:write_pin, pin, pin_mode, value})
|
||||
end
|
||||
|
||||
def request_software_version(handler) do
|
||||
GenStage.call(handler, :request_software_version)
|
||||
end
|
||||
|
||||
## Private
|
||||
|
||||
defmodule State do
|
||||
|
@ -240,6 +244,10 @@ defmodule Farmbot.Firmware.UartHandler do
|
|||
end
|
||||
end
|
||||
|
||||
def handle_call(:request_software_version, _from, state) do
|
||||
do_write("F83", state)
|
||||
end
|
||||
|
||||
def handle_call(_call, _from, state) do
|
||||
{:reply, {:error, :bad_call}, [], state}
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue