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. Writing To DLMS Class Id 1(GXDLMSSata) Fails For Some Data Types

Writing to DLMS class id 1(GXDLMSSata) fails for some data types

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 pramodahanya , 27 March, 2019
Forums
Gurux DLMS for Java

When using the function GXDLMSClient.write(GXDLMSObject, attributeIndex) to write some data to either DLMS Class id 1 or 3 fails for some data types.
For example, If we consider writing to an Alam register to clear it, The alarm register is of type GXDLMSdata and in our implementation the value of the register is unsigned32. When this object is read the value is stored as Long in the GXDLMSData class and after modifying the value and when we try to write to the meter it fails. This is because when the COSEM message is created by the write function it is converting the Long data type to Unsigned64 and when this message is sent to the meter it returns data type mismatch as this expects unsigned32.
I understand this is because of Java limitation that there is so support for unsigned data types in Java and as a workaround we are using the other write method which accepts the data type and object type.
For this, the data type has to be hardcoded and not good for maintaining. Is there any way where this could be done generic enough like using the GXDLMSClient.write(GXDLMSObject, attributeIndex) method.
Thank You
BR
Pramod G

Profile picture for user Kurumi

Kurumi

7 years 3 months ago

Hi Pramod,

Hi Pramod,

Java is really causing problems because there are no unsigned numbers. For this reason, the original data type is lost. We modified the implementation so data type is saved automatically.

At the meantime, you can set datatype manually.

GXDLMSData d = new GXDLMSData("OBIS CODE");
d.setDataType(2, DataType.UINT32);
d.setValue(1);
Now when you write data, the type is correct.

BR,

Mikko

  • Create new account
  • Reset your password

Hire Us!

Latest Releases

  • 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
  • Mon, 06/15/2026 - 08:52
    gurux.dlms.c 9.0.2606.1501

New forum topics

  • Service not known error on gprs communication
  • 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
More

Who's new

  • @Hmd- several '.
  • Dawsontot
  • Jerrylam
  • qvlLdJweKzGUYaSOVS
  • LindanEt
RSS feed
Privacy FAQ GXDN Issues Contact
Follow Gurux on Twitter Follow Gurux on Linkedin