Release Notes¶
Summary¶
The release 5 beta of the IFW includes the following products:
ICS Framework Product |
Repository/Waf project |
Product version |
RPM version |
---|---|---|---|
Application Framework |
rad |
5.1.0 |
elt-rad-5.1.0 |
Test Runner Framework |
etr |
3.1.1 |
elt-etr-3.1.1 |
Sequencer |
seq |
4.0.0-pre3 |
elt-seq-4.0.0-pre3 |
Data Display Tool |
ddt |
1.0.0-pre1 |
elt-ddt-1.0.0-pre1 |
Camera Control Framework |
ifw-ccf |
3.0.0-pre2 |
elt-ifw-ccf-3.0.0-pre2 |
Observation Coordination Framework (daq) |
ifw-daq |
3.0.0-pre2 |
elt-ifw-daq-3.0.0-pre2 |
Observation Coordination Framework (sup) |
ifw-sup |
3.0.0-pre3 |
ifw-sup-3.0.0-pre3 |
Widget Library (wdglib) |
ifw-wdglib |
0.1.0-pre1 |
ifw-wdglib-0.1.0-pre1 |
Function Control Framework |
ifw-fcf |
5.0.0-pre2 |
elt-ifw-fcf-5.0.0-pre2 |
Online Data Processing |
ifw-odp |
4.0.0-pre1 |
ifw-odp-4.0.0-pre1 |
Miscellaneous Core Libraries |
ifw-core |
5.0.0-pre2 |
elt-ifw-core-5.0.0-pre2 |
RTMS Tools |
ifw-rtmstools |
1.0.0-pre1 |
elt-ifw-rtmstools-1.0.0-pre1 |
The links to the components release in Gitlab are :
Note
Repository for Binaries:
We have moved our binaries to GIT Large File Storage (LFS). This includes but is not limited to PLC compiled libraries, PLC modules and other utilities (binaries for Windows).
What is the scope of this version?¶
Version 5 beta is a pre-release of the IFW under Fedora distribution. This release tries to keep updated developers with the latest developments the ELT software stack. The official version 5 will be released at the end 0f 2023. The IFW version 5 beta completes the integration to the CII OLDB and config-ng services. The integration with other CII services will continue in the future versions of the ICS Framework according to the availability of the CII services.
What is new in this release?¶
Completed Integration to Config Service including dictionaries.
Upgraded to OLDB.
Integration to CCS Telescope Simulator (HLCC). The telescope simulator has been developed at ESO by the HLCC team and they have made available a beta version for its integration with the Instrument Software. This integration is only at the level of the template instrument. For more information about HLCC refer to the User Manual
Replaced Softing by open62541 (OPCUA client library)
New component added (ifw-wdglib). This is currently a tiny component intended as a repository of generic widgets for IFW components.
Porting to asyncio version of Python OPCUA library.
- Some improvements in DDT, such as:
Improved handling of graphical objects. They can now be moved/resized after creation.
Added support for overlay graphics based on JSON format.
Added possibility to change image contrast and scale from colour bar widget.
Improved handling of files with multiple data units.
Added menu option to clear the loaded image.
Disabled auto zoom when using one of the zoom or scale buttons.
Added option to invert colour map in the colour map dialog.
Several improvements to the pickup object dialog including automatic update of pickup object data for new image events.
- Several improvements in the Sequencer, such as:
Added integration to OTTO interface
Added OTTO simulator.
Removed dependency on Redis (replaced by FastDDS)
Allowing execution of individual steps.
Improved status report to the users by a new set of icons.
Added option to reset last execution (new button in the GUI)
Implemented contextual logs.
- Some improvements in FCF such as:
Several minor improvements in the FCF GUI.
Added support for SmarAct controllers.
Added support for IODev devices (WS part).
Completed TRS interface for PLCs. Validated with TRS monitoring system.
Improved CCS simulator.
Refactored Derotator device. Added offset during tracking.
- Some improvements in CCF, such as:
Development of CCF OPCU-UA/RTMS communication adapter.
Added support for Cubes.
For a more detailed list of changes, please refer to the individual component release notes.
Some of the third party products and middleware solutions used by the ICS Framework are:
Qt Framework for developing GUIs.
ZeroMQ for implementing request/reply and publish/subscribe message patterns.
Google Proto Buffers for serialization/deserialization.
Open62541 OPC-UA toolkit for communication to the PLCs
FreeOpcUa toolkit for implementing OPCUA servers in Python.
Google Tests and Mockup libraries for unit tests.
Robot Framework for integration tests.
Nomad/Consul for software deployment.
JSON format for setup serialization. The Development Environment includes libraries in C++ (nlohmann) and Python (json) to work with JSON format.
Development Environment¶
The Development Environment has been upgraded to Fedora 34 v4.5.
The DevEnv 4.5 now includes the dfits tool for viewing FITS image headers from the command line.
For a detail release notes of the Development Environment, please visit here
Instrument Specifics Packages¶
To facilitate the development and integration, the IFW is now delivered as a set of additional RPMs to be installed on top of the Development Environment. This saves developers from retrieving, building and installing the IFW by their own. The additional RPMs are not part of the Development Environment since this is specific for instruments and therefore its installation shall be done on demand.
Components¶
Rapid Application Development (RAD)¶
The is an application framework that enables the development of event-driven applications for the ELT, based on call-backs or state machines.
For details, see the rad user manual.
Extensible Test Runner (ETR)¶
The component etr is included in the release to support running integration tests. The following features are available:
Run Robot Framework tests with the robot plugin.
Request test resources with the resources plugin.
Modify template files with Jinja2 template engine and the jinja2 plugin.
Deploy software with Nomad with the nomad plugin (experimental support).
For details see the etr user manual.
Sequencer¶
The component seq is included in the release to support the implementation of engineering scripts. The following features are available:
Sequencer Engine
Sequencer API
Sequencer CLI
Sequencer GUI (experimental)
For details see the seq user manual.
Function Control Framework (FCF)¶
Device Manager¶
Supported Devices¶
Shutters
Configuration parameters: initial state (open, closed), timeout for HW operations, signal logic, and more.
Close/Open control.
Lamps
Configuration parameters: initial state (On, Off), timeout for HW operations, signal logic, and more.
On/Off control.
Intensity control.
Automatic switch off after a timeout.
Motors
Configuration parameters: maximum velocity, axis type, initialisation sequence, timeouts, SW limits, backlash compensation, usage of brakes, named positions, and more.
Move in absolute encoders and user units.
Move using named positions.
Move in relative encoders.
Move in speed.
IOdevs
Monitor a list of engineering variables.
Values are not continuously read from the LCS but updated on data change.
Write digital and analog signals.
Derotators
Five operation modes: engineering, stationary, sky, elevation and user defined.
Tracking computation is based on slalib running in the PLC.
ADCs
Two operation modes: off and automatic.
Multi-axis support.
Tracking computation is based on slalib running in the PLC.
Piezos
Two operation modes: position and automatic.
Supports up to three axes.
Move in bits and userunits.
Actuators
Generic On/Off control.
Device Simulators¶
FCF provides a set of simulators to all supported devices. The simulators have been implemented in Python based on the FreeOpcUa toolkit and the “rad/scxml4py” engine.
Engineering Graphical Interfaces¶
The Device Manager includes two graphical applications, see fcf_gui_ref.
Warning
These two applications shall be considered just as a prototype implementations. Their design (color scheme, layout and in general their look&feel) may change in the future according to the development of ELT widget libraries and standards for graphical interfaces.
FCF GUI (
fcfGui
): Engineering interface for the control and monitoring of Device Manager and devices under its control.Motor GUI (
fcfMotGui
): Engineering interface for the control and monitoring of a single motor device, implemented in Python.
PLC Libraries¶
PLC Libraries are now available in GIT and can be retrieved from the ifw-resource repository. Note that this repository uses the LFS (Large File Storage) Git extension. All libraries are located in the same directory. This simplifies the installation of the libraries in the TwinCAT IDE.
The PLC source code can be retrieved from: https://gitlab.eso.org/ifw/ifw-ll/-/releases/v5.0.0-pre1
All libraries have been created with TwinCAT 3.1.4024.35.
Required TwinCAT 3.1 build is 4024.35 or higher.
Required OPC UA Server version is 3.3.16.0 or higher.