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 ?
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.
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");
}
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
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);