From 25eae971d34c0d0f7a5fc9dd70e98711fc950006 Mon Sep 17 00:00:00 2001 From: test <pansen626@sina.com> Date: 星期一, 22 四月 2019 09:49:55 +0800 Subject: [PATCH] 修改人员异常的大于小于设置,并使用-1作为不生效以应对单边限制 --- QiaoJiaSystem/StructureApp/PerimeterElement.cpp | 58 +++++++++++++++++++++++++++++++++------------------------- 1 files changed, 33 insertions(+), 25 deletions(-) diff --git a/QiaoJiaSystem/StructureApp/PerimeterElement.cpp b/QiaoJiaSystem/StructureApp/PerimeterElement.cpp index 49e86a4..e7b70ef 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,26 @@ //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"); + DBG("nAlarmNumLowerLimit:" << m_sdkRule.nAlarmNumLowerLimit + << " nAlarmNumUpperLimit:" << m_sdkRule.nAlarmNumUpperLimit + << " mRealNum:" << mRealNum); + if(m_sdkRule.nAlarmNumUpperLimit == -1){ + state = num >= m_sdkRule.nAlarmNumLowerLimit && num !=mRealNum; + }else if(m_sdkRule.nAlarmNumLowerLimit == -1){ + state = num <= m_sdkRule.nAlarmNumUpperLimit && num !=mRealNum; + } else { + state = num >= m_sdkRule.nAlarmNumLowerLimit && num <= m_sdkRule.nAlarmNumUpperLimit && num != mRealNum; + } +// INFO("SDK Type: PerHubSdk"); // if(m_sdkRule.nAlarmNumLowerLimit>=0) // { @@ -168,10 +172,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 +184,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 +200,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 +291,8 @@ { mPolygon << (QPoint(x, y)); } - DBG("width="<<sizeW); - DBG("height="<<sizeH); +// DBG("width="<<sizeW); +// DBG("height="<<sizeH); } @@ -293,7 +301,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 +398,7 @@ if (!server) { ERR("server is null"); - return false; + //return false; } INFO("Record Video "<<imgKey); server->recordVideo(imgKey); @@ -398,7 +406,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