createhandler.cpp

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

CPP
70
字号
#ifndef CREATE_HANDLER#define CREATE_HANDLERbool ttCreateInterruptHandler(char *name, double priority, double (*codeFcn)(int, void*)) {    HandlerNode* n;  Handler* hdl;    if (strcmp(name,"") == 0) {    MEX_ERROR("ttCreateInterruptHandler: Name should be a non-empty string!");    return false;  }  if (rtsys->prioFcn == NULL) {    MEX_ERROR("ttCreateInterruptHandler: Kernel must be initialized before creation of handlers!");    return false;  }  n = (HandlerNode*) rtsys->handlerList->getFirst();  while (n!=NULL) {    hdl = n->getHandler();    if (hdl->name != NULL) {      if (strcmp(hdl->name, name) == 0)	break;    }    n = (HandlerNode*) n->getNext();  }  if (n != NULL) {    MEX_ERROR("ttCreateInterruptHandler: Name of handler not unique!");    return false;  }    hdl = new Handler;    hdl->name = new char[strlen(name)+1];  strcpy(hdl->name, name);  hdl->handlerID = rtsys->nbrOfHandlers + 1;  hdl->execTime = 0.0;  hdl->priority = priority;  hdl->segment = 0;  hdl->display = true;  rtsys->nbrOfSchedHandlers++;  hdl->invokedBy = NULL;  hdl->data = NULL;  hdl->dataMATLAB = NULL;  hdl->codeFcn = codeFcn;  hdl->codeFcnMATLAB = NULL;  rtsys->handlerList->appendNode(new HandlerNode(hdl));  rtsys->nbrOfHandlers++;  return true;}bool ttCreateInterruptHandler(char *name, double priority, double (*codeFcn)(int, void*), void* data) {  HandlerNode* n;  if (ttCreateInterruptHandler(name, priority, codeFcn)) {        n = (HandlerNode*) rtsys->handlerList->getLast();    n->getHandler()->data = data;    return true;  } else {    return false;  }}#endif

⌨️ 快捷键说明

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