# This file describes major changes in SZARP in human-readable format,
# updated at least monthly.
# Lines starting with hash are comments. 
# Lines starting with ** (two stars) denotes described SZARP version.
# Other lines describe changes.
# Empty lines are ignored.
# $Id$


** 3.1.684:
# 02.09.2011
* Draw3 documentation update: some recently added features has
been documented, documentation on user defined params has
been extended
* Fixed problem in params.xml parser, broken xml file
could make application using the parser to loop ad infinitum
* Small fix - params having GJ unit are no longer automatically 
flagged as having "hoursum" attribute
* Fix: lua parameters for 30-second range no longer go outside
of first-last available date range
* Quit button added to draw3 help window, without that 
button it wasn't possible to close help window when draw3
was running on system without window manager
* Fixes for boruta in tcp server mode handling

** 3.1.682:
# 05.09.2011
* Fix in parameter editing bug under draw3
* Fixed small bug in period switichng in draw3 (it was possible
for period radio button to become out of sync with actual
period show in graph widget)
* Improved SZARP compilation under debian unstable
* Fix in ddeproxy service shutdown
* New feature for draw3. Up to today on main draw3 graph widget
each point (for periods decade, year, month, week and season) represented
average value of parameter from corresponding time span (e.g. for
period year, each point represented average param value for a month).
For some types of params (especially counters) it wasn't necessarily
the most interesting piece of information user would like to have.
Because of this draw3 has been extended to allow user to choose
among 3 different kind of values to be displayed for decade, year,
month, week and season period):
- average, that a default and only option available so far, each
point represents param average valuek
- last, last 10-minute probe for a point time span is drawn
- diff, difference between value of last 10-minute probe and
first 10-minute of time span covered by point is drawn
New option is accessible from context menu of graphs' list
widget.

** 3.1.673:
# 09.06.2012
* basic data extraction support for draw3, this features mostly
duplicates extractor3 functionality but also provides feature
not present in draw3 - from draw3 it is possible to extract data
for user defined params
* a handful of new features in pyipk: support for regex-based text searching, 
parameters' names validation, configuration reloading, attributes editing, ....
* bugfix - error frame does no longer receives focus when shown
* work on new format of database that will be able to hold values with 
arbitrary time precision
* fixed bug in extractor3 - due to uninitialized variable sometimes
extractor failed to extract data
* fixed a problem in calculatiog average values of combined params in parcook
daemon
* minor fixes to async syslog library 

** 3.1.653
# 01.06.2012
* szarp logging library "liblog" has seen significant improvements.
Up to now liblog implemented one way of logging - the log files have
been written directly to disk in a fixed textual format. The changed liblog
introduces notion of plugins which hide the details of actual logging
mechanism behind a simple API and make liblog easily extendable and configurable
to support various logging methods. Currently liblog comes with following
plugins:
- syslog: which is now default on linux platform, as the name suggest
this plugin uses syslog as an underlaying logging method
- asyslog: this one is very similar to syslog but uses our homebrew
implementation of non-blocking asynchronous syslog protocol, suitable
for use in applications based on libevent
- classic: this plugin implements the old-way of logging, used by default
on Windows
* asyslog has been added to SZARP - it is a simple asynchronous implementation
of syslog library to be used in applications based on libevent. This library 
let application do the logging in purely non-blocking way.
* boruta modbus driver now supports sending of constant integer values
* draw3 supports command-line switch to make it start in full-screen
mode
* fix precision calculation in boruta lumel driver

** 3.1.647
# 01.05.2012
* new boruta plugin for Lumel meters
* new boruta plugin for tensometric scales
* further developments of pyipk:
  - plugins to manipulate reports and sets
  - support for simultaneous editing of multiple params.xml
  - params.xml can be edited over ssh connection
  - added plugin that checks if colors repeat in draw3 sets
* ekstraktor3 now supports extraction of "counter" values - it
  is possible to request extraction of last value of a parameter
  for a given period
** 3.1.631
#01.04.2012
* bug fixes and cleanup of remarks server code
* fixes for corner cases in communication between szbase and probes
server 
* small usalibity improvement in defined param handling - it is now
possible to add defined param graph into the draws sets without
specifiying all graph parameters on every time
* lua optimizer was extened to support multiple assignments
in one statement
* small bugfix in draw3 - about dialog was always shown on top
of first main window, now it is shown on top of the window 
from which it is opened
* pyipk application saw significant progress, a lot of new
features were added

** 3.1.614
#01.03.2012
* reggression fix in combined params calculation
* usablity improvement in draw3: currently selected graph shows up as
default choice in statistics dialog 
* szbmod was extened to support -m command line option, this option
makes szbmod to automatically generate formula that scales param
value by provided scaling factor
* szbmod(again): fix in writing combined params values'
* fixes in building szarp on debian/lenny 
* a lot of improvements in network params/sets handling
* usability improvement: upon opening of 'search date' window, current paramter
is automatically inserted into search formula
* the biggest class in draw3 codebase was split into several
smalles classes, the code should be more readable and approachable now

** 3.1.590
#01.02.2012
* This month saw introduction of libpyszbase module into SZARP. This
module gives Python application direct access to SZARP database (szbase).
Libpyszbase module contains functions for searching and accessing data in 
szbase and calculating all types of average values (including 10-seconds
probes). One of the goals of introducing this library (apart from the fact
that such library is simply cool thing to have) was to ease SZARP integration
with other information systems. In various deployment scenarios, quite often
a need arises to periodically export data from SZARP to some other system in
the format specific for such system (let it be (In)SQL database, XML, some
proprietary format, etc.). For such application Python proved to be indispensable
tool. Previously when faced with such task we were resolving to calling szbase
extraction tools from Python scripts and parsing their output, such solution
was less than ideal - inefficient, cumbersome not not very elegant. With pyszbase
one can access szbase without any overhead of this kind.
* Development of pyipk further progressed. At this moment it is possible 
browse and edit existing params.xml files using drag and drop. The goal 
is to make pyipk an app that can be used to create SZARP configurations
from scratch.
* A minor bug in k601 daemon was fixed.

** 3.1.568
#01.01.2012
* Improved stability of remarks server - when connection to a database 
drops it automatically gets reestablished
* SZARP codebase was adopted to latest version of boost library,
SZARP binary packages no longer depend on slightly outdated boost 1.42
and are using boost libs that come with current Debian/Ubuntu distros
* Draw3: as a consequence of network params and sets introduction, handling
of incomplete/invalid users sets was overhauled. Invalid graphs are no
longer automatically removed, they remain in configuration but are
unusable and are marked with '***' sign.
* Speedup in initialization of szbase engine - esp. noticeable for
configurations with large number of drawdefinable RPN params.
* Documentation of XYZ graphs was extended to cover description of 
variants of this type of graphs also we added detailed explanation
on how those graphs are generated 

** 3.1.568
#01.12.2011
* draw3 activity logger was fixed to not block the GUI thread when 
server ip address cannot be resolved
* Regression fix - draw3 was crashing when attempt was made to edit user
sets and params when remarks server address was not configured
* Mechanism to inform user that more recent version of the draw3 
app is already installed was improved to accommodate for systems
with lacking short form alias in locale settings
* Support for python 2.x version was improved in szarp python scripts
* Introduction of new utility - pyipk. the purpose of pyipk is to ease editing
of szarp configurations
* szarp-xsltd package was fixed to not overwrite configuration files
on package update
* Modbus ASCII protocol support fixes in boruta daemon
* Draw3: handling of sets with more than 12 graphs improved
* Filler app now orrectly behaves on Debian Squeeze
* Implementation of szarp ipk parser implementation was switched from DOM to
xmlTextReader based, thus reducing memory consumption of configuration parsing
process

** 3.1.563
#01.11.2011
* Documentation of SZARP data aggregation daemon - meaner3 - is more
complete now
* Fix: button 'SEASON' was brought back to draw3 application
* Support for 'ISO-8859-2' encoding in raporter.py app was imporved
* k601dmn now properly handles the case when serial port gets disconnected
(which may happen when e.g. usb2rs converter is unplugged) - in this
case daemon will periodically make attempts to reopen the port
* Two minor issues with modbus support in boruta's modbus plugin
were fixed
* Draw3 now optionally can be set up to monitor user activity - gathered
data is completely anonymous and is collected to allow us understand 
better how users interact with the application, which in turn we hope,
we will be able to use to make the app even more user friendly
** 3.1.562
#01.10.2011
* Added support for setting server address with SZRSYNC_SERVER variable 
in szrsync script.
* Assertion fix in szbwriter.
* Logging of incoming connections IP numbers in SSS server.
* Documentation of installing DDE Proxy under Windows.
* Fix in date chooser dialog for SZARP wxWidgets applications.

** 3.1.558
#01.09.2011
* Added option of copying name of selected parameter in draw3 to clipboard.
* Circles around points in X/Y graphs in draw3 are drawn also in points 
averaging mode.
* Fixes in XSLT transformation for ISL when using python-lxml version newer 
then 2.2.8.2.
* Fixes in date handling of szbndremover - tool for filling gaps in SZARP
data.
* Fixes in draw3: fix in refreshing parameters' list in edit user parameter
dialog.
* Fixed segfault when loading incorrect params.xml configuration file.
* Fix in calculating values of "optimized" LUA parameters referencing 
LUA_AV-type parameters.

** 3.1.552
#01.08.2011
* Added debian package szarp-dbg-symbols, this package contains all szarp 
binaries with debug symbols included, useful e.g. for analyzing cores from
production machines.
* Ability to configure graph scaling for user defined draws in draw3 program.
* New feature for x/y graphs in draw3 program - points on a graph are 
surrounded by circles with radius proportional to log2(number of data points
covered by the point on a graph).
* Fixes in draw3: fix in automatic setting of hoursum attribute, fix in 
behaviour on switching to set with some draws disabled, fix in dealing
with large draw sets.

** 3.1.544
#01.07.2011
* Added automatic assignment of colors for arbitrary number of draws in draw3
 program.
* Behaviour improvements in dealing with large draw sets in draw3 program.
* Added option in draw3 program to sort draws in current set by ther 
maximum/minimum/hoursum/average value (from current view or time range marked 
by double cursor).
* Fix of percentage display in tooltip in Summary Window of draw3 program.

** 3.1.533
#01.06.2011
* Fix in draw3 automatic language settings - added proper item to language 
selection menu.
* Speedup period switching in draw3 on sets with large number of graphs.
* Added displaying name of current parameter in draw3 after pressing '?'.
* Added experimental faster XML parser for IPK library - should speed up 
starting of SZARP program and reduce memory usage.

** 3.1.528
#01.05.2011
* Language change icon remove from Draw3 toolbar, added 'automatic' language
setting - based on current system locale.
* Added fill_how_many_sec options to szbwriter, allowing to fill gaps in 
10-second probes; program also works few times faster and with lower CPU load.
* Using statistics, XY and XYZ windows in Draw3 is now easier - program picks 
draws and period to show from current state of main window.
* Many small fixes in Draw3: axis printing, time axis drawing, crash in XYZ 
draws displaying, shift left/right keys behaviour.
* Fixes and improvements in boruta daemon - parity setting and Modbus ASCII 
fix, added configurable character size mask for serial port, fixed timing issues 
in ZET sub-driver.
* Updated libraries used for cross-compiling of Windows version; results in 
better behaviour under Windows 7.

** 3.1.522
# 01.04.2011
* Restored fill_how_many option of szbwriter.
* Support for new average type in draw3 - DECADE (10 years).
* Fixed Modbus server modes of borutadmn driver.
* sssweb changes for Pylons version 0.10.
* Added support for non-standard ssh port in szrsync/szbpush utilities.

** 3.1.518
# 01.03.2011
* Removed draw3 limit of 12 draws per set.
* Meaner3 fix for large number of opened files - added flag O_CLOEXEC.
* Borutadmn serial drivers may be now run over TCP connection.
* Changes for Debian 6.0 squeeze, including full support for encoding different 
then ISO-8859-2.
* Custom SZARP theme for Gnome Display Manager.

** 3.1.514
# 01.02.2011
* Draw3 searching feature has been polished up, GUI has been updated to render
this feature more convenient to use.
* Draw3 documentation has been updated with description of searching feature.
* Boruta subdrivers has been documented.
* More verbose logging has been added to boruta driver, allowing for greater monitoring
of running daemon.
* Fixes in meaner3 - SZARP application responsible for storing parameters' values to szbase.
* ddeproxy has been changed to work as a windows service, biggest user visible change is that
now program's window no longer appears neither on desktop nor on application tray.

** 3.1.511
# 01.01.2011
* Added support for modbus ascii protocol to boruta daemon.
* Fixed bug in accessing of average (longer than 10 minutes) values from within
lua optimized parameters.
* Hoursum attribute is attimaticaly set for parameters having appropriate
units.
* New feature added to draw3: it is now possible to provide an condition 
(as a lua expression) and draw3 will look for moments in time when this condition
evalutes to true.
** 3.1.508
# 01.12.2010
* Button/menu item added to Draw3 for positioning cursor at last available 
data.
* Fixes in Draw3 GUI for editing draw/parameters.
* Extractor can now extract also 10-seconds probes.
* Lua parameter optimizer updated to process parameters which reference 
itself.
* Small fixes in data handling by Draw3 - 10 seconds combined probes, few 
other corner cases.

** 3.1.500
# 01.11.2010
* Draw3 documentation updated with description of treenode element.
* New boruta sub-driver for Metronic FP210, fixes in Modbus and ZET 
sub-driver.
* Draw3 fixes: propagating change of user-defined parameter name, speeding 
up closing of program, fixes in editing user defined params, draws from 
user defined sets are not shown in search windows, small improvements in 
database engine fixing some rarely occurring bugs.
* Szarp synchronizer - added option to manually set prefix of database to 
synchronize.

** 3.1.442
# 01.10.2010
* A support from "PCD" variant of SBUS protcol was added to sbusdmn.
* A lot of fixes and improvements was introduced to meta-daemon boruta,
daemon support for zet and modbus rtu protcols were tested and deployed.
* Draw3 can now be configured to display draw sets arranged in hierarchical
tree-like structure. This feature will be especially useful for users
that prefer to navigate trough draw sets using mouse than searching
with keyboard. It also allows to categorize sets in more explicit way.
* A pair of tools was added that convert ipk configuration from/to 
cvs format. It is sometimes more convenient to edit configuration
in tabular form.
* And usual assortment of small fixes and improvements.

** 3.1.439
# 01.09.2010
* Fixes in generating XML config for LUA formulas using IPK library.
* szbwriter by default does not add unknown parameters to configuration, that 
prevents from breaking configuration by incorrect calls to szbwriter.
* Fixed few draw3 crashes under Windows on non-standard configuration/bases.
* Fixed incorrect draw3 behaviour when to many draws are added to user set.
* More flexible filler behaviour - default database writing comment can be 
overwritten using FILLER_COMMAND environment variable.
* Added modbus protocol support for boruta meta-daemon.
* More intuitive draw3 behaviour on PgUp/PgDown key press.
* Few other small fixes.

** 3.1.438
# 01.08.2010
* New universal device driver - "boruta" meta-daemon, with possibility to easily
add different protocol implementations and support for multiple devices.
* Support for 10-seconds probes in extractor and szbwriter programs.
* 10-seconds probes are on by default.
* New options for szrsync and szbpush to allow limiting transfer speed.
* Draw3 fixes, including more intuitive behaviour on PgUp/PgDown.
* Small fixes in raporter and synchronizer applications.

** 3.1.432
# 01.07.2010
* Support for 10-second probes in szbase and draw3 application was completed.
* New 'latest data following mode' was added to draw3, when working in this mode 
draw3 positions graph in such a way that always latest data is visible.
* There are some improvements and bug fixes in XYZ graph drawing.
* mbdmn: daemon now supports unit addresses from 1 up to 255
* mbdmn: improved logging

** 3.1.426
# 01.06.2010
* 10-second probes archivisation process is integrated into SZARP startup scripts and removes
outdated files from cache.
* draw3 support for displaying 10-second probes is under developement, along with necessary fixes
and improvements in probes server.
* Fixes in Windows version compilation and bundled DLLs set, allowing to prepare new Windows version.
* New driver for energy meteres usingg IEC 62056-21 protocol.
* szast program for controling ZET/Sterkom PLCs can now talk over TCP/IP connection.

** 3.1.423
# 04.05.2010
* New type of graphs was added to draw3 application - XYZ graphs. These 3 dimensional graphs
can be used to analyze dependecies among values of 3 parameters from any period of time.
This feature enhances even further SZARPs historical data analysis abilities. XYZ graphs can also
be quite pleasant aesthetically.
* There was significant progress in development of 10-second archivisation/presentation
infrastucture.
* SZARP device drivers (daemons) have now generic mechanism for reporting protocols that they
support, making information on devices supported by SZARP more easily available.
* New pair of applications were added to SZARP: setdmn accompanied by GUI client - setter. These
apps sole purpose is to allow users to set parameters values over network.
* SZARP source code repository has been migrated to git.
* number of smaller fixes/improvements

** 3.1.385
# 01.04.2010

* New features in draw3 program: editing currect draws' set as defined set, 
importing and exporting draws' sets, showing "documentation" of user-defined
parameters, checking if newer draw3 version is already installed.
* Optimiser for Lua parameters - if parameter is enough "simple", it is parsed
by internal SZARP engine and calculated without need of evaluating it by Lua 
interpreter. The effect is, that Lua optimised parameters are event faster then
traditional RPN parameters.
* Parcook daemon correctly calculates average values for "combined" parameters, 
without errors resulting from separate averaging of less- and more- significant
words.
* Fixes in new Modbus daemon serial mode transmit timeouts handling.
* Many bug fixes.

** 3.1.332
# 02.03.2010

* Synchronizer protocol was extended to more efficiently handle most common
case of adding new data to szbase file.
* Draw3 printing support was improved.
* LUA parameters execution errors are now properly caught.
* Daemon for reading values from tensometric scale has been added to SZARP.
* Development of viszio application has been completed.
* Szast application has been enhanced, it can now fetch reports from 
regulators.
* A minor fix in raporter3 application: parameter selection persists values 
list refresh.

** 3.1.287
# 02.02.2010

* ddespy has been rewritten and ddedmn improved. Thanks to these changes
fetching data from DDE servers is much faster now.
* The way parcook launches line daemons has been changed, now they are started
directly be execve, not as it used to be - through /bin/sh -c.
* New utility "szbmod" has been added. Szbmod allows for fast modification
of szbase historical data through LUA scripts.
* Szbase cache mechanism was extended, now much more values are stored in cache 
thus improving defined parameters drawing speed.
* Work on new major feature - trends plotting of 10 seconds probes - has been started.
The first phase of this task - an daemon storing these probes has been written and now
is tested at one of heating plants.
* raporter3 has now complete documentation.

** 3.1.254
# 31.12.2009

* Major code refactoring of draw3 program, changes introduced quite a few 
bugs, most of them was hopefully resolved. Separate thread for saving cache to 
disk was removed. Correct icons where added to multiple dialog windows within 
application.
* Parameter value on dark blue background in draw3 program was pourly visible
on some displays, background color is a little lighter now.
* Added new 'viszio' application for displaying values of selected parameters
directly on screen. Viszio is still 'work in progress'.
* Added szbndremover - tool for "removal" of no-data holes in database - 
missing values are replaced with averages computed from surrounding values.
* Fix in HTML links generated by paramd program.
* Added 'M' function for fast filtering too big values in defined parameters.
* New universal driver for Modbus protocol, able to handle RTU/ASCII encoding
and both serial and TCP connections.

** 3.1.206
# 31.11.2009

* There is a new apt repository branch avaiable in szarp.org repository
- 'karmic', containing version of szarp compiled for 'karmic koala' Ubuntu
distribution.
* draw3: it now possible to set margins, orientation and page size of printouts
* Buggy wxSingleInstanceChecker (class resposible for detecting if
other copy of application is running) replaced with our own implementation.
* mbrtudmn: slave mode was fixed
* ipkedit: update, min max ranges and color attributes can be changed,
also documentation of ipkedit was updated
* raporter3: program was expaned - user report templates are now saved
automaticaly and are available directly from menu - this is more compliant
with draw3 behaviour, lots of other small fixes and improvements, code review.
* reporter3: numerous fixes.
* raporter3: initial version of documentation is available.
* Help fix: searching in documentation no longer causes applications to crash.

** 3.1.163
# 31.10.2009

* Added scripts for fetching weather forecast from meteoprog.ua website.
* Draw3 fixes: cursor positioning in "antialiasing mode", race condition in remarks server address resolution, data averaging on x/y graphs.
* Draw3: "antialiasing mode" is now default under both Linux and Windows.
* Sender fix: it now ignores empty <send/> elements in configuration.
* Fixes for latest mingw32, "critical" lintian bugs fixed.
* Refreshing of isledit (Inkscape plugin for creating SVG visualisation schemas), it now works under both Linux and Windows.
* More examples of ISL documents added.
* All applications have now icons under Windows.

** 3.1.130
# 30.09.2009

* Bug fixes and improvements in kontroler3 program, added sound playing on alarm.
* Multiple bug fixes in Modbus RTU driver (timing synchronization); added support for BCD encoded values.
* Added support for different word order in float values in Modbus TCP driver.
* Completed "antialiasing style" draws displaying; it is more suitable for high resolution displays; it also should have less memory usage, but can be slower on some computers.
* New driver for Aquameter Calec MCP-300 heatmeter.
* Added RPN 'm' function for fast filtering of values outside meaningful range.
* Bug fixes in draw3: X/Y drawing, draws colors assigments, opening new window, drawing new points while filter > 0, info about currently selected graphs style.
* Multiple build fixes for newest Debian unstable.

** 3.1.97
# 31.08.2009

* Fixed presentation of 32-bits ("combined") values in paramd/reporter program.
* Driver for Modbus TCP can ask for more then 128 registers.
* Disabled potentially harmfull SZARP Command Center option to change data directory under Linux.
* No-data string in Reporter is localized now.
* Fixes in Modbus RTU driver serial port handling, configuration parsing, time synchronization.
* User can select databases that are not shown in SZARP Command Center, Extractor and Draw programs.
* Improvements in Draw3 remarks handling - remarks server address can be resolved using DNS, default user and password is taken from SZARP Synchronizer, basic support for agregated configurations.
* Added documentation of Draw3 'remarks' feature.
* Basic administration of remarks server users can now be handled with ssweb.
* Fixed permission problem with registering new users key by SZARP Synchronization Server.
* Experimental surrport for drawing using wxGraphicsContext in Draw3 program.
* Fixed dependencies of Filler program.
* SZARP Automatic Updater uses SourceForge.net RSS feeds to obtain correct version number of SZARP.
* Updated 'eksploatacja' documentation.

** 3.1.53
# 03.08.2009

* New remarks functionality in draw3 program. Remarks are short text comments that are bound to some draws' set (or all data) at particular time. They can describe some event (for example device failure) or contain information for operators. Remarks are stored on central server and distributed using RPC-like protocol to all users viewing installation data. Users with appropiate privilges can add and edit remarks.
* init.d scripts for terminals are now compliant with version 3 mechanism for tranmission of current parameter values.
* Fix in ekstraktor3 Open Document Spreadsheet format handling, export to ODS should work on both Linux and Windows.
* Fixes in creating user-defined reports in reporter3 program.
* Windows build uses now faster Lua version - with just-in-time compiler.
* New build system (for Linux ans Windows) using source repository from SourceForge.net, Debian repository has been moved to http://szarp.org. Stable and unstable versions of Debian packages have now binary dependencies appropiate for release. 

** 3.1.1
# 24.07.2009

Major version change: 3.0 => 3.1.

The main reason to increase version number was moving repository to
SoureForge. It was an opportunity to remove some obsolete files and any
dependencies on non-GPL code. Project home page moved to http://www.szarp.org.

# vim: set filetype=cfg :
