Fix set_pin_io mode

pull/974/head
Connor Rigby 2019-08-20 13:46:55 -07:00
parent 9e8b2a43a9
commit a04ddf0159
No known key found for this signature in database
GPG Key ID: 29A88B24B70456E0
3 changed files with 18 additions and 1 deletions

View File

@ -219,6 +219,10 @@ defmodule FarmbotCeleryScript.SysCalls do
number_or_error(sys_calls, :set_servo_angle, [pin_num, pin_value])
end
def set_pin_io_mode(sys_calls \\ @sys_calls, pin_number, pin_io_mode) do
ok_or_error(sys_calls, :set_pin_io_mode, [pin_number, pin_io_mode])
end
def set_user_env(sys_calls \\ @sys_calls, key, value) do
ok_or_error(sys_calls, :set_user_env, [key, value])
end

View File

@ -250,6 +250,16 @@ defmodule FarmbotFirmware.StubTransport do
{:reply, :ok, state, {:continue, resp_codes}}
end
def handle_call({tag, {:pin_mode_write, _args}} = code, _from, state) do
resp_codes = [
GCODE.new(:report_echo, [GCODE.encode(code)]),
GCODE.new(:report_begin, [], tag),
GCODE.new(:report_success, [], tag)
]
{:reply, :ok, state, {:continue, resp_codes}}
end
def handle_call({tag, {:position_read, _}} = code, _from, state) do
resp_codes = [
GCODE.new(:report_echo, [GCODE.encode(code)]),

View File

@ -2,7 +2,7 @@ defmodule FarmbotOS.SysCalls.SetPinIOMode do
alias FarmbotFirmware
def set_pin_io_mode(pin_number, mode) do
mode = extract_set_pin_mode(to_string(mode))
mode = extract_set_pin_mode(mode)
case FarmbotFirmware.command({:pin_mode_write, [p: pin_number, m: mode]}) do
:ok ->
@ -16,4 +16,7 @@ defmodule FarmbotOS.SysCalls.SetPinIOMode do
def extract_set_pin_mode("input"), do: 0x0
def extract_set_pin_mode("input_pullup"), do: 0x2
def extract_set_pin_mode("output"), do: 0x1
def extract_set_pin_mode(0x0), do: 0x0
def extract_set_pin_mode(0x2), do: 0x2
def extract_set_pin_mode(0x1), do: 0x1
end