v10.0.0-rc8
parent
03555bf7eb
commit
0dd25156c7
|
@ -1,18 +1,5 @@
|
||||||
defmodule FarmbotCore.FirmwareResetter do
|
defmodule FarmbotCore.FirmwareResetter do
|
||||||
defmodule Stub do
|
@gpio Application.get_env(:farmbot_core, __MODULE__, [])[:gpio]
|
||||||
require FarmbotCore.Logger
|
|
||||||
|
|
||||||
def fail do
|
|
||||||
m = "Reset function NOT FOUND. Please notify FarmBot support."
|
|
||||||
FarmbotCore.Logger.error(3, m)
|
|
||||||
{:error, m}
|
|
||||||
end
|
|
||||||
|
|
||||||
def open(_, _), do: fail()
|
|
||||||
def write(_, _), do: fail()
|
|
||||||
end
|
|
||||||
|
|
||||||
@gpio Application.get_env(:farmbot_core, __MODULE__, [])[:gpio] || Stub
|
|
||||||
alias FarmbotCore.Asset
|
alias FarmbotCore.Asset
|
||||||
require FarmbotCore.Logger
|
require FarmbotCore.Logger
|
||||||
|
|
||||||
|
@ -24,8 +11,15 @@ defmodule FarmbotCore.FirmwareResetter do
|
||||||
end
|
end
|
||||||
|
|
||||||
def find_reset_fun("express_k10") do
|
def find_reset_fun("express_k10") do
|
||||||
FarmbotCore.Logger.debug(3, "Using special express reset function")
|
# TODO: Remove this conditional after we determine
|
||||||
{:ok, fn -> express_reset_fun() end}
|
# why @gpio is `nil`. -RC 3 MAY 2020
|
||||||
|
if @gpio do
|
||||||
|
FarmbotCore.Logger.debug(3, "Using special express reset function")
|
||||||
|
{:ok, fn -> express_reset_fun() end}
|
||||||
|
else
|
||||||
|
FarmbotCore.Logger.debug(3, "@gpio unavailable. Using default reset fn.")
|
||||||
|
find_reset_fun(nil)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def find_reset_fun(_) do
|
def find_reset_fun(_) do
|
||||||
|
@ -35,12 +29,13 @@ defmodule FarmbotCore.FirmwareResetter do
|
||||||
|
|
||||||
def express_reset_fun() do
|
def express_reset_fun() do
|
||||||
try do
|
try do
|
||||||
|
gpio_module = @gpio
|
||||||
FarmbotCore.Logger.debug(3, "Begin MCU reset")
|
FarmbotCore.Logger.debug(3, "Begin MCU reset")
|
||||||
{:ok, gpio} = @gpio.open(19, :output)
|
{:ok, gpio} = gpio_module.open(19, :output)
|
||||||
:ok = @gpio.write(gpio, 0)
|
:ok = gpio.write(gpio, 0)
|
||||||
:ok = @gpio.write(gpio, 1)
|
:ok = gpio.write(gpio, 1)
|
||||||
Process.sleep(1000)
|
Process.sleep(1000)
|
||||||
:ok = @gpio.write(gpio, 0)
|
:ok = gpio.write(gpio, 0)
|
||||||
FarmbotCore.Logger.debug(3, "Finish MCU Reset")
|
FarmbotCore.Logger.debug(3, "Finish MCU Reset")
|
||||||
:ok
|
:ok
|
||||||
rescue
|
rescue
|
||||||
|
|
Loading…
Reference in New Issue