Main Page | Directories | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages | Examples

Overview on Documentation of ISOAgLib


Object Oriented Program Library ISOAgLib

Development of ISO 11783 and DIN 9684 Applications

Copyright © 1999 - 2004 Achim Spangler, Martin Wodok

Licensed with Exceptions under the General Public License (GPL) of the Free Software Foundation

Main Features
Structural Overview
License Conditions
Thanks to development by Sensortechnik Wiedemann ( STW )
Thanks to Fritzmeier for contribution of ISO 11783 Virtual Terminal support
Thanks to eager and patient initial developers with Win32
Main TODO items
Authors and Contributors of the IsoAgLib
List of Known Projects which use IsoAgLib
HOWTO Identify and download needed archives
HOWTO Access the Version Management Repository
HOWTO Recreate Documentation with Doxygen
HOWTO Learn Usage of IsoAgLib
HOWTO Prepare Suitable Compiler and IDE
HOWTO Install vt2iso - Tool for Creation of ISO 11783 Virtual Terminal Masks
HOWTO Create Project Files with Script
General Information
Modelling as Network of Autonomous Agents
Service Network
Further Development
Questions, Answers and Discussion
Further Reading on Open Source

Last Update:
13 October 2004
by Achim Spangler



0.1.0 to 0.2.0

0.2.0 to 0.2.1

0.2.1 to 1.0.0rc1

1.0.0rc1 to 1.0.0rc2

1.0.0rc2 to 1.0.0rc3

1.0.0rc3 to 1.0.0rc4

1.0.0rc4 to 1.0.0rc5

1.0.0rc5 to 1.0.0

Main Features

The ISOAgLib is designed to provide the following main features (read here for more information):

Structural Overview

Modular Design

The ISOAgLib is modularized according to the different functional components. Only a small part of the modules is obligatory for all systems, so that an individual project can adopt the capability and Flash ROM size to the specific needs.

Layered Design

The ISOAgLib is designed for easy adoption to new hardware platforms. Thereby the greatest part of the software can be used without any changes for all hardware types. The more this common software part is used, the better the quality can get.
The layered structure is described by the following diagram:

Information on Obligatory Elements

The following elements are needed for all projects:

Please make shure, that at least one of the

Therefore the minimum footprint of the ISOAgLib in Flash ROM is quite low.

Partly Optional

The supplementary drivers for RS232, Sensor Input and Actuator Control ( mainly PWM ) were developed for the research project

License Conditions

This Open Source project is published under License Conditions which are taken from the eCos project. This license is defined by the FSF as GPL-compatible according to a list of Open Source licenses . Red Hat, the original creator of the eCos, and the current maintainers of this project aimed at the following targets, as cited from their license overview page:
The goal of the license is to serve the eCos user community as a whole. It allows all eCos users to develop products without paying anybody anything, no matter how many developers are working on the product or how many units will be shipped. The license also guarantees that the eCos source code will always be freely available. This applies not only to the core eCos code itself but also to any changes that anybody makes to the core. In particular, it should prevent any company or individual contributing code to the system and then later claiming that all eCos users are now guilty of copyright or patent infringements and have to pay royalties. It should also prevent any company from making some small improvements, calling the result a completely new system, and releasing this under a new and less generous license.

The license does not require users to release the source code of any applications that are developed with eCos. However, if anybody makes any changes to code covered by the eCos license, or writes new files derived in any way from eCos code, then we believe that the entire user community should have the opportunity to benefit from this. The license stipulates that these changes must be made available in source code form to all recipients of binaries based on the modified code, either by including the sources along with the binaries you deliver (or with any device containing such binaries) or with a written offer to supply the source code to the general public for three years. It is perhaps most practical for eCos developers to make the source code available online and inform those who are receiving binaries containing eCos code, and probably also the eCos maintainers, about the location of the code. See the full text of the GPL for the most authoritative definition of the obligations.

Although it is not strictly necessary to contribute the modified code back to the eCos open source project, we are always pleased to receive code contributions and hope that developers will also be keen to give back in return for what they received from the eCos project completely free of charge. The eCos maintainers are responsible for deciding whether such contributions should be applied to the public repository. In addition, a copyright assignment is required for any significant changes to the core eCos packages.

The result is a royalty-free system with minimal obligations on the part of application developers. This has resulted in the rapid uptake of eCos. At the same time, eCos is fully open source with all the benefits that implies in terms of quality and innovation. We believe that this is a winning combination.

You can see the complete LICENSE terms at IsoAgLib Library License - GNU General Public License with exceptions - GNU Project - Free Software Foundation (FSF) where both the exception and the GPL license text is presented.

You can identity the license protected parts by:

Important note on distinction between extensions of ISOAgLib ( which are covered by the license ) and independend Application development: The ISOAgLib uses C++ namespaces to group internal classes, functions, types, ... in units __IsoAgLib and __HAL, which can be clearly seperated from their interface counterparts IsoAgLib and HAL. Each module which uses or calls directly elements of the internal namespaces __IsoAgLib and __HAL is regarded as extension of the ISOAgLib. So you must restrict your direct usage of ISOAgLib parts to the interface namespaces IsoAgLib and HAL. This causes no runtime and firmware size overhead, as the mapping between the interface elements and their corresponding internal elements is realized by inlining, which is replaced by the compiler with direct usage of internal parts. Please contact the maintainer Achim Spangler, in case you need for some reasons direct access to internal parts. In case your planned function is really no extension to the ISOAgLib, the interface might be extended to provide the needed access.


Thanks to DFG funded research group "IKB Dürnast"

The initial creation of the ISOAgLib was enabled by the research project "IKB Dürnast" which is leaded by Prof. Auernhammer at the Department of Bio Resources and Land Use TechnologyCrop Production Engineering .

Thanks to development by Sensortechnik Wiedemann ( STW )

The development phase with some compiler issues was supported by the experts of the ESX engineering team at Sensortechnik Wiedemann ( STW ) . Some of the main design goals were derived during a project with STW and AGCO Fendt .

Thanks to Fritzmeier for contribution of ISO 11783 Virtual Terminal support

The development of the central control unit for the chlorophyll sensor MiniVeg N was heavily based on the prior work at ISOAgLib, so that Fritzmeier accepted to fund the development of ISO 11783 virtual terminal support in ISOAgLib .

Thanks to eager and patient initial developers with Win32

As the ISOAgLib is mainly developed on LINUX, all Win32 specific adoptions including driver mappings and project file generation for Win32 IDEs weren't optimal until first users like Brad Cox started to try ISOAgLib in combination with Microsoft Visual Studio C++ . As a result, ISOAgLib provides now an automatic project file generation for the Open Source Win32 IDE "Dev-C++" .

Main TODO items

The following items are at the TODO list of the author. You are encouraged to help contributing for their implementation with source code or financial donation ( e.g. as support service as part of support contract ). Please contact Achim Spangler if you need some special features ( new features or already listed ).

Authors and Contributors of the IsoAgLib

Each email adress in this project is intentionally corrupted, to make SPAMMING a little bit more complicated. Each human reader will easily detect how to "fix" the email adress - this "manupulation" might change if the maintainters detect that SPAM tools are able to derive automatically a working domain.

List of Known Projects which use IsoAgLib

As the used license GPL with exception requires from each user to accompany any distributed Program ( or a work based on it - see GPL §3 ) with some information on the used library, it would be quite kind to inform additionally the authors of your project, so that each using project can be listed here. This list can also serve as a prominent place for showing all contributing ( by money and/or code ) users.
Last but not least, projects which use features like process data communication based on ISOAgLib will probably have less compatibility problems then in other combinations. This get the more important, the more implements, sensors, task controllers, core control units ( expert system ) and the tractor build more and more complex interaction networks with all sorts of dependencies. Here ISOAgLib can provide common patterns form management of such interactions. This list can then help to identity well supported device combinations.

Automated process data recording system "Task-Controller" which detects all connected implements and starts the recording of device type dependend process data ( e.g. application rate for spreaders ). It combines this information with some tractor information ( e.g. fuel consumption, speed, hitch position ) and GPS positioning data. All data sets are stored at a PCMCIA memory card. The recorded data set can be configured by EEPROM settings, so that the firmware itself needn't be changed. Department of Bio Resources and Land Use Technology - Crop Production Engineering and funding organization DFG Initial development of ISOAgLib ( previously named LBSLib )
Chlorophyll Sensor MiniVeg N which can be used in combination with AGCO Fendt Vario Tractors ( with Varioterminals ) or any tractor with an ISO 11783 virtual terminal. It can control by process data setting each standard conformant DIN 9684 or ISO 11783 fertilizer spreader which enables control by process data ( several implements like spreader can be only controlled by the corresponding terminal ). An ISOAgLib powered PROXY is used to provide standard cnformant process data control access for spreaders which can be at least controlled with some documented RS232 or CAN connection. Fritzmeier Several optimization work for ISOAgLib was enabled by this project. This is especially important for the complete new part of virtual terminal ( ISO 11783 )

Generated on Wed Oct 13 14:58:49 2004 for IsoAgLib by  doxygen 1.3.8-20040913