Linux Simple I/O Library

../
CHANGELOG.txt  2781514Jan 12 09:02:06 2025
COPYING  1256Jun 14 13:40:01 2024
Makefile  6005Aug 28 11:15:56 2024
README.md  5312Dec 30 13:58:02 2024
README.txt  3369Dec 30 13:58:02 2024
ada/  512Jan 15 16:22:15 2023
attic/  512Jan 29 11:06:50 2024
c++/  512Mar 28 17:07:02 2021
c/  1024Jan 24 16:18:18 2024
control  252Nov 11 08:09:33 2021
csharp/  512Feb 25 13:34:25 2023
doc/  1024Jun 13 09:52:42 2024
dotnet/  512Mar 3 11:24:27 2020
elements/  512Feb 15 00:21:38 2024
freepascal/  512Dec 4 15:43:46 2021
gm2/  512Dec 18 13:14:01 2023
go/  512Jan 25 10:07:54 2024
hotplug/  512Dec 17 22:00:48 2020
include/  512Feb 14 20:28:57 2024
libremoteio/  1024Dec 22 15:31:55 2023
nuget/  512Dec 21 15:41:06 2024
python/  512Feb 6 18:52:41 2024
win64/  512Dec 29 21:30:46 2024

libsimpleio is an attempt to encapsulate (as much as possible) the ugliness of Linux I/O device access. It provides services for the following types of I/O devices:

Although libsimpleio was originally intended for Linux microcomputers such as the Raspberry Pi, it can also be useful on larger desktop Linux systems.

The C wrapper functions exported by libsimpleio all follow the same uniform pattern:

All of the C wrapper functions are declared between _BEGIN_STD_C and _END_STD_C for C++. Additional source code libraries are provided for Ada, C++, C#, Free Pascal, Modula-2, and Python that define OOP (Object Oriented Programming) thick binding classes for libsimpleio.

Documentation

The user manual for libsimpleio is available at UserManual.pdf. Installation instructions are on pages 6 and 7.

The man pages specifying the libsimpleio API are available at libsimpleio.html.

Git Repository

The libsimpleio source code tree is available at:

https://github.com/pmunts/libsimpleio

Use the following command to clone it:

git clone https://github.com/pmunts/libsimpleio.git

Debian Package Repository

Prebuilt libsimpleio packages for Debian Linux are available at:

http://repo.munts.com/debian12

Alire Crates

libsimpleio mcp2221 remoteio

Ada programs using the libsimpleio crate run only on Linux target computers.

Ada programs using the mcp2221 crate can run on Linux, macOS, or Windows target computers, enabling you to control I/O resources on a USB tethered MCP2221A USB 2.0 to I2C/UART Protocol Converter with GPIO, perhaps using a module like the Adafruit MCP2221A Breakout.

Ada programs using the remoteio crate can run on Linux, macOS, or Windows target computers, enabling you to control GPIO resources on a USB tethered or networked Remote I/O Protocol server.

NuGet Packages for .Net

libremoteio libremoteio-templates
libsimpleio libsimpleio-templates

Use one of the following command sequences to create a .Net program project:


dotnet new install libremoteio-templates
dotnet new csharp_console_libremoteio -o myprogram
Or

dotnet new install libsimpleio-templates
dotnet new csharp_console_libsimpleio -o myprogram


Questions or comments to Philip Munts phil@munts.net