#include "DataFileTransfer.h" ZZ_HttpTransfer::ZZ_HttpTransfer(QObject* parent /*= nullptr*/) { m_pNetworkManager = nullptr; } ZZ_HttpTransfer::~ZZ_HttpTransfer() { if (m_pNetworkManager!= nullptr) { delete m_pNetworkManager; } } int ZZ_HttpTransfer::SendData() { if (m_pNetworkManager == nullptr) { m_pNetworkManager = new QNetworkAccessManager(); connect(m_pNetworkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(SlotReplyFinished(QNetworkReply*))); } QNetworkRequest qnRequest; qnRequest.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json")); qnRequest.setUrl(QUrl("http://172.16.0.234/fileup/Data_uper.php")); QByteArray qbSend; QString qstrSend; for (int i = 0; i < m_struGrabberRTParams.fscParams.ucDeviceNumber; i++) { for (int j = 0; j < m_struGrabberRTParams.apsParams.iTotalPosition - 1; j++) { qstrSend.clear(); qstrSend = m_vecCalcedData[i][j].qstrGrabDate + "##"; qstrSend += /*"FS_SN:" +*/ QString::fromLocal8Bit(m_struGrabberRTParams.fscParams.strSN[i].c_str()) + "##"; qstrSend += /*"Position:" +*/ QString("%1").arg(j + 1) + "##"; qstrSend += /*"ExpTime:" +*/ QString("%1").arg(m_vecCalcedData[i][j].usExposureTimeInMS) + "##"; qstrSend += /*"Bands:" +*/ QString("%1").arg(m_vecCalcedData[i][j].iPixels) + "##"; qstrSend += /*"temp:" +*/ QString("%1").arg(m_vecCalcedData[i][j].fTemperature) + "##"; //send qbSend.clear(); qbSend.append(qstrSend.toLatin1()); qbSend.append((char*)m_vecCalcedData[i][j].fData, sizeof(float)*m_vecCalcedData[i][j].iPixels); m_pNetworkManager->post(qnRequest, qbSend); iFlagIsReplied = 0; int iCount = 0; while (!iFlagIsReplied) { iCount++; Delay_MSec(500); if (iCount > 20) { iFlagIsReplied = 1; qDebug() << "Reply Timeout:Upload Data "; } } } } return 0; } int ZZ_HttpTransfer::SendInfo() { if (m_pNetworkManager == nullptr) { m_pNetworkManager = new QNetworkAccessManager(); connect(m_pNetworkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(SlotReplyFinished(QNetworkReply*))); } QNetworkRequest qnRequest; qnRequest.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json")); qnRequest.setUrl(QUrl("http://172.16.0.234/fileup/Dev_info_uper.php")); QByteArray qbSend; QString qstrSend; QString qstrWaveLength; iFlagIsReplied = false; for (int i = 0; i < m_struGrabberRTParams.fscParams.ucDeviceNumber; i++) { qstrSend = "Location:" + QString("%1").arg(m_struEC.qstrLocation) + "####"; qstrSend += "DEV_SN:" + QString("%1").arg(m_struEC.qstrDEV_SN) + "####"; qstrSend += "FS_SN:" + QString::fromLocal8Bit(m_struGrabberRTParams.fscParams.strSN[i].c_str()) + "####"; qstrSend += "GPS_Longtitude:" + QString("%1").arg(m_struEC.qstrGPS_Longtitude) + "####"; qstrSend += "GPS_Latitude:" + QString("%1").arg(m_struEC.qstrGPS_Latitude) + "####"; qstrSend += "GPS_Altitude:" + QString("%1").arg(m_struEC.qstrGPS_Altitude) + "####"; qstrSend += "GPS_North:" + QString("%1").arg(m_struEC.qstrGPS_North) + "####"; qstrSend += "InstallationTime:" + QString("%1").arg(m_struMEC.qstrInstallationTime) + "####"; qstrSend += "NameOfMaintenanceStaff:" + QString("%1").arg(m_struMEC.qstrNameOfMaintenanceStaff) + "####"; qstrSend += "PhoneNumberOfMaintenanceStaff:" + QString("%1").arg(m_struMEC.qstrPhoneNumberOfMaintenanceStaff) + "####"; qstrSend += "Bands:" + QString("%1").arg(m_struGrabberRTParams.fscParams.usPixels[i]) + "####"; qstrSend += "Positions:" + QString("%1").arg(m_struGrabberRTParams.apsParams.iTotalPosition-1) + "####"; qstrSend += "WaveLength:"; for (int j=0;j< m_struGrabberRTParams.fscParams.usPixels[i];j++) { qstrWaveLength = QString("%1").arg(m_struGrabberRTParams.fscParams.fWavelength[i][j]); qstrSend += qstrWaveLength; if (j == m_struGrabberRTParams.fscParams.usPixels[i]-1) { //qstrSend += "####"; } else { qstrSend += ","; } } qbSend = qstrSend.toLatin1(); m_pNetworkManager->post(qnRequest, qbSend); iFlagIsReplied = 0; int iCount = 0; while (!iFlagIsReplied) { iCount++; Delay_MSec(500); if (iCount>20) { iFlagIsReplied = 1; qDebug() << "Reply Timeout:Upload Info "; } } } //qDebug() << qstrSend; return 0; } int ZZ_HttpTransfer::SendErr() { QNetworkRequest qnRequest; qnRequest.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json")); qnRequest.setUrl(QUrl("http://172.16.0.234/fileup/Warning.php")); QByteArray abTest; m_pNetworkManager->post(qnRequest, abTest); return 0; } void ZZ_HttpTransfer::SetContext(EContext struEC, MEContext struMEC) { m_struEC = struEC; m_struMEC = struMEC; } void ZZ_HttpTransfer::SetDeviceInfo(RunTimeGrabberParams struGrabberRTParams) { m_struGrabberRTParams = struGrabberRTParams; } void ZZ_HttpTransfer::SetCalData(vector> vecCalcedData) { m_vecCalcedData.clear(); m_vecCalcedData = vecCalcedData; } void ZZ_HttpTransfer::Delay_MSec(ZZ_U16 usMS) { QEventLoop qeLoop; QTimer::singleShot(usMS, &qeLoop, SLOT(quit())); qeLoop.exec(); } int ZZ_HttpTransfer::SlotReplyFinished(QNetworkReply* qnReply) { //QString qstrURL = qnReply->url().toString(); //QByteArray qbData = qnReply->readAll(); if (qnReply->error()== QNetworkReply::NoError) { iFlagIsReplied = 1; } qnReply->abort(); qnReply->close(); qnReply->deleteLater(); qnReply = NULL; //delete qnReply; return 0; }