예제 #1
0
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";
    }
}
예제 #2
0
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;
}
예제 #3
0
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);

        }