Minor updates before branch cleanup
parent
2d17b4e82f
commit
a13e6c5832
|
@ -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}"]
|
||||||
]
|
]
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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}",
|
||||||
|
|
|
@ -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}"]
|
||||||
]
|
]
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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}}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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}",
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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}"]
|
||||||
]
|
]
|
||||||
|
|
Loading…
Reference in New Issue