Expected release date: 4th April 2022.
This is a minor release for some widget enhancements. There are no new widgets. The qeframework, qeplugin and qegui project files now check for Qt6 and issue an error message.
These widgets now subscribe for zero elements by default. The actual number of elements returned by the server is determined by the record. For example a waveform record will return the number of elements as specified in its .NORD field. This can significantly reduce network bandwidth and client memory usage.
For use with older versions of base or non-IOC servers that do not support this functionality a new property, fullLengthArraySubscriptions, is available to re-instate the previous behavior.
The write trace to file functionality has been updated to:
As well as by the context menu, this functionality can now be invoked using a new strip chart slot: writeTraceToFile(int). This can be triggered from any widget then has an int (range 0 to 15) signal, e.g. QEPushButton.
There is also a new property, numberPvsVisible, to set initial number of PVs seen in the PV Item frame.
The QEStripChart now allows transparent colours (i.e. setting the alpha channel) when selecting PV colours.
This widget has been updated to allow a lightness threshold and colour to be specified, such that where the image’s lightness is greater than or equal the threshold value, the colour is replaced by the threshold colour. Both the threshold and colour are defined as properties and may be updated using slot functions.
Please refer to the updated documentation for this widget for details.
Updated to set the PV item list width in post construction slot function to ensure consistent and expected behavior.
The QEPlotter now allows transparent colours (i.e. setting the alpha channel) when selecting PV colours.
The macro facility for the QEMenuButton widget has been extended to include menu and sub-menu names, PV names, and PV values. It already applies to ui file names, program names and program arguments.
The widget now allows data time text to be copied to the copy-paste buffer using the context menu. The QEDateTime widgets now all use a single timer object to ensure common application wide synchronisation and use the size hint mechanism rather than setting a minimum size.
The widget now allows boolean inputs (as well as int and double).
The AMIM field has been added to for motor record’s set of fields.
Note: The AMIM field is an Australian Synchrotron special.
The designer editor setup form now includes the atomic number as well as the element abbreviation in the check box text.
Formal release date: 31th January 2022.
The most significant changes to the EPICS Qt framework for the 3.8 release series are:
The details of each of these are described below.
Internal changes means the framework now needs acai-1-6-2 or later.
The project files have been updated to generate warning message to indicate there is no more Qt4 support.
Re-working the adl2qe tool.
Following a “nasty” e-mail from github regarding size usage, the qeBinaries repository has been deleted.
This widget provides a combo box that allows the user to select an string from a pre-defined list of strings, which is then written to the connected PV. The set of strings may be defined as a QStringList property or read from a text based configuration file. Please see QESelector.pdf, located in qtepics.github.io repo, for details.
This widget is a combination QEGroupBox/QEForm widget (it inherits from QEGroupBox and contains a QEForm widget).
Please see QEFormGroupBox.pdf, located in qtepics.github.io repo, for details.
The main change is to provide a separate thread for dealing with each archive specified by the QE_ARCHIVE_LIST environment variable. In this way, data may be retrieved from one archive without having to wait for all the archives to complete initialising (i.e. providing a list of available PVs).
The other benefit of this update is that the duplicate PV warning, as in warning that the same PV is available from multiple archives, now works as intended.
Known issue: the number outstanding requests status that appear on the stripchart and in the archive status widget sometimes loses track. This is being investigated.
From a users point of view, e.g. when using stripchart to retrieve historical data, there is no change.
From a developer’s point of view, there is no change unless your code relies on in-directly including required header files. See the change made to rad_control.cpp in the qeReadArchive repo for an example of this.
Many, but not all, functions/properties etc. flagged as deprecated have been removed.
The most common is the displayAlarmState boolean property and associated support functions. The property itself has been hidden, as in DESIGNABLE false, for many years and has been supceeded by the displayAlarmStateOptions property.
From a users point of view, designing/using ui files, there is no change. However from a developer’s point of view, e.g. developing third party widgets and plugins base on the EPICS Qt framework, some code changes may be required.
These widgets (i.e. those that inherited from QEAbstractDynamicWidget) have been modified to update the main window title when a config file successfully loaded or saved.
Utility functions have bbeen added to QECommon to help acheive this, and the saveWidget/restoreWidget functions out of the persistanceManager have been modified to return a boolean success/failure value.
This is still being developed.
The QESurface is now based on own QESurface widget as opposed to the QT widget. This overcomes a number of issues, the main one being the widgget is displayed in-situ as opposed to being a button that opens a separate window.
A data binning capability has been added.
We now expose the margin as a property in QESpectromgram and the QEWaterfall widgets, and modified the QESpectromgram to allow third party display mamanger/plugin to register a customisation paint function.
Like QEImage (see below) the context menus modified to indicate that flip/rotate is a local data manipulation.
Modified PV properties to “know” which fields are potential PV names - the loss of obligatory “:” was the driver at the Australian Synchrotron; but is good for more general users anyway.
In the record_field_list.txt, a field name with an * suffix is both read as a long string and flagged as a PV name, and as such these fields get the usual context menu options (plot strip chart etc.).
Added the aSub input fields (A,B,…U) and output fields (VALA, VALB,…VALU) to the set of available fields, and added the common AMSG and UTAG fields to the record field list file to support base-7.0.6.
Note: the widget code now checks for DBF_CHAR, not CHAR when checking for the field type (needs acai-1-6-2 or later).
The button properties have been re-redered to locate the more important properties towards the top of the property editor - no function change per se.
All three headers files have been brought into alignment as far as possible.
Updated to allow an optional in built apply button. When selected the write on change, write on enter etc. options are turned off. The value is written only when the apply button is clicked. The default button text is “A” (for apply), however this can be changed with the applyButtonText property.
Also included a force sign property a la QELabel etc.
Note: the default addUnits property value has changed from true to false.
Modified the QEGroupBox designer icon to be more QGroupBox like.
Modified the context menu text/legend to emphasis that some of the data manipulation controls are local control only. Added use false colour to the options dialog, and made the use false colour and show time functions slot functions. No functional change per se.
The QEMenuButton widget now allows the use macros for the button text.
Allow zero pen width and use this to indicate no trace plot required. Also clears any old data when new connection is being (re-)established.
Ensure effective plot sizes are no greater than available data size (to avoid seg fault).
When pruging the Stringchart data list of real-time data points, delete in chunks of 100 rather than individually - reduced CPU load for really fast updating PVs. Also removed potential seg fault situation when attempting to access the description.
Removed the overly restrictive minimum size limits.
The QESubstitutedLabel text property is now hidden, i,e not designable. The actual text prperty value is created from the labelText property and any substitutions.
Added a Reconnect All PVs menu option to qegui/qeframework. This will close all the channels on the form, and then re-connect and re-subscribe.
Please see the release notes 3.7 page for the the 3.7 series release notes.
Please see the release notes 3.6 page for the the 3.6 series release notes.
Please see the release notes 3.5 page for the the 3.5 series release notes.
Please see the release notes 3.4 page for the the 3.4 series release notes.Last updated: Sat Apr 2 15:27:44 AEDT 2022