فهرست منبع

视频监控系统程序增加语音报警功能和websocket添加报警照片路径字段推送

james 2 سال پیش
والد
کامیت
ade3f153a3
2فایلهای تغییر یافته به همراه27 افزوده شده و 8 حذف شده
  1. 23 5
      CamCore/coreobject.cpp
  2. 4 3
      CamCore/coreobject.h

+ 23 - 5
CamCore/coreobject.cpp

@@ -1,5 +1,6 @@
 #include "coreobject.h"
 #include <unistd.h>
+
 //公司这边生产环境的内网和外网ip
 #define iServerIP "172.19.198.166"
 #define oServerIP "47.103.74.123"
@@ -11,6 +12,12 @@
 //#define oServerIP "124.71.175.91"
 
 #define UN_REFERENCED_PARAMETER(x) {(x) = (x);}
+#define GET_YEAR(_time_)    (((_time_)>>26) + 2000)
+#define GET_MONTH(_time_)   (((_time_)>>22) & 15)
+#define GET_DAY(_time_)   (((_time_)>>17) & 31)
+#define GET_HOUR(_time_)   (((_time_)>>12) & 31)
+#define GET_MINUTE(_time_)   (((_time_)>>6) & 63)
+#define GET_SECOND(_time_)   (((_time_)>>0) & 63)
 
 extern BOOL CALLBACK RegisterCallBack(LONG lUserID, DWORD dwDataType, void *pOutBuffer, DWORD dwOutLen, void *pInBuffer, DWORD dwInLen, void *pUser);
 extern BOOL CALLBACK fnPREVIEW_NEWLINK_CB(LONG lPreviewHandle, NET_EHOME_NEWLINK_CB_MSG *pNewLinkCBMsg, void *pUserData);
@@ -87,9 +94,12 @@ CoreObject::CoreObject(QObject *parent) :
     connect(m_client,&QMQTT::Client::connected,this,&CoreObject::mqconnected);
     m_client->connectToHost();
 
+    //v1.2摄像机版本
     NET_ESTREAM_Init();
     NET_EALARM_Init();
     NET_ECMS_Init();
+
+
     if(shm_load()){
         QDateTime zeroTime = QDateTime::fromTime_t(0);
         for(int i=0;i<DEVICES_COUNT;i++){
@@ -120,13 +130,15 @@ CoreObject::CoreObject(QObject *parent) :
         }
         printf("processList.length = %d\n",processList.length());
         for(quint16 i=0;i<8;i++){
-            wxThreads[i] = new WechartThreads(this,i,"47.98.201.73","/jdxf/wxapp2.php/Home/GeneralPush/voice");
+            wxThreads[1][i] = new WechartThreads(this,i,"47.98.201.73","/jdxf/wxapp2.php/Home/GeneralPush/voice_alarm");
+            wxThreads[0][i] = new WechartThreads(this,i,"47.98.201.73","/jdxf/wxapp2.php/Home/GeneralPush/voice");
             wssThread[i] = new ttsThreads(this,i,"47.98.201.73","/report",55125);
             spThread[i] = new ttsThreads(this,i,"47.98.201.187","/report",55335);
 //            connect(wxThreads[i],&WechartThreads::wxchart,this,&CoreObject::chartlog);
 //            connect(wssThread[i],&ttsThreads::ttslog,this,&CoreObject::chartlog);
 //            connect(spThread[i],&ttsThreads::ttslog,this,&CoreObject::chartlog);
-            wxThreads[i]->start();
+            wxThreads[1][i]->start();
+            wxThreads[0][i]->start();
             wssThread[i]->start();
             spThread[i]->start();
         }
@@ -153,6 +165,7 @@ CoreObject::~CoreObject()
     }
     if(alarmListenHandle>-1)
         NET_EALARM_StopListen(alarmListenHandle);
+
     NET_ECMS_Fini();
     NET_ESTREAM_Fini();
     NET_EALARM_Fini();
@@ -237,6 +250,7 @@ BOOL RegisterCallBack(LONG lUserID, DWORD dwDataType, void *pOutBuffer, DWORD dw
         {
             for(i=0;i<DEVICES_COUNT;i++){
                 if(strcmp(ytShm->eHomeDevice[i].deviceID,QString((char*)(pDevInfo->byDeviceID)).replace(" ","_").toUtf8().data())==0){
+
                     found = true;
                     memcpy(ytShm->eHomeDevice[i].devIp,(char *)(pDevInfo->struDevAdd.szIP),sizeof(ytShm->eHomeDevice[i].devIp));
                     obj->appendLog(QString("[ %1 (%2) online ]").arg(t_now.toString("yyyy-MM-dd HH:mm:ss")).arg(ytShm->eHomeDevice[i].deviceID));
@@ -643,6 +657,7 @@ BOOL CALLBACK AlarmMSGCallBack(LONG lHandle, NET_EHOME_ALARM_MSG *pAlarmMsg, voi
     return TRUE;
 }
 
+
 BOOL InputStreamData(QString deviceid, BYTE byDataType, char* pBuffer, int iDataLen)
 {
     int i;
@@ -794,6 +809,7 @@ void CoreObject::start()
         exit(1);
     }
     printf("NET_ECMS_StartListen end\n");
+
 //    qDebug()<<"start core";
 }
 
@@ -1142,6 +1158,7 @@ void CoreObject::time_out()
                     ytShm->eHomeDevice[i].transed = 0x00;
                 }
             }
+
         }
     }
     if(reportList.length()>0){
@@ -1198,8 +1215,8 @@ void CoreObject::time_out()
 
                     QString rep1 = QString("{\"SubType\":16,\"DeviceId\":\"%1\",\"InsertId\":%2,\"Confirmed\":false}").arg(rep.Device_Code).arg(insertId);
                     spThread[repcur]->appendData(rep1);
-                    QString rep2 = QString("{\"SubType\":16,\"DeviceId\":\"%1\",\"InsertId\":%2,\"Confirmed\":0,\"CompanyCode\":\"%3\",\"evt_name\":\"%4\",\"evt\":0,\"alarm_time\":\"%5\"}")
-                                    .arg(rep.Device_Code).arg(insertId).arg(companyCode).arg(type).arg(rep.Event_Time);
+                    QString rep2 = QString("{\"SubType\":16,\"DeviceId\":\"%1\",\"InsertId\":%2,\"Confirmed\":0,\"CompanyCode\":\"%3\",\"evt_name\":\"%4\",\"evt\":\"%5\",\"alarm_time\":\"%6\"}")
+                                    .arg(rep.Device_Code).arg(insertId).arg(companyCode).arg(type).arg(value).arg(rep.Event_Time);
                     printf("1234  ---  %s\n",rep2.toUtf8().data());
                     wssThread[repcur]->appendData(rep2);
                     for(int i=0;i<companyphoneList.length();i++){
@@ -1215,7 +1232,8 @@ void CoreObject::time_out()
                     if(phonelist.length()>0){
                         QString data = QString("evt_name=%1&device_code=%2&phone=%3&insert_id=%4&time=%5&bz=%1").arg(type).arg(rep.Device_Code).arg(phonelist).arg(insertId).arg(rep.Event_Time)
                                 .replace(",","%2C").replace(":","%3A").replace(" ","+");
-                        wxThreads[wxcur]->appendData(data);
+                        wxThreads[1][wxcur]->appendData(data);
+                        wxThreads[0][wxcur]->appendData(data);
                         wxcur++;
                         wxcur &= 0x07;
                     }

+ 4 - 3
CamCore/coreobject.h

@@ -1,7 +1,6 @@
 #ifndef COREOBJECT_H
 #define COREOBJECT_H
 
-
 #include <QObject>
 #include <QJsonDocument>
 #include <QJsonArray>
@@ -17,6 +16,7 @@
 #include "HCEHomeCMS.h"
 #include "HCEHomeAlarm.h"
 #include "HCEHomeStream.h"
+#include "HCNetSDK.h"
 #include <QUuid>
 #include <QRegExp>
 #include <stdio.h>
@@ -115,12 +115,13 @@ private:
     QSqlDatabase db;
     ttsThreads *wssThread[8];
     ttsThreads *spThread[8];
-    WechartThreads *wxThreads[8];
+    WechartThreads *wxThreads[2][8];
     LogThread *logThread;
     int repcur,wxcur;
     int synchour,hour;
     uint alarmTime[DEVICES_COUNT];
-    long alarmListenHandle;
+    long alarmListenHandle,eventListenHandle;
+    LONG lEventUserID;
 
     QMQTT::Client *m_client;
     quint16 infomqttIdx,alarmmqttIdx,statusIdx;