The HDANSrv V6.0 has a changed interface to the plug-in DLLs.
The interface was defined in 2003 for the early .NET and C#/VB.NET versions.
We very much try to stay backwards compatible but the modernization of the implementation was overdue and necessary especially in regard of the DLLs being used also with the OPC UA server toolkit.
The changes are mostly syntax changes. The methods and their functionality is mostly unchanged. Updating existing implementations shouldn't be difficult.
The changes are:
- Layer Name Change
The HDAPlugin base layer has methods for the OPC HDA compliant data processing
The HDAPluginUser layer is renamed to HDAPluginDBA. It has the methods for the database access. - Interface Definitions
There is an interface definition DLL for the Base and DBA layer.
The interfaces define the methods to be implemented to be implemented, as well as enumerations and data classes used between the layers. - Less Classes
The old implementation had a class for each function group such as Raw data, Processed data, Update, etc.
Now there is only one class with the data processing methods and a class for browsing.
Early C#/VB.NET versions required a class to be implemented in a single code file. Partial classes were not available. To structure the code into reasonable sized code files the code had to be split into multiple classes, with the consequence of complicating the data exchange.
Some methods were duplicated in each class for simpler use. - Generic Lists
Early C#/VB.NET versions had only ArrayLists. These are replaced by generic lists and dictionaries. - GetRawItemData method has more arguments
The additional arguments provide information that may help optimize the database access, reducing the need for making changes in the base layer code. - ItemInfo class argument instead of string type
his object can hold any data necessary to identify the database source.