From 9a0afe1ccce6fd3a6882b4c19b72cee579a54dd1 Mon Sep 17 00:00:00 2001 From: xuxiuxi <554325746@qq.com> Date: 星期五, 08 三月 2019 12:57:51 +0800 Subject: [PATCH] find channel list bug --- QiaoJiaSystem/StructureApp/AppPipeController.cpp | 491 +++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 334 insertions(+), 157 deletions(-) diff --git a/QiaoJiaSystem/StructureApp/AppPipeController.cpp b/QiaoJiaSystem/StructureApp/AppPipeController.cpp index afb6584..710118b 100644 --- a/QiaoJiaSystem/StructureApp/AppPipeController.cpp +++ b/QiaoJiaSystem/StructureApp/AppPipeController.cpp @@ -7,49 +7,99 @@ #include <QtCore/QtGlobal> #include <net_config.h> -AppPipeController::AppPipeController(std::string folderPath, const Json::Value &json) : - videoCaptureElement("filePath", 25, -1, appPref.getLongData("gpu.index")), m_index(0), +#include <basic/pipe_element/ffmpeg/basic_struct_for_video_image.h> +//AppPipeController::AppPipeController(std::string folderPath, const Json::Value &json) : +// videoCaptureElement("filePath", 25, -1, appPref.getLongData("gpu.index")), m_index(0), +// m_folderPath(folderPath), +// m_json(json), fdfsClient(nullptr), yoloRpcElement(folderPath + "yoloRpc"), faceRpcElement(folderPath + "faceRpc"), +// faceExtractElement(folderPath + "faceExtract"), triggerElement(25, 10), +// recordVideoElement(-1, json["rtsp"].asString()), bRecordVideoEnable(false) { + +// init(); + +//} +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), m_folderPath(folderPath), - m_json(json), fdfsClient(nullptr), yoloRpcElement(folderPath + "yoloRpc"), faceRpcElement(folderPath + "faceRpc"), - faceExtractElement(folderPath + "faceExtract"), triggerElement(25, 10), - recordVideoElement(-1, json["rtsp"].asString()), bRecordVideoEnable(false) { + m_sdkRuleMap(ruleMap), + fdfsClient(nullptr), + yoloRpcElement(folderPath + "yoloRpc"), + faceRpcElement(folderPath + "faceRpc", ruleMap[FaceSdk]), + faceExtractElement(folderPath + "faceExtract", ruleMap[FaceSdk]), + triggerElement(25, 10), +// recordVideoElement(-1, ""), + bRecordVideoEnable(false), + + m_bSetWH(false) +{ init(); } - -AppPipeController::AppPipeController(int index, const Json::Value &json, bool RecordVideoEnable) : - videoCaptureElement(json["rtsp"].asString(), 25, 3000, appPref.getLongData("gpu.index"), RecordVideoEnable), - m_index(index), fdfsClient(nullptr), yoloRpcElement(to_string(index) + "yoloRpc"), - faceRpcElement(to_string(index) + "faceRpc"), m_json(json), faceExtractElement(to_string(index) + "faceExtract"), - triggerElement(25, 4), recordVideoElement(index, json["rtsp"].asString()), bRecordVideoEnable(RecordVideoEnable) { - init(); -} +//AppPipeController::AppPipeController(int index, const Json::Value &json, bool RecordVideoEnable) : +// videoCaptureElement(json["rtsp"].asString(), 25, 3000, appPref.getLongData("gpu.index"), RecordVideoEnable), +// m_index(index), fdfsClient(nullptr), yoloRpcElement(to_string(index) + "yoloRpc"), +// faceRpcElement(to_string(index) + "faceRpc"), m_json(json), faceExtractElement(to_string(index) + "faceExtract"), +// triggerElement(25, 4), recordVideoElement(index, json["rtsp"].asString()), bRecordVideoEnable(RecordVideoEnable) { +// init(); +//} -AppPipeController::AppPipeController(std::string camId, const Json::Value &json, bool RecordVideoEnable) : - videoCaptureElement(json["rtsp"].asString(), 25, 3000, appPref.getLongData("gpu.index")), +//AppPipeController::AppPipeController(std::string camId, const Json::Value &json, bool RecordVideoEnable) : +// videoCaptureElement(json["rtsp"].asString(), 25, 3000, appPref.getLongData("gpu.index")), +// m_index(0), +// m_camId(camId), +// fdfsClient(nullptr), +// yoloRpcElement(camId + "yoloRpc"), +// faceRpcElement(camId + "faceRpc"), +// m_json(json), +// faceExtractElement(camId + "faceExtract"), +// triggerElement(25, 4), +// recordVideoElement(camId, json["rtsp"].asString()), +// newRecordVideoElement(camId), +// perimeterElement(1), +// crowdElement(json["crowd.num"].asInt()), +// bRecordVideoEnable(RecordVideoEnable) +//{ +// init(); +// initPerimeter(); +// initCrowd(); +// 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), m_camId(camId), fdfsClient(nullptr), yoloRpcElement(camId + "yoloRpc"), - faceRpcElement(camId + "faceRpc"), - m_json(json), - faceExtractElement(camId + "faceExtract"), - // peTriggerElement(json["perimeter.tolerance"].asInt(), json["perimeter.delay"].asInt()), -// leftTriggerElement(json["keepRight.tolerance"].asInt(), json["keepRight.delay"].asInt()), -// rightTriggerElement(json["keepRight.tolerance"].asInt(), json["keepRight.delay"].asInt()), - // crowdTriggerElement(json["crowd.tolerance"].asInt(), json["crowd.delay"].asInt()), + faceRpcElement(camId + "faceRpc", ruleMap[FaceSdk]), + faceExtractElement(camId + "faceExtract", ruleMap[FaceSdk]), triggerElement(25, 4), - recordVideoElement(camId, json["rtsp"].asString()), - newRecordVideoElement(camId), - perimeterElement(1), - crowdElement(json["crowd.num"].asInt()), - bRecordVideoEnable(RecordVideoEnable) { +// recordVideoElement(camId, appPref.getStringData(camId + "rtsp")), +// newRecordVideoElement(camId), + perimeterElement(ruleMap[PerimeterSdk]), + crowdElement(ruleMap[CrowdSdk]), + perStaticElement(ruleMap[PerStaticSdk]), + perHubElement(ruleMap[PerHubSdk]), + leftJudgment(ruleMap[KeepRightSdk]), + rightJudgment(ruleMap[KeepRightSdk]), + bRecordVideoEnable(RecordVideoEnable), + m_sdkRuleMap(ruleMap), + m_bSetWH(false) + + { + DBG("camId" << camId); init(); initPerimeter(); initCrowd(); - intKeepRight(); + initKeepRight(); + initPerHub(); + initPerStatic(); } AppPipeController::~AppPipeController() { @@ -91,9 +141,9 @@ faceExtractElement.setProperty("dev_id", str_device_id); faceExtractElement.setProperty("ch_id", str_ch_id); faceExtractElement.setProperty("path", path); - yoloRpcElement.setProperty("dev_id", str_device_id); - yoloRpcElement.setProperty("ch_id", str_ch_id); - yoloRpcElement.setProperty("path", path); + personElement.setProperty("dev_id", str_device_id); + personElement.setProperty("ch_id", str_ch_id); + personElement.setProperty("path", path); //淇敼鏃堕棿涓哄疄闄呭彂鐢熸椂闂� QString strPath = QString::fromStdString(path); @@ -122,11 +172,63 @@ } bool AppPipeController::getRunning() { - return videoCaptureElement.isRunning(); + //return videoCaptureElement.isRunning(); + return false; } 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}; @@ -134,20 +236,19 @@ if (!(GetIpAddress(net_ifname.c_str(), ip_old))) { ERR("couldn't get ip"); } - + m_localIp = std::string((char *) ip_old); bUp = false; - yoloRpcElement.setProperty("str_addr", m_json["addr"].asString()); - yoloRpcElement.setProperty("local_ip", std::string((char *) ip_old)); + personElement.setProperty("str_addr", m_sdkRuleMap[YoloSdk].strAddr.toStdString()); + personElement.setProperty("local_ip", std::string((char *) ip_old)); - faceExtractElement.setProperty("str_addr", m_json["addr"].asString()); + faceExtractElement.setProperty("str_addr", m_sdkRuleMap[FaceSdk].strAddr.toStdString()); faceExtractElement.setProperty("local_ip", std::string((char *) ip_old)); if (bRecordVideoEnable) { faceExtractElement.setProperty("dev_id", m_camId); - yoloRpcElement.setProperty("dev_id", m_camId); - m_json_Record["rtsp"] = m_json["rtsp"].asString(); + personElement.setProperty("dev_id", m_camId); } @@ -156,82 +257,118 @@ // recordInit(40,100); videoCaptureElement.registerConnector([&] { - cv::Mat imageTemp = videoCaptureElement.getImage(); + std::string imgKey; + m_hiredisTool.listRpop(m_camId,imgKey); + if(imgKey.empty()) + { + ERR("CamId "<<m_camId<<" No ImgKey"); + return; + } - std::string strNewTime; - strNewTime = AppUtil::getTimeUSecString(); + 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; + } -// cv::putText(imageTemp, strNewTime, cv::Point(408, 540), cv::HersheyFonts::FONT_HERSHEY_PLAIN, 5, -// cv::Scalar(255, 255, 0), 2); + m_hiredisTool.delKey(imgKey); + if(imageTemp.empty()) + { + ERR("No Image Data In: "<<m_camId<<" ImgKey:"<<imgKey); + return; + } + std::string strNewTime = AppUtil::getTimeUSecString(); + + ImageName_s_t imgSt = ImageName_s_t::fromString(imgKey); + if (m_camId.size() > 0) { - - - if (bRecordVideoEnable) { - newRecordVideoElement.pushImgBuf(strNewTime, imageTemp); - newRecordVideoElement.setSdkTrigger(faceRpcElement.getTriggerState() ||//TODO - yoloRpcElement.getTrigger() || - leftJudgment.getTriggerState() || - rightJudgment.getTriggerState() || - perimeterElement.getTriggerState() || - crowdElement.getTriggerState()); - if (!newRecordVideoElement.isBusy()) { - newRecordVideoElement.submit(); - } - + if (!faceRpcElement.isBusy()) { + //#todo + faceRpcElement.setProperty("time", strNewTime); + faceRpcElement.setProperty("imgKey",imgKey); + INFO("Write To FaceRPC ES time:"<<strNewTime<< " ImgKey: "<<imgKey); + faceRpcElement.setImage(imageTemp); + faceRpcElement.submit(); } - } else { - //#todo 璁$畻褰撳墠鏂囦欢鏃堕棿 - //#TODO 杈撳嚭闂撮殧鐢ㄤ簬璁$畻鏃堕棿 - // 鐜颁负姣忎笁甯ц绠椾竴娆★紝瀵艰嚧璁$畻鐨勬椂闂撮暱浜庢枃浠剁殑瀹為檯鏃堕棿 - auto opit = 25;// videoCaptureElement.getOutPutInterval(); - auto opidx = videoCaptureElement.getoutPutIndex(); - int second = opidx / opit; - qint64 newTime = m_dt.toMSecsSinceEpoch() + second * 1000; - QDateTime newDt = QDateTime::fromMSecsSinceEpoch(newTime); - strNewTime = newDt.toString("yyyy-MM-dd hh:mm:ss").toStdString(); + if (!yoloRpcElement.isBusy()) { + //#todo + yoloRpcElement.setProperty("time", strNewTime); + yoloRpcElement.setProperty("imgKey",imgKey); + INFO("Write To YoloES time:"<<strNewTime<< " ImgKey: "<<imgKey); + yoloRpcElement.setImage(imageTemp); + yoloRpcElement.submit(); + } - } -// DBG(strNewTime); - if (!faceRpcElement.isBusy()) { -// faceRpcElement.setProperty("uuid", uuid); - //#todo - faceRpcElement.setProperty("time", strNewTime); -// faceRpcElement.setProperty("time", uuid); - faceRpcElement.setImage(imageTemp); - faceRpcElement.submit(); - } - - if (!yoloRpcElement.isBusy()) { -// yoloRpcElement.setProperty("uuid", uuid); - //#todo - yoloRpcElement.setProperty("time", strNewTime); - yoloRpcElement.setImage(imageTemp); - yoloRpcElement.submit(); - } - - if (!imageDrawElement.isBusy()) { - imageDrawElement.setImage(imageTemp); - imageDrawElement.submit(); - } - - if (bRecordVideoEnable) { - registerElement(triggerElement); + if (appPref.getIntData("show.image") == 1 && !imageDrawElement.isBusy()) { + imageDrawElement.setImage(imageTemp); + imageDrawElement.submit(); + } + //this->RecordVideo(); + /*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; + } + INFO("Record Video "<<imgKey); + server->recordVideo(imgKey); + } + catch (std::exception &e) + { + ERR("Record Video Err: "<<imgKey <<" 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()); + }*/ } }); yoloRpcElement.registerConnector([&] { - imageDrawElement.setYoloObjects(yoloRpcElement.getLastScoreRects()); + imageDrawElement.setYoloObjects(personElement.getLastScoreRects()); + if (!personElement.isBusy()) { + 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", [&] { @@ -242,38 +379,40 @@ 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()); } - }); - newRecordVideoElement.registerConnector([&] { - if (faceRpcElement.getTriggerState() ||//TODO - yoloRpcElement.getTrigger() || - leftJudgment.getTriggerState() || - rightJudgment.getTriggerState() || - perimeterElement.getTriggerState() || - crowdElement.getTriggerState() - ) { - - } - }); registerElement(videoCaptureElement); - if (m_json["yolo.enable"].asString() == "1") { - registerElement(yoloRpcElement); + if (m_sdkRuleMap[YoloSdk].nIsRun == 1) { + registerElement(personElement); } - if (m_json["face.enable"].asString() == "1") { + if (m_sdkRuleMap[FaceSdk].nIsRun == 1) { + DBG("FaceSdk=" << m_sdkRuleMap[FaceSdk].nIsRun); registerElement(faceRpcElement); registerElement(faceExtractElement); } - registerElement(imageDrawElement); - registerElement(newRecordVideoElement); - videoCaptureElement.setOutPutInterval(5); + if(appPref.getIntData("show.image") == 1) + { + imageDrawElement.registerConnector([&] { + + ImageShowElement::showImage(to_string(this->m_index), *imageDrawElement.getImage()); + + }); + + registerElement(imageDrawElement); + } + + // registerElement(newRecordVideoElement); + //videoCaptureElement.setOutPutInterval(3); faceExtractElement.setProperty("index", to_string(m_index)); + registerElement(yoloRpcElement); //#todo setProperty // faceExtractElement.setProperty("index", to_string(m_index)); // faceExtractElement.setProperty("index", to_string(m_index)); @@ -318,7 +457,14 @@ void AppPipeController::setfdfsClient(FastFdsWithLock *p_fdfsClient) { fdfsClient = p_fdfsClient; faceExtractElement.setFdfs(fdfsClient); - yoloRpcElement.setFdfs(fdfsClient); + personElement.setFdfs(fdfsClient); + perHubElement.setFdfs(fdfsClient); + perimeterElement.setFdfs(fdfsClient); + perStaticElement.setFdfs(fdfsClient); + leftJudgment.setFdfs(fdfsClient); + rightJudgment.setFdfs(fdfsClient); + crowdElement.setFdfs(fdfsClient); + } std::string AppPipeController::getRtmp() { @@ -330,18 +476,17 @@ } void AppPipeController::initPerimeter() { - if (!m_json["perimeter.enable"] == "1") { + SdkRule rule = m_sdkRuleMap[PerimeterSdk]; + if (rule.nIsRun != 1) { return; } - std::string area = m_json["perimeter.area"].asString(); - //area="[{\"x\":100,\"y\":6},{\"x\":100,\"y\":1200},{\"x\":1800,\"y\":1200},{\"x\":1800,\"y\":6}]"; - perimeterElement.setMask(area); - perimeterElement.setFdfs(fdfsClient); - perimeterElement.setProperty("sdkType", "perimeter"); + + yoloRpcElement.registerConnector([&] { if (!perimeterElement.isBusy()) { + perimeterElement.setYoloObjects(yoloRpcElement.getLastScoreRects()); + perimeterElement.setImage(yoloRpcElement.getImage()); - perimeterElement.setObjsResults(yoloRpcElement.getObjects()); perimeterElement.submit(); } }); @@ -367,61 +512,93 @@ } void AppPipeController::initCrowd() { - if (m_json["crowd.enable"] != "1") { + SdkRule rule = m_sdkRuleMap[CrowdSdk]; + if (rule.nIsRun != 1) { return; } - std::string area = m_json["crowd.area"].asString(); + // std::string area = m_json["crowd.area"].asString(); //area="[{\"x\":100,\"y\":6},{\"x\":100,\"y\":1200},{\"x\":1800,\"y\":1200},{\"x\":1800,\"y\":6}]"; - crowdElement.setMask(area); - crowdElement.setFdfs(fdfsClient); - crowdElement.setProperty("sdkType", "crowd"); + + crowdElement.setProperty("local_ip", m_localIp); + yoloRpcElement.registerConnector([&] { if (!crowdElement.isBusy()) { - crowdElement.setObjsResults(yoloRpcElement.getObjects()); + crowdElement.setYoloObjects(yoloRpcElement.getLastScoreRects()); + crowdElement.setImage(yoloRpcElement.getImage()); crowdElement.submit(); } }); -// crowdElement.registerConnector([&] { -// crowdTriggerElement.setState(crowdElement.getRealNum() >= m_json["crowd.num"].asInt()); -// crowdTriggerElement.triggerOnce(); -// }); -// crowdTriggerElement.registerConnector([&] { -// switch (crowdTriggerElement.getTriggerType()) { -// case UP: -// //reqRecordMap[SdkType_Perimeter]=true; -// // startRecord(SdkType_Perimeter); -// DBG("crowdTriggerElement UP"); -// break; -// case DOWN: -// // reqRecordMap[SdkType_Perimeter]=false; -// //endRecord(SdkType_Perimeter); -// DBG("crowdTriggerElement Down"); -// break; -// default: -// break; -// } -// }); registerElement(crowdElement); // registerElement(crowdTriggerElement); } -void AppPipeController::intKeepRight() { - if (m_json["keepRight.enable"] != "1") { +void AppPipeController::initKeepRight() { + SdkRule rule = m_sdkRuleMap[KeepRightSdk]; + if (rule.nIsRun != 1) { return; } - std::string leftArea = m_json["keepRight.leftArea"].asString(); - std::string leftLine = m_json["keepRight.leftLine"].asString(); - std::string rightArea = m_json["keepRight.rightArea"].asString(); - std::string rightLine = m_json["keepRight.rightLine"].asString(); - leftJudgment.init(QString::fromStdString(leftArea), QString::fromStdString(leftLine)); - rightJudgment.init(QString::fromStdString(rightArea), QString::fromStdString(rightLine)); + leftJudgment.setProperty("local_ip", m_localIp); + rightJudgment.setProperty("local_ip", m_localIp); + leftJudgment.init(rule.strAreas, rule.strLine); + rightJudgment.init(rule.strExAreas, rule.strExLine); yoloRpcElement.registerConnector([&] { - leftJudgment.setYoloObjects(yoloRpcElement.getLastScoreRects()); - rightJudgment.setYoloObjects(yoloRpcElement.getLastScoreRects()); + if(!leftJudgment.isBusy()) + { + leftJudgment.setYoloObjects(yoloRpcElement.getLastScoreRects()); + leftJudgment.setImage(yoloRpcElement.getImage()); + leftJudgment.submit(); + } + if(!rightJudgment.isBusy()) + { + rightJudgment.setYoloObjects(yoloRpcElement.getLastScoreRects()); + + rightJudgment.setImage(yoloRpcElement.getImage()); + rightJudgment.submit(); + } + }); registerElement(leftJudgment); registerElement(rightJudgment); } +void AppPipeController::initPerStatic() { + SdkRule rule = m_sdkRuleMap[PerStaticSdk]; + if (rule.nIsRun != 1) { + return; + } + // std::string area = m_json["crowd.area"].asString(); + //area="[{\"x\":100,\"y\":6},{\"x\":100,\"y\":1200},{\"x\":1800,\"y\":1200},{\"x\":1800,\"y\":6}]"; + + perStaticElement.setProperty("local_ip", m_localIp); + yoloRpcElement.registerConnector([&] { + if (!perStaticElement.isBusy()) { + perStaticElement.setYoloObjects(yoloRpcElement.getLastScoreRects()); + perStaticElement.setImage(yoloRpcElement.getImage()); + perStaticElement.submit(); + } + }); + + registerElement(perStaticElement); +} + +void AppPipeController::initPerHub() { + SdkRule rule = m_sdkRuleMap[PerHubSdk]; + if (rule.nIsRun != 1) { + return; + } + // std::string area = m_json["crowd.area"].asString(); + //area="[{\"x\":100,\"y\":6},{\"x\":100,\"y\":1200},{\"x\":1800,\"y\":1200},{\"x\":1800,\"y\":6}]"; + + perHubElement.setProperty("local_ip", m_localIp); + yoloRpcElement.registerConnector([&] { + if (!perHubElement.isBusy()) { + perHubElement.setYoloObjects(yoloRpcElement.getLastScoreRects()); + perHubElement.setImage(yoloRpcElement.getImage()); + perHubElement.submit(); + } + }); + + registerElement(perHubElement); +} -- Gitblit v1.8.0