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