defmodule SSD1306 do
@moduledoc """
SSD1306 Driver for Elixir using ElixirALE.
## Usage:
Add your devices to your config like so:
config :ssd1306,
devices: [
%{bus: "i2c-1", address: 0x3d, reset_pin: 17}
]
Then use the functions in [SSD1306.Device] to send image data.
Pretty simple.
"""
@doc """
Connect to an SSD1306 device.
"""
def connect(config),
do: Supervisor.start_child(SSD1306.Supervisor, {SSD1306.Device, config})
@doc """
Disconnect an SSD1306 device.
"""
def disconnect(device_name) do
case Supervisor.terminate_child(SSD1306.Supervisor, {SSD1306.Device, device_name}) do
:ok -> Supervisor.delete_child(SSD1306.Supervisor, {SSD1306.Device, device_name})
{:error, reason} -> {:error, reason}
end
end
end