📄 createtask.cpp
字号:
#ifndef CREATE_TASK#define CREATE_TASKbool ttCreateTask(char *name, double deadline, double priority, double (*codeFcn)(int, void*)) { TaskNode *tn; Task* task; if (strcmp(name,"") == 0) { MEX_ERROR("ttCreate(Periodic)Task: Name should be a non-empty string!"); return false; } if (rtsys->prioFcn == NULL) { MEX_ERROR("ttCreate(Periodic)Task: Kernel must be initialized before creation of tasks!"); return false; } tn = (TaskNode*) rtsys->taskList->getFirst(); while (tn!=NULL) { task = tn->getTask(); if (task->name != NULL) { if (strcmp(task->name, name) == 0) break; } tn = (TaskNode*) tn->getNext(); } if (tn!=NULL) { MEX_ERROR("ttCreate(Periodic)Task: Name of task not unique! Task not created!"); return false; } if (priority < EPS) { MEX_ERROR("ttCreate(Periodic)Task: Priorities are supposed to be positive real numbers!"); return false; } task = new Task; task->name = new char[strlen(name)+1]; strcpy(task->name, name); task->taskID = rtsys->nbrOfTasks+1; task->wcExecTime = deadline; task->deadline = deadline; task->assignedPriority = priority; task->priority = priority; task->isPreemptable = true; task->display = true; rtsys->nbrOfSchedTasks++; task->deadlineORhandler = NULL; task->exectimeORhandler = NULL; task->jobQ = new List("JobQ", rtsys->jobQCmpFcn); task->blockList = new List("BlockList", NULL); task->currentJob = NULL; task->perTimer = NULL; task->data = NULL; task->dataMATLAB = NULL; task->codeFcn = codeFcn; task->codeFcnMATLAB = NULL; task->released_hook = rtsys->default_release; task->started_hook = rtsys->default_start; task->suspended_hook = rtsys->default_suspend; task->resumed_hook = rtsys->default_resume; task->finished_hook = rtsys->default_finish; rtsys->taskList->appendNode(new TaskNode(task)); rtsys->nbrOfTasks++; return true;}bool ttCreateTask(char *name, double deadline, double priority, double (*codeFcn)(int, void*), void* data) { TaskNode *n; if (ttCreateTask(name, deadline, priority, codeFcn)) { n = (TaskNode*) rtsys->taskList->getLast(); n->getTask()->data = data; return true; } else { return false; }}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -