******************************************************************************** ******************************************************************************** ** ** ** Version 2.4.0.361 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaBase ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ Generic structured DataType support. Adds a class for creating structured DataTypes at runtime. This class registers the new structured DataType at the OPC UA communication stack. Adds a class for setting values where the fields of the structure can be accessed by name or by index. Timestamp in trace file configurable. The format of the timestamp in the trace files is now configurable. A setting has been added to configure the format. Certificate KeySize 4096 is now supported. SecurityProfile Basic256Sha256 is now supported. Auto clean-up of unused secure channels. Adds MaxChannelCount. ------------------------ Bug Fixes ------------------------ Creating password protected certificates. The property PrivateKeyPassword in CreateCertificateSettings has been ignored when creating a certificate. The password is used to protect the private part of the certificate now. Using KeySize from InstallationSettings. The CertificateKeyLength and the CertificateHashAlgorithm from InstallationSettings have been ignored when an application has been started with commandline argument '/install'. Other default values have been used instead. Now the values form the configuration are used. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaServer ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ Generic structured DataType support. Adds the required nodes to the addresssapce, adds a datatype dictionary and registers the DataTypes to the OPC UA communication stack. Global Discovery Server support. Implements the information model for Push Certificate management. Updates the OPC foundation address space to specification 1.03. ResendData support. Implements the ResendData method specified at the Server object to resend the values of all data monitored items in a Subscription. Auto clean-up of unused Sessions. Adds a toolkit class for FileDirectoryType. Adds a hook to implement HistoryReadEvent at Server object. ------------------------ Bug Fixes ------------------------ Fixes value of ArrayDimensions. The ArrayDimensions attribute of Variable nodes has been an empty array of UInt32. Now the ArrayDimensions attribute is a DataValue bit StatusCode BadAttributeIdInvalid. Fixes adding references multiple times. If a node is referenced twice by another node, the references have been added twice, resulting in four references from one node to the other node. Adding the references has been fixed. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaClient ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ Generic structured DataType support. Access to the datatype dictionaries of the server and browse the addressspace to get required information about the structured DataTypes defined by the server. Global Discovery Server (GDS) support. Adds a helper class for calling methods defined by the Pull Certificate Management information model at a GDS. Adds toolkit classes for FileType. Addy two toolkit classes to wrap the OPC UA FileType. One class maps the signature of the OPC UA type directly. The other class is a subtype of Stream and can be used like any other Stream class of the .NET framework. Adds toolkit class for FileDirectoryType. Adds a toolkit class to wrap OPC UA FileDirectoryType. ------------------------ Bug Fixes ------------------------ Fixes calculation of publishes. Reworks the calculation of required PublishRequests that a client sends to the server when a Subscription is created. If more than one Subscription has been created for a Session, more PublishRequests than needed have been sent to the server. Fixes asynchronous connect. Dns.GetHostAddresses has been used in the BeginConnect method instead of Dns.BeginGetHostAddresses. If invalid hostnames have been used for the asynchronous Connect method, the method blocked. This has been fixed now. ******************************************************************************** ******************************************************************************** ** ** ** Version 2.3.3.343 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaBase ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ Network Latency. The TCP network layer sends TCP acknowledge messages trying to ack multiple packages at once. This is known as the Nagle algorithm. In case of OPC UA communication with parallel asynchronous requests, especially with short message sizes, the Nagle algorithm leads to sporadic delays in the communication. To optimize the communication for short latency, the UA application now switches OFF the Nagle algorithm to achieve more predictable response time. Backward compatibility for .NET Framework. A .NET system function call was used that was introduced in an update of .NET framework 3.5. The client or server application could crash if used on this .NET framework without the latest service pack being installed. The fix now uses the legacy system function call and thus runs on legacy .NET framework, but also runs on the latest service pack because of backward compatibility within the .NET framework. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaServer ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ Events for Server object. When a client subscribed for events at the top level hierarchy, the Server object, no valid events were fired. Only for objects in the lower event hierarchy, the events have been sent correctly. This bug only affected version 2.3.2. The fix now allows to subscribe for all events by subscribing to the Server object. Log message clean-up Logs in TypeManager with little information have been removed to reduce start-up time when tracing is active. ******************************************************************************** ******************************************************************************** ** ** ** Version 2.3.2.340 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaBase ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ Add Variant.ToVariantArray(). Advanced error tracing for full thread pool queues. ------------------------ Bug Fixes ------------------------ Fixes type check for Matrix. Checking the DataType of Matrix elements within a Variant did not work for structured DataTypes. As a result of this bug a server always returned a bad StatusCode if a client called a UA Method having an input argument with ValueRank > 1 and a Structure as DataType. This bug has been fixed. Minor bug fixes. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaServer ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ Use a random number as initial subscription id. This avoids accidential transfers of subscriptions if multiple clients are connected. Do not allow transfering subscriptions from or to sessions with UserTokenType Anonymous. This avoids transferring subscriptions to unauthorized clients. ******************************************************************************** ******************************************************************************** ** ** ** Version 2.3.1.334 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaServer ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ Support GetMonitoredItems method of the Server object. ------------------------ Bug Fixes ------------------------ Fixes checking DataChangeTrigger for MonitoredItems. The was a bug if the DataChangeTrigger was set to StatusValueTimestamp and Deadband filter was set to another value than None for a MonitoredItem. This bug has been fixed. Fixes nested WhereClauses. There was a bug if a client specified nested WhereClauses for EventMonitoredItems. In this case the evaluation of the WhereClauses returned BadFilterOperandInvalid although the WhereClause was valid. This bug has been fixed. Fixes double callback on timeout. In some timeout scenarios callbacks where called twice for asynchronous operations. This problem only occured for asynchronous operations that timed out. This bug has been fixed. ******************************************************************************** ******************************************************************************** ** ** ** Version 2.3.0.330 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaBase ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Breaking Change ------------------------ Updates license format. The format of the UnifiedAutomation license has changed. You need to replace the license file in your application with a new one. Otherwise an exception will be thrown. ------------------------ Features ------------------------ Adds option to create the trace in UTC time or local time. Adds additional documentation for DataTypes defined by the OPC foundation. Adds option to suppress certificate validation steps. ------------------------ Bug Fixes ------------------------ Fixes return code of certificate checks. After a clarification in the OPC UA specification the return code for failed certificate checks is always set to BadSecurityChecksFailed. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaClient ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ Adds class FileTransfer. This class is a utility class to read and write whole files from a server. The server must support OPC UA FileType to use this feature on client side. Adds dialog that shows the usage of authentication tokens for Connect in Client Getting Started. Adds SetTriggering method to Subscription class. ------------------------ Bug Fixes ------------------------ Fixes TransferSubscription. The TransferSubscription method did not work at all. Fixes memory leak in Session. There was memory leak in Session. This leak occured when a client disconnected from a server. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaServer ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ Implements FileModel. The FileModel class provides implementation to support OPC UA FileType on server side. Compliance tested. The DemoServer application passes the Compliance Test Tool without errors. Adds documentation of OPC UA ConditionTypes and OPC UA VariablesTypes. Adds support for EventMonitoredItems in ServerInternalClient. Adds lesson for HistoryReadEvent in Server Getting Started. ------------------------ Bug Fixes ------------------------ ModelController classes are non-abstract. For abstract OPC UA types the ModelController classes have been abstract, too. When calling LinkModelToNode for an abstract OPC UA type that contains a child with an abstract type definition, an exception was thrown. This has been fixed by making all ModelController classes non-abstract. ******************************************************************************** ******************************************************************************** ** ** ** Version 2.2.5.284 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaBase ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ Fixes exception in EndConnect There was null exeption in EndConnect that occurred if an application calls sequences of connect/disconnect extremely fast. The socket was null at the time connecting again. This issue has been fixed. Fixes return value in GetTypeDescriptor There was a null pointer returned from ModelTypeDescriptionProvider.GetTypeDescriptor because return variable was not assigned properly. This getter function is called when loading/reading type system during startup e.g. provided by node set file. This issue has been fixed. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaClient ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ Minor clarifcation for usage of AlternativeEndpointUrls An alternative Endpoint is only used if the initial connect fails and the RetryInitialConnect is set to yes. Once a connection could be created, the Endpoint that worked is used for reconnecting. No changes to logic or code. ******************************************************************************** ******************************************************************************** ** ** ** Version 2.2.4.281 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaBase ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ Fixes memory leak when starting multiple ApplicationInstances. There was a memory leak that occurred if an ApplicationInstance was started and stopped several times. This memory leak did not appear if an application was started only once. This issue has been fixed. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaServer ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ Fixes stack overflow on server start-up. There was a potential crash if a server was restarted and several clients tried to reconnect simultaneously. This bug has been resolved. Fixes possible crash during shutdown and release of Socket. This exception occurred in very rare cases when accessing the socket handle in TcpMessageSocket. This possible crash has been resolved by adding an additional null pointer check. ******************************************************************************** ******************************************************************************** ** ** ** Version 2.2.3.276 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaBase ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ Add checks for System.Reflection.Assembly.GetEntryAssembly(). When using the .NET UA libraries within a CLR project, in some cases System.Reflection.Assembly.GetEntryAssembly() returns null, but it hasn't been checked for null at every place when used in the code. These additional checks fix rare crashes of the UA application when using the .NET UA libraries within a CLR project. Fixes logic error in DirectoryCertificateStore. The DirectoryCertificateStore has the option "noPrivateKeys" to disable saving private key. There was logic error when evaluating this option. As a consequence of this error a StatusException was thrown if a certificate was added to a store with the option to save the private key and the option "noPrivateKeys" for the DirectoryCertificateStore was set to "false". This logic error has been solved. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaClient ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ Use TimestampsToReturn.Both for HistoryReadEvent. This solves interoperability issues since some servers do not allow HistoryReadEvent calls with TimestampsToReturn.Neither. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaServer ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ Calling dispose recursively when the Server is stopped. This solves leaks when stopping and starting the server while the UA application is running. This does not have an effect on applications that do not stop and start an OPC UA server again while the UA ApplicationInstance is running. Revise SamplingInterval 0 for event monitoring even if clients request a SamplingInterval != 0. Compare structure content in MonitoredItem.Equals. This solves the problem that values with structured data types are sent by a subscription even if the content did not change. Reduce tracing with trace level ProgramFlow. Tracing with trace level ProgramFlow or Data created very big trace files. This tracing resulted in very long startup times of the server and very long connection times of clients to the server. Reducing the tracing reduces the spent time for server startup and the time for connecting. ******************************************************************************** ******************************************************************************** ** ** ** Version 2.2.2.260 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaBase ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ Fix minor problem with HTTPS transport. This fix solves a minor interoperability issue when using the HTTPS transport binding. This binding is not released (for details see comments in app.config). ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaClient ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ Implement client side Cancel service. This enables clients to call the Cancel Service to abort a long running operation in the server (assuming the server supports such a cancellation). ------------------------ Bug Fixes ------------------------ Fix hostname and IP address resolution on Vista/Win7 when network card is disabled or when network card is unplugged. Compared to WinXP, on Vista/Win7 and above the name resolution works differently. This leads to problems particularly for local connections (localhost) between client and server, because the loopback address was not resolved correctly. - The problem did not occur on Windows XP - The problem only occurred for connections to local servers (127.0.0.1 or localhost) ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaServer ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ Fix crash on internal server restart. When restarting the ApplicationInstance the constructor was not called again, hence required parameters were not initialized correctly. This problem only occurs in the rare case that the ApplicationInstance is restarted without unloading the server module completely. Fix locking in DataSamplingManager. Only when using a certain NodeHandleType (InternalPolled or ExternalPolled) in BaseNodeManager the DataSamplingManager sporadically locked the wrong object. This could cause modification, creation or deletion of unlocked node. Fix usage of DefaultRequestContext in ServerInternalClient.CreateDataMonitoredItems. The internal client running within the server (e.g. when implementing internal data logging) threw an exception when calling the method CreateDataMonitoredItems twice, because the DefaultRequestContext was not set correctly. ******************************************************************************** ******************************************************************************** ** ** ** Version 2.2.1.258 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaBase ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ Advance documentation of OPC UA types. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaClient ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ Add ProductUri to ClientSettings. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaServer ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ Advance default value of ProductUri. ******************************************************************************** ******************************************************************************** ** ** ** Version 2.2.0.255 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaBase ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Breaking Change ------------------------ ApplicationSettings and associated 'Settings' classes used to read information from configuration files now have default values specified for all fields. This means the 'Specified' flag is no longer part of the classes and will caused compile errors. Remove any 'Specified'references to fix. Removed support for Service UserName/Password (MS ServiceInstaller class should be used if this feature is required). Otherwise password is required in the configuration file which is not acceptable from a security point of view. ------------------------ Features ------------------------ Added support for Visual Studio 2012 (update 2) and .NET Framework 4.5. Added support for setup and configuration of HTTPS endpoints. Added support for SignOnly endpoints. Added support for binding endpoints to specific network cards. Trace messages now written to Visual Studio output window when debugging. Added DisableCommandLineProcessing to ApplicationInstance. Added DisableLdsCertificateExchange, DisableSetFilePermissions flags to InstallationSettings. Added CertificateGeneratorPath to CertificateFactory Added support for PEM format to CertificateFactory. Added Accept and RemoveAccept to CertificateValidator ------------------------ Bug Fixes ------------------------ Socket manager now correctly returns error messages if the initial connect fails. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaClient ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ Added support for HistoryRead for events. Added support for HistoryUpdate for data and events. Added helper functions to ItemEventFilter. Added event that allows application to modify URL before connect. ------------------------ Bug Fixes ------------------------ Fix Session.Connect(EndpointDescription endpoint, RequestSettings settings). If not all necessary information is set in endpoint, an exception will be thrown. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaServer ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Breaking Change ------------------------ The IEventManager was missing the RequestContext in several method calls including ConditionRefresh. This changed the interface to the BaseNodeManager and the NotifierManager classes and will cause compiler errors. Add RequestContext as the first parameter in any overridden functions to fix. Use Server.DefaultRequestContext if existing code logic does not have a RequestContext to use when calling. ------------------------ Features ------------------------ Added default implementation for ReadProcessed and ReadAtTime into the SDK. Implementors only need to implement ReadRaw to get support for these services. It is still possible to implement ReadProcessed and ReadAtTime on the application level. Added examples for history functions - Added Lesson 7 to Server Getting Started for HistoryRead for data - Added examples for all history functions to demo server ------------------------ Bug Fixes ------------------------ Fixed BaseNodeManager.IEventManager.ModifyEventMonitoring. Internal reference counters are updated correctly now. ******************************************************************************** ******************************************************************************** ** ** ** Version 2.1.2.227 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaBase ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ Changed search order for Opc.Ua.CertificateGenerator.exe 1. Working directory 2. Installation directory 3. bin-folder (Used for the examples of the SDK) Fixes for installing a service process. - ApplicationInstance.Install(bool silent) got public - New version of Opc.Ua.CertificateGenerator.exe XmlDecoder - Fix reading null arrays ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaClient ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ Fix automatic deletion of subscriptions on Server errors ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaServer ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ BaseNodeManager.INodeManagementManager - Add missing EventNotifier property SubscriptionManager.CreateSubscription - Fix memory leak if MaxSubscriptionCount is reached ******************************************************************************** ******************************************************************************** ** ** ** Version 2.1.1.223 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaBase ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Bug Fixes ------------------------ NoAutostartService flag - Added flag to avoid automatic start of Windows service by SDK. Default is false. If your application handles Windows service functionality this flag must be set to true. ******************************************************************************** ******************************************************************************** ** ** ** Version 2.1.0.222 ** ** ** ******************************************************************************** ******************************************************************************** ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Documentation and Examples ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- GettingStarted - Added certificate creation and certificate trust examples. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaBase ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ ApplicationInstance - Added EmbeddedConfigurationAssemblyName which specifies the location of the embedded configuration file. - Added public ApplicationSettings property and SetApplicationSettings method. - Added MissingApplicationCertificate event. - Added UntrustedCertificate event. - Added ConfigurationChanged event. - Renamed ParseExtention/UpdateExtension to GetConfigurationExtension/SetConfigurationExtension. - Added ValidateCertificate and AddCertificateToTrustList methods. - Replaces DC=localhost in ApplicationCertificate SubjectNames with DC= ExtensionObject - Added GetArray method. SecuredApplication - Added Get/Set methods. UANodeSet - Added MethodDeclarationId to UAMethod class. DirectoryCertificateStore - Added support for CRLs. - Added support for stores without private keys (better performance). ------------------------ Bug Fixes ------------------------ AbsoluteName - Fixed parsing error in ToQualifiedNames BinaryDecoder - Added handler to ensure XML parsing errors do not prevent message deserialization. - Fixed problem with multi dimensional arrays. ModelMapper - Fixed conversion error for ExtensionObjects. CertificateValidator - Fixed numerous issues with certificate validation. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaClient ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------ Features ------------------------ Discovery - Added GetMostSecureEndpoint methods. Session - Added MessageContext property. - Added PublishPipelineDepth property. Subscription - Suitable defaults are now set in the constructor. ------------------------ Bug Fixes ------------------------ Session - Now closes session after failure on first activate. - Reports events for subscriptions when they are deleted. - Added support for blocking write requests. Subscription - Fixed race condition that caused missing initial data changes. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Module UaServer ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Initial release ******************************************************************************** ******************************************************************************** ** ** ** Version 2.0.0.163 ** ** ** ******************************************************************************** ******************************************************************************** Initial release