Add "really fast blink" for syncing led
parent
52f5a25367
commit
c03e62bdfe
|
@ -3,7 +3,7 @@ defmodule FarmbotCore.Leds do
|
|||
@led_handler Application.get_env(:farmbot_core, __MODULE__)[:gpio_handler]
|
||||
@led_handler || Mix.raise("You forgot a led handler!")
|
||||
|
||||
@valid_status [:off, :solid, :slow_blink, :fast_blink]
|
||||
@valid_status [:off, :solid, :slow_blink, :fast_blink, :really_fast_blink]
|
||||
|
||||
def red(status) when status in @valid_status, do: led_handler().red(status)
|
||||
def blue(status) when status in @valid_status, do: led_handler().blue(status)
|
||||
|
|
|
@ -27,10 +27,12 @@ defmodule FarmbotCore.Leds.StubHandler do
|
|||
|
||||
defp status_in(:slow_blink), do: IO.ANSI.blink_slow()
|
||||
defp status_in(:fast_blink), do: IO.ANSI.blink_rapid()
|
||||
defp status_in(:really_fast_blink), do: IO.ANSI.blink_rapid()
|
||||
defp status_in(_), do: ""
|
||||
|
||||
defp status_out(:slow_blink), do: IO.ANSI.blink_off()
|
||||
defp status_out(:fast_blink), do: IO.ANSI.blink_off()
|
||||
defp status_out(:really_fast_blink), do: IO.ANSI.blink_off()
|
||||
defp status_out(_), do: ""
|
||||
|
||||
def start_link(_args) do
|
||||
|
|
|
@ -77,7 +77,7 @@ defmodule FarmbotExt.AMQP.AutoSyncChannel do
|
|||
end
|
||||
|
||||
def handle_info(:preload, state) do
|
||||
_ = Leds.green(:fast_blink)
|
||||
_ = Leds.green(:really_fast_blink)
|
||||
|
||||
with :ok <- Preloader.preload_all() do
|
||||
if Asset.Query.auto_sync?() do
|
||||
|
@ -159,7 +159,7 @@ defmodule FarmbotExt.AMQP.AutoSyncChannel do
|
|||
def handle_asset(asset_kind, id, params) do
|
||||
if Asset.Query.auto_sync?() do
|
||||
:ok = BotState.set_sync_status("syncing")
|
||||
_ = Leds.green(:fast_blink)
|
||||
_ = Leds.green(:really_fast_blink)
|
||||
# Logger.info "Syncing #{asset_kind} #{id} #{inspect(params)}"
|
||||
Asset.Command.update(asset_kind, id, params)
|
||||
:ok = BotState.set_sync_status("synced")
|
||||
|
|
|
@ -408,7 +408,7 @@ defmodule FarmbotOS.SysCalls do
|
|||
|
||||
with {:ok, sync_changeset} <- API.get_changeset(Sync),
|
||||
:ok <- BotState.set_sync_status("syncing"),
|
||||
_ <- Leds.green(:fast_blink),
|
||||
_ <- Leds.green(:really_fast_blink),
|
||||
sync_changeset <- Reconciler.sync_group(sync_changeset, SyncGroup.group_0()),
|
||||
sync_changeset <- Reconciler.sync_group(sync_changeset, SyncGroup.group_1()),
|
||||
sync_changeset <- Reconciler.sync_group(sync_changeset, SyncGroup.group_2()),
|
||||
|
|
|
@ -6,8 +6,7 @@ defmodule FarmbotOS.Platform.Target.Leds.CircuitsHandler do
|
|||
|
||||
@slow_blink_speed 1000
|
||||
@fast_blink_speed 250
|
||||
|
||||
# @valid_status [:off, :solid, :slow_blink, :fast_blink]
|
||||
@really_fast_blink_speed 100
|
||||
|
||||
@moduledoc false
|
||||
def red(status) do
|
||||
|
@ -103,6 +102,13 @@ defmodule FarmbotOS.Platform.Target.Leds.CircuitsHandler do
|
|||
update_color(state, color, %{state[color] | blink_timer: timer, status: :fast_blink})}
|
||||
end
|
||||
|
||||
def handle_call({color, :really_fast_blink}, _from, state) do
|
||||
timer = restart_timer(state[color].blink_timer, color, @really_fast_blink_speed)
|
||||
|
||||
{:reply, :ok,
|
||||
update_color(state, color, %{state[color] | blink_timer: timer, status: :really_fast_blink})}
|
||||
end
|
||||
|
||||
def handle_info({:blink_timer, color}, state) do
|
||||
new_state =
|
||||
case state[color] do
|
||||
|
@ -120,6 +126,20 @@ defmodule FarmbotOS.Platform.Target.Leds.CircuitsHandler do
|
|||
n = %{state[color] | state: new_led_state, blink_timer: timer, status: :fast_blink}
|
||||
update_color(state, color, n)
|
||||
|
||||
%{status: :really_fast_blink} ->
|
||||
new_led_state = invert(state[color].state)
|
||||
:ok = GPIO.write(state[color].ref, new_led_state)
|
||||
timer = restart_timer(state[color].blink_timer, color, @really_fast_blink_speed)
|
||||
|
||||
n = %{
|
||||
state[color]
|
||||
| state: new_led_state,
|
||||
blink_timer: timer,
|
||||
status: :really_fast_blink
|
||||
}
|
||||
|
||||
update_color(state, color, n)
|
||||
|
||||
_ ->
|
||||
state
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue