System architecture

ISOAgLib system architecture
Communication ISO 11783 Communicationmodules
Built on top of the extended drivers are the implementations of the ISOBUS-communication-funktionalities grouped to modules corresponding their parts of ISO 11783. These modules can be used separately when possible. This optimal configurability of IsoAgLib leads to an optimal adaptation to the functional requirements of the application (e.g. VT, TC, TECU, Diagnostics, etc.) as well as the non-functional requirement of the hardware (RAM, ROM, etc.).
This module is a mandatory part for ISOAgLib to be able to perform as an ISOBUS-communication-stack.
Network Management (Part 5)
This module is a mandatory part for ISOAgLib to be able to perform as an ISOBUS-communication-stack.
Virtual Terminal (Part 6)
This ISOAgLib module can be included optionally. It provides an application framework for this specific functional ISO 11783-part.
Application Layer (Part 7)
This ISOAgLib module can be included optionally. It provides an application framework for this specific functional ISO 11783-part.
Process Data (Part 7)
This ISOAgLib module can be included optionally. It provides an application framework for this specific functional ISO 11783-part.
Task Controller (Part 10)
This ISOAgLib module can be included optionally. It provides an application framework for this specific functional ISO 11783-part.
Diagnostics Services (Part 12)
This ISOAgLib module can be included optionally. It provides an application framework for this specific functional ISO 11783-part.
File Server (Part 13)
This ISOAgLib module can be included optionally. It provides an application framework for this specific functional ISO 11783-part.
Scheduler
The "Scheduler" is the "heart" of IsoAgLib, it manages all active modules, keep them alive and takes care of CAN-communication.
Driver Extension
Driver Extension - This layer provides driver features which are not part of most platforms.
Common System Access
This module is a mandatory part for ISOAgLib to be able to perform as an ISOBUS-communication-stack. It extends the abstracted system-access with comfortable C++ interfaces.
EEPROM (Extension with C++-I/O-streams for reading and writing)
This module is a mandatory part for ISOAgLib to be able to perform as an ISOBUS-communication-stack. It extends reading/writing by comfortable C++-I/O-stream interfaces.
CAN (Extension for individual mask/filter-pairs for filterboxes)
This module is a mandatory part for ISOAgLib to be able to perform as an ISOBUS-communication-stack. This part provides greater fleixibility in CAN-message-processing.
RS232 (Supplementary Driver extended with C++-I/O-streams for reading and writing)
This ISOAgLib module can be included optionally. It extends reading/writing by comfortable C++-I/O-stream interfaces.
Inputs (Supplementary Driver extended with scaling and range-checks)
This ISOAgLib module can be included optionally. It extends management and control of the sensors (Digitial/Analog Inputs) with scaling and range-checks.
Outputs (Supplementary Driver extended with state-monitoring)
This ISOAgLib module can be included optionally. It extends management and control of the actors (Digitial/Analog Outputs) with adding state-monitoring.
Hardware Abstraction Layer (HAL) Map platform specific API to a unique ISOAgLib API
ISOAgLib abstracts every given hardware with its drivers by means of the Hardware-Abstraction-Layer. This abstraction if already done at compile-time and avoids having runtime-overhead. Because all uper layers utilize only this interface, it is enough to create a new HAL for porting IsoAgLib to a new hardware-platform. IsoAgLib itself can be used without a single change. This design supports a very stable ISO 11783 library.
Common System Access (Watchdog, Time, ...)
This module is a mandatory part for ISOAgLib to be able to perform as an ISOBUS-communication-stack.
EEPROM (Storage of Process-Data, self-configurable SA, ...)
This module is a mandatory part for ISOAgLib to be able to perform as an ISOBUS-communication-stack, because there are several parameters that need to be stored according to ISO 11783.
CAN (Minimale CAN-Bus Fähigkeiten)
This module is a mandatory part for ISOAgLib to be able to perform as an ISOBUS-communication-stack.
RS232 Supplementary Driver
This ISOAgLib module can be included optionally. It abstracts management and control of the serial interface (RS232) from the specific hardware.
Inputs Supplementary Driver
This ISOAgLib module can be included optionally. It abstracts management and control of the sensors (Digitial/Analog Inputs) from the specific hardware.
Outputs Supplementary Driver
This ISOAgLib module can be included optionally. It abstracts management and control of the actors (Digitial/Analog Outputs) from the specific hardware.
Hardware / Drivers
The hardware with BIOS, drivers and possibly an RTOS.
BIOS
BIOS (Basic Input/Output System)
RTOS
RTOS (Realtime Operating System)

The ISOAgLib programming-library is clearly structured by distributing its functionalities into several modules and layers.

Please move your mouse over the different parts of the above diagram to get detailed explanations.