123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- #include "dmpdatacore.h"
- #include "../ytDMPServerDog/dogshm.h"
- DmpDataCore::DmpDataCore(QObject *parent) : QObject(parent)
- {
- isSending1 = true;
- bstrlist.clear();
- pointstrlist.clear();
- timer = new QTimer(this);
- connect(timer,&QTimer::timeout,this,&DmpDataCore::time_out);
- dataserver= new DMPDataServer(this);
- connect(dataserver,&DMPDataServer::CommData,this,&DmpDataCore::CommData);
- connect(dataserver,&DMPDataServer::DatabaseData,this,&DmpDataCore::DatabaseData);
- connect(dataserver,&DMPDataServer::getERealtimeValue,this,&DmpDataCore::getRealtimeValue);
- logthread = new LogThread(this);
- logthread->start();
- dbthread = new DatabaseThread(this);
- dbthread->start();
- wsserver = new WebsocketServer(this);
- networkmanager1 = new QNetworkAccessManager(this);
- connect(networkmanager1,&QNetworkAccessManager::finished,this,&DmpDataCore::finishedSlot1);
- mqttIdx = 1;
- m_client = new QMQTT::Client(QHostAddress("47.98.201.73"),1883,this);
- connect(m_client,&QMQTT::Client::connected,this,&DmpDataCore::onConnected);
- m_client->setUsername("usky");
- m_client->setPassword("usky");
- m_client->setCleanSession(true);
- m_client->connectToHost();
- }
- DmpDataCore::~DmpDataCore()
- {
- logthread->stop();
- dbthread->stop();
- }
- void DmpDataCore::start()
- {
- timer->start(1000);
- dataserver->start();
- }
- void DmpDataCore::onConnected()
- {
- printf("mqtt connected\n");
- }
- void DmpDataCore::time_out()
- {
- uint t = QDateTime::currentDateTime().toTime_t();
- dogshm->data_feedtime = t;
- if((bstrlist.length()>0)&&(isSending1)){
- isSending1 = false;
- QString data = bstrlist.first();
- QByteArray Report = data.toUtf8();
- QNetworkRequest *req = new QNetworkRequest();
- req->setUrl(QUrl("http://172.16.120.69:8086/write?db=USKTSDB_A&u=root&p=root"));
- req->setHeader(QNetworkRequest::ContentTypeHeader,"application/json; charset=UTF-8");
- req->setHeader(QNetworkRequest::ContentLengthHeader,QString("%1").arg(Report.length()).toUtf8());
- QNetworkReply *reply = networkmanager1->post(*req,Report);
- QReplyTimeout *pTimeout = new QReplyTimeout(reply,10000);
- connect(pTimeout, SIGNAL(net_timeout()),this,SLOT(reply_timeout1()));
- }
- if(pointstrlist.length()>0){
- QString data = pointstrlist.first();
- if((m_client->connectionState() == QMQTT::STATE_DISCONNECTED)||(m_client->connectionState() == QMQTT::STATE_INIT)){
- m_client->connectToHost();
- }
- m_client->publish(QMQTT::Message(mqttIdx++,"data-collector",data.toUtf8()));
- if(mqttIdx > 9999)
- mqttIdx = 1;
- pointstrlist.removeFirst();
- }
- }
- void DmpDataCore::reply_timeout1()
- {
- logthread->appendData(QString("reply_timeout1"));
- if(bstrlist.length()>0){
- bstrlist.removeFirst();
- }
- isSending1 = true;
- }
- void DmpDataCore::finishedSlot1(QNetworkReply *reply)
- {
- if(bstrlist.length()>0){
- if(reply->error()==QNetworkReply::NoError){
- QString bak_info = QString::fromUtf8(reply->readAll());
- logthread->appendData(bak_info);
- }else{
- QString bak_info = QString::fromUtf8(reply->readAll());
- logthread->appendData(QString("QNetworkReply1::Error [%1]").arg(bak_info));
- }
- bstrlist.removeFirst();
- }
- reply->deleteLater();
- isSending1 = true;
- }
- void DmpDataCore::CommData(QString data)
- {
- logthread->appendData(data);
- }
- void DmpDataCore::DatabaseData(QString sql)
- {
- dbthread->appendSql(sql);
- }
- void DmpDataCore::getRealtimeValue(QString DeviceCode, QString bstr, QString pointstr, QDateTime t)
- {
- bstrlist.append(bstr);
- pointstrlist.append(pointstr);
- QString tmp = QString("[%1] bstr: [%2], pointstr: [%3]").arg(QDateTime::currentDateTime().toString("yyyy-mm-dd HH:mm:ss")).arg(bstr).arg(pointstr);
- logthread->appendData(tmp);
- }
|