From 23bd97eaa5626ad96ca3f5d3e97e93d14705ca6d Mon Sep 17 00:00:00 2001
From: chenshijun <csj_sky@126.com>
Date: 星期六, 30 三月 2019 17:50:24 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/yangwu1.3' into 1.3nsq

---
 QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp |   70 ++++++++++++++++++++++++++++-------
 1 files changed, 56 insertions(+), 14 deletions(-)

diff --git a/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp b/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp
index 01b854a..9d0d2e3 100644
--- a/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp
+++ b/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp
@@ -7,10 +7,11 @@
 
 
 using std::string;
+void *gRtspAnalysManagerCamera = nullptr;
 
 RtspAnalysManager::RtspAnalysManager(LDBTool *_dbTool) : m_lDBTool(nullptr), m_maxCount(50), m_currentCount(0) {
-    DBG("MYH DEBUG HERE");
-    m_lDBTool = new LDBTool;
+//    INFO("MYH DEBUG HERE");
+    m_lDBTool = _dbTool;
     init();
 
     //nsq   set callback func
@@ -44,10 +45,29 @@
             DBG("searchCamDevTableByType size:" << lst.size());
 
             if (lst.size() > 0) {
-                for (auto item : lst) {
-                    std::string t_camIdex = item.str_cam_dev_id.toStdString();
+                int startCamNO = appPref.getIntData("CamStartNO");
+                int CamCount = appPref.getIntData("CamEndNO") - appPref.getIntData("CamStartNO") + 1;
+                INFO("StartCamNO: " << startCamNO << " CamCount: " << CamCount);
+                auto itor = lst.begin();
+
+                if (startCamNO >= lst.size()) {
+                    ERR("startCamNO > lst.size()");
+                    return;
+                }
+
+                for (int i = 0; i < startCamNO; i++) {
+                    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();
                     DBG("-----camID:" << t_camIdex << "min:" << cut_min_duration << "max:" << cut_max_duration);
                     pthis->m_controllers_videoCapElem[t_camIdex]->SetVideoMinMaxSeconds(cut_min_duration, cut_max_duration);
+                    itor++;
                 }
             } else {
                 ERR("searchCamDevTableByType size is 0");
@@ -115,7 +135,10 @@
 
 //鍒濆鍖栧嚱鏁�
 void RtspAnalysManager::init() {
-    INFO("MYH DEBUG HERE")
+//    INFO("MYH DEBUG HERE")
+
+    gRtspAnalysManagerCamera = this;
+    DBG("gRtspAnalysManagerCamera ADDR:" << gRtspAnalysManagerCamera);
 
     m_GB28181_Enable = appPref.getIntData("GB28181_Enable");
     //#todo GB28181
@@ -127,14 +150,33 @@
         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) {
-            for (auto item : lst) {
-                std::string t_camIdex = item.str_cam_dev_id.toStdString();
+            int startCamNO = appPref.getIntData("CamStartNO");
+            int CamCount = appPref.getIntData("CamEndNO") - appPref.getIntData("CamStartNO") + 1;
+            INFO("StartCamNO: " << startCamNO << " CamCount: " << CamCount);
+            auto itor = lst.begin();
+
+            if (startCamNO >= lst.size()) {
+                ERR("startCamNO > lst.size()");
+                return;
+            }
+
+            for (int i = 0; i < startCamNO; i++) {
+                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 = "GB28181";
-//            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());
+
+                INFO("cam add is " << itor->str_addr.toStdString());
+
                 addCamera(t_camIdex, rtsp_url);
                 sleep(1);
+                itor++;
             }
         } else {
             ERR("searchCamDevTableByType size is 0");
@@ -229,7 +271,7 @@
 
         //#todo end
         if (m_controllers_videoCapElem.find(index) == m_controllers_videoCapElem.end()) {
-            INFO("MYH DEBUG HERE");
+//            INFO("MYH DEBUG HERE");
             if (m_currentCount >= m_maxCount) {
                 ERR("addCamera faild, camera's num is full!")
                 return -1;
@@ -331,7 +373,7 @@
  * @return
  */
 int RtspAnalysManager::removeAll() {
-    INFO("MYH DEBUG HERE");
+//    INFO("MYH DEBUG HERE");
 
     if (m_GB28181_Enable) {
         for (auto controller: m_controllers_videoCapElem) {
@@ -352,7 +394,7 @@
         }
         m_controllers.clear();
     }
-    INFO("MYH DEBUG HERE");
+//    INFO("MYH DEBUG HERE");
 
     m_imgRedisCRwLock.wrlock();
     for (auto controller: m_imgRedisControllers) {
@@ -367,7 +409,7 @@
 
 
     m_currentCount = 0;
-    INFO("MYH DEBUG HERE");
+//    INFO("MYH DEBUG HERE");
     return 0;
 }
 

--
Gitblit v1.8.0