Engee documentation

Function-Call Split

A component that divides a function-call signal into several parts.

blockType: FunctionCallSplit

Path in the library:

/Basic/Ports & Subsystems/Function-Call Split

Description

Block Function-Call Split allows a function-call signal to branch out and lead to several function-call subsystems.

Function-call subsystem connected to the output port of the block Function-Call Split, marked with a dot, runs before subsystems connected to other output ports. If the data dependencies between subsystems do not support the specified execution order, block Function-Call Split returns an error. To fix this error, we recommend using the block Unit Delay. Adding this block delays the corresponding function call, thereby eliminating the data dependency cycle.

To display the execution order of the function-call subsystems connected to the branches of the specified function-call signal, in the settings of the Engee editor on the Debugging tab in the Information display section, select the checkbox next to the Block execution order option.

The following model shows how to use the block Unit Delay to bypass the data dependency error caused by the block Function-Call Split. The block breaks the cycle of data dependencies between subsystems f1 and g1'. The model provides sequential execution of `f1 before g1'. At this stage of execution, the subsystem `f1 uses the output data g1 calculated at the previous stage of execution.

ex function call test 003

Limitations

Block Function-Call Split It has the following limitations:

  • All function-call subsystems connected to this function-call signal must be at the same level of the model hierarchy.

  • Branched function-call subsystems and their child elements cannot be directly connected to the initiator of the function call.

  • Function-call subsystems connected to the branches of the function-call signal cannot have multiple (multiplexed) signal sources.

  • You cannot receive function-call signals from the Merge components and send the final signal to the block input. Function-Call Split.

Ports

Input

# IN_1 — function call string
scalar

Details

The blocks Function-Call Generator, Engee Function or Hit Crossing can be sources of function call events.

Data types

Float64

Complex numbers support

Yes

Output

# test — function-call signal
scalar

Details

A function call string connected to the function-call subsystem.

Data types

Float64

Complex numbers support

Yes

# OUT_2 — function-call signal
scalar

Details

A function call string connected to the function-call subsystem.

Data types

Float64

Complex numbers support

Yes

Parameters

Main

# Icon shape — choosing the shape of the block icon
distinctive | round

Details

Choosing the shape of the block icon.

The parameter can take the following values:

  • distinctive — rectangular block icon;

  • round — round block icon.

Usage in program code

Block parameter: IconShape

Type: character vector

Values: 'distinctive' | 'round'

By default: 'distinctive'

Values

distinctive | round

Default value

distinctive

Program usage name

IconShape

Tunable

No

Evaluatable

No

# Number of output ports — specifying the number of output ports
Int64 integer

Details

Specifies the number of output ports of the function-call signal.

The parameter can take the following values:

  • 2 — two function call output ports;

  • `integer' — integer.

Usage in program code

Block parameter: NumOutputPorts

Type: character vector

Values: '2' | 'integer'

By default: '2'

Default value

2

Program usage name

NumOutputPorts

Tunable

No

Evaluatable

Yes

# Output port layout — choosing the order of the output ports
default | reverse

Details

Choosing the order of the output ports of the function call, depending on which port provides the function call first (this port is marked with a dot on the block icon).

The parameter can take the following values:

  • default — the upper port is the first to provide a function call;

  • reverse — The lower port is the first to provide a function call.

Usage in program code

Block parameter: OutputPortLayout

Type: character vector

Values: 'default' | 'reverse'

By default: 'default'

Values

default | reverse

Default value

default

Program usage name

OutputPortLayout

Tunable

No

Evaluatable

No

Block Characteristics

Data types

FunctionCallEvent

Direct passage

No

Multidimensional signals

No

Variable-size signals

No

Zero crossing detection

No