0% found this document useful (0 votes)
117 views

DLMS Client ReleaseNotes

DLMS-Client-ReleaseNotes
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
117 views

DLMS Client ReleaseNotes

DLMS-Client-ReleaseNotes
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 24

Release Notes for

DLMS/COSEM Client SCL


Version 3.15.1
20th Dec 2022

Kalki Communication Technologies Private Limited


The Address, 4th Floor, # 17/1, Outer Ring Road,
Opposite Prestige Cessna Business Park
Kadubeesanahalli, Bangalore
INDIA 560103
Phone: +91-80-67021900
Web Site: www.kalkitech.com
Version 3.15.1
Release date: 20th Dec 2022

Features
• Added support for IC27 Version 1.
• Added support for IC151 Version 1.

Version 3.15.0
Release date: 06th Dec 2022

Features
• Added feature to notify non-DLMS packet received on existing TCP/UDP connection. The packet
will be notified on the “applnDataWrapperCallback” functions registered through the
registerWrapperAppDataCallback() function.
Fixes
• Fixed the issues on SN referencing with ciphering (Security policy >NO_Security).
• Action tag and LLS header were missing in the HLS pass-3 request on the
LN_Without_Ciphering application context. The issue has been resolved.

Version 3.14.0
Release date: 01st Dec 2022

Features
• Support for following IC’s added.
◦ IC 95 Wi-SUN setup.
◦ IC96 Wi-SUN diagnostic
◦ IC97 RPL diagnostic
◦ IC98 MPL diagnostic
◦ IC116 IEC 62055-41 Attributes
• Fixed the issue with compact data decoding function (cosemDecodeCompactFrameData())
• Fixed the memory leak issues with Com Profile decoding function
(decodeComProfileParams()).
• Support of GBT in Get service.
• Added support for length greater than 255 on image identifier and image signature in IC 18
attribute 7.

Version
Version3.12.5
3.12.5
Release th Aug
Release date:1616
date: 2022
th Aug 2022

Features
• Resolved the issue with IC40 / IC 62 with Get / Set operations. Issues were facing to serialize
data elements.

Version 3.12.4
Release date: 5th Aug 2022

Features
• Added new function to send custom packets and receive response over existing connection
(TCP, UDP, HDLC and Mode-E are supported)

Version 3.12.3
Release date: 23rd July 2022
Features
• Added features to run DLMS Client SCL Dot Net version on LINUX operating system.
• Resolved the issue with IC40 / IC 62 with Get / Set operations. Issues were facing to serialize
data elements.

Version 3.12.2
Release date: 04th July 2022

Fixes
• Resolved the compilation errors with IC40 version 0 (On disabling other versions) on
WinDLMSClientWrapperDll.

Version 3.12.1 Beta


Release date: 16th June 2022

Fixes
• Encode Issue with the SET of IC 62 Attribute 3 version 0.
• Decode issue of DataNotification with ACK.

Version 3.12.0
Release date: 08th April 2022

Additions
• Security policy 0 support in LN_WITH_CIPHERING application context (2 possible
combinations of packets with or without “ciphering tags + security header” are supported in LN
ciphering).
• IC 40 Version 2 support.
• Broadcast Encryption key (GBEK) support.
Fixes
• Memory leak fixes on all major functions on API.
• Removed warnings.
• Resolved the issue with processing AARQ packet with ciphering (Encryption/Authentication)
and 1st ciphered byte as 0xDF (0xDF after security header).

Version 3.11.0
Release date: 20th Dec 2021
Additions
• Security policy 0 support in the LN_WITH_CIPHERING application context.
• Encode/Decode functions for HDLC packet.
• Security suite 2 support.
• V44 compression support.
• LLC header support in encoding/decoding packets.
• Validation to avoid crashes due to invalid packets. The added limit for maximum length filed
for variable-length data.
• Sample asymmetric library for Linux.
Fixes
• Fixes with General global ciphering in AARQ/RLRQ.
• Removed warnings.

Version 3.10.1
Release date : 28th Feb 2021

Fixes
• Security suite field was not included in the calculation of processed challenge(F(StoC) /
F(CtoS)) in HLS mechanism ID: 5 . Added in security header(SH) and additional authetication
data (AAD) calculation.
Version 3.10.0
Release date : 29th Jan 2021
Additions
• Added Gateway profile support.
• Added wrapper header encoding/decoding support in encodeAXDR and decodeAXDR APIs
• Added new API for extracting system title from a received Data notification APDU
• Added two new arguments(clientsystemtitle and security structure) in cosemDecodeAXDR.
While decoding block response, the Get request next needs to be prepared for which these
newly added arguments will be used.
• Added new callback to get ciphering keys based on system title received
Fixes
• EventCallback : C DLL - return type of getEvent function corrected to EVENT_STR_DLL
from EVENT_STR.
• UserManual correction : corrected the structure type of serviceSpecificData_p when
cosemEncodeAXDR() is called for SET operation
• C#: Duplicate members of IMAGE_TRANSFER present inside DLMS_UNION removed
• Added 0xC2(Event notification) in addition to 0x0F(Data notification) inside 0xDB(General
ciphering)
• Fix – restored option for IPV6 in dll_createSocket()
• Fixed - Push destination size issue while marshaling.
• Fixed - When the queue is NULL, it uses DT_TIME and only copies 4 bytes, but the real length
is 12 so a wrong value is saved in EventQ.

Version 3.9.4
Release date : 29th April- 2020
• Added new argument conWaitTimeOut (in ms) in initPort() .
• closeport() and closeClient() implemented Locking mechanism.
• Fixes in C# : Event Callback getEvent() return type changed to EVENT_STR_DLL.

Version 3.9.3
Release date : 10th March- 2020
• Fixes in C#: The decoded complex data of the decodeAXDR() function was not accessible in
the C# application as the scope of APIs were not public. Fixed the issue by giving the public
access to the API to extract complex data

Version 3.9.2
Release date : 04th November- 2019
• Added support for Encoding AARQ, and RLRQ requests.
• Added support for Decoding RLRE, and AARE Responses.
• Added support for processing challenge for HLS handshake.
• Fixes in Signature generation and verification.
• Fixes in Certificate encoding in AARQ
• Fix the decoding process of ciphered push requests on Decoding API.

Version 3.9.1
Release date : 14th August- 2019
• ClosePort() was implemented as a non-blocking function that does not wait for socket read
thread termination before returning. This caused issues sometimes when closeClient() was
called because CloseClient() releases all system resources some of which could be still in use
by the socket read thread. This issue has been fixed by making ClosePort() a blocking function
that would return only after the termination of the socket read thread.
• Added identifier to differentiate meter instance in callback functions (Channel Number).
• Added cleanup code on C# wrapper DLL project.
• Fixes in CosemDecodeAXDR() and CosemEncodeAXDR() API”s on cipherd data processing.
• Added the support for dedicated ciphering in CosemEncodeAXDR() API.
• Added priority handling in HLS pass 3 handshakes.
• Added support for challenge length up to 64 bytes in HLS handshaking.
• Fixes in dedicated key support in AARQ request.

Version 3.9.0
Release date : 09th May- 2019
• Changes:
• Added Security Suite 1 Support.
• Added IC 64 version 1 Support.
• Added IC 15 version 3 Support.
• Added HLS mechanism Id 6 Support.
• Added HLS mechanism Id 7 Support.

Version 3.8.18
Release date : 17th July- 2019
• ClosePort() was implemented as a non-blocking function that does not wait for socket read
thread termination before returning. This caused issues sometimes when closeClient() was
called because CloseClient() releases all system resources some of which could be still in use
by the socket read thread. This issue has been fixed by making ClosePort() as a blocking
function which would return only after termination of socket read thread

Known Limitation: Above fix is implemented for TCP only and remains open in UDP /Serial TCP/
Serial UDP communication profiles.

Version 3.8.17
Release date : 27th December- 2018
• Added modifications to C# wrapper in getting With List feature support.
• Added sample illustration function for the Image Transfer process to the C# application

Version 3.8.16
Release date : 27th August- 2018
Changes:
• Added support for unconfirmed application association
Bug fix:
• Fix in the decoding of Access mode element of object list attribute (IC15 attribute 2) in
getData() API in C# wrapper.

Version 3.8.15
Release date : 21st June- 2018
Changes:
• Added option to change the backlog limit of TCP socket from C# wrapper.
• Added support for IPV6 for incoming TCP connections in the C# wrapper.

Version 3.8.14
Release date : 15th June- 2018
Changes:
• Added serviceClass argument for getData() to support unconfirmed requests.
• Added an error code to be returned by the Client if the Client is made to send a request
to a Server through a socket that has been unexpectedly closed in the middle of TCP
communication.
• Added call to callBack to indicate the closing of the event thread.

Version 3.8.13
Release date : 02th March- 2018

Changes:
⚫ Changes in platform interface to stop accessing the dlmsInstance pointer in data read
thread and event processing threads after invoking closePort() API.

Version 3.8.12
Release date : 06th February- 2018

Changes:
⚫ Windows Platform Interface has been modified to support communication with both
IPV6 and IPV4 versions of the Internet Protocol.

Version 3.8.11
Release date : 07th November- 2017

Bug fix:
⚫ Fix in C# wrapper: Incorrect data sent by Client OCL for Set operation of IC01 attribute
2 structure data type. This has been fixed.

Version 3.8.10
Release date : 12th September- 2017

Bug fix:
⚫ The issue in the termination of the event thread on socket close has been fixed.

Changes:
⚫ The issue in return of hdlcRead() in cases where invalid frames are received. This has
been fixed.

Version 3.8.9
Release date : 18th August- 2017

Modification:
⚫ Modified the Linux sample application.
Version 3.8.8
Release date : 24th July- 2017

Bug fix:
⚫ The preserver id and wPortClient id passing to the event/push callback function was
wrong on receiving an event / push from a different association. Resolved the issue.

Version 3.8.7
Release date : 16th June- 2017

Bug fix:
⚫ DLMS client stack could not process response messages of AARQ & RLRQ on
receiving unsolicited service messages before the expected responses. This was fixed.

Version 3.8.6
Release date : 19th May- 2017

Changes:
⚫ Some compilation errors and warnings occurred in Linux due to missing macros. This
has been fixed.
⚫ The issue with the Get operation of IC47 attribute 8 has been resolved.

Version 3.8.5
Release date : 21st April- 2017

Changes:
⚫ Marshaling operations of byte-array type arguments have been moved to the Wrapper
module for ease in application development.

Version 3.8.4
Release date : 20th March- 2017

Changes:
⚫ The issue in the encoding of RLRQ in Reason & xDLMSContext fields. The issue has
been fixed

Version 3.8.3
Release date : 01st March- 2017

Changes:
⚫ Modified PROF_ACTN- the ACTION_UNION structure for easiness of usage in the
application.

Version 3.8.2
Release date : 24th February- 2017
Bug fix:
⚫ Event / Push messages received from associations other than configured associations
shall block further communication on handle/channel. The issue has been resolved.
Version 3.8.1
Release date : 20th February- 2017
Additions
⚫ Added the provision to enter the security control used for the AARQ service.
⚫ Added the validation for the security control byte in responses of services against the
minimum security policy.

Version 3.8.0
Release date : 1st September- 2016

Additions
⚫ Added support for Payment metering related Interface Classes.
⚫ Client challenge length has been made variable and is now accepted by the user at the
UI.

Bug fix:
⚫ Validation for received HDLC I-frame RRR has been added.

Version 3.7.0
Release date : 12th August- 2016

Additions
⚫ Added support for Zigbee Interface Class.
⚫ GET/SET/ACTION implemented for PLC and G3PLC ICs.

Changes
• Added extra argument (secParam) in function sendRLRQ to control the security
Policy/frame counter used for ciphering the userInfo field.

Bug fix:
• Support included for security feature: AAs using a ciphered application context shall support all
protection levels equal to or stronger – i.e. supporting more security services – than Spain.

Version 3.6.4
Release date : 15th July- 2016

Additions
⚫ Get service for Prime PLC and G3 PLC Interface Classes have been added.

Version 3.6.3
Release date : 07th June- 2016
⚫ The locking mechanism on the Windows platform had issues while executing multiple
applications on the same system. Modified the locking mechanism and resolved the
issue.

Version 3.6.0
Release date : 12th February- 2016

Additions
⚫ Added support for Dedicated key Ciphering.
⚫ For ciphered association, added support for xDLMS Initiate Request/Response in the
User Information field of RLRQ/RLRE.
⚫ Added support for Global ciphered Event Notification Request.
⚫ Added support for handling of Exception Response.

Bug Fixes
⚫ Support variable-length octet string for the timestamp of event notification request.

Version 3.5.8
Release date : 22th October- 2015

Bug Fixes
⚫ Removed the memory leaks detected on cosemDecodeAXDR() and executeAction()
API's.
⚫ An invalid optional data flag field was present in action with the list request. Fixed the
issue in action with the list request.
Version 3.5.7
Release date : 08th October- 2015

Additions
⚫ Implemented the support for action with list service in the LN application context.
⚫ Support for new Interface classes (IC 80, 81, 82, 83, 84, 85, 86).

Version 3.5.6
Release date : 16th June- 2015

Bug Fixes
⚫ Removed the invalid validation for data notification tag on received general-Glo-ciphered
packet with encryption.
⚫ Previous versions of Client could receive&send APDUs only up to 65527 bytes even
though protocol allows up to 65535 bytes. This limitation has been rectified.
⚫ Resolved issue in encoding set-with-list request
⚫ Resolved issue of APDU size growing beyond Server Max Receive PDU size by a few
bytes while sending Set request with data size > 255
⚫ Resolved memory leak observed in cosemEncodeAXDR() & cosemDecodeAXDR()
API.

Version 3.5.5
Release date : 30th April- 2015

Bug Fixes
⚫ The issue in compact array encoding in the length field with type description contains string
type (BIT_STRING, OCTET_STRING, VISIBLE_STRING) data of length greater than 127.

Version 3.5.4
Release date : 20th April- 2015

Bug Fixes
⚫ A validation error in compact array decoding on Get and data notification services. The
issue has been fixed.

Version 3.5.3
Release date : 20th March- 2015

Bug Fixes
⚫ No validation for the date-time length field in the decoding of data notification service
where the memory to store date-time is limited to 12 bytes. Fixed the bug by introducing
the date-time length field validation on decoding.
⚫ Resolved the memory leak issue in Get/Read service by freezing memory allocated to
DLMS_UNION structure on cleanupMemory() API .

Version 3.5.2
Release date : 23rd February- 2015

Additions
⚫ Implemented the SelectiveAccess feature in IC62 Attribte 2 to make the DLMS Client
library compactable with CIG Specification.

Version 3.5.1
Release date : 17th February- 2015

Additions
⚫ Support for Security Policy = No Security (SC = 0) in LN with ciphering and SN with
ciphering application contexts.

Version 3.5.0
Release date : 12th February- 2015

Additions
⚫ Support for following services in short name referencing.
1. Read with Block.
2. Read with List.
3. Write with block.
4. Write with List.
Bug Fixes
⚫ Error in the encoding of Read and Write services in short name referencing. The issue
has been fixed.
⚫ Invalid processing for maxApduSizeRecv and maxApduSizeSend parameters exchanged
during Application Association establishment when values of the parameters are equal to
zero. Issue has been fixed.

Version 3.4.4
Release date : 09th February- 2015

Bug Fixes
⚫ Error while encoding data length = 0 has been fixed

Version 3.4.3
Release date : 30th January- 2015

Bug Fixes
⚫ Failed to decode general-glo-ciphered data notification APDU with no system title. Issue
has been fixed.

Version 3.4.2
Release date : 28th January- 2015

Additions

⚫ Implemented a wrapper to make the library v3.4.2 compatible with applications built
using older versions(v3.2.X).

Bug Fixes
⚫ Length information was missing for Boolean type data contained inside the
structure/pointer returned by getData()/cosemDecodeAXDR() API's. Issue has been
fixed.
⚫ Optional Date time of Data notification service request was not correctly handled. The
issue has been fixed.

Version 3.4.1
Release date : 07th January- 2015


Bug Fixes
⚫ The length byte of the system title was missing on the general-glo-ciphered data
notification APDU. Issue has been fixed.
⚫ The length of the ASN1 string that the client can handle was limited to 255. This
limitation has been removed.

Version 3.4.0
Release date : 28th December- 2014

Additions
⚫ New function getAssociationParameters added to extract specific parameters of the
current association. Currently, this function is used in Client user applications in image
transfer function() mainly to know APDU receive the size of Server for image block size
calculation
⚫ More validations are added in the library against the allowed limit for arguments of individual
functions defined in the library.
⚫ Additional validation has been introduced for the data length of the received compact
frame against the data length derived from the selected ASN string compact frame.

Bug Fixes
⚫ Encrypted Data notification APDU received in blocks(GBT) was not properly decoded
– this issue has been fixed.
⚫ Application Association establishment and invoking services supported in long name
referencing like Get, Set Action were not supported through server-initiated connection.
Issue has been fixed.
⚫ Encrypted data notification APDU received in blocks (GBT) was not properly decoded
in cosemDecodeAXDR. Issue has been fixed.

Version 3.3.1_4
Release date : 7th November- 2014

Additions
⚫ Fix in profile buffer decoding in get service
⚫ Fix unsolicited communication in encrypted messages.

Version 3.3.1_3
Release date : 31st October- 2014

Additions
⚫ Support for Compact Frame
⚫ Support for multiple references (Get with List & Set With List).
⚫ Added API for the user to set frame counter(used to build IV for applying for protection
on transmitting APDUs)
⚫ New Interface classes (IC 47,48,62)
⚫ Support for Short(8 bytes) as well as normal(12 bytes) GMAC Authentication tag size
⚫ Support for new communication profiles(6=HDLC over TCP and 7=HDLC over UDP)
⚫ 3.3.1_2
Version
⚫ date : 19th October- 2014
Release

⚫ Additions
⚫ Encode/Generate AXDR APDU for the following
⚫ GET request (GET NORMAL, Selective Access )
⚫ Action request
⚫ SET request (SET NORMAL, SET WITH BLOCK)
⚫ Decode AXDR APDU coming from the server for the following
⚫ GET response (GET_NORMAL, GET_WITH_BLOCK )
⚫ Action response
⚫ SET response (SET_NORMAL, SET_WITH_BLOCK ).
⚫ Data Notification request
⚫ Event Notification request
Fixed issues in the encoding of ARRAY inside COMPACT ARRAY

Version 3.3.1_1
Release date : 08th October- 2014
Additions
⚫ Pre-established association
⚫ Client user identification
⚫ New data types
⚫ Compact array
⚫ Compact date time
⚫ New IC 8192 – Rate plan
⚫ IC 7 :Profile Method: -3 selective reset
⚫ General Global Ciphering
⚫ General Block Transfer support for Data Notification Service
⚫ Modified IC's
⚫ class_id: 44: PPP setup
Set service support for following attributes,
LCP_options(Att 3)
IPCP_options (Att 4)
PPP_authentication (Att 5)
⚫ class_id: 7: Profile generic
Set service support for following attributes,
buffer(Att 2)
capture_objects(Att 3)
⚫ class_id: 17: SAP assignment :
support visible-string data type for logical_device_name
⚫ class_id: 15: Association LN
support two more methods : add_user (data) and remove_user (data)
support two more attributes: user_list (Att 10) and current_user (Att 11)

⚫ class_id: 18: Image transfer


Set service support for following image_transfer_enabled(Att 5)

⚫ class_id: 42: IPv4 setup


Set service support for IP_options(Att 5)

Version 3.3.1
Release date : 29rd August- 2014

Additions
⚫ Added a new argument in the initPort() function in which the user can set support for
unsolicited data, in the client-initiated connection scenario
Changes
⚫ Added new validations in initClient() for memory allocation failure

Bug fix
⚫ Added handling of broken pipe condition in TCP in platform interface code
⚫ Better handling of event thread and TCP read thread using flags.

Version 3.3.0
Release date : 23rd July - 2014

Additions
⚫ Support for Push Mechanism
⚫ Support for Event Notifications
⚫ Support for ZigBee® setup classes.
⚫ Introduced validation and auto retransmit of the image in the image transfer mechanism.
⚫ Support for encoding priority bit in APDU
⚫ Support confirmed as well as unconfirmed services
⚫ Support for date-time[25], date[26], time[27] data types for date/time related attributes
⚫ Support handling of user information in RLRE

Changes
⚫ Modified initClient() and initPort() functions
⚫ Split sendSNRM() to setParamsHDLC() and sendSNRM()
⚫ Split sendAARQ() to setParamsCosemWrapper(), setParamsAARQ() and sendAARQ()
⚫ Changed error code to two bytes to distinguish stack generated errors and server
generated errors
⚫ Optimized memory allocation during initialization

Bug fix
⚫ Incorrect usage of Interface class version in getData()
⚫ Introduced response timeout in wrapper receives function while waiting for APDU(after
getting wrapper header)
⚫ Modified cleanup memory function to free partially allocated memory

⚫ Added
Version 3.2.0 support for generic IC
Release date : 06 -September - 2013

Additions
⚫ Separated security suite
⚫ Implemented UK Specifications
⚫ Added support for generic IC
Version 3.1.10
Release date :28 -August - 2013

Bug Fixes
⚫ Fixed issue with invoke ID sent by the client.

⚫ 3.1.9
Version
⚫ date :12 -August - 2013
Release

Bug Fixes
⚫ Corrected issues with bit string encoding

Version 3.1.8
Release date :15 -July - 2013

Bug Fixes
⚫ Corrected Data Transport Security to facilitate differing ciphering mechanisms for
different requests
⚫ Modified SET – Next – Block to send a ciphered request in ciphered associations
⚫ Fixed the issue of the client sending more than negotiated APDU size in ciphered
contexts
⚫ Corrected Length calculation in executeAction which would otherwise send wrong
block lengths if the length of data is greater than 255

Version 3.1.2
Release date : 20 -June - 2013

Additions
⚫ Added information on multiple channel support in the User manual

Bug Fixes
⚫ Fixed 64-bit compatibility issue
⚫ Corrected issue in calculating block number
⚫ Fixed bug in SN with ciphering and high-level authentication.
⚫ Fixed issue when the server sends data more than the configured Cosem buffer size
⚫ Implemented sleep after checking inter-frame-timeout in hdlc.c so that the
_hdlcReadFrame function will not become a busy loop.
⚫ Reset the frame-length variable in hdlc.c each time a new frame is read.
⚫ Modified the plafPortReadThread function so that the byte read from the COM port is
transferred to hdlcInBuf_p before incrementing the index variable hdlcIn.
⚫ Fixed the issue in action request when the action data is huge
⚫ Fixed the error in encoding the length of image_block_value in IC 18 when the length is
more than 255

Version 3.1.6
Release date : 21 - May - 2013

⚫ Separated sample code

Version 3.1.5
Release date : 24 - Apr - 2013

Bug Fixes
⚫ Corrected Security Control field used to calculate f(StoC) in case of HLS_GMAC
⚫ Changed MAX_HLS_CHALLENGE_LEN to 255
⚫ Corrected the processing of AARE length
⚫ Corrected ICStructs.h and datastructs.h file in LINUXDLMSCLIENT folder.
⚫ Corrected the issue of sending more than negotiated APDU size for Set-With-Block in
ciphered application contexts

Version 3.1.3
Release date : 08 - Feb - 2013
Bug Fixes
⚫ Corrected processing of f(StoC) in case of HLS authentication_mechanism_id_5
(GMAC)
⚫ Fixed issues in block transfer.
⚫ Removed validation of Frame Counter in received frames.

⚫ Added
Version 3.1.1 support for IC 70 objects in getData and setData methods in C# wrapper DLL
Release date : 3 -Dec - 2012

Additions
⚫ Added support for IC 29

Bug Fixes
⚫ Corrected processing of action-response.
Version 3.1.0
Release date : 28 -June - 2012
Additions
⚫ Added Application context LN with Ciphering.
⚫ Added Application context SN with Ciphering.
⚫ Added authentication mechanism Ids 3, 4, and 5.
⚫ Added multiple version support for ICs.
⚫ Added callbacks for diagnostic messages.
⚫ Added PLC wrapper interface for Prime PLC
⚫ Added interface classes
⚫ Schedule - (IC:10)
⚫ Sensor Manager - (IC:67)
⚫ Register Table - (IC:61)
⚫ Security setup - (IC:64)
⚫ PPP Setup - (IC:44)
⚫ IEC 61334-4-32 LLC Setup - (IC:55)
⚫ ISO/IEC 8802-2 LLC Type 1 Setup - (IC:57)
⚫ ISO/IEC 8802-2 LLC Type 2 Setup - (IC:58)
⚫ ISO/IEC 8802-2 LLC Type 3 Setup - (IC:59)
⚫ M-Bus Slave Port Setup - (IC:25)
⚫ M-Bus Client - (IC:72)
⚫ Wireless Mode Q Channel - (IC:73)
⚫ M-Bus Master Port Setup - (IC:74)
⚫ Limiter - (IC:71)

Bug fix
⚫ Fixed Bug with frame counter.
⚫ Fixed bug in set with block.
⚫ Fixed incorrect interpretation of SET/ACTION Response FAILURE
⚫ Fixed issues with Image Transfer IC

Version 3.0.2
Release date : 15 -July - 2011

Bug fix
⚫ cosem.c: Fixed the problem in the HLS Authentication mechanism in the TCP
communication profile.
⚫ Other minor bug fixes.

Version 3.0.1
Release date : 01- February- 2011
Bug fix
⚫ ClientApp.h : Increased the size of clientIpAddr[] and serverIpAddr[] from 15 to 17
in TcpUdp structure which would otherwise result in TCP/UDP port initialization failure
⚫ hdlc.c : Activated the response timer in hdlcRead() function which would otherwise
result in SNRM failure
⚫ plaf.c : Fixed the Linux platform timer functions plafGetMSCounter() and
plafElapsedMSCounter() to avoid improper message timeouts.

Version 3.0.0
Release date :0 3-January-2011

Additions
⚫ Added multichannel supporting
⚫ Removed compilation warnings
⚫ Debugging options incorporated

Version 2.2.1
Release date : 10-November-2010

Additions
⚫ Added Interface Class 18, Image Transfer

Version 2.2.0.1
Release date : 14-April-2010

Additions
⚫ High-Level Security using AES 128
Bug fix
⚫ cosem.c → cosem_EncodeSetData(DLMS_UNION* setData) : corrected length
calculation of octet string inside switch case for attribute 7 of Interface class 15. The
earlier length was calculated using the strlen() function which fails if the octet string
contains non-ASCII characters
⚫ cosem.c → cosem_SetNormal: corrected code to return actual error code returned by the
server(earlier during failure, this function always returned 1 )

Version 2.1.6.0
Release date : 7-August-2009

Additions
⚫ Added following new interface classes
■ Connect/Disconnect
■ Limiter
■ Security setup
■ M-Bus Slave Port setup
■ M-Bus Master Port setup
■ M-Bus Client
■ PLC setup Interface classes(IC 50,51,52,53,55,56,57,58,59)

Bug fix
⚫ Increased the size of cosemOutHdrBuf[] from 20 to 30 which would otherwise
generate the wrong APDU for set-request with block transfer(which typically occurs for
the “Day profile table” of the activity calendar)
⚫ DLMSClient.c -> Corrected encoding of parameterized access parameters inside
getData()
⚫ cosem.c -> Removed hardcoded values for sort method and sort object inside
cosem_ExtractGetData()

Version 2.1.5.6
Release date : 19-March-2009

Bug fix
⚫ DLMSClient.c -> getData() : corrected encoding of “fromValue” and “toValue” in
selective access by range parameters
⚫ DLMSClient.c -> executeAction() : implemented ASN1 usage flag for optional field of
Action request APDU
⚫ cosem.c -> cosem_ActnNormal() : corrected parsing of data access result
⚫ cosem.c -> cosem_SetNormal() : corrected parsing of data access result
⚫ cosem.c -> cosem_SetLastBlock() : corrected parsing of data access result

Version 2.1.5.5
Release date : 11-December-2008

Additions
⚫ Added new interface class: Utility table(IC26)
⚫ Modified platform interface to support SCI baud rates 57600 and 115200 in Linux
⚫ Modified to handle UA response without optional HDLC negotiated parameters
 Default HDLC parameters defined in DLMSClient.h
 hdlc.c -> hdlc_read() -> switch case to handle UA: negotiated parameters is assigned
with default HDLC parameter values if UA does not contain whole/part of optional
negotiated parameters

Bug fix
⚫ cosem.c -> cosem_ExtractGetData() : Following bugs resolved within this function
 attribute id '6' was wrongly coded as '7' for IC41
 array index was wrongly coded inside for loop for attribute 2 of IC 43
⚫ cosem.c -> cosem_AARE() : increment of “read_index” corrected for 1-Byte
conformance block header(older implementation) and modified parsing of negotiated
conformance block inside the for-loop

Version 2.1.4.4
Release date : 2-August-2008

Bug fix
⚫ cosem.c / cosem_EncodeSetData() : “Daylight_savings_enabled” (attribute 8) of
“clock”(IC 8) - corrected encoding of ASN.1 data type from DT_INTEGER to
DT_BOOLEAN
⚫ cosem.c / cosem_ExtractGetData : corrected parsing and extracting of scripts, which
formerly did not extracted “index” of “action specification”

Additions
⚫ cosem.c, dataStructs.h : added new DLMS data types – DATETIME, DATE and
TIME.

Version 2.1.4.2
Release date : 22-July-2008

Buf Fix
⚫ DLMSClient.c / cosem_EncodeActnData : corrected encoding of index for insert(Method 1)
of special days entry(IC 11)

Version 2.1.4.0
Release date : 08-July-2008

Bug fix
⚫ cosem.c / cosem_ExtractGetData(): inside switch case for extracting object list of association
LN, corrected error in handling access selector(which previously discarded data types other
than NULL DATA)
⚫ ICStructs.h: changed structure definition of ATTR_ACCESS, the data type of member variable
sel_access changed from unsigned char to array of unsigned char.
⚫ hdlc.c : inside function hdlc_readFrame(), corrected error in parsing 2 byte hdlc source
address
Modification
⚫ cosem.c / cosem_AARE(): added switch cases for all possible AARE tags, which reads the
length of value following the tag and offsets the read_index appropriately
⚫ cosem.c / cosem_AARE(): inside switch case to parse user information, length checking
modified to handle 15(conformance tag encoded in 1 byte) bytes and 16 bytes(conformance tag
encoded in 2 bytes) user info blocks
⚫ Modified cosem.c to handle composite data received for instance specific attributes. Composite
data will be expressed as ASN string, without decoding. This is accomplished by the following
changes
 Two new cases added for DT_ARRAY and DT_STRUCTURE inside
cosem_DecodeVarValue()
 added function getCompositeAsnDataLength()
 ICStructs.h : changed structure definition of VARVALUE, changed the data type of member
variable varLength from KDEFS_UCHAR to KDEFS_USHORT.

Added
⚫ Selective access by range

Version 2.1.3.6
Release date : 21-May-2008

Modification
⚫ DLMSClient.c / sendRLRQ() : modified encoding of RLRQ APDU

Version 2.1.3.5
Release date : 26-Mar-2008

Modification/Bug Fix
⚫ DlmsClient.c / sendAARQ()
Reversed order of encoding of conformance block

\Version 2.1.3.4
Release date : 12-Dec-2007

Modifications
⚫ initclient() function parameter “hdlcBufSize” renamed to “LinkBufsize”
⚫ initPort() function parameter “client_port” argument remove

Version 2.1.3.3
Release date : 30-Nov-2007

Bug Fix
⚫ Function hdlc_AvailBytes() uses local variables instead of global variables hdlc_In and
hdlc_Out variables. Global variables could be modified from else where(Interrupt Service
Routine) there by yielding unexpected results
⚫ Function wAvailBytes() uses local variables instead of global variables wCosem_In and
wCosem_Out variables, for the same reasons as above.
⚫ Added RLRQ for IPv4 networks, which effected the following changes
 Added one case for RLRQ inside function cosem_CheckResType()
 Added function cosem_ReleaseResponse() in winDlmsClient.c
 Added DLL export function dll_sendRLRQ()
 Added MACRO BAD_RLRQREASON in dlmsclient.h
 Added function sendRLRQ() in dlmsclient.h

Version 2.1.3.0
Release date : 11-Oct-2007

Bug fix
⚫ Corrected: Certain memory was not deallocated by function cosem_CleanupMemory()
⚫ Function cosem_Extract-data() corrected for handling attribute 4 of IPv4 setup objects

Version 2.1.2.9
Release date : 19-Sep-2007

Modifications
⚫ Global variables “cosem_In” and “req_len” were made to ULONG from USHORT to handle a
large volume of data
⚫ Modified “for loop” handling attribute 8 of profile objects inside function
cosem_Extract_data() to handle 4 bytes of data instead of 2 bytes

Version 2.1.2.7
Release date : 11-Sep-2007
Bug fix
⚫ Following corrections made in function cosem_ExtractGetData() in cosem.c
 Added case to extract attribute 9 of clock objects
 Removed code which always hard-coded value “12” for attribute 7 of the profile object

Version 2.1.2.6
Release date : 09-July-2007
Added
⚫ DLL export function dll_ModeE_init()

Modifications
⚫ Changed global variables “cosemBufSize” , “ext_index” and “read_index” from USHORT to
ULONG
⚫ Modified Linux ClientApp.c
⚫ Modified Linux platform function initport()
Bug fix
⚫ Corrected wrapper PDU encoding in wrapper.c
⚫ Corrected timeout implementation inside function wRecv() in wrapper.c

Version 2.1.2.0
Release date : 13-June-2007
The first release of DLMS client supporting HDLC and Cosem wrapper for IPv4 networks

You might also like