From 439a23896bda9c4e954092816354914e645579b6 Mon Sep 17 00:00:00 2001 From: zhangmeng <775834166@qq.com> Date: 星期一, 10 六月 2019 09:37:13 +0800 Subject: [PATCH] 替换这个文件 --- QiaoJiaSystem/StructureApp/PerimeterElement.cpp | 73 ++++++++++++++++++++++-------------- 1 files changed, 45 insertions(+), 28 deletions(-) diff --git a/QiaoJiaSystem/StructureApp/PerimeterElement.cpp b/QiaoJiaSystem/StructureApp/PerimeterElement.cpp index d4411f1..8c3c9ab 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), @@ -25,8 +25,7 @@ m_bIsMask(true), m_bSetWH(false), pointArray(nullptr), - m_rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp") -{ + m_rpcClient("RtspAnalysServer", "127.0.0.1", appPref.getIntData("RpcVTIMPort"), "tcp") { pManagerEsDB = new EsDBTool(appPref.getStringData("ipAdd"), appPref.getIntData("ipPort")); } @@ -36,8 +35,7 @@ delete pManagerEsDB; pManagerEsDB = nullptr; } - if(pointArray) - { + if (pointArray) { // delete[] pointArray[0]; delete[] pointArray; } @@ -62,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; @@ -74,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) { @@ -121,20 +118,33 @@ switch (m_sdkRule.nSdkType) { case PerimeterSdk: - //state = num > 0 ; - state =( num !=mRealNum); + 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"); + state = num > m_sdkRule.nAlarmNumLowerLimit /*&& num !=mRealNum*/; +// 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:" << num); + 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*/; + } + + if((m_sdkRule.nAlarmNumUpperLimit == 0) && (m_sdkRule.nAlarmNumLowerLimit == -1)){//绂诲矖 + state = num <= m_sdkRule.nAlarmNumUpperLimit; + } +// INFO("SDK Type: PerHubSdk"); // if(m_sdkRule.nAlarmNumLowerLimit>=0) // { @@ -166,19 +176,21 @@ 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((m_sdkRule.nAlarmNumUpperLimit == 0) && (m_sdkRule.nAlarmNumLowerLimit == -1)) {//绂诲矖 +// }else { + //if(num > 0) { if(pointArray!=nullptr) { const cv::Point2i* ppt[1] = { pointArray }; 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) @@ -193,9 +205,14 @@ // } std::string imgUrl = uploadImgToFdfs(image); saveInfoToEs(imgUrl, picDate,imgKey); - } - DBG("num=" << num << " lastnum=" << mRealNum); - mRealNum = num; + //} +// DBG("num=" << num << " lastnum=" << mRealNum); +// } +// mRealNum = num; + + //todo 閲嶇疆鎶ヨtrigger + m_triggerElement.setState(false); + m_triggerElement.triggerOnce(); } // if (m_triggerElement.getTriggerState() && num!=mRealNum) @@ -281,8 +298,8 @@ { mPolygon << (QPoint(x, y)); } - DBG("width="<<sizeW); - DBG("height="<<sizeH); +// DBG("width="<<sizeW); +// DBG("height="<<sizeH); } @@ -291,7 +308,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(); @@ -388,7 +405,7 @@ if (!server) { ERR("server is null"); - return false; + //return false; } INFO("Record Video "<<imgKey); server->recordVideo(imgKey); @@ -396,7 +413,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