Skip to content

Log and keep received DDOP bytes for diagnostics - #96

Merged
gunicsba merged 1 commit into
developfrom
diag/ddop-received-bytes
Sep 27, 2026
Merged

gunicsba merged 1 commit into
developfrom
diag/ddop-received-bytes

Conversation

@gunicsba

Copy link
Copy Markdown
Contributor

Summary

Diagnostic only, no behavior change. Follow-up to #78 (closed).

In two field sessions the tracks build subscribed DDI 160 (Section Control State) on element 4 of the Sky "E2 Seeder". In both, the TC got a single 1255-byte upload, and one of them was a freshly started process. The parsed pool had element 4 referencing object 268 (DDI 160). Good sessions don't have that reference. The parser is deterministic and nothing changes the pool afterwards, so the TC most likely received different bytes. We can't check, because <NAME>/<label>.ddop is regenerated from the parsed pool and overwritten on every activation.

Changes

On every activation, activate_object_pool() now:

  • logs the received DDOP's total size, chunk sizes and an FNV-1a 64-bit hash, e.g. Client … received DDOP: 1255 bytes in 1 chunk(s) [1255], fnv1a64=…
  • saves the raw bytes, exactly as received, to <NAME>/received/<hash>.ddop, once per distinct pool (so disk use stays bounded).

Parsing is unchanged. The save runs before the parse result is checked, so failed activations get captured too. A save error is only logged.

Validation

  • Builds on Windows (MSVC, Release) with no new warnings. clang-format is clean.
  • Not yet run against hardware.

🤖 Generated with Claude Code

On every activation, log the received DDOP's size, chunk sizes and an
FNV-1a 64-bit hash, and save the raw bytes once per distinct pool to
<NAME>/received/<hash>.ddop. The existing en.ddop is regenerated from the
parsed pool and overwritten each session, so it can't show what the
client actually sent. Parsing and activation are unchanged; a failed
save only logs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@gunicsba gunicsba added the enhancement New feature or request label Sep 27, 2026

@sujandumaru sujandumaru left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM

@gunicsba
gunicsba merged commit 4ede403 into develop Sep 27, 2026
6 checks passed
@gunicsba
gunicsba deleted the diag/ddop-received-bytes branch September 27, 2026 19:04
gunicsba added a commit that referenced this pull request Sep 27, 2026
Resolve conflict in task_controller.cpp by keeping both new helpers:
find_owning_element_number (GNSS quality) and save_received_ddop (#96).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants