Skip to content

Protocol and library to control GPIOs in Elk Audio OS devices

License

Notifications You must be signed in to change notification settings

elk-audio/elk-gpio-protocol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gpio Protocol

Protocol and library to control Gpios in Elk Audio OS devices, which provides an abstract interface for low level gpio control.

The protocol allows for describing various physical devices connected on the pins such as buttons, leds, pots etc, configuring their behavior and run time manipulation and querying of their values. This enables a high level program (such as sensei) to control gpios by communicating with the gpio protocol to with an low level program such as an embedded system which performs the gpio logic.

Gpio Client Library

Real time safe header only library to perform low level gpio logic and communicate using the gpio protocol as per the specification (see docs).

This can be used as a bare metal application in an embedded device or as a standalone program and communicate with another program (such as sensei) which acts as the gpio protocol master.

Importing into your project

Add the subdirectory gpio_protocol to your CMakeLists.txt

add_subdirectory(gpio_protocol)

Cmake Build Options

To enable the client library pass -DGPIO_PROTOCOL_BUILD_CLIENT_LIB=TRUE to your cmake.

You can also set the log level to info, warning or error by passing the cmake option -DGPIO_LOG_LEVEL=< info, warning or error>

Usage

See the project SENSEI where this library is used to process gpio data from shift registers.

Copyright 2019 Modern Ancient Instruments Networked AB, dba Elk, Stockholm