| | |
| | | triggerElement(25, 10), |
| | | recordVideoElement(-1, ""), |
| | | bRecordVideoEnable(false), |
| | | rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp") |
| | | rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp"), |
| | | m_bSetWH(false) |
| | | { |
| | | |
| | | init(); |
| | |
| | | |
| | | 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("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}; |
| | |
| | | // int max=appPref.getIntData("n_cut_max_duration"); |
| | | // recordInit(40,100); |
| | | videoCaptureElement.registerConnector([&] { |
| | | cv::Mat imageTemp; |
| | | |
| | | std::string imgKey; |
| | | m_hiredisTool.listRpop(m_camId,imgKey); |
| | | if(imgKey.empty()) |
| | | { |
| | | //DBG("imgKey.empty()"); |
| | | ERR("imgKey.empty() "<<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); |
| | | |
| | | m_hiredisTool.delKey(imgKey); |
| | | if(imageTemp.empty()) |
| | | { |
| | |
| | | imageDrawElement.submit(); |
| | | } |
| | | |
| | | if(faceRpcElement.getTriggerState() || |
| | | /*if(faceRpcElement.getTriggerState() || |
| | | personElement.getTriggerState() || |
| | | leftJudgment.getTriggerState() || |
| | | rightJudgment.getTriggerState() || |
| | |
| | | "crowdElement: "<<crowdElement.getTriggerState()<<" "<< |
| | | "perHubElement: "<<perHubElement.getTriggerState()<<" "<< |
| | | "perStaticElement: "<<perStaticElement.getTriggerState()); |
| | | } |
| | | }*/ |
| | | } |
| | | }); |
| | | |
| | |
| | | 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", [&] { |