From ed223aee5fe5f3b222488549597976f34c679c3d Mon Sep 17 00:00:00 2001
From: pansen <pansen626@sina.com>
Date: 星期二, 05 三月 2019 14:00:47 +0800
Subject: [PATCH] 代码格式化及部分bug修改
---
QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.h | 4
QiaoJiaSystem/VideoServer/QiaoJia/DB/DBStruct.h | 94 ++---
QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp | 100 ++++--
QiaoJiaSystem/DataManagerServer/CMakeLists.txt | 2
QiaoJiaSystem/VideoAnalysFromHC/BaiscSDKAnalysVideo.h | 54 +-
QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.cpp | 2
QiaoJiaSystem/VideoToImageMulth/main.cpp | 24 +
QiaoJiaSystem/VideoAnalysFromHC/main.cpp | 14
QiaoJiaSystem/StructureApp/FaceRpcElement.cpp | 103 +++----
QiaoJiaSystem/DataManagerServer/vss/dao/BaseDao.h | 4
QiaoJiaSystem/StructureApp/AppPipeController.h | 6
QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp | 109 ++++++-
QiaoJiaSystem/FaceSearchServer/main.cpp | 2
QiaoJiaSystem/FaceDetectServer/main_detect.cpp | 2
QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp | 237 +++++++---------
QiaoJiaSystem/VideoToImageMulth/CMakeLists.txt | 6
QiaoJiaSystem/FaceSearchServer/CMakeLists.txt | 2
QiaoJiaSystem/VideoAnalysFromHC/CMakeLists.txt | 3
QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.h | 3
QiaoJiaSystem/CMakeLists.txt | 2
QiaoJiaSystem/StructureApp/FaceExtractElement.cpp | 30 -
21 files changed, 440 insertions(+), 363 deletions(-)
diff --git a/QiaoJiaSystem/CMakeLists.txt b/QiaoJiaSystem/CMakeLists.txt
index a2e7f1d..1db175e 100644
--- a/QiaoJiaSystem/CMakeLists.txt
+++ b/QiaoJiaSystem/CMakeLists.txt
@@ -34,6 +34,6 @@
#add_subdirectory(VideoToImage)
add_subdirectory(UnitTest)
add_subdirectory(VideoToImageMulth)
-add_subdirectory(GB28181DecoderModel)
+#add_subdirectory(GB28181DecoderModel)
#add_subdirectory(FaceSearchDbWithImg)
diff --git a/QiaoJiaSystem/DataManagerServer/CMakeLists.txt b/QiaoJiaSystem/DataManagerServer/CMakeLists.txt
index d6a2220..e36f449 100644
--- a/QiaoJiaSystem/DataManagerServer/CMakeLists.txt
+++ b/QiaoJiaSystem/DataManagerServer/CMakeLists.txt
@@ -154,7 +154,7 @@
HCCore
hcnetsdk
pthread
-# mysqlpp
+ mysqlpp
)
#add_executable(Apptest
diff --git a/QiaoJiaSystem/DataManagerServer/vss/dao/BaseDao.h b/QiaoJiaSystem/DataManagerServer/vss/dao/BaseDao.h
index 1852583..636a246 100644
--- a/QiaoJiaSystem/DataManagerServer/vss/dao/BaseDao.h
+++ b/QiaoJiaSystem/DataManagerServer/vss/dao/BaseDao.h
@@ -134,10 +134,10 @@
// appConfig.getIntProperty("db_port")
// )) {
if (conn->connect(
- "basic_business_table",
+ "EGEyesForVSS",
"127.0.0.1",
"root",
- "root",
+ "123456",
3306
)) {
cout << "connect success" << endl;
diff --git a/QiaoJiaSystem/FaceDetectServer/main_detect.cpp b/QiaoJiaSystem/FaceDetectServer/main_detect.cpp
index e086792..dabd089 100644
--- a/QiaoJiaSystem/FaceDetectServer/main_detect.cpp
+++ b/QiaoJiaSystem/FaceDetectServer/main_detect.cpp
@@ -47,7 +47,7 @@
ENABLEGLOG(GET_STR_CONFIG("logPath").c_str());
auto ich = Ice::initialize(argc, argv);
- appPref.setLongData("gpu.index", 1);
+ appPref.setLongData("gpu.index", 0);
appPref.setLongData("thread.max", 32);
IceRpcServer<FaceDetectServerI> server("faceServer", 10002, "tcp");
diff --git a/QiaoJiaSystem/FaceSearchServer/CMakeLists.txt b/QiaoJiaSystem/FaceSearchServer/CMakeLists.txt
index f214035..26f313c 100644
--- a/QiaoJiaSystem/FaceSearchServer/CMakeLists.txt
+++ b/QiaoJiaSystem/FaceSearchServer/CMakeLists.txt
@@ -73,7 +73,7 @@
../../../BasicPlatForm/libs/Ice-3.7.0/lib64
../../../BasicPlatForm/libs/opencv/lib
../../../BasicPlatForm/libs/ffmpeg/lib
- ../../../BasicPlatForm/libs/Casia_Face/FaceSdk/lib/cpu
+ ../../../BasicPlatForm/libs/Casia_Face/FaceSdk/lib/gpu
../../../BasicPlatForm/libs/crul/lib
../../../BasicPlatForm/libs/jsoncpp/lib
../../../BasicPlatForm/libs/libuuid/lib
diff --git a/QiaoJiaSystem/FaceSearchServer/main.cpp b/QiaoJiaSystem/FaceSearchServer/main.cpp
index bfbebd2..fa14be5 100644
--- a/QiaoJiaSystem/FaceSearchServer/main.cpp
+++ b/QiaoJiaSystem/FaceSearchServer/main.cpp
@@ -21,7 +21,7 @@
DBG("\n\n\nstart\n\n");
- appPref.setLongData("thread.max", 32);
+ appPref.setLongData("thread.max", 16);
//#todo
// appPref.setStringData("ipAdd", "192.168.1.185");
diff --git a/QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.cpp b/QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.cpp
index 8bc24d3..d2b30cd 100644
--- a/QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.cpp
+++ b/QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.cpp
@@ -6,7 +6,7 @@
#include <qt5/QtCore/QDateTime>
#include <basic/util/app/AppPreference.hpp>
#include "VideoCaptureElementWithRtp.h"
-#include "RtspAnalysManager.h"
+#include <VideoToImageMulth/RtspAnalysManager.h>
//std::string BASICGB28181::VideoCaptureElementWithRtp::m_chanPubID;
//BASICGB28181::FFmpegDecoderJPG BASICGB28181::VideoCaptureElementWithRtp::m_fFmpegDecoderJPG;
diff --git a/QiaoJiaSystem/StructureApp/AppPipeController.h b/QiaoJiaSystem/StructureApp/AppPipeController.h
index 2018f12..367af7a 100644
--- a/QiaoJiaSystem/StructureApp/AppPipeController.h
+++ b/QiaoJiaSystem/StructureApp/AppPipeController.h
@@ -116,10 +116,10 @@
int m_index;
std::string m_camId;
std::string m_folderPath;
- Json::Value m_json;
- Json::Value m_json_Record;
+// Json::Value m_json;
+// Json::Value m_json_Record;
+// Json::FastWriter m_fastWriter;
- Json::FastWriter m_fastWriter;
FastFdsWithLock *fdfsClient;
bool bRecordVideoEnable;
diff --git a/QiaoJiaSystem/StructureApp/FaceExtractElement.cpp b/QiaoJiaSystem/StructureApp/FaceExtractElement.cpp
index b0eab37..679aaf6 100644
--- a/QiaoJiaSystem/StructureApp/FaceExtractElement.cpp
+++ b/QiaoJiaSystem/StructureApp/FaceExtractElement.cpp
@@ -38,8 +38,7 @@
appPref.getIntData("faceSear.port"), "tcp"),
// faceSearchRpcClient("faceCmServer", "", 10004, "tcp")
m_sdkRule(rule),
- m_rpcClient("RtspAnalysServer", "127.0.0.1",appPref.getIntData("RpcServerPort"),"tcp")
-{
+ m_rpcClient("RtspAnalysServer", "127.0.0.1", appPref.getIntData("RpcServerPort"), "tcp") {
sharedMemory = new QSharedMemory(QString(shareMemoryName.c_str()));
if (!sharedMemory->create(4608 * 2592 * 4)) {
sharedMemory->attach();
@@ -66,8 +65,7 @@
std::vector<FaceToExtract> faceExtractQueueTmp;
{
std::lock_guard<std::mutex> lg(imageQueueMutex);
- if (faceExtractQueue.empty())
- {
+ if (faceExtractQueue.empty()) {
ERR("faceExtractQueue.empty ");
return;
}
@@ -106,7 +104,7 @@
// cv::imwrite(string1, image);
// }
if (feature.empty()) {
- INFO("No Face Find: "<<getProperty("imgKey"));
+ INFO("No Face Find: " << getProperty("imgKey"));
continue;
}
features.clear();
@@ -119,8 +117,8 @@
CvUtil::cvMat2Buffer(faceExtractQueueTmp[i].faceImages[j], buffer);
std::string strImgUrlTmp = "";
fdfsClient->fastFds->uploadFile(buffer, strImgUrlTmp, "jpg");
- // strImgUrl.append(fdfsClient->fastFds->getIp() + "/" + strImgUrlTmp);
- DBG("strImgUrlTmp="<<strImgUrlTmp);
+ // strImgUrl.append(fdfsClient->fastFds->getIp() + "/" + strImgUrlTmp);
+ DBG("strImgUrlTmp=" << strImgUrlTmp);
strImgUrl.clear();
strImgUrl = strImgUrlTmp;
// strImgUrl.append("/").append(strImgUrlTmp);
@@ -151,7 +149,7 @@
t_json["personPicUrl"] = "";//浜哄憳鍥剧墖 store
t_json["picAddress"] = getProperty("str_addr");//鎶撴媿鍦板潃
- DBG("picAddress="<< t_json["picAddress"] );
+ DBG("picAddress=" << t_json["picAddress"]);
t_json["picMaxUrl"] = "";//澶у浘璺緞
t_json["picLocalUrl"] = "";//鏈湴璺緞
t_json["picSmUrl"] = strImgUrl;//浜哄憳鎶撳皬鍥�
@@ -163,7 +161,8 @@
t_json["content"] = "";
//t_json["viType"] = "2";//鍙湁4绉嶇被鍨� 1:personface 2:personbody 3:car 4:bicycle 5:none 鏈煡绫诲瀷
- t_json["sdkType"] = std::to_string(m_sdkRule.nSdkType);//鍙湁4绉嶇被鍨� 1:personface 2:personbody 3:car 4:bicycle 5:none 鏈煡绫诲瀷
+ t_json["sdkType"] = std::to_string(
+ m_sdkRule.nSdkType);//鍙湁4绉嶇被鍨� 1:personface 2:personbody 3:car 4:bicycle 5:none 鏈煡绫诲瀷
t_json["personIsHub"] = "4";//1: 鎶ヨ 2: 鍙枒 3: 瀹夊叏 4: 鏈煡
@@ -219,22 +218,19 @@
t_json["indevicename"] = appPref.getStringData("fxDevNAME");
std::string strImageKey = faceExtractQueueTmp[i].scoredRects[j].properties["imgKey"];
- INFO("SaveImageKey To ES: "<<strImageKey);
+ INFO("SaveImageKey To ES: " << strImageKey);
t_json["imgKey"] = strImageKey;
try {
auto server = m_rpcClient.getServer();
- if (!server)
- {
+ if (!server) {
ERR("server is null");
//return;
}
- INFO("Record Video "<<strImageKey);
+ INFO("Record Video " << strImageKey);
server->recordVideo(strImageKey);
- }
- catch (std::exception &e)
- {
- ERR("Record Video Err: "<<strImageKey <<" Message: "<<e.what());
+ } catch (std::exception &e) {
+ ERR("Record Video Err: " << strImageKey << " Message: " << e.what());
//return;
}
auto faceSearchServer = faceSearchRpcClient.getServer();
diff --git a/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp b/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp
index 9ab6f01..8ff149f 100644
--- a/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp
+++ b/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp
@@ -6,6 +6,7 @@
#include <basic/util/opencv/CvUtil.h>
#include <QJsonDocument>
#include <QJsonObject>
+
#define GETSCORE(IDENT) appPref.getFloatData(IDENT) == -1 ? 95 : appPref.getFloatData(IDENT);
//************************************
@@ -30,7 +31,7 @@
}
//todo appPref.getStringData("face.detect.proxy")
-FaceRpcElement::FaceRpcElement(string shareMemoryName,const SdkRule& rule) :
+FaceRpcElement::FaceRpcElement(string shareMemoryName, const SdkRule &rule) :
//#todo
rpcClient(appPref.getStringData("faceDete.proxy"), appPref.getStringData("faceDete.ip"),
appPref.getIntData("faceDete.port"), "tcp"),
@@ -40,8 +41,7 @@
trackingTrigger(nullptr),
m_sdkRule(rule),
m_bIsMask(true),
- m_bSetWH(false)
-{
+ m_bSetWH(false) {
sharedMemory = new QSharedMemory(QString(shareMemoryName.c_str()));
if (!sharedMemory->create(4608 * 2592 * 4)) {
sharedMemory->attach();
@@ -50,21 +50,21 @@
// string t_camIdex = getProperty("dev_id");
//#todo
- string t_camIdex;
- if (shareMemoryName.find("/")) {
- string_replace(shareMemoryName, "//", "/");
- auto dev_pos = shareMemoryName.find("/cut/") + 5;
- auto ch_pos = shareMemoryName.find("/", dev_pos) + 1;
- auto str_device_id = shareMemoryName.substr(dev_pos, ch_pos - dev_pos - 1);
- auto str_ch_id = shareMemoryName.substr(ch_pos, shareMemoryName.find("/", ch_pos) - ch_pos);
- t_camIdex.append(str_device_id).append(str_ch_id);
- } else {
- t_camIdex = shareMemoryName.substr(0, shareMemoryName.rfind("faceRpc"));
- }
+// string t_camIdex;
+// if (shareMemoryName.find("/")) {
+// string_replace(shareMemoryName, "//", "/");
+// auto dev_pos = shareMemoryName.find("/cut/") + 5;
+// auto ch_pos = shareMemoryName.find("/", dev_pos) + 1;
+// auto str_device_id = shareMemoryName.substr(dev_pos, ch_pos - dev_pos - 1);
+// auto str_ch_id = shareMemoryName.substr(ch_pos, shareMemoryName.find("/", ch_pos) - ch_pos);
+// t_camIdex.append(str_device_id).append(str_ch_id);
+// } else {
+// t_camIdex = shareMemoryName.substr(0, shareMemoryName.rfind("faceRpc"));
+// }
float t_score = m_sdkRule.nQuality;
- DBG(" TESTCODE getValue" << t_camIdex << " " << t_score << " " << t_score / 100);
+ DBG(" TESTCODE getValue" << shareMemoryName << " " << t_score << " " << t_score / 100);
t_score = t_score / 100;
@@ -89,8 +89,7 @@
// string string1(AppUtil::getTimeString() + "-ff2" + getProperty("time") + ".jpg");
// cv::imwrite(string1, image);
// }
- if(!isInWeek(m_sdkRule.weekRuleVec))
- {
+ if (!isInWeek(m_sdkRule.weekRuleVec)) {
ERR("In Week");
return;
}
@@ -110,11 +109,10 @@
int y = face.rcFace.top;
int w = face.rcFace.right - face.rcFace.left;
int h = face.rcFace.bottom - face.rcFace.top;
- QRect re(x,y,w,h);
+ QRect re(x, y, w, h);
QPoint center = re.center();
- if(m_bIsMask && !mPolygon.containsPoint(center,Qt::OddEvenFill))
- {
- ERR("m_bIsMask :"<<m_bIsMask)
+ if (m_bIsMask && !mPolygon.containsPoint(center, Qt::OddEvenFill)) {
+ ERR("m_bIsMask :" << m_bIsMask)
return;
}
scoredRect.rect = {x, y, w, h};
@@ -131,19 +129,18 @@
trackingTrigger->getLastRect().properties["time"] = getProperty("time");
trackingTrigger->getLastRect().properties["detectscore"] = scoredRect.score;
trackingTrigger->getLastRect().properties["imgKey"] = getProperty("imgKey");
- INFO("FaceRpcElement SaveToES: "<<getProperty("imgKey"));
+ INFO("FaceRpcElement SaveToES: " << getProperty("imgKey"));
triggerFaces.push_back(face);
triggerMats.push_back(image(
CvUtil::zoomRectEqual(scoredRect.rect, 1.5, 1.5) & cv::Rect(0, 0, image.cols, image.rows)).clone());
triggerScoredRects.push_back(trackingTrigger->getLastRect());
} else {
- INFO("No Face Find: "<<getProperty("imgKey"));
+ INFO("No Face Find: " << getProperty("imgKey"));
// DBG("trackingTrigger->triggerOnce(scoredRect) is false ");
}
}
- if(faces.empty())
- {
- INFO("No Face Find: "<<getProperty("imgKey"));
+ if (faces.empty()) {
+ INFO("No Face Find: " << getProperty("imgKey"));
}
trackingTrigger->triggerLine();
// DBG("faces.size " << faces.size());
@@ -190,60 +187,54 @@
image = cv::Mat(value.rows, value.cols, CV_8UC3, sharedMemory->data());
}
value.copyTo(image);
- if(!m_bSetWH)
- {
+ if (!m_bSetWH) {
setMask(m_sdkRule.strAreas.toStdString());
- m_bSetWH=true;
+ m_bSetWH = true;
}
}
bool FaceRpcElement::getTriggerState() const {
return m_triggerElement.getTriggerState();
}
-void FaceRpcElement::setMask(std::string mask)
-{
+
+void FaceRpcElement::setMask(std::string mask) {
QJsonArray arrayAreas = getJsonArrayFromQString(QString::fromStdString(mask));
- if(arrayAreas.isEmpty())
- {
- m_bIsMask=false;
+ if (arrayAreas.isEmpty()) {
+ m_bIsMask = false;
return;//do not detect
}
- 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)
- {
+ 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) {
QJsonValue jsonValue = arrayAreas[i];
QJsonObject obj = jsonValue.toObject();
- int x = obj.value("x").toDouble() *sizeW ;
- int y = obj.value("y").toDouble() *sizeH;
- mPolygon<<(QPoint(x,y));
- DBG("width="<<sizeW);
- DBG("height="<<sizeH);
+ int x = obj.value("x").toDouble() * sizeW;
+ int y = obj.value("y").toDouble() * sizeH;
+ mPolygon << (QPoint(x, y));
+ DBG("width=" << sizeW);
+ DBG("height=" << sizeH);
}
}
-QJsonArray FaceRpcElement::getJsonArrayFromQString(const QString& strJson)
-{
+
+QJsonArray FaceRpcElement::getJsonArrayFromQString(const QString &strJson) {
QJsonDocument jsonDocument = QJsonDocument::fromJson(strJson.toLocal8Bit());
- if( jsonDocument.isNull() ){
- DBG("please check the string"<< strJson.toStdString());
+ if (jsonDocument.isNull()) {
+ DBG("please check the string" << strJson.toStdString());
return QJsonArray();
}
QJsonArray jsonArray = jsonDocument.array();
return jsonArray;
}
-bool FaceRpcElement::isInWeek(const std::vector<LActRuleWeekRecord>& ruleWeek)
-{
+
+bool FaceRpcElement::isInWeek(const std::vector<LActRuleWeekRecord> &ruleWeek) {
int nWeek = QDate::currentDate().dayOfWeek();
- for(int i = 0;i < ruleWeek.size();++i)
- {
- if(ruleWeek[i].m_nType == nWeek)
- {
+ for (int i = 0; i < ruleWeek.size(); ++i) {
+ if (ruleWeek[i].m_nType == nWeek) {
QString strCurrent = QDateTime::currentDateTime().toString("hh:mm");
- if(strCurrent >= ruleWeek[i].m_strBegin && strCurrent <= ruleWeek[i].m_strEnd)
- {
- return true;
+ if (strCurrent >= ruleWeek[i].m_strBegin && strCurrent <= ruleWeek[i].m_strEnd) {
+ return true;
}
}
}
diff --git a/QiaoJiaSystem/VideoAnalysFromHC/BaiscSDKAnalysVideo.h b/QiaoJiaSystem/VideoAnalysFromHC/BaiscSDKAnalysVideo.h
index 622bc1e..991d212 100644
--- a/QiaoJiaSystem/VideoAnalysFromHC/BaiscSDKAnalysVideo.h
+++ b/QiaoJiaSystem/VideoAnalysFromHC/BaiscSDKAnalysVideo.h
@@ -23,38 +23,38 @@
using TASK_FUNCTION = std::function<void(std::shared_ptr<finishSdkHdlManage> &, int)>;
public:
BaiscSDKAnalysVideo(TASK_FUNCTION task_f = nullptr) : m_task_function(task_f) {
- resetFdfs();
- {
- std::thread httpServer([&]() {
- HttpSrvRetRecieve httpSrvRetRecieve("0.0.0.0", 9090, 1);
- httpSrvRetRecieve.setInfo("^/resetFdfs$", "POST", std::bind(&BaiscSDKAnalysVideo::resetFdfs, this,
- std::placeholders::_1,
- std::placeholders::_2,
- std::placeholders::_3));
- httpSrvRetRecieve.start();
- httpSrvRetRecieve.waitForShutDown();
- });
- httpServer.detach();
- }
+// resetFdfs();
+// {
+// std::thread httpServer([&]() {
+// HttpSrvRetRecieve httpSrvRetRecieve("0.0.0.0", 9090, 1);
+// httpSrvRetRecieve.setInfo("^/resetFdfs$", "POST", std::bind(&BaiscSDKAnalysVideo::resetFdfs, this,
+// std::placeholders::_1,
+// std::placeholders::_2,
+// std::placeholders::_3));
+// httpSrvRetRecieve.start();
+// httpSrvRetRecieve.waitForShutDown();
+// });
+// httpServer.detach();
+// }
}
~BaiscSDKAnalysVideo() {
}
- std::string resetFdfs(std::string ip = "", unsigned int port = 0, std::string content = "") {
-
- std::thread reset([&]() {
- fdfsClient.rwLock.rdlock();
- if (fdfsClient.fastFds != nullptr) {
- delete fdfsClient.fastFds;
- }
- fdfsClient.fastFds = new FastFds("fastDfsClient.conf");
- fdfsClient.rwLock.unlock();
- });
- reset.detach();
-
- return "";
- }
+// std::string resetFdfs(std::string ip = "", unsigned int port = 0, std::string content = "") {
+//
+// std::thread reset([&]() {
+// fdfsClient.rwLock.rdlock();
+// if (fdfsClient.fastFds != nullptr) {
+// delete fdfsClient.fastFds;
+// }
+// fdfsClient.fastFds = new FastFds("fastDfsClient.conf");
+// fdfsClient.rwLock.unlock();
+// });
+// reset.detach();
+//
+// return "";
+// }
private:
virtual void doFunc(std::shared_ptr<getsdkHdlManage> spPacket) {
diff --git a/QiaoJiaSystem/VideoAnalysFromHC/CMakeLists.txt b/QiaoJiaSystem/VideoAnalysFromHC/CMakeLists.txt
index d0067c6..0d4e6e6 100644
--- a/QiaoJiaSystem/VideoAnalysFromHC/CMakeLists.txt
+++ b/QiaoJiaSystem/VideoAnalysFromHC/CMakeLists.txt
@@ -9,6 +9,7 @@
set(CMAKE_BUILD_TYPE debug)
add_compile_options(-fPIC)
add_definitions(-DGLOG)
+add_definitions(-DGB28181)
add_definitions(-DDEBUG_ERR -DDEBUG_INFO -fpermissive)
SET(SOURCES
@@ -161,7 +162,7 @@
# cudart
# cublas
opencv_world
- jsoncpp
+# jsoncpp
curl
uuid
pthread
diff --git a/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp b/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp
index 0058a02..efb8645 100644
--- a/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp
+++ b/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp
@@ -10,24 +10,24 @@
//RtspAnalysElement::RtspAnalysElement() {}
-std::string RtspAnalysElement::resetFdfs(std::string ip, unsigned int port, std::string content) {
-
- std::thread reset([&]() {
- fdfsClient.rwLock.rdlock();
- if (fdfsClient.fastFds != nullptr) {
- delete fdfsClient.fastFds;
- }
- fdfsClient.fastFds = new FastFds("fastDfsClient.conf");
- fdfsClient.rwLock.unlock();
- });
- reset.detach();
-
- return "";
-}
+//std::string RtspAnalysElement::resetFdfs(std::string ip, unsigned int port, std::string content) {
+//
+// std::thread reset([&]() {
+// fdfsClient.rwLock.rdlock();
+// if (fdfsClient.fastFds != nullptr) {
+// delete fdfsClient.fastFds;
+// }
+// fdfsClient.fastFds = new FastFds("fastDfsClient.conf");
+// fdfsClient.rwLock.unlock();
+// });
+// reset.detach();
+//
+// return "";
+//}
RtspAnalysElement::RtspAnalysElement(LDBTool *_dbTool) : m_lDBTool(_dbTool), maxCount(50), currentCount(0) {
init();
- resetFdfs();
+// resetFdfs();
{
// std::thread httpServer([&]() {
// //#todo port
@@ -68,8 +68,9 @@
}
void RtspAnalysElement::init() {
- auto lst = m_lDBTool->searchCamDevTableAll();
Record_Config lst_dev = m_lDBTool->searchConfigTableWithinServerInfo();
+#ifndef GB28181
+ auto lst = m_lDBTool->searchCamDevTableAll();
appPref.setIntData("n_cut_max_duration", lst_dev.n_cut_max_duration);
appPref.setIntData("n_cut_min_duration", lst_dev.n_cut_min_duration);
@@ -79,19 +80,17 @@
int CamCount = appPref.getIntData("CamStep");
auto itor = lst.begin();
- if(startCamNO >= lst.size())
- {
+ if (startCamNO >= lst.size()) {
ERR("startCamNO > lst.size()");
return;
}
- for(int i=0; i < startCamNO; i++){
+ for (int i = 0; i < startCamNO; i++) {
itor++;
}
for (int i = 0; i < CamCount; i++) {
- if (itor == lst.end())
- {
+ if (itor == lst.end()) {
ERR("itor == lst.end()");
return;
}
@@ -104,16 +103,13 @@
rule.second.strAddr = itor->str_addr;
rule.second.weekRuleVec = m_lDBTool->searchCameraWeekRuleByCamId(itor->str_cam_dev_id, rule.first);
- if(rule.second.nSdkType == PerStaticSdk)
- {
- float temp=1-(float)(rule.second.nThreshold)/100;
- rule.second.fSensitivity=(75+25*temp)/100;
+ if (rule.second.nSdkType == PerStaticSdk) {
+ float temp = 1 - (float) (rule.second.nThreshold) / 100;
+ rule.second.fSensitivity = (75 + 25 * temp) / 100;
- }
- else if(rule.second.nSdkType != FaceSdk)
- {
- float temp=1-(float)(rule.second.nThreshold)/100;
- rule.second.fSensitivity=(5+90*temp)/100;
+ } else if (rule.second.nSdkType != FaceSdk) {
+ float temp = 1 - (float) (rule.second.nThreshold) / 100;
+ rule.second.fSensitivity = (5 + 90 * temp) / 100;
}
// if (rule.second.nThreshold < 5 )
// {
@@ -140,7 +136,6 @@
addCamera(t_camIdex, ruleMap);
itor++;
}
-
// for (auto item : lst) {
// std::string t_camIdex = item.str_cam_dev_id.toStdString();
// std::string rtsp_url = rtspAddrBuild(item.str_ip.toStdString(), 554, item.str_username.toStdString(),
@@ -190,6 +185,49 @@
ERR("searchCamDevTableAll size is 0");
}
+#else
+ auto lst = m_lDBTool->searchCamDevTableByType(1);
+
+ appPref.setIntData("n_cut_max_duration", lst_dev.n_cut_max_duration);
+ appPref.setIntData("n_cut_min_duration", lst_dev.n_cut_min_duration);
+ if (lst.size() > 0) {
+// Json::Value json;
+
+ for (auto &item : lst) {
+ std::string t_camIdex = item.str_cam_dev_id.toStdString();
+ std::string rtsp_url = "GB28181";
+// rtspAddrBuild(item.str_ip.toStdString(), 554, item.str_username.toStdString(),
+// item.str_password.toStdString(), item.str_brand.toStdString());
+ SdkRuleMap ruleMap = m_lDBTool->searchSdkRuleByCamId(item.str_cam_dev_id);
+ for (auto &rule:ruleMap) {
+
+ rule.second.strAddr = item.str_addr;
+ rule.second.weekRuleVec = m_lDBTool->searchCameraWeekRuleByCamId(item.str_cam_dev_id, rule.first);
+
+ if (rule.second.nSdkType == PerStaticSdk) {
+ float temp = 1 - (float) (rule.second.nThreshold) / 100;
+ rule.second.fSensitivity = (75 + 25 * temp) / 100;
+
+ } else if (rule.second.nSdkType != FaceSdk) {
+ float temp = 1 - (float) (rule.second.nThreshold) / 100;
+ rule.second.fSensitivity = (5 + 90 * temp) / 100;
+ }
+ DBG("fSensitivity" << rule.second.fSensitivity);
+ }
+ appPref.setStringData(t_camIdex + "rtsp", rtsp_url);
+ // appPref.setStringData(t_camIdex+"addr", item.str_addr.toStdString());
+// json["rtsp"] = rtsp_url;
+ // json["addr"] = item.str_addr.toStdString();
+
+ INFO("cam add is " << item.str_addr.toStdString());
+
+ addCamera(t_camIdex, ruleMap);
+ }
+ } else {
+ ERR("searchCamDevTableAll size is 0");
+ }
+
+#endif
}
RtspAnalysElement::~RtspAnalysElement() {
diff --git a/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.h b/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.h
index 21db01e..d943d1c 100644
--- a/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.h
+++ b/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.h
@@ -36,11 +36,11 @@
private:
void init();
- std::string resetFdfs(std::string ip = "", unsigned int port = 0, std::string content = "");
+// std::string resetFdfs(std::string ip = "", unsigned int port = 0, std::string content = "");
static std::vector<int> chnString2Vec(std::string str_list);
- void setDataByType(Json::Value& json,const SdkRule& rule);
+// void setDataByType(Json::Value& json,const SdkRule& rule);
private:
LDBTool *m_lDBTool;
diff --git a/QiaoJiaSystem/VideoAnalysFromHC/main.cpp b/QiaoJiaSystem/VideoAnalysFromHC/main.cpp
index a82bf09..3a39a22 100644
--- a/QiaoJiaSystem/VideoAnalysFromHC/main.cpp
+++ b/QiaoJiaSystem/VideoAnalysFromHC/main.cpp
@@ -66,9 +66,15 @@
int main(int argc, char **argv) {
SAVE_APP_ARGS
- std::cout<<__DATE__<<" "<<__TIME__<<std::endl;
+ std::cout << __DATE__ << " " << __TIME__ << std::endl;
#ifdef GLOG
- ENABLEGLOG(GET_STR_CONFIG("logPath").c_str());
+ ENABLEGLOG(GET_STR_CONFIG("logPath").c_str());
+#endif
+
+#ifndef GB28181
+ DBG("no GB28181");
+#else
+ DBG("hava GB28181");
#endif
appPref.setLongData("gpu.index", 0);
@@ -77,7 +83,7 @@
//todo
appPref.setIntData("CamStart", atoi(argv[1]));
appPref.setIntData("CamStep", atoi(argv[2]));
- appPref.setIntData("RpcServerPort",atoi(argv[3]));
+ appPref.setIntData("RpcServerPort", atoi(argv[3]));
//#todo get from config File
// appPref.setStringData("ipAdd", "192.168.1.185");
@@ -138,7 +144,7 @@
bool loopRet = true;
while (loopRet) {
- switch (_dbTool.searchDevTypeFromConfigTable()) {
+ switch (_dbTool.searchDevTypeFromConfigTable()) {
case 0: {
DBG("case 0");
diff --git a/QiaoJiaSystem/VideoServer/QiaoJia/DB/DBStruct.h b/QiaoJiaSystem/VideoServer/QiaoJia/DB/DBStruct.h
index 684890d..0ae7935 100644
--- a/QiaoJiaSystem/VideoServer/QiaoJia/DB/DBStruct.h
+++ b/QiaoJiaSystem/VideoServer/QiaoJia/DB/DBStruct.h
@@ -7,10 +7,9 @@
#include <QDateTime>
#include <QVector>
#include <map>
-struct Record_Storage_Dev
-{
- Record_Storage_Dev()
- {
+
+struct Record_Storage_Dev {
+ Record_Storage_Dev() {
n_id = 0;
str_storage_dev_id = "";
str_dev_name = "";
@@ -47,10 +46,8 @@
QString str_reserved;//鎴浘鍦板潃
};
-struct Record_Cam_Dev
-{
- Record_Cam_Dev()
- {
+struct Record_Cam_Dev {
+ Record_Cam_Dev() {
n_id = 0;
str_name = "";
str_addr = "";
@@ -63,6 +60,7 @@
str_password = "";
str_brand = "";
str_reserved = "";
+ n_type = -1;
}
int n_id;//鑷id
@@ -77,13 +75,12 @@
QString str_password;//鎽勫儚鏈哄瘑鐮�
QString str_brand;//鎽勫儚鏈哄搧鐗�
QString str_reserved;//棰勭暀
+ int n_type;//棰勭暀
};
-struct Record_Cam_Chn
-{
+struct Record_Cam_Chn {
- Record_Cam_Chn()
- {
+ Record_Cam_Chn() {
n_id = 0;
str_storage_dev_id = "";
n_chn = 0;
@@ -121,8 +118,7 @@
QString str_reserved;//棰勭暀
};
-struct Record_Load_File_info
-{
+struct Record_Load_File_info {
// Record_Load_File_info()
// {
@@ -146,8 +142,7 @@
QString str_reserved;//棰勭暀
};
-struct Record_Cut_Video_info
-{
+struct Record_Cut_Video_info {
// Record_Cut_Video_info()
// {
@@ -173,8 +168,7 @@
QString str_reserved;//棰勭暀
};
-struct Record_Sdk_Hdl_info
-{
+struct Record_Sdk_Hdl_info {
// Record_Sdk_Hdl_info()
// {
@@ -196,11 +190,9 @@
QString str_reserved;//棰勭暀
};
-struct Record_Chn_Sdk
-{
+struct Record_Chn_Sdk {
- Record_Chn_Sdk()
- {
+ Record_Chn_Sdk() {
n_id = 0;
str_storage_dev_id = "";
n_chn = 0;
@@ -221,11 +213,9 @@
QString str_reserved;//棰勭暀
};
-struct Record_Cam_Sdk
-{
+struct Record_Cam_Sdk {
- Record_Cam_Sdk()
- {
+ Record_Cam_Sdk() {
n_id = 0;
str_cam_dev_id = "";
str_sdks = "";
@@ -242,10 +232,8 @@
QString str_reserved;//棰勭暀
};
-struct Record_Config
-{
- Record_Config()
- {
+struct Record_Config {
+ Record_Config() {
str_alarm_ip = "";
n_alarm_port = 0;
str_web_pic_ip = "";
@@ -257,7 +245,7 @@
n_dev_type = 0;
str_reserved = "";
dev_id = "";
- dev_name= "";
+ dev_name = "";
}
QString str_alarm_ip;//鎶ヨ鏈嶅姟鍣╥p
@@ -274,16 +262,15 @@
QString dev_name;
};
-struct LActRuleWeekRecord
-{
- LActRuleWeekRecord()
- {
- m_strCamId="";
- m_nSdkType=0;
+struct LActRuleWeekRecord {
+ LActRuleWeekRecord() {
+ m_strCamId = "";
+ m_nSdkType = 0;
m_nType = 0;
m_strBegin = "";
m_strEnd = "";
}
+
QString m_strCamId;
int m_nSdkType;
int m_nType; //鍛ㄥ嚑
@@ -292,27 +279,26 @@
};
-struct SdkRule
-{
- SdkRule()
- {
- nIsRun=0;
- nSdkType = 0 ;
+struct SdkRule {
+ SdkRule() {
+ nIsRun = 0;
+ nSdkType = 0;
strCamId = "";
strAreas = "";
strLine = "";
strImageUrl = "";
nTriggerTolerance = 0;
- nTriggerDelay=0;
- nQuality=0;
- nThreshold=0;
+ nTriggerDelay = 0;
+ nQuality = 0;
+ nThreshold = 0;
nAlarmNumUpperLimit = 0;
nAlarmNumLowerLimit = 0;
- fSensitivity=0;
- strExAreas="";
- strLine="";
- strAddr="";
+ fSensitivity = 0;
+ strExAreas = "";
+ strLine = "";
+ strAddr = "";
}
+
int nSdkType;
QString strCamId;
QString strAreas; //鐩戞祴鍖哄煙
@@ -333,10 +319,10 @@
std::vector<LActRuleWeekRecord> weekRuleVec;
};
-typedef std::map<int,SdkRule> SdkRuleMap;
-enum SdkType
-{
- SdkTypeStart=0,
+
+typedef std::map<int, SdkRule> SdkRuleMap;
+enum SdkType {
+ SdkTypeStart = 0,
FaceSdk,
CarSdk,
YoloSdk, //浜轰綋
diff --git a/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp b/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp
index 42f22eb..8070b13 100644
--- a/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp
+++ b/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp
@@ -406,7 +406,7 @@
ERR("deleteLDeviceTable err ,Database Error: " \
<< pModel_cam.lastError().text().toStdString() \
<< pModel_sdk.lastError().text().toStdString() \
- << pModel_week.lastError().text().toStdString() );
+ << pModel_week.lastError().text().toStdString());
// QMessageBox::warning(NULL,QObject::tr("deleteLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
return false;
}
@@ -453,8 +453,8 @@
return false;
}
}
-bool LDBTool::updateCamDevSnapshot(const QString& strIp,const QString& imgUrl)
-{
+
+bool LDBTool::updateCamDevSnapshot(const QString &strIp, const QString &imgUrl) {
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
QSqlTableModel pModel(NULL, m_db);
pModel.setTable("cam_dev");
@@ -467,25 +467,22 @@
rec.setValue("reserved", imgUrl);
int rowCount = pModel.rowCount();
- if (rowCount > 0)
- {
+ if (rowCount > 0) {
pModel.setRecord(0, rec);//TODO
}
m_db.transaction();//寮�濮嬩簨鍔℃搷浣�
- if (pModel.submitAll())
- {
+ if (pModel.submitAll()) {
m_db.commit();//鎻愪氦
return true;
- }
- else
- {
+ } else {
m_db.rollback();//鍥炴粴
ERR("updateCamDevSnapshot err ,Database Error: " << pModel.lastError().text().toStdString());
return false;
}
}
+
int LDBTool::searchCamDevNumber(void) {
QSqlTableModel pModel(NULL, m_db);
pModel.setTable("cam_dev");
@@ -530,8 +527,8 @@
return lst;
}
-bool LDBTool::searchCamDevByCamId(QString strCamId)
-{
+
+bool LDBTool::searchCamDevByCamId(QString strCamId) {
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
std::list<Record_Cam_Dev> lst;
QSqlTableModel pModel(NULL, m_db);
@@ -2435,7 +2432,7 @@
//config 淇敼瑁佸壀瑙嗛鏃堕暱
-bool LDBTool::updateConfigTableByCutDuration(int n_cut_max_duration,int n_cut_min_duration) {
+bool LDBTool::updateConfigTableByCutDuration(int n_cut_max_duration, int n_cut_min_duration) {
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
QSqlTableModel pModel(NULL, m_db);
pModel.setTable("config");
@@ -2492,17 +2489,14 @@
lRec.dev_name = rec.value("dev_name").toString();
}
lRec.dev_id = QString::fromStdString(appConfig.getStringProperty("DEV_ID"));
- if(lRec.n_cut_max_duration == 0)
- {
+ if (lRec.n_cut_max_duration == 0) {
lRec.n_cut_max_duration = 20;
}
- if(lRec.n_cut_min_duration == 0)
- {
+ if (lRec.n_cut_min_duration == 0) {
lRec.n_cut_min_duration = 4;
}
return lRec;
}
-
bool LDBTool::insertRecordVedioPath(QString pathKey, QString filePath) {
@@ -2580,76 +2574,68 @@
}
+bool LDBTool::updateCameraWeekRule(const LActRuleWeekRecord &weekRule) {
+ QMutexLocker mutexLocker(&m_mutexVisit);//TODO
+ QSqlTableModel pModel(NULL, m_db);
+ pModel.setTable("rule_week");
+ pModel.setFilter(QObject::tr("camera_id = '%1' and type='%2' and sdk_type='%3'").arg(weekRule.m_strCamId).arg(
+ weekRule.m_nType).arg(weekRule.m_nSdkType));
+ pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
+ pModel.select();
+ QSqlRecord rec = pModel.record(0);
+ //rec.setGenerated("id", false);
+ rec.setValue("camera_id", weekRule.m_strCamId);
+ rec.setValue("sdk_type", weekRule.m_nSdkType);
+ rec.setValue("type", weekRule.m_nType);
+ rec.setValue("begin_time", weekRule.m_strBegin);
+ rec.setValue("end_time", weekRule.m_strEnd);
+
+ int rowCount = pModel.rowCount();
+ if (rowCount == 0) {
+ pModel.insertRecord(-1, rec);
+ } else if (rowCount > 0) {
+ pModel.setRecord(0, rec);//TODO
+ }
+
+ m_db.transaction();//寮�濮嬩簨鍔℃搷浣�
+
+ if (pModel.submitAll()) {
+ m_db.commit();//鎻愪氦
+ return true;
+ } else {
+ m_db.rollback();//鍥炴粴
+ ERR("updateCameraWeekRule ,pModel_load Error: " << pModel.lastError().text().toStdString());
+
+ return false;
+ }
+}
+
+std::vector<LActRuleWeekRecord> LDBTool::searchCameraWeekRuleByCamId(const QString &camId, const int &sdkType) {
+ std::vector<LActRuleWeekRecord> vecWeek;
+ QMutexLocker mutexLocker(&m_mutexVisit);//TODO
+ QSqlTableModel pModel(NULL, m_db);
+ pModel.setTable("rule_week");
+ pModel.setFilter(QObject::tr("camera_id = '%1' and sdk_type='%2'").arg(camId).arg(sdkType));
+ pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
+ pModel.select();
+
+ int rowCount = pModel.rowCount();
+ for (int i = 0; i < rowCount; ++i) {
+ LActRuleWeekRecord lActRuleWeekRec;
+ QSqlRecord rec = pModel.record(i);
+ lActRuleWeekRec.m_nSdkType = rec.value("sdk_type").toInt();
+ lActRuleWeekRec.m_nType = rec.value("type").toInt();
+ lActRuleWeekRec.m_strBegin = rec.value("begin_time").toString();
+ lActRuleWeekRec.m_strEnd = rec.value("end_time").toString();
+ lActRuleWeekRec.m_strCamId = rec.value("camera_id").toString();
+ vecWeek.push_back(lActRuleWeekRec);
+ }
+
+ return vecWeek;
+}
- bool LDBTool::updateCameraWeekRule(const LActRuleWeekRecord& weekRule)
- {
- QMutexLocker mutexLocker(&m_mutexVisit);//TODO
- QSqlTableModel pModel(NULL, m_db);
- pModel.setTable("rule_week");
- pModel.setFilter(QObject::tr("camera_id = '%1' and type='%2' and sdk_type='%3'").arg(weekRule.m_strCamId).arg(weekRule.m_nType).arg(weekRule.m_nSdkType));
- pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
- pModel.select();
- QSqlRecord rec = pModel.record(0);
- //rec.setGenerated("id", false);
- rec.setValue("camera_id",weekRule.m_strCamId);
- rec.setValue("sdk_type",weekRule.m_nSdkType);
- rec.setValue("type", weekRule.m_nType);
- rec.setValue("begin_time", weekRule.m_strBegin);
- rec.setValue("end_time",weekRule.m_strEnd);
-
- int rowCount = pModel.rowCount();
- if (rowCount == 0)
- {
- pModel.insertRecord(-1, rec);
- }
- else if (rowCount > 0)
- {
- pModel.setRecord(0, rec);//TODO
- }
-
- m_db.transaction();//寮�濮嬩簨鍔℃搷浣�
-
- if (pModel.submitAll()) {
- m_db.commit();//鎻愪氦
- return true;
- } else {
- m_db.rollback();//鍥炴粴
- ERR("updateCameraWeekRule ,pModel_load Error: " << pModel.lastError().text().toStdString());
-
- return false;
- }
- }
- std::vector<LActRuleWeekRecord> LDBTool::searchCameraWeekRuleByCamId(const QString& camId,const int& sdkType)
- {
- std::vector<LActRuleWeekRecord> vecWeek;
- QMutexLocker mutexLocker(&m_mutexVisit);//TODO
- QSqlTableModel pModel(NULL, m_db);
- pModel.setTable("rule_week");
- pModel.setFilter(QObject::tr("camera_id = '%1' and sdk_type='%2'").arg(camId).arg(sdkType));
- pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
- pModel.select();
-
- int rowCount = pModel.rowCount();
- for(int i = 0;i < rowCount;++i)
- {
- LActRuleWeekRecord lActRuleWeekRec;
- QSqlRecord rec = pModel.record(i);
- lActRuleWeekRec.m_nSdkType = rec.value("sdk_type").toInt();
- lActRuleWeekRec.m_nType = rec.value("type").toInt();
- lActRuleWeekRec.m_strBegin = rec.value("begin_time").toString();
- lActRuleWeekRec.m_strEnd = rec.value("end_time").toString();
- lActRuleWeekRec.m_strCamId=rec.value("camera_id").toString();
- vecWeek.push_back(lActRuleWeekRec);
- }
-
- return vecWeek;
- }
-
-
-
-bool LDBTool::updateSdkRule(const SdkRule& sdkRule)
-{
+bool LDBTool::updateSdkRule(const SdkRule &sdkRule) {
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
QSqlTableModel pModel(NULL, m_db);
pModel.setTable("sdk_rule");
@@ -2660,73 +2646,66 @@
rec.setValue("cam_id", sdkRule.strCamId);
rec.setValue("sdk_type", sdkRule.nSdkType);
rec.setValue("area", sdkRule.strAreas);
- rec.setValue("ex_area",sdkRule.strExAreas);
- rec.setValue("line",sdkRule.strLine);
- rec.setValue("ex_line",sdkRule.strExLine);
- rec.setValue("alarm_delay",sdkRule.nTriggerDelay);
- rec.setValue("tolerance",sdkRule.nTriggerTolerance);
- rec.setValue("alarm_num_upper",sdkRule.nAlarmNumUpperLimit);
- rec.setValue("alarm_num_lower",sdkRule.nAlarmNumLowerLimit);
- rec.setValue("broadcast_area",sdkRule.strBroadcast);
- rec.setValue("is_run",sdkRule.nIsRun);
- rec.setValue("img_threshold",sdkRule.nThreshold);
- rec.setValue("img_quality",sdkRule.nQuality);
+ rec.setValue("ex_area", sdkRule.strExAreas);
+ rec.setValue("line", sdkRule.strLine);
+ rec.setValue("ex_line", sdkRule.strExLine);
+ rec.setValue("alarm_delay", sdkRule.nTriggerDelay);
+ rec.setValue("tolerance", sdkRule.nTriggerTolerance);
+ rec.setValue("alarm_num_upper", sdkRule.nAlarmNumUpperLimit);
+ rec.setValue("alarm_num_lower", sdkRule.nAlarmNumLowerLimit);
+ rec.setValue("broadcast_area", sdkRule.strBroadcast);
+ rec.setValue("is_run", sdkRule.nIsRun);
+ rec.setValue("img_threshold", sdkRule.nThreshold);
+ rec.setValue("img_quality", sdkRule.nQuality);
int rowCount = pModel.rowCount();
- if (rowCount == 0)
- {
+ if (rowCount == 0) {
pModel.insertRecord(-1, rec);
- }
- else if (rowCount > 0)
- {
+ } else if (rowCount > 0) {
pModel.setRecord(0, rec);//TODO
}
m_db.transaction();//寮�濮嬩簨鍔℃搷浣�
- if (pModel.submitAll())
- {
+ if (pModel.submitAll()) {
m_db.commit();//鎻愪氦
return true;
- }
- else
- {
+ } else {
m_db.rollback();//鍥炴粴
ERR("updateSdkRule ,pModel_load Error: " << pModel.lastError().text().toStdString());
return false;
}
}
-SdkRuleMap LDBTool::searchSdkRuleByCamId(const QString& camId)
-{
+
+SdkRuleMap LDBTool::searchSdkRuleByCamId(const QString &camId) {
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
QSqlTableModel pModel(NULL, m_db);
pModel.setTable("sdk_rule");
pModel.setFilter(QObject::tr("cam_id = '%1' ").arg(camId));
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
pModel.select();
- std::map<int,SdkRule> ruleMap;
+ std::map<int, SdkRule> ruleMap;
//std::vector<SdkRule> ruleVec;
int rowCount = pModel.rowCount();
- for(int i=0;i<rowCount;++i)
- {
+ for (int i = 0; i < rowCount; ++i) {
SdkRule rule;
QSqlRecord rec = pModel.record(i);
- rule.strCamId=rec.value("cam_id").toString();
- rule.strAreas=rec.value("area").toString();
- rule.strExAreas=rec.value("ex_area").toString();
- rule.strLine=rec.value("line").toString();
- rule.strExLine=rec.value("ex_line").toString();
- rule.nTriggerDelay=rec.value("alarm_delay").toInt();
- rule.nTriggerTolerance=rec.value("tolerance").toInt();
- rule.nQuality=rec.value("img_quality").toInt();
- rule.nThreshold=rec.value("img_threshold").toInt();
- rule.nAlarmNumUpperLimit=rec.value("alarm_num_upper").toInt();
- rule.nAlarmNumLowerLimit=rec.value("alarm_num_lower").toInt();
- rule.strBroadcast=rec.value("broadcast_area").toString();
- rule.nIsRun=rec.value("is_run").toInt();
- rule.nSdkType=rec.value("sdk_type").toInt();
- ruleMap[rule.nSdkType]=rule;
+ rule.strCamId = rec.value("cam_id").toString();
+ rule.strAreas = rec.value("area").toString();
+ rule.strExAreas = rec.value("ex_area").toString();
+ rule.strLine = rec.value("line").toString();
+ rule.strExLine = rec.value("ex_line").toString();
+ rule.nTriggerDelay = rec.value("alarm_delay").toInt();
+ rule.nTriggerTolerance = rec.value("tolerance").toInt();
+ rule.nQuality = rec.value("img_quality").toInt();
+ rule.nThreshold = rec.value("img_threshold").toInt();
+ rule.nAlarmNumUpperLimit = rec.value("alarm_num_upper").toInt();
+ rule.nAlarmNumLowerLimit = rec.value("alarm_num_lower").toInt();
+ rule.strBroadcast = rec.value("broadcast_area").toString();
+ rule.nIsRun = rec.value("is_run").toInt();
+ rule.nSdkType = rec.value("sdk_type").toInt();
+ ruleMap[rule.nSdkType] = rule;
//ruleVec.push_back(rule);
}
@@ -2742,7 +2721,8 @@
std::list<Record_Cam_Dev> lst;
QSqlTableModel pModel(NULL, m_db);
pModel.setTable("cam_dev");
- pModel.setFilter(QObject::tr((string("cam_dev_id != '' and cam_dev_id is not null and type='")+to_string(type)+"'").c_str()));
+ pModel.setFilter(QObject::tr(
+ (string("cam_dev_id != '' and cam_dev_id is not null and type='") + to_string(type) + "'").c_str()));
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
pModel.select();
@@ -2763,6 +2743,7 @@
lChannelRec.str_password = rec.value("password").toString();
lChannelRec.str_brand = rec.value("brand").toString();
lChannelRec.str_reserved = rec.value("reserved").toString();
+ lChannelRec.n_type = rec.value("type").toInt();
lst.push_back(lChannelRec);
}
}
diff --git a/QiaoJiaSystem/VideoToImageMulth/CMakeLists.txt b/QiaoJiaSystem/VideoToImageMulth/CMakeLists.txt
index 8f0f5c9..8b92de1 100644
--- a/QiaoJiaSystem/VideoToImageMulth/CMakeLists.txt
+++ b/QiaoJiaSystem/VideoToImageMulth/CMakeLists.txt
@@ -13,7 +13,7 @@
Ice
crypto
-
+ mysqlpp
#ffmpeg
avformat
@@ -74,6 +74,9 @@
../../BasicPlatForm/libs/hiredis-master/include
../../../BasicPlatForm/basic/timer_counter/
../../../BasicPlatForm/libs/GB28181/include
+
+ ../../../BasicPlatForm/libs/mysqlpp/include
+ ../../../BasicPlatForm/libs/mysql/include/mysql/
)
link_directories(
@@ -89,6 +92,7 @@
../../../BasicPlatForm/libs/Ice-3.7.0/lib64
../../../BasicPlatForm/libs/hiredis-master/lib
+ ../../../BasicPlatForm/libs/mysqlpp/lib
)
add_executable(${PROJECT_NAME}
diff --git a/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp b/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp
index a5ea3b0..60dc82e 100644
--- a/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp
+++ b/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp
@@ -40,6 +40,8 @@
//鍒濆鍖栧嚱鏁�
void RtspAnalysManager::init() {
INFO("MYH DEBUG HERE")
+ //#todo GB28181
+#ifndef GB28181
auto lst = m_lDBTool->searchCamDevTableAll();
Record_Config lst_dev = m_lDBTool->searchConfigTableWithinServerInfo();
@@ -93,7 +95,62 @@
} else {
ERR("searchCamDevTableAll size is 0");
}
+#else
+ auto lst = m_lDBTool->searchCamDevTableByType(1);
+ Record_Config lst_dev = m_lDBTool->searchConfigTableWithinServerInfo();
+ //璁剧疆瑙嗛鐨勬渶闀垮拰鏈�鐭椂闂撮棿闅�
+ appPref.setIntData("n_cut_max_duration", lst_dev.n_cut_max_duration);
+ appPref.setIntData("n_cut_min_duration", lst_dev.n_cut_min_duration);
+ if (lst.size() > 0) {
+// int startCamNO = appPref.getIntData("CamStart") * appPref.getIntData("CamStep");
+// int CamCount = appPref.getIntData("CamStep");
+// INFO("StartCamNO: " << startCamNO << " CamStep: " << CamCount);
+// auto itor = lst.begin();
+//
+// if (startCamNO >= lst.size()) {
+// ERR("startCamNO > lst.size()");
+// return;
+// }
+// for (int i = 0; i < startCamNO; i++) {
+//
+// std::string t_camIdex = itor->str_cam_dev_id.toStdString();
+// std::string rtsp_url = rtspAddrBuild(itor->str_ip.toStdString(), 554, itor->str_username.toStdString(),
+// itor->str_password.toStdString(), itor->str_brand.toStdString());
+// INFO("JumpCam: " << t_camIdex << " URL: " << rtsp_url);
+// itor++;
+// }
+//
+// for (int i = 0; i < CamCount; i++) {
+// if (itor == lst.end()) {
+// ERR("itor == lst.end()");
+// return;
+// }
+// std::string t_camIdex = itor->str_cam_dev_id.toStdString();
+// std::string rtsp_url = rtspAddrBuild(itor->str_ip.toStdString(), 554, itor->str_username.toStdString(),
+// itor->str_password.toStdString(), itor->str_brand.toStdString());
+// INFO("cam add is " << itor->str_addr.toStdString());
+//
+// addCamera(t_camIdex, rtsp_url);
+// itor++;
+// }
+
+ for (auto item : lst) {
+ std::string t_camIdex = item.str_cam_dev_id.toStdString();
+ std::string rtsp_url = "GB28181";
+// rtspAddrBuild(item.str_ip.toStdString(), 554, item.str_username.toStdString(),
+// item.str_password.toStdString(), item.str_brand.toStdString());
+ INFO("cam add is " << item.str_addr.toStdString());
+
+ addCamera(t_camIdex, rtsp_url);
+
+ }
+ } else {
+ ERR("searchCamDevTableAll size is 0");
+ }
+
+
+#endif
}
RtspAnalysManager::~RtspAnalysManager() {
@@ -115,33 +172,35 @@
*/
int RtspAnalysManager::addCamera(const std::string &index, const std::string &rtsp) {
#ifndef GB28181
- auto lst = m_lDBTool->searchCamDevTableAll();
- Record_Config lst_dev = m_lDBTool->searchConfigTableWithinServerInfo();
- if (m_controllers.find(index) == m_controllers.end()) {
- INFO("MYH DEBUG HERE");
- if (m_currentCount >= m_maxCount) {
- ERR("addCamera faild, camera's num is full!")
- return -1;
+ // why search lst ?
+ // auto lst = m_lDBTool->searchCamDevTableAll();
+ Record_Config lst_dev = m_lDBTool->searchConfigTableWithinServerInfo();
+ if (m_controllers.find(index) == m_controllers.end()) {
+ INFO("MYH DEBUG HERE");
+ if (m_currentCount >= m_maxCount) {
+ ERR("addCamera faild, camera's num is full!")
+ return -1;
+ }
+ INFO("RTSP: " << rtsp << " INDEX:" << index);
+ m_imgRedisControllers[index] = new RtspImageRedisElement(index);
+ m_imgRedisControllers[index]->start();
+
+ m_controllers[index] = new RtspCaptureElement(rtsp, index, 25, 3000, 0, this);
+ m_controllers[index]->SetVideoMinMaxSeconds(lst_dev.n_cut_min_duration, lst_dev.n_cut_max_duration);
+ m_controllers[index]->start();
+ m_currentCount++;
+ return 0;
+
+ } else {
+ removeCamera(index);
+ INFO("removeCamera " << index);
+ //DBG("removeCamera " << index);
+ return addCamera(index, rtsp);
}
- INFO("RTSP: " << rtsp << " INDEX:" << index);
- m_imgRedisControllers[index] = new RtspImageRedisElement(index);
- m_imgRedisControllers[index]->start();
-
- m_controllers[index] = new RtspCaptureElement(rtsp, index, 25, 3000, 0, this);
- m_controllers[index]->start();
- m_controllers[index]->SetVideoMinMaxSeconds(lst_dev.n_cut_min_duration, lst_dev.n_cut_max_duration);
- m_currentCount++;
- return 0;
-
- } else {
- removeCamera(index);
- INFO("removeCamera " << index);
- //DBG("removeCamera " << index);
- return addCamera(index, rtsp);
- }
#else
//#todo
- auto lst = m_lDBTool->searchCamDevTableAll();
+// why search lst ?
+// auto lst = m_lDBTool->searchCamDevTableAll();
Record_Config lst_dev = m_lDBTool->searchConfigTableWithinServerInfo();
//#todo end
@@ -158,9 +217,9 @@
//VideoCaptureElementWithRtp(std::string &chanPubID, int fps, int streamTransType, int gpuIdx = -1)
m_controllers_videoCapElem[index] = new BASICGB28181::VideoCaptureElementWithRtp(const_cast<string &>(index),
25, 1, 0);
- m_controllers_videoCapElem[index]->start();
m_controllers_videoCapElem[index]->SetVideoMinMaxSeconds(lst_dev.n_cut_min_duration,
lst_dev.n_cut_max_duration);
+ m_controllers_videoCapElem[index]->start();
m_currentCount++;
return 0;
diff --git a/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.h b/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.h
index 2612548..8f15623 100644
--- a/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.h
+++ b/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.h
@@ -9,7 +9,8 @@
#include <map>
#include "RtspCaptureElement.h"
#include "RtspImageRedis.h"
-#include <VideoCaptureElementWithRtp.h>
+#include "../GB28181DecoderModel/VideoCaptureElementWithRtp.h"
+//#include <VideoCaptureElementWithRtp.h>
#include <QiaoJia/DB/LDBTool.h>
#include <basic/util/app/AppPreference.hpp>
#include "RtspAnalysServer.h"
diff --git a/QiaoJiaSystem/VideoToImageMulth/main.cpp b/QiaoJiaSystem/VideoToImageMulth/main.cpp
index f0e6bcb..0a29848 100644
--- a/QiaoJiaSystem/VideoToImageMulth/main.cpp
+++ b/QiaoJiaSystem/VideoToImageMulth/main.cpp
@@ -17,6 +17,7 @@
#include <GB28181Server.h>
#include <basic/util/net_config/net_config.h>
+#include <DataManagerServer/vss/dao/VssLocalSettingTblSqliteDao.h>
static void startManager(LDBTool *_dbTool) {
RtspAnalysManager rtspAnalysManager(_dbTool);
@@ -71,15 +72,28 @@
mysqlDBServerCfg.DBName = "EGEyesForVSS";
mysqlDBServerCfg.DBConnCount = 5;
+ LDBTool ldbTool;
+ BaseSqliteDao::setLDBTool(&ldbTool);
//#todo search from db
+ Json::Value t_value;
+ {
+ LDBTool ldbTool;
+ BaseSqliteDao::setLDBTool(&ldbTool);
+ t_value = VssLocalSettingTblSqliteDao::instance()->findAllVssLocalSettingTblList();
+ }
+ if (t_value.size() == 1 && t_value["data"].size() > 1) {
+ assert("t_value.size()");
+ }
+ DBG(t_value["data"].begin()->toStyledString());
+ auto &t_cfg = *t_value["data"].begin();
GBServerCfg gbServerCfg;
- gbServerCfg.SvrIp = getLocalIp(); // 鍥芥爣鏈嶅姟鐨刬p鍦板潃 (鏈満鐨刬p鍦板潃)
- gbServerCfg.SvrPort = 7060; // 鍥芥爣鏈嶅姟鐩戝惉鐨勭鍙�
- gbServerCfg.SvrPubID = "44120000002000000001"; // 鍥芥爣鏈嶅姟鍣ㄧ殑ID
+ gbServerCfg.SvrIp = t_cfg["ServerIp"].asString(); // 鍥芥爣鏈嶅姟鐨刬p鍦板潃 (鏈満鐨刬p鍦板潃)
+ gbServerCfg.SvrPort = atoi(t_cfg["ServerPort"].asString().c_str());// 7060; // 鍥芥爣鏈嶅姟鐩戝惉鐨勭鍙�
+ gbServerCfg.SvrPubID = t_cfg["ServerId"].asString();// "44120000002000000001"; // 鍥芥爣鏈嶅姟鍣ㄧ殑ID
gbServerCfg.bMD5Auth = false; // 鏄惁闇�瑕丮D5鍔犲瘑
- gbServerCfg.UserName = "44120100002000000002"; // 鍥芥爣鏈嶅姟鐨勭敤鎴峰悕 (涓嬬骇璁惧娉ㄥ唽鐨勭敤鎴峰悕)
- gbServerCfg.Passwd = "123456"; // 鍥芥爣鏈嶅姟鐨勫瘑鐮� (涓嬬骇璁惧娉ㄥ唽鐨勫瘑鐮�)
+ gbServerCfg.UserName = t_cfg["UserAuthId"].asString();// "44120100002000000002"; // 鍥芥爣鏈嶅姟鐨勭敤鎴峰悕 (涓嬬骇璁惧娉ㄥ唽鐨勭敤鎴峰悕)
+ gbServerCfg.Passwd = t_cfg["Password"].asString();// "123456"; // 鍥芥爣鏈嶅姟鐨勫瘑鐮� (涓嬬骇璁惧娉ㄥ唽鐨勫瘑鐮�)
gbServerCfg.SubScribeTime = 3600; // 璁㈤槄鏃堕棿 濡傛灉涓�0 琛ㄧず涓嶈闃�
SpinLock spinLock;
--
Gitblit v1.8.0