Note: The documents of DigiAPI have a hierarchical link
structure: clicking an item brings you to that item, and clicking a
title brings you one level higher in the document structure.
DigiAPI is a combination of:
DigiAPI reliefs a programmer from 'low level' tasks such as controlling the communication with the Interface, bothering about protocol specific differences, etc. It significantly simplifies programming for model railroads which are controlled via a so called Interface or a 'direct driver'. With DigiAPI the developper of a model railroad control program can concentrate on the primary task: the logic of model railroad control.
DigiAPI is NOT a ready to use model railroad control program!
The driver and API have been developed for the following purposes:
As a result a model railroad control program based on DigiAPI can be built relatively quickly and since it never has to wait for anything it can be very efficient.
To interact with a model railroad, a simple setup is as follows:
A more detailed C-language framework can be found in the Application Programming Guide for DigiAPI.
The following categories of operational functions are provided:
All the operational functions are 'asynchronous', which means that function calls return immediately, without waiting for any communications activity between computer and model railroad. A function call is handled internally in DigiAPI as a request for service. These requests are handled by the routines of DigiAPI asynchronously and independently from the user application via several queues and independent threads.
The available functions are described in more detail in Overview of available functions in the Programming Guide for DigiAPI. The Programming Reference manual for DigiAPI contains the specification details.
This package offers a set of drivers with all the functionality listed in Functional Requirements.
DigiAPI has built-in multi-tasking (multi-threading), which is highly desirable for a realtime ('process control') environment like a computer controlled model railroad. As a rule an application program never has to wait for physical I/O, all functions return immediately, but there are a few exceptions.
The application programming interface (API) has an abstraction level
which hides the differences between systems of different manufacturers.
It uses a consistent numbering (in stead if addressing) scheme to
access locs, magnetic or electric accessories and feedback information.
The translation (forward and backward) between the component numbers and
decoder addresses is all under the covers.
This allows the creation of system independent application programs.
The same version of a control program can be used for different systems.
DigiAPI is still under construction. Changes may be applied without notice, while the version number remains unchanged!
When reporting problems, mention the file date of the library used. Even better: before reporting, please collect the latest version to see if the problem still exists!
This package is Shareware: The freely distributed version is a demo licence with some functional limitations:
Notes:
DigiAPI may be distributed freely under the following conditions:
The registration fee is 25 EUROs, or 25 US-Dollars. Banknotes of major countries are accepted as well. If you send cheques, please fill in your personal number, otherwise I'm afraid I have to refuse your registration, because of the extra costs.
Please send comments and registration fee to:
R. Hamerling
Hogelandseweg 67
4132 CV Vianen
The Netherlands
Rabo account 3413 13 58 460
Mention the purpose of your payment ("DigiAPI"), and the destination address!