Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

ssGetBusElementOffset

Get the offset from the start of the bus data type to a bus element

Syntax

int_T ssGetBusElementOffset(SimStruct* S, int_T busTypeID, int_T elemIdx)

Arguments

S

SimStruct that represents an S-Function block

busTypeID

The bus data type identifier that represents the bus signal

elemIdx

The zero-based bus element index

Returns

int_T

Description

Use to get the offset, in bytes, from the start of the bus data type to the bus element that you specify and to obtain a pointer to the memory location of the bus element. The ssGetBusElementOffset S-function accounts for the data type, complexity, dimensions, and any padding between the start of the bus signal and the bus element that you specify.

Languages

C, C++

Example

static void mdlOutputs(SimStruct *S, int_T tid)
 {
    DTypeId    dType    = ssGetOutputPortDataType(S, 0);
    const void *u       = ssGetInputPortSignal(S, 0);
    int        numElems = ssGetNumBusElements(S, dType);
    int        i;
    
    for(i=0; i<numElems; i++) {
        int_T offset = ssGetBusElementOffset(S, dType, i);
 
        /* Assume that the bus element is of type double */
        const double *in = (const double*) ((const char*)u + offset);
     }
  }

Introduced in R2010a

Was this topic helpful?