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

📄 sendmsg.cpp

📁 一个很棒的网络控制系统仿真软件
💻 CPP
字号:
#ifndef SEND_MSG#define SEND_MSG#include "getnetwork.cpp"// do the dirty work: poke around inside nwsys of the network block void nwSendMsg(NWmsg *nwmsg, RTnetwork *nwsys) {  // set time when finished preprocessing  nwmsg->waituntil = rtsys->time + nwsys->predelay;  // enqueue message in preprocQ  nwsys->nwnodes[nwmsg->sender]->preprocQ->appendNode(nwmsg);}// declare the four(!) versionsvoid ttSendMsg(int receiver, void *data, int length);void ttSendMsg(int receiver, void *data, int length, int priority);void ttSendMsg(int networkNbr, int receiver, void *data, int length);void ttSendMsg(int networkNbr, int receiver, void *data, int length, int priority);void ttSendMsg(int receiver, void *data, int length){  Network* net = getNetwork(1);  if (net == NULL) {    MEX_ERROR("ttSendMsg: Network not present!");    return;  }  int priority = net->nodeNbr;  ttSendMsg(1, receiver, data, length);}void ttSendMsg(int networkNbr, int receiver, void *data, int length){  Network* net = getNetwork(networkNbr);  if (net == NULL) {    char buf[200];    sprintf(buf, "ttSendMsg: Network #%d not present!", networkNbr);    MEX_ERROR(buf);    return;  }  int priority = net->nodeNbr;  ttSendMsg(networkNbr, receiver, data, length, priority);}void ttSendMsg(int receiver, void *data, int length, int priority){  ttSendMsg(1, receiver, data, length, priority);}void ttSendMsg(int networkNbr, int receiver, void *data, int length, int priority){  int i;  Network* net = getNetwork(networkNbr);  if (net == NULL) {    char buf[200];    sprintf(buf, "ttSendMsg: Network #%d not present!", networkNbr);    MEX_ERROR(buf);    return;  }    if (receiver < -1 || receiver > net->nwsys->nbrOfNodes) {    MEX_ERROR("ttSendMsg: receiver number out of bounds!");    return;  }  NWmsg *nwmsg = new NWmsg();  nwmsg->sender = net->nodeNbr;  nwmsg->timesRead = 0;  nwmsg->receiver = receiver-1;  nwmsg->data = data;  nwmsg->length = length;  nwmsg->prio = priority;      nwSendMsg(nwmsg, net->nwsys);  rtsys->nwSnd[net->networkID - 1] += 1.0; // trigger output}// For use from Matlab mex functionvoid ttSendMsgMATLAB(int networkNbr, int receiver, int length, char* dataMATLAB, double priority){  int i;  Network* net = getNetwork(networkNbr);  if (net == NULL) {    // is there no network?    char buf[200];    sprintf(buf, "ttSendMsg: Network #%d not present!", networkNbr);    mexErrMsgTxt(buf);  }  if (receiver < -1 || receiver > net->nwsys->nbrOfNodes) {    mexErrMsgTxt("ttSendMsg: receiver number out of bounds");  }  NWmsg *nwmsg = new NWmsg();  nwmsg->sender = net->nodeNbr;  nwmsg->timesRead = 0;  nwmsg->receiver = receiver-1;  nwmsg->data = NULL;  nwmsg->dataMATLAB = new char[strlen(dataMATLAB)+1];  strcpy(nwmsg->dataMATLAB, dataMATLAB);  nwmsg->length = length;  nwmsg->prio = priority;    nwSendMsg(nwmsg, net->nwsys);  rtsys->nwSnd[net->networkID - 1] += 1.0; // trigger output} void ttSendMsgMATLAB(int networkNbr, int receiver, int length, char* dataMATLAB){  Network* net = getNetwork(networkNbr);  if (net == NULL) {    // is there no network?    char buf[200];    sprintf(buf, "ttSendMsg: Network #%d not present!", networkNbr);    mexErrMsgTxt(buf);  }  int priority = net->nodeNbr;  ttSendMsgMATLAB(networkNbr, receiver, length, dataMATLAB, priority);}#endif

⌨️ 快捷键说明

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