void ServerWiget::turnOnServer(Aircraft *aircraft, bool activate) { if (activate) { connect(aircraft,SIGNAL(serverDataReady(QList<float>)), server,SLOT(setServerData(QList<float>))); connect(server,SIGNAL(getServerData(QList<int>)), aircraft,SLOT(setCustomServerData(QList<int>))); connect(aircraft,SIGNAL(serverCustomDataReady(QList<float>)), server,SLOT(setCustomServerData(QList<float>))); qDebug()<<"Server connected with modeling"; } else { disconnect(aircraft,SIGNAL(serverDataReady(QList<float>)), server,SLOT(setServerData(QList<float>))); disconnect(server,SIGNAL(getServerData(QList<int>)), aircraft,SLOT(setCustomServerData(QList<int>))); disconnect(aircraft,SIGNAL(serverCustomDataReady(QList<float>)), server,SLOT(setCustomServerData(QList<float>))); qDebug()<<"Server disconnected"; } }
ULXR_API_IMPL(Connection *) TcpIpConnection::detach() { ULXR_TRACE(ULXR_PCHAR("detach")); TcpIpConnection *clone = makeClone();; clone->pimpl->server_data = 0; clone->setServerData(getServerData()); if (getServerData() != 0) getServerData()->incRef(); ULXR_TRACE(ULXR_PCHAR("detach getHandle() ") << getHandle()); ULXR_TRACE(ULXR_PCHAR("detach clone->getHandle() ") << clone->getHandle()); cut(); ULXR_TRACE(ULXR_PCHAR("detach getHandle() ") << getHandle()); ULXR_TRACE(ULXR_PCHAR("detach clone->getHandle() ") << clone->getHandle()); ULXR_TRACE(ULXR_PCHAR("/detach")); return clone; }
void NetServer::incomingMessage_slot(PeerInfo *peerInfo, QByteArray msg) { if (msg.startsWith("GET")) // Http запрос { peerInfo->dataMode = DataModes(web_browser); peerInfo->pThread->SendMessage(httpServer->request(msg)); return; } QString s = msg; qDebug() << s; QStringList sl = s.split('\n'); for (int i = 0; i < sl.count(); i++) { QString s = sl[i]; if (s.indexOf("My name is: ") == 0) { s = s.remove(0, 12); if (s[s.length()-1] == '\n') s = s.remove(s.length()-1, 1); if (s[s.length()-1] == '\r') s = s.remove(s.length()-1, 1); QString oldname = peerInfo->name; peerInfo->name = s; peerInfo->pThread->SendMessage("OK. Your name changed.\n"); emit peerNameChanged(peerInfo, oldname); } else if (s.startsWith("Start data transfer")) { connect(this, SIGNAL(toThreadsDataReady(QList<float>)), peerInfo->pThread, SLOT(DataReady(QList<float>))); } else { if (s.startsWith("Set data mode: ")) { s = s.remove(0, 15); if (s[s.length()-1] == '\n') s = s.remove(s.length()-1, 1); if (s[s.length()-1] == '\r') s = s.remove(s.length()-1, 1); if (s == "raw") { peerInfo->dataMode = DataModes(raw); peerInfo->pThread->SendMessage("OK. Data mode: raw\n"); } else if (s == "visualisation_programm") { peerInfo->dataMode = DataModes(matlab); peerInfo->pThread->SendMessage("OK. Data mode: visualisation_programm\n"); //qDebug()<<"Подключено"; } else if (s == "filtered") { peerInfo->dataMode = DataModes(filtered); peerInfo->pThread->SendMessage("OK. Data mode: filtered\n"); } else if (s == "undefined") { peerInfo->dataMode = DataModes(undefined); peerInfo->pThread->SendMessage("OK. Data mode: undefined\n"); } else if (s == "matlab") { peerInfo->dataMode = DataModes(matlab); peerInfo->pThread->SendMessage("OK. Data mode: matlab\n"); } else { peerInfo->dataMode = DataModes(undefined); peerInfo->pThread->SendMessage("FAIL. Unknown data mode\n"); } } } if (s.startsWith("Get: ")) { s=s.remove(0,5); QStringList datalist = s.split(","); QList<int> dataNumbers; foreach (QString st,datalist) { dataNumbers.append(st.toInt()); } // QString str="you request "+QString::number(dataNumbers.size())+"\n"; // peerInfo->pThread->SendMessage(str.toAscii()); emit getServerData(dataNumbers); }