View Source Circuits.GPIO.Diagnostics (circuits_gpio v2.1.2)
Runtime diagnostics
This module provides simple diagnostics to verify GPIO controller and implementation differences. Along with the device that you're using, this is super helpful for diagnosing issues since some GPIO features aren't supposed to work on some devices.
Summary
Functions
Reminder for how to use report/2
Print a summary of the GPIO diagnostics
Run GPIO tests and return a list of the results
Run GPIO API performance tests
Functions
@spec report() :: String.t()
Reminder for how to use report/2
@spec report(Circuits.GPIO.gpio_spec(), Circuits.GPIO.gpio_spec()) :: boolean()
Print a summary of the GPIO diagnostics
Connect the pins referred to by out_gpio_spec
and in_gpio_spec
together.
When using the cdev stub implementation, any pair of GPIOs can be used. For
example, run:
Circuits.GPIO.Diagnostics.report({"gpiochip0", 0}, {"gpiochip0", 1})
This function is intended for IEx prompt usage. See run/2
for programmatic
use.
@spec run(Circuits.GPIO.gpio_spec(), Circuits.GPIO.gpio_spec()) :: list()
Run GPIO tests and return a list of the results
@spec speed_test(Circuits.GPIO.gpio_spec()) :: %{ write_cps: float(), read_cps: float(), write_one_cps: float(), read_one_cps: float() }
Run GPIO API performance tests
Disclaimer: There should be a better way than relying on the Circuits.GPIO write performance on nearly every device. Write performance shouldn't be terrible, though.