Minor updates before branch cleanup

pull/1115/head
Rick Carlino 2020-01-17 09:53:15 -06:00
parent 2d17b4e82f
commit a13e6c5832
12 changed files with 74 additions and 12 deletions

View File

@ -1 +1 @@
9.0.2 9.0.2-rc2

View File

@ -1,3 +1,4 @@
[ [
line_length: 80,
inputs: ["*.{ex,exs}", "{config,priv,lib,test}/**/*.{ex,exs}"] inputs: ["*.{ex,exs}", "{config,priv,lib,test}/**/*.{ex,exs}"]
] ]

View File

@ -147,12 +147,12 @@ defmodule FarmbotCeleryScript.Scheduler do
case DateTime.diff(DateTime.utc_now(), at, :millisecond) do case DateTime.diff(DateTime.utc_now(), at, :millisecond) do
# now is before the next date # now is before the next date
diff_ms when diff_ms < 0 -> diff_ms when diff_ms < 0 ->
from_now = # from_now =
DateTime.utc_now() # DateTime.utc_now()
|> DateTime.add(abs(diff_ms), :millisecond) # |> DateTime.add(abs(diff_ms), :millisecond)
|> Timex.from_now() # |> Timex.from_now()
# msg = "Next execution is still #{diff_ms}ms too early (#{from_now})"
Logger.info("Next execution is still #{diff_ms}ms too early (#{from_now})") # Logger.info(msg)
state state
|> schedule_next_checkup(abs(diff_ms)) |> schedule_next_checkup(abs(diff_ms))
@ -160,8 +160,8 @@ defmodule FarmbotCeleryScript.Scheduler do
# now is more than the grace period past schedule time # now is more than the grace period past schedule time
diff_ms when diff_ms > @grace_period_ms -> diff_ms when diff_ms > @grace_period_ms ->
from_now = Timex.from_now(at) # from_now = Timex.from_now(at)
Logger.info("Next execution is #{diff_ms}ms too late (#{from_now})") # Logger.info("Next execution is #{diff_ms}ms too late (#{from_now})")
state state
|> pop_next() |> pop_next()

View File

@ -1,5 +1,6 @@
[ [
import_deps: [:ecto], import_deps: [:ecto],
line_length: 80,
inputs: [ inputs: [
"*.{ex,exs}", "*.{ex,exs}",
"{config,priv,test}/**/*.{ex,exs}", "{config,priv,test}/**/*.{ex,exs}",

View File

@ -1,4 +1,5 @@
# Used by "mix format" # Used by "mix format"
[ [
line_length: 80,
inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"] inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"]
] ]

View File

@ -241,7 +241,15 @@ defmodule FarmbotFirmware do
args = Keyword.merge(args, global) args = Keyword.merge(args, global)
transport = Keyword.fetch!(args, :transport) transport = Keyword.fetch!(args, :transport)
side_effects = Keyword.get(args, :side_effects) 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 = vcr_fd =
case Keyword.get(args, :vcr_path) do case Keyword.get(args, :vcr_path) do

View File

@ -17,7 +17,6 @@ defmodule FarmbotFirmware.UartDefaultAdapter do
@impl FarmbotFirmware.UartAdapter @impl FarmbotFirmware.UartAdapter
def stop(uart_pid) do def stop(uart_pid) do
IO.puts("Hello?")
UART.stop(uart_pid) UART.stop(uart_pid)
end end

View File

@ -72,6 +72,45 @@ defmodule FarmbotFirmware.UARTTransportTest do
assert state.open == state2.open assert state.open == state2.open
end 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 test "UARTTransport.reset/2" do
empty_state = %{reset: nil} empty_state = %{reset: nil}
ok_state = %{reset: %{reset: :fake_reset}} ok_state = %{reset: %{reset: :fake_reset}}

View File

@ -1,4 +1,15 @@
defmodule FarmbotFirmwareTest do defmodule FarmbotFirmwareTest do
use ExUnit.Case use ExUnit.Case
doctest FarmbotFirmware doctest FarmbotFirmware
test "initialization (WIP)" do
pid =
start_supervised!({
FarmbotFirmware,
transport: FarmbotFirmware.StubTransport, side_effects: FarmbotCore.FirmwareSideEffects
})
# WIP
assert is_pid(pid)
end
end end

View File

@ -1,5 +1,6 @@
[ [
import_deps: [:ecto], import_deps: [:ecto],
line_length: 80,
inputs: [ inputs: [
"*.{ex,exs}", "*.{ex,exs}",
"{config,priv,test}/**/*.{ex,exs}", "{config,priv,test}/**/*.{ex,exs}",

View File

@ -6,6 +6,6 @@ defmodule FarmbotOS.Configurator.NetworkLayer do
@doc "list network interfaces that can be configured" @doc "list network interfaces that can be configured"
@callback list_interfaces() :: [String.t()] @callback list_interfaces() :: [String.t()]
@doc "scen for wifi networks" @doc "scan for wifi networks"
@callback scan(String.t()) :: [map()] @callback scan(String.t()) :: [map()]
end end

View File

@ -1,4 +1,5 @@
# Used by "mix format" # Used by "mix format"
[ [
line_length: 80,
inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"] inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"]
] ]