Main Features
Structural Overview
General Information
Network of Agents
Service Network
Further Develop
Discuss, FAQ
Further Reading

Last Update:
06 February 2002
by Achim Spangler

Open Source Program Library for LBS (DIN 9684)
LBSlib Version 0.2.1

Licensed under the Lesser General Public License (LGPL) of the Free Software Foundation



  • This version provides the following ISO 11783 compatibility as an option:
    • system management: announce member, retrieve information from other members
    • base tractor oriented information: radar and wheel based speed and distance, pto front and rear, hitch front and rear, engine rpm, calendar
    • process data: capable implementation with optional simple or capable handling of setpoints and measurement programs
    • multi message transfer which is needed especially for upload of virtual terminal object pools (these must be provided by another tool)
    The LBSlib can identify a member according to its device type (GETY code) as DIN 9684 or ISO 11783 device, so that the application doesn't have to handle these cases differently. Additionally the base tractor oriented information is managed in the same data structure for both protocols, so that an application can retrieve the data without testing the actual protocol type. Last but not least are all process data values managed independent from the protocol type of the managing device (which updates measuring values and which should realize setpoints). Thus the application doesn't have to care for the routing and selection of the correct protocol type.
    As the ISO 11783 standard is not yet released, and as no certified device was available to verify the implementation, the ISO 11783 part of the LBSlib must be regarded as preliminary beta. It is designed according to the specification of the minimum standard set of ISO 11783 for compatibility demonstration in autumn 2001. The following elements are NOT implemented:
    • Maintain Power could be implemented with small afford
    • Navigation System Messages could be implemented, as soon as the specification is available the author (the afford is small as LBS+ GPS messages are already implemented)
    • Language Command
    • Working Set Master and Working Set Member: could be simply implemented with additional pointer for the device items in the monitor list
    • Virtual Terminal:
      • send of single or multi message data is implemented
      • handler to manage object pools which are provided by external mask generator tool could be realized on demand (this tool could automatically check the properties of the connected terminal to select suitable object pool elements and to perform scaling of layout elements and could enable the connection of layout elements with local process data)
  • Please contact the author Achim Spangler if you are interested in commercial support for the LBSlib including
    • adoption to new platforms,
    • certification of the used version of the LBSlib,
    • consulting,
    • project development assistance,
    • warranty for maximum time to resolve problems,
    • warranty for maximum time to answer questions
    • warranty that bug fixes and enhancements of the LBSlib doesn't introduce new errors
    • specific guarantees like static API between LBSlib and application


0.1.0 to 0.2.0

  • optional basic set of ISO 11783 features
  • possibility of an auto sense for the baud rate on power up and on BUS OFF errors (with configurable wait time).
  • partitioning of sources in different packages. A base package contains system management, base tractor information and CAN driver. All optional modules like process data or EEPROM driver can be downloaded as separate source archives.
  • LBSlib specific CAN driver module to ease hardware adoption
  • collection of all files which must be edited for hardware adoption to one directory and reduction of the amount of affected files

0.2.0 to 0.2.1

  • correct some small errors of synchronisation between working 0.1.0 tree and the new 0.2.0
  • fix bug in process data list management

Main Features

The LBSlib is designed to provide the following main features (read here for more information):
  • perform all tasks which can be automated in the background so that the application development is simplified and different interpretation of low level communication (like message formatting) is avoided
  • provide flexible and capable process data implementation as backbone for all documenting and control interaction (e.g. trigger dependent measurement value send, allow setpoint intervals with MIN / MAX, enable N --> 1 relation between user and provider of process data)
  • narrow hardware adoption afford to small set of files with hardware adoption layer
  • greatest part of LBSlib source code can be used without any changes for different platforms
  • enable project specific feature selection, source code maintenance and extension by strict modular design
  • facilitate development of application for both DIN 9684 and ISO 11783
  • orientate design according to requirements of networks with more then two devices

Structural Overview

The LBSlib 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.
Overview of functional components

License Conditions

This Open Source project is published under the "Lesser General Public License" (LGPL) conditions of the Free Software Foundation. Please read the LGPL first. Because the project directory also contains not LGPLed files, all files which are protected by the LGPL license are placed into the lgpl_src directory. Everybody is free to insert and change the example programs for commercial applications. To verify the licensing conditions of each main directory, the README_LICENSED_PARTS file defines the state of the particular directory.
If there is a need for expensive ISO 900x source code certification of the LBSlib, the author Achim Spangler can create (with the company where he is employed) such a suitable version of the LBSlib. This can then be licensed both under the stronger "General Public License" (GPL) which only allows the development of GPLed applications AND under a special commercial license. Thus non-commercial projects (e.g. research) can still access the best version of þe LBSlib for free, while manufacturers have to pay for a certified version if they want to integrate it in commercial applications. This licensing model is used for MySQL, Trolltech Qt and other Open Source projects.