From ae5899dc884d8d7e1427e45c35e865d7ca51c34b Mon Sep 17 00:00:00 2001 From: miyanhui <dennismi1024@gmail.com> Date: 星期五, 15 二月 2019 14:56:24 +0800 Subject: [PATCH] 新的方式解决视频不录的问题 --- QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp | 47 ++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 42 insertions(+), 5 deletions(-) diff --git a/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp b/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp index d0f6d34..17ebf33 100644 --- a/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp +++ b/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp @@ -13,10 +13,16 @@ m_triggerElement(0, 0), m_sdkRule(rule), pManagerEsDB(nullptr), + m_bSetWH(false), pointArray(nullptr), npts(0) { pManagerEsDB = new EsDBTool(appPref.getStringData("ipAdd"), appPref.getIntData("ipPort")); +} + +JudgmentRetrogradeTool::JudgmentRetrogradeTool(const SdkRule &rule, SaveVideoRpcClient_t &rpcClient):JudgmentRetrogradeTool(rule) +{ + m_rpcClient = rpcClient; } JudgmentRetrogradeTool::~JudgmentRetrogradeTool() { @@ -31,8 +37,13 @@ } } +bool JudgmentRetrogradeTool::init(QString area, QString line) +{ + m_area=area; + m_line=line; +} -bool JudgmentRetrogradeTool::init(QString area, QString line) { +bool JudgmentRetrogradeTool::setMask(QString area, QString line) { //#todo string ->json QJsonArray arrayAreas = getJsonArrayFromQString(area); @@ -41,14 +52,17 @@ } int size=arrayAreas.size(); QVector<QPoint> vec; + float sizeW=(float)appPref.getIntData(m_sdkRule.strCamId.toStdString()+"width")/480; + float sizeH=(float)appPref.getIntData(m_sdkRule.strCamId.toStdString()+"height")/270; + for (int i = 0; i < arrayAreas.size(); ++i) { pointArray=new cv::Point2i[size]; - for (int i = 0; i < size; ++i) { QJsonValue jsonValue = arrayAreas[i]; QJsonObject obj = jsonValue.toObject(); - int x = obj.value("x").toDouble() * 4; - int y = obj.value("y").toDouble() * 4; - pointArray[i]={x,y}; + int x = obj.value("x").toDouble() *sizeW; + int y = obj.value("y").toDouble() *sizeH; vec.push_back(QPoint(x, y)); + DBG("width="<<sizeW); + DBG("height="<<sizeH); } @@ -295,6 +309,24 @@ t_json["videoIp"] = getProperty("local_ip");//褰撳墠鏈嶅姟鍣↖P鍦板潃 t_json["ack_alarm"] = m_triggerElement.getTriggerState() ? "0" : ""; // que ren shi fou bao jing t_json["cluster_id"] = appPref.getStringData("clusterID");; // ji qun id + std::string imgKey = obj.properties["imgKey"]; + t_json["imgKey"]=imgKey; + INFO("SaveImageKey ToES: "<<obj.properties["imgKey"]); + try { + auto server = m_rpcClient.getServer(); + if (!server) + { + ERR("server is null"); + return false; + } + INFO("Record Video "<<imgKey); + server->recordVideo(imgKey); + } + catch (std::exception &e) + { + ERR("Record Video Err: "<<imgKey <<" Message: "<<e.what()); + return false; + } bool retface = false; if (pManagerEsDB) @@ -345,4 +377,9 @@ void JudgmentRetrogradeTool::setImage(const cv::Mat &value) { value.copyTo(image); + if(!m_bSetWH) + { + setMask(m_area,m_line); + m_bSetWH=true; + } } -- Gitblit v1.8.0