﻿=======================================
 Version 1.7.2
=======================================

General:
--------

* Update C++ SDK to version 1.8.7
* Update UaStack to version 1.5.9

* Update third-party
  - Update OpenSSL to V3.0.13
  - Update libxml2 to V2.13.5

* Handle overwrite for BadCertificateIsRootAuthority
  Add default override = true for new certificate error
  OpcUa_BadCertificateIsRootAuthority

* Add flush config option for trace

* Add UserManagement change password option
  - Handle PasswordChangeRequired status in ActivateSession
    If the server requires the client to change the password UaExpert shows
    a password dialog now 
  - Add Change Password Dialog
    - Respect password options and length provided by server
    - Option to hide/show password

* Check for availability of UserIdentityToken list
  Add error log and ignore dialog for the case that the server does not return
  a list of available UserIdentityTokens

* Add option to select GDS certificate group for PULL certificate management


PubSub Config Plugin:
--------------------------

* Allow configure SecurityGroup on Reader in expert mode

* Add option to edit PublishedDataSet details in Configuration View

* Split handling of MQTT domain to MQTT + JSON and MQTT + UADP

* Add handling of structure DataTypes in DataSetMetaData
  - Fix namespace mapping for DataSetMetaData in PublishedDataSet
  - Handle case of new variables with structures
  - Handle case of removed variables without server connection and type cache
  - Fill namespace table in DataSetMetaData
  - Compress namespace table to used namespaces
  - Include ns0 none builtInType in DataSetMetaData
  - Enhance compare of TargetVariable DataType with DataSet field DataType
    for none OPC UA namespace DataTypes, especially structures to handle
    different NamespaceIndex in DataSetMetaData and server
  - Enhance display of non-builtin type names

* Add timeout option for CloseAndUpdate
  - Fix use of configured CallTimeout for PubSubConfiguration method calls
  - Add new option PubSubConfigPlugin.CloseAndUpdateTimeout for CloseAndUpdate timeouts

* Add download PubSub config context menu to the PubSubApp item in the configuration tree

* Reduce false positive change detection
  Avoid change indication for opened settings dialog without changes

* Add configuration option for MQTT topic tree prefix instead of default 'opcua'

* Enhance clear and download to server
  - Add load configuration from server after download
  - Add option "Clear server configuration and replace with this configuration" to
    - tool button in configuration list
    - App context menu in tree view

* Add missing options for reader update
  Add handling of transport and message settings update for broker transport
  and JSON message mapping for changes in corresponding WriterGroup or DataSetWriter

* Enhance broker queue name handling
  - Add broker queue name check when open writer pages
  - Add consistency checks for broker queue names in WriterGroup
    and DataSetWriter configuration pages
  - Show DataSetWriter queue names without expert display mode
  - Show DataSetReader queue names without expert display mode
  - Change topic name if WriterGroup name or DataSetWriter names are changed

* Update JSON header layout handling
  - Add change of layout in WriterGroupPage
  - Update JSON header layout to OPC UA 1.05.04

* Add monitoring of current values for mirror Reader

* Add option to save PubSub configuration as XML


XML Nodeset Export Plugin:
--------------------------

* Add export of Structure DataType as XML encoded values
  - Add option XmlNodesetExportPlugin.DataTypeIdEncoding with default true
    If the XML EncodingID is not available in the server, the configuration option is to use
    the DataType NodeId instead to encode the extension object in the exported UANodeset XML.


* Allow more nodes for XML export
  Allow 900.000 but warn user if 500.000 is exceeded


Data Access Plugin:
--------------------------

* Fix issue if Session status change deletes items

* Fix handling of special ValueRank

* Add check for DataType difference between old value and Variable DataType
  to handle write

Method Plugin:
--------------------------

* Add handling of abstract input and output arguments


FileTransferPlugin:
-------------------

*  Move file transfer to worker jobs
   - Move file transfer (read/write) to background processing
   - Show transfer progress in progress dialog
   - Enable cancel button to stop the ongoing transfer job


=======================================
 Version 1.7.1
=======================================

General:
--------

* Update C++ SDK to latest version 1.8.2
* Update UaStack to latest version 1.5.5

* Update third-party
  - Update OpenSSL to V3.0.10
  - Update libxml2 to V2.11.5

* Display widgets for structures
  - Fix handling of structures with structure fields of BaseDataType
  - Fix handling of union field with BaseDataType
  - Fix display of null ExtensionObject in a structure field

* Add missing registration of *.uap project files with UaExpert

* Skip secure channel renew certificate checks if connect errors are
  skipped by user

* Enhance certificate selection if the EndpointUrl in the
  EndpointDescription does not match the used URL

* Enhance display of license information in license dialog

* Skip load of TLS certificates for GDS managed stores

* Remove reverse discovery from GDS registration discovery dialog

PubSub Config Plugin:
--------------------------

* Fix issue with download of PubSub configuration that contains
  only Readers

* Adjust Reader MessageReceiveTimeout if the related WriterGroup
  PublishingInterval is changed

* Change display order of configurations in project to alphabetic order

* Prevent duplicate configuration names in project

* Verify that string array and array dimension max length settings
  are available if encoding is changed to raw encoding e.g. change
  to periodic fixed layout

* Add option to modify max string length and array dimension settings

* Add support for JSON message settings

* Add check of unique DataSetFieldIds in Reader configuration
  Duplicated field IDs create problems with TargetVariable configuration

* Add option to reduce namespace table to used namespaces in the
  context menu for configuration files

* Add handling of custom data type descriptions in DataSetMetaData
  of PublishedDataSets

* Enhance Published DataSet field metadata configuration
  - Add option to display Field Metadata
  - Add option to add properties of Variable to Field Metadata
    - SourceNode
    - Properties of the variable


XML Nodeset Export Plugin:
--------------------------

* Enhance error handling for import of nodeset from OPC UA server

* Fix exporting extensionObject value to XML

* Add error counter per namespace
  - Continue on errors when reading node attributes from server  
  - Indicate errors after completion of the export


FileTransferPlugin:
--------------------------

* Do not display read and write file transfer context menu for
  TrustListType objects. They require special handling.
* Do not display write file transfer context menu for
  PubSubConfigurationType objects. Write requires special handling.

Performance Plugin:
--------------------------

* Fix measurement with duration
  Fix for behavior change in Qt5

Data Access Plugin:
--------------------------

* Fix subscription settings change dialog
  Fix for behavior change in Qt5
  
Server Diagnostic Plugin:
--------------------------

* Fix display of new Role CriteriaTypes Application and
  X509Subject in 'Server Information'
  
XML Nodeset Export Plugin:
--------------------------

* Add option to disable Aliases in the exported UANodeset XML
  Setting XmlNodesetExportPlugin.ExportAliases

* Different error handling enhancements and logic to fix invalid
  information from server model import in used C++ SDK library

Method Plugin:
--------------------------

* Display specific method result code also if it is a specific Good code


=======================================
 Version 1.7.0
=======================================

General:
--------

* First release of PubSub configuration plug-in
  The plug-in was provided as technical preview before
  See PubSub Config Plugin for more details

* Enhancements for structure DataType handling
  - Changed default DataType definition access from deprecated
    DataTypeDictionary to DataTypeDefinition attributes as default
    Fall-back is still DataTypeDictionary
  - Add handling of new AllowSubtypes flags for structure fields
  - Add handling of structure fields with matrix values (ValueRank>1)
  - Add option to select concrete subtype for structure fields
    with abstract DataType or with AllowSubtypes set

* Update C++ SDK to latest version 1.8.1 (release)

* Update UaStack to latest version 1.5.4

* Update OpenSSL to V1.1.1t

* Update libxml2 to V2.10.3

* Update to Qt5

* Update to Qwt V6.2

PubSub Config Plugin:
----------------

* Technical preview in version 1.6.x used a Unified Automation specific
  FileType object to transfer the PubSub configurations to a server with
  OPC UA 1.04 PubSub functionality.
  OPC UA 1.05 added a standard FileType based object for the transfer.
  The PubSub Config plugin is now using this standard object for the
  configuration transfer with delta changes.

* Add handling for PubSub security and SecurityGroups

* Add handling for UDP unicast as defined by OPC UA 1.05

* Add monitoring mode for DataSetReaders to display values of source
  variables (Publisher - DataSetWriter) and target variables (DataSetReader)

AttributePlugin:
----------------

* Use same color for BadUserAccessDenied and BadSecurityModeInsufficient

XML Nodeset Export Plugin:
--------------------------

* Process export in the background and display progress in a progress bar

* Add option to export multiple namespaces into one UANodeset file

Server Diagnostic Plugin:
--------------------------

* Add tab for display and modification of Roles and Users


=======================================
 Version 1.6.3
=======================================

General:
--------

* Update C++ SDK to latest version 1.7.7 (release)

* Update UaStack to latest version 1.4.22

* Keep temporary certificate error overwrite for a session
  to suppress further certificate checks due to secure channel renews

* Add General.DisableError.CertificateUsage setting
  Allow suppression of certificate usage errors for server certificates

* Automatically execute local discovery in Add Server dialog

* Skip endpoints in Add Server dialog if the endpoint ApplicationUri
  does not match the ApplicationUri from FindServers

* Fix compare with recently used servers in Add Server dialog

* Skip creation of event subscription for model change events if
  event notifier is not set on server object

AttributePlugin:
----------------

* Fix write of values for variables with abstract DataType
  Open DataType browser to select the concrete DataType for conversion

* Fix display of AccessRestrictions attribute flag ApplyRestrictionsToBrowse

DaPlugin:
---------

* Fix monitoring settings for custom node (manual NodeId selection)

* Fix write of values for variables with abstract DataType
  Use DataType from the last value as fall-back
  Open DataType browser to select the concrete DataType for conversion
  if no previous value is available

ImageViewerPlugin:
------------------

* Add missing image formats to AppImage for Linux


=======================================
 Version 1.6.2
=======================================

General:
--------

* Update C++ SDK to latest version 1.7.6 (release)
  - Fixes for data type dictionary handling
  - Fixes for UANodesset XML export
  - Fix certificate verification during SecureChannel renew

* Update UaStack to latest version 1.4.21
  - Fix https transport protocol binding

* Enhance Add Server discovery dialog
  - Browse local servers and servers on network only on request
  - Fix blocking of UaExpert due to blocking discovery calls
  - Add full discovery URL to server tree nodes
  - Add more information from application description to
    tool-tip of server tree nodes

* Add detection of GDS certificate update through parallel
  active UaExpert instances

* Update OpenSSL to V1.1.1n
  Fixes CVE-2022-0778

* Update libxml2 to V2.9.13
  Fixes CVE-2022-23308

History Plugin:
--------------

* Fix display of value list if all values have bad status

Method Plugin:
--------------------------

* Extend diagnostic info handling for Method result display

Attribute Plugin:
----------------

* Enhance display of OptionSet structure value
  Indicate invalid bits with gray text

* Re-arrange attribute display to show special attributes like
  RolePermissions and WriterMask at the end of the list

* Change color for display of BadUserAccessDenied attribute error

* Fix writing of structure fields with Variant type

Server Diagnostic Plugin:
--------------------------

* Remove display of deprecated ModelingRule NamingRule
  from Server Capabilities

XML Nodeset Export Plugin:
--------------------------

* Limit total number of nodes to export to 500.000 to prevent
  out of memory situations
 
* Multiple fixes and enhancements for XML export based on
  changes included in the C++ SDK update

* Add optional Aliases in XML export


=======================================
 Version 1.6.1
=======================================

------------------------------------
 Security / CVE
------------------------------------
* Fixes CVE-2021-45117

Details may not be visible if the CVE was not made public yet.

------------------------
 New Features
------------------------

General:
--------

* Update C++ SDK to latest version 1.7.5 (release)

* Update UaStack to latest version 1.4.18
  Fix CVE-2021-45117

* Automatically add GDS servers to discovery dialog if
  UaExpert is registered with the GDS

------------------------
 Bugfixes
------------------------

* Update certificate for running sessions if GDS signed certificate
  is update due to certificate update required by GDS

* Automatically select GDS managed PKI certificate store if
  the server endpoint is selected during during discovery with GDS

* Use GDS server application name in discovery dialog and
  certificate manager dialog
 
* Limit maximum number of GDS servers to 10

* Fix crash in OPC UA stack client API response handling

* Stop follow up calls to local discovery if local discovery is not
  available to avoid unnecessary timeouts in discovery dialog

* Enhance GDS registration dialog
  - Filter for opc.tcp protocol option
  - Set user/password as default user token used for registration with GDS
  - Enhance error reporting if registration fails

* Fix handling of enumeration DataTypeDefinition if enumeration DataType
  has only reverse reference to Enumeration DataType node

* Fix write of byte array if server provides a ByteString value in Read
  or DataChange but DataType of variable is Byte and ValueRank is 1

* Enhance error handling for initial UaExpert certificate creation

* Fix connect loop in case a server to connect is loaded from a project file
  and the password entered by the user is wrong

* Fix connect if password of a disconnected server is changed in the server
  settings to a wrong password


PubSub Config Plugin:
----------------

* Disable configuration options in WriterGroup settings that
  are invalid or will be calculated by the consistency check logic

GDS Push Plugin:
--------------------------

* Allow creation of signing request if no private key format is
  supported by server. Disable only private key management in this case.


=======================================
 Version 1.6.0
=======================================

------------------------------------
 Security / CVE
------------------------------------
* Fixes CVE-2021-3541

Details may not be visible if the CVE was not made public yet.

------------------------
 New Features
------------------------

General:
--------

* New PubSub Config Plugin (technical preview)

* New GDS registration functionality (Manage Certificates dialog)

* New GDS discovery functionality (Add Server dialog)

* Update C++ SDK to latest version 1.7.5 (beta)
  Including OPC UA 1.04.10 errata with DataTypeDefinition
  extension AllowSubTypes

* Update UaStack to latest version 1.4.17

* Update OpenSSL to V1.1.1k

* Update libxml2 to V2.9.12
  This update fixes CVE-2021-3541 (Exponential Entity Expansion DoS)

XML Nodeset Export Plugin:
--------------------------

* Add settings for XML export browse and read calls
  - XmlNodesetExportPlugin.Browse.MaxStartingNodes
  - XmlNodesetExportPlugin.Browse.MaxReferencesToReturn
  - XmlNodesetExportPlugin.Read.MaxNodes

* Add setting for maximum total nodes processed during import from server
  to avoid out of memory situations for servers with huge address spaces

FileTransferPlugin:
-------------------

* Add support for TemporaryFileTransfer

Method Plugin:
--------------------------

* Add diagnostic info support to method dialog

* Evaluate input argument result and show information in method dialog

------------------------
 Bugfixes
------------------------

* Change UaExpert application display name to contain host name

* Wait for subscription deletion before deleting the callback object

* Use first server certificate if the security policy is not supported by the server

* Disable server settings gui also if state is connecting

* Fix assigning type cache info for multiple nodes

AttributePlugin:
----------------

* Use the model/actual DataType instead of the DataType from the last value
  Fix write of value if value is null e.g. for write only variables

DaPlugin:
---------

* Use the model/actual DataType instead of the DataType from the last value
  Fix write of value if value is null e.g. for write only variables

* Fixes storage of unicode string in NodeIds in settings

EventPlugin:
------------

* Fixes storage of unicode string in NodeIds in settings

* Fix sampling interval for event monitored items to use 0

Performance Plugin:
--------------------------

* Fixes crash if subscription deletion and clean-up is slow

XML Nodeset Export Plugin:
--------------------------

* Various bugfixes in nodeset export module

Reference Plugin:
--------------------------

* Don't update view if new node is current node

Server Diagnostic Plugin:
--------------------------

* Don't delete subscription on connection error

* Use discovery functions on session to avoid additional connection

Devices Plugin:
--------------------------

* Don't browse for super-types of NULL nodeid or BaseObjectType

GDS Push Plugin:
--------------------------

* Fixes 'All Files' selection for files without '.'

* Fixes selection of CertificateGroup NodeId for createSigningRequest
  and updateCertificate

ImageViewerPlugin:
------------------

* Fixes storage of unicode string in NodeIds in settings



=======================================
 Version 1.5.1
=======================================

------------------------
 Bugfixes
------------------------

General:
--------

* Update C++ SDK to latest version 1.6.3

* Update UaStack to latest version 1.4.6

* Always show signature algorithm string in certificate info

* Fix blocking GUI when loading project with servers that cannot be connected to

* Check file format of all certificates and CRLs on startup

* Fix handling of password protected UaExpert private key

* Correctly handle alternative signature algorithm identifiers in certificates

* Don't allow HTTP(S) for client side endpoint URL for reverse connections

* Clarify descriptions in reverse connect GUI elements

* Fall back to DiscoveryUrls if GetEndpoints on EndpointUrl fails

AddressSpaceView:
-------------

* Improve performance of finding nodes that were set manually in other views

AttributePlugin:
----------------

* Don't show error for array type if data type is Null

* Display special meaning of ValueRank if available

* Don't log errors if there's no session or the session is not connected

DaPlugin:
---------

* Fix dropping folders from servers that don't support inverse references

* Retrieve enum information for variables using one single read service call when dropping

FileTransferPlugin:
-------------------

* Improve trace output

* Use reasonable maximum length per read / write

ReferencePlugin:
----------------

* Show NodeClass in tooltip

* Follow reference on double click only

XML Nodeset Export Plugin:
--------------------------

* Don't allow editing the result table

* Various bugfixes in nodeset export module


=======================================
 Version 1.5.0
=======================================

------------------------
 New Features
------------------------

General:
--------

* Update C++ SDK to latest version 1.6.2

* Update UaStack to latest version 1.4.4

* Update OpenSSL to V1.0.2o

* Update libxml2 to V2.9.8

* Use new widget for editing values

* Add support for OPC UA specification 1.04 data types

* Add support for new security policies Aes128Sha256RsaOaep and Aes256Sha256RsaPss

* Add support for new DataTypeDefinition attribute as replacement for type dictionaries

* Add option for reverse connect

* Add licensing mechanism

* Display warnings and errors in orange and red in log window

* Add support for all SHA2 signature algorithms for own certificate

* Invert direction of log view to have normal top-to-bottom order of logs

* Enable trace by default with trace level 'Warning'

* Allow using password protected private keys for X509 user tokens

* Allow reordering recent servers using drag&drop in discovery tree view

* Add toolbar button for (un)hiding all dock widgets

* Allow changing the display name of configured servers

* Show detailed information in tooltip of configured servers

* Enable F2 key for editing server properties

* React to BaseModelChangeEvent by clearing cache and rebrowsing the root folder

* Show additional information about endpoint in tooltip of discovery and project view

* Use new icons for endpoints

* Use new input widget for numeric values

* Don't include security configuration in default configuration name of endpoints

* New number input widget

* Call FindServersOnNetwork if port is 4840, fall back to FindServers on error

* Show endpoint and server information in tooltip

AddressSpaceView:
-------------

* Don't sort children with HasOrderedComponent reference

AttributePlugin:
----------------

* Display new attributes from OPC UA specification 1.04

* Allow writing all attributes

* Check the data type of all attributes

* Display NodeId in XML notation

* Add 'Copy Value' context menu entry

* Show binary content of ExtensionObject if it cannot be deserialized

DevicesPlugin:
-------------

* Replace the devices plugin button with a new 'Devices View'

PerformancePlugin:
------------------

* Improve subscribe test output

* Recursively add child nodes when dropping folder into performance view

* Allow adding nodes manually

FileTransferPlugin:
-------------------

* Add new file transfer plugin

DaPlugin:
---------

* Recursively add child nodes when dropping folder into DA view

HistoryPlugin:
--------------

* Allow adding history nodes manually

EventPlugin:
------------

* Allow adding event nodes manually

ServerDiagnosticsPlugin:
------------------------

* Show certificate chain if there's more than one certificate

* Show security mode in GetEndpoints result entry

* Highlight differences between ApplicationDescriptions of FindServers and GetEndpoints

* Add context menu for certificates

* Show icons for servers and endpoints

DataloggerPlugin:
-----------------

* Allow adding nodes manually

XML Nodeset Export Plugin:
--------------------------

* New XML Nodeset Export Plugin

ImageViewerPlugin:
------------------

* Show frames per second and frame size

* Add 'Clear' button

* Allow changing the publishing and sampling interval

------------------------
 Known Issues
------------------------

XML Nodeset Export Plugin:
--------------------------

* There are limitations when exporting nested complex structure definitions

* Enum strings and method arguments are not being exported

------------------------
 Bugfixes
------------------------

General:
--------

* Unify plugin names

* Optimize internal type cache

* Fix default locale to use 'en-US'

* Retry initial connect when loading project with connected server

* Fix endpoint URL matching with URLs containing trailing slashes

* Fix content of 'Report a bug...' EMail on linux

* Only display and use certificates/CRLs that are recognized by UaStack

* Several fixes regarding multithreading and GUI responsiveness

* Fix appending the project file extension when saving project and log files

* Lock stack settings if there are configured servers

* Fix deserialization of DiagnosticInfo in structures

* Prevent redundant Republish calls

AddressSpaceView:
-------------

* Display correct icon for subtypes of FolderType and PropertyType

AttributePlugin:
----------------

* Display enum string in enum array values

DaPlugin:
---------

* Enable/disable context menu entries depending on selection

MethodPlugin:
-------------

* Handle ValueRank of in/out arguments correctly

DevicesPlugin:
-------------

* Don't sort nodes with HasOrderedComponent references

* React to model change events

EventPlugin:
------------

* Correctly display values of enum/optionset event fields

HistoryPlugin:
--------------

* Fix GUI behavior when updating with no node to read

* Fix detection of empty history when bounding values are requested

* Fix actual executed number of history next calls

* Don't reset tab view on cyclic updates

ServerDiagnosticsPlugin:
------------------------

* Add tooltips indicating the error if variables cannot be displayed

ReferencePlugin:
----------------

* Fix label text of browse path


=======================================
 Version 1.4.4
=======================================

------------------------
 New Features
------------------------

General:
--------

* Add setting General.ShowUTCTimestamps

HistoryPlugin:
--------------

* Add setting HistoryPlugin.RequestServerTimestamp

------------------------
 Bugfixes
------------------------

General:
--------

* Updates C++ SDK to latest version 1.5.4

* Updates UaStack to latest version 1.3.12

AttributePlugin:
----------------

* Use correct server when specifying a node manually

ReferencePlugin:
----------------

* Use correct server when specifying a node manually

DaPlugin:
---------

* Remove items if service result of CreateMonitoredItems was bad

ServerDiagnosticsPlugin:
------------------------

* Don't clear but disable views until selection change, so all
  values can still be seen even if disconnected


=======================================
 Version 1.4.3
=======================================

------------------------
 New Features
------------------------

General:
--------

* Allow using <PID> placeholder in trace file name

* Add CommonName to filename of stored certificates

AttributePlugin:
----------------

* Display string identifier for nodes of namespace 0

* Add 'Show in Address Space' button

DaPlugin:
---------

* Make MaxNotificationsPerPublish configurable

EventPlugin:
------------

* Display string identifier for nodes of namespace 0

HistoryPlugin:
--------------

* Add DisplayName column

* Always show numeric values in table view, too

ReferencePlugin:
----------------

* Add 'Show in Address Space' context menu entry

------------------------
 Bugfixes
------------------------

General:
--------

* Updates C++ SDK to latest version 1.5.3

* Updates UaStack to latest version 1.3.11

* Update OpenSSL to V1.0.2j

* Don't activate endpoint on single click on Linux

* Additional callbacks for suppressing client side connect errors

* Check for missing notifications when receiving KeepAlive

* Don't allow setting WatchdogTime to non-accepted values

* Handle subtypes of base data types correctly

* Rename TypeDictionaryMode 'Manual' to 'Off'

* Send client certificate only in secure connections or if
  General.ForceSendClientCertificate is true

* Fix default ApplicationUri

AttributePlugin:
----------------

* Display children of optional nodes as optional, too

* Check ArrayType of attribute values before accessing the value

DaPlugin:
---------

* Fix subscription handling if no item can be restored after reconnect

* Apply monitoring parameters also to disconnected items

EventPlugin:
------------

* Don't require event field BranchId to contain a NodeId

* Fix severity display for values above 1000

HistoryPlugin:
--------------

* Prevent deletion of item while reading history

* Prevent duplicate colors

* Allow cancelling operation between calls with ContinuationPoint

* Display status in table view

DevicesPlugin:
-------------

* Fix string encoding in devices method dialog

ServerDiagnosticsPlugin:
------------------------

* Replace host in DiscoveryUrl if GetEndpoints fails

* Clear views when refreshing session / subscription list

DataloggerPlugin:
-----------------

* Don't allow dropping nodes while running

ReferencePlugin:
----------------

* Fix layout of browse path widgets on Linux

PerformancePlugin:
------------------

* Remove nodes if server is removed

ImageViewerPlugin:
------------------

* Clear image viewer if empty image is received

* Prevent memleak on high load

MethodPlugin:
-------------

* Add scroll bars if necessary to prevent unusable method dialog size


=======================================
 Version 1.4.2
=======================================

------------------------
 Bugfixes
------------------------

General:
--------

* Updates C++ SDK to latest version 1.5.1

* Updates UaStack to latest version 1.3.8

* Fix GetTickCount overflow calculation bug

* Fix MaxChunkCount calculation

* Fix handling of IP addresses in certificate hostname check on connect

* Fix finding UserTokens when using EndpointUrl different from what server returned

* Additional check of signature algorithm used by server after create session

* Fix handling of empty type dictionaries

* Fix setting numeric array and matrix values

* Fix scroll behavior of log window if full

EventPlugin:
------------

* Trace EventFilterRequest before creating and modifying monitored item

DevicesPlugin:
-------------

* Fix string encoding in descriptions


=======================================
 Version 1.4.1
=======================================

------------------------
 New Features
------------------------

General:
--------

* Add 'View' menu for showing and hiding dock widgets and toolbars

* Add General.DisableError... settings for suppressing certificate validation errors

------------------------
 Bugfixes
------------------------

* Updates UaStack to latest version 1.3.3

* Update OpenSSL to V1.0.1p

* Fix crash with invalid type dictionaries

* Fix crash when deleting CRL from certificate manager

General:
--------

* Fix title bar content for filenames containing multiple dots

* Show certificate warning for weak key length or signature algorithm

DataLoggerPlugin:
-----------------

* Fix PrimaryKeys used in data logger output

DevicesPlugin:
-------------

* Add missing COM browsers again

* Support double click and DEL key in COM and UA servers widgets

GDSPlugin:
----------

* Create Nonce when calling 'Create CSR' with new keypair

PerformancePlugin:
------------------

* Fix minimum height of service tabs


=======================================
 Version 1.4.0
=======================================

------------------------
 New Features
------------------------

General:
--------

* Documentation now available via Help -> UaExpert Manual

* Update to C++ Client SDK V1.5.0

* Add support for SecurityPolicy Basic256Sha256

* Improved traces

* Improved stability

* New GDS plugin

* Support Unions and Structures with optional fields

* Add setting General.InternalServiceCallTimeout, e.g. for reading dictionaries

* Add settings Stack.SecureConnection_Min/MaxRevisedSecureChannelLifetime

* Use actually used values instead -1 as default for Stack settings

DaPlugin:
---------

* Allow changing of MonitoringMode and PublishingEnabled

* New settings DaPlugin.MonitoringMode.Default and DaPlugin.PublishingEnabled.Default

ReferencePlugin:
----------------

* Add BrowsePath overlay when following references by double-clicking

* Improve ToolTips

EventPlugin:
------------

* Display condition dialogs (can be disabled with EventsPlugin.ShowDialogConditions)

* Add settings EventsPlugin.QueueSize and EventsPlugin.DiscardOldest

AttributePlugin:
----------------

* Display new access levels StatusWrite and TimestampWrite

* Support displaying and editing OptionSets

ServerDiagnosticsPlugin:
------------------------

* Add combobox for choosing server

------------------------
 Bug Fixes
------------------------

General:
--------

* Fix bug when resetting settings

* Fix loading projects with servers having more than 9 namespaces

DaPlugin:
---------

* Fix assignment of subscriptions when opening many in parallel

AttributePlugin:
----------------

* Fix displaying of nested Enums in Structures

* Use access level names from UA specification

DataloggerPlugin:
-----------------

* Fix crash after logging lots of values


=======================================
 Version 1.3.1
=======================================

------------------------
 New Features
------------------------

General:
--------

* Mark modified settings with bold font

* Show NamespaceIndex number in address space combo box

* Updates C++ client SDK to version 1.4.3

* Updates UaStack to latest version 1.2

* Updates OpenSSL to version 1.0.1j

* Update Qt to version 4.8.6

------------------------
 Bug Fixes
------------------------

General:
--------

* Fix loading of old projects (from before V 1.3.0) containing Data Access Views

* Use General.ConnectTimeout for GetEndpoints call previous to connecting session

* Fix endless loop when creating new certificate and old certificate had an unknown password

* Allow reentering password on mismatch

* Show message box if exact endpoint URL cannot be found in server's endpoints

* Set lower limit of requested secure channel lifetime to lowest accepted lifetime

* Reduce number of calls for reading the server's type dictionaries

* Only save server certificate instead of chain if a chain was provided by the server

* Support X509 tokens when changing user

* Fix possible crash when parsing type dictionaries with missing references

* Fix parsing enumerations if only NS0 type dictionary is defined

* Avoid integer overflow in matrix edit widget

PKI:
----

* Force two letter country code when creating certificates

AttributePlugin:
----------------

* Show full string instead of shortened one when editing the value

* Display local time only for source and server timestamp, use UTC otherwise

DaPlugin:
----------------

* Trace if items are getting removed due to changed namespace table

* Don't open value editor of next item after deleting item with DEL key

* Fix crash when modifying item after setting DataChangeFilter

HistoryPlugin:
----------------

* Don't discard results if there are empty HistoryReadResponses

PerformancePlugin:
----------------

* Fix crash in subscribe test if testing in 'Duration' mode

ReferencePlugin:
----------------

* Display forward name of reference type if inverse name is not set or empty

* Always follow reference on double click, add context menu for browsing the reference type itself

DataLoggerPlugin:
----------------

* Disable all GUI elements in runtime mode

EventPlugin:
----------------

* Fix crash when auto-reconnecting to different server while being subscribed to events


=======================================
 Version 1.3.0
=======================================

------------------------
 New Features
------------------------

General:
--------

* Updates C++ client SDK to version 1.4.1

* Adds support for reading and writing generic structured data

* Updates UaStack to version 1.2

* Adds experimental support for HTTPS

* SDK and UaStack warning and error traces are shown in the log window

* Improved traces

* Updates QWT to version 6.1.0

* Updates OpenSSL to version 1.0.1g

* New settings:

    - General.MaxOperationsPerServiceCall
    - General.SuppressSaveOnExit
    - General.PublishTimeout
    - General.RetrieveIcons
    - General.DiscoveryTimeout

* Adds 'Change User' button for changing the user of the current session

* Icons are not retrieved by default to avoid many TranslateBrowsePaths calls

* Adds endpoint filter in 'Add Server' dialog

* New ImageViewer plugin for displaying images contained in ByteStrings

* Adds 'Reset to default value' button to settings entries

* New Server Diagnostics plugin for displaying server information

* Disables server properties widget while connected

* On error, retry GetEndpoints with hostname used for FindServers

* New DataLogger plugin for logging data of variables to a file

PKI:
----

* Using new UnifiedAutomation PKI store style

* Checks if certificate matches private key on startup

* Allows setting multiple DNS and IP entries in certificate

* Reworks certificate dialog

AttributePlugin:
----------------

* Always shows status code of value

* Sets current NodeId and server in custom node dialog

* New setting AttributePlugin.MaxAge

* Displays value received from server even if status is bad

DaPlugin:
----------------

* Sets current NodeId and server in custom node dialog

EventPlugin:
----------------

* Adds tab for reading event history

HistoryPlugin:
----------------

* Adds button 'Get history start time'

PerformancePlugin:
----------------

* Adds buttons for resetting the result views

ReferencePlugin:
----------------

* Displays NodeId of references and target nodes as tooltip

* Double click on reference updates attribute and reference window with that node

------------------------
 Bug Fixes
------------------------

General:
--------

* Displays correct revised SecureChannel lifetime

* Calls CloseSession if ActivateSession fails

* Fixes parsing of DateTimes in certificates

* Fixes possible crash when removing multiple servers very fast

* Prevents double subscribing to ModelChangeEvents

* Fixes default selected user token type if Anonymous is not available

* Cancels quitting if save dialog is cancelled

* Doesn't allow multiple recent endpoints with same name

* Doesn't use type cache if disconnected

* Observes limits for settings (e.g. SessionTimeout has a lower limit of 30000)

* Ignores leading and trailing spaces when writing ByteString values

* Uses the user's application data path as default path for trace files

* Always shows milliseconds of UA timestamps

* Deletes a subscription if ModelChangeEvent cannot be subscribed to

* Unifies how DateTime is displayed and edited

* Ensures that enums are initialized with valid values in array/matrix input widgets

AttributePlugin:
----------------

* Traces error if reading custom NodeId fails

* Shows whether AccessLevels_SemanticChange is set

* Limits length of displayed strings to prevent GUI freezing

* Unifies how status codes are displayed

* Fixes check and colors for bad or uncertain status

DaPlugin:
-------------

* Scrolls horizontally by pixel instead of per item

* Prevents double creation of a subscription on reconnect

* Displays correct settings if ModifyMonitoredItems failed

* Sets project modified after adding items

* Fixes typo in settings

* Checks for valid MonitoredItemIds

* Deletes a subscription if no item was added

* Removes items from a view that failed on CreateMonitoredItems

* Limits length of displayed strings to prevent GUI freezing

* Fixes initial status of dropped items

DevicesPlugin:
-------------

* Fixes node filter in device view, showing all existing nodes

EventPlugin:
-------------

* Skips calling refresh if no subscription was created

* Clears details if event list is cleared

PerformancePlugin:
-------------

* Doesn't read values automatically on reconnect

MethodPlugin:
-------------

* Makes all output argument widgets read-only


=======================================
 Version 1.2.2, Build Number 175
=======================================

------------------------
 New Features
------------------------

General:
--------

* Adding default server if no server is configured

* Adds setting General.LogMaxEntries

* Unified naming of dock widgets

* Checking for valid public key hashes in certificate extensions of UaExpert and server certificates

AttributePlugin:
-------------

* Adds 'Expand All' button

* Adds button for reading the attributes of a custom NodeId

DaPlugin:
-------------

* Displaying type of extension objects in Datatype column

* Adds data change filter options to MonitoredItem Settings dialog

* Manually adding NodeIds possible using the context menu

EventPlugin:
-------------

* Adds setting EventsPlugin.MaxEventLogEntries

HistoryPlugin:
--------

* Displaying array history values as text table

ReferencePlugin:
-------------

* Adds button for reading the references of a custom NodeId

------------------------
 Bug Fixes
------------------------

General:
--------

* Fixes display problems for strings containing non-ASCII characters

* Fixes creation of X509 Certificate Extensions

* Changes default MaxKeepAliveCount for all subscriptions to 5 seconds

* Fixes small memleak when using a X509 authentication token

* Makes writing the full value range of Int64/UInt64 possible

* Fixes occasional unneccessary republish calls

* Clearing type cache on disconnect or if a new session was created

AddressSpaceView:
-------------

* Always refreshing highlight combo box when connection to server is established

AttributePlugin:
-------------

* Changes DateTime format of variable values to match DA view format

DaPlugin:
-------------

* Fixed wrong error message when data changes were received but CreateMonitoredItems did not finish yet

* Fixes crash when changing subscription settings without valid subscription

* Fixes occasional crash when receiving data very fast from many servers

EventPlugin:
-------------

* Fixes logic for removing alarms from alarm view on refresh

* Fixes possible crash when acknowledging/confirming all alarms

* Allowing selecting objects in event type tree

* Setting project modified only if 'Apply' was pressed, not if event field selection was changed only

* (De)selecting event fields with same relative path if one was (de)selected

* Restoring old event field selection if ModifyMonitoredItems failed

HistoryPlugin:
-------------

* Displaying history correctly if bounding values have bad status

* Storing running state of cyclic history read in projects

* Not updating history on drop, only if 'Update' is clicked

* Fixes crash when reading history data from disconnected servers

PerformancePlugin:
-------------

* Reading values of items on test start instead of on drop, avoiding GUI freeze when dropping from slow servers

ReferencePlugin:
-------------

* Clearing view on connection loss / disconnect


=======================================
 Version 1.2.1, Build Number 164
=======================================

------------------------
 New Features
------------------------

General:
--------

* Using certificates for user authentication possible

* Using EnumStrings or EnumValues of enumeration types if available

* Using server-provided icons for nodes in the address space

* Loading certificates in PEM format is now possible

* Displaying date in timestamps possible with new ShowDateWithTimestamps settings

* Receiving and evaluating ModelChangeEvents

* Displaying icon overlay for (soon to be) invalid certificates

* Allowing connection to non-existing endpoint

* Displaying revised CreateSession values in log

* Adds settings to configure session watchdog times

* Adds automatic check for updates

* Showing server/endpoint URL in tooltip of discovery view

* Using checkboxes for editing boolean values

* Storing window size and position of all dialogs

* Fixes displaying of version info if additional info is set by the stack

* Adds combo boxes for editing trace levels in settings

* Adds option to accept server certificates temporarily

* Adds setting 'General.MaxBrowseNextCalls' to prevent infinite browse loop

* Checking certificate extensions for UA compliance

* Accepting certificates that don't have the 'Authority Key Identifier' extension set only temporarily

* Including compiler info and build timestamps to about box

AddressSpaceView:
-------------

* Evaluating ModelChangeEvents and updating the affected node automatically

* Autoscrolling address space to show content of expanded node

* New icons for Variable- and ReferenceTypes

* Adds combo box for highlighting namespaces

HistoryPlugin:
-------------

* Showing non-numeric history values in table views

* Displaying history graph depending on the Stepped property

* Adds setting 'HistoryPlugin.MaxHistoryNextCalls' to prevent infinite browse loop

DevicesPlugin:
-------------

* Optimizes type cache

EventPlugin:
-------------

* Calling republish if notifications are missing

* Removes condition type cache, identifying conditions by ConditionId

* Resetting the view like suggested in the UA spec after refresh

* Highlighting associated events in the event view

* Clearing alarm view on connection interruption

AttributePlugin:
-------------

* Writing the value of variables is now possible in the attribute view

* Adds support for displaying RedundantServerDataType, EnumValues and diagnostic types

DaPlugin:
-------------

* Displaying/entering LifeTime/MaxKeepAliveCount as time possible

* Calling republish if notifications are missing

* New column displaying the number of items

------------------------
 Bug Fixes
------------------------

General:
--------

* Asking for username and password on connect if password is not stored or username empty

* Fixes misleading or erroneous trace messages

* Setting maxKeepAlive/lifetimeCount of subscription matching session lifetime

* Increases default timeout values

* Forbidding usage of 4096bit-certificates as encryption with more than 2048bit is currently not possible with UA

* Fixes multiple browse calls for type definition

* Fixes PolicyId used if authentication token doesn't contain one

* Sets status code of items to BadWaitingForInitialData after subscribing to them after connection error

* Disables server certificate validation by the client SDK

* Sorting entries by timestamp when inserting in log model

* Hiding splash screen when showing message boxes

* Fixes conversion problems from/to UTF-8, strings with non-ASCII characters were displayed and transferred wrongly in some places

* Fixes conversion of UA timestamps to/from QDateTime, previously only the time_t-range could be displayed and entered

* Fixes deadlock on shutdown if subscriptions are active

* Fixes dialogs being displayed behind the splash screen

* Setting the stack configuration from UaExpert settings on startup, before it was only set after being changed

* Showing different certificate errors depending on if the cert is not yet or not anymore valid

* Setting current filename correctly if project is loaded as command line argument

* Clears project before loading project file given as argument

* Unified displaying of float and double values

Add Server dialog:
-------------

* Resizing discovery view to size of server names

* Removes non-existant security policy 'Basic128' as only 'None', 'Basic128Rsa15' and 'Basic256' are defined in the UA specification

MethodPlugin:
-------------

* Wrapping long description texts

* Fixes crash if output arguments are received that are not defined in the method's OutputArguments property

* Fixes crash if ArrayDimensions are missing in method argument and ValueRank > 0

EventsPlugin:
-------------

* Fixes crash when trying to delete child items of monitored items (EventTypes or EventFields)

* Fixes logic for creating subscriptions

DevicesPlugin:
-------------

* Writing edited parameters only if conversion was successful

* Fixes crash if service fault is returned by server

DaPlugin:
-------------

* Fixes possible crash when deleting nodes of an invalid subscription

* Fixes logic for creating subscriptions

* Setting bad status code if subscription status changes to bad

* Setting item status to BadCommunicationError on connection problems

* Rejecting write if value could not be converted to the correct data type

HistoryPlugin:
-------------

* Fixes title of history trend item graphs

* Inverted Zoom direction

* Removes check for OpcUa_GoodMoreData if ContinuationPoint is returned

PerformancePlugin:
-------------

* Deleting subscription even if deleteMonitoredItems failed

AttributePlugin:
-------------

* Showing timestamps in local time

* Showing correct DataType for Argument values in attribute view

* Fixes logic for showing attributes as optional


=======================================
 Version 1.2.0, Build Number 132
=======================================

------------------------
 New Features
------------------------

General:
--------

* SDK and Stack trace can be enabled in the settings dialog

* Tracing Server name in log window

* Settings are displayed and changed depending on data type

* Adds settings to change stack configuration

* Loading UaExpert project files when given as command line parameter

* Adds 'Recent Projects' list to file menu

* Updated error messages map

* Unified look&feel

* Unified 'DEL' key behavior / context menu in item lists

* Using new uawidget classes for displaying UA values

* New performance plugin

* Evaluating ModelChangeEvents

Add Server dialog:
-------------

* Selecting last used endpoint by default

* FindServers/GetEndpoints is called asynchronously

* Adds network browser

* Adds line edit for setting the SessionName, by default the application URI is used

DaPlugin:
-------------

* Setting initial status of items dropped into DA view to BadWaitingForInitialData

* MultiSelect in DA view possible

* Hiding/moving columns possible, state can be stored

* Displaying the date with timestamps depending on configuration

* Array and matrix values can now be resized

* Showing full NodeId of items

* Performance improvements for fast changing values

MethodPlugin:
-------------

* Load/Save of input/output arguments in method call dialog possible for string types

* Adds text edit as editor/viewer for string types

* Supporting array and matrix values

AttributePlugin:
-------------

* Displaying arrays of byte

* Displaying timestamps and status code with value

* Displaying matrix values

* Adds support for displaying ServiceCounterDataType and ApplicationDescription

DevicesPlugin:
-------------

* New custom Links view for UaGateway configuration

HistoryPlugin:
-------------

* Adds button to resize the view to original state

* Adds cyclic update functionality

EventPlugin:
-------------

* Revised event plugin

* Selecting EventFields now possible

* Showing all EventFields in new details view

* Autoscrolling in event view can be enabled/disabled

* Displaying of alarms with retain == false can be enabled/disabled

* Confirming and commenting alarms possible

* Adds AcknowledgeAll and ConfirmAll button

* Evaluating RefreshRequiredEvent

------------------------
 Bug Fixes
------------------------

General:
--------

* Checking validity of application URI in certificate

* Applying changes in settings dialog only if OK is pressed

* Using General.CallTimeout and General.BrowseTimeout setting where not yet used

* Fixes save/restore of window geometry and dock widget state

* Tracing errors only if mandatory attributes have bad quality

Linux:
--------------

* Fixes occasional application termination when connection to server is interrupted

* Fixes selection of UserTokenTypes

Add Server dialog:
-------------

* Hiding discovery servers

DaPlugin:
-------------

* Checking for valid input arguments before calling

* Deleting unused subscriptions

* Fixes crash when displaying unknown data types

* Defaulting to nearest value if monitoring/subscription settings are invalid

MethodPlugin:
-------------

* Checking for valid input arguments before calling

* Fixes string display for output arguments

ReferencePlugin:
-------------

* Evaluating ContinuationPoints when browsing

EventPlugin:
-------------

* Not calling acknowledge if 'Cancel' button is pressed



=======================================
 Version 1.1.0, Build Number 117
=======================================

------------------------
 New Features
------------------------

General:
--------

* New 'About' dialog with stack and platform layer version information

* Added certificate management dialog

* Implemented bug reporting

* Recent server configurations can be deleted with 'DEL' key

* Stored certificates can be deleted with 'DEL' key

* Added clear / save log functionality for log window

DaPlugin:
---------

* Displaying string representation of status codes

* Editing of array and matrix values possible

* Editing of more data types possible

EventPlugin:
------------

* Acked state is now resolved by ID, not by name

* Calling refresh is now possible; is called automatically on connect

* Added limit for displayed events

HistoryPlugin:
--------------

* Using qwt library for displaying history values

* HistoryViews save and load configured items to/from the project

MethodPlugin:
-------------

* More data types supported when calling methods

------------------------
 Bug Fixes
------------------------

General:
--------

* Fixed resize / restore issues for different dialogues

* Fixed storing of settings in different locations

* Adding new server configuration is not blocked if name already exists

* Fixed propagation of connection status changes to plugins/documents

DaPlugin:
---------

* Documents: Subscriptions are deleted when closing documents

EventPlugin:
------------

* Monitored items are always removed from list on 'Delete'

* Same alarm coming from different monitored items is shown only once

HistoryPlugin:
--------------

* Only items that support historizing can be added to HistoryTrendViews


