diff --git a/lib/serial/handler.ex b/lib/serial/handler.ex index e7ada191..8c65e164 100644 --- a/lib/serial/handler.ex +++ b/lib/serial/handler.ex @@ -107,6 +107,7 @@ defmodule Farmbot.Serial.Handler do # So it gets restarted if we die and vice versa Process.link(nerves) update_default(self()) + UART.write(nerves, "F83 #{handshake}") # ??? state = %{tty: tty, nerves: nerves, queue: :queue.new(), current: nil} {:ok, state} else @@ -224,6 +225,7 @@ defmodule Farmbot.Serial.Handler do end # This is when we get a code in from nerves_uart + @lint false # this is just a mess sorry def handle_info({:nerves_uart, tty, gcode}, state) do unless tty != state.tty do parsed = Parser.parse_code(gcode) diff --git a/lib/serial/supervisor.ex b/lib/serial/supervisor.ex index acd72dff..a0c6d7cf 100644 --- a/lib/serial/supervisor.ex +++ b/lib/serial/supervisor.ex @@ -29,7 +29,6 @@ defmodule Farmbot.Serial.Supervisor do supervise(children, strategy: :one_for_all) end - @spec open_ttys(atom | pid) :: :ok | no_return def open_ttys(supervisor) do UART.enumerate() diff --git a/test/serial/gcode_test.exs b/test/serial/gcode_test.exs index 8048259f..3a9e2bd9 100644 --- a/test/serial/gcode_test.exs +++ b/test/serial/gcode_test.exs @@ -2,10 +2,8 @@ defmodule Farmbot.Serial.Gcode.ParserTest do use ExUnit.Case, async: true test "Parses report paramater" do - a = Farmbot.Serial.Gcode.Parser.parse_code("R21 P0 V0") - b = Farmbot.Serial.Gcode.Parser.parse_code("R21 P0 V0 Q5") - assert(a == {:report_parameter_value, :param_version, 0, "0"}) - assert(b == {:report_parameter_value, :param_version, 0, "5"}) + bleep = Farmbot.Serial.Gcode.Parser.parse_code("R21 P0 V0 Q5") + assert(bleep == {"5", {:report_parameter_value, :param_version, 0}}) end test "pareses a param numbered string" do @@ -30,26 +28,17 @@ defmodule Farmbot.Serial.Gcode.ParserTest do test "Parses R31 and R41" do a = Farmbot.Serial.Gcode.Parser.parse_code("R31 P0 V45 Q10") - assert a == {:report_status_value, 0, 45, "10"} - - b = Farmbot.Serial.Gcode.Parser.parse_code("R41 P40 V4") - assert b == {:report_pin_value, 40, 4, "0"} + assert a == {"10", {:report_status_value, 0, 45}} end test "parses end stops" do a = Farmbot.Serial.Gcode.Parser.parse_code("R81 XA1 XB1 YA1 YB1 ZA1 ZB1 Q10") - assert a == {:reporting_end_stops, 1, 1, 1, 1, 1, 1, "10"} - - b = Farmbot.Serial.Gcode.Parser.parse_code("R81 XA0 XB1 YA1 YB1 ZA1 ZB0") - assert b == {:reporting_end_stops, 0, 1, 1, 1, 1, 0, "0"} + assert a == {"10", {:reporting_end_stops, 1, 1, 1, 1, 1, 1}} end test "parses software version" do - a = Farmbot.Serial.Gcode.Parser.parse_code("R83 version string") - assert a == {:report_software_version, "version string"} - - b = Farmbot.Serial.Gcode.Parser.parse_code("R83") - assert b == {:report_software_version, -1} + a = Farmbot.Serial.Gcode.Parser.parse_code("R83 version string Q22") + assert a == {"22", {:report_software_version, "version string"}} end test "doesnt parse unhandled codes" do @@ -59,9 +48,6 @@ defmodule Farmbot.Serial.Gcode.ParserTest do test "parses report position" do a = Farmbot.Serial.Gcode.Parser.parse_code("R82 X1 Y2 Z3 Q10") - assert a == {:report_current_position, 1,2,3,"10"} - - b = Farmbot.Serial.Gcode.Parser.parse_code("R82 X7 Y2 Z3") - assert b == {:report_current_position, 7,2,3,"0"} + assert a == {"10", {:report_current_position, 1,2,3}} end end