ssSetBusOutputAsStruct

Specify whether the output bus signal from an S-function must be virtual or nonvirtual

Syntax

void ssSetBusOutputAsStruct(SimStruct *S, int_T portNum, boolean_T val)

Arguments

S

SimStruct that represents an S-Function block

portNum

The zero-based index of the output port of the S-function block

val

True, if the output signal is a nonvirtual bus and should be converted to a virtual bus; false otherwise

Returns

Nothing

Description

Use this method to specify whether the output bus signal from an S-function must be virtual or nonvirtual. If you specify a virtual bus, Simulink® inserts a Signal Conversion block (with the Output block parameter set to Virtual bus) at the output of the S-function when you update the model.

Bus S-function Usage Guidelines

Use this S-function in simulations. You cannot use this S-function for code generation.

This S-function does not support bus elements that have any of the following characteristics:

  • Variable dimensions

  • Frames

  • Enumerated (enum) data types

To use this S-function and other bus-related S-functions, before you run the simulation, execute the following MATLAB® command:

set_param(block_handle, 'EnableBusSupport', 'on')

To automate setting the EnableBusSupport parameter, use one of the following approaches:

  • Add the command to the model initialization callback.

  • Mask the S-Function block and add the command to the mask initialization callback

Languages

C, C++

Example

static void mdlInitializeSizes(SimStruct *S)
{
    char* busName;
    
    /* Bus object name is passed in as a parameter */
    ssGetSFcnParamName(S, 0, &busName);
    ssSetBusOutputObjectName(S, 0, busName);

    /* Output nonvirtual bus */
    ssSetBusInputAsStruct(S, 0, true);
    ssSetBusOutputAsStruct(S, 0, true);

        …
 }
Was this topic helpful?