ソースを参照

未注册设备数据不存库,微信端报警与客户要求一致

James 3 年 前
コミット
7d55048ec4

+ 25 - 16
ytWGZc/ytWGZcCore/dbthread.cpp

@@ -8,16 +8,17 @@
 //#define DatabaseName "smart_electricity"
 
 //#define HostName "192.168.0.206"
-//#define HostPort 3306
-//#define UserName "root"
-//#define PassWord "Y48hD&Eg"
-//#define DatabaseName "smart_electricity"
-
-#define HostName "101.133.214.75"
+#define HostName "124.70.139.15"
 #define HostPort 3306
-#define UserName "usky"
-#define PassWord "Yt#75Usky"
-#define DatabaseName "usky-electricity"
+#define UserName "electric"
+#define PassWord "Y48hD&Eg"
+#define DatabaseName "smart_electricity"
+
+//#define HostName "101.133.214.75"
+//#define HostPort 3306
+//#define UserName "usky"
+//#define PassWord "Yt#75Usky"
+//#define DatabaseName "usky-electricity"
 
 
 static QString digital[33] = {
@@ -103,6 +104,7 @@ void dbThread::run()
     }
     firstTime = false;
 
+
     while(keep){
         dogshm->time = QDateTime::currentDateTime().toTime_t();
         if(count > 9)
@@ -118,16 +120,21 @@ void dbThread::run()
         }
 
 
+        if(QDateTime::currentDateTime().time().hour() != hour){
+            hour = QDateTime::currentDateTime().time().hour();
+            if(!db.open()){
+                db.open();
+            }
+            initDb();
+            db.close();
+        }
+
         if((sqlList.length() > 0) || (alarmRepList.length() > 0)){
             if(!db.open()){
                 count++;
                 db.open();
             }else{
                 count =0;
-                if(QDateTime::currentDateTime().time().hour() != hour){
-                    hour = QDateTime::currentDateTime().time().hour();
-                    initDb();
-                }
 
                 while(sqlList.length() > 0){
                     db.exec(sqlList.first());
@@ -164,11 +171,12 @@ void dbThread::stop()
 
 void dbThread::deviceStatus()
 {
-    QDateTime t = QDateTime::currentDateTime();
 
     for(int i=0;i<1024;i++){
 
         if((zcdev->devs[i].enabled == 0x01)&&(zcdev->devs[i].deviceType == 6)){
+            QDateTime t = QDateTime::currentDateTime();
+
             QString sqldev = QString("select count(*) from device_status where device_code = '%1';").arg(zcdev->devs[i].deviceCode);
             QSqlQuery qrydev = db.exec(sqldev);
             while(qrydev.next()){
@@ -176,8 +184,9 @@ void dbThread::deviceStatus()
                     db.exec(QString("insert into device_status(id, device_code, device_status, site_id, status_time) values (NULL,'%1',0,'%2','%3');").arg(zcdev->devs[i].deviceCode).arg(zcdev->devs[i].siteId).arg(t.toString("yyyy-MM-dd HH:mm:ss")));
                 }else{
                     //0 正常, 1 离线, 77 告警, 4 故障
-                    //printf("deviceCode: %s, t.toTime_t(): %d, wgdev->devs[i].LastCommtime: %d, datatime: %s",wgdev->devs[i].deviceCode,t.toTime_t(),wgdev->devs[i].LastCommtime,t.toString("yyyy-MM-dd HH:mm:ss").toUtf8().data());
-                    uint tm = abs(t.toTime_t() - zcdev->devs[i].lastCommTime);
+                    uint tm = t.toTime_t() - zcdev->devs[i].lastCommTime;
+                    //printf("deviceCode: %s, t.toTime_t(): %d, wgdev->devs[i].LastCommtime: %d, datatime: %s, tm = %d \n",zcdev->devs[i].deviceCode,t.toTime_t(),zcdev->devs[i].lastCommTime,t.toString("yyyy-MM-dd HH:mm:ss").toUtf8().data(),tm);
+
                     if(tm > 600){
                         db.exec(QString("update device_status set device_status = 1, status_time = '%1' where device_code = '%2';").arg(t.toString("yyyy-MM-dd HH:mm:ss")).arg(zcdev->devs[i].deviceCode));
                     }else{

+ 16 - 13
ytWGZc/ytWGZcCore/zccomthread.cpp

@@ -42,14 +42,14 @@ static QString digitalDescTable[33] = {
     "开关量输入",
     "火灾预警总",
     "线路电气故障总",
-    "缺相",
+    "电压缺相",
     "线路带电",
     "线路开关状态",
-    "过压",
-    "低",
+    "电压高",
+    "电压低",
     "电流越限",
     "过流跳闸",
-    "母线停电",
+    "失压",
     "剩余电流越限",
     "测温点1超温",
     "测温点2超温",
@@ -299,7 +299,7 @@ ZcComThread::ZcComThread(qintptr socketDescriptor,QObject *parent) : QThread(par
 
     dataTotal.clear();
 
-    idx =0;
+    idx =-1;
     keep = false;
     this->socketDescriptor = socketDescriptor;
 
@@ -328,6 +328,7 @@ void ZcComThread::run()
         if(so->waitForReadyRead()){
             err_count++;
             readdata(so);
+
         }
         if(err_count > 6){
             close_self(so);
@@ -601,14 +602,14 @@ void ZcComThread::dealdata(QTcpSocket *so,QByteArray data)
                     QString mDesc = "";
                     if(digitalValue != zcdev->devs[idx].alarm[i].digitalValue){
                         if(digitalValue == 1){
-                            mDesc.append(digitalDescTable[i]).append("动作");
+                            mDesc.append(digitalDescTable[i]);
 
                             zcdev->devs[idx].alarm[i].digitalValue = digitalValue;
                             sql.append(QString("insert into alarm_power(id,device_code,alarm_name,sending_time,alarm_type,meas_name,digital_value,meas_desc,soe_time,handling_status) values (NULL,'%1','时间顺序记录','%2','alert','%3',%4,'%5','%6',0);").arg(deviceid).arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).arg(digital[i]).arg(digitalValue).arg(mDesc).arg(datetime));
                             emit appendAlarm(deviceid,sql,datetime,mDesc,QString("%1").arg(digitalValue),digital[i]);
                             sql.clear();
                         }else{
-                            mDesc.append(digitalDescTable[i]).append("复归");
+                            mDesc.append(digitalDescTable[i]);
 
                             zcdev->devs[idx].alarm[i].digitalValue = digitalValue;
                             sql.append(QString("insert into alarm_power(id,device_code,alarm_name,sending_time,alarm_type,meas_name,digital_value,meas_desc,soe_time,handling_status) values (NULL,'%1','时间顺序记录','%2','alert','%3',%4,'%5','%6',2);").arg(deviceid).arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).arg(digital[i]).arg(digitalValue).arg(mDesc).arg(datetime));
@@ -1213,17 +1214,19 @@ void ZcComThread::dealdata(QTcpSocket *so,QByteArray data)
         }else if((data.at(22)&0xff)==0x04){//登录
             err_count = 0;
             deviceid.clear();
+            QString loginDeviceId = "";
             for(int i=12;i<20;i++){
-                deviceid.append(QString("%1").arg(data.at(i)&0xff,2,16,QChar('0')));
+                loginDeviceId.append(QString("%1").arg(data.at(i)&0xff,2,16,QChar('0')));
             }
 
-            printf("deviceid: %s\n",deviceid.toUtf8().data());
-            emit comLog(QString("deviceid: %1").arg(deviceid));
+            printf("loginDeviceId: %s\n",loginDeviceId.toUtf8().data());
+            emit comLog(QString("loginDeviceId: %1").arg(loginDeviceId));
 
             for(int i=0;i<1024;i++){
                 if(zcdev->devs[i].enabled == 0x01){
-                    if(deviceid.compare(zcdev->devs[i].deviceCode)==0){
+                    if(QString::compare(loginDeviceId,QString(zcdev->devs[i].deviceCode))==0){
                         idx = i;
+                        deviceid.append(loginDeviceId);
                         break;
                     }
                 }
@@ -1395,14 +1398,14 @@ void ZcComThread::dealdata(QTcpSocket *so,QByteArray data)
                     QString mDesc = "";
                     if(digitalValue != zcdev->devs[idx].alarm[i].digitalValue){
                         if(digitalValue == 1){
-                            mDesc.append(digitalDescTable[i]).append("动作");
+                            mDesc.append(digitalDescTable[i]);
 
                             zcdev->devs[idx].alarm[i].digitalValue = digitalValue;
                             sql.append(QString("insert into alarm_power(id,device_code,alarm_name,sending_time,alarm_type,meas_name,digital_value,meas_desc,soe_time,handling_status) values (NULL,'%1','时间顺序记录','%2','alert','%3',%4,'%5','%6',0);").arg(deviceid).arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).arg(digital[i]).arg(digitalValue).arg(mDesc).arg(datetime));
                             emit appendAlarm(deviceid,sql,datetime,mDesc,QString("%1").arg(digitalValue),digital[i]);
                             sql.clear();
                         }else{
-                            mDesc.append(digitalDescTable[i]).append("复归");
+                            mDesc.append(digitalDescTable[i]);
 
                             zcdev->devs[idx].alarm[i].digitalValue = digitalValue;
                             sql.append(QString("insert into alarm_power(id,device_code,alarm_name,sending_time,alarm_type,meas_name,digital_value,meas_desc,soe_time,handling_status) values (NULL,'%1','时间顺序记录','%2','alert','%3',%4,'%5','%6',2);").arg(deviceid).arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")).arg(digital[i]).arg(digitalValue).arg(mDesc).arg(datetime));

+ 2 - 2
ytWGZc/ytWGZcCore/zccore.cpp

@@ -171,9 +171,9 @@ void ZCCore::sendData()
     post_data.append(QString("bz=%1").arg("测试阶段"));
 
     QNetworkRequest *req = new QNetworkRequest();
-    //req->setUrl(QUrl("https://wx.ewoogi.com/USKYOF/USKYOF.php/Home/Powerwarn/message_dl"));
+    req->setUrl(QUrl("https://wx.ewoogi.com/USKYOF/USKYOF.php/Home/Powerwarn/message_dl"));
     //测试地址
-    req->setUrl(QUrl("https://iot.usky.cn/ytapi/admin/Manage/ceShiUrl"));
+    //req->setUrl(QUrl("https://iot.usky.cn/ytapi/admin/Manage/ceShiUrl"));
     req->setHeader(QNetworkRequest::ContentTypeHeader,"application/x-www-form-urlencoded");
     req->setHeader(QNetworkRequest::ContentLengthHeader,post_data.length());
     QNetworkReply* reply = netAccessManager1->post(*req,post_data);