From d3b7bbe7102cd089680a828f5d8f6402c8cf6342 Mon Sep 17 00:00:00 2001
From: pansen <pansen626@sina.com>
Date: 星期四, 07 三月 2019 14:43:28 +0800
Subject: [PATCH] GB28181集成完成,集成推流模块

---
 QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp |   46 +++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 39 insertions(+), 7 deletions(-)

diff --git a/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp b/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp
index d0f6d34..476883e 100644
--- a/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp
+++ b/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp
@@ -13,8 +13,10 @@
     m_triggerElement(0, 0),
     m_sdkRule(rule),
     pManagerEsDB(nullptr),
+    m_bSetWH(false),
     pointArray(nullptr),
-    npts(0)
+    npts(0),
+    m_rpcClient("RtspAnalysServer", "127.0.0.1",appPref.getIntData("RpcServerPort"),"tcp")
 {
     pManagerEsDB = new EsDBTool(appPref.getStringData("ipAdd"), appPref.getIntData("ipPort"));
 }
@@ -31,8 +33,13 @@
     }
 
 }
+bool JudgmentRetrogradeTool::init(QString area, QString line)
+{
+    m_area=area;
+    m_line=line;
+}
 
-bool JudgmentRetrogradeTool::init(QString area, QString line) {
+bool JudgmentRetrogradeTool::setMask(QString area, QString line) {
 
     //#todo string ->json
     QJsonArray arrayAreas = getJsonArrayFromQString(area);
@@ -41,14 +48,17 @@
     }
     int size=arrayAreas.size();
     QVector<QPoint> vec;
+    float sizeW=(float)appPref.getIntData(m_sdkRule.strCamId.toStdString()+"width")/480;
+    float sizeH=(float)appPref.getIntData(m_sdkRule.strCamId.toStdString()+"height")/270;
+    for (int i = 0; i < arrayAreas.size(); ++i) {
     pointArray=new cv::Point2i[size];
-    for (int i = 0; i < size; ++i) {
         QJsonValue jsonValue = arrayAreas[i];
         QJsonObject obj = jsonValue.toObject();
-        int x = obj.value("x").toDouble() * 4;
-        int y = obj.value("y").toDouble() * 4;
-        pointArray[i]={x,y};
+        int x = obj.value("x").toDouble() *sizeW;
+        int y = obj.value("y").toDouble() *sizeH;
         vec.push_back(QPoint(x, y));
+        DBG("width="<<sizeW);
+        DBG("height="<<sizeH);
     }
 
 
@@ -172,7 +182,6 @@
             cv::arrowedLine(image,m_UpBaseLine.start_Point,m_UpBaseLine.end_Point,cv::Scalar(0,0,255));
 
             cv::rectangle(image, scoredRect.rect,  cv::Scalar(0, 0, 255), 2);
-
             std::string imgUrl = uploadImgToFdfs(image);
             saveInfoToEs(imgUrl, scoredRect);
             state=true;
@@ -295,6 +304,24 @@
     t_json["videoIp"] = getProperty("local_ip");//褰撳墠鏈嶅姟鍣↖P鍦板潃
     t_json["ack_alarm"] = m_triggerElement.getTriggerState() ? "0" : "";  //  que ren shi fou bao jing
     t_json["cluster_id"] = appPref.getStringData("clusterID");; // ji qun id
+    std::string imgKey = obj.properties["imgKey"];
+    t_json["imgKey"]=imgKey;
+    INFO("SaveImageKey ToES:  "<<obj.properties["imgKey"]);
+    try {
+        auto server = m_rpcClient.getServer();
+        if (!server)
+        {
+            ERR("server is null");
+            //return false;
+        }
+        INFO("Record Video "<<imgKey);
+        server->recordVideo(imgKey);
+    }
+    catch (std::exception &e)
+    {
+        ERR("Record Video Err: "<<imgKey <<"   Message: "<<e.what());
+        //return false;
+    }
 
     bool retface = false;
     if (pManagerEsDB)
@@ -345,4 +372,9 @@
 
 void JudgmentRetrogradeTool::setImage(const cv::Mat &value) {
     value.copyTo(image);
+    if(!m_bSetWH)
+    {
+        setMask(m_area,m_line);
+        m_bSetWH=true;
+    }
 }

--
Gitblit v1.8.0