defaulthooks.cpp

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

CPP
73
字号
#ifndef DEFAULT_HOOKS#define DEFAULT_HOOKS#include "overruntimers.cpp"void default_release(Task *task) {  //printf("Release-hook for task '%s' at time %f\n",task->name,rtsys->time);  // Create deadline OR-timer  if (task->deadlineORhandler != NULL) {    if(task->currentJob->absDeadline > rtsys->time) {      double time = rtsys->time + task->deadline;      createDLTimer(task, time);    }    else {      createDLTimer(task, rtsys->time);    }  }}void default_start(Task *task) {    //printf("Start-hook for task '%s' at time %f\n",task->name,rtsys->time);  // Update the last start time for the task  task->currentJob->lastStart = rtsys->time;  // Create exectime OR-timer  if (task->exectimeORhandler != NULL && task->currentJob->budget > EPS) {    double time = rtsys->time + task->currentJob->budget;    createWCETTimer(task, time);  }}void default_suspend(Task* task) {  //printf("Suspend-hook for task '%s' at time %f\n",task->name,rtsys->time);  // Decrease budget  if (task->currentJob)    task->currentJob->budget -= (rtsys->time - task->currentJob->lastStart);  // Delete exectime OR-timer if it exists  removeWCETTimer(task);}void default_resume(Task* task) {  //printf("Resume-hook for task '%s' at time %f\n",task->name,rtsys->time);  // Update the last start time for the task  task->currentJob->lastStart = rtsys->time;  // Create exectime OR-timer  if (task->exectimeORhandler != NULL && task->currentJob->budget > EPS) {    double time = rtsys->time + task->currentJob->budget;    createWCETTimer(task, time);  }}void default_finish(Task* task) {  //printf("Finish-hook for task '%s' at time %f\n",task->name,rtsys->time);  // Delete deadline and exectime OR-timers if they exist  removeORTimers(task);}#endif

⌨️ 快捷键说明

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