Technical data
3 
Writing Target Language Files
3-36
 /* Register children S-Functions (s-funcs without TLC files) */
 {
 static SimStruct childSFunctions[1];
 static SimStruct *childSFunctionPtrs[1];
 ssSetSFunctions(S, (SimStruct **) &childSFunctionPtrs[0]);
 /* S-Function Block: foo */
 {
  static real_T sfcnPeriod[1];
  static real_T sfcnOffset[1];
  static real_T sfcnTsMap[1];
  static mxArray *sfcnParams[1];
  extern void foogain(SimStruct *);
  SimStruct *s = &childrenSFunctions[0];
  memset((char *) s, 0, sizeof(SimStruct));
  ssSetModelName(s, "foogain");
  ssSetPath(s, "foogain");
  ssSetParentSS(s, S);
  ssSetRootSS(s, ssGetRootSS(S));
  ssSetSFcnParamsCount(s, 1);
  ssSetSFcnParamsPtr(s, (const mxArray **) &sfcnParams[0]);
  ssSetSFcnParam(s, 0, (real_T *) &P.foo.P1Sizes[0]);
  ssSetU(s, &rtGround);
  ssSetY(s, &B.foo);
  ssSetMdlInfoPtr(s, ssGetMdlInfoPtr(S));
  ssSetSampleTimePtr(s, (real_T *) &sfcnPeriod[0]);
  ssSetOffsetTimePtr(s, (real_T *) &sfcnOffset[0]);
  ssSetSampleTimeTaskIDPtr(s, (int_T *) &sfcnTsMap[0]);
  sfunctionName(s);
  ssSetSFunction(S, 0, s);
  sfcnInitializeSizes(s);
  sfcnInitializeSampleTimes(s);
 }
 }
}
 Note 3










