From f946a62d3921e86b44ff8e2973138304b9cd53cd Mon Sep 17 00:00:00 2001 From: chenshijun <csj_sky@126.com> Date: 星期二, 16 四月 2019 16:36:32 +0800 Subject: [PATCH] 解决修改参数和推流画面跳跃问题 --- QiaoJiaSystem/StructureApp/PerimeterElement.cpp | 47 +++++++++++++++++++++++------------------------ 1 files changed, 23 insertions(+), 24 deletions(-) diff --git a/QiaoJiaSystem/StructureApp/PerimeterElement.cpp b/QiaoJiaSystem/StructureApp/PerimeterElement.cpp index 49e86a4..7276844 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), @@ -24,22 +24,18 @@ pManagerEsDB(nullptr), m_bIsMask(true), m_bSetWH(false), - pointArray(nullptr) -{ + pointArray(nullptr), + m_rpcClient("RtspAnalysServer", "127.0.0.1", appPref.getIntData("RpcVTIMPort"), "tcp") { pManagerEsDB = new EsDBTool(appPref.getStringData("ipAdd"), appPref.getIntData("ipPort")); } -PerimeterElement::PerimeterElement(const SdkRule &rule,SaveVideoRpcClient_t &rpcClient):PerimeterElement(rule){ - m_rpcClient=rpcClient; -} PerimeterElement::~PerimeterElement() { if (pManagerEsDB) { delete pManagerEsDB; pManagerEsDB = nullptr; } - if(pointArray) - { + if (pointArray) { // delete[] pointArray[0]; delete[] pointArray; } @@ -64,7 +60,7 @@ m_recVec.clear(); // DBG("Objs="<<mObjs.size()<<" fSensitivity="<<m_sdkRule.fSensitivity<<" nThreshold"<<m_sdkRule.nThreshold); - for (auto obj:mObjs) { + for (auto &obj:mObjs) { if (obj.score < m_sdkRule.fSensitivity)continue; @@ -76,9 +72,8 @@ // DBG("picDate="<<picDate); } - if(imgKey.empty()) - { - imgKey =obj.properties["imgKey"]; + if (imgKey.empty()) { + imgKey = obj.properties["imgKey"]; } if (m_sdkRule.nSdkType == PerimeterSdk) { @@ -126,17 +121,17 @@ //state = num > 0 ; state =( num !=mRealNum); // DBG("num="<<num<< "time="<< picDate); - INFO("SDK Type: PerimeterSdk"); +// INFO("SDK Type: PerimeterSdk"); break; case CrowdSdk: state = num > m_sdkRule.nAlarmNumLowerLimit && num !=mRealNum; - INFO("SDK Type: CrowdSdk"); +// INFO("SDK Type: CrowdSdk"); break; case PerHubSdk: state = num > m_sdkRule.nAlarmNumLowerLimit && num < m_sdkRule.nAlarmNumUpperLimit && num !=mRealNum; - INFO("SDK Type: PerHubSdk"); +// INFO("SDK Type: PerHubSdk"); // if(m_sdkRule.nAlarmNumLowerLimit>=0) // { @@ -168,10 +163,10 @@ default: break; } - INFO("State:"<<state<<" Num:"<<num<<" mRealNum:"<<mRealNum<<" LowerLimit :"<<m_sdkRule.nAlarmNumLowerLimit<<" HightLimit: "<<m_sdkRule.nAlarmNumUpperLimit); +// INFO("State:"<<state<<" Num:"<<num<<" mRealNum:"<<mRealNum<<" LowerLimit :"<<m_sdkRule.nAlarmNumLowerLimit<<" HightLimit: "<<m_sdkRule.nAlarmNumUpperLimit); m_triggerElement.setState(state); m_triggerElement.triggerOnce(); - if (m_triggerElement.getTriggerState() ) + if (m_triggerElement.getTriggerState()) { if(num > 0) { if(pointArray!=nullptr) @@ -180,7 +175,7 @@ int npt[]={npts}; - cv::polylines(image, ppt,npt, 1, true,cv::Scalar(255,255,0)); + cv::polylines(image, ppt,npt, 1, true,cv::Scalar(255,255,0), 2); } for(auto rect:m_recVec) @@ -196,8 +191,12 @@ std::string imgUrl = uploadImgToFdfs(image); saveInfoToEs(imgUrl, picDate,imgKey); } - DBG("num=" << num << " lastnum=" << mRealNum); +// DBG("num=" << num << " lastnum=" << mRealNum); mRealNum = num; + + //todo 閲嶇疆鎶ヨtrigger + m_triggerElement.setState(false); + m_triggerElement.triggerOnce(); } // if (m_triggerElement.getTriggerState() && num!=mRealNum) @@ -283,8 +282,8 @@ { mPolygon << (QPoint(x, y)); } - DBG("width="<<sizeW); - DBG("height="<<sizeH); +// DBG("width="<<sizeW); +// DBG("height="<<sizeH); } @@ -293,7 +292,7 @@ QJsonArray PerimeterElement::getJsonArrayFromQString(const QString &strJson) { QJsonDocument jsonDocument = QJsonDocument::fromJson(strJson.toLocal8Bit()); if (jsonDocument.isNull()) { - DBG("please check the string" << strJson.toStdString()); + ERR("please check the string" << strJson.toStdString()); return QJsonArray(); } QJsonArray jsonArray = jsonDocument.array(); @@ -390,7 +389,7 @@ if (!server) { ERR("server is null"); - return false; + //return false; } INFO("Record Video "<<imgKey); server->recordVideo(imgKey); @@ -398,7 +397,7 @@ catch (std::exception &e) { ERR("Record Video Err: "<<imgKey <<" Message: "<<e.what()); - return false; + //return false; } INFO("SaveImgKeyToES: "<<imgKey); bool retface = false; -- Gitblit v1.8.0