Add set_servo_angle to Firmware Behaviour.
parent
e9669135d1
commit
20b1e30fa4
|
@ -77,4 +77,7 @@ defmodule Farmbot.Firmware.Handler do
|
|||
@doc "Request firmware version."
|
||||
@callback request_software_version(handler) :: fw_ret_val
|
||||
|
||||
@doc "Set angle on a servo pin."
|
||||
@callback set_servo_angle(handler, pin, number) :: fw_ret_val
|
||||
|
||||
end
|
||||
|
|
|
@ -70,6 +70,10 @@ defmodule Farmbot.Firmware.StubHandler do
|
|||
GenStage.call(handler, :request_software_version)
|
||||
end
|
||||
|
||||
def set_servo_angle(handler, pin, number) do
|
||||
GenStage.call(handler, {:set_servo_angle, pin, number})
|
||||
end
|
||||
|
||||
## GenStage Behaviour
|
||||
|
||||
defmodule State do
|
||||
|
@ -164,4 +168,8 @@ defmodule Farmbot.Firmware.StubHandler do
|
|||
def handle_call(:request_software_version, _, state) do
|
||||
{:reply, :ok, [{:report_software_version, "STUBFW"}, :done], state}
|
||||
end
|
||||
|
||||
def handle_call({:set_servo_angle, pin, angle}, _, state) do
|
||||
{:reply, :ok, [], state}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -68,6 +68,10 @@ defmodule Farmbot.Firmware.UartHandler do
|
|||
GenStage.call(handler, :request_software_version)
|
||||
end
|
||||
|
||||
def set_servo_angle(handler, pin, number) do
|
||||
GenStage.call(handler, {:set_servo_angle, pin, number})
|
||||
end
|
||||
|
||||
## Private
|
||||
|
||||
defmodule State do
|
||||
|
@ -287,6 +291,10 @@ defmodule Farmbot.Firmware.UartHandler do
|
|||
do_write("F83", state)
|
||||
end
|
||||
|
||||
def handle_call({:set_servo_angle, pin, angle}, _, state) do
|
||||
do_write("F61 P#{pin} V#{angle}", state)
|
||||
end
|
||||
|
||||
def handle_call(_call, _from, state) do
|
||||
{:reply, {:error, :bad_call}, [], state}
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue