Since version 1.3.0 the news page will be replaced by CHANGELOG.md. It can be found both in the cumbia-libs project root and here.
The *cumbia-libs* main project version may be more up to date!
Changes in 1.3.0 shall provide an enhanced performance and brings a lighter and more readable code in cumbia-tango.
Version 1.2.3 keeps improving cross engine transparency introducing sources that fetch Tango database properties. Numerous small issues have been fixed and a new feature for the Tango (and the http) engines allows changing source arguments in (polled) commands on the fly through a lightweight call to CuContext::sendData.
Support for Tango database readings has been added by means of setSource.
getContext()->sendData() supports an "args" parameter to change the source arguments for readers
The qumbia-apps module includes a new quapps utility that offers automatic cumbia module (engine) detection at application startup. Just include quapps.pri from your path/to/cumbia-libs/include/quapps to use the CuModuleLoader helper class.
Reading class properties is accomplished by a source like tango://TangoTest(ProjectTitle,Description) Device properties can be obtained like tango://ken:20000/test/device/1(description, helperApplication,values), and get the list of attributes of a device through ken:20000/test/device/1(description, helperApplication,values)
Type
cumbia read --help
and scroll to the section Read the Tango database to play and get acquainted with this new functionality in no time!
This new feature allows to get properties in your app with just the little code needed for usual sources, and integrate them easily in graphical elements. Have a look at this documentation page.
Nowadays the need to access control systems from home and portable devices is constantly growing. The new cumbia-http has been designed with this purpose and http and Server Sent Event services in mind. When such services become available, clients of any kind will be able to connect from anywhere!
Include cumbia-http in your installation is as easy as adding http to the scripts/cubuild.sh command.
The new header file provided by *qumbia-apps/quapps* module allows to find and load all available cumbia engines, depending on optional command line arguments. Thanks to this and to the flexible cumbia design, it is possible to connect any application to a native control system engine or let it obtain data through *http* or *websocket*.
The cumbia project wizard now creates a multi engine version of the application when migrating from a QTango project.
cumbia read has been expanded in order to support the cumbia-random module and a great number of command line options. Coupled with the qumbia-tango-findsrc-plugin and the qumbia-tango-find-src app, that can be installed from github. it provides Tango sources auto completion on the command line.
Hint: hit the TAB key to auto complete Tango source names.
description | command |
---|---|
read sources from heterogeneous engines | cumbia read test/device/1/double_scalar epics:ai1 random://rnd/1/0/10 |
read sources configuration only, from heterogeneous engines | cumbia read test/device/1/double_scalar epics:ai1 --property |
Impart a Tango command to read an array three times, truncate the output to 8 elements, print with a custom format | cumbia read inj/diagnostics/rtbpm_inj.01//GetHorPos[0,1000] --truncate=8 --3 --format="%.4f" |
Monitor a Tango command | cumbia monitor inj/diagnostics/rtbpm_inj.01//GetHorPos[0,1000] --truncate=8 |
Filtered list of Tango device properties | cumbia read --tp test/device/1:helper* |
Read a Tango attribute property | cumbia read --tp test/device/1/string_scalar/values |
More examples here.
Additional features:
The read/write locks adopted to provide greater speed require a compiler supporting the C
Version 1.1.0 allows the application developer to customize how threads are grouped together, as well as to define an upper limit on their number. The *cumbia-tango* engine groups threads by Tango device. If you want to customize the default behaviour, refer to the CuTThreadTokenGen and the Cumbia::setThreadTokenGenerator documentation pages. Additionally, timers in polled reads can be reused in order to limit timer threads. See the CuTimerService documentation.
CuTdbPropertyReader
cumbia-random has been expanded in order to offer great flexibility to test higher level cumbia modules and applications with greater accuracy. Source names alone can specify how data is generated, threads grouped and much more. JavaScript functions in .js files can be set as source of data for the cumbia-random module.
CuPluginLoader provides a template method to quickly obtain an instance of the desired plugin. See CuPluginLoader::get.
An external new plugin named qumbia-tango-findsrc-plugin and the qumbia-tango-find-src app are available from github.com The utility finds the name of a Tango source (attribute or command) from a partial name. The plugin can be loaded from any application willing to provide Tango sources auto completion.