20 lines
600 B
Elixir
20 lines
600 B
Elixir
|
defmodule AugieWeb.TemperatureLive do
|
||
|
use Phoenix.LiveView
|
||
|
alias Augie.Sensor.IMU
|
||
|
alias Phoenix.PubSub
|
||
|
|
||
|
@moduledoc false
|
||
|
|
||
|
def mount(_params, _context, socket) do
|
||
|
if connected?(socket), do: PubSub.subscribe(Augie.PubSub, "IMU")
|
||
|
|
||
|
{:ok, assign(socket, temperature: nil)}
|
||
|
end
|
||
|
|
||
|
def handle_info(%IMU{temperature: temperature}, socket) when is_float(temperature),
|
||
|
do: {:noreply, assign(socket, temperature: temperature)}
|
||
|
|
||
|
def handle_info(%IMU{temperature: temperature}, socket) when is_integer(temperature),
|
||
|
do: {:noreply, assign(socket, temperature: temperature / 1.0)}
|
||
|
end
|