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/VideoToImageMulth/RtspAnalysManager.cpp |   69 +++++++++++++++++++++++++++++-----
 1 files changed, 59 insertions(+), 10 deletions(-)

diff --git a/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp b/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp
index 0335346..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,17 +48,51 @@
     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();
 
-        for (auto item : lst)
+        if(startCamNO >= lst.size())
         {
-            std::string t_camIdex = item.str_cam_dev_id.toStdString();
-            std::string rtsp_url = rtspAddrBuild(item.str_ip.toStdString(), 554, item.str_username.toStdString(),
-                                                 item.str_password.toStdString(), item.str_brand.toStdString());
-            INFO("cam add is " << item.str_addr.toStdString());
+            ERR("startCamNO > lst.size()");
+            return;
+        }
+
+        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++;
+        }
+
+        for (int i = 0; i < CamCount; i++) {
+            if (itor == lst.end())
+            {
+                ERR("itor == lst.end()");
+                return;
+            }
+            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("cam add is " << itor->str_addr.toStdString());
 
             addCamera(t_camIdex, rtsp_url);
-
+            itor++;
         }
+
+//        for (auto item : lst)
+//        {
+//            std::string t_camIdex = item.str_cam_dev_id.toStdString();
+//            std::string rtsp_url = rtspAddrBuild(item.str_ip.toStdString(), 554, item.str_username.toStdString(),
+//                                                 item.str_password.toStdString(), item.str_brand.toStdString());
+//            INFO("cam add is " << item.str_addr.toStdString());
+//
+//            addCamera(t_camIdex, rtsp_url);
+//
+//        }
     } else {
         ERR("searchCamDevTableAll size is 0");
     }
@@ -65,7 +100,9 @@
 }
 
 RtspAnalysManager::~RtspAnalysManager() {
+    INFO("Program Exit");
     for (auto controller: m_controllers) {
+        INFO("Delete Controller: "<<controller.first);
         delete controller.second;
     }
     m_controllers.clear();
@@ -84,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();
 
@@ -100,8 +138,9 @@
 
     } else {
         removeCamera(index);
-        DBG("removeCamera " << index);
-        return addCamera(rtsp, index);
+        INFO("removeCamera " << index);
+        //DBG("removeCamera " << index);
+        return addCamera(index, rtsp);
     }
 }
 
@@ -111,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();
@@ -124,6 +164,7 @@
     imgRedis->wait();
     delete imgRedis;
     m_imgRedisControllers.erase(index);
+    INFO("MYH DEBUG HERE");
     return 0;
 }
 
@@ -132,6 +173,7 @@
  * @return
  */
 int RtspAnalysManager::removeAll() {
+    INFO("MYH DEBUG HERE");
     for (auto controller: m_controllers) {
         controller.second->stop();
     }
@@ -140,6 +182,7 @@
         delete controller.second;
     }
     m_controllers.clear();
+    INFO("MYH DEBUG HERE");
 
 
     for (auto controller: m_imgRedisControllers) {
@@ -153,6 +196,7 @@
 
 
     m_currentCount = 0;
+    INFO("MYH DEBUG HERE");
     return 0;
 }
 
@@ -191,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;
 }
 

--
Gitblit v1.8.0