../ | ||
CHANGELOG.txt | 4492850 | Sep 15 23:02:55 2025 |
COPYING | 1256 | Jan 27 11:00:18 2025 |
Makefile | 6732 | May 14 17:06:08 2025 |
README.md | 6405 | Jun 29 19:53:38 2025 |
README.txt | 4071 | Jun 29 19:53:38 2025 |
ada/ | 512 | Apr 28 00:29:23 2025 |
attic/ | 512 | Jan 29 11:06:50 2024 |
c++/ | 512 | Mar 28 17:07:02 2021 |
c/ | 1024 | Sep 15 21:22:43 2025 |
control | 252 | Nov 11 08:09:33 2021 |
csharp/ | 512 | Apr 28 00:29:23 2025 |
doc/ | 1024 | Sep 7 23:42:28 2025 |
dotnet/ | 512 | Mar 3 11:24:27 2020 |
elements/ | 512 | Feb 15 00:21:38 2024 |
freepascal/ | 512 | Dec 4 15:43:46 2021 |
gm2/ | 512 | Dec 18 13:14:01 2023 |
go/ | 512 | Jan 25 10:07:54 2024 |
hotplug/ | 512 | Dec 17 22:00:48 2020 |
include/ | 512 | Apr 21 08:49:01 2025 |
linux/ | 512 | May 7 23:27:25 2025 |
nuget/ | 512 | Sep 8 09:12:06 2025 |
python/ | 512 | Feb 6 18:52:41 2024 |
win64/ | 512 | Jul 11 15:38:36 2025 |
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.
The Ada library unit packages in the libsimpleio code tree are especially rich and are both more numerous and more refined than those for other programming languages. Ada was originally developed and released in 1983 to replace a myriad of other programming languages used for developing software for military aircraft and other complex weapons systems. With the help of libsimpleio, Ada is still one of the best languages around for developing reliable embedded systems software for Linux computers. See also MuntsOS Embedded Linux, which uses libsimpleio pervasively.
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.
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
Prebuilt libsimpleio packages for Debian Linux are available at:
https://repo.munts.com/debian12
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.
Use one of the following command sequences to create a .Net program project:
dotnet new install libremoteio-templates mkdir myprogram cd myprogram dotnet new csharp_console_libremoteio dotnet new sln dotnet sln add myprogram.csprojOr
dotnet new install libsimpleio-templates mkdir myprogram cd myprogram dotnet new csharp_console_libsimpleio dotnet new sln dotnet sln add myprogram.csproj