View Source Circuits.GPIO.Backend behaviour (circuits_gpio v2.1.2)
Backends provide the connection to the real or virtual GPIO controllers
Summary
Callbacks
Return information about this backend
Return a list of GPIOs
Return identifying information about a GPIO
Open a GPIO
Return a GPIO's current status
Callbacks
@callback backend_info() :: map()
Return information about this backend
@callback enumerate(options :: Circuits.GPIO.open_options()) :: [ Circuits.GPIO.identifiers() ]
Return a list of GPIOs
See t:GPIO.identifiers/0
for the information that is returned. The options
contain
backend-specific options to help with enumeration.
@callback identifiers( gpio_spec :: Circuits.GPIO.gpio_spec(), options :: Circuits.GPIO.open_options() ) :: {:ok, Circuits.GPIO.identifiers()} | {:error, atom()}
Return identifying information about a GPIO
See t:gpio_spec/0
for the ways of referring to GPIOs. The options
contain
backend-specific options to help enumerating GPIOs.
If the GPIO is found, this function returns identifying information about the GPIO.
@callback open( gpio_spec :: Circuits.GPIO.gpio_spec(), direction :: Circuits.GPIO.direction(), options :: Circuits.GPIO.open_options() ) :: {:ok, Circuits.GPIO.Handle.t()} | {:error, atom()}
Open a GPIO
See t:gpio_spec/0
for the ways of referring to GPIOs. Set direction
to
either :input
or :output
. If opening as an output, then be sure to set
the :initial_value
option to minimize the time the GPIO is in the default
state.
Options:
- :initial_value - Set to
0
or1
. Only used for outputs. Defaults to0
. - :pull_mode - Set to
:not_set
,:pullup
,:pulldown
, or:none
for an input pin.:not_set
is the default.
Returns {:ok, handle}
on success.
@callback status( gpio_spec :: Circuits.GPIO.gpio_spec(), options :: Circuits.GPIO.open_options() ) :: {:ok, Circuits.GPIO.status()} | {:error, atom()}
Return a GPIO's current status
This function returns how a GPIO is configured. The GPIO doesn't need to be
opened. It's different from gpio_identifiers/2
since it returns dynamic information
whereas gpio_identifiers/2
only returns information about how to refer to a GPIO
and where it exists in the system.
See t:gpio_spec/0
for the ways of referring to GPIOs. The options
contain
backend-specific options to help enumerating GPIOs.
If the GPIO is found, this function returns its status.