Implement estop and eunlock syscalls
parent
3417870bb3
commit
f0c8fed4d8
|
@ -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
|
||||
|
|
|
@ -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`
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue