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