The dlms_getHDLCAddress() function incorrectly validates the HDLC address, when the source of the message is the server and the process running the library is a dlms client.
The exact place is here (line 2148):
//DLMS CCT test requires that client size is one byte.
if (isClientAddress && size != 1)
{
return DLMS_ERROR_CODE_INVALID_CLIENT_ADDRESS;
}
If the source address, corresponding to the server, is 2 bytes, an incorrect error is returned.
Sincerely Cristian.