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:
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.
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