📄 createevent.cpp
字号:
#ifndef CREATE_EVENT#define CREATE_EVENT// Create a free eventbool ttCreateEvent(char *name) { Event* e; EventNode *en; if (strcmp(name, "") == 0) { MEX_ERROR("ttCreateEvent: Name should be a non-empty string!"); return false; } if (rtsys->prioFcn == NULL) { MEX_ERROR("ttCreateEvent: Kernel must be initialized before creation of events!"); return false; } en = (EventNode*) rtsys->eventList->getFirst(); while (en!=NULL) { e = en->getEvent(); if (e->name != NULL) { if (strcmp(e->name, name) == 0) { break; } } en = (EventNode*) en->getNext(); } if (en != NULL) { MEX_ERROR("ttCreateEvent: Name of event not unique!"); return false; } e = new Event; e->name = new char[strlen(name)+1]; strcpy(e->name, name); e->waitingQ = new List("WaitingQ", NULL); e->isFree = true; rtsys->eventList->appendNode(new EventNode(e));}// Create an event associated with a monitorbool ttCreateEvent(char *name, char *monitor) { Event* e; EventNode *en; MonitorNode *mn; mn = (MonitorNode*) rtsys->monitorList->getFirst(); while (mn!=NULL) { if (mn->getMonitor()->name != NULL) { if (strcmp(mn->getMonitor()->name, monitor) == 0) { break; } } mn = (MonitorNode*) mn->getNext(); } if (mn==NULL) { // Monitor does not exist char buf[200]; sprintf(buf, "ttCreateEvent: Non-existent monitor '%s'!", monitor); MEX_ERROR(buf); return false; } if (ttCreateEvent(name)) { en = (EventNode*) rtsys->eventList->getLast(); e = en->getEvent(); e->mon = mn->getMonitor(); e->isFree = false; return true; } else { return false; }}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -