SM_ADC  1.0
Приём данных АЦП через разделяемую память
Public Member Functions | Static Public Member Functions | Static Protected Attributes | List of all members
BaseBlock Class Reference

#include <baseblock.h>

Inheritance diagram for BaseBlock:
Block

Public Member Functions

void start ()
 
void outputs ()
 
void derivatives ()
 
void zeroCrossings ()
 
void update ()
 
void terminate ()
 

Static Public Member Functions

static void setSimStruct (SimStruct *S)
 
static void initializeParameterPortSizes ()
 
static void initializeInputPortSizes ()
 
static void initializeOutputPortSizes ()
 
static void initializeStatePortSizes ()
 
static void initializeNumberSampleTimes ()
 
static void initializeOptions ()
 
static void setInputPortDimensionInfo (int port, const DimsInfo_T *dimsInfo)
 
static void setOutputPortDimensionInfo (int port, const DimsInfo_T *dimsInfo)
 
static void checkParameters ()
 
static void initializeSampleTimes ()
 
static double getInputDouble (int port)
 
static double getInputInt (int port)
 
static Array getInputArray (int port)
 
static int getInputWidth (int port)
 
static int getInputNRows (int port)
 
static int getInputNCols (int port)
 
static void setInputPortDimensions (int port, int nrows, int ncols)
 
static void setOutputDouble (int port, double value)
 
static void setOutputArray (int port, Array &array)
 
static Array getOutputArray (int port)
 
static int getOutputWidth (int port)
 
static int getOutputNRows (int port)
 
static int getOutputNCols (int port)
 
static void setOutputPortDimensions (int port, int nrows, int ncols)
 
static double getParameterDouble (int port)
 
static int getParameterInt (int port)
 
static string getParameterString (int port)
 
static Array getParameterArray (int port)
 
static int getParameterWidth (int port)
 
static int getParameterNRows (int port)
 
static int getParameterNCols (int port)
 
static Array getContinuousStateArray ()
 
static int getContinuousStateWidth (int port)
 
static void setDerivativeStateArray (Array &array)
 
static Array getDiscreteStateArray ()
 
static int getDiscreteStateWidth (int port)
 
static void setDiscreteStateArray (Array &array)
 
static void setContinuousStatesNumber (int num)
 
static void setDiscreteStatesNumber (int num)
 
static time_T getCurrentTime ()
 

Static Protected Attributes

static SimStruct * simStruct =NULL
 

Detailed Description

BaseBlock is the basis class for designing new S-functions.

Use the file sfun_offset.cpp as a template to write a new S-function.

Definition at line 48 of file baseblock.h.

Member Function Documentation

◆ checkParameters()

static void BaseBlock::checkParameters ( )
inlinestatic

This static method is called with candidate parameter values. If the proposed dimensions or types are unacceptable, the method must throw an exception.

The possible types of the paramaters are:

  • 1 for real parameters (scalar or array, use -1 as size to specify a dynamically dimensioned array)
  • 2 for literal string parameters
  • 3 for literal identifiers of MATLAB variables

For more information, see: http://www.mathworks.fr/fr/help/simulink/sfg/mdlcheckparameters.html

Definition at line 201 of file baseblock.h.

References getParameterString(), isIdentifier(), PARAMETER_NUMBER, parameterCols, parameterRows, parameterType, simStruct, and toString().

Referenced by mdlCheckParameters().

◆ derivatives()

void BaseBlock::derivatives ( )
inline

The Simulink engine invokes this optional method at each time step to compute the derivatives of the S-function's continuous states. This method should store the derivatives in the S-function's state derivatives array using derivativesArray.

For more information, see: http://www.mathworks.fr/fr/help/simulink/sfg/mdlderivatives.html

Definition at line 279 of file baseblock.h.

Referenced by mdlDerivatives().

◆ getContinuousStateArray()

static Array BaseBlock::getContinuousStateArray ( )
inlinestatic

Returns the continuous state Array.

Definition at line 522 of file baseblock.h.

References simStruct.

◆ getContinuousStateWidth()

static int BaseBlock::getContinuousStateWidth ( int  port)
inlinestatic

Returns the continuous state number of elements (1-D array).

Definition at line 530 of file baseblock.h.

References simStruct.

◆ getCurrentTime()

static time_T BaseBlock::getCurrentTime ( )
inlinestatic

Get the current simulation time

Definition at line 596 of file baseblock.h.

References simStruct.

Referenced by mdlOutputs().

◆ getDiscreteStateArray()

static Array BaseBlock::getDiscreteStateArray ( )
inlinestatic

Returns the discrete state Array.

Definition at line 552 of file baseblock.h.

References simStruct.

◆ getDiscreteStateWidth()

static int BaseBlock::getDiscreteStateWidth ( int  port)
inlinestatic

Returns the discrete state number of elements (1-D array).

Definition at line 560 of file baseblock.h.

References simStruct.

◆ getInputArray()

static Array BaseBlock::getInputArray ( int  port)
inlinestatic

Returns the input port Array.

Definition at line 343 of file baseblock.h.

References simStruct, and toString().

◆ getInputDouble()

static double BaseBlock::getInputDouble ( int  port)
inlinestatic

Returns the scalar value of an input port.

Definition at line 326 of file baseblock.h.

References simStruct.

Referenced by Block::outputs().

◆ getInputInt()

static double BaseBlock::getInputInt ( int  port)
inlinestatic

Returns the integer value of an input port

Definition at line 334 of file baseblock.h.

References simStruct.

◆ getInputNCols()

static int BaseBlock::getInputNCols ( int  port)
inlinestatic

Returns the input port number of cols.

Definition at line 369 of file baseblock.h.

References simStruct.

◆ getInputNRows()

static int BaseBlock::getInputNRows ( int  port)
inlinestatic

Returns the input port number of rows.

Definition at line 361 of file baseblock.h.

References simStruct.

◆ getInputWidth()

static int BaseBlock::getInputWidth ( int  port)
inlinestatic

Returns the input port number of elements. If the input port is a 1-D array with w elements, this function returns w. If the input port is an M-by-N array, this function returns m*n.

Definition at line 353 of file baseblock.h.

References simStruct.

◆ getOutputArray()

static Array BaseBlock::getOutputArray ( int  port)
inlinestatic

Returns the output port Array.

Definition at line 413 of file baseblock.h.

References simStruct, and toString().

◆ getOutputNCols()

static int BaseBlock::getOutputNCols ( int  port)
inlinestatic

Returns the output port number of cols.

Definition at line 439 of file baseblock.h.

References simStruct.

◆ getOutputNRows()

static int BaseBlock::getOutputNRows ( int  port)
inlinestatic

Returns the output port number of rows.

Definition at line 431 of file baseblock.h.

References simStruct.

◆ getOutputWidth()

static int BaseBlock::getOutputWidth ( int  port)
inlinestatic

Returns the output port number of elements. If the output port is a 1-D array with w elements, this function returns w. If the output port is an M-by-N array, this function returns m*n.

Definition at line 423 of file baseblock.h.

References simStruct.

◆ getParameterArray()

static Array BaseBlock::getParameterArray ( int  port)
inlinestatic

Returns an Array connected to a parameter port.

Definition at line 486 of file baseblock.h.

References simStruct, and toString().

◆ getParameterDouble()

static double BaseBlock::getParameterDouble ( int  port)
inlinestatic

Returns the double value of a parameter port.

Definition at line 460 of file baseblock.h.

References simStruct.

◆ getParameterInt()

static int BaseBlock::getParameterInt ( int  port)
inlinestatic

Returns the int value of a parameter port.

Definition at line 468 of file baseblock.h.

References simStruct.

Referenced by Block::start().

◆ getParameterNCols()

static int BaseBlock::getParameterNCols ( int  port)
inlinestatic

Returns the parameter port number of cols.

Definition at line 513 of file baseblock.h.

References simStruct.

◆ getParameterNRows()

static int BaseBlock::getParameterNRows ( int  port)
inlinestatic

Returns the parameter port number of rows.

Definition at line 505 of file baseblock.h.

References simStruct.

◆ getParameterString()

static string BaseBlock::getParameterString ( int  port)
inlinestatic

Returns the string value of a parameter port.

Definition at line 476 of file baseblock.h.

References simStruct.

Referenced by checkParameters(), and Block::start().

◆ getParameterWidth()

static int BaseBlock::getParameterWidth ( int  port)
inlinestatic

Returns the parameter port number of elements.

If the parameter port is a 1-D array with w elements, this function returns w. If the parameter port is an M-by-N array, this function returns m*n.

Definition at line 497 of file baseblock.h.

References simStruct.

◆ initializeInputPortSizes()

static void BaseBlock::initializeInputPortSizes ( )
inlinestatic

This is the second static method that the Simulink engine calls within mdlInitializeSizes. This method specifies the number of input ports and their dimensions. All ports are set to direct feedthrough by default.

Use -1 to specify dynamically dimensioned input signals.

For more information, see: http://www.mathworks.fr/fr/help/simulink/sfg/mdlinitializesizes.html

Definition at line 95 of file baseblock.h.

References INPUT_PORT_NUMBER, inputPortCols, inputPortRows, setInputPortDimensions(), simStruct, and toString().

Referenced by mdlInitializeSizes().

◆ initializeNumberSampleTimes()

static void BaseBlock::initializeNumberSampleTimes ( )
inlinestatic

This is the fifth static method that the Simulink engine calls within mdlInitializeSizes. This method specifies the number of sample time (i.e., sample rates) at which the block operates.

The default value is 1

For more information, see: http://www.mathworks.fr/fr/help/simulink/sfg/mdlinitializesizes.html

Definition at line 148 of file baseblock.h.

References simStruct.

Referenced by mdlInitializeSizes().

◆ initializeOptions()

static void BaseBlock::initializeOptions ( )
inlinestatic

This is the sixth static method that the Simulink engine calls within mdlInitializeSizes. This method specifies the simulation options that this block implements, using ssSetOptions.

For more information, see: http://www.mathworks.fr/fr/help/simulink/sfg/mdlinitializesizes.html

Definition at line 162 of file baseblock.h.

Referenced by mdlInitializeSizes().

◆ initializeOutputPortSizes()

static void BaseBlock::initializeOutputPortSizes ( )
inlinestatic

This is the third static method that the Simulink engine calls within mdlInitializeSizes. This method specifies the number of output ports and their dimensions.

Use -1 to specify dynamically dimensioned output signals.

For more information, see: http://www.mathworks.fr/fr/help/simulink/sfg/mdlinitializesizes.html

Definition at line 116 of file baseblock.h.

References OUTPUT_PORT_NUMBER, outputPortCols, outputPortRows, setOutputPortDimensions(), simStruct, and toString().

Referenced by mdlInitializeSizes().

◆ initializeParameterPortSizes()

static void BaseBlock::initializeParameterPortSizes ( )
inlinestatic

This is the first static method that the Simulink engine calls within mdlInitializeSizes. This method specifies the number of parameters and wheter or not they are tunable. A parameter is tunable if its value can change during simulation.

Use -1 to specify dynamically dimensioned parameters.

For more information, see: http://www.mathworks.fr/fr/help/simulink/sfg/mdlinitializesizes.html

Definition at line 73 of file baseblock.h.

References PARAMETER_NUMBER, parameterTunable, simStruct, and toString().

Referenced by mdlInitializeSizes().

◆ initializeSampleTimes()

static void BaseBlock::initializeSampleTimes ( )
inlinestatic

This static method should specify the sample time and offset time for each sample rate at which this S-function operates.

The default values are INHERITED_SAMPLE_TIME and FIXED_IN_MINOR_STEP_OFFSET

For more information, see: http://www.mathworks.fr/fr/help/simulink/sfg/mdlinitializesampletimes.html

Definition at line 243 of file baseblock.h.

References simStruct.

Referenced by mdlInitializeSampleTimes(), and Block::outputs().

◆ initializeStatePortSizes()

static void BaseBlock::initializeStatePortSizes ( )
inlinestatic

This is the fourth static method that the Simulink engine calls within mdlInitializeSizes. This method specifies the number of continuous and discrete states.

The default values are zero continuous states and zero discrete states.

For more information, see: http://www.mathworks.fr/fr/help/simulink/sfg/mdlinitializesizes.html

Definition at line 133 of file baseblock.h.

References simStruct.

Referenced by mdlInitializeSizes().

◆ outputs()

void BaseBlock::outputs ( )
inline

The Simulink engine invokes this method at each simulation time step. The method should compute the S-function's outputs at the current time step and store the results using outputArray or using writeOutput.

For more information, see: http://www.mathworks.fr/fr/help/simulink/sfg/mdloutputs.html

Definition at line 268 of file baseblock.h.

◆ setContinuousStatesNumber()

static void BaseBlock::setContinuousStatesNumber ( int  num)
inlinestatic

Sets the number of continuous states. Must be used in lastMinuteSizeChanges.

Definition at line 582 of file baseblock.h.

References simStruct.

◆ setDerivativeStateArray()

static void BaseBlock::setDerivativeStateArray ( Array array)
inlinestatic

Writes the derivative state Array.

Definition at line 538 of file baseblock.h.

References Array::getData(), Array::getName(), Array::getNCols(), Array::getNRows(), Array::getWidth(), and simStruct.

◆ setDiscreteStateArray()

static void BaseBlock::setDiscreteStateArray ( Array array)
inlinestatic

Writes the discrete state Array.

Definition at line 568 of file baseblock.h.

References Array::getData(), Array::getName(), Array::getNCols(), Array::getNRows(), Array::getWidth(), and simStruct.

◆ setDiscreteStatesNumber()

static void BaseBlock::setDiscreteStatesNumber ( int  num)
inlinestatic

Sets the number of discrete states. Must be used in lastMinuteSizeChanges.

Definition at line 590 of file baseblock.h.

References simStruct.

◆ setInputPortDimensionInfo()

static void BaseBlock::setInputPortDimensionInfo ( int  port,
const DimsInfo_T *  dimsInfo 
)
inlinestatic

This static method is called with candidate dimensions for input port. If the proposed dimensions are unacceptable for the port, the method must throw an exception.

For more information, see: http://www.mathworks.fr/fr/help/simulink/sfg/mdlsetinputportdimensioninfo.html

Definition at line 172 of file baseblock.h.

References simStruct.

Referenced by mdlSetInputPortDimensionInfo().

◆ setInputPortDimensions()

static void BaseBlock::setInputPortDimensions ( int  port,
int  nrows,
int  ncols 
)
inlinestatic

Sets the input port dimensions. Must be used only in initializeInputPortSizes

Definition at line 378 of file baseblock.h.

References simStruct.

Referenced by initializeInputPortSizes().

◆ setOutputArray()

static void BaseBlock::setOutputArray ( int  port,
Array array 
)
inlinestatic

Writes an Array to an output port. Dimensions must agree.

Definition at line 399 of file baseblock.h.

References Array::getData(), Array::getName(), Array::getNCols(), Array::getNRows(), Array::getWidth(), simStruct, and toString().

Referenced by Block::outputs().

◆ setOutputDouble()

static void BaseBlock::setOutputDouble ( int  port,
double  value 
)
inlinestatic

Writes a double or int value to an output port.

Definition at line 390 of file baseblock.h.

References simStruct.

Referenced by Block::outputs().

◆ setOutputPortDimensionInfo()

static void BaseBlock::setOutputPortDimensionInfo ( int  port,
const DimsInfo_T *  dimsInfo 
)
inlinestatic

This static method is called with candidate dimensions for output port. If the proposed dimensions are unacceptable for the port, the method must throw an exception.

For more information, see: http://www.mathworks.fr/fr/help/simulink/sfg/mdlsetoutputportdimensioninfo.html

Definition at line 183 of file baseblock.h.

References simStruct.

Referenced by mdlSetOutputPortDimensionInfo().

◆ setOutputPortDimensions()

static void BaseBlock::setOutputPortDimensions ( int  port,
int  nrows,
int  ncols 
)
inlinestatic

Sets the output port dimensions. Must be used only in initializeOutputPortSizes

Definition at line 448 of file baseblock.h.

References simStruct.

Referenced by initializeOutputPortSizes().

◆ setSimStruct()

static void BaseBlock::setSimStruct ( SimStruct *  S)
inlinestatic

◆ start()

void BaseBlock::start ( )
inline

The Simulink engine invokes this method at the beginning of a simulation right after contructing the class. The method should perform initialization activities that this S-function requires only once, such as allocating memory, setting up user data, or initializing states.

For more information, see: http://www.mathworks.fr/fr/help/simulink/sfg/mdlstart.html

Definition at line 258 of file baseblock.h.

◆ terminate()

void BaseBlock::terminate ( )
inline

The Simulink engine invokes this method when the simulation is terminated right before deleting the class. This method should perform any terminal actions, such as freeing of memory.

For more information, see: http://www.mathworks.fr/fr/help/simulink/sfg/mdlterminate.html

Definition at line 318 of file baseblock.h.

◆ update()

void BaseBlock::update ( )
inline

The Simulink engine invokes this optional method at each major simulation time step. The method should compute the S-function's states at the current time step and store the states in the S-function's state vector. The method can also perform any other tasks that the S-function needs to perform at each major time step.

Use this code if your S-function has one or more discrete states or does not have direct feedthrough.

For more information, see: http://www.mathworks.fr/fr/help/simulink/sfg/mdlupdate.html

Definition at line 307 of file baseblock.h.

Referenced by mdlUpdate().

◆ zeroCrossings()

void BaseBlock::zeroCrossings ( )
inline

An S-function needs to provide this optional method only if it does zero-crossing detection. Implementing zero-crossing detection typically requires using the zero-crossing and mode work vectors to determine when a zero crossing occurs and how the S-function's outputs should respond to this event. The zeroCrossings method should update the S-function's zero-crossing vector, using nonSampledZCsArray.

For more information, see: http://www.mathworks.fr/fr/help/simulink/sfg/mdlzerocrossings.html

Definition at line 292 of file baseblock.h.

Referenced by mdlZeroCrossings().

Member Data Documentation

◆ simStruct

SimStruct * BaseBlock::simStruct =NULL
staticprotected

The documentation for this class was generated from the following file: