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

📄 setperiod.cpp

📁 一个很棒的网络控制系统仿真软件
💻 CPP
字号:
#ifndef SET_PERIOD#define SET_PERIOD#include "gettask.cpp"#include "findQ.cpp"#include "moveready.cpp"// Setting period of a specific taskvoid ttSetPeriod(double newPeriod, char *nameOfTask) {    TaskNode *tn;  Task* task = getTask(nameOfTask);    if (task == NULL) {    char buf[200];    sprintf(buf, "ttSetPeriod: Non-existent task '%s'!", nameOfTask);    MEX_ERROR(buf);    return;  }    if (task->perTimer == NULL) {    char buf[200];    sprintf(buf, "ttSetPeriod: Task '%s' not periodic!", nameOfTask);    MEX_ERROR(buf);    return;  }  double lastStart = task->perTimer->time - task->perTimer->period;  double newTime = lastStart + newPeriod;  task->perTimer->time = newTime;  task->perTimer->period = newPeriod;  // Update timerQ  TimerNode* tin = (TimerNode*) rtsys->timerQ->getLast();  while (tin->getTimer() != task->perTimer) {    tin = (TimerNode*) tin->getPrev();  }  rtsys->timerQ->removeNode(tin);  rtsys->timerQ->insertSorted(tin);  // Reshuffle readyQ?  tn = findInQ(nameOfTask, rtsys->readyQ);  if (tn != NULL) {    rtsys->readyQ->deleteNode(tn);    moveToReadyQ(task);  }}// Setting period of calling taskvoid ttSetPeriod(double newPeriod) {    if(rtsys->executing == NULL) {    MEX_ERROR("ttSetPeriod: No running task!");    return;  }  ttSetPeriod(newPeriod, rtsys->executing->name);}#endif

⌨️ 快捷键说明

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