From a13e6c583285c33990b5ac502cec77060b919ef8 Mon Sep 17 00:00:00 2001 From: Rick Carlino Date: Fri, 17 Jan 2020 09:53:15 -0600 Subject: [PATCH] Minor updates before branch cleanup --- VERSION | 2 +- farmbot_celery_script/.formatter.exs | 1 + .../lib/farmbot_celery_script/scheduler.ex | 16 ++++---- farmbot_core/.formatter.exs | 1 + farmbot_firmware/.formatter.exs | 1 + farmbot_firmware/lib/farmbot_firmware.ex | 10 ++++- .../transports/uart_default_adapter.ex | 1 - .../transports/uart_transport_test.exs | 39 +++++++++++++++++++ .../test/farmbot_firmware_test.exs | 11 ++++++ farmbot_os/.formatter.exs | 1 + .../farmbot_os/configurator/network_layer.ex | 2 +- farmbot_telemetry/.formatter.exs | 1 + 12 files changed, 74 insertions(+), 12 deletions(-) diff --git a/VERSION b/VERSION index 3beeadd4..7bcbf46c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -9.0.2 +9.0.2-rc2 diff --git a/farmbot_celery_script/.formatter.exs b/farmbot_celery_script/.formatter.exs index 79fe033f..e2c51b95 100644 --- a/farmbot_celery_script/.formatter.exs +++ b/farmbot_celery_script/.formatter.exs @@ -1,3 +1,4 @@ [ + line_length: 80, inputs: ["*.{ex,exs}", "{config,priv,lib,test}/**/*.{ex,exs}"] ] diff --git a/farmbot_celery_script/lib/farmbot_celery_script/scheduler.ex b/farmbot_celery_script/lib/farmbot_celery_script/scheduler.ex index 31823db2..51f35c47 100644 --- a/farmbot_celery_script/lib/farmbot_celery_script/scheduler.ex +++ b/farmbot_celery_script/lib/farmbot_celery_script/scheduler.ex @@ -147,12 +147,12 @@ defmodule FarmbotCeleryScript.Scheduler do case DateTime.diff(DateTime.utc_now(), at, :millisecond) do # now is before the next date diff_ms when diff_ms < 0 -> - from_now = - DateTime.utc_now() - |> DateTime.add(abs(diff_ms), :millisecond) - |> Timex.from_now() - - Logger.info("Next execution is still #{diff_ms}ms too early (#{from_now})") + # from_now = + # DateTime.utc_now() + # |> DateTime.add(abs(diff_ms), :millisecond) + # |> Timex.from_now() + # msg = "Next execution is still #{diff_ms}ms too early (#{from_now})" + # Logger.info(msg) state |> schedule_next_checkup(abs(diff_ms)) @@ -160,8 +160,8 @@ defmodule FarmbotCeleryScript.Scheduler do # now is more than the grace period past schedule time diff_ms when diff_ms > @grace_period_ms -> - from_now = Timex.from_now(at) - Logger.info("Next execution is #{diff_ms}ms too late (#{from_now})") + # from_now = Timex.from_now(at) + # Logger.info("Next execution is #{diff_ms}ms too late (#{from_now})") state |> pop_next() diff --git a/farmbot_core/.formatter.exs b/farmbot_core/.formatter.exs index 836bf1c3..42c393dc 100644 --- a/farmbot_core/.formatter.exs +++ b/farmbot_core/.formatter.exs @@ -1,5 +1,6 @@ [ import_deps: [:ecto], + line_length: 80, inputs: [ "*.{ex,exs}", "{config,priv,test}/**/*.{ex,exs}", diff --git a/farmbot_firmware/.formatter.exs b/farmbot_firmware/.formatter.exs index d2cda26e..069e8b1d 100644 --- a/farmbot_firmware/.formatter.exs +++ b/farmbot_firmware/.formatter.exs @@ -1,4 +1,5 @@ # Used by "mix format" [ + line_length: 80, inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"] ] diff --git a/farmbot_firmware/lib/farmbot_firmware.ex b/farmbot_firmware/lib/farmbot_firmware.ex index 37836f7b..afcd88eb 100644 --- a/farmbot_firmware/lib/farmbot_firmware.ex +++ b/farmbot_firmware/lib/farmbot_firmware.ex @@ -241,7 +241,15 @@ defmodule FarmbotFirmware do args = Keyword.merge(args, global) transport = Keyword.fetch!(args, :transport) side_effects = Keyword.get(args, :side_effects) - reset = Keyword.get(args, :reset) || __MODULE__ + # This is probably the cause of + # https://github.com/FarmBot/farmbot_os/issues/1111 + # FarmbotFirmware.NullReset (RPi3? Safe default?) + # -OR- + # FarmbotOS.Platform.Target.FirmwareReset.GPIO (RPi0, RPi) + # -OR- + # Use Application.get_env to find target? + # probably? + reset = Keyword.get(args, :reset) || FarmbotFirmware.NullReset vcr_fd = case Keyword.get(args, :vcr_path) do diff --git a/farmbot_firmware/lib/farmbot_firmware/transports/uart_default_adapter.ex b/farmbot_firmware/lib/farmbot_firmware/transports/uart_default_adapter.ex index 259c1288..4db7489b 100644 --- a/farmbot_firmware/lib/farmbot_firmware/transports/uart_default_adapter.ex +++ b/farmbot_firmware/lib/farmbot_firmware/transports/uart_default_adapter.ex @@ -17,7 +17,6 @@ defmodule FarmbotFirmware.UartDefaultAdapter do @impl FarmbotFirmware.UartAdapter def stop(uart_pid) do - IO.puts("Hello?") UART.stop(uart_pid) end diff --git a/farmbot_firmware/test/farmbot_firmware/transports/uart_transport_test.exs b/farmbot_firmware/test/farmbot_firmware/transports/uart_transport_test.exs index 787b4aa5..5df46de3 100644 --- a/farmbot_firmware/test/farmbot_firmware/transports/uart_transport_test.exs +++ b/farmbot_firmware/test/farmbot_firmware/transports/uart_transport_test.exs @@ -72,6 +72,45 @@ defmodule FarmbotFirmware.UARTTransportTest do assert state.open == state2.open end + test "UARTTransport handles `Circuits-UART` speecific errors" do + state = %{uart: :FAKE_UART, device: :FAKE_DEVICE, open: false} + provided_reason = "Simulated failure (circuits UART)" + info = {:circuits_uart, nil, {:error, provided_reason}} + + {:stop, {:uart_error, reason}, state2} = UARTTransport.handle_info(info, state) + assert reason == provided_reason + assert state == state2 + end + + test "UARTTransport handling inbound `Circuits-UART` data" do + state = %{ + uart: :FAKE_UART, + device: :FAKE_DEVICE, + open: false, + handle_gcode: fn gcode -> + assert gcode == {nil, {:command_movement, []}} + end + } + + provided_data = "G00" + info = {:circuits_uart, nil, provided_data} + {:noreply, state2} = UARTTransport.handle_info(info, state) + assert state2 == state + end + + test "writing to UART" do + code = {nil, {:command_movement, []}} + state = %{uart: :FAKE_UART, device: :FAKE_DEVICE, open: false} + + expect(UartTestAdapter, :write, fn _pid, code -> + assert "G00 " == code + :whatever + end) + + {:reply, :whatever, state2} = UARTTransport.handle_call(code, nil, state) + assert state2 == state + end + test "UARTTransport.reset/2" do empty_state = %{reset: nil} ok_state = %{reset: %{reset: :fake_reset}} diff --git a/farmbot_firmware/test/farmbot_firmware_test.exs b/farmbot_firmware/test/farmbot_firmware_test.exs index 702c5568..28d69842 100644 --- a/farmbot_firmware/test/farmbot_firmware_test.exs +++ b/farmbot_firmware/test/farmbot_firmware_test.exs @@ -1,4 +1,15 @@ defmodule FarmbotFirmwareTest do use ExUnit.Case doctest FarmbotFirmware + + test "initialization (WIP)" do + pid = + start_supervised!({ + FarmbotFirmware, + transport: FarmbotFirmware.StubTransport, side_effects: FarmbotCore.FirmwareSideEffects + }) + + # WIP + assert is_pid(pid) + end end diff --git a/farmbot_os/.formatter.exs b/farmbot_os/.formatter.exs index 89730f1b..675b30f8 100644 --- a/farmbot_os/.formatter.exs +++ b/farmbot_os/.formatter.exs @@ -1,5 +1,6 @@ [ import_deps: [:ecto], + line_length: 80, inputs: [ "*.{ex,exs}", "{config,priv,test}/**/*.{ex,exs}", diff --git a/farmbot_os/lib/farmbot_os/configurator/network_layer.ex b/farmbot_os/lib/farmbot_os/configurator/network_layer.ex index a1f0523d..21a3aaab 100644 --- a/farmbot_os/lib/farmbot_os/configurator/network_layer.ex +++ b/farmbot_os/lib/farmbot_os/configurator/network_layer.ex @@ -6,6 +6,6 @@ defmodule FarmbotOS.Configurator.NetworkLayer do @doc "list network interfaces that can be configured" @callback list_interfaces() :: [String.t()] - @doc "scen for wifi networks" + @doc "scan for wifi networks" @callback scan(String.t()) :: [map()] end diff --git a/farmbot_telemetry/.formatter.exs b/farmbot_telemetry/.formatter.exs index d2cda26e..069e8b1d 100644 --- a/farmbot_telemetry/.formatter.exs +++ b/farmbot_telemetry/.formatter.exs @@ -1,4 +1,5 @@ # Used by "mix format" [ + line_length: 80, inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"] ]