--------------------------------
-- Description
--------------------------------

This SimApi connects to an OSIsoft PI AF data source.

See the User Guide for a list of features and installation instructions.

--------------------------------
-- Version 3.5.0
--------------------------------
2025-03-17
* New advanced setting 'Future end time placeholder', use this to tweak the end time used
  for EventFrame searches. Default value is "*+1m", one minute in the future according to
  the PI Server.
* Default value for PISystemsCacheControl is now IndependentCache.

--------------------------------
-- Version 3.4.0
--------------------------------
2024-05-17
* Thread-safe logging to prevent garbled log entries between threads
* Support multiple values when filtering using AFSearchOperator.In
* Improvements to the user guide
* Requires minimally NET Framework 4.6.2 but the most recent version is always recommended
* Built with PI AF Client 2018 SP3 Patch-5
* Updated compilers and tools

--------------------------------
-- Version 3.3.0
--------------------------------
2021-01-27
* Fixed logging: the log .bak file was not overwritten preventing logging from working
* New advanced setting 'Maximum elements per query'
* New advanced setting 'Maximum events frame per query'
* Re-organized the settings in the configuration dialog

--------------------------------
-- Version 3.2.0
--------------------------------
2020-03-20

* Element attributes associated to a PIPoint are now read using the attribute,
  instead of using the PIPoint. If you want to have the old behavior set
  PIPointAttributeControl to ReadUsingPIPoint.
* The PISystems collection cache can now be controlled from each SimApi
  instance. PISystemsCacheControl defaults to SharedCache (as in 3.0.0 and
  earlier), set PISystemsCacheControl to IndependentCache for creating of an
  independent collection of PISystems (as in 3.1.0).
* Improved logging.

--------------------------------
-- Version 3.1.0
--------------------------------
2020-02-05

* Passwords can be stored regardless of the "System cryptography: Use FIPS
  compliant algorithms for encryption, hashing, and signing" security
  setting. See https://support.microsoft.com/en-us/help/811833.
* Fix for multiple instance support connected to the same AF Server.
* Tags are sorded alphabetically.
* Internal restructuring.

--------------------------------
-- Version 3.0.0
--------------------------------
2019-02-11

* More than one element category can now be used to filter the elements seen
  through the SimApi. Separate categories with semicolon (;). You can also
  specify * to show all elements, but this may negatively affect startup
  performance if there are many elements.
* The full element hierarchy is now exposed by the SimApi rather than a flat
  structure. This means that you'll see the same structure in SIMCA-online
  as in OSIsoft System Explorer.
* Elements are displayed under its own top-level node.
* Note that to see attributes for an element, it must match the element
  category filter. Otherwise the element is just shown as a container of
  child elements (without attributes) by the SimApi.
* Hierarchical attributes are now named using their relative path separated
  by pipe (|) as seen from the containing element.
* We no longer display hidden attributes.
* Points are displayed under its own top-level node. This node contains all
  process data tags of the server.
* Top-level Event Frames are displayed under its own top-level node.
* Event Frame Filters now is the top-level container node for what was
  previously called System- and Event Filter nodes. Such filters are used
  for batch project execution and expose event frames (batches) that fulfill
  various criteria. You still can create two types of filters; by attribute
  or by category, but both types are now displayed in the same node. Note
  that settings for previous System Filter Nodes and Element Filter nodes are
  not migrated to the new version of the SimApi. Filters have to be recreated
  manually.
* Note that because we have changed how nodes and tags are exposed, you have
  to change all project configurations to use the new node- and tag names
  after upgrading to the new SimApi.
* Significant improvements to the user guide, with more explanations and
  examples.

--------------------------------
-- Version 2.2.6
--------------------------------
2018-08-15

* Breaking change: Element attributes now use name of Attribute, instead of
  using name of PIPoint.
* Support for element attributes without PIPoint data reference.
* Enable filter nodes even if top level ElementCategory setting being empty.

--------------------------------
-- Version 2.2.5
--------------------------------
2018-04-27

* Fix for writing floating point values to PI.

--------------------------------
-- Version 2.2.4
--------------------------------
2018-04-12

* Fixes bug when active Event Frame get incorrect end time instead of no time.

--------------------------------
-- Version 2.2.3
--------------------------------
2018-02-21

* Synthetic Event Frame name and duration tags.

--------------------------------
-- Version 2.2.2
--------------------------------
2018-01-12

* Credentials can be set from configuration dialog.

--------------------------------
-- Version 2.2.1
--------------------------------
2017-09-29

* Updated documentation and icon for release.

--------------------------------
-- Version 2.2.0
--------------------------------
2017-09-06

* Removed logging of tags for log level debug.
* Handling of Float16 and Int16 data types correctly.
* Handling of instance names with spaces correctly.
* Made it possible to open log file directly from configuration dialog.
* Added max size log file option.
* Added filter nodes.
* Updated user guide to cover filter nodes.

--------------------------------
-- Version 2.1.0
--------------------------------
2017-06-08

* Added configuration dialog.
* Improved User Guide.
* Improved logging.

--------------------------------
-- Version 2.0.0
--------------------------------
2016-08-12

* Initial version.
