Skip to content

Self describing push#12

Open
Tomer27cz wants to merge 4 commits into
mainfrom
self-describing-push
Open

Self describing push#12
Tomer27cz wants to merge 4 commits into
mainfrom
self-describing-push

Conversation

@Tomer27cz

Copy link
Copy Markdown
Collaborator

I have attempted to make #11 dump work with the parser. Definitely needs review.

Copilot AI review requested due to automatic review settings June 9, 2026 10:00
@Tomer27cz Tomer27cz requested review from latonita and removed request for Copilot June 9, 2026 10:00
Copilot AI review requested due to automatic review settings June 9, 2026 10:07

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR adds support for parsing Landis+Gyr E450 “self-describing push” (unencrypted HDLC, Cyprus capture) by teaching the AXDR parser to interpret the embedded capture-object definition array and zip it with subsequent values, and adds an integration test + fixtures for the Cyprus dump.

Changes:

  • Add AxdrParser::parse_self_describing_push_() and try it before the existing pattern-based traversal.
  • Add a new HDLC integration test case for “Landis+Gyr E450 Cyprus”.
  • Add the Cyprus dump fixture (raw hex + decoded XML) and expected parsed outputs.

Reviewed changes

Copilot reviewed 5 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tests/test_meter_dumps.cpp Registers a new integration subcase for the Cyprus Landis+Gyr E450 dump.
tests/expected/hdlc_landis_gyr_e450_cyprus.h Adds raw frame bytes and expected OBIS→value mappings for the Cyprus dump.
tests/dumps/hdlc_landis_gyr_e450_cyprus.log Adds the captured raw HDLC frame bytes.
tests/dumps/hdlc_landis_gyr_e450_cyprus_decoded.xml Adds a decoded representation of the notification payload for reference.
src/dlms_parser/axdr_parser.h Declares the new self-describing push parse helper.
src/dlms_parser/axdr_parser.cpp Implements self-describing push parsing and hooks it into parse().

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/dlms_parser/axdr_parser.cpp Outdated
Comment thread src/dlms_parser/axdr_parser.cpp
@PolarGoose

Copy link
Copy Markdown
Collaborator

What is this "Self-Describing Push"?

@Tomer27cz

Copy link
Copy Markdown
Collaborator Author

The smart meter sends a schema defining its data layout, followed by the actual values. They should be in the same order so we can match the values to the obis codes.

"Self-Describing Push" isn't defined, I just came up with a name.

I'm not sure ho its "supposed to work". I just made the dump work.

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.

3 participants