Release Notes

Summary

The official release 2025 of the IFW includes the following products:

ICS Framework Product

Repository/Waf project

Product version

RPM version

Application Framework

rad

6.2.0

elt-rad-6.2.0

Test Runner Framework

etr

3.3.0

elt-etr-3.3.0

Sequencer

seq

4.4.0

elt-seq-4.4.0

Data Display Tool

ddt

1.2.1

elt-ddt-1.2.1

Camera Control Framework

ifw-ccf

5.0.2

elt-ifw-ccf-5.0.2

Observation Coordination Framework (daq)

ifw-daq

3.2.0

elt-ifw-daq-3.2.0

Observation Coordination Framework Interface (daqif)

ifw-daqif

2.0.0

elt-ifw-daqif-2.0.0

Observation Coordination Framework (sup)

ifw-sup

5.0.0

elt-ifw-sup-5.0.0

Observation Coordination Framework Interface (supif)

ifw-supif

1.1.1

elt-ifw-supif-1.1.1

Widget Library (wdglib)

ifw-wdglib

1.1.0

elt-ifw-wdglib-1.1.0

RTMS Tools

ifw-rtmstools

3.0.0

elt-ifw-rtmstools-3.0.0

Calibration Framework (calob)

ifw-calob

1.0.0

elt-ifw-calob-1.0.0

Function Control Framework (fcf)

ifw-fcf

7.1.4

elt-ifw-fcf-7.1.4

Function Control Framework Interface (fcfif)

ifw-fcfif

1.1.0

elt-ifw-fcfif-1.1.0

Online Data Processing

ifw-odp

5.0.0

elt-ifw-odp-5.0.0

Fundamental Definitions and Tools (fnd)

ifw-fnd

1.0.0

elt-ifw-fnd-1.0.0

Frame Grabber Framework (fgf)

ifw-fgf

1.0.0

elt-ifw-fgf-1.0.0

Miscellaneous Core Libraries (core)

ifw-core

6.0.1

elt-ifw-core-6.0.1

Template Library (tpl)

ifw-tpl

1.0.0

elt-ifw-tpl-1.0.0

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 new in this release?

  • IFW adapted to the latest ELT Software Stack (ELT Platform 2025)

  • New component: Frame Grabber Framework (ifw-fgf). This component is aimed to provide a solution when it is not possible to use standard interfaces such as GigE Vision for technical cameras or RTMS for wavefront sensor cameras.

  • New component: Fundamental Definitions and Tools (ifw-fnd). Library with basic definitions for other IFW components.

  • New component: Template Library (ifw-tpl). Library with common definitions for implementing sequencer templates.

  • Some improvements in DDT, such as:
    • Porting to Qt6 and ELT DevEnv 6

    • Refactored DDT Image Widget to allow using it in other contexts.

    • Improved return codes of DDT binaries.

  • Some improvements in the Sequencer, such as:
    • Support of large sequences containing more than 200 nodes.

    • OB variables tab: Set column width automagically based on content.

    • Added drop down list for keyword list parameters in variable tabs.

    • fetching of obs from ob list pop up window is supported

  • Some improvements in FCF such as:
    • Porting to Qt6 and ELT DevEnv 6

    • MultiAxis device divided in two devices to cover the tracking and non tracking requirements.

    • Added customization of FITS headers.

    • Adapted FCF dictionary to be compliant with DICB.

    • Added support for OPTI FITS keywords

    • Significant performance improvements in SmarAct controller (PLC).

  • Some improvements in CCF, such as:
    • Improved Telemetry Service, including storing parameters as native types in the OLDB and storing in FITS header (configurable).

    • Added support for ENVision Protocol.

    • Ported to use IFW global data type definition from new component “ifw-fnd”

    • Added support for data type UInt32 (recipes and FITS Publishers).

    • Change ROI OffsetX/Y to use (1,1) for lower left coordinate rather than (0,0) (to align with NGC2).

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:

Development Environment

  • The Development Environment (DevEnv 6) has been upgraded to Fedora 40

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/v7.0.0

All libraries have been created with TwinCAT 3.1.4024.65.

Required TwinCAT 3.1 build is 4024.65 or higher.

Required OPC UA Server version is 3.3.16.0 or higher.

Known Problems

  1. Errors running GUIs for the first time after installation:

Errors may occur when running the GUIs for the first time after installation. These errors are due to missing OLDB attributes dynamically created by the applications.

Backwards incompatibilities

1. Namespaces have been updated to include the “ifw” consistently. This has been done to avoid name clashes and defining better the scope of the components. All IFW components are affected by this change, and it will probably break user application software. This affects the namespaces in C++ code, C++ header files paths, Python libraries, log information, and more.

In most cases, it is enough to add “ifw” to obtain the fully qualified names, e.g. the namespace “core::dit::did” should be modified to “ifw::core::dit::did”.