defmodule Giocci.CLI.RegContact do
@moduledoc """
接点をGiocciに登録する。
## 例
iex> Giocci.CLI.RegContact.start_register(
...> [
...> {:global, :relay},
...> [
...> attr_device: "led",
...> attr_type: "dout",
...> contact_name: :do1,
...> contact_value: 0,
...> node_name: {:global, :node1}
...> ]
...> ])
"""
require Logger
defmodule Element do
defstruct attr_device: "ex. led, button",
attr_type: "ex. din, dout",
contact_name: :contact_name,
contact_value: nil,
node_name: {:global, :my_node_name}
end
def start_register([
relay,
[
attr_device: attr_device,
attr_type: attr_type,
contact_name: contact_name,
contact_value: contact_value,
node_name: node_name
]
]) do
vcontact_element = %Element{
attr_device: attr_device,
attr_type: attr_type,
contact_name: contact_name,
contact_value: contact_value,
node_name: node_name
}
Logger.info(inspect(Map.from_struct(vcontact_element)))
GenServer.cast(relay, {:reg_contact, Map.from_struct(vcontact_element)})
:ok
end
end