******************************************************************************** ******************************************************************************** ******************************************************************************** ** ** ** Version 1.4.4.363 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Graphical user interface ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ ------------------------ Bug Fixes ------------------------ * Fixes crash when selecting node with different NodeClass. UaModeler crashed if the parent of a node was changed and second node with different NodeClass was selected before the document was confirmed by clicking 'OK' button. This has been fixed. * Fixes crash when adding a child to BaseObjectType. The children tab was enabled for BaseObjectType. After adding a child in this tab and confirming the document with "OK", UaModeler crashed. The children tab is disabled now. * Fixes displaying of dead nodes. If a child of an ObjectType has been deleted, the information model tree view has not been updated for instances of such type. As a result, non-selectable and unremovable nodes have been displayed. The model has been updated correctly, this was only a display issue. The tree view is updated correctly now. * Fixes displaying ModellingRules. The ModellingRule OptionalPlaceholder has been displayed as mandatory for instances. This was only a display issue. The ModellingRule is displayed correctly now. * Minor bug fixes. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Modeling ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ * Fixes crash when modifying structure. UaModeler crashed if a structured DataType that does not have encoding nodes had been modified. Structured DataTypes without encoding nodes cannot be created using UaModeler. So this crash could only occur for models that have been created or modified outside UaModeler. The existence of encoding nodes is checked now. If they do not exist, an error message is traced. * Use BrowseNames in dictionaries. In binary and XML dictionaries, the SymbolicName has been used for type names. Now the BrowseName is used for the type names to support type names with special characters. * Fixes adding unexpected reference. For nested ObjectTypes with a depth of at least four, additional references to instance declarations have been added unexpectedly when changing an instance declaration node of a type that is used by the nested type. The references to the instance declaration nodes are not added now. * Fixes adding additional references. If a child of an instance declaration with ModellingRule Optional has been referenced by another instance declaration of the same type with an additional reference, this additional references has not been added to an instance of the type if the optional child was added after the instance was created. The additional reference is create at the instance now. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Code Generation ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ General ------------------------ * Quote handling for BrowseNames. If a BrowseName of a node contains a quote, the generated code did not mask out this quote. As a result, the generated code did not compile. Quotes are now masked for BrowseNames. ------------------------ C++ ------------------------ * Create event fields before initializing. * Fixes include of instance factories. When having an ObjectType where the TypeDefinition of a child is located in a different model than the standard model of the OPC Foundation, in some cases, the generated code did not compile if instances of the type are part of the model, because of a missing include to the instance factory. The include to the instance factory is generated now. * Fixes of include of NodeManager for VariablesTypes. For VariableTypes having grandchildren that are using types from a different model than the standard model of the OPC Foundation, in some cases the generated code did not compile, because of a missing include to the NodeManager defining the used type. The include is added now. ------------------------ Ansi C ------------------------ * Use of string literals instead of string table entries for browsename.h. * Support of parents with ReferenceType Organizes. * Do not generate code for a value of a structured DataTypes without fields. The generated code did not compile if a structured DataType without fields was used for a Variable. The generated code compiles now. * Support identifier strings with backslashes. * Add argument name and argument description to string table. * Set EventNotifier only if events are enabled in the SDK. * Fixes SetEventField function for arrays of structured DataTypes. Because of a wrong check of the array length, the server application crashed when calling the generated SetEventFiels function for an event field having a structured DataType and ValueRank 1. The check has been fixed. ------------------------ .NET ------------------------ * Add templates for SDK 2.5.0 * The generated code did not compile for ObjectTypes having UA Methods and at least two super types having UA Methods, too. The generated code compiles now for these types. ******************************************************************************** ******************************************************************************** ******************************************************************************** ** ** ** Version 1.4.3.352 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Graphical user interface ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ * Remember dialog size in node selection dialog. ------------------------ Bug Fixes ------------------------ * Fixes usage of standard model settings after changing the TemplateSet If the TemplateSet of a project has been changed using the wizard of "Project -> Project Settings...", the default settings defined of the model have not been filled in correctly. This error only occured for the standard models for DI and PLCopen when changing the TemplateSet to a C++ TemplateSet. The standard settings are used now. * Disable generating of standard models after changing the TemplateSet. If the DI or PLCopen model was selected for generating, the model remained selected for generating after changing the TemplateSet to C++ or Ansi C. As a result, nonexecutable code was created, since DI and PLCopen code is already available in C++ and Ansi C SDK. This error could only occur when changing the TemplateSet from .NET or Modeling Only to C++ or ANSI C. The code generation setting for the DI and PLCopen model is disabled after changing to C++ or ANSI C now. * Update NamespaceUri property of DataType dictionaries. The DataType, Value and ValueRank attribute of the NamespaceUri property of DataType dictionaries are updated automatically when importing a model. Older versions of UaModeler and other tools did not set the attributes correctly. * Fixes for loading projects. When laoding projects, in some cases the selected TemplateSet could not be found because of an error when reading the project file. As a result the TemplateSet had to be selected again. This has been fixed. * Minor bugfixes ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Modeling ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ * Fixes creating additional references. Not all references that are defined in the References tab of type or InstanceDeclaration documents targeting nodes in the scope of the same type have been added when creating instances of the type. Now, all references that are defined at the type are created when creating instances. * Fixes crash when saving models with structured DataTypes without fields. UaModeler crashed when saving models that contain structured DataType nodes without a structure definition. This crash did not occur for models that have been created using UaModeler. The existence of structure definitions is checked now when saving a model. * Update DataType of overrided nodes. If the DataType of a Variable is changed, the DataType of overridden nodes has not been updated. After updating the DataType of a Variable, the DataTypes of overridden nodes are now checked and updated if necessary. * Fixes selcting optional children of InstanceDeclarations. The selction of optional children for InstanceDeclarations did not work correctly. Not all optional children of the TypeDefinition could be selected. The selection dialog for optional children is correct for InstanceDeclarations now. * Fixes crashs when deleting nodes. If a node having Organizes references to type nodes was deleted via the context menu of the node, the node and the type node had been deleted. The deletion of the type node could have unwanted side effects resulting in crashs of the UaModeler. If a node is deleted via the context menu, type nodes are filtered now. * Fixes crash if TypeDefinition could not be found. UaModeler could crash if the TypeDefinition of a Variable node could not be found. This could only occur for models that are using types from an unavailable namespace. The most probable reason for this behavior is manually modifying a project file of UaModeler. The existence of the TypeDefinition node is checked now. * Distinguish between NodeId Identifier types. For nodes with string identifiers that can be interpreted as numerics (like "123") the node selection dialogs could return the wrong node. The Identifier type of the NodeId is taken into account now. * Minor bug fixes. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Code Generation ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ General ------------------------ ------------------------ C++ ------------------------ * Add Organizes references from children of ObjectTypes to other nodes. Organizes references from InstanceDeclarations to other nodes have not been created in the createTypes method for ObjectTypes and in the constructors of the type. These references have been missing at the type nodes and when creating instances in the code. The Organizes references are added now. * Fixes includes if types from other models are used. If TypeDefinitions, DataTypes and ReferenceTypes from other models than the current model and the OPC Foundation standard model are used, includes for the respective NodeManager, InstanceFactory or DataType include files could be missing. The generated code did not compile in these cases. The includes are added now. * Fixes DataType for Variables defined at Variables. If a Variable is defined at another Variable using a DataType from other models than the current model and the OPC Foundation standard model, the generated code did not compile. The generated code compiles now. * Generate descriptions for InstanceDeclarations. The description attribute was not set for InstanceDeclarations. The description attribute is set now. * Use of SymbolicNames for Enumerations. The DisplayName of EnumValues has been used instead of the SymbolicName. As a result, uncompilabe code was generated if the DisplayName of an EnumValue contained special characters like a space or '*'. The SymbolicName is used now. * Constructor for Alarms defined at Objects. If an instance of an AlaramType is defined at an InstanceDeclaration whose NodeClass is Object, the constructor of the AlarmType was not used correctly. As a result, the generated code did not compile. The constructor is called correctly now. * Fixes include for DataType of Method arguments. If a structured DataType defined in the standard namespace of the OPC Foundation is used as a method argument, the generated code did not compile because of an invalid include for the DataType. The include is correct now. * Add support of DataType Number. If the DataType Number was used for Variables, the generated code did not compile. This feature is supported now. * Add const getters. There are new methods to return the child nodes of ObjectTypes and VariableTypes using the const qualifier. * Fixes some warnings in the generated code. ------------------------ Ansi C ------------------------ * Breaking change: Method stubs for methods defined at Objects. The name and location of generated method stubs changed for Methods defined at Objects which are children of a type. The method name changed from _ to ___. The location of the method stub changes from the namespace global method implementation file to the type specific method implementation file. This beaking change only has an effect if methods are defined at Objects. After updating and regenerating the code, compiler errors will occur. To resolve them, you need to cut the old method implemetation and paste it to the new location. * Add templates for SDK 1.6. * Cast EnumValues. In the generated code for EnumValues a cast to OpcUa_Void** was missing resulting in uncompilabe code for some compilers. The cast has been added. * Avoid double creation of children. If a child is referenced multiple times with hierarchical references, the child was created multiple times in the generated code. The provider start-up failed when adding the node for the second time. There is a check now for already created nodes. * Use default values for enumerations defined in DI model. If enumerations defined in the DI standard models are used for Variables, incompilable code for the default value of the Variable was generated. The default value is correct now. * Include for DI model. If nodes from the DI model are used, an include was missing. The generated code did not compile. The include is added now. * Support for EnumValueType. Add support of arrays of EnumValueType for Variables, e.g. for the EnumValues property of the MultiStateValueDiscreteType. * Minor bug fixes. ------------------------ .NET ------------------------ * Using of other models. If a model is using DataTypes from another model than itself or the standard OPC model, the reference to the model of the DataType was missing. This error resulted in incompilable code. This error did not occur if ObjectTypes or VariableTypes have been used from the other model, too. The .NET namespace of the DataType is added now. * Fixes identifier names. The identifier names of NodeIds for historical configuration objects and for instances that are hierarchically referenced twice have not been correct in the generated code. As a result, the generated code could have the same C# variables for different NodeIds resulting in uncompilabe code. The identifier names are fixed now. * Minor bug fixes. ******************************************************************************** ******************************************************************************** ******************************************************************************** ** ** ** Version 1.4.2.342 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Modeling ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ * Fixed support of fully-inherited instance declaration hierarchy. If an additional child was added to an overridden node of an ObjectType or VariableType without updating the TypeDefinition of the overridden node, the additional child was not added when creating instances of the type. This has been fixed. * Fixed crash when moving a structure to another namespace. If a structured DataType was moved to another model and a Variable using the DataType already existed, there have been scenarios leading to a crash of UaModeler. Structured DataTyped can be moved to other models now without a crash. * Fixes setting NamespaceIndex of BrowseNames of Encoding nodes. If a structured DataType has been moved to another model, the BrowseNames of the encoding nodes have been updated although these BrowseNames should not be updated. The BrowseNames of the encoding nodes are now still correct after moving a structured DataType to another model. The incorrect BrowseNames of the encoding nodes are now corrected when a model is loaded. * Minor bugfixes. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Code Generation ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ General ------------------------ * Fixes selecting a model for code generation. After the template set changed from C++ to .NET, the DI and the PLCopen models could not be selected for code gernation. .NET code can be generated for DI and PLCopen models now. ------------------------ C++ ------------------------ * Fixes for using enumerations defined in another namespace. In some scenarios the auto-generated code did not compile if enumerations defined in other namespaces have been used for variables as children of ObjectTypes of VariableTypes. This has been fixed. ------------------------ Ansi C ------------------------ * Additional checks whether alloc succeeded * Minor changes in formating of the auto-generated code * Shallow copy of NodeIds in RegisterNodes function ******************************************************************************** ******************************************************************************** ******************************************************************************** ** ** ** Version 1.4.1.329 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Graphical user interface ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ * Adds a check box for (de)selecting all models in Show/Hide Models dialog. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Modeling ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ * Fixes enabling of children view. If a node of the standard namespace (e.g. Objects folder) was selected, the children view was disabled. Because of that reason, children could only be added via the context menu of the node and not via the children view. This has been fixed. * Fixes default value of union switch field. The default value for a switch field of a value of a union DataType was -1 instead of 0. If a value of the union DataType was created and not modified, the (null) value was not stored correctly. The default switch value is 0 now. * Fixes clearing values after modifications of structured DataTypes. If a value of a structured DataType has been created and the definition of the DataType changed, not all values of this DataType have been cleared. As a result, UaModeler could crash if the variable containg the value of the structured DataType is selected when saving the model. This bug only occurred for nested structures if a definition of a child changed. All values of structured DataTypes get cleared now if the definition or the definition of a child changes. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Code Generation ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ ------------------------ C++ ------------------------ * Add new templates for Unified Automation ANSI C++ SDK 1.5.0 supporting - Union DataTypes - Structured DataTypes with optional fields - OptionSet DataTypes - Methods for setting NodeAccessInfo * Support of StatusCode BadTooManyArguments * Support of ArrayDimensions * Create default values for ValueRank > 1 * Support of EnumStrings and EnumValues as properties of DiscreteItemTypes ------------------------ Ansi C ------------------------ * Add error checks of memory allocations. ------------------------ Bug Fixes ------------------------ ------------------------ All template sets ------------------------ * Fixes string identifiers containing quotation marks. For identifiers containing an '"' the generated constant did not mask the '"', resulting in non compilable code. This has been fixed. ------------------------ C++ ------------------------ * Minor bugfixes. ------------------------ Ansi C ------------------------ * Fixes code for structures without fields. The generated code did not compile if a structured DataType was defined without having a field and a subtype of this structured DataType without having a field, too. The generated code compiles now. ******************************************************************************** ******************************************************************************** ******************************************************************************** ** ** ** Version 1.4.0.315 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Graphical user interface ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ * Add Cancel button to stop code generation. * Add project type for modeling only. * Show folder icon for subtypes of FolderType. ------------------------ Bug Fixes ------------------------ * Fixes deleting of the first output argument of a method. It was not possible to delete the first output argument of a method. This has fixed. * Fixes deleting encoding nodes. If a structured DataType that has a subtype was deleted via context menu, the encoding nodes of the subtype have not been deleted. This has been fixed. * Fixes structure fields with DataType String in DataTypeDictionaries. The DataType of fields with OPC UA DataType String has been mapped to "opc:String" instead of "opc:CharArray" in the DataTypeDictionary for binary encoding. As a result clients that use the dictionary to evaluate the content of values of structured DataTypes could not interpret all values correctly. This has been fixed. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Modeling ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ * Support of Union DataTypes. * Support of structured DataTypes with optional fields. * Support of OptionSet DataTypes. * Support of access levels StatusWrite and TimeStampWrite. * Create DataTypeDictionary for XML Schema. * Import and Export of Extenions defined for a NodeSet2 XML file. * Add option to create new NodeIds for an instance and its children. ------------------------ Bug Fixes ------------------------ * Fixes adding nodes to References tabs. If a node has been hierrarchically referenced twice, the node has always been displayed in the Children tab. For that reason the additional hierarchical reference could not be deleted. The references are displayed in the correct tab now. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Code Generation ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ ------------------------ Ansi C ------------------------ * Support of Union DataTypes. * Support of structured DataTypes with optional fields. * Support of OptionSet DataTypes. * Support of access levels StatusWrite and TimeStampWrite. ------------------------ .NET ------------------------ * Support of Union DataTypes. * Support of structured DataTypes with optional fields. * Support of OptionSet DataTypes. * Automatic export of NodeSet2 XML model file to codegeneration target. * Support of abstract DataTypes Number, Integer, UInteger and Enumeration. * Partial classes for structured DataTypes. The generated classes for structures DataTypes are using the keyword partial now. This allows the user to added own code without modifying the generated code. ------------------------ Bug Fixes ------------------------ ------------------------ Ansi C ------------------------ * Minor bug fixes. ------------------------ C++ ------------------------ * Generate code for non-hierarchical references. The generated code for non-hierarchical references from ObjectType nodes to other nodes was missing in the generated code. Non-hierarchical references are added now. * Minor bug fixes. ------------------------ .NET ------------------------ * Minor bug fixes. ******************************************************************************** ******************************************************************************** ** ** ** Version 1.3.5.298 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Code Generation ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ ------------------------ Ansi C ------------------------ * Add new templates for Unified Automation ANSI C SDK 1.5.1. ------------------------ Bug Fixes ------------------------ ------------------------ .NET ------------------------ * Add suitable error message if code for invalid structured DataTypes is generated. * Minor bug fixes. ------------------------ C++ ------------------------ * Add suitable error message if code for invalid structured DataTypes is generated. * Fixes generating code for EventTypes. If a value for an instance declaration of an EventType was set, the cpp file for the EventType has not been generated. All files for EventTypes are auto- generated now. * Minor bug fixes. ******************************************************************************** ******************************************************************************** ** ** ** Version 1.3.4.293 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- Graphical user interface ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ * Fixes completer for EngineeringUnits The completer for entering EngineeringUnits has been disabled. The completer is enabled again now. * Fixes static tree views after model load. If a model has been added to an existing project, the static tree views, like the DataType selection tree view, have not been updated. So nodes of the new model could not be selected. This has been fixed. * Fixes saving project. The project file has been saved after loading the project. The project file is now saved only after changes are made. * Fixes importing XML files with LastModified attribute set. Some XML files provided by the OPC Foundation contain the LastModified attribute in a format which caused the XML schema validator of the UaModeler to report an error although the content of the attribute was valid. This has been fixed. * Minor Bugfixes. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Modelling ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ * Select new node. After a Type or instance is added, the new node will be selected now. * Parent browse keeps context The browser to select the parent of a node keeps the tree view now. * Implement '+' operator for Methods. If a Method is added to a type using the '+' action, the Method including all arguments is copied. ------------------------ Bug Fixes ------------------------ * Fixes DataTypeDictionary The content of DataTypeDictionaries has been wrong if structured DataTypes have been defined having fields with DataType ExpandedNodeId, DataValue, DiagnosticInfo, BaseDataType or Structure. This bug has been fixed. * Fixes value of DataTypeDescription after rename If a structured DataType has been renamed, the value of the DataTypeDescription nodes have not been updated to the new name. This has been fixed. * Fixes NamespaceUri of dictionary. If the NamespaceUri of a model that contains a DataTypeDictionary has been updated, the value of the NamespaceUri property of the dictionary has not been updated. The value is updated to the new URI now. * Fixes adding nodes. If a projects contained more than one user defined model and children have been added to a Type belonging to a model that is not the last model in the project, the new children have been added to last model and not to model of the Type. This has been fixed. * Modifying simple DataType. It was not possible to modify custom simple DataTypes like a subtype of String. This has been fixed. * Aliases for Types. If targets of References have been specified as aliases, the XML importer has not been able to resolve them. This issue only occurred when XML files that have been created by other tools than the UaModeler have been imported. This has been fixed. * Editing of DataTypes of grandchildren If a Variable has been manually added to a child of an ObjectType or VariableType, the DataType of this Variable could not be modified. This has been fixed. * Fixes usage of DataTypes of other models If a DataType has been used in a model that is defined in another model that has not been activated for code generation, the generated code did not compile. DataTypes of other models can be used now even if these models are not activated for code generation. * Fixes deletion of children. Deleting an instance node with children resulted in zombie elements if some of the children have been added to the instance manually. This has been fixed. * Remove redundant xmlns attributes. The exported XML NodeSet2.xml file contained redundant xmlns attributes if values of custom structured DataTypes or own Extensions had been added manually. This redundant information is no longer auto generated. * Minor Bugfixes ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Code Generation ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ ------------------------ Ansi C ------------------------ * Add hooks for provider Initialize and Cleanup. Add new file with functions BeforeInitialize, AfterInitialize, BeforeCleanup and AfterCleanup. The functions defined in this file are called by the provider. This file is not overwritten on code generation. ------------------------ .NET Server ------------------------ * Add trial license file for SDK 2.3. The generated code threw an exception if it was used with .NET SDK 2.3 since the format of the license file has been changed. The license file has been updated for the new schema. If .NET SDK 2.1 or 2.2 is used, the license file has to be replaced by a valid one or the license file should not be added. ------------------------ Bug Fixes ------------------------ ------------------------ C++ Server ------------------------ * Fixes double definition of identifiers. If a component of a type was referenced twice using hierarchical references, the identifier for the component was created twice and with an unexpected name. The double definition leaded to compiler warnings. Because of the unexpected name of the identifier in some cases nodes could not be created. This error has been fixes. * Minor bug fixes. ------------------------ .NET Server ------------------------ * Fixes Methods with arrays of ByteString The generated code did not compile for OPC UA Methods having arguments with ValueRank 1 and DataType ByteString. The templates for code generation have been fixed. * Fixes Methods with string arguments. There was a bug for Method arguments with DataType String. If the client passed a Null Variant, which is allowed by the OPC UA Specification, the argument was converted to "(null)". The implementation method has been called with this argument. A check has been added to call the implementation method with null instead of "(null)" if a Null Variant was passed. * Fixes Model class for ObjectTypes having two children. There was a bug for ObjectTypes having two Variables with a complex TypeDefinition as children. If the ValueRank of the second child has been 1, the Model class of the first child was used. The templates for code generation have been fixed. * Fixes Type of child with ValueRank 1. The Type for a child has been wrong in the Model class if the NodeClass of the child has been Variable, TypeDefinition of the child has been complex and the ValueRank has been 1. In this case, the Type of the child has been an Array of the ModelClass instead of the ModelClass as scalar. This has been fixed. * Fixes Values of VariableType with ValueRank 1. For VariableTypes with an abstract DataType and ValueRank 1 the Type of the Value of the VariableType has been generated as "T" instead of "T[]". This has been fixed. * Fix for BrowseNames. If a model contained Nodes with the same symbolic name but different browse names, the generated code did not compile. This has been fixed. * Remove "abstract" keyword from Model classes. If a Type is abstract, the generated Model classes have been defined as abstract. In some OPC UA companion specifications the Types are defined containing children with an abstract TypeDefinition. If one of these Types has been used for LinkModelToNode, LinkModelToNode threw an exception, since the ModelMapper cannot create an instance of an abstract class. The keyword has been removed from the generated code. * Fix for structured DataTypes with fields with DataType Structure. If the DataType of a field of a structured DataType has been set to Structure, the auto generated code did not compile. This has been fixed. * Some more minor bug fixes. ******************************************************************************** ******************************************************************************** ** ** ** Version 1.3.3.285 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Modelling ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ * Fixed crash when having references where source and target are the same node. UaModeler crashed when clicking at a node that had a reference to itself. This crash has been fixed. * Fixed crash when creating a value for a structured DataType that does not have fields. This crash occurred if a value having a structured DataType was created and the DataType or one of its parent types did not have fields. This has been fixed. * Fixed crash when deleting a DataType. This crash occurred if a Variable contained a value having a structured DataType and the DataType node was deleted. The crash occurred while saving the model. Deleting a DataType node clears all values of this DataType now. This fixes the crash. * Fixed crash when having loops with HasSubType. UaModeler crashed when there where loops using the HasSubType reference. This crash could only occur when importing XML files created by other tools than the UaModeler, containing such loops. * Fixed crash when using invalid DataTypes for fields. UaModeler crashed when the DataTypes for structure fields were invalid, e.g. an ObjectTypeId was used instead of a DataTypeId. This crash could only occur when importing XML files created by other tools than the UaModeler which used these invalid DataTypeIds. * Fixed saving of method arguments. The namespace index of a DataType of an argument was not saved correctly if the namespace index of the argument was neither 0 nor the namespace index of the current model, and if there was no further relation to the namespace of the DataType, like a reference to a node from this namespace or using a DataType of this namespace as DataType attribute for a Variable. * Fixed context menu of UA nodes. If an existing project was loaded by UaModeler, the Delete action was not shown in the context menu of UA nodes even if it was allowed to delete the node. The context menu of UA nodes is fixed now. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Code Generation ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ ------------------------ C++ Server ------------------------ * Support for using types from other custom models. If a model is using types from another custom model, the model must be selected for code generation, too. ------------------------ Ansi C ------------------------ * Support of custom ReferenceTypes. * Support of custom DataTypes. Subtypes built-in simple DataTypes like ByteString or Int32 are supported now. ------------------------ Bug Fixes ------------------------ ------------------------ C++ Server ------------------------ * Created all descriptions for instance nodes. * Fixed using subtypes of DateTime in structures. * Fixed using ReferenceTypes that are defined in other custom models. * Adding super type nodes of custom VariableTypes. The createTypes method of a VariableType did not call the createTypes method of its super type. If this method was not called somewhere else in the code, the type nodes of the custom VariableType were not added, since the super type node was not existent. The createTypes method of a VariableType calls the createTypes method of its super type now. ------------------------ Ansi C ------------------------ * Fixed code generation for multiple models. If more than one model was selected for code generation, the generated code did not compile. ------------------------ .NET Server ------------------------ * Fixed blank strings for BrowseNames that are outside of the current namespace in UpdateEvent method. If an EventType has a child with a BrowseName that has a different BrowseName namespace index than the namespace index of the NodeId of the EventType, empty strings have been generated. A consequence of these empty strings were compiler errors. Now the BrowseNames are generated correctly. ******************************************************************************** ******************************************************************************** ** ** ** Version 1.3.2.273 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Graphical user interface ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ * Fixed highlighting of standard models. In version 1.3.1 all nodes have been highlighted in the address space tree view. Now only user defined nodes are highlighted. * Fixed AddModel dialog. If a model was added to an existing project, the variables from the dialog have not been saved. Now the variables from the dialog will be saved. * Fixed licensing the UaModeler running on linux. In some cases the license dialog did not work correctly due to wrong write permissions, without prompting a warning. The dialog will be started with administrator permissions now. If the license cannot be imported anyway, a warning will be prompted. * Fixed clearing project. The project was cleared when a new project file has been selected even if one of the models was modified. A dialog will be prompted to enable saving or rejecting the changes. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Modelling ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ * Fixed namespace in type dictionaries. The namespaces in type dictionaries were not used correctly. If structure fields with data types XmlElement, NodeId, ExpandedNodeId, StatusCode, DiagnosticInfo, LocalizedText, QualifiedName, ExtensionObject, DataValue were used, there could be problems for generic clients. Generic clients based on Unified Automation Client SDK did not have problems with type dictionaries that were generated with the UaModeler 1.3.1. * Fixed crash when having variables with structured DataTypes. The crash occurred when saving a model that contained at least one variable having a structured DataType with a field which specifies an array of another structured DataType. This bug when saving the binary file is fixed now. * Fixed moving nodes to other model. If a node was moved to another model, only one model was saved. Now all affected models will be saved. * Fixes DataType names in type dictionaries. In type dictionaries the names of types and fields have been used instead of the symbolic names. No the symbolic names are used. This only has an effect if names with invalid characters are used such as whitespace or parenthesis. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Code Generation ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ ------------------------ Ansi C ------------------------ Support for UnifiedAutomation Ansi C SDK 1.4 * Supports new provider interface. * Supports method handling for Methods having arguments with ValueRank 1. ------------------------ C++ ------------------------ * Added additional methods to Event classes to set the status code for an Event field. * Added static addTypes method to register structured DataTypes at the stack. This method can be called several times but the structured DataTypes are registered only once. * Added option to use the NodeIds from the model instead of creating string NodeIds for instances. ------------------------ Bug Fixes ------------------------ ------------------------ All Languages ------------------------ * Fixed crash for structured DataTypes without fields. There was a crash when generating code for structured DataTypes without having fields. This crash has been fixed. ------------------------ C++ ------------------------ * Use UaDataValues class instead of UaDataValueArray for getters and setters. There have been compiler errors if Variables with DataType DataValue and ValueRank 1 have been used. * Remove member variables for EventTypes. Unused member variables have been generated to EventType classes. ------------------------ .NET Server ------------------------ * Fixed naming of Method implementing classes The names of the Method implementing classes were not correct if the ObjectType name did not end with "Type". In this case method dispatching did not work. The naming of the implementation classes is fixed. ******************************************************************************** ******************************************************************************** ** ** ** Version 1.3.1.264 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Graphical user interface ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ * Invalid models are not removed from the project automatically. A dialog is added to ask the user whether the model should be removed or the loading of the project should be cancelled. ------------------------ Bug Fixes ------------------------ * Fixes License Check There was a problem with the codec of the imported license file. E.g. the license status was not updated if the UserName contained Umlauts. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Modelling ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ * Updates DI model to Devices 1.01 Companion Specification * Adds tool tips for editing EUInformation ------------------------ Bug Fixes ------------------------ * Fixes crash for structured DataTypes without having fields. The crash occurred if a subtype of a structured DataType that does not have fields was created and the new structured DataType does not have fields, too. * Fixes crash when importing model with incomplete reference. The crash occurred if an XML model was imported that contains a DataType with an incomplete HasSubType reference. The problem only occurred for manually edited XML models or model that are created with other tools than the UaModeler. * Fixes crash when selecting variables with DataType EUInformation or Range. * Fixes importing of invalid internal references. There was a bug in creating models stored in the internal binary format. This bug is fixed and the importer is updated to ignore the invalid internal references contained in the model. * Fixes changing NamespaceURI of model. * Fixes NamespaceIndex of BrowseName of DataTypeEncoding nodes. This bug only occurred when moving a structured DataType to another model. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Code Generation ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ ------------------------ C++ ------------------------ * Support for UnifiedAutomation C++ SDK v1.4 Server - Adds implementation class for NodeManager - Adds Constructors needed for XML importer - Adds classes for structured DataTypes * Support for UnifiedAutomation C++ SDK v1.4 Client - Adds classes for structured DataTypes ------------------------ Bug Fixes ------------------------ ------------------------ Ansi C ------------------------ * CMake contains SDK paths now. The generated provider doesn't have to be in a sub-folder of the providers folder of the SDK. * Fixes memory leak for providers with more than one Model. * Use suitable sizes for the hash tables of the address space. ******************************************************************************** ******************************************************************************** ******************************************************************************** ** ** ** Version 1.3.0.242 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Graphical user interface ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ * GUI - Automatic check of imported information models - Auto-restore functionality for modified models - Add license dialog - Opening UaModeler after double click on project file for Windows * Modelling - Support for creating values of user defined structures - Support for editing model filenames and namespace uris - Support for sorting structure elements - Enhanced selection of UA types - Support for modifying node ids of DataType nodes * Code Generation - Support for UnifiedAutomation .NET Server SDK v2.1 - Add call-context to generated methods for ANSI C - Option for generating author name and date to the file headers - Add options for generating / overwriting files ------------------------ Bug Fixes ------------------------ * Fix exporting information models to XML ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Code Generation ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ General ------------------------ * Option for generating author name and date to the file headers * Add options for generating / overwriting files ------------------------ Ansi C ------------------------ * Update to template version 1.3.0 - Add call-context to generated methods ------------------------ .NET ------------------------ * Initial version of .NET Server templates - Support for UnifiedAutomation .NET Server SDK v2.1 - Generate classes for types - Generate classes for method handling - Generate default application ******************************************************************************** ******************************************************************************** ** ** ** Version 1.2.0.214 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Graphical user interface ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ * Support for user defined Enumerations * Support for user defined complex DataTypes * Selection dialog for optional children * Support for all NodeId types * Binary format for storing information models * Exporting models to OPC UA standard format (http://opcfoundation.org/UA/2011/03/UANodeSet.xsd) * Consistency Check for models * Removing of unreferenced nodes possible ------------------------ Bug Fixes ------------------------ * Fix usage of optional children of instance declarations * Fix default DataTypes of VariableTypes * Fix setting ValueRank of Instances ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Code Generation ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ C++ ------------------------ * Update template version 1.3.1 - Support for UnifiedAutomation C++ SDK v1.3.1 and C++ SDK v1.3.2 - Array Support for Variables - Minor Bugfixes ------------------------ Ansi C ------------------------ * Update to template version 1.3.0 - Support for UnifiedAutomation ANSI C SDK v1.3 - Generate String Tables - Support of String NodeIds - Advance Method calls - Support for complex DataTypes ------------------------ .NET ------------------------ * Initial version of .NET client templates - Support for UnifiedAutomation .NET Client SDK v2.0 - Generate Identifiers - Generate DataType methods ******************************************************************************** ******************************************************************************** ** ** ** Version 1.1.0.184 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Graphical user interface ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ * Support user defined enumerated data types * Support user defined reference types * Add documentation of the UaModeler * Add "Additional Attributes" tab to set additional attributes of a node * Add new format to save information models * Allow the user to filter the information model for namespaces * Allow the user to set ranges for the node ids of new nodes ------------------------ Bug Fixes ------------------------ * Fix setting default values for type definitions and data types * Fix setting type definitions and data types of overriding nodes * Fix arranging of hierarchical referenced nodes to Children and References tab ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Code Generation ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ C++ ------------------------ * Update to template version 1.3.1 - Add enum support - Add reference type support ------------------------ Ansi C ------------------------ * Update to template version 1.0.2 - Add defines for identifiers ******************************************************************************** ******************************************************************************** ** ** ** Version 1.0.1.x ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Graphical user interface ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ * Highlight user defined nodes in tree view * Assign colors for models in graphics view ------------------------ Bug Fixes ------------------------ * Fix deleting instance declarations - modify all instances of the modified type * Fix delete types - set the type definition of all instances of the deleted type to the super type of the deleted type ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Code Generation ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ C++ ------------------------ * Update to template version 1.0.1 - Fix double definition in user defined condition types ------------------------ Ansi C ------------------------ * Update to template version 1.0.1 - Set provider name correctly - Updated initialization of output arguments of methods ******************************************************************************** ******************************************************************************** ** ** ** Version 1.0.0.550 ** ** ** ******************************************************************************** ******************************************************************************** Initial release