Packages

Setup and Maintenance Tools with RESTish API

Current section

Files

Jump to
nerves_backdoor lib reset.ex
Raw

lib/reset.ex

defmodule NervesBackdoor.Reset do
use GenServer
def start_link(_opts \\ []) do
init_args = []
GenServer.start_link(__MODULE__, init_args, name: :nbd_reset)
end
@impl true
def init(_args) do
io = NervesBackdoor.io_btn()
{:ok, gpio} = NervesBackdoor.Gpio.io_input(io)
:ok = NervesBackdoor.Gpio.io_rising(gpio)
{:ok, gpio}
end
@impl true
def terminate(_reason, gpio) do
:ok = NervesBackdoor.Gpio.io_close(gpio)
end
@impl true
def handle_info({:circuits_gpio, _, _, _}, gpio) do
NervesBackdoor.pass_reset()
{:noreply, gpio}
end
end