Add new params and error handler to gcode decoder
parent
dc723d4ee4
commit
0036d042fd
|
@ -8,7 +8,8 @@ defmodule FarmbotFirmware.GCODE.Decoder do
|
|||
def do_decode("R00", []), do: {:report_idle, []}
|
||||
def do_decode("R01", []), do: {:report_begin, []}
|
||||
def do_decode("R02", []), do: {:report_success, []}
|
||||
def do_decode("R03", []), do: {:report_error, []}
|
||||
def do_decode("R03", []), do: {:report_error, [:no_error]}
|
||||
def do_decode("R03", error), do: {:report_error, decode_error(error)}
|
||||
def do_decode("R04", []), do: {:report_busy, []}
|
||||
|
||||
def do_decode("R05", xyz), do: {:report_axis_state, decode_axis_state(xyz)}
|
||||
|
@ -82,6 +83,14 @@ defmodule FarmbotFirmware.GCODE.Decoder do
|
|||
{:unknown, [kind | args]}
|
||||
end
|
||||
|
||||
def decode_error(["V0"]), do: [:no_error]
|
||||
def decode_error(["V1"]), do: [:emergency_lock]
|
||||
def decode_error(["V2"]), do: [:timeout]
|
||||
def decode_error(["V3"]), do: [:stall_detected]
|
||||
def decode_error(["V14"]), do: [:invalid_command]
|
||||
def decode_error(["V15"]), do: [:no_config]
|
||||
def decode_error([unk]), do: [unknown_error: unk]
|
||||
|
||||
defp decode_floats(list, acc \\ [])
|
||||
|
||||
defp decode_floats([<<arg::binary-1, val::binary>> | rest], acc) do
|
||||
|
|
|
@ -62,6 +62,9 @@ defmodule FarmbotFirmware.Param do
|
|||
def decode(85), do: :movement_stall_sensitivity_x
|
||||
def decode(86), do: :movement_stall_sensitivity_y
|
||||
def decode(87), do: :movement_stall_sensitivity_z
|
||||
def decode(91), do: :movement_microsteps_x
|
||||
def decode(92), do: :movement_microsteps_y
|
||||
def decode(93), do: :movement_microsteps_z
|
||||
def decode(101), do: :encoder_enabled_x
|
||||
def decode(102), do: :encoder_enabled_y
|
||||
def decode(103), do: :encoder_enabled_z
|
||||
|
@ -168,6 +171,9 @@ defmodule FarmbotFirmware.Param do
|
|||
def encode(:movement_stall_sensitivity_x), do: 85
|
||||
def encode(:movement_stall_sensitivity_y), do: 86
|
||||
def encode(:movement_stall_sensitivity_z), do: 87
|
||||
def encode(:movement_microsteps_x), do: 91
|
||||
def encode(:movement_microsteps_y), do: 92
|
||||
def encode(:movement_microsteps_z), do: 93
|
||||
def encode(:encoder_enabled_x), do: 101
|
||||
def encode(:encoder_enabled_y), do: 102
|
||||
def encode(:encoder_enabled_z), do: 103
|
||||
|
|
|
@ -39,8 +39,14 @@ defmodule FarmbotFirmware.GCODETest do
|
|||
end
|
||||
|
||||
test "error" do
|
||||
assert {nil, {:report_error, []}} = GCODE.decode("R03")
|
||||
assert {"100", {:report_error, []}} = GCODE.decode("R03 Q100")
|
||||
assert {nil, {:report_error, [:no_error]}} = GCODE.decode("R03")
|
||||
assert {nil, {:report_error, [:no_error]}} = GCODE.decode("R03 V0")
|
||||
assert {nil, {:report_error, [:emergency_lock]}} = GCODE.decode("R03 V1")
|
||||
assert {nil, {:report_error, [:timeout]}} = GCODE.decode("R03 V2")
|
||||
assert {nil, {:report_error, [:stall_detected]}} = GCODE.decode("R03 V3")
|
||||
assert {nil, {:report_error, [:invalid_command]}} = GCODE.decode("R03 V14")
|
||||
assert {nil, {:report_error, [:no_config]}} = GCODE.decode("R03 V15")
|
||||
assert {"100", {:report_error, [:no_error]}} = GCODE.decode("R03 Q100")
|
||||
|
||||
assert "R03" = GCODE.encode({nil, {:report_error, []}})
|
||||
assert "R03 Q100" = GCODE.encode({"100", {:report_error, []}})
|
||||
|
|
Loading…
Reference in New Issue