Home Page

Opinions

Research

Techncial

Hyper Quantum Logo Hyper Quantum's Ada Tools

Hyper Quantum have specialist expertise in Ada software development. The following details products that we have developed for the open source community.

LGPL Ada Tools

Ada Sockets additional routines to match the AdaSockets package

Calendar Extensions which provide UTC time and to provide string conversion functions for time. It does day of week calculation as well as conversion of the month name to text. The standard Ada.Calendar functions are also made visible through this package through renaming. Note: this package requires String_Functions.

Configuration File Manager tool which provides reading and writing facilities for accessing a configuration file and the various sections therein. This package requires the dynamic strings (Strings) package.

Dynamic Lists is a Generic package for providing a binary tree list for any type. It is based on the dynamic lists in "Programming in Ada95" by John Barnes (a book worth owning).

dynamic length Strings package, which evolved from the Ada 83 days. Much of this is superseded by the unbounded strings built into Ada, but it contains a few nice string manipulation routines. One day I may get around to just making the extra bits a child package of the standard unbounded wide strings. It uses unbounded wide strings internally.

Error Log package which provides sophisticated logging facilities, for example, to push location details on to a stack for later unwinding when an error occurs, debug logging by level. This package requires the Dynamic_Lists package.

General Message Types is a generic package for storing message numbers and associated types.

Generic Command Line Parameters is a generic package for accessing command line parameters. Parameters are specified in the usual -x or --xname format. The package verifies the command line is correctly formed and displays the usage message if not. See the extensive documentation in the package library for further details. The package requires the Strings_Functions package.

Generic Versions Generic package provides a storage mechanism for version numbering and, if used by an application's associated libraries, can yield up the version numbers of each such library.

Interlocks package provides an interlock facility for use by applications. The key elements of the Interlock protected type are the entry Lock and the procedure Release, and is essentially a classic interlock package. It also provides a termination status interlock, allowing a mainline package to wait on completion by independently running tasks before terminating.

String Functions package provides additional functions for the standard string type.

Strings Functions package uses the dynamic Strings package and provides additional functions for it.

Tools package that contains all the tools developed by Hyper Quantum, not including dynamic strings.

The above software is licensed under the terms and conditions of the LGPL

GPL Ada Products

Port Logger tool for logging all communications on a particular port to a file and redirects the output to any other specified port on any machine.

Port Reflector tool reflects input on any particular port back to the client machine. It would be used, for instance, to test a firewall prior to connecting the firewall to the real world. The ports to be reflected are specified in a configuration file.

Light Switches system to locally control lights. This application enables the locally (i.e. not cloud) hosted control of household light switches, providing an automatic switch-on and switch-off capability for all lights according to a schedule, as well as manual override through an actual light switch. The package includes a circuit diagram for connecting everything together. Note that as mains voltage is involved, the circuit should be built by a qualified electrician. The system uses a Raspberry Pi as the computing controller (although any computer would do) and an Arduino Mega 2560. It does provide optional control through the Raspberry Pi's general purpose I/O without the need for a Mega 2560, although that is untested. This is really an alpha version, not doing anything fancy other than switching lights on and off according to a schedule in an XML file, with manual override at this stage.

Urine Records application to record urine volumes. This application would typically be used by patients to assist their urologist. It could be used in the early stages of post radical prostatectomy surgery (as was my case). The application records urine volumes from the catheter (including urine colour) as well as post catheter removal. This includes measuring pad volumes, taken from the pad weight. The application is built on a Sqlite database. It also uses Glade for providing the user interface and therefore GtkAda. The Glade XML file is kept in the configuration table of the database.

As it uses a component that has a dependency on sockets, it uses the AdaSockets library. For the database interaction, it uses GNATCOLL.sqlite. I have yet to successfully port either of these to Windows, so the application is only available on Linux (or any X-Window style Unix).

The above software is licensed under the terms and conditions of the GPL

Copyright © 2003-2020 Hyper Quantum Pty Ltd