Circuits.GPIO.Backend behaviour (circuits_gpio v2.1.3)
View SourceBackends 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
0or1. Only used for outputs. Defaults to0. - :pull_mode - Set to
:not_set,:pullup,:pulldown, or:nonefor an input pin.:not_setis 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.