void rtExtModeTornadoCleanup(int_T numSampTimes) { taskDelete(extern_upload_tid); taskDelete(extern_pkt_tid); rt_ExtModeShutdown(numSampTimes); semDelete(uploadSem); semDelete(commSem); semDelete(pktSem); }
// This task is run at priority level 1, essentially a background // task. void rtExtModeOneStep(UArg arg0, ExtStepArgs *arg1) { // Process external mode packets and upload data //TSK_prolog( TSK_self() ); RTWExtModeInfo *ei = arg1->ei; int_T numSampTimes = arg1->numSampTimes; boolean_T *stopReqPtr = arg1->stopReqPtr; while (extmodeSimStatus != EXTMODE_STOPPED) { rt_PktServerWork(ei, numSampTimes, stopReqPtr); rt_UploadServerWork(numSampTimes); } rt_ExtModeShutdown(numSampTimes); //TSK_epilog( TSK_self() ); /* TODO: */ Clock_delete( &rt_task_handle ); rt_TermModel(); // Signal completion of Pkt / Upload server work Semaphore_post(extStartStopSem); }
void rtExtModeShutdown(int_T numSampTimes) { rt_ExtModeShutdown(numSampTimes); }