-
Notifications
You must be signed in to change notification settings - Fork 101
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'stable-1.3.0' into release/emdee-0.2.0
- Loading branch information
Showing
4 changed files
with
382 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 = ["[email protected]"] | ||
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"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 <[email protected]>"] | ||
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 | ||
<http://git.munts.com/libsimpleio/doc/libsimpleio.html>. | ||
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" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 <[email protected]>"] | ||
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" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 <[email protected]>"] | ||
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" | ||
|