Conversation
"Unknown start of message" was printed twice per packet: both UDP sockets listen on port 8888 (one on the AOG subnet address, one on all interfaces), so every broadcast arrives on both. Log it through UdpConnections::log_unknown_start(), which skips an identical report (same sender, same leading bytes) within 50 ms and includes the sender IP:port and up to 16 bytes in hex, so the source can be found. "Received a Request to Send (RTS) message with a global destination" is a stack warning without a source address, printed for every frame. The CAN stack log sink now treats it as Debug. The application counts such RTS frames per source address from the CAN frame received event and logs one summary line per minute when there were any. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A client whose DDOP has no section elements, such as a tractor ECU that
only describes hitch or GNSS geometry, has nothing to section-control.
It was reported with "WARNING: No supported section control method
detected!", which sent people looking for a problem that is not there.
Log it as info ("Non-section client") when the DDOP has zero sections;
DDOPs that do have sections but no supported method still get the
warning.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #97
Problem
Logs from a John Deere 6R (#97) were dominated by three messages that either repeat or point at a problem that isn't there:
Unknown start of message: 0x....printed twice per packet, with nothing to identify the sender.[TP]: Received a Request to Send (RTS) message with a global destination, ignoringprinted as a warning for every frame, with no source address. Some devices on the tractor send these continuously.WARNING: No supported section control method detected!printed for the tractor's own TECU, whose DDOP only describes hitch/GNSS geometry and has no sections at all.Cause
can_transport_protocol.cpp), which doesn't include the sender.Fix
UdpConnections::log_unknown_start()logs the senderIP:portand up to 16 bytes in hex. It skips an identical report (same sender and bytes) within 50 ms, so the second socket's copy is dropped while genuinely repeated packets (AOG sends at ~10 Hz) are still logged.logging.cpp) treats that exact message as Debug. The application counts global-destination RTS frames (TP.CM, PF 0xEC, destination 0xFF, control byte 16) per source address fromCANHardwareInterface's frame-received event, and once a minute logs one summary line when there were any, e.g.Ignored 120 Request to Send message(s) with a global destination in the last minute, from source address(es) 0x26 (120).MyTCServer::activate_object_pool(), a DDOP with zero sections now logsNon-section client: the DDOP has no section elements, section control not applicable.at info level. DDOPs that do have sections but no supported method still get the warning.No behaviour changes beyond logging.
Testing
Built with MSVC (Windows) against the current AgIsoStack++ pin; all 6 ctest tests pass. Not yet run on the tractor. The same changes are part of the 2.0.0-beta.2 test build going on the 6R on 29 Sep.
🤖 Generated with Claude Code