From c56015c5c73861b5f794cac48064d0394f8fd37d Mon Sep 17 00:00:00 2001 From: pansen <pansen626@sina.com> Date: 星期二, 02 四月 2019 15:48:39 +0800 Subject: [PATCH] 对抓拍记录的picMaxUrl字段赋值(大图路径) --- QiaoJiaSystem/StructureApp/AppPipeController.cpp | 140 ++++++++++++++++++++++++++++++++-------------- 1 files changed, 96 insertions(+), 44 deletions(-) diff --git a/QiaoJiaSystem/StructureApp/AppPipeController.cpp b/QiaoJiaSystem/StructureApp/AppPipeController.cpp index 18c22b4..68383b4 100644 --- a/QiaoJiaSystem/StructureApp/AppPipeController.cpp +++ b/QiaoJiaSystem/StructureApp/AppPipeController.cpp @@ -19,6 +19,7 @@ //} AppPipeController::AppPipeController(std::string folderPath, const SdkRuleMap &ruleMap) : + m_rpcClient("RtspAnalysServer", "127.0.0.1", appPref.getIntData("RpcServerPort"), "tcp"), videoCaptureElement("filePath", 25, -1, appPref.getLongData("gpu.index")), // videoCaptureElement(40), m_index(0), @@ -29,11 +30,10 @@ faceRpcElement(folderPath + "faceRpc", ruleMap[FaceSdk]), faceExtractElement(folderPath + "faceExtract", ruleMap[FaceSdk]), triggerElement(25, 10), - recordVideoElement(-1, ""), +// recordVideoElement(-1, ""), bRecordVideoEnable(false), - rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp"), - m_bSetWH(false) -{ + + m_bSetWH(false) { init(); @@ -69,6 +69,7 @@ // intKeepRight(); //} AppPipeController::AppPipeController(std::string camId, const SdkRuleMap &ruleMap, bool RecordVideoEnable) : + 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), @@ -78,8 +79,8 @@ faceRpcElement(camId + "faceRpc", ruleMap[FaceSdk]), faceExtractElement(camId + "faceExtract", ruleMap[FaceSdk]), triggerElement(25, 4), - recordVideoElement(camId, appPref.getStringData(camId + "rtsp")), - newRecordVideoElement(camId), +// recordVideoElement(camId, appPref.getStringData(camId + "rtsp")), +// newRecordVideoElement(camId), perimeterElement(ruleMap[PerimeterSdk]), crowdElement(ruleMap[CrowdSdk]), perStaticElement(ruleMap[PerStaticSdk]), @@ -88,10 +89,7 @@ rightJudgment(ruleMap[KeepRightSdk]), bRecordVideoEnable(RecordVideoEnable), m_sdkRuleMap(ruleMap), - rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp"), - m_bSetWH(false) - - { + m_bSetWH(false) { DBG("camId" << camId); init(); initPerimeter(); @@ -177,6 +175,58 @@ string test_str; + +void AppPipeController::RecordVideo() { + /*std::string imgKeyYolo = yoloRpcElement.getProperty("imgKey"); + + std::string imgKeyFace = faceRpcElement.getProperty("imgKey"); + if(faceRpcElement.getTriggerState() || + personElement.getTriggerState() || + leftJudgment.getTriggerState() || + rightJudgment.getTriggerState() || + perimeterElement.getTriggerState() || + crowdElement.getTriggerState() || + perHubElement.getTriggerState() || + perStaticElement.getTriggerState()) + { + try { + auto server = rpcClient.getServer(); + if (!server) + { + ERR("server is null"); + return; + } + + if(imgKeyFace != imgKeyYolo) + { + server->recordVideo(imgKeyFace); + server->recordVideo(imgKeyYolo); + INFO("Record Video Face: "<<imgKeyFace); + INFO("Record Video Yolo: "<<imgKeyYolo); + } else { + INFO("Record Video: "<<imgKeyYolo); + server->recordVideo(imgKeyFace); + } + } + catch (std::exception &e) + { + ERR("Record Video ImgKeyFace: "<<imgKeyFace <<" ImgKeyYolo :"<<imgKeyYolo <<" Message: "<<e.what()); + return ; + } + } + else { + INFO("ImageNoFace Yolo:"<<imgKeyYolo<<" Face:"<<imgKeyFace); + INFO("faceRpcElement: "<< faceRpcElement.getTriggerState() <<" "<< + "personElement: "<<personElement.getTriggerState() <<" "<< + "leftJudgment: "<<leftJudgment.getTriggerState() <<" "<< + "leftJudgment: "<<rightJudgment.getTriggerState() <<" "<< + "perimeterElement: "<<perimeterElement.getTriggerState()<<" "<< + "crowdElement: "<<crowdElement.getTriggerState()<<" "<< + "perHubElement: "<<perHubElement.getTriggerState()<<" "<< + "perStaticElement: "<<perStaticElement.getTriggerState()); + }*/ +} + void AppPipeController::init() { unsigned char ip_old[15] = {0}; @@ -206,30 +256,27 @@ videoCaptureElement.registerConnector([&] { std::string imgKey; - m_hiredisTool.listRpop(m_camId,imgKey); - if(imgKey.empty()) - { - ERR("imgKey.empty() "<<imgKey); + m_hiredisTool.listRpop(m_camId, imgKey); + if (imgKey.empty()) { + ERR("CamId " << m_camId << " No ImgKey"); return; } cv::Mat imageTemp; - m_hiredisTool.getKeyImage(imgKey,imageTemp); - if(!m_bSetWH) - { - INFO("SetWidth:"<<imageTemp.cols<<" Height:"<<imageTemp.rows); - appPref.setIntData(m_camId+"width",imageTemp.cols); - appPref.setIntData(m_camId+"height",imageTemp.rows); - m_bSetWH=true; + m_hiredisTool.getKeyImage(imgKey, imageTemp); + if (!m_bSetWH) { + INFO("SetWidth:" << imageTemp.cols << " Height:" << imageTemp.rows); + appPref.setIntData(m_camId + "width", imageTemp.cols); + appPref.setIntData(m_camId + "height", imageTemp.rows); + m_bSetWH = true; } m_hiredisTool.delKey(imgKey); - if(imageTemp.empty()) - { - ERR("No Image Data In: "<<imgKey); + if (imageTemp.empty()) { + ERR("No Image Data In: " << m_camId << " ImgKey:" << imgKey); return; } - std::string strNewTime = AppUtil::getTimeUSecString(); + std::string strNewTime = AppUtil::getTimeUSecString(); ImageName_s_t imgSt = ImageName_s_t::fromString(imgKey); @@ -237,8 +284,8 @@ if (!faceRpcElement.isBusy()) { //#todo faceRpcElement.setProperty("time", strNewTime); - faceRpcElement.setProperty("imgKey",imgKey); - INFO("Write To FaceRPC ES time:"<<strNewTime<< " ImgKey: "<<imgKey); + faceRpcElement.setProperty("imgKey", imgKey); + INFO("Write To FaceRPC ES time:" << strNewTime << " ImgKey: " << imgKey); faceRpcElement.setImage(imageTemp); faceRpcElement.submit(); } @@ -246,8 +293,8 @@ if (!yoloRpcElement.isBusy()) { //#todo yoloRpcElement.setProperty("time", strNewTime); - yoloRpcElement.setProperty("imgKey",imgKey); - INFO("Write To YoloES time:"<<strNewTime<< " ImgKey: "<<imgKey); + yoloRpcElement.setProperty("imgKey", imgKey); + INFO("Write To YoloES time:" << strNewTime << " ImgKey: " << imgKey); yoloRpcElement.setImage(imageTemp); yoloRpcElement.submit(); } @@ -257,8 +304,8 @@ imageDrawElement.setImage(imageTemp); imageDrawElement.submit(); } - - if(faceRpcElement.getTriggerState() || + //this->RecordVideo(); + /*if(faceRpcElement.getTriggerState() || personElement.getTriggerState() || leftJudgment.getTriggerState() || rightJudgment.getTriggerState() || @@ -292,7 +339,7 @@ "crowdElement: "<<crowdElement.getTriggerState()<<" "<< "perHubElement: "<<perHubElement.getTriggerState()<<" "<< "perStaticElement: "<<perStaticElement.getTriggerState()); - } + }*/ } }); @@ -303,14 +350,20 @@ personElement.setObjsResults(yoloRpcElement.getLastScoreRects()); personElement.submit(); } + //INFO("Record Video By Yolo"); + //this->RecordVideo(); }); faceRpcElement.registerConnector([&] { imageDrawElement.setFaces(faceRpcElement.getLastScoreRects()); + //INFO("Record Video By Face"); + //this->RecordVideo(); }); yoloRpcElement.registerConnector("YoloTrigger", [&] { // auto images = yoloRpcElement.getTriggerMats(); + //INFO("Record Video By Yolo"); + //this->RecordVideo(); }); faceRpcElement.registerConnector("FaceTrigger", [&] { @@ -321,11 +374,13 @@ faceRpcElement.getTriggerFaces(), faceRpcElement.getTriggerScoreRects(), faceRpcElement.getTriggerMats()}); + //INFO("Record Video By Face"); + //this->RecordVideo(); }); imageDrawElement.registerConnector([&] { if (appPref.getIntData("show.image") == 1) { - ImageShowElement::showImage(to_string(this->m_index), *imageDrawElement.getImage()); + ImageShowElement::showImage(to_string(this->m_index), *imageDrawElement.getImage()); } }); @@ -338,8 +393,7 @@ registerElement(faceRpcElement); registerElement(faceExtractElement); } - if(appPref.getIntData("show.image") == 1) - { + if (appPref.getIntData("show.image") == 1) { imageDrawElement.registerConnector([&] { ImageShowElement::showImage(to_string(this->m_index), *imageDrawElement.getImage()); @@ -349,8 +403,8 @@ registerElement(imageDrawElement); } - // registerElement(newRecordVideoElement); - videoCaptureElement.setOutPutInterval(3); + // registerElement(newRecordVideoElement); + //videoCaptureElement.setOutPutInterval(3); faceExtractElement.setProperty("index", to_string(m_index)); registerElement(yoloRpcElement); //#todo setProperty @@ -483,14 +537,12 @@ leftJudgment.init(rule.strAreas, rule.strLine); rightJudgment.init(rule.strExAreas, rule.strExLine); yoloRpcElement.registerConnector([&] { - if(!leftJudgment.isBusy()) - { - leftJudgment.setYoloObjects(yoloRpcElement.getLastScoreRects()); - leftJudgment.setImage(yoloRpcElement.getImage()); - leftJudgment.submit(); + if (!leftJudgment.isBusy()) { + leftJudgment.setYoloObjects(yoloRpcElement.getLastScoreRects()); + leftJudgment.setImage(yoloRpcElement.getImage()); + leftJudgment.submit(); } - if(!rightJudgment.isBusy()) - { + if (!rightJudgment.isBusy()) { rightJudgment.setYoloObjects(yoloRpcElement.getLastScoreRects()); rightJudgment.setImage(yoloRpcElement.getImage()); -- Gitblit v1.8.0