This is an experimental project to control sections of an ISOBUS implement using AgOpenGPS. It is based on the AgIsoStack++ library.
After installing the desired release of AOG-TaskController, you can run it directly through AgOpenGPS itself:
- Open AgIO.
- Go to the
Settingstab. - Click on the
ISOBUStab. - Select the CAN adapter and channel you want to use.
- Click on the
connectbutton.
Open %APPDATA% folder in explorer. Zip all the folders (sometimes we need the ddop found in the subfolders) and the logs. Attach them to the ticket.
To package the project, you need to have the following tools installed:
Then, you can run the following commands:
mkdir build
cmake -S . -B build -DBUILD_EXAMPLES=OFF -DCMAKE_POLICY_VERSION_MINIMUM="3.16" -DBUILD_TESTING=OFF -Wno-dev
cmake --build build --config Release --target packageThe installer will be generated in the build directory.
AOG-TaskController reads its configuration from a settings.json file located in:
- Windows:
%APPDATA%\AOG-Taskcontroller\settings.json
- Type: Boolean
- Default:
true - Description: Enables the internal Tractor ECU (TECU) simulator. When enabled, AOG-TaskController broadcasts TECU speed messages on the ISOBUS.
⚠️ Important:- Disable if your tractor already has a TECU to avoid conflicts (two TECUs on the same bus will cause issues)
- Enable when your tractor lacks a TECU
- TECU Speed Messages Provided (when enabled):
- Ground-based Speed (PGN 65256, 0xFEE8) - 100ms interval
- Wheel-based Speed (PGN 65256, 0xFEE8) - 100ms interval
- Machine Selected Speed (PGN 65256, 0xFEE8) - 100ms interval
- Control Function Functionalities (PGN 64654, 0xFC8E) - Announces TECU Class 1 capability (no control functions)
- NMEA2000 COG/SOG - Optional navigation data
- Type: Boolean
- Default:
true - Description: Enables the heartbeat message sent to AgOpenGPS every 100ms. This allows AOG to detect when the ISOBUS TC is running and display the ISOBUS button status.
⚠️ Important: If using AgOpenGPS pre-v6.8.2 beta 5, set this tofalseto avoid compatibility issues. Newer versions of AOG can properly handle the heartbeat message.
{
"subnet": [192, 168, 5],
"tecuEnabled": true,
"aogHeartbeatEnabled": true
}- ISO 11783-10 Version: 2 (Second Edition)
- Maximum Booms: 1
- Maximum Sections: 64 (supports both individual sections and zone-based control)
- Section Control: Generation 1 (TC-SC) with support for DDI 160/161/290
Before committing it's better to run these commands: (requires the LLVM project to be installed)
git ls-files | Select-String '\.(c|cc|cpp|cxx|h|hh|hpp|hxx|proto)$' | ForEach-Object {
clang-format -i $_.ToString()
}Install cmake-format with:
python -m pip install --upgrade pip
pip install cmake-format pyyamlThen execute with:
Get-ChildItem -Recurse -Filter CMakeLists.txt | ForEach-Object {
python -m cmakelang.format -i $_.FullName
}