Esempio n. 1
0
void ExtPlaneConnection::socketError(QAbstractSocket::SocketError err) {
    INFO << "Socket error:" << errorString();
    server_ok = false;
    emit connectionMessage(errorString() + " : " + peerName() + ":" + QString::number(peerPort()));
    reconnectTimer.setInterval(5000);
    reconnectTimer.start();
}
Esempio n. 2
0
LogWindow::LogWindow()
    : QWidget( 0, Qt::Tool|Qt::WindowStaysOnTopHint )
{
    setWindowTitle( tr("Qtopia Sync Agent Messages") );

    DesktopSettings settings( "logwindow" );
    QRect r = settings.value( "geometry" ).toRect();
    if ( r.isValid() )
        setGeometry( r );

    textView = new QTextEdit;
    textView->setReadOnly( true );
    textView->setLineWrapMode( QTextEdit::NoWrap );
    textView->clear();

    QHBoxLayout *hbox = new QHBoxLayout( this );
    hbox->setMargin( 0 );
    hbox->setSpacing( 0 );

    hbox->addWidget( textView );

    QCopChannel *status = new QCopChannel( "QD/Status", this );
    connect( status, SIGNAL(received(QString,QByteArray)),
            this, SLOT(statusMessage(QString,QByteArray)) );
    QCopChannel *sys = new QCopChannel( "QD/Connection", this );
    connect( sys, SIGNAL(received(QString,QByteArray)), this, SLOT(connectionMessage(QString,QByteArray)) );
}
Esempio n. 3
0
void ExtPlaneConnection::readClient() {
    while(canReadLine()) {
        QByteArray lineBA = readLine();
        QString line = QString(lineBA).trimmed();
        //DEBUG << "Server says: " << line;
        if(!server_ok) { // Waiting for handshake..
            if(line=="EXTPLANE 1") {
                server_ok = true;
                emit connectionMessage("");
                setUpdateInterval(updateInterval);
                // Sub all refs
                foreach(ClientDataRef *ref, dataRefs)
                    subRef(ref);
            }
            return;
        } else { // Handle updates
            QStringList cmd = line.split(" ", QString::SkipEmptyParts);
            if(cmd.size()==3) {
                ClientDataRef *ref = dataRefs.value(cmd.value(1));
                if(ref) {
                    if (cmd.value(0)=="ufa" || cmd.value(0)=="uia"){
                        // Array dataref
                        QString arrayString = cmd.value(2);
                        Q_ASSERT(arrayString[0]=='[' && arrayString[arrayString.length()-1]==']');
                        arrayString = arrayString.mid(1, arrayString.length()-2);
                        QStringList arrayValues = arrayString.split(',');
                        ref->updateValue(arrayValues);
                    } else if ((cmd.value(0)=="uf")||(cmd.value(0)=="ui")||(cmd.value(0)=="ud")) {
                        // Single value dataref
                        ref->updateValue(cmd.value(2));
                    } else if (cmd.value(0)=="ub") {
                        // Data dataref
                        ref->updateValue(QByteArray::fromBase64(cmd.value(2).toUtf8()));
                    } else {
                        INFO << "Unsupported ref type " << cmd.value(0);
                    }
                } else {
                    INFO << "Ref not subscribed " << cmd.value(2);
                }
            }
        }
    }
}
Esempio n. 4
0
void ExtPlaneConnection::socketConnected() {
    emit connectionMessage("Connected to ExtPlane, waiting for handshake");
    reconnectTimer.stop();
}
Esempio n. 5
0
void ExtPlaneConnection::tryReconnect() {
    emit connectionMessage(QString("Connecting to ExtPlane at %1:%2..").arg(_host).arg(_port));

    reconnectTimer.stop();
    connectToHost(_host, _port);
}
Esempio n. 6
0
void SimulatedExtPlaneConnection::connectTo(QString host, unsigned int port) {
    _host = host;
    _port = port;
    server_ok = true;
    emit connectionMessage("Connected to ExtPlane (simulated)");
}