\r
%endfunction\r
\r
+%function printfunc() Output\r
+ /% printf("%s\n", __func__); %/\r
+%endfunction\r
+\r
%function generateRtOneStep() Output\r
%foreach j = numSampleTimes - 1\r
%assign i = j + 1\r
{\r
while(!simulationFinished) {\r
sem_wait(&sub_rate[%<i>].sem); /* sem_val = 1 */\r
- printf("%s\n", __func__);\r
+ %<printfunc()>\r
%<modelName>_step%<i>();\r
- %if extMode == 1\r
- rtExtModeUpload(%<i>, %<RTMGetTaskTimeForTID(i)>);\r
- %endif\r
sem_wait(&sub_rate[%<i>].sem); /* sem_val = 0 */\r
}\r
}\r
\r
/* Main loop, running until all the threads are terminated */\r
while(rtmGetErrorStatus(%<modelName>_M) == NULL && !rtmGetStopRequested(%<modelName>_M)) {\r
- printf("%s\n", __func__);\r
+ %<printfunc()>\r
/* Check subrate overrun, set rates that need to run this time step*/\r
%<LibCallSetEventForThisBaseStep("eventFlags")>\\r
\r
+ /* Trigger sub-rate threads */\r
%foreach i = numSampleTimes\r
%if i == 0 || i == 1 && tid01Eq\r
%continue\r
}\r
%endforeach\r
\r
- %if extMode == 1\r
- /* external mode */\r
- rtExtModeUpload(0, %<RTMGetTaskTimeForTID(0)>);\r
- %if tid01Eq\r
- rtExtModeUpload(1, %<RTMGetTaskTimeForTID(1)>);\r
- %endif\r
+ /* Execute base rate step */\r
+ %<modelName>_step0();\r
\r
+ %if extMode == 1\r
rtExtModeCheckEndTrigger();\r
- rtExtModePauseIfNeeded(rtmGetRTWExtModeInfo(RT_MDL),\r
- NUMST,\r
- (boolean_T *)&rtmGetStopRequested(RT_MDL));\r
rtExtModeOneStep(rtmGetRTWExtModeInfo(RT_MDL),\r
NUMST,\r
(boolean_T *)&rtmGetStopRequested(RT_MDL));\r
if (now.tv_sec > next.tv_sec ||\r
(now.tv_sec == next.tv_sec && now.tv_nsec > next.tv_nsec)) {\r
uint64_T nsec = (now.tv_sec - next.tv_sec) * 1000000000 + now.tv_nsec - next.tv_nsec;\r
- fprintf(stderr, "Base rate (%<s>s) overrun by %d us\n", (int)(nsec/1000));\r
+ fprintf(stderr, "Base rate (%<fundamentalStepSize>s) overrun by %d us\n", (int)(nsec/1000));\r
}\r
clock_nanosleep(CLOCK_MONOTONIC, TIMER_ABSTIME, &next, NULL);\r
\r