11 #ifndef EASYLINK_BASEBLOCK_H 12 #define EASYLINK_BASEBLOCK_H 18 #ifndef INPUT_PORT_NUMBER 19 #define INPUT_PORT_NUMBER 0 26 #ifndef OUTPUT_PORT_NUMBER 27 #define OUTPUT_PORT_NUMBER 0 34 #ifndef PARAMETER_NUMBER 35 #define PARAMETER_NUMBER 0 103 ssSetInputPortDirectFeedThrough(
simStruct,i,1);
104 ssSetInputPortRequiredContiguous(
simStruct,i,1);
174 if(!ssSetInputPortDimensionInfo(
simStruct, port, dimsInfo))
return;
185 if(!ssSetOutputPortDimensionInfo(
simStruct, port, dimsInfo))
return;
208 if (!mxIsChar(ssGetSFcnParam(
simStruct,i)))
209 throw runtime_error(
"easyLink error: Parameter port " +
toString(i) +
" must be a string.");
216 throw runtime_error(
"easyLink error: Parameter port " +
toString(i) +
" must be a valid identifier.");
222 if (mxIsSparse(ssGetSFcnParam(
simStruct,i))||!mxIsDouble(ssGetSFcnParam(
simStruct,i)))
223 throw runtime_error(
"easyLink error: Parameter port " +
toString(i) +
" must be a scalar or an array of real values.");
245 ssSetSampleTime(
simStruct, 0, INHERITED_SAMPLE_TIME);
247 ssSetModelReferenceSampleTimeDefaultInheritance(
simStruct);
328 return *ssGetInputPortRealSignal(
simStruct,port);
337 return *(ssGetInputPortRealSignal(
simStruct,port));
355 return ssGetInputPortWidth(
simStruct,port);
363 return ssGetInputPortDimensionSize(
simStruct,port,0);
371 return ssGetInputPortDimensionSize(
simStruct,port,1);
381 ssSetInputPortWidth(
simStruct,port,nrows);
383 ssSetInputPortMatrixDimensions(
simStruct,port,nrows,ncols);
392 double *x=ssGetOutputPortRealSignal(
simStruct,port);
402 throw runtime_error(
"easyLink error: Unable to write "+array.
getName()+
" to output port "+
toString(port)+
". Array dimensions must agree.");
406 printf(
"easyLink test message: hard copy of array in setOutputArray(\"%s\").\n",array.
getName().c_str());
425 return ssGetOutputPortWidth(
simStruct,port);
433 return ssGetOutputPortDimensionSize(
simStruct,port,0);
441 return ssGetOutputPortDimensionSize(
simStruct,port,1);
451 ssSetOutputPortWidth(
simStruct,port,nrows);
453 ssSetOutputPortMatrixDimensions(
simStruct,port,nrows,ncols);
462 return mxGetPr(ssGetSFcnParam(
simStruct,port))[0];
470 return _round(mxGetPr(ssGetSFcnParam(
simStruct,port))[0]);
479 mxGetString(ssGetSFcnParam(
simStruct,port), buffer, 256);
480 return string(buffer);
499 return (
int)mxGetM(ssGetSFcnParam(
simStruct,port))*(int)mxGetN(ssGetSFcnParam(
simStruct,port));
507 return (
int)mxGetM(ssGetSFcnParam(
simStruct,port));
515 return (
int)mxGetN(ssGetSFcnParam(
simStruct,port));
541 throw runtime_error(
"easyLink error: Unable to write "+array.
getName()+
" to derivative of state port. Array dimensions must agree.");
545 printf(
"easyLink test message: hard copy of array in setDerivativeStateArray(\"%s\").\n",array.
getName().c_str());
571 throw runtime_error(
"easyLink error: Unable to write "+array.
getName()+
" to discrete state port. Array dimensions must agree.");
575 printf(
"easyLink test message: hard copy of array in setDiscreteStateArray(\"%s\").\n",array.
getName().c_str());
static void setOutputPortDimensions(int port, int nrows, int ncols)
static Array getOutputArray(int port)
static void setContinuousStatesNumber(int num)
static int getContinuousStateWidth(int port)
static void initializeOptions()
static void setDiscreteStateArray(Array &array)
static int getParameterNCols(int port)
static double getInputDouble(int port)
static void initializeNumberSampleTimes()
static double getParameterDouble(int port)
static string getParameterString(int port)
static int getDiscreteStateWidth(int port)
static void setOutputDouble(int port, double value)
static int getOutputNRows(int port)
static void initializeOutputPortSizes()
static void initializeStatePortSizes()
static void setOutputArray(int port, Array &array)
static double getInputInt(int port)
static void setSimStruct(SimStruct *S)
static void setDerivativeStateArray(Array &array)
static Array getInputArray(int port)
static int getParameterNRows(int port)
static int getParameterInt(int port)
static void setInputPortDimensions(int port, int nrows, int ncols)
static int getOutputWidth(int port)
static Array getDiscreteStateArray()
static int getOutputNCols(int port)
static void initializeInputPortSizes()
static void setOutputPortDimensionInfo(int port, const DimsInfo_T *dimsInfo)
static time_T getCurrentTime()
static void setDiscreteStatesNumber(int num)
#define OUTPUT_PORT_NUMBER
bool isIdentifier(string str)
static void initializeParameterPortSizes()
static SimStruct * simStruct
static int getParameterWidth(int port)
static Array getParameterArray(int port)
static Array getContinuousStateArray()
static int getInputNCols(int port)
#define INPUT_PORT_NUMBER
static int getInputNRows(int port)
static void initializeSampleTimes()
static void checkParameters()
static int getInputWidth(int port)
static void setInputPortDimensionInfo(int port, const DimsInfo_T *dimsInfo)