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

📄 getmsg.cpp

📁 一个很棒的网络控制系统仿真软件
💻 CPP
字号:
#ifndef GET_MSG#define GET_MSG#include "getnetwork.cpp"// do the dirty work: poke around inside nwsys of network block NWmsg *nwGetMsg(Network* net) {  NWmsg *m;  if ((m = (NWmsg *)net->nwsys->nwnodes[net->nodeNbr]->postprocQ->getFirst()) != NULL) {    net->nwsys->nwnodes[net->nodeNbr]->postprocQ->removeNode(m);  }  return m;}void *ttGetMsg(int networkNbr) // returns data (void *) or NULL if no message{  void *data;  Network* net = getNetwork(networkNbr);  if (net == NULL) {    // is there no network?    char buf[200];    sprintf(buf, "ttGetMsg: Network #%d not present!", networkNbr);    MEX_ERROR(buf);    return NULL;  }  NWmsg *nwmsg = nwGetMsg(net);   if (nwmsg == NULL) {    return NULL;  }  data = nwmsg->data;  nwmsg->timesRead++;  if (nwmsg->receiver == -1 && nwmsg->timesRead == net->nwsys->nbrOfNodes-1) {    //printf("Message read %d times!\n", nwmsg->timesRead);    // Delete message if read by all nodes (broadcast)    //delete nwmsg;  } else if (nwmsg->receiver > -1) {    // Delete message    //delete nwmsg;  }  return data;}void *ttGetMsg() {  return ttGetMsg(1);}// For use from Matlab mex functionchar *ttGetMsgMATLAB(int networkNbr) {  Network* net = getNetwork(networkNbr);    if (net == NULL) {    // is there no network?    char buf[200];    sprintf(buf, "ttGetMsg: Network #%d not present!", networkNbr);    MEX_ERROR(buf);    return NULL;  }  NWmsg *nwmsg = nwGetMsg(net);  if (nwmsg == NULL) {    return NULL;  }  char* data = new char[strlen(nwmsg->dataMATLAB)+1];  strcpy(data, nwmsg->dataMATLAB);  nwmsg->timesRead++;  if (nwmsg->receiver == -1 && nwmsg->timesRead == net->nwsys->nbrOfNodes-1) {    // Delete message if read by all nodes (broadcast)    delete[] nwmsg->dataMATLAB;    delete nwmsg;  } else if (nwmsg->receiver > -1) {    // Delete message    delete[] nwmsg->dataMATLAB;    delete nwmsg;  }  return data;}#endif

⌨️ 快捷键说明

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