Spring cleaning and constant march forward

Hello SZARP users.
Spring has come, we’ll be eating Ester eggs in couple of days, so we though that it would be a good time to give you some update on what has been happening with SZARP over last couple of weeks:

  • new version of SZARP for windows was made available – this version comes with much improved (over a factor of 2.5) data synchronization speed – it is much quicker now and on par with its linux counterpart
  • one of our colleagues finished his work on new component in our system: pyipk, a plugin-based extensible application for manipulating SZARP configuration files – params.xml. This is first SZARP application that sports both console and graphical (Qt based) user interface.
  • with the coming of the spring SZARP dev team have made some refactoring of parts of our code base that got a little bit clunky over time, with cleaner code we will be able to provide new features and improvements more quickly
  • a new major feature was added to SZARP – support for network params and sets (but we covered that already on http://szarp.org)

But thats by no means all what has happened with SZARP – since our last general update 2 months ago, there were over 700 commits to SZARP repository, with lots of small improvements and bug-fixes that are just impossible to list here.

See you next time and we wish you a Happy Easter!

SZARP on Oneiric!

SZARP packages for Ubuntu Oneiric were just uploaded to our packages repository. SZARP Oneiric packages can be accessed at :
http://newterm.pl/debian oneiric main. From now on expect regular updates of SZARP packages for Ubuntu Oneiric distro.

SZARP in autumn

Hello dear SZARP users.
Autumn was a busy period for SZARP developers who have been involved in a couple of big projects within SZARP system. Those projects probably won’t see the light of the day until beginning of the next year. In the meantime, however, we were able to bring some small and not small changes and improvements to SZARP codebase, more to come – stay tuned:

  • 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
  • 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 was switched from DOM to xmlTextReader based, thus reducing memory consumption of configuration parsing process

SZARP, what’s up?

Summer in nearly over and our users, having came back from holidays, must be dying to know what was happening to their favourite SCADA suite while they were away. Probably the best way is to install latest SZARP version and see for yourself but in case you need a short summary – here it comes:

  • 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.
  • 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
  • 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.
  • 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.
  • Added configurable graph scaling for user defined draws in draw3 application.
  • 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.

SZARP in 2012

Happy New Year to all SZARP users!
SZARP development team is happy to share with you a list of cool stuff that happend to your favourite SCADA suite at the beginning of new and the end of previous year:

  • January saw introduction of libpyszbase Python 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.
  • 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.

Network params and sets in draw3!

We are pleased to announce that latest version of SZARP for Ubuntu Natty and Debian unstable (this code is going to be make it into stable in a matter of a couple of days) contains support for network sets and parameters. This is a major feature that we have been working on for quite a while already.
The purpose of this feature is to let users share user defined sets and parameters. We hope that this will have a big impact on the way user defined sets and parameters are used. Most importantly it is now trivial to introduce/modify sets and parameters that are visible by all users of specific SZARP installation (and they are not even limited to just one installation – such sets and params may refer to more than one SZARP configuration). Furthermore, there won’t be any longer much need to manually export/import user defined sets and params between terminals that are supposed to share the same user setup. And, last by not least, all the network params and sets are automatically backed up on Newterm server – in case of failure of hard disk on terminal machine or event of this kind information about user sets has no chance of being lost anymore.
We hope that our users will enjoy using this feature as much as we enjoyed creating it.

Ubuntu support!

Since Ubuntu is based on Debian, which is “official” SZARP distribution, it was always quite easy to build and run SZARP on Ubuntu on one’s own. As easy as building from source might be (SZARP is based on automake so it is just a matter of issuing ./configure; make; make install) – the fact is that nothing, in terms of convenience, beats having a repository of precompiled packages for your distribution of choice. And here it comes – as of today, we start to support SZARP on Ubuntu. We plan to provide compiled packages for latest and LTS versions of Ubuntu. For now we have repository for Natty – point your favourite package manger at http://newterm.pl/debian (yes, Ubuntu shares URL with our Debian repo) and … have fun 🙂

News from SZARP

Some highlights of SZARP development that happened over last two months:

  • Added experimental faster XML parser for IPK library – speeds up starting of SZARP applications and reduces memory usage.
  • Added option in draw3 app to sort draws in current set by ther maximum/minimum/hoursum/average value (from current view or time range marked by double cursor).
  • Added automatic assignment of colors for arbitrary number of draws in draw3 application.
  • Behaviour improvements in dealing with large draw sets in draw3 program.
  • Fix of percentage display in tooltip in Summary Window of draw3 program.
  • 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 ‘?’.
  • 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 a 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.

SZARP changes – decade and more

Last changes in Draw3 program include support for displaying data with average values calculated for whole year. With default displayed number of years set to 10, it allows to quickly compare parameters values along decade period. It’s a useful feature for our users with extensive data history.

The other significant change is removing of limit of 12 draws per set. Starting with 3-rd version of Draw program, this limit was not a technical cause, but rather a result of compatibility and GUI decisions. But we decided to give the choice of having more draws (and having to scroll the list) to users.

Under the hood we fixed some problems that occurred in installation with large number of parameters (we recently run configuration with over 10000 parameter). Also borutadmn meta-driver got some fixes for Modbus RTU slave and TCP server modes. The new important functionality is the ability to run subdrivers designed for serial connections through TCP connection. It allows to use e.g. Ethernet/RS232 proxies without any modification in subdriver. | Last changes in Draw3 program include support for displaying data with average values calculated for whole year. With default displayed number of years set to 10, it allows to quickly compare parameters values along decade period. It’s a useful feature for our users with extensive data history.

Ready for Squeeze

Three days after releasing a new Debian version – 6.0 “Squeeze” – SZARP packages for these release are ready to download. You just need to point your apt sources to
http://szarp.org/debian squeeze main.

As SZARP was always able to compile itself on current Debian unstable, there were no code changes required to prepare packages for Squeeze. We just need to adapt to some new requirements of this release, for example to abandon requirement of ISO encoding for Polish installation and allow to use UTF-8.

Currently our stable repository still points to lenny (5.0) compatible packages. This will change when we are ready to upgrade all our automatically upgraded SZARP installations, and this will require time.

And congratulations to all Debian team!