overruntimers.cpp

来自「一个很棒的网络控制系统仿真软件」· C++ 代码 · 共 77 行

CPP
77
字号
#ifndef OR_TIMERS#define OR_TIMERSvoid createDLTimer(Task *task, double time) {  Timer *t = new Timer;  t->name = NULL;  t->time = time;  t->period = 0.0;  t->isPeriodic = false;  t->wcetORtimer = false;  t->dlORtimer = true;  t->handler = task->deadlineORhandler;  t->task = task;  rtsys->timerQ->insertSorted(new TimerNode(t));}  void createWCETTimer(Task *task, double time) {  Timer *t = new Timer;  t->name = NULL;  t->time = time;  t->period = 0.0;  t->isPeriodic = false;  t->wcetORtimer = true;  t->dlORtimer = false;  t->handler = task->exectimeORhandler;  t->task = task;  rtsys->timerQ->insertSorted(new TimerNode(t));}  void removeWCETTimer(Task* task) {  bool found = false;  TimerNode* tn = (TimerNode*) rtsys->timerQ->getFirst();  while (tn!=NULL && !found) {    Timer* t = tn->getTimer();    if (t->wcetORtimer && (t->task == task)) {      found = true;      rtsys->timerQ->deleteNode(tn);      delete t;    } else {      tn = (TimerNode*) tn->getNext();    }  }}void removeORTimers(Task *task) {  bool found1 = false;  bool found2 = false;  TimerNode* tn = (TimerNode*) rtsys->timerQ->getFirst();  while (tn!=NULL && !(found1 && found2)) {    Timer* t = tn->getTimer();    if (t->dlORtimer && t->task == task) {      found1 = true;      TimerNode* tmp = tn;      tn = (TimerNode*) tn->getNext();      rtsys->timerQ->deleteNode(tmp);      delete t;    }    else if (t->wcetORtimer && t->task == task) {      found2 = true;      TimerNode* tmp = tn;      tn = (TimerNode*) tn->getNext();      rtsys->timerQ->deleteNode(tmp);    }    else      tn = (TimerNode*) tn->getNext();  }}#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?