package gpiod
Install
Dune Dependency
Authors
Maintainers
Sources
md5=5c7cc97227025d483b181a22dc22481f
sha512=4a12ef0e1b53adcf5e61495df1b27e0800da035eb21716b757199a852d94502de1d31cb401e4bb39662b7ac33cea7e88971bcfc86d8620d44c03e6593d13d168
Description
Published: 16 Jun 2021
README
libGpiod Ocaml Bindings
A direct (1-1) wrapper to libgpiod from ocaml. This unlocks access to the new GPIO interface on Linux, instead of the error-prone and sluggish sysfs approach. Bindings are systematically generated from the libgpiod header file on the system. Memory management and reference counting are not taken care of by the bindings, so the corresponding reference decrement or free methods will still need to be called.
The bindings in this package are primitive, but unlock access to GPIO ports on all kernels with gpiod support. I welcome improvements or full replacement with a pure Ocaml version (Implementation of this would require communication of precisely packed structures to the kernel through ioctl calls).
Usage
An example of usage on a Raspberry Pi can be seen in examples.
Dependencies
Requires libgpiod to be installed (link).
TODO
Synthesize bindings for methods that take a timespec like the gpiod_wait methods.
Generate useful bindings for the methods that take mutable integer arrays.
Dependencies (7)
-
ocaml
>= "4.08.0"
- conf-gpiod
-
ctypes-foreign
>= "0.18.0"
-
ctypes
>= "0.17.1"
-
core
>= "v0.14.1"
-
re
>= "1.9.0"
-
dune
>= "2.8"
Dev Dependencies (1)
-
odoc
with-doc
Used by
None
Conflicts
None