June 05, 2024

Dear Reactis User:

We are pleased to announce the availability of:

  • Reactis for Simulink V2024
  • Reactis for C V2024
  • Reactis Model Inspector V2024
  • Reactis for Simulink V2023.2.2 patch
  • Reactis for Simulink V2023.0.4 patch
  • Reactis for C V2023.0.1 patch
  • Reactis for C V2022.0.2 patch

Reactis for Simulink V2024

The V2024 release of Reactis includes all bug fixes that were included in patch releases through V2023.2.2 plus the new features listed below.

Improved Static Analysis and Tester Coverage

Static model analysis in Reactis has been significantly improved, specifically in the following areas:

  • Tracing signals through Bus Creator and Bus Selector blocks
  • Tracing through individual elements of arrays (Mux/Demux blocks)
  • Tracing through assignments to local variables in Stateflow charts
  • Tracing through array indexing and record selection in Stateflow charts

These improvements enable Reactis to identify more unreachable targets in a model and to exercise more coverage targets in generated test suites.

Reactis for Simulink API on Linux

The Reactis for Simulink API is now available on Linux. Currently only Ubuntu Linux 22.04 LTS is supported (other versions or distributions may work but have not been tested). While the Reactis GUI is not yet available, using the Reactis API on Linux can be very beneficial for automated testing purposes.

Reactis can be installed on Linux using:

  • an installer script that installs Reactis for Simulink on Linux in a manner similar to the install process on a Windows machine, or
  • a Dockerfile that facilitates adding Reactis for Simulink to a Docker image in which MATLAB is already installed. Note that when running within a Docker container, Reactis requires a floating license, node-locked licenses are not supported.

For more information on how to install Reactis on Linux see the Installing and Starting Reactis for Simulink section in the Reactis for Simulink User's Guide.

After installing on Linux, the Reactis for Simulink API may be used in the same way it is on Windows as described in the Using the Reactis API from MATLAB section in the Reactis User's Guide.

Linking Between Reactis for Simulink and Reactis for C for TargetLink Models and Generated Code

Reactis V2023.2 introduced the capability to link between a Simulink model loaded in Reactis for Simulink and the corresponding C code loaded in Reactis for C. Clicking on a block in the model highlights the corresponding C code and vice versa. In V2023.2, this linking only worked for code generated by MathWorks' Embedded Coder product. Reactis V2024 extends this functionality to code produced by the TargetLink code generator of dSPACE.

If a model is loaded in Reactis for Simulink and the corresponding C code is loaded in Reactis for C, a connection can be established between the two. Once a connection is established, the following functions are provided:

  • Clicking on a block or Stateflow state or transition in the model will highlight corresponding C code comment(s).
  • Clicking on a comment mentioning a block in C code will highlight the corresponding block in the model.
  • Clicking on a line of C code will highlight all model blocks mentioned in the comment above the C code line.
  • Enabling or disabling Reactis Simulator in either Reactis for Simulink or Reactis for C will automatically do so in the connected session.
  • Setting a breakpoint on a model block or Stateflow item will set breakpoints on the first line of code below each comment mentioning the block.
  • Setting a breakpoint on a line of C code will set a breakpoint on each block mentioned in the comment above the C code line.

Option to Not Highlight Uncovered Targets

In Reactis Simulator, the Coverage menu now includes an entry Highlight Uncovered Targets to toggle whether uncovered targets are highlighted in red in the main Reactis panel and subsystem names are red if they or their descendants contain at least one uncovered target.

A use case for turning off Highlight Uncovered Targets is to more easily locate unreachable targets in your model. Unreachable targets are targets statically determined to be impossible to exercise. If Highlight Uncovered Targets is enabled, then in the hierarchy panel a subsystem name will be red if it or any of its descendants contain an uncovered target. This can mask whether the subsystem or any of its descendants contain unreachable targets, because the subsystem name will be purple only if the subsystem and all of its descendants contain no uncovered targets. Turning off Highlight Uncovered Targets will cause the hierarchy panel to display a subsystem name in purple if it or any of its descendants contain an unreachable target.

Newly Supported Simulink Features

The following Simulink features are newly supported in Reactis V2024:

  • MATLAB R2024a.

Embedded MATLAB (EML) Support Improvements

V2024 adds support for the following:

  • Element-wise logical operators | and &.
  • The det function.
  • More variations of the if-then-else syntax, including empty command lists, a constant as the guard, and an if statement all in one line.
  • More use cases of the end keyword for indexing vectors or matrices.
  • Empty end-of-line comments.
  • In a function definition, a line continuation ... immediately following the function keyword.

Reactis for C V2023

The V2024 release of Reactis for C includes all bug fixes that were included in patch releases through V2023.0.1 plus the new features listed below.

Linking Between Reactis for Simulink and Reactis for C for TargetLink Models and Generated Code

Reactis for C V2023 introduced the capability to link between a Simulink model loaded in Reactis for Simulink and the corresponding C code loaded in Reactis for C. Clicking on a block in the model highlights the corresponding C code and vice versa. In V2023, this linking only worked for code generated by MathWorks' Embedded Coder product. Reactis for C V2024 extends this functionality to code produced by the TargetLink code generator of dSPACE.

If a model is loaded in Reactis for Simulink and the corresponding C code is loaded in Reactis for C, a connection can be established between the two. Once a connection is established, the following functions are provided:

  • Clicking on a block or Stateflow state or transition in the model will highlight corresponding C code comment(s).
  • Clicking on a comment mentioning a block in C code will highlight the corresponding block in the model.
  • Clicking on a line of C code will highlight all model blocks mentioned in the comment above the C code line.
  • Enabling or disabling Reactis Simulator in either Reactis for Simulink or Reactis for C will automatically do so in the connected session.
  • Setting a breakpoint on a model block or Stateflow item will set breakpoints on the first line of code below each comment mentioning the block.
  • Setting a breakpoint on a line of C code will set a breakpoint on each block mentioned in the comment above the C code line.

Synchronize Test Harness with RSI File

When editing a test harness, the harness can be synchronized with an .rsi file. During synchronization, the type of each input, output, and configuration variable is changed to match the type of the corresponding input/output/configuration variable in the .rsi file. This allows test suites to be easily interchanged between the model and code. The synchronized harness makes it easy to exchange test suites between the model and code, which facilitates back-to-back testing of model vs. code behavior.

Synchronize Test Harness with RSI File

When testing C Code which was generated by TargetLink from a model which has been loaded in Reactis for Simulink, Reactis for C can now automatically import the test harness for the C code from the model. When creating a C test harness from an .rsi file, selecting Automatically match TargetLink names will create a harness in which each top-level port in the model is mapped to the corresponding variable in the C code. The imported harness makes it easy to exchange test suites between the model and code, which facilitates back-to-back testing of model vs. code behavior.

Reactis Model Inspector V2024

The V2024 release of Reactis Model Inspector includes the following new features.

  • Support MATLAB R2024a.

Reactis for Simulink V2023.2.2

The following bugs were fixed since V2023.2.1:

  • Reactis incorrectly delays some input signals for some function-call triggered subsystems (#5444).
  • "bug: uncaught exception: Subscript" when setting a harness in the parent system of a Model Reference block (#5438).
  • "Error: block within triggered subsystem cannot have sample time" for referenced models within triggered subsystems (#5441).
  • In EML, scalar expansion not working for vector updates (#5436).
  • Format of fixed-point values in M file exported from test suite is opposite of what user specifies (#5372).
  • M file exported from test suite may contain '~' (tilde) character for unary minus (negation) (#5378).
  • "bug: uncaught exception: Subscript" for some models when running simulation in Simulator (#5380).
  • Configuration variable values of 'single' type are exported with double precision in exported M files (#5393).
  • M file exported from test suite does not use fixpoint (fi) objects nor enum objects for outputs (#5390).
  • "Matlab evaluation error: Unrecognized function or variable" for some masks promoting parameters of built-in blocks (#5406).
  • Some EML/C targets still highlighted after turning off coverage highlighting (#5412).
  • In EML, empty end-of-line comment causes error (#5418).
  • Getting model statistics fails for some models containing model references (#5431).

Reactis for Simulink V2023.0.4

The following bugs were fixed since V2023.0.3:

  • Reactis incorrectly delays some input signals for some function-call triggered subsystems (#5444).
  • "bug: uncaught exception: Subscript" when setting a harness in the parent system of a Model Reference block (#5438).
  • "Error: block within triggered subsystem cannot have sample time" for referenced models within triggered subsystems (#5441).
  • Format of fixed-point values in M file exported from test suite is opposite of what user specifies (#5372).
  • M file exported from test suite may contain '~' (tilde) character for unary minus (negation) (#5378).
  • "bug: uncaught exception: Subscript" for some models when running simulation in Simulator (#5380).
  • Configuration variable values of 'single' type are exported with double precision in exported M files (#5393).
  • M file exported from test suite does not use fixpoint (fi) objects nor enum objects for outputs (#5390).
  • "Matlab evaluation error: Unrecognized function or variable" for some masks promoting parameters of built-in blocks (#5406).
  • In EML, empty end-of-line comment causes error (#5418).
  • Getting model statistics fails for some models containing model references (#5431).

Reactis for C V2023.0.1

The following bugs were fixed since V2023:

  • Cannot set tolerance to inherited in Reactis Harness Editor (#5447).
  • Small magnitude tolerance value is incorrectly imported from .rsi file (#5450).
  • Checkbox open scope for all inputs left checked after user declines to open the scope (#5421).
  • Valid C typedef inside switch statement reported as syntax error (#5401).

Reactis for C V2022.0.2

The following bugs were fixed since V2022.0.1:

  • Cannot set tolerance to inherited in Reactis Harness Editor (#5447).
  • Small magnitude tolerance value is incorrectly imported from .rsi file (#5450).
  • Checkbox open scope for all inputs left checked after user declines to open the scope (#5421).

You may download the patches or full installers from the Reactis User Pages.

Best Regards,
The Reactis Team

Back to Patches Archive