From 16bef8c5bac57e6b674fdd7a1e5a8660917c76df Mon Sep 17 00:00:00 2001 From: pmunts Date: Tue, 21 May 2024 05:10:57 -0700 Subject: [PATCH 1/4] libsimpleio 2.22357.1 (#1064) Added new package External_Command.Pipeline. Added long description. --- .../li/libsimpleio/libsimpleio-2.22357.1.toml | 148 ++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 index/li/libsimpleio/libsimpleio-2.22357.1.toml diff --git a/index/li/libsimpleio/libsimpleio-2.22357.1.toml b/index/li/libsimpleio/libsimpleio-2.22357.1.toml new file mode 100644 index 000000000..77308fab2 --- /dev/null +++ b/index/li/libsimpleio/libsimpleio-2.22357.1.toml @@ -0,0 +1,148 @@ +name = "libsimpleio" +version = "2.22357.1" +description = "Linux Simple I/O Library" +website = "https://github.com/pmunts/libsimpleio" +authors = ["Philip Munts"] +maintainers = ["Philip Munts "] +maintainers-logins = ["pmunts"] +licenses = "BSD-1-Clause" + +long-description = """ +Introduction +============ + +This crate provides an Ada binding to the [Linux Simple I/O +Library](https://github.com/pmunts/libsimpleio), *aka* **libsimpleio**. + +*Note: This crate includes all of the functionality of the **`mcp2221`** +and **`remoteio`** crates. Unlike those two crates, which can be built +for and used on Linux, MacOS, or Windows targets, this crate can only be +built for and used on Linux targets.* + +Linux Simple I/O Library +======================== + +**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: + +- [Industrial I/O + Subsystem](https://wiki.analog.com/software/linux/docs/iio/iio) A/D + (Analog to Digital) Converter Devices +- [Industrial I/O + Subsystem](https://wiki.analog.com/software/linux/docs/iio/iio) D/A + (Digital to Analog) Converter Devices +- GPIO (General Purpose Input/Output) Pins +- Raw HID (Human Interface Device) Devices +- I^2^C (Inter-Integrated Circuit) Bus Devices +- PWM (Pulse Width Modulated) Output Devices +- [Remote I/O + Protocol](http://git.munts.com/libsimpleio/doc/RemoteIOProtocol.pdf) + Devices +- Serial Ports +- SPI (Serial Peripheral Interface) Bus Devices +- [Stream Framing + Protocol](http://git.munts.com/libsimpleio/doc/StreamFramingProtocol.pdf) + Devices +- TCP and UDP over IPv4 Network Devices +- Watchdog Timer Devices + +**libsimpleio** exports a small number of C wrapper or shim functions. +These shim functions present a more coherent API (Application +Programming Interface) than Linux kernel **`ioctl()`** services and the +myriad other different Linux device I/O API's. The **libsimpleio** shim +functions are designed to be easily called from Ada, C++, C#, Java, +Free Pascal and other programming languages. + +The **`man`** pages specifying the **libsimpleio** API (Application +Programming Interface) are available for viewing at +. + +Ada Binding for the Linux Simple I/O Library +============================================ + +The Ada binding consists of several software component layers. + +The bottom software component layer consists of the **C shim functions** +discussed in the previous section. + +The next software component layer consists of **binding packages** that +declare the C shim functions as Ada procedures. Each of the binding +packages corresponds to a single C source file (*e.g.* package +**`libadc`** corresponds to **`libadc.c`**). Each of the C shim +functions are declared as external Ada procedures using +**`pragma Import`**. The Ada procedure names do not necessarily match +the C function names (*e.g.* the C function **`ADC_Open()`** is declared +as Ada procedure **`libadc.Open`**). Many of the binding packages also +declare constants as well (*e.g.* **`DIRECTION_INPUT`** in +**`libgpio.ads`**). + +With very few exceptions, you will never need to directly call any of +the procedures nor reference any of the constants declared in the +**`libxxx`** binding packages. + +The next software component layer consists of **object packages** that +declare OOP (Object Oriented Programming) object types and methods for +each of the I/O subsystems. This layer uses Ada interface types, +access-to-interface types, and private tagged records extensively. + +For example, the package **`GPIO`** defines an interface type +**`PinInterface`**, an access to **`PinInterface`** type named +**`Pin`**, and primitive operation subprograms **`Get`** and **`Put`**. + +The child package **`GPIO.libsimpleio`** declares a private tagged +record type **`PinSubclass`** that *implements* **`GPIO.PinInterface`**, +subprograms **`Get`** and **`Put`** that are required to implement +**`GPIO.PinInterface`**, and a constructor function **`Create`** that +returns an **`GPIO.Pin`** access value. + +Every package that implements **`GPIO.PinInterface`** will also declare +a constructor function **`Create`** that returns **`GPIO.Pin`**. + +This architecture allows code similar to the following fragment: + + MyPins : array (1 .. 3) of GPIO.pin; + + GPIO(1) := GPIO.libsimpleio.Create(...); + GPIO(2) := GPIO.UserLED.Create(...); + GPIO(3) := GPIO.PWM.Create(...); + +The three GPIO pins can be stored in the same array and manipulated in +exactly the same manner even though the hardware implementation for each +pin is radically different. + +The topmost software component layer consists of **device packages** +that implement support for particular I/O devices and are built upon the +lower layers. Most of the device packages correspond to integrated +circuits, such as the [PCA9534 +I](https://www.nxp.com/products/interfaces/ic-spi-serial-interface-devices/ic-general-purpose-i-o/8-bit-ic-bus-and-smbus-low-power-i-o-port-with-interrupt:PCA9534)[^2^](https://www.nxp.com/products/interfaces/ic-spi-serial-interface-devices/ic-general-purpose-i-o/8-bit-ic-bus-and-smbus-low-power-i-o-port-with-interrupt:PCA9534)[C +GPIO +expander](https://www.nxp.com/products/interfaces/ic-spi-serial-interface-devices/ic-general-purpose-i-o/8-bit-ic-bus-and-smbus-low-power-i-o-port-with-interrupt:PCA9534). +A few implement support for boards or modules, such the [Grove +Temperature +Sensor](https://www.seeedstudio.com/Grove-Temperature-Sensor.html) +module. +""" + +tags = ["embedded", "linux", "libsimpleio", "remoteio", "beaglebone", +"pocketbeagle", "raspberrypi", "raspberry", "pi", "adc", "dac", "gpio", +"hid", "i2c", "motor", "pwm", "sensor", "serial", "servo", "spi", "stepper", +"watchdog"] + +project-files = ["libsimpleio.gpr"] + +[available."case(os)"] +'linux' = true +"..." = false + +[[actions."case(os)".linux]] +type = "post-fetch" +command = ["sh", "-c", "./postfetch"] + +[origin] +hashes = [ +"sha256:5083af9546061d1e6a7f631c27e6a1ab81bc5cc0795d05d9e98688901e021868", +"sha512:15289e2057ed0e807256180ed3a8b385cab70012810b5b0b88851fa41fc6803068e6909da46dbf954436bb0c9dd362c86516f2f179d0d553c69c58aeb8a63500", +] +url = "https://raw.githubusercontent.com/pmunts/alire-crates/29827b35e2e00fce5d7b27e06e2164fa20ccde54/libsimpleio/libsimpleio-2.22357.1.tbz2" + From 10fc204d1bfe8c41229edcd351848e4dd96bff32 Mon Sep 17 00:00:00 2001 From: pmunts Date: Tue, 21 May 2024 07:46:56 -0700 Subject: [PATCH 2/4] mcp2221 2.22357.1 (#1065) Rebuilt for alr 2.0, which broke previous post-fetch scripts. Also moved the source archive repository from http://repo.munts.com/alire to https://raw.githubusercontent.com/pmunts/alire-crates Also added long description. --- index/mc/mcp2221/mcp2221-2.22357.1.toml | 89 +++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 index/mc/mcp2221/mcp2221-2.22357.1.toml diff --git a/index/mc/mcp2221/mcp2221-2.22357.1.toml b/index/mc/mcp2221/mcp2221-2.22357.1.toml new file mode 100644 index 000000000..ead047c60 --- /dev/null +++ b/index/mc/mcp2221/mcp2221-2.22357.1.toml @@ -0,0 +1,89 @@ +name = "mcp2221" +version = "2.22357.1" +description = "MCP2221 USB Raw HID I/O Expander Library for GNAT Ada" +website = "https://github.com/pmunts/libsimpleio" +authors = ["Philip Munts"] +maintainers = ["Philip Munts "] +maintainers-logins = ["pmunts"] +licenses = "BSD-1-Clause" + +long-description = """ +This crate contains a subset of the [**Linux Simple I/O +Library**](https://github.com/pmunts/libsimpleio) Ada packages that are +relevant for building programs for the MCP2221 USB Raw HID I/O expander. + +This crate can be built for Linux, MacOS, or Windows targets. + +The [MCP2221A](https://www.microchip.com/en-us/product/MCP2221A) is a +[PIC16F1455](https://www.microchip.com/en-us/product/PIC16F1455) +microcontroller that has been preprogrammed with firmware to implement +*two* USB devices: a USB serial port and a raw HID device that acts as +an I/O expander providing one +[I](https://i2c.info/)[^2^](https://i2c.info/)[C](https://i2c.info/) bus +controller (master only) and four +[GPIO](https://en.wikipedia.org/wiki/General-purpose_input/output) pins +(**`GP0`**, **`GP1`**, **`GP2`**, and **`GP3`**). + +The GPIO pins **`GP1`**, **`GP2`**, and **`GP3`** can be configured for +some alternate functions, including 10-bit A/D inputs or 5-bit D/A +outputs: + +**`GP1`**: **`GPIO ADC1`**\ +**`GP2`**: **`GPIO ADC2 DAC1`**\ +**`GP3`**: **`GPIO ADC3 DAC2`** + +The MCP2221A replaces an earlier part, the MCP2221. The only difference +between the older MCP2221 and the newer MCP2221A is that the latter +supports some higher baud rates on the USB serial port device. Since +this crate only deals with the raw HID I/O expander functions, it will +work fine with either the older MCP2221 or the newer MCP2221A. +""" + +tags = ["embedded", "linux", "mcp2221", "adc", "dac", "gpio", "i2c", "motor", +"pwm", "sensor", "serial", "servo", "spi", "stepper"] + +project-files = ["mcp2221.gpr"] + +[available."case(os)"] +'linux|macos|windows' = true +"..." = false + +# Linux needs libhidapi and libusb crates + +[[depends-on]] +[depends-on."case(os)"."linux"] +libhidapi = "*" + +[[depends-on]] +[depends-on."case(os)"."linux"] +libusb = "*" + +# macOS needs hidapi and libusb crates + +[[depends-on]] +[depends-on."case(distribution)"."homebrew|macports"] +libhidapi = "*" + +[[depends-on]] +[depends-on."case(distribution)"."homebrew|macports"] +libusb = "*" + +[[actions."case(os)".linux]] +type = "post-fetch" +command = ["sh", "-c", "./postfetch.linux"] + +[[actions."case(os)".macos]] +type = "post-fetch" +command = ["sh", "-c", "./postfetch.macos"] + +[[actions."case(os)".windows]] +type = "post-fetch" +command = ["sh", "-c", "./postfetch.windows"] + +[origin] +hashes = [ +"sha256:7acba0fa24337fae37c817acd2e63a752df5b7a95c242f954bbf5339b51982d9", +"sha512:bf077e26c525f950e92f71303a44d001883a83bf02fefd1629f5af17e37fabbeb59acdcaedbab0a014b4ff6c10944588ab97209da2d35e55199a842e4acba567", +] +url = "https://raw.githubusercontent.com/pmunts/alire-crates/1884de293676770c7567193e566ec867deb4a43f/mcp2221/mcp2221-2.22357.1.tbz2" + From 4f27bbb74c27f8aafae7ce50f861cd6ce21e9785 Mon Sep 17 00:00:00 2001 From: pmunts Date: Tue, 21 May 2024 07:47:48 -0700 Subject: [PATCH 3/4] remoteio 2.22357.1 (#1066) Rebuilt for alr 2.0, which broke previous post-fetch scripts. Also moved the source archive repository from http://repo.munts.com/alire to https://raw.githubusercontent.com/pmunts/alire-crates Also added long description. --- index/re/remoteio/remoteio-2.22357.1.toml | 83 +++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 index/re/remoteio/remoteio-2.22357.1.toml diff --git a/index/re/remoteio/remoteio-2.22357.1.toml b/index/re/remoteio/remoteio-2.22357.1.toml new file mode 100644 index 000000000..9704a4904 --- /dev/null +++ b/index/re/remoteio/remoteio-2.22357.1.toml @@ -0,0 +1,83 @@ +name = "remoteio" +version = "2.22357.1" +description = "Remote I/O Protocol Client Library for GNAT Ada" +website = "https://github.com/pmunts/libsimpleio" +authors = ["Philip Munts"] +maintainers = ["Philip Munts "] +maintainers-logins = ["pmunts"] +licenses = "BSD-1-Clause" + +long-description = """ +This crate contains a subset of the [**Linux Simple I/O +Library**](https://github.com/pmunts/libsimpleio) Ada packages that are +relevant for building [**Remote I/O +Protocol**](http://git.munts.com/libsimpleio/doc/RemoteIOProtocol.pdf) +client programs. + +This crate can be built for Linux, MacOS, or Windows targets. + +The **Remote I/O Protocol** is a lightweight message protocol for +performing remote I/O operations. The protocol is implemented using a +request/reply pattern, where the master device (*e.g.* a Linux computer) +transmits an I/O request in a 64-byte message to the slave device +(*e.g.* a single chip microcontroller). The slave device performs the +requested I/O operation and returns an I/O response in a 64-byte message +back to the master device. + +The protocol is kept as simple as possible (exactly one 64-byte request +message and one 64- byte response message) to allow using low end single +chip microcontrollers such as the +[PIC16F1455](https://www.microchip.com/en-us/product/PIC16F1455) for the +slave device. Although particularly suited for USB raw HID devices, this +protocol can use any transport mechanism that can reliably transmit and +receive 64-byte messages. +""" + +tags = ["embedded", "linux", "remoteio", "adc", "dac", "gpio", "i2c", "motor", +"pwm", "sensor", "serial", "servo", "spi", "stepper"] + +project-files = ["remoteio.gpr"] + +[available."case(os)"] +'linux|macos|windows' = true +"..." = false + +# Linux needs libhidapi and libusb crates + +[[depends-on]] +[depends-on."case(os)"."linux"] +libhidapi = "*" + +[[depends-on]] +[depends-on."case(os)"."linux"] +libusb = "*" + +# macOS needs hidapi and libusb crates + +[[depends-on]] +[depends-on."case(distribution)"."homebrew|macports"] +libhidapi = "*" + +[[depends-on]] +[depends-on."case(distribution)"."homebrew|macports"] +libusb = "*" + +[[actions."case(os)".linux]] +type = "post-fetch" +command = ["sh", "-c", "./postfetch.linux"] + +[[actions."case(os)".macos]] +type = "post-fetch" +command = ["sh", "-c", "./postfetch.macos"] + +[[actions."case(os)".windows]] +type = "post-fetch" +command = ["sh", "-c", "./postfetch.windows"] + +[origin] +hashes = [ +"sha256:28437dc9111f1f7cfd11a938470028cb0d67ebf517a5381deb116b82008f8b57", +"sha512:9599c7d5fd65156655023be72f9ecf54508009edd5a191fb97d1264cc4117c1523720177786b20901a5a66eef3e778b8e4b920774e066f0d26f88a5c2fb12778", +] +url = "https://raw.githubusercontent.com/pmunts/alire-crates/ff212101fe88398db9884d01bebc606aa6bd0a17/remoteio/remoteio-2.22357.1.tbz2" + From b23008ea09e7a7dce05c10b9fe83d67ce814c005 Mon Sep 17 00:00:00 2001 From: Gautier de Montmollin Date: Tue, 21 May 2024 16:58:49 +0200 Subject: [PATCH 4/4] globe_3d 2023.11.12 (#1067) * Create globe_3d-2023.11.12.toml * Update globe_3d-2023.11.12.toml Limited availability to macos and windows --- index/gl/globe_3d/globe_3d-2023.11.12.toml | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 index/gl/globe_3d/globe_3d-2023.11.12.toml diff --git a/index/gl/globe_3d/globe_3d-2023.11.12.toml b/index/gl/globe_3d/globe_3d-2023.11.12.toml new file mode 100644 index 000000000..91b964d9a --- /dev/null +++ b/index/gl/globe_3d/globe_3d-2023.11.12.toml @@ -0,0 +1,62 @@ +description = "GLOBE_3D: GL Object Based Engine for 3D" +name = "globe_3d" +version = "2023.11.12" + +licenses = "MIT" +tags = [ "gl", "opengl" ] +website = "https://globe3d.sourceforge.io/" + +authors = ["Gautier de Montmollin"] +maintainers = ["gdemont@hotmail.com"] +maintainers-logins = ["zertovitch"] + +long-description = """ +GLOBE_3D is a free, open-source, real-time 3D Engine written in Ada, based on OpenGL. + +![GLOBE_3D Screenshot](https://a.fsdn.com/con/app/proj/globe3d/screenshots/pure_evil_mini.jpg "Screenshot GLOBE_3D") + +* Real-time rendering +* Full eye movements and rotations ("6D") +* Displays combinations of colours, materials, textures +* Multitexturing +* Transparency +* Portal rendering +* Binary space partition (BSP) +* Collision detection +* Screenshots (.bmp) and video captures (.avi) +* Input-output of 3D objects +* Import from 3D Studio Max, id Software Radiant, VRML, Wavefront formats +* Tests, tools and demos included +""" + +project-files = [ "demo/globe_3d_demos_project_tree.gpr" ] + +executables = [ +"globe_3d_demo", +"mini_3d" +] + +[gpr-externals] +G3D_Build_Mode = ["debug", "fast", "small"] + +[gpr-set-externals] +GID_Build_Mode = "Debug" +Zip_Build_Mode = "Debug" + +[available.'case(os)'] +macos = true +windows = true +'...' = false + +[gpr-set-externals.'case(os)'] +macos = { G3D_OS = "macosx" } +windows = { G3D_OS = "win64" } + +[[depends-on]] +gid = ">=9.0.0" +[[depends-on]] +zipada = "^58.0.0" + +[origin] +url = "https://sourceforge.net/projects/globe3d/files/globe_3d_release_2023-11-12.zip" +hashes = ["sha512:07583710dff561811676fbff13efa5f3444ab7b3654ba088554a668dd66dc837c4416211fb8a8bf3ee0c723f6ff196472ccc1d7abfc6fc5459b5171a851e4f28"]