Skip to main content
Home
for DLMS smart meters
Open source solutions for DLMS smart metering

Main navigation

  • Home
  • Products
  • About us
  • Open Source
  • Community
  • Forum
  • Downloads
User account menu
  • Log in

Breadcrumb

  1. Home
  2. Forums
  3. Invalid Data Checksum

Invalid data checksum

Forum Rules

Before commenting read Forum rules

Don't comment the topic if you have a new question.

You can create a new topic selecting correct category from Gurux Forum and then create a new topic selecting "New Topic" from the top left.

By thegamingrip , 1 August, 2021
Forums
Gurux.DLMS

Hello, good afternoon. I am new to this topic. But I was able to move on well.

This with a Chesum problem.

My wish is to be able to form hex strings of different orders.

7E A0 14 02 21 03 98 25 BC E6 E6 00 C0 02 C1 00 00 00 01 51 BE 7E

<HDLC len = "13">
<! - Logical address: 1, Physical address: 16 ->
<TargetAddress Value = "90" />
<SourceAddress Value = "1" />
<FrameType Value = "98" />
<PDU>
<GetRequest>
<GetRequestForNextDataBlock>
<! - Priority: High, ServiceClass: Confirmed, Invoke ID: 1 ->
<InvokeIdAndPriority Value = "C1" />
<BlockNumber Value = "00000001" />
</GetRequestForNextDataBlock>
</GetRequest>
</PDU>
</HDLC>

I need to edit <BlockNumber Value = "00000001" /> by 00000002 in the hex string but it brings me the message <! - Invalid data checksum. ->

<!-- Invalid data checksum. -->
<HDLC len="13" >
<!-- Logical address:1, Physical address:16 -->
<TargetAddress Value="90" />
<SourceAddress Value="1" />
<FrameType Value="98" />
<PDU>
<GetRequest>
<GetRequestForNextDataBlock>
<!-- Priority: High, ServiceClass: Confirmed, Invoke ID: 1 -->
<InvokeIdAndPriority Value="C1" />
<BlockNumber Value="00000002" />
</GetRequestForNextDataBlock>
</GetRequest>
</PDU>
</HDLC>

How can I generate my hexadecimal doing the correct chesum ?.

Profile picture for user Kurumi

Kurumi

4 years 12 months ago

Hi,

Hi,

Let the framework generate the frames and use XML client to only read the data. There are several different things that might affect the generated frames.

What you need to do is something like this:
<GetRequest>
<GetRequestNormal>
<InvokeIdAndPriority Value="C1" />
<AttributeDescriptor>
<ClassId Value="0001" />
<InstanceId Value="00002A0000FF" />
<AttributeId Value="02" />
</AttributeDescriptor>
</GetRequestNormal>
</GetRequest>

Change interface type and OBIS code.

BR,
Mikko

thegamingrip

4 years 11 months ago

Hi, Kurumi, sorry my english,

Hi, Kurumi, sorry my english, but if i don't misinterpret can i test the XML code using XMLClient?

thank you answer my questions.

Profile picture for user Kurumi

Kurumi

4 years 11 months ago

Hi,

Hi,

You can use XMLClient to read data from the meter. You define COSEM object (Ex. clock) that you want to read and read it. You can't define what kind of frames the client is sent.

BR,
Mikko

  • Create new account
  • Reset your password

Hire Us!

Latest Releases

  • Mon, 07/27/2026 - 12:37
    gurux.dlms.cpp 9.0.2607.2701
  • Thu, 07/23/2026 - 16:19
    gurux.dlms.java 4.0.96
  • Thu, 07/09/2026 - 14:34
    Gurux.DLMS.Python 1.0.201
  • Fri, 06/26/2026 - 16:32
    Gurux.Service 3.0.2606.2601
  • Wed, 06/24/2026 - 08:36
    Gurux.DLMS.Python 1.0.200

New forum topics

  • Service not known error on gprs communication
  • Help Needed: Interfacing Saral 100 Energy Meter with Microcontroller via RS232
  • Connecting Meter to Agent via serial
  • Reading block profile with Compact array
  • DLMS server - serving multiple similar datasets gathered from multiple meters across distinct logical addresses
More

Who's new

  • UrukTroge
  • Quarryboss
  • CorwXGlcWwyuiJawypxb
  • Vegazone-Casin…
  • VegaZone-lBit
RSS feed
Privacy FAQ GXDN Issues Contact
Follow Gurux on Twitter Follow Gurux on Linkedin