Browse Source

优化程序

James 4 years ago
parent
commit
9683dcfbed

+ 11 - 0
ytDashBoardCore/databasethread.cpp

@@ -158,6 +158,17 @@ void DatabaseThread::run()
                 QString Stime = dt.toString("HHmm");
                 if(QString::compare(Stime,savetime)!=0){
                     savetime = Stime;
+                    int savecount = 0;
+                    QSqlQuery savesql = db.exec(QString("select count(*) from yt_t_rec where SUBSTR(v_datatime,1,16) = '%1'").arg(dt.toString("yyyy-MM-dd HH:mm")));
+                    while(savesql.next())
+                    {
+                        savecount = savesql.value(0).toInt();
+                    }
+                    if(savecount > 0)
+                    {
+                        db.exec(QString("delete from yt_t_rec where SUBSTR(v_datatime,1,16) = '%1'").arg(dt.toString("yyyy-MM-dd HH:mm")));
+                    }
+
                     savedata();
                 }
             }

+ 2 - 2
ytDashBoardCore/databoardcore.cpp

@@ -26,7 +26,7 @@ void DataBoardCore::start()
     ws->start();
     logThread->start();
     infoServer->start();
-    timer->start(5);
+    timer->start(5000);
 }
 
 void DataBoardCore::weblog(QString receivelog)
@@ -41,7 +41,7 @@ void DataBoardCore::timeout()
     if(mDay != QDate::currentDate().day()){
         mDay = QDate::currentDate().day();
         uint l_time = QDateTime::currentDateTime().toTime_t()-30*86400;
-        QDir dir("/opt/log");
+        QDir dir("log");
         QFileInfoList file_list = dir.entryInfoList(QDir::Files);
         for(int i=0;i<file_list.size();i++){
             QFileInfo f_info = file_list.at(i);

+ 21 - 13
ytDashBoardCore/infocenterserver.cpp

@@ -2,7 +2,7 @@
 
 InfoCenterServer::InfoCenterServer(QObject *parent) : QTcpServer(parent)
 {
-    clientList.clear();
+//    clientList.clear();
 
 }
 
@@ -24,9 +24,14 @@ void InfoCenterServer::incomingConnection(qintptr socketDescriptor)
     printf("new incoming\n");
     this->appendData("incomingConnection");
     InfoClient *client = new InfoClient(socketDescriptor,this);
-    clientList.append(client);
-    connect(client,&InfoClient::write_error,this,&InfoCenterServer::write_error);
+//    clientList.append(client);
+//    connect(client,&InfoClient::write_error,this,&InfoCenterServer::write_error);
     connect(client,&InfoClient::sendlog,this,&InfoCenterServer::receivelog);
+
+//    printf("InfoCenterServer::incomingConnection clientList.size() = %d\n",clientList.size());
+//    this->appendData(QString("InfoCenterServer::incomingConnection clientList.size() = %1").arg(clientList.size()));
+
+    //线程结束,退出,但是没有清除clientList对应的client操作  导致没有指向的指针,内存泄露
     connect(client,&InfoClient::finished,client,&InfoClient::quit);
     client->start();
 }
@@ -47,16 +52,19 @@ void InfoCenterServer::appendData(QString emitlog)
 
 void InfoCenterServer::write_error()
 {
-    this->appendData("enter into InfoCenterServer::write_error()");
-    InfoClient *pClient = qobject_cast<InfoClient *>(sender());
-    QList<InfoClient *>::iterator i;
-    for(i=clientList.begin();i!=clientList.end();i++){
-        InfoClient *client = *i;
-        if(client==pClient){
-            clientList.removeAll(client);
-            client->deleteLater();
-        }
-    }
+//    this->appendData("enter into InfoCenterServer::write_error()");
+//    InfoClient *pClient = qobject_cast<InfoClient *>(sender());
+//    QList<InfoClient *>::iterator i;
+//    for(i=clientList.begin();i!=clientList.end();i++){
+//        InfoClient *client = *i;
+//        if(client==pClient){
+//            clientList.removeAll(client);
+//            client->deleteLater();
+//        }
+//    }
+
+//    printf("InfoCenterServer::write_error() clientList.size() = %d\n",clientList.size());
+//    this->appendData(QString("InfoCenterServer::write_error() clientList.size() = %1").arg(clientList.size()));
 }
 
 

+ 1 - 1
ytDashBoardCore/infocenterserver.h

@@ -31,7 +31,7 @@ public slots:
 //    void savedata();
 
 private:
-    QList<InfoClient *> clientList;
+//    QList<InfoClient *> clientList;
 //    QTimer *timer;
 //    QSqlDatabase db;
 //    int flag;

+ 6 - 2
ytDashBoardCore/infoclient.cpp

@@ -26,7 +26,7 @@ void InfoClient::run()
     QTcpSocket tcpSocket;
     if(!tcpSocket.setSocketDescriptor(socketDescriptor)){
         printf("setSocketDescriptor failed\n");
-        emit write_error();
+        //emit write_error();
         return;
     }
     printf("InfoClient::run()\n");
@@ -34,9 +34,13 @@ void InfoClient::run()
     count = 0;
     isWorking = true;
     while(isWorking){
+//        printf("tcpSocket.state() = %d\n",tcpSocket.state());
+//        this->appendData(QString("tcpSocket.state() = %1").arg(tcpSocket.state()));
         if(tcpSocket.state()!=QTcpSocket::ConnectedState){
+            printf("tcpSocket.state()!=QTcpSocket::ConnectedState = %d\n",tcpSocket.state());
+            this->appendData(QString("tcpSocket.state()!=QTcpSocket::ConnectedState = %1").arg(tcpSocket.state()));
             tcpSocket.abort();
-            emit write_error();
+            //emit write_error();
             return;
         }
 

+ 1 - 1
ytDashBoardCore/main.cpp

@@ -20,7 +20,7 @@ bool load_shm(){
         return false;
     if((shmid = shmget(key, sizeof (YtStationCount), IPC_CREAT|0666))==-1)
         return false;
-    printf("****************shmid  = %d",shmid);
+    //printf("****************shmid  = %d",shmid);
     ytStationCount = static_cast<YtStationCount *>(shmat(shmid, nullptr, 0));
     return true;
 }

+ 5 - 5
ytDashBoardCore/websocketserver.cpp

@@ -208,7 +208,7 @@ void WebSocketServer::processTextMessage(QString message)
                 stationStr=stationStr.left(stationStr.length()-1);
                 data=QString("{\"time\":\"%1\",\"CMD\":\"%2\",\"VER\":\"1.00\",\"TotalCount\":\"%3\",\"RESULT\":[%4],\"TimeStamp\":\"%5\",\"REPLY\":1}").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).arg(client->Cmd).arg(ytStationCount->StationCount).arg(stationStr).arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"));
                 client->m_client->sendTextMessage(data);
-                this->appendData(QString("getStationInfo sendtoclient: %1").arg(data));
+                //this->appendData(QString("getStationInfo sendtoclient: %1").arg(data));
 
             }else if(QString::compare(client->Cmd,"getStationDetail")==0){
                 QString stationStr;
@@ -246,7 +246,7 @@ void WebSocketServer::processTextMessage(QString message)
 
                 data=QString("{\"time\":\"%1\",\"CMD\":\"%2\",\"VER\":\"1.00\",\"RESULT\":%3,\"TimeStamp\":\"%4\",\"REPLY\":1}").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).arg(client->Cmd).arg(stationStr).arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"));
                 client->m_client->sendTextMessage(data);
-                this->appendData(QString("getStationDetail sendtoclient: %1").arg(data));
+                //this->appendData(QString("getStationDetail sendtoclient: %1").arg(data));
 
             }else if(QString::compare(client->Cmd,"getDeviceDetail")==0){
                 QString stationStr;
@@ -290,7 +290,7 @@ void WebSocketServer::processTextMessage(QString message)
 
                 data=QString("{\"time\":\"%1\",\"CMD\":\"%2\",\"VER\":\"1.00\",\"RESULT\":%3,\"TimeStamp\":\"%4\",\"REPLY\":1}").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).arg(client->Cmd).arg(stationStr).arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"));
                 client->m_client->sendTextMessage(data);
-                this->appendData(QString("getDeviceDetail sendtoclient: %1").arg(data));
+                //this->appendData(QString("getDeviceDetail sendtoclient: %1").arg(data));
 
             }else if(QString::compare(client->Cmd,"getPatrolRecord")==0){
 //                QString patrolrecord;
@@ -375,7 +375,7 @@ void WebSocketServer::processTextMessage(QString message)
 
                 data=QString("{\"time\":\"%1\",\"CMD\":\"%2\",\"VER\":\"1.00\",\"TotalCount\":%3,\"Count\":%4,\"RESULT\":%5,\"TimeStamp\":\"%6\",\"REPLY\":1}").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).arg(client->Cmd).arg(totalcount).arg(client->Limit).arg(patrolrecord).arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"));
                 client->m_client->sendTextMessage(data);
-                this->appendData(QString("getPatrolRecord sendtoclient: %1").arg(data));
+                //this->appendData(QString("getPatrolRecord sendtoclient: %1").arg(data));
 
 
             }else if(QString::compare(client->Cmd,"getPatrolDetail")==0){
@@ -397,7 +397,7 @@ void WebSocketServer::processTextMessage(QString message)
                 }
 
                 client->m_client->sendTextMessage(data);
-                this->appendData(QString("getPatrolDetail sendtoclient: %1").arg(data));
+                //this->appendData(QString("getPatrolDetail sendtoclient: %1").arg(data));
 
             }
             //sendtext to client  END