2016-05-25 15 views
0

Ich verwende zwei IP-Kameras von Axis Communications für meine Anwendung. Ich möchte überprüfen, ob die Kameras jemals getrennt sind. Ist es möglich, dies unter Verwendung von QNetworkAccessManager und QNetworkReply zu tun?Erkennung der IP-Kamera-Verbindung mit QNetworkAccessManager?

Der Prototyp dessen, was habe ich versucht, ist wie die folgende Art und Weise:

QNetworkAccessManager *m_networkAccessManager = new QNetworkAccessManager(); 
QNetworkReply *m_networkReply = m_networkAccessManager->get(QNetworkRequest(camUrl)); 
if (!m_networkReply) 
{ 
    delete m_networkAccessManager; 
    qDebug()<<"Camera not found"<<endl; 
} 

connect(m_networkReplyCam, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(cameraDisconnected(QNetworkReply::NetworkError))); 

void MainWindow::cameraDisconnected(QNetworkReply::NetworkError) 
{ 
    qDebug()<<"Camera Disconected"<<endl; 
} 

Aber der Schlitz cameraDisconnected nie wird aufgerufen sein scheinen. Ich habe auch versucht, aus QNetworkReply wie folgt mit finished() Signal verbinden:

connect(m_networkReplyCam, SIGNAL(finished()), this, SLOT(cameraDisconnected())); 

Aber selbst dann der Schlitz wird nie aufgerufen.

Was mache ich falsch?

Danke.

Antwort

0

Ihre Anfrage wird Timeout nach einiger Zeit, wenn der Host nicht erreichbar ist. Es gibt keine eingebaute Möglichkeit, ein spezifisches Zeitlimit in QNetworkRequest oder QNetworkAccessManager einzustellen. Eine Möglichkeit besteht darin, einen eigenen Zeitgeber zu implementieren, der nach einer bestimmten Zeit abbricht. Es gibt mehrere Beispiele dafür, wie 1, 2 und 3.