Skip to content

Send Load Version response after a restored pool is parsed - #766

Merged
sujandumaru merged 2 commits into
mainfrom
sujan/vt-server-load-version-response
Oct 9, 2026
Merged

sujandumaru merged 2 commits into
mainfrom
sujan/vt-server-load-version-response

Conversation

@sujandumaru

Copy link
Copy Markdown
Member

Describe your changes

Part of #765.

Before this, the server never answered a pool restored by Load Version (0xD1) with a Load Version response. It sent an End of Object Pool response instead, or left the response to the application.

  • update() now sends the Load Version response once the restored pool finishes parsing: no error on success, and an error bit on a parse failure or a missing working set object. That bit is the file system error / pool data corruption bit on VT4+ and the any other error bit on VT3.
  • An unknown label now reports bit 1 (version label not correct or unknown). It used to report bit 0.
  • An unknown label no longer restarts parsing of a pool the working set already has.
  • Added a LoadVersionErrorBit enum so the error bits have names instead of magic numbers.

How has this been tested?

6 new tests in test/vt_server_tests.cpp.

cmake -S . -B build -DBUILD_TESTING=ON
cmake --build build
cd build/test && ctest -R VirtualTerminalServer --output-on-failure

To implement ExtendedLoadVersion, we need to implement ExtendedGetVersions and ExtendedStoreVersion as well. So, I would like to make separate PR for that.

@sujandumaru sujandumaru added bug Something isn't working iso: virtual terminal Related to the ISO-11783:7 standard labels Oct 8, 2026
@sujandumaru

Copy link
Copy Markdown
Member Author

Note: When the load version is requested with no string (all blanks), we are supposed to send last stored version by default as per the standard but we are not doing that here for now.

@GwnDaan GwnDaan left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work!

One thing I noticed is that we are not setting the parsing indicator in the VT status message while any relevant pool is being parsed, and clear it only after the corresponding response has been sent.

Would it be easy to add to this PR or do you prefer a separate PR? I don't mind

Comment thread isobus/include/isobus/isobus/isobus_virtual_terminal_server.hpp Outdated
@sujandumaru

Copy link
Copy Markdown
Member Author

Nice work!

One thing I noticed is that we are not setting the parsing indicator in the VT status message while any relevant pool is being parsed, and clear it only after the corresponding response has been sent.

Would it be easy to add to this PR or do you prefer a separate PR? I don't mind

Yes, I was thinking about that in next PR.

@sonarqubecloud

sonarqubecloud Bot commented Oct 8, 2026

Copy link
Copy Markdown

@sujandumaru
sujandumaru merged commit ab5f3c3 into main Oct 9, 2026
11 checks passed
@sujandumaru
sujandumaru deleted the sujan/vt-server-load-version-response branch October 9, 2026 00:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working iso: virtual terminal Related to the ISO-11783:7 standard

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Let AgIsoVirtualTerminal reuse VirtualTerminalServer::update() instead of its own copy

2 participants