Macros for Accessing the Block Structure
The following macros are used to access vss_block structure inside the block simulation function. In all macros, the block argument is of type vss_block. n and m are strictly positive integer values.
- GetNin(block): Get the number of regular input ports of the block.
- GetInDim(block): Get the dimension of the regular input ports.
- GetInPortPtrs(block,n): Get regular input port pointer of port number n. n must be strictly positive.
- GetNout(block): Get number of regular output port of the block.
- GetOutDim(block): Get the dimension of the regular output ports.
- GetOutPortPtrs(block,n): Get regular output port pointer of port number n. n must be strictly positive.
- GetInPortSize(block,n,m): Get size of the regular input port number n for the dimension m. n and m must be strictly positive.
- GetInPortSize(block,n,1): Get first dimension (row size) of input port number n. n must be strictly positive.
- GetInPortSize(block,n,2): Get second dimension (column size) of input port number n. n must be strictly positive.
- GetInPortRows(block,n): Get number of rows (first dimension) of regular input port number n. n must be strictly positive.
- GetInPortCols(block,n): Get number of columns (second dimension) of regular input port number n. n must be strictly positive.
- GetInType(block,n): Get data type of regular input port number n. n must be strictly positive.
- GetOutPortSize(block,n,m): Get size of the regular output port size number n for the dimension m. m and n must be strictly positive.
- GetOutPortSize (block,n,1): Get first dimension (row size) of output port number n . n must be strictly positive.
- GetOutPortSize (block,n,2): Get second dimension (column size) of output port number n . n must be strictly positive.
- GetOutPortRows(block,n): Get number of rows (first dimension) of regular output port number n. n must be strictly positive.
- GetOutPortCols(block,n): Get number of columns (second dimension) of regular output port number n . n must be strictly positive.
- GetOutType(block,n): Get data-type of regular output port number n. n must be strictly positive.
- GetRealInPortPtrs(block,n): Get pointer of real part of regular input port number n. n must be strictly positive.
- GetImagInPortPtrs(block,n): Get pointer of imaginary part of regular input port number n. n must be strictly positive.
- Getint8InPortPtrs(block,n): Get pointer of int8 typed regular input port number n. n must be strictly positive.
- Getint16InPortPtrs(block,n): Get pointer of int16 typed regular input port number n. n must be strictly positive.
- Getint32InPortPtrs(block,n): Get pointer of int32 typed regular input port number n. n must be strictly positive.
- Getuint8InPortPtrs(block,n): Get pointer of unsigned int8 typed regular input port number n. n must be strictly positive.
- Getuint16InPortPtrs(block,n): Get pointer of unsigned int16 typed regular input port number n. n must be strictly positive.
- Getuint32InPortPtrs(block,n): Get pointer of unsigned int32 typed regular input port number n. n must be strictly positive.
- GetRealOutPortPtrs(block,n): Get pointer of real part of regular output port number n. n must be strictly positive.
- GetImagOutPortPtrs(block,n): Get pointer of imaginary part of regular output port number n. n must be strictly positive.
- Getint8OutPortPtrs(block,n): Get pointer of int8 typed regular output port number n. n must be strictly positive.
- Getint16OutPortPtrs(block,n): Get pointer of int16 typed regular output port number n. n must be strictly positive.
- Getint32OutPortPtrs(block,n): Get pointer of int32 typed regular output port number n. n must be strictly positive.
- Getuint8OutPortPtrs(block,n): Get pointer of unsigned int8 typed regular output port number n. n must be strictly positive.
- Getuint16OutPortPtrs(block,n): Get pointer of unsigned int16 typed regular output port number n. n must be strictly positive.
- Getuint32OutPortPtrs(block,n): Get pointer of unsigned int32 typed regular output port number n. n must be strictly positive. • GetNipar(block): Get number of integer parameters of the block.
- GetNrpar(block): Get number of real parameters of the block.
- GetNopar(block): Get number of object parameters of the block. This kind of parameters can be of any data type or tables.
- GetIparPtrs(block): Get pointer of the integer parameters vector.
- GetRparPtrs(block): Get pointer of the real parameters vector.
- GetPtrWorkPtrs(block): Get the pointer of pointer of the Work array.
- GetNstate(block): Get number of continuous state. n must be strictly positive.
- GetState(block): Get pointer of the continuous state vector. • GetDerState(block): Get the pointer to the vector of the derivative of continuous state.
- GetResState(block): Get pointer of the residual continuous state vector.
- GetJacobianPtrs(block): Get pointer on the Jacobian matrix. • GetXpropPtrs(block): Get pointer of continuous state properties vector. For implicit blocks, this vector indicates if a state is differential or algebraic.
- GetNdstate(block): Get number of real data-type discrete state.
- GetDstate(block): Get pointer of the discrete state vector.
- GetNevIn(block): Get the input event number. This number is coded as binary. For example, if first and then third events are synchronously activated, this macro returns 5.
- GetNevin(block): Get number of event input ports.
- GetNevOut(block): Get number of event output ports.
- GetNevOutPtrs(block): Get pointer of event output vector. The block fills this vector with the time of the next coming event. The time is relative, e.g., for programming an event instantly the vector element is 0.0.
- GetEvOutVal(block,n): Get the content of the event vector, negative element means no event is programmed. n must be strictly positive.
- GetOparType(block,n): Get data-type of object parameters number n. n must be strictly positive.
- GetOparSizePtrs(block): Get size of object parameters.
- GetOparSize(block,n,m): Get size of object parameters number n for the dimension m. m and n must be strictly positive.
- GetOparSize (block,n,1): Get first dimension (row size) of object parameters number n . n must be strictly positive.
- GetOparSize (block,n,2): Get second dimension (column size) of object parameters number n . n must be strictly positive.
- GetOparPtrs(block,n): Get pointer of object parameters number n.
- GetRealOparPtrs(block,n): Get pointer of real object parameters number n.
- GetImagOparPtrs(block,n): Get pointer of imaginary part of object parameters number n.
- Getint8OparPtrs(block,n): Get pointer of int8 typed object parameters number n.
- Getint16OparPtrs(block,n): Get pointer of int16 typed object parameters number n.
- Getint32OparPtrs(block,n): Get pointer of int32 typed object parameters number n.
- Getuint8OparPtrs(block,n): Get pointer of unsigned int8 typed object parameters number n.
- Getuint16OparPtrs(block,n): Get pointer of unsigned int16 typed object parameters number n.
- Getuint32OparPtrs(block,n): Get pointer of unsigned int32 typed object parameters number n.
- GetStringOparPtrs(block,n): Get pointer of unsigned int32 typed object parameters number n.
- GetNoz(block): Get number of object discrete state.
- GetOzType(block,n): Get type of object discrete state number n.
- GetOzTypePtrs(block): Get type of object state.
- GetOzSizePtrs(block): Get size of object state.
- GetOz(block): Get object state.
- GetOzSize(block,n,m): Get size of object state number n for the dimension m.
- GetOzSize (block,n,1): Get first dimension (row size) of object state number n.
- GetOzSize (block,n,2): Get second dimension (column size) of object state number n.
- GetOzPtrs(block,n): Get pointer of object state number n.
- GetRealOzPtrs(block,n): Get pointer of real object state number n.
- GetImagOzPtrs(block,n): Get pointer of imaginary part of object state number n.
- Getint8OzPtrs(block,n): Get pointer of int8 typed object state number n.
- Getint16OzPtrs(block,n): Get pointer of int16 typed object state number n.
- Getint32OzPtrs(block,n): Get pointer of int32 typed object state number n.
- Getuint8OzPtrs(block,n): Get pointer of unsigned int8 typed object state number n.
- Getuint16OzPtrs(block,n): Get pointer of unsigned int16 typed object state number n.
- Getuint32OzPtrs(block,n): Get pointer of unsigned int32 typed object state number n.
- GetSizeOfOz(block,n): Get the data size of each element of the block discrete OZ state. As an example, if the data type of OZ is Double, this macro returns sizeof(Double).
- GetSizeOfOpar(block,n): Get the data size of each element of the block Opar parameter. As an example, if the data type is Double, this macro returns sizeof(Double).
- GetSizeOfOut(block,n): Get the sizeof of the regular output port number n. Get the data size of each element of the block output. As an example, if the data type is Double, this macro returns sizeof(Double).
- GetSizeOfIn(block,n): Get the data size of each element of the block input. As an example, if the data type is Double, this macro returns sizeof(Double).
- GetNg(block): Get number of zero crossing surface.
- GetGPtrs(block): Get pointer of the zero crossing vector. This vector should be filled by the block and contain the zero-crossing surfaces.
- GetJrootPtrs(block): Get pointer of the direction of the zero crossing vector.
- GetNmode(block): Get number of modes.
- GetWorkPtrs(block): Get the pointer of the Work array.
- GetModePtrs(block): Get pointer of the mode vector.
- GetLabelPtrs(block): Get pointer of the block label.
- GetBoolInPortPtrs(block,n): Get pointer of boolean typed regular input port number n.
- GetBoolOutPortPtrs(block,n): Get pointer of boolean typed regular output port number n.
- GetImplicitFlag(block): check if the block is implicit (DAE).
- GetBlockType(block): Get Block Type.
- GetBlockNamePtrs(block): Get Block Name structure pointer (II).
- GetBlockName(block): Get the block instance name.
- GetBlockNSubNames(block): list of block inside a virtual block.
- GetBlockSubName(block,n): Get the block number n from the list of blocks inside a virtual block.
- GetDept(block): check if a block is time dependent.
- GetInher(block): Get the inheritance method, 0)no inheritance 1)inheritance from a single event input 2)inheritance from multiple event inputs.
- GetAjac(block): check if the block provides the Analytical Jacobian.
- GetCorrPtr(block): Get pointer of projection corrector vector.
- GetConstraintKind(block): This macro returns the
constraint type defined by the block. There are two constraint types can be
defined by the block:
- CONSTRAINT: Additional equations defining algebraic equation between states are added to the block dynamical equations. In this case number of additional equations should be given by macro SetNConstraint(block,n).
- PROJECTION: When this option is chosen, states values are readjusted to meet some constraints inside the model.
- GetNConstraint(block): Get number of Constraints, if the constraint type is CONSTRAINT.
- SetAjac(block): Indicate that the block provides the Analytical Jacobian.