gpiod

A wrapper around the C libgpiod library for GPIO on recent (>4.8) Linux kernels
README

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.

Install
Published
16 Jun 2021
Sources
v0.7.tar.gz
md5=5c7cc97227025d483b181a22dc22481f
sha512=4a12ef0e1b53adcf5e61495df1b27e0800da035eb21716b757199a852d94502de1d31cb401e4bb39662b7ac33cea7e88971bcfc86d8620d44c03e6593d13d168
Dependencies
odoc
with-doc
ocaml
>= "4.08.0"
ctypes-foreign
>= "0.18.0"
ctypes
>= "0.17.1"
core
>= "v0.14.1"
re
>= "1.9.0"
dune
>= "2.8"
Reverse Dependencies