Rte_IrvIRead and Rte_IrvIWrite

Rte_IrvIRead implements implicit data read access on an interrunnable variable.

For scalar interrunnable variables, implicit data read access of a runnable entity means that at the beginning of the runnable entity the RTE copies the value of the 'master interrunnable variable' to a dedicated buffer for that runnable. The content of the buffer will remain unchanged until termination of the runnable. All IrvIRead calls in the runnable entity return the content of this buffer.

For composite and complex interrunnable variables (i.e. interrunnable variables of array, matrix, or record type), implicit data read access returns a "non-modifiable pointer" to the array/matrix/record from which the values of the fields can be read.

Rte_IrvIWrite implements implicit data write access on an interrunnable variable.

For scalar interrunnable variables, implicit data write access of a runnable entity means that all Rte_IrvIWrite calls in the runnable entity modify the content of a dedicated buffer for the respective interrunnable variable for the respective runnable entity. At the end of the runnable entity, the RTE copies the value of this buffer to the 'master interrunnable variable'. If Rte_IrvIWrite is called more than once during the runnable entity, only the values of the last call are copied to the 'master interrunnable variable'.

For composite and complex interrunnable variables, implicit data write access means the following:

This guarantees data consistency over the values of an array, matrix, or record, since the element is written only once, prior to exiting the runnable.

In the ESDL editor for software components, implicit read and write access to interrunnable variables can be specified, e.g., as follows:

IRV_impl = A;

C = IRV_impl;

array_IRV = array;

array_IRV_1[in_X] = t_mot;

interrunnable = array_IRV_1[out_X];

record_IRV.t_mot = t_mot;

t_mot = record_IRV.n_avg + record_IRV.t_mot;

In the block diagram editor for software components, implicit read/write access to interrunnable variables can be specified as follows:

See also

Interrunnable Variables