From fb444d14fcdaf85cdd717c2cb1446b0f8442748d Mon Sep 17 00:00:00 2001 From: xuxiuxi <554325746@qq.com> Date: 星期四, 07 三月 2019 11:46:13 +0800 Subject: [PATCH] Merge branch 'yw.1.2.fixbug' of http://192.168.1.226:10010/r/development/c++ into yw.1.2.fixbug --- QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.h | 2 QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp | 298 +++++++++++++++++++++-------------------- QiaoJiaSystem/StructureApp/PerimeterElement.cpp | 2 QiaoJiaSystem/VideoToImageMulth/main.cpp | 3 syncDBTool/ErlangDbTool.cpp | 2 QiaoJiaSystem/VideoAnalysFromHC/main.cpp | 21 ++ QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp | 81 +++++------ 7 files changed, 211 insertions(+), 198 deletions(-) diff --git a/QiaoJiaSystem/StructureApp/PerimeterElement.cpp b/QiaoJiaSystem/StructureApp/PerimeterElement.cpp index 19f3a92..a88ed9f 100644 --- a/QiaoJiaSystem/StructureApp/PerimeterElement.cpp +++ b/QiaoJiaSystem/StructureApp/PerimeterElement.cpp @@ -13,7 +13,7 @@ #include <uuid/uuid.h> #include <jsoncpp/json/json.h> -#define ALARM_PERCENT (10) //10% +#define ALARM_PERCENT (25) //25% PerimeterElement::PerimeterElement(const SdkRule &rule) : m_sdkRule(rule), PipeElement(true), diff --git a/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp b/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp index db552a4..be430a9 100644 --- a/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp +++ b/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp @@ -26,8 +26,8 @@ } RtspAnalysElement::RtspAnalysElement(LDBTool *_dbTool) : m_lDBTool(_dbTool), maxCount(50), currentCount(0) { - init(); resetFdfs(); + init(); { // std::thread httpServer([&]() { // //#todo port @@ -68,168 +68,174 @@ } void RtspAnalysElement::init() { + + m_GB28181_Enable = appPref.getIntData("GB28181_Enable"); + Record_Config lst_dev = m_lDBTool->searchConfigTableWithinServerInfo(); -#ifndef GB28181 - auto lst = m_lDBTool->searchCamDevTableAll(); - 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) { - Json::Value json; - int startCamNO = appPref.getIntData("CamStart") * appPref.getIntData("CamStep"); - int CamCount = appPref.getIntData("CamStep"); - auto itor = lst.begin(); + //#todo GB28181 + if (m_GB28181_Enable) { + auto lst = m_lDBTool->searchCamDevTableByType(1); - 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 = rtspAddrBuild(itor->str_ip.toStdString(), 554, itor->str_username.toStdString(), - itor->str_password.toStdString(), itor->str_brand.toStdString()); - SdkRuleMap ruleMap = m_lDBTool->searchSdkRuleByCamId(itor->str_cam_dev_id); - for (auto &rule:ruleMap) { - - rule.second.strAddr = itor->str_addr; - rule.second.weekRuleVec = m_lDBTool->searchCameraWeekRuleByCamId(itor->str_cam_dev_id, rule.first); - - if (rule.second.nSdkType == PerStaticSdk) { - float temp = 1 - (float) (rule.second.nThreshold) / 100; - rule.second.fSensitivity = (75 + 25 * temp) / 100; - - } else if (rule.second.nSdkType != FaceSdk) { - float temp = 1 - (float) (rule.second.nThreshold) / 100; - rule.second.fSensitivity = (5 + 90 * temp) / 100; - } -// if (rule.second.nThreshold < 5 ) -// { -// rule.second.fSensitivity=0.95; -// } -// else if(rule.second.nThreshold > 95) -// { -// rule.second.fSensitivity=0.05; -// } -// else -// { -// rule.second.fSensitivity = 1-(float) (rule.second.nThreshold) / 100; -// } - - DBG("fSensitivity" << rule.second.fSensitivity); - } - appPref.setStringData(t_camIdex + "rtsp", rtsp_url); - // appPref.setStringData(t_camIdex+"addr", item.str_addr.toStdString()); - json["rtsp"] = rtsp_url; - // json["addr"] = item.str_addr.toStdString(); - - INFO("cam add is " << itor->str_addr.toStdString()); - - addCamera(t_camIdex, ruleMap); - 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()); -// SdkRuleMap ruleMap = m_lDBTool->searchSdkRuleByCamId(item.str_cam_dev_id); -// for (auto &rule:ruleMap) { -// -// rule.second.strAddr = item.str_addr; -// rule.second.weekRuleVec = m_lDBTool->searchCameraWeekRuleByCamId(item.str_cam_dev_id, rule.first); -// -// if(rule.second.nSdkType == PerStaticSdk) -// { -// float temp=1-(float)(rule.second.nThreshold)/100; -// rule.second.fSensitivity=(75+25*temp)/100; -// -// } -// else if(rule.second.nSdkType != FaceSdk) -// { -// float temp=1-(float)(rule.second.nThreshold)/100; -// rule.second.fSensitivity=(5+90*temp)/100; -// } -//// if (rule.second.nThreshold < 5 ) -//// { -//// rule.second.fSensitivity=0.95; -//// } -//// else if(rule.second.nThreshold > 95) -//// { -//// rule.second.fSensitivity=0.05; -//// } -//// else -//// { -//// rule.second.fSensitivity = 1-(float) (rule.second.nThreshold) / 100; -//// } -// -// DBG("fSensitivity" << rule.second.fSensitivity); -// } -// appPref.setStringData(t_camIdex + "rtsp", rtsp_url); -// // appPref.setStringData(t_camIdex+"addr", item.str_addr.toStdString()); -// json["rtsp"] = rtsp_url; -// // json["addr"] = item.str_addr.toStdString(); -// -// INFO("cam add is " << item.str_addr.toStdString()); -// -// addCamera(t_camIdex, ruleMap); -// } - } else { - ERR("searchCamDevTableAll size is 0"); - } - -#else - auto lst = m_lDBTool->searchCamDevTableByType(1); - - 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) { + 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) { // Json::Value json; - - for (auto &item : lst) { - std::string t_camIdex = item.str_cam_dev_id.toStdString(); - std::string rtsp_url = "GB28181"; + for (auto &item : lst) { + std::string t_camIdex = item.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()); - SdkRuleMap ruleMap = m_lDBTool->searchSdkRuleByCamId(item.str_cam_dev_id); - for (auto &rule:ruleMap) { + SdkRuleMap ruleMap = m_lDBTool->searchSdkRuleByCamId(item.str_cam_dev_id); + for (auto &rule:ruleMap) { - rule.second.strAddr = item.str_addr; - rule.second.weekRuleVec = m_lDBTool->searchCameraWeekRuleByCamId(item.str_cam_dev_id, rule.first); + rule.second.strAddr = item.str_addr; + rule.second.weekRuleVec = m_lDBTool->searchCameraWeekRuleByCamId(item.str_cam_dev_id, rule.first); - if (rule.second.nSdkType == PerStaticSdk) { - float temp = 1 - (float) (rule.second.nThreshold) / 100; - rule.second.fSensitivity = (75 + 25 * temp) / 100; + if (rule.second.nSdkType == PerStaticSdk) { + float temp = 1 - (float) (rule.second.nThreshold) / 100; + rule.second.fSensitivity = (75 + 25 * temp) / 100; - } else if (rule.second.nSdkType != FaceSdk) { - float temp = 1 - (float) (rule.second.nThreshold) / 100; - rule.second.fSensitivity = (5 + 90 * temp) / 100; + } else if (rule.second.nSdkType != FaceSdk) { + float temp = 1 - (float) (rule.second.nThreshold) / 100; + rule.second.fSensitivity = (5 + 90 * temp) / 100; + } + DBG("fSensitivity" << rule.second.fSensitivity); } - DBG("fSensitivity" << rule.second.fSensitivity); - } - appPref.setStringData(t_camIdex + "rtsp", rtsp_url); - // appPref.setStringData(t_camIdex+"addr", item.str_addr.toStdString()); + appPref.setStringData(t_camIdex + "rtsp", rtsp_url); + // appPref.setStringData(t_camIdex+"addr", item.str_addr.toStdString()); // json["rtsp"] = rtsp_url; - // json["addr"] = item.str_addr.toStdString(); + // json["addr"] = item.str_addr.toStdString(); - INFO("cam add is " << item.str_addr.toStdString()); + INFO("cam add is " << item.str_addr.toStdString()); - addCamera(t_camIdex, ruleMap); + addCamera(t_camIdex, ruleMap); + } + } else { + ERR("searchCamDevTableAll size is 0"); } - } else { - ERR("searchCamDevTableAll size is 0"); - } -#endif + } else { + + auto lst = m_lDBTool->searchCamDevTableAll(); + + 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) { + Json::Value json; + int startCamNO = appPref.getIntData("CamStart") * appPref.getIntData("CamStep"); + int CamCount = appPref.getIntData("CamStep"); + 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 = rtspAddrBuild(itor->str_ip.toStdString(), 554, itor->str_username.toStdString(), + itor->str_password.toStdString(), itor->str_brand.toStdString()); + SdkRuleMap ruleMap = m_lDBTool->searchSdkRuleByCamId(itor->str_cam_dev_id); + for (auto &rule:ruleMap) { + + rule.second.strAddr = itor->str_addr; + rule.second.weekRuleVec = m_lDBTool->searchCameraWeekRuleByCamId(itor->str_cam_dev_id, rule.first); + + if (rule.second.nSdkType == PerStaticSdk) { + float temp = 1 - (float) (rule.second.nThreshold) / 100; + rule.second.fSensitivity = (75 + 25 * temp) / 100; + + } else if (rule.second.nSdkType != FaceSdk) { + float temp = 1 - (float) (rule.second.nThreshold) / 100; + rule.second.fSensitivity = (5 + 90 * temp) / 100; + } + // if (rule.second.nThreshold < 5 ) + // { + // rule.second.fSensitivity=0.95; + // } + // else if(rule.second.nThreshold > 95) + // { + // rule.second.fSensitivity=0.05; + // } + // else + // { + // rule.second.fSensitivity = 1-(float) (rule.second.nThreshold) / 100; + // } + + DBG("fSensitivity" << rule.second.fSensitivity); + } + appPref.setStringData(t_camIdex + "rtsp", rtsp_url); + // appPref.setStringData(t_camIdex+"addr", item.str_addr.toStdString()); + json["rtsp"] = rtsp_url; + // json["addr"] = item.str_addr.toStdString(); + + INFO("cam add is " << itor->str_addr.toStdString()); + + addCamera(t_camIdex, ruleMap); + 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()); + // SdkRuleMap ruleMap = m_lDBTool->searchSdkRuleByCamId(item.str_cam_dev_id); + // for (auto &rule:ruleMap) { + // + // rule.second.strAddr = item.str_addr; + // rule.second.weekRuleVec = m_lDBTool->searchCameraWeekRuleByCamId(item.str_cam_dev_id, rule.first); + // + // if(rule.second.nSdkType == PerStaticSdk) + // { + // float temp=1-(float)(rule.second.nThreshold)/100; + // rule.second.fSensitivity=(75+25*temp)/100; + // + // } + // else if(rule.second.nSdkType != FaceSdk) + // { + // float temp=1-(float)(rule.second.nThreshold)/100; + // rule.second.fSensitivity=(5+90*temp)/100; + // } + //// if (rule.second.nThreshold < 5 ) + //// { + //// rule.second.fSensitivity=0.95; + //// } + //// else if(rule.second.nThreshold > 95) + //// { + //// rule.second.fSensitivity=0.05; + //// } + //// else + //// { + //// rule.second.fSensitivity = 1-(float) (rule.second.nThreshold) / 100; + //// } + // + // DBG("fSensitivity" << rule.second.fSensitivity); + // } + // appPref.setStringData(t_camIdex + "rtsp", rtsp_url); + // // appPref.setStringData(t_camIdex+"addr", item.str_addr.toStdString()); + // json["rtsp"] = rtsp_url; + // // json["addr"] = item.str_addr.toStdString(); + // + // INFO("cam add is " << item.str_addr.toStdString()); + // + // addCamera(t_camIdex, ruleMap); + // } + } else { + ERR("searchCamDevTableAll size is 0"); + } + + } } + RtspAnalysElement::~RtspAnalysElement() { for (auto controller: controllers) { delete controller.second; diff --git a/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.h b/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.h index 01d9abd..da7757a 100644 --- a/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.h +++ b/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.h @@ -44,7 +44,7 @@ private: LDBTool *m_lDBTool; - + int m_GB28181_Enable; std::map<std::string, AppPipeController *> controllers; std::atomic<int> currentCount; int maxCount; diff --git a/QiaoJiaSystem/VideoAnalysFromHC/main.cpp b/QiaoJiaSystem/VideoAnalysFromHC/main.cpp index 3a39a22..5103ad8 100644 --- a/QiaoJiaSystem/VideoAnalysFromHC/main.cpp +++ b/QiaoJiaSystem/VideoAnalysFromHC/main.cpp @@ -77,7 +77,18 @@ DBG("hava GB28181"); #endif - appPref.setLongData("gpu.index", 0); + if (argc < 4) { + assert("t_value.size()"); + } + + int arg1 = atoi(argv[1]); + + int gindx = abs(arg1) % 2; + int GB28181_Enable = arg1 < 0 ? gindx : -1; + DBG(gindx); + appPref.setIntData("GB28181_Enable", GB28181_Enable); + + appPref.setLongData("gpu.index", gindx); appPref.setIntData("show.image", 0); //todo @@ -126,10 +137,10 @@ // faceSearchRpcClient("faceCmServer", "", 10004, "tcp") //loopRecord server - appPref.setStringData("loopRecord.proxy", "LoopRecordVideoServer"); - //#todo - appPref.setStringData("loopRecord.ip", ""); - appPref.setIntData("loopRecord.port", 10010); +// appPref.setStringData("loopRecord.proxy", "LoopRecordVideoServer"); +// //#todo +// appPref.setStringData("loopRecord.ip", ""); +// appPref.setIntData("loopRecord.port", 10010); //rpcClient(appPref.getStringData("loopRecord.proxy"), appPref.getStringData("loopRecord.ip"), appPref.getLongData("loopRecord.port"),"tcp"), LDBTool _dbTool; diff --git a/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp b/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp index 7c814eb..8eafe6d 100644 --- a/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp +++ b/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp @@ -208,11 +208,6 @@ } } -#ifndef GB28181 - -#else - -#endif } /** @@ -222,24 +217,23 @@ */ int RtspAnalysManager::removeCamera(const std::string &index) { INFO("MYH DEBUG HERE"); -#ifndef GB28181 - if (m_controllers.find(index) == m_controllers.end())return -1; - auto controller = m_controllers[index]; - controller->stop(); - controller->wait(); - delete controller; - m_controllers.erase(index); - m_currentCount--; - -#else - if (m_controllers_videoCapElem.find(index) == m_controllers_videoCapElem.end())return -1; - auto controller = m_controllers_videoCapElem[index]; - controller->stop(); - controller->wait(); - delete controller; - m_controllers_videoCapElem.erase(index); - m_currentCount--; -#endif + if (m_GB28181_Enable) { + if (m_controllers_videoCapElem.find(index) == m_controllers_videoCapElem.end())return -1; + auto controller = m_controllers_videoCapElem[index]; + controller->stop(); + controller->wait(); + delete controller; + m_controllers_videoCapElem.erase(index); + m_currentCount--; + } else { + if (m_controllers.find(index) == m_controllers.end())return -1; + auto controller = m_controllers[index]; + controller->stop(); + controller->wait(); + delete controller; + m_controllers.erase(index); + m_currentCount--; + } m_imgRedisCRwLock.wrlock(); auto imgRedis = m_imgRedisControllers[index]; @@ -258,25 +252,26 @@ */ int RtspAnalysManager::removeAll() { INFO("MYH DEBUG HERE"); -#ifndef GB28181 - for (auto controller: m_controllers) { - controller.second->stop(); + + if (m_GB28181_Enable) { + for (auto controller: m_controllers_videoCapElem) { + controller.second->stop(); + } + for (auto controller: m_controllers_videoCapElem) { + controller.second->wait(); + delete controller.second; + } + m_controllers_videoCapElem.clear(); + } else { + for (auto controller: m_controllers) { + controller.second->stop(); + } + for (auto controller: m_controllers) { + controller.second->wait(); + delete controller.second; + } + m_controllers.clear(); } - for (auto controller: m_controllers) { - controller.second->wait(); - delete controller.second; - } - m_controllers.clear(); -#else - for (auto controller: m_controllers_videoCapElem) { - controller.second->stop(); - } - for (auto controller: m_controllers_videoCapElem) { - controller.second->wait(); - delete controller.second; - } - m_controllers_videoCapElem.clear(); -#endif INFO("MYH DEBUG HERE"); m_imgRedisCRwLock.wrlock(); @@ -311,11 +306,11 @@ INFO("Record Video For: " << name); ImageName_s_t nameSt = ImageName_s_t::fromString(name); if (nameSt.Valid()) { - if (GB28181_Enable) { + if (m_GB28181_Enable) { auto pCaptureElem = m_controllers_videoCapElem.find(nameSt.m_camId); if (pCaptureElem != m_controllers_videoCapElem.end()) { //#todo ~~~~~~!!!!!!! 杩欓噷鏈塨ug 闇�瑕佹斁寮�璋冭瘯 -// pCaptureElem->second->SaveVideo(name); +// pCaptureElem->second->SaveVideo(name); } else { ERR("Can not Find CamId " << nameSt.m_camId); } diff --git a/QiaoJiaSystem/VideoToImageMulth/main.cpp b/QiaoJiaSystem/VideoToImageMulth/main.cpp index fbc65f7..6403ebd 100644 --- a/QiaoJiaSystem/VideoToImageMulth/main.cpp +++ b/QiaoJiaSystem/VideoToImageMulth/main.cpp @@ -66,7 +66,8 @@ int arg1 = atoi(argv[1]); int gindx = abs(arg1) % 2; - int GB28181_Enable = abs(arg1) % 2; + int GB28181_Enable = arg1 < 0 ? gindx : -1; + DBG(gindx); appPref.setIntData("GB28181_Enable", GB28181_Enable); appPref.setLongData("gpu.index", gindx); diff --git a/syncDBTool/ErlangDbTool.cpp b/syncDBTool/ErlangDbTool.cpp index e736943..bb8efcc 100755 --- a/syncDBTool/ErlangDbTool.cpp +++ b/syncDBTool/ErlangDbTool.cpp @@ -1614,7 +1614,7 @@ } if (str_tableUuid.size() > 0) { QString sql = QString::fromStdString( - "Select a.uuid as id ,a.faceUrl as img,a.feature,b.idCard as idcard,b.enable,b.monitorLevel from '" + + "Select a.uuid as id ,a.faceUrl as img,a.feature,b.idCard as idcard,b.enabled,b.monitorLevel from '" + str_tableUuid + "_fea' as a ,'" + str_tableUuid + "' as b where a.uuid = b.uuid and ( a.del_flag=0 AND b.del_flag=0);"); QSqlQuery query(g_syncDbFile); -- Gitblit v1.8.0