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. Node
  3. Image Transfer Identification

Image transfer identification

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 bartoszszczepanik , 8 April, 2020
Forums
Gurux DLMS for Java

Hello

In example client code for performing firmware update i can see line:
readDataBlock(Client, Media, target.imageTransferInitiate(Client, Identification, data.length), reply);
and the Identification variable puzzles me. is it hex signature of a file ? propably manufacturer specific, are there any general guidlines how to find it ?

Profile picture for user Kurumi

Kurumi

6 years 5 months ago

Hi,

Hi,

It depends on the meter. It's a string that identifies the image file. For some meters it can be anything, and for some meters the structure must be valid.

BR,
Mikko

lrd2

3 years 7 months ago

In reply to Hi, by Kurumi

Hello, I've problem with…

Hello,

I've problem with step 2 of firmware update process from code below, I'm passing imageIdentifier as recommended by the meter manufacturer
and following errors are thrown
'gurux.dlms.GXDLMSException, message: Access Error : Other Reason.. '
when passed identifier without file extension and
'gurux.dlms.GXDLMSException, message: Access Error : Invalid error code 34'
when with file extension

Can you explain what these errors can mean?
Do you know if there is any way to create this identifier that will work for most meters ?

GXReplyData reply = new GXReplyData();
GXDLMSImageTransfer target = new GXDLMSImageTransfer("0.0.44.0.0.255");
//Check that image transfer ia enabled.
meterReader.readDataBlock(meterClient.read(target, 5), reply);
meterClient.updateValue(target, 5, reply.getValue());
if (!target.getImageTransferEnabled()) {
throw new Exception("Image transfer is not enabled");
}

//Step 1: Read image block size.
meterReader.readDataBlock(meterClient.read(target, 2), reply);
meterClient.updateValue(target, 2, reply.getValue());

// Step 2: Initiate the Image transfer process.
meterReader.readDataBlock(target.imageTransferInitiate(meterClient, imageIdentifier.getBytes(), data.length), reply);

  • Create new account
  • Reset your password

Hire Us!

Latest Releases

  • Wed, 08/26/2026 - 09:04
    Gurux.DLMS.Python 1.0.203
  • Mon, 08/17/2026 - 11:28
    Gurux.DLMS.Python 1.0.202
  • Mon, 08/17/2026 - 09:47
    gurux.dlms.cpp 9.0.2608.1701
  • Mon, 08/17/2026 - 09:25
    gurux.dlms.c 9.0.2608.1701
  • Mon, 07/27/2026 - 12:37
    gurux.dlms.cpp 9.0.2607.2701

New forum topics

  • Security vulnerability report — request for a private contact (GuruxDLMS.c / ANSI C)
  • Topic: Insufficient Memory Error When Reading Class 7 Profile Generic Objects
  • SN ReadResponse returns all-null values when response spans multiple HDLC frames
  • Gurux.Serial.Android 3.0.6 – CH340 (HL-340) USB-Serial Adapter Not Working,
  • Trying to talk to a L&G E360 meter (Using Python Gurux)
More

Who's new

  • cyby
  • Metin Onan
  • ssv007
  • 3nzol3dur
  • dw772
RSS feed
Privacy FAQ GXDN Issues Contact
Follow Gurux on Twitter Follow Gurux on Linkedin