Packages
circuits_gpio
2.0.0-pre.4
2.3.0
2.2.0
2.1.3
2.1.2
retired
2.1.1
retired
2.1.0
retired
2.0.2
retired
2.0.1
retired
2.0.0
retired
2.0.0-pre.6
retired
2.0.0-pre.5
retired
2.0.0-pre.4
retired
2.0.0-pre.3
retired
2.0.0-pre.2
retired
2.0.0-pre.1
retired
2.0.0-pre.0
retired
1.2.2
1.2.1
1.2.0
1.1.0
1.0.1
1.0.0
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.1
0.3.0
0.2.0
0.1.0
Use GPIOs in Elixir
Retired package: Release invalid - Use v2.0.0 or later
Current section
Files
Jump to
Current section
Files
lib/gpio/line.ex
# SPDX-FileCopyrightText: 2023 Frank Hunleth
#
# SPDX-License-Identifier: Apache-2.0
defmodule Circuits.GPIO.Line do
@moduledoc """
Information about a GPIO line
See `Circuits.GPIO.enumerate/0` and `Circuits.GPIO.line_info/1`.
"""
alias Circuits.GPIO
@derive {Inspect, optional: [:label, :controller, :consumer]}
defstruct gpio_spec: nil, label: "", controller: "", consumer: ""
@typedoc """
Line information
* `:gpio_spec` - the gpio spec to pass to `GPIO.open/3` to use the GPIO
* `:controller` - a GPIO controller label or description. Empty string if unused
* `:label` - a label for the line. This could also be passed to
`GPIO.open/3`. Empty string if no label
* `:consumer` - a hint at who's using the GPIO. Empty string if unused or unknown
"""
@type t() :: %__MODULE__{
gpio_spec: GPIO.gpio_spec(),
controller: GPIO.controller() | GPIO.label(),
label: GPIO.label(),
consumer: String.t()
}
end