When using GXDLMSSecureClient with the HDLC interface, the clientAddress set in the settings object (client.settings.clientAddress) is incorrectly ignored during the generation of the HDLC SNRM frame if and only if a Security level other than Security.NONE is configured via client.ciphering.security.
If client.ciphering.security is left as Security.NONE, the HDLC source address is generated correctly based on settings.clientAddress.
If client.ciphering.security is set to Security.AUTHENTICATION, Security.ENCRYPTION, or Security.AUTHENTICATION_ENCRYPTION, the HDLC source address incorrectly defaults to the value corresponding to logical address 16 (0x21), regardless of the actual value present in settings.clientAddress just before the connection attempt.
The serverAddress (settings.serverAddress) is always used correctly to generate the HDLC Destination Address byte in both scenarios.
Forums
Hi, DLMS standards define…
Hi,
DLMS standards define HDLC client address only for the authentication level None, and different manufacturers are using different values. If you are using other authentication levels, you must set the client address like this:
self.client.clientAddress = 1
BR,
Mikko
Hi, Okay sir, I’m in now…
Hi,
Okay sir, I’m in now.
Thank you very much!