Migrate from channel to phoenix live view.
Move phoenix config to ui project. Sync progress on page load.
This commit is contained in:
parent
e888f1330b
commit
ad24ec96ac
26 changed files with 120 additions and 164 deletions
|
@ -13,6 +13,10 @@ defmodule Morse.Server do
|
|||
GenServer.cast(__MODULE__, {:progress, progress})
|
||||
end
|
||||
|
||||
def progress do
|
||||
GenServer.call(__MODULE__, :progress)
|
||||
end
|
||||
|
||||
@impl true
|
||||
def init(state) do
|
||||
{:ok, state}
|
||||
|
@ -28,13 +32,17 @@ defmodule Morse.Server do
|
|||
end
|
||||
end
|
||||
|
||||
def handle_call(:progress, _from, {_pid, progress} = state) do
|
||||
{:reply, progress, state}
|
||||
end
|
||||
|
||||
@impl true
|
||||
def handle_cast({:progress, new_progress}, {pid, _progress}) do
|
||||
apply(progress_socket(), :broadcast_progress, [new_progress])
|
||||
apply(pubsub(), :broadcast, [Ui.PubSub, "morse_progress", new_progress])
|
||||
{:noreply, {pid, new_progress}}
|
||||
end
|
||||
|
||||
defp progress_socket do
|
||||
Application.fetch_env!(:morse, :progress_socket)
|
||||
defp pubsub do
|
||||
Application.fetch_env!(:morse, :pubsub)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -60,7 +60,7 @@ defmodule Morse.Worker do
|
|||
|> String.to_charlist()
|
||||
end
|
||||
|
||||
case Mix.Nerves.Utils.mix_target() do
|
||||
case Application.get_env(:ui, :target) do
|
||||
:host ->
|
||||
def toggle_lamp(state) do
|
||||
:rpc.call(:"esrom@esrom.lan", Morse.Worker, :toggle_lamp, [state])
|
||||
|
|
|
@ -15,7 +15,7 @@ defmodule Morse.MixProject do
|
|||
def application do
|
||||
[
|
||||
extra_applications: [:logger],
|
||||
env: [morse_message: "...---...", relay_pin: 17],
|
||||
env: [morse_message: "... --- ...", relay_pin: 17],
|
||||
mod: {Morse.Application, []}
|
||||
]
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue