From c8e6fb13202d18e3c1ada38578d2a5cc3c184198 Mon Sep 17 00:00:00 2001
From: miyanhui <dennismi1024@gmail.com>
Date: 星期一, 18 二月 2019 17:15:45 +0800
Subject: [PATCH] VideoToImageMulth和VideoAnalyFromHC支持RPC的端口设置

---
 QiaoJiaSystem/StructureApp/PerimeterElement.cpp        |    2 
 QiaoJiaSystem/DataManagerServer/AppPipeController.cpp  |    2 
 QiaoJiaSystem/VideoToImageMulth/main.cpp               |    3 +
 QiaoJiaSystem/VideoAnalysFromHC/main.cpp               |    3 +
 QiaoJiaSystem/StructureApp/FaceRpcElement.cpp          |   10 +++++
 QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.h    |    3 +
 QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp  |   28 ++++++++++++--
 QiaoJiaSystem/VideoToImageMulth/RtspCaptureElement.cpp |    4 ++
 QiaoJiaSystem/StructureApp/AppPipeController.cpp       |    4 +-
 QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp  |    2 
 QiaoJiaSystem/FaceDetectServer/FaceDetectServerI.cpp   |    2 +
 QiaoJiaSystem/StructureApp/PerimeterElement.h          |    3 +
 QiaoJiaSystem/FaceDetectServer/FaceExtractServerI.cpp  |    1 
 QiaoJiaSystem/VideoToImageMulth/RtspImageRedis.cpp     |    8 +++
 QiaoJiaSystem/StructureApp/FaceExtractElement.cpp      |   11 ++++-
 15 files changed, 69 insertions(+), 17 deletions(-)

diff --git a/QiaoJiaSystem/DataManagerServer/AppPipeController.cpp b/QiaoJiaSystem/DataManagerServer/AppPipeController.cpp
index a8cf2f7..8d00d0e 100644
--- a/QiaoJiaSystem/DataManagerServer/AppPipeController.cpp
+++ b/QiaoJiaSystem/DataManagerServer/AppPipeController.cpp
@@ -15,7 +15,7 @@
     }
     videoCaptureElement.registerConnector([&]{
         //if(!videoPublishElement.isBusy()){
-            //videoPublishElement.setImage(videoCaptureElement.getImage());
+            videoPublishElement.setImage(videoCaptureElement.getImage());
             //videoPublishElement.submit();
         //}
 
diff --git a/QiaoJiaSystem/FaceDetectServer/FaceDetectServerI.cpp b/QiaoJiaSystem/FaceDetectServer/FaceDetectServerI.cpp
index a52e916..6380718 100644
--- a/QiaoJiaSystem/FaceDetectServer/FaceDetectServerI.cpp
+++ b/QiaoJiaSystem/FaceDetectServer/FaceDetectServerI.cpp
@@ -44,6 +44,7 @@
 FaceDetect::Faces FaceDetectServerI::faceDetect(Ice::Int width, Ice::Int height, const std::string &shareMemoryName,
                                                 const Ice::Current &) {
     ClockTimer ct("FaceDetectServerI::faceDetect");
+    INFO("Face Detect");
     FaceDetect::Faces faces;
     QSharedMemory shareMemory(QString(shareMemoryName.c_str()));
     if (shareMemory.attach()) {
@@ -72,6 +73,7 @@
 
 FaceDetect::ThftResult FaceDetectServerI::faceProperty(Ice::Int width, Ice::Int height, const FaceDetect::FacePos &pos,
                                                        const std::string &shareMemoryName, const Ice::Current &) {
+    INFO("faceProperty");
     QSharedMemory shareMemory(QString(shareMemoryName.c_str()));
     if (shareMemory.attach()) {
         FaceDetect::ThftResult thftResult;
diff --git a/QiaoJiaSystem/FaceDetectServer/FaceExtractServerI.cpp b/QiaoJiaSystem/FaceDetectServer/FaceExtractServerI.cpp
index 1b83824..33d6ec5 100644
--- a/QiaoJiaSystem/FaceDetectServer/FaceExtractServerI.cpp
+++ b/QiaoJiaSystem/FaceDetectServer/FaceExtractServerI.cpp
@@ -31,6 +31,7 @@
 FaceDetect::Data FaceExtractServerI::faceExtract(Ice::Int width, Ice::Int height, const FaceDetect::FacePos &pos,
                                                  const std::string &shareMemoryName, const Ice::Current &) {
     ClockTimer ct("FaceExtractServerI::faceExtract");
+    INFO("faceExtract");
     QSharedMemory shareMemory(QString(shareMemoryName.c_str()));
     FaceDetect::Data feature;
     if (shareMemory.attach()) {
diff --git a/QiaoJiaSystem/StructureApp/AppPipeController.cpp b/QiaoJiaSystem/StructureApp/AppPipeController.cpp
index c3d0998..7b38b75 100644
--- a/QiaoJiaSystem/StructureApp/AppPipeController.cpp
+++ b/QiaoJiaSystem/StructureApp/AppPipeController.cpp
@@ -19,7 +19,7 @@
 
 //}
 AppPipeController::AppPipeController(std::string folderPath, const SdkRuleMap &ruleMap) :
-    m_rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp"),
+    m_rpcClient("RtspAnalysServer", "127.0.0.1",appPref.getIntData("RpcServerPort"),"tcp"),
     videoCaptureElement("filePath", 25, -1, appPref.getLongData("gpu.index")),
 //    videoCaptureElement(40),
     m_index(0),
@@ -70,7 +70,7 @@
 //    intKeepRight();
 //}
 AppPipeController::AppPipeController(std::string camId, const SdkRuleMap &ruleMap, bool RecordVideoEnable) :
-    m_rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp"),
+    m_rpcClient("RtspAnalysServer", "127.0.0.1",appPref.getIntData("RpcServerPort"),"tcp"),
     videoCaptureElement(appPref.getStringData(camId + "rtsp"), 25, 3000, appPref.getLongData("gpu.index")),
 //    videoCaptureElement(40),
     m_index(0),
diff --git a/QiaoJiaSystem/StructureApp/FaceExtractElement.cpp b/QiaoJiaSystem/StructureApp/FaceExtractElement.cpp
index c3f170a..5269715 100644
--- a/QiaoJiaSystem/StructureApp/FaceExtractElement.cpp
+++ b/QiaoJiaSystem/StructureApp/FaceExtractElement.cpp
@@ -38,7 +38,7 @@
                         appPref.getIntData("faceSear.port"), "tcp"),
 //    faceSearchRpcClient("faceCmServer", "", 10004, "tcp")
     m_sdkRule(rule),
-    m_rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp")
+    m_rpcClient("RtspAnalysServer", "127.0.0.1",appPref.getIntData("RpcServerPort"),"tcp")
 {
     sharedMemory = new QSharedMemory(QString(shareMemoryName.c_str()));
     if (!sharedMemory->create(4608 * 2592 * 4)) {
@@ -62,10 +62,15 @@
 }
 
 void FaceExtractElement::timerFunc() {
+    INFO("MYH Run Here");
     std::vector<FaceToExtract> faceExtractQueueTmp;
     {
         std::lock_guard<std::mutex> lg(imageQueueMutex);
-        if (faceExtractQueue.empty())return;
+        if (faceExtractQueue.empty())
+        {
+            ERR("faceExtractQueue.empty ");
+            return;
+        }
         faceExtractQueueTmp.swap(faceExtractQueue);
         faceExtractQueue.clear();
     }
@@ -101,7 +106,7 @@
 //                    cv::imwrite(string1, image);
 //                }
                 if (feature.empty()) {
-                    ERR("feature is empty");
+                    INFO("No Face Find: "<<getProperty("imgKey"));
                     continue;
                 }
                 features.clear();
diff --git a/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp b/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp
index 8e19e77..9ab6f01 100644
--- a/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp
+++ b/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp
@@ -82,6 +82,7 @@
 }
 
 void FaceRpcElement::threadFunc() {
+    INFO("MYH Run Here");
 //    ClockTimer ct("FaceRpcElement::threadFunc");
 //    {
 //
@@ -89,7 +90,10 @@
 //        cv::imwrite(string1, image);
 //    }
     if(!isInWeek(m_sdkRule.weekRuleVec))
+    {
+        ERR("In Week");
         return;
+    }
     triggerMats.clear();
     triggerFaces.clear();
     triggerScoredRects.clear();
@@ -110,6 +114,7 @@
             QPoint center = re.center();
             if(m_bIsMask && !mPolygon.containsPoint(center,Qt::OddEvenFill))
             {
+                ERR("m_bIsMask :"<<m_bIsMask)
                 return;
             }
             scoredRect.rect = {x, y, w, h};
@@ -132,9 +137,14 @@
                     CvUtil::zoomRectEqual(scoredRect.rect, 1.5, 1.5) & cv::Rect(0, 0, image.cols, image.rows)).clone());
                 triggerScoredRects.push_back(trackingTrigger->getLastRect());
             } else {
+                INFO("No Face Find: "<<getProperty("imgKey"));
 //                DBG("trackingTrigger->triggerOnce(scoredRect) is false  ");
             }
         }
+        if(faces.empty())
+        {
+            INFO("No Face Find: "<<getProperty("imgKey"));
+        }
         trackingTrigger->triggerLine();
         //        DBG("faces.size  " << faces.size());
         if (getLastScoreRects().size() > 0) {
diff --git a/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp b/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp
index 7094791..5c3b95c 100644
--- a/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp
+++ b/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp
@@ -16,7 +16,7 @@
     m_bSetWH(false),
     pointArray(nullptr),
     npts(0),
-    m_rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp")
+    m_rpcClient("RtspAnalysServer", "127.0.0.1",appPref.getIntData("RpcServerPort"),"tcp")
 {
     pManagerEsDB = new EsDBTool(appPref.getStringData("ipAdd"), appPref.getIntData("ipPort"));
 }
diff --git a/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.h b/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.h
index 3d6cd76..e48fda6 100644
--- a/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.h
+++ b/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.h
@@ -10,6 +10,7 @@
 #include <map>
 #include <list>
 #include <opencv2/opencv.hpp>
+#include <basic/util/app/AppPreference.hpp>
 //#include <basic/pipe/TimerElement.h>
 #include "YoloRpcElement.h"
 #include <QSharedMemory>
@@ -54,7 +55,7 @@
 
 class JudgmentRetrogradeTool  : public basic::PipeElement{
 public:
-    JudgmentRetrogradeTool():m_rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp") {}
+    JudgmentRetrogradeTool():m_rpcClient("RtspAnalysServer", "127.0.0.1",appPref.getIntData("RpcServerPort"),"tcp") {}
 
     JudgmentRetrogradeTool(const SdkRule &rule);
     //JudgmentRetrogradeTool(const SdkRule &rule,SaveVideoRpcClient_t& rpcClient);
diff --git a/QiaoJiaSystem/StructureApp/PerimeterElement.cpp b/QiaoJiaSystem/StructureApp/PerimeterElement.cpp
index d4411f1..e411855 100644
--- a/QiaoJiaSystem/StructureApp/PerimeterElement.cpp
+++ b/QiaoJiaSystem/StructureApp/PerimeterElement.cpp
@@ -25,7 +25,7 @@
     m_bIsMask(true),
     m_bSetWH(false),
     pointArray(nullptr),
-    m_rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp")
+    m_rpcClient("RtspAnalysServer", "127.0.0.1",appPref.getIntData("RpcServerPort"),"tcp")
 {
 
     pManagerEsDB = new EsDBTool(appPref.getStringData("ipAdd"), appPref.getIntData("ipPort"));
diff --git a/QiaoJiaSystem/StructureApp/PerimeterElement.h b/QiaoJiaSystem/StructureApp/PerimeterElement.h
index b9d28a2..7f90643 100644
--- a/QiaoJiaSystem/StructureApp/PerimeterElement.h
+++ b/QiaoJiaSystem/StructureApp/PerimeterElement.h
@@ -8,6 +8,7 @@
 #include "TrackingTrigger.h"
 #include <QJsonArray>
 #include <RapidStructureApp/TriggerElement.h>
+#include <basic/util/app/AppPreference.hpp>
 #include <basic/util/fastdfs/FastFds.hpp>
 #include "DBStruct.h"
 #include <basic/db/Elasticsearch/EsDBTool.h>
@@ -16,7 +17,7 @@
 class PerimeterElement : public basic::PipeElement
 {
 public:
-    PerimeterElement():m_rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp"){}
+    PerimeterElement():m_rpcClient("RtspAnalysServer", "127.0.0.1",appPref.getIntData("RpcServerPort"),"tcp"){}
     PerimeterElement(const SdkRule& rule);
 public:
     ~PerimeterElement();
diff --git a/QiaoJiaSystem/VideoAnalysFromHC/main.cpp b/QiaoJiaSystem/VideoAnalysFromHC/main.cpp
index 3a46ebf..a82bf09 100644
--- a/QiaoJiaSystem/VideoAnalysFromHC/main.cpp
+++ b/QiaoJiaSystem/VideoAnalysFromHC/main.cpp
@@ -71,12 +71,13 @@
         ENABLEGLOG(GET_STR_CONFIG("logPath").c_str());
 #endif
 
-    appPref.setLongData("gpu.index", 1);
+    appPref.setLongData("gpu.index", 0);
     appPref.setIntData("show.image", 0);
 
     //todo
     appPref.setIntData("CamStart", atoi(argv[1]));
     appPref.setIntData("CamStep", atoi(argv[2]));
+    appPref.setIntData("RpcServerPort",atoi(argv[3]));
 
     //#todo get from config File
 //    appPref.setStringData("ipAdd", "192.168.1.185");
diff --git a/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp b/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp
index 7d6a0af..6166a4f 100644
--- a/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp
+++ b/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp
@@ -9,6 +9,7 @@
 using std::string;
 
 RtspAnalysManager::RtspAnalysManager(LDBTool *_dbTool) : m_lDBTool(nullptr), m_maxCount(50), m_currentCount(0) {
+    INFO("MYH DEBUG HERE");
     m_lDBTool=new LDBTool;
     init();
 
@@ -39,7 +40,7 @@
 
 //鍒濆鍖栧嚱鏁�
 void RtspAnalysManager::init() {
-
+    INFO("MYH DEBUG HERE")
     auto lst = m_lDBTool->searchCamDevTableAll();
     Record_Config lst_dev = m_lDBTool->searchConfigTableWithinServerInfo();
 
@@ -47,9 +48,9 @@
     appPref.setIntData("n_cut_max_duration", lst_dev.n_cut_max_duration);
     appPref.setIntData("n_cut_min_duration", lst_dev.n_cut_min_duration);
     if (lst.size() > 0) {
-
         int startCamNO = appPref.getIntData("CamStart") * appPref.getIntData("CamStep");
         int CamCount = appPref.getIntData("CamStep");
+        INFO("StartCamNO: "<<startCamNO<<" CamStep: "<<CamCount);
         auto itor = lst.begin();
 
         if(startCamNO >= lst.size())
@@ -59,6 +60,11 @@
         }
 
         for(int i=0; i < startCamNO; i++){
+
+            std::string t_camIdex = itor->str_cam_dev_id.toStdString();
+            std::string rtsp_url = rtspAddrBuild(itor->str_ip.toStdString(), 554, itor->str_username.toStdString(),
+                                                 itor->str_password.toStdString(), itor->str_brand.toStdString());
+            INFO("JumpCam: "<<t_camIdex<<"  URL: "<<rtsp_url);
             itor++;
         }
 
@@ -94,7 +100,9 @@
 }
 
 RtspAnalysManager::~RtspAnalysManager() {
+    INFO("Program Exit");
     for (auto controller: m_controllers) {
+        INFO("Delete Controller: "<<controller.first);
         delete controller.second;
     }
     m_controllers.clear();
@@ -113,11 +121,12 @@
     Record_Config lst_dev = m_lDBTool->searchConfigTableWithinServerInfo();
 
     if (m_controllers.find(index) == m_controllers.end()) {
+        INFO("MYH DEBUG HERE");
         if (m_currentCount >= m_maxCount) {
             ERR("addCamera faild, camera's num is full!")
             return -1;
         }
-        DBG("RTSP: "<<rtsp<<"  INDEX:"<<index);
+        INFO("RTSP: "<<rtsp<<"  INDEX:"<<index);
         m_imgRedisControllers[index] = new RtspImageRedisElement(index);
         m_imgRedisControllers[index]->start();
 
@@ -129,7 +138,8 @@
 
     } else {
         removeCamera(index);
-        DBG("removeCamera " << index);
+        INFO("removeCamera " << index);
+        //DBG("removeCamera " << index);
         return addCamera(index, rtsp);
     }
 }
@@ -140,6 +150,7 @@
  * @return 鎬绘槸0
  */
 int RtspAnalysManager::removeCamera(const std::string &index) {
+    INFO("MYH DEBUG HERE");
     if (m_controllers.find(index) == m_controllers.end())return -1;
     auto controller = m_controllers[index];
     controller->stop();
@@ -153,6 +164,7 @@
     imgRedis->wait();
     delete imgRedis;
     m_imgRedisControllers.erase(index);
+    INFO("MYH DEBUG HERE");
     return 0;
 }
 
@@ -161,6 +173,7 @@
  * @return
  */
 int RtspAnalysManager::removeAll() {
+    INFO("MYH DEBUG HERE");
     for (auto controller: m_controllers) {
         controller.second->stop();
     }
@@ -169,6 +182,7 @@
         delete controller.second;
     }
     m_controllers.clear();
+    INFO("MYH DEBUG HERE");
 
 
     for (auto controller: m_imgRedisControllers) {
@@ -182,6 +196,7 @@
 
 
     m_currentCount = 0;
+    INFO("MYH DEBUG HERE");
     return 0;
 }
 
@@ -220,11 +235,16 @@
 //淇濆瓨瑙嗛鍒癛tspImageRedis鐨勯槦鍒�,鐢盧tspCaptureElement璋冪敤
 bool RtspAnalysManager::SaveImageToRedis(const std::string& camId,const std::string& imageName,const cv::Mat& img)
 {
+    INFO("MYH DEBUG HERE");
     auto item = m_imgRedisControllers.find(camId);
     if(item!=m_imgRedisControllers.end())
     {
+        INFO("Save Succeed Cam: "<<camId<<" ImageKey: "<<imageName);
         item->second->SaveImage(imageName,img);
+    } else {
+        ERR("Save Failed Cam: "<<camId<<" ImageKey: "<<imageName);
     }
+    INFO("MYH DEBUG HERE");
     return true;
 }
 
diff --git a/QiaoJiaSystem/VideoToImageMulth/RtspCaptureElement.cpp b/QiaoJiaSystem/VideoToImageMulth/RtspCaptureElement.cpp
index 16aafb7..048999e 100644
--- a/QiaoJiaSystem/VideoToImageMulth/RtspCaptureElement.cpp
+++ b/QiaoJiaSystem/VideoToImageMulth/RtspCaptureElement.cpp
@@ -82,6 +82,7 @@
 }
 void RtspCaptureElement::SaveVideo(const std::string &strImageName)
 {
+    INFO("SaveVideo: "<<strImageName);
     std::string strTimeStamp= AppUtil::getTimeUSecString();
     std::string strPath=MakeDir(strTimeStamp);
     m_capture->SaveVideoByImageName(strPath,strImageName);
@@ -93,16 +94,19 @@
     if(m_gpuIndex>=0){
         setenv("CUDA_VISIBLE_DEVICES", std::to_string(m_gpuIndex).c_str(),0);
     }
+    INFO("Open Video "<<m_path<<"  GPU_Index: "<<m_gpuIndex);
     m_capture->open(m_path.c_str(),m_gpuIndex>=0);
 }
 
 void RtspCaptureElement::threadInitial()
 {
+    INFO("MYH DEBUG");
     openVideo();
 }
 
 void RtspCaptureElement::threadClosing()
 {
+    INFO("MYH DEBUG");
     m_capture->close();
     delete m_capture;
     m_capture = nullptr;
diff --git a/QiaoJiaSystem/VideoToImageMulth/RtspImageRedis.cpp b/QiaoJiaSystem/VideoToImageMulth/RtspImageRedis.cpp
index 4f74d16..d70de75 100644
--- a/QiaoJiaSystem/VideoToImageMulth/RtspImageRedis.cpp
+++ b/QiaoJiaSystem/VideoToImageMulth/RtspImageRedis.cpp
@@ -23,18 +23,20 @@
         m_redisTool.setKeyImage(item.m_imgName,item.m_image);
         m_redisTool.listLpush(m_camId, item.m_imgName);
         m_imageQueue.pop();
+        INFO("SaveImage To Redis Succeed CamID:"<<m_camId<<" ImageName:"<<item.m_imgName);
     }
 }
 
 //缁ф壙鑷埗绫�,绾跨▼鍒濆鍖栫殑涓�浜涘伐浣�
 void RtspImageRedisElement::threadInitial()
 {
-
+    INFO("MYH DEBUG HERE");
 }
 
 //缁ф壙鑷埗绫�,绾跨▼缁撴潫鐨勬椂鍊欒皟鐢�
 void RtspImageRedisElement::threadClosing()
 {
+    INFO("MYH DEBUG HERE");
 }
 
 //淇濆瓨鍥剧墖鍒伴槦鍒椾腑,
@@ -44,7 +46,11 @@
     //淇濊瘉闃熷垪涓殑鍥剧墖涓嶈杩囧
     if(m_imageQueue.size() < M_CAM_PIC_MAX_COUNT)
     {
+        INFO("SaveImage Succeed ImgName:"<<imageName);
         m_imageQueue.push(NameImagePair_s_t(imageName,img));
     }
+    else{
+        ERR("SaveImage Failed ImgName:"<<imageName);
+    }
     return true;
 }
diff --git a/QiaoJiaSystem/VideoToImageMulth/main.cpp b/QiaoJiaSystem/VideoToImageMulth/main.cpp
index 684fd82..b45f104 100644
--- a/QiaoJiaSystem/VideoToImageMulth/main.cpp
+++ b/QiaoJiaSystem/VideoToImageMulth/main.cpp
@@ -39,9 +39,10 @@
     //todo
     appPref.setIntData("CamStart", atoi(argv[1]));
     appPref.setIntData("CamStep", atoi(argv[2]));
+    appPref.setIntData("RpcServerPort",atoi(argv[3]));
 
     appPref.setStringData("user.loop.absolute.path", appConfig.getStringProperty("cutPath"));
-    IceRpcServer<RtspAnalysManager> server("RtspAnalysServer", 10009, "tcp");
+    IceRpcServer<RtspAnalysManager> server("RtspAnalysServer",appPref.getIntData("RpcServerPort"), "tcp");
     server.setMessageSizeMax(1024 * 1024 * 50);
     server.setPoolInitSize(1);
     server.setPoolMaxSize(1);

--
Gitblit v1.8.0