Implement estop and eunlock syscalls

pull/974/head
Connor Rigby 2019-04-17 10:52:44 -07:00
parent 3417870bb3
commit f0c8fed4d8
No known key found for this signature in database
GPG Key ID: 29A88B24B70456E0
3 changed files with 25 additions and 0 deletions

View File

@ -72,6 +72,17 @@ defmodule FarmbotCeleryScript.SysCalls do
@callback flash_firmware(package) :: :ok | error
@callback firmware_reboot() :: :ok | error
@callback emergency_lock() :: :ok | error
@callback emergency_unlock() :: :ok | error
def emergency_lock(module \\ @sys_call_implementation) do
_ = module.emergency_lock()
end
def emergency_unlock(module \\ @sys_call_implementation) do
_ = module.emergency_unlock()
end
def power_off(module \\ @sys_call_implementation) do
_ = module.factory_reset()
:ok

View File

@ -215,6 +215,10 @@ defmodule FarmbotFirmware do
def terminate(reason, state) do
for {pid, _code} <- state.command_queue, do: send(pid, reason)
state.transport_pid &&
Process.alive?(state.transport_pid) &&
GenServer.stop(state.transport_pid)
end
# This will be the first message received right after `init/1`

View File

@ -160,6 +160,16 @@ defmodule FarmbotOS.SysCalls do
end
end
def emergency_lock do
_ = FarmbotFirmware.command({:command_emergency_lock, []})
:ok
end
def emergency_unlock do
_ = FarmbotFirmware.command({:command_emergency_unlock, []})
:ok
end
defp assert_axis!(axis) when is_atom(axis),
do: axis