#include "buzzerconn.h" BuzzerConn::BuzzerConn(QObject *parent) : QObject(parent) { this->networkManager = new QNetworkAccessManager(); connect(); } bool BuzzerConn::connect() { QList times = gettimes(); if(times[0] == 200.0){ this->connected = true; calcoffset(); calcoffset(); calcoffset(); return(true); } else{ return(false); } } void BuzzerConn::calcoffset() { QList times = gettimes(); QDateTime * date = new QDateTime; double offset = date->currentMSecsSinceEpoch() - times[2]; this->latest_offsets.append(offset); double mem = 0; for(int i=0;ioffset = mem / double(latest_offsets.length()); } QList BuzzerConn::gettimes() { QList times; ReturnData_t ret = senddata(QUrl("http://192.168.4.1")); times.append(double(ret.status_code)); if(ret.status_code == 200){ qDebug()<"); times.append(times_cache[0].toDouble()); times.append(times_cache[1].toDouble()); return(times); } else{ return(times); } } ReturnData_t BuzzerConn::senddata(QUrl serviceUrl) { ReturnData_t ret; //this is a custom type to store the returned data // Call the webservice QNetworkRequest request(serviceUrl); request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); //set ssl configuration //send a POST request with the given url and data to the server QUrlQuery pdata; QNetworkReply* reply; reply = this->networkManager->post(request, pdata.toString(QUrl::FullyEncoded).toUtf8()); //wait until the request has finished QEventLoop loop; loop.connect(this->networkManager, SIGNAL(finished(QNetworkReply*)), SLOT(quit())); loop.exec(); //get the status code QVariant status_code = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute); ret.status_code = status_code.toInt(); if(ret.status_code == 0){ //if tehstatus code is zero, the connecion to the server was not possible ret.status_code = 444; } //get the full text response ret.text = QString::fromUtf8(reply->readAll()); //return the data return(ret); }