Receive and transmit filters¶
It is possible to configure how Data Engine signals react when they are either received (RX) or transmitted (TX) using filters. These filters are part of the generated code which LinX Manager Data Engine injects into projects. This section will describe the key differences between the available filters and how to use them to your advantage.
Filter options¶
On Change¶
Receive¶
Prevent signal to be emitted if the value is the same as the last one received . Common practice for signals in Qt projects to minimize the number of emits in the application. Recommended global RX option.
Transmit¶
Prevent signal to be transmitted if the value is the same as the last one transmitted.
Global and individual setting¶
The filters can be either set globally from the project settings panel or adjusted for each individual signal via the overview table. Global option set to “On Change” for RX signals and to “None” for TX signals is suitable for most projects.
When to use individual options¶
There are some cases when the global option is not ideal for all signals. Below is one example in which setting the filter on an individual signal can be helpful.
Receive response signals¶
An application receives multiple cyclical Data Engine signals and a few that are received irregularly. The global RX filter is set to “On Change” to only update UI elements when a received value changes (increases performance).
For some of the received signals, it is a system requirement to know that a value has been received even when the value generated remains a constant. Overriding the global setting is therefore required.
This can be the case when a request is sent to another system to perform an action. Later when the action is completed and the application receives the response, it could contain the same result as one received earlier. To allow the application to know that the response was received and act accordingly it is required to set the RX filter for the response signal to “None”.