Skip to content

Bump AgIsoStack++ to upstream main (includes #718) - #104

Merged
gunicsba merged 3 commits into
developfrom
chore/bump-agisostack
Oct 18, 2026
Merged

gunicsba merged 3 commits into
developfrom
chore/bump-agisostack

Conversation

@gunicsba

@gunicsba gunicsba commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Bumps AgIsoStack++ from c0e1ebb (19 Sep) to upstream main fbf5236 (14 Oct), the merge of Open-Agriculture/AgIsoStack-plus-plus#718. 31 commits, upstream repository, no fork and no local patches.

What this gets us

Address claim / partner handling (Open-Agriculture/AgIsoStack-plus-plus#718):

  • A control function that was pruned and then claims its address again now gets credit for that claim. Before, it went back into the table already eligible for pruning and was dropped again at the next address claim request. On a bus with periodic roll-calls this becomes an endless offline/online cycle. While a CF is out of the table its broadcasts are silently dropped, so a partner bound to it (our VT, an implement) keeps going deaf.
  • The roll-call no longer credits whichever inactive CF on the channel happens to come first.
  • This is not the John Deere 6R fix (John Deere 6R #97). That one is a partner bound inside the 755 ms window and replacing an external CF (update_new_partners(), Keep a new partner's address claim credit when it replaces a control function Open-Agriculture/AgIsoStack-plus-plus#724), which #718 does not touch.

VT client (our VT UI):

CAN hardware:

The rest of the bump is VT server, TC client, ISOXML export, tutorial and example changes. They don't reach code we use.

Changes in this repo

Behaviour change to watch on hardware

Our VT pool version label is hash_object_pool_to_version() output: a 64-bit hash in hex, usually 16 characters. Until now the client sent only its first 7 characters with (Store/Load) Version. After Open-Agriculture/AgIsoStack-plus-plus#768, on a VT version 5 or later with a label longer than 7 characters, the client uses the Extended Version commands with the full label. Expect one full pool upload on VT5+ terminals the first time, because the old 7-character version no longer matches. Terminals at VT version 4 or below behave as before. If a VT5+ terminal turns out to handle Extended Version badly, cutting the label to 7 characters on our side restores the old behaviour.

Test plan

  • Windows Release build (Visual Studio 2026) and ctest pass, from a fresh fetch of fbf5236
  • resources/AOG_TC.iop walked with the new get_number_bytes_in_object(): 88 objects, no unsized object, ends at the pool end
  • CI build on Windows and Linux
  • Start with no adapter or a wrong channel: the log shows the driver's reason and the app exits cleanly
  • Connect to a VT (ideally both a VT4 and a VT5+ terminal): the pool loads, and on reconnect the stored version loads without a second upload

🤖 Generated with Claude Code

Moves the pin from c0e1ebb (19 Sep) to f3c37b8 (13 Oct). For us this
brings the VT client fixes for a slow pool parse (#774) and a VT that
stops sending its status (#719), working Extended Version commands
(#768), and the CAN driver being closed on stop with a reported reason
when it fails to open (#722, #747, #759).

AgIsoStack++ PR #718 is applied on top as a patch until it is merged: a
control function restored to the address table gets credit for the
claim that restored it, and the roll-call no longer credits the first
inactive CF on the channel. Without it a CF can be pruned on every
address claim request and its broadcasts dropped meanwhile.
ApplyPatchOnce.cmake skips an already applied patch, so a rerun of the
FetchContent patch step does not fail, and the patch is kept LF.

Since #747, CANHardwareInterface::start() can return false after it
started the update thread, so Application::stop() now checks
is_running() instead of the start() result. The CAN start failure log
includes the driver's get_last_error().

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@gunicsba
gunicsba marked this pull request as draft October 13, 2026 21:33
AgIsoStack++ PR #718 is merged upstream (fbf5236), with the same
can_network_manager.cpp change as the patch we carried, so pin that
commit and remove the patch, ApplyPatchOnce.cmake and the PATCH_COMMAND.

This also brings #782 (Extended Input Attributes sizing in the VT client
autoscale). Autoscale now fails instead of hanging on an object it cannot
size; all 88 objects in resources/AOG_TC.iop are sized by the new code.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@gunicsba gunicsba changed the title Bump AgIsoStack++ to upstream main and patch in PR #718 Bump AgIsoStack++ to upstream main (includes #718) Oct 14, 2026
@gunicsba
gunicsba marked this pull request as ready for review October 14, 2026 06:31
@gunicsba

Copy link
Copy Markdown
Contributor Author

No adapter / wrong channel test:

Logging to file: C:\Users\GunicsBa\AppData\Roaming\AOG-TaskController\logs/AOG-TaskController_2026-10-14_8-36.log
C:\Program Files\AOG-TaskController\bin\AOG-TaskController.exe --can_adapter=PEAK-PCAN --can_channel=2 --log_level=debug --log2file
AOG-TC version: v554b332
[08:36:46.946] [Critical][PCAN]: Unable to open PCAN channel 0x52, The value of a handle (PCAN-Channel, PCAN-Hardware, PCAN-Net, PCAN-Client) is invalid (error 0x1400). Is the PEAK adapter plugged in?
[08:36:46.946] [Error][HardwareInterface] Channel 0 failed to start, its driver is not valid after opening.
[08:36:46.946] Failed to start CAN hardware interface. Unable to open PCAN channel 0x52, The value of a handle (PCAN-Channel, PCAN-Hardware, PCAN-Net, PCAN-Client) is invalid (error 0x1400). Is the PEAK adapter plugged in?
[08:36:46.946] Failed to initialize application...

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@gunicsba
gunicsba requested a review from sujandumaru October 18, 2026 21:08
@gunicsba
gunicsba merged commit 4af9d6f into develop Oct 18, 2026
6 checks passed
@gunicsba
gunicsba deleted the chore/bump-agisostack branch October 18, 2026 21:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bump AgIsoStack to pick up the DataSpan fix (wrong DDI-to-element mapping)

2 participants