From 0dd25156c7ab94d6751de7b396a29483fe0ec42c Mon Sep 17 00:00:00 2001 From: Rick Carlino Date: Sun, 3 May 2020 13:56:15 -0500 Subject: [PATCH] v10.0.0-rc8 --- VERSION | 2 +- .../lib/farmbot_core/firmware_resetter.ex | 35 ++++++++----------- 2 files changed, 16 insertions(+), 21 deletions(-) diff --git a/VERSION b/VERSION index 1e225097..9e9bce2b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -10.0.0-rc7 +10.0.0-rc8 diff --git a/farmbot_core/lib/farmbot_core/firmware_resetter.ex b/farmbot_core/lib/farmbot_core/firmware_resetter.ex index 98779651..66298f21 100644 --- a/farmbot_core/lib/farmbot_core/firmware_resetter.ex +++ b/farmbot_core/lib/farmbot_core/firmware_resetter.ex @@ -1,18 +1,5 @@ defmodule FarmbotCore.FirmwareResetter do - defmodule Stub do - 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 + @gpio Application.get_env(:farmbot_core, __MODULE__, [])[:gpio] alias FarmbotCore.Asset require FarmbotCore.Logger @@ -24,8 +11,15 @@ defmodule FarmbotCore.FirmwareResetter do end def find_reset_fun("express_k10") do - FarmbotCore.Logger.debug(3, "Using special express reset function") - {:ok, fn -> express_reset_fun() end} + # TODO: Remove this conditional after we determine + # 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 def find_reset_fun(_) do @@ -35,12 +29,13 @@ defmodule FarmbotCore.FirmwareResetter do def express_reset_fun() do try do + gpio_module = @gpio FarmbotCore.Logger.debug(3, "Begin MCU reset") - {:ok, gpio} = @gpio.open(19, :output) - :ok = @gpio.write(gpio, 0) - :ok = @gpio.write(gpio, 1) + {:ok, gpio} = gpio_module.open(19, :output) + :ok = gpio.write(gpio, 0) + :ok = gpio.write(gpio, 1) Process.sleep(1000) - :ok = @gpio.write(gpio, 0) + :ok = gpio.write(gpio, 0) FarmbotCore.Logger.debug(3, "Finish MCU Reset") :ok rescue