⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 createtimer.cpp

📁 一个很棒的网络控制系统仿真软件
💻 CPP
字号:
#ifndef CREATE_TIMER#define CREATE_TIMER#include "gethandler.cpp"bool ttCreatePeriodicTimer(char *nameOfTimer, double start, double period, char *nameOfHandler) {  TimerNode* tn;  Timer* t;    if (strcmp(nameOfTimer,"") == 0) {    MEX_ERROR("ttCreate(Periodic)Timer: Name should be a non-empty string!");    return false;  }  if (rtsys->prioFcn == NULL) {    printf("ttCreate(Periodic)Timer: Kernel must be initialized before creation of timers!");    return false;  }  tn = (TimerNode*) rtsys->timerQ->getFirst();  while (tn!=NULL) {    if (tn->getTimer()->name != NULL) {      if (strcmp(tn->getTimer()->name, nameOfTimer) == 0)	break;    }    tn = (TimerNode*) tn->getNext();  }  if (tn != NULL) {     MEX_ERROR("ttCreate(Periodic)Timer: Name of timer not unique!");    return false;  }  Handler* handler = getHandler(nameOfHandler);   if (handler == NULL) {    // Handler does not exist     char buf[200];    sprintf(buf, "ttCreate(Periodic)Timer: Non-existent interrupt handler '%s'!", nameOfHandler);    MEX_ERROR(buf);    return false;  }  if (start - rtsys->time < -EPS) {    MEX_ERROR("ttCreate(Periodic)Timer: Can't create timer backwards in time!");    return false;  }  t = new Timer;  t->name = new char[strlen(nameOfTimer)+1];  strcpy(t->name, nameOfTimer);  t->time = start;  t->period = period;  if (period < 0.0) {    t->isPeriodic = false;  } else {    t->isPeriodic = true;  }  t->wcetORtimer = false;  t->dlORtimer = false;  t->handler = handler;  t->task = NULL;  rtsys->timerQ->insertSorted(new TimerNode(t));    return true;}    bool ttCreateTimer(char *nameOfTimer, double when, char *nameOfHandler) {    // Creating timer with negative period will create a one-shot timer  return ttCreatePeriodicTimer(nameOfTimer, when, -1.0, nameOfHandler);}#endif

⌨️ 快捷键说明

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