Send E-Stop message if the bot has been locked for 10 minutes.

This commit is contained in:
connor rigby 2018-01-23 10:51:45 -08:00 committed by Connor Rigby
parent 4ddb45e7dd
commit a1faf4a2ca
3 changed files with 12 additions and 5 deletions

View file

@ -125,6 +125,7 @@ defmodule Farmbot.Bootstrap.Supervisor do
children = [
worker(Farmbot.Bootstrap.AuthTask, []),
worker(Farmbot.CeleryScript.EstopTimer, []),
supervisor(Farmbot.Firmware.Supervisor, []),
supervisor(Farmbot.BotState.Supervisor, []),
supervisor(Farmbot.BotState.Transport.Supervisor, []),

View file

@ -3,6 +3,7 @@ defmodule Farmbot.CeleryScript.AST.Node.Sequence do
use Farmbot.CeleryScript.AST.Node
use Farmbot.Logger
import Farmbot.System.ConfigStorage, only: [get_config_value: 3]
alias Farmbot.CeleryScript.EstopTimer
allow_args [:version, :label, :locals, :is_outdated]
def execute(%{label: name}, body, env) do
@ -45,11 +46,12 @@ defmodule Farmbot.CeleryScript.AST.Node.Sequence do
end
defp maybe_send_email(msg) do
channels = if get_config_value(:bool, "settings", "email_on_estop") do
[:email, :toast]
else
[]
Logger.error(1, msg)
if get_config_value(:bool, "settings", "email_on_estop") do
if !EstopTimer.timer_active? do
EstopTimer.start_timer(msg)
end
end
Logger.error 1, msg, [channels: channels]
end
end

View file

@ -506,6 +506,10 @@ defmodule Farmbot.Firmware do
defp do_reply(state, reply) do
maybe_cancel_timer(state.timer)
case state.current do
%Current{fun: :emergency_unlock, from: from} ->
# i really don't want this to be here..
Farmbot.CeleryScript.EstopTimer.cancel_timer()
:ok = GenServer.reply from, reply
%Current{fun: :emergency_lock, from: from} ->
:ok = GenServer.reply from, {:error, :emergency_lock}
%Current{fun: _fun, from: from} ->