TEST (40.5%): Decoder.decode_pv

pull/1130/head
Rick Carlino 2020-01-31 14:48:55 -06:00
parent b36044662a
commit 986ac6884d
3 changed files with 18 additions and 16 deletions

View File

@ -164,15 +164,15 @@ defmodule FarmbotFirmware.GCODE.Decoder do
end
@spec decode_end_stops([binary()], Keyword.t()) :: Keyword.t()
defp decode_end_stops(list, acc \\ [])
def decode_end_stops(list, acc \\ [])
defp decode_end_stops(
[
<<arg::binary-1, "A", val0::binary>>,
<<arg::binary-1, "B", val1::binary>> | rest
],
acc
) do
def decode_end_stops(
[
<<arg::binary-1, "A", val0::binary>>,
<<arg::binary-1, "B", val1::binary>> | rest
],
acc
) do
dc = String.downcase(arg)
acc =
@ -185,11 +185,10 @@ defmodule FarmbotFirmware.GCODE.Decoder do
decode_end_stops(rest, acc)
end
defp decode_end_stops([], acc), do: acc
def decode_end_stops([], acc), do: acc
def decode_end_stops(error, _acc), do: [parse_error: error]
defp decode_end_stops(error, _acc), do: [parse_error: error]
defp decode_pv(["P" <> param_id, "V" <> value]) do
def decode_pv(["P" <> param_id, "V" <> value]) do
param = Param.decode(String.to_integer(param_id))
{value, ""} = Float.parse(value)
[{param, value}]

View File

@ -6,18 +6,17 @@ defmodule FarmbotFirmware.CommandTest do
import ExUnit.CaptureLog
@subject FarmbotFirmware.Command
@tag :this_is_the_bug
test "command() runs RPCs" do
arg = [transport: FarmbotFirmware.StubTransport]
{:ok, pid} = FarmbotFirmware.start_link(arg, [])
send(pid, :timeout)
assert {:error, :emergency_lock} ==
@subject.command(pid, {:command_emergency_lock, []})
FarmbotFirmware.command(pid, {:command_emergency_lock, []})
assert :ok == @subject.command(pid, {:command_emergency_unlock, []})
assert :ok == FarmbotFirmware.command(pid, {:command_emergency_unlock, []})
cmd = {:parameter_write, [movement_stop_at_home_x: 0.0]}
assert :ok == @subject.command(pid, cmd)
assert :ok == FarmbotFirmware.command(pid, cmd)
end
test "command() refuses to run RPCs in :boot state" do

View File

@ -4,6 +4,10 @@ defmodule FarmbotFirmware.GCODE.DecoderTest do
setup :verify_on_exit!
alias FarmbotFirmware.GCODE.Decoder
test "Decoder.decode_pv" do
assert [param_config_ok: 3.0] == Decoder.decode_pv(["P2", "V3"])
end
# NOTE: Theese values are totally random and may
# not represent real-world use of the GCode.
test "Decoder.decode_floats" do