1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- #include "syncchangning.h"
- //#define SyncDbg
- SyncChangning::SyncChangning(QObject *parent, QString urlstr) :
- QObject(parent)
- {
- this->Url = QUrl(urlstr);
- CurrentIdx = 0;
- isworking = false;
- SyncDataList.clear();
- timer = new QTimer(this);
- connect(timer,SIGNAL(timeout()),this,SLOT(time_out()));
- accessManager = new QNetworkAccessManager(this);
- connect(accessManager,SIGNAL(finished(QNetworkReply*)),this,SLOT(query_finishedSlot(QNetworkReply*)));
- }
- void SyncChangning::start()
- {
- timer->start(300);
- }
- void SyncChangning::appendData(SyncData data)
- {
- SyncDataList.append(data);
- }
- //void SyncChangning::reply_timeout()
- //{
- // isworking = false;
- //#ifdef SyncDbg
- // emit syncdata(QString("%1 reply timeout()").arg(CurrentIdx),false);
- //#endif
- //}
- void SyncChangning::query_finishedSlot(QNetworkReply *reply)
- {
- if(reply->error()==QNetworkReply::NoError){
- QByteArray ret = reply->readAll();
- #ifdef SyncDbg
- if(ret.indexOf("8000")<0){
- emit syncdata(QString("%1) %2").arg(CurrentIdx).arg(QString::fromUtf8(ret)),false);
- }else{
- emit syncdata(QString::fromUtf8(ret),false);
- }
- #endif
- }else{
- #ifdef SyncDbg
- emit syncdata(QString("%1) reply error: %2").arg(CurrentIdx).arg(reply->error()),false);
- #endif
- }
- CurrentIdx = 0;
- reply->deleteLater();
- isworking = false;
- time_out();
- }
- void SyncChangning::time_out()
- {
- if(SyncDataList.length()>0){
- if(!isworking){
- isworking = true;
- SyncData data = SyncDataList.first();
- SyncDataList.removeFirst();
- CurrentIdx = data.Idx;
- QString rep = QString::fromUtf8("{\"appKey\":\"4464378a1152474f82d0025e1bc847b3\",\"secret\":\"88fb10459cad484abeec27c576c853d8\",\"devNum\":\"%1\",\"power\":%2,\"fault\":%3,\"start\":%4,\"run\":%5,\"press\":%6,\"quantity\":%7,\"signal\":%8,\"status\":%9}")
- .arg(data.DevNum).arg(data.Power).arg(data.Fault).arg(data.Start).arg(data.Run).arg(data.Press).arg(data.Quantity).arg(data.Signal).arg(data.Sta);
- QNetworkRequest *req = new QNetworkRequest(Url);
- req->setHeader(QNetworkRequest::ContentTypeHeader,"application/json");
- req->setRawHeader("Accept","text/html, application/xhtml+xml, */*");
- req->setRawHeader("Connection","keep-alive");
- req->setRawHeader("Cache-Control"," no-cache");
- req->setRawHeader("Content-Length",QString("%1").arg(rep.length()).toUtf8());
- #ifdef SyncDbg
- emit syncdata(rep,true);
- #endif
- // QNetworkReply *reply =
- accessManager->post(*req,rep.toUtf8());
- // QReplyTimeout *pTimeout = new QReplyTimeout(reply,3000);
- // connect(pTimeout,SIGNAL(net_timeout()),this,SLOT(reply_timeout()));
- }
- }
- }
|