From 8bfd4cc90f25f1800eb5e61d50d4fa74854e0f2a Mon Sep 17 00:00:00 2001 From: pansen <pansen626@sina.com> Date: 星期一, 28 一月 2019 16:41:30 +0800 Subject: [PATCH] 布控上传修改 --- QiaoJiaSystem/build/DataWebServer | 0 QiaoJiaSystem/build/configjson说明.md | 121 ++++++++++ QiaoJiaSystem/DataManagerServer/http_configserver.cpp | 81 ++++++ QiaoJiaSystem/StructureApp/PerimeterElement.cpp | 94 +++---- QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.cpp | 6 QiaoJiaSystem/DataManagerServer/http_configserver.h | 3 QiaoJiaSystem/DataManagerServer/web-server接口.txt | 219 +++++++++++------ QiaoJiaSystem/build/config.json | 50 ++-- syncDBTool/ErlangDbTool.cpp | 2 QiaoJiaSystem/DataManagerServer/uploadDataInterface.md | 98 ++++++++ QiaoJiaSystem/StructureApp/AppPipeController.h | 24 + 11 files changed, 520 insertions(+), 178 deletions(-) diff --git a/QiaoJiaSystem/DataManagerServer/http_configserver.cpp b/QiaoJiaSystem/DataManagerServer/http_configserver.cpp index 9a632e9..d4cd14c 100644 --- a/QiaoJiaSystem/DataManagerServer/http_configserver.cpp +++ b/QiaoJiaSystem/DataManagerServer/http_configserver.cpp @@ -1873,6 +1873,8 @@ std::string Enabled = value["enabled"].asString(); Enabled = Enabled.empty() ? "1" : Enabled; + std::string createBy = value["createBy"].asString(); + bool ret = false; FieldValues fieldValues; fieldValues.insert(std::make_pair("uuid", Uuid)); @@ -1908,6 +1910,10 @@ return ""; } + { +// #todo 涓婁紶銆備粎榛戝悕鍗曘�� +// #TODO 鏍规嵁createBy鍒ゆ柇鏄惁闇�瑕佷笂浼� + } erlangDbTool->sendMessage(); std::string str_result = std::string("{\"result\":").append("\"" + std::to_string(ret) + "\"}"); @@ -1941,6 +1947,8 @@ std::string TableName = value["TableName"].asString(); int SyncType = atoi(value["SyncType"].asCString()); + std::string createBy = value["createBy"].asString(); + bool ret = false; if (TableType == "person") { if (SyncType == 1) { @@ -1962,6 +1970,10 @@ return ""; } + { +// #todo 涓婁紶銆備粎榛戝悕鍗曘�� +// #TODO 鏍规嵁createBy鍒ゆ柇鏄惁闇�瑕佷笂浼� + } erlangDbTool->sendMessage(); std::string str_result = std::string("{\"result\":").append("\"" + std::to_string(ret) + "\"}"); return str_result; @@ -2051,7 +2063,7 @@ subJson.append("\"IsSync\":\"" + item.uploadFlag + "\","); subJson.append("\"threshold\":\"" + item.cmpThreshold + "\","); subJson.append("\"create_by\":\"" + item.createBy + "\","); - subJson.append("\"enabled\":\"" + item.enabled + "\","); + subJson.append("\"enabled\":\"" + item.enabled + "\""); subJson.append("},"); json.append(subJson); } @@ -2092,6 +2104,7 @@ std::string SyncType = value["SyncType"].asString(); std::string TableId = value["TableId"].asString(); std::string BwType = value["BwType"].asString(); + std::string createBy = value["createBy"].asString(); std::string UploadFlag = "-1"; if (SyncType == "1") { @@ -2108,12 +2121,12 @@ DBG("content: " << TableName << "," << img_url << "," << idcard << "," << strUUID << "," << UploadFlag << "," << Enabled << "," << TableType << "," << SyncType << "," << TableId); + cv::Mat image; getMat(img_url, img_base64, image); if (image.empty()) { response->write(SimpleWeb::StatusCode::server_error_not_implemented, "{\"error\":\"not found img\"}"); return ""; -// return "{\"error\":\"not found img\"}"; } thread::id pid = std::this_thread::get_id(); @@ -2181,15 +2194,15 @@ // usleep(100); erlangDbTool->sendMessage(); - if (UploadFlag == "1") { + if (createBy == "analyDev" && UploadFlag == "1") { // #todo db queue upload to server if (BwType == "0") { UploadPersonToUserCenter(img_url, idcard, strUUID, feature_base64); - } else { - //todo send person to backServer -//#TODO 榛戝悕鍗曚笂浼� + } else if (BwType == "1") { + UploadPersonToMonitorCenter(img_url, idcard, strUUID, feature_base64, TableId, Enabled); } - + } else { +// 涓嶄笂浼� } return str_result; } else { @@ -2338,6 +2351,10 @@ // } else { // //todo send person to backServer ////#TODO 榛戝悕鍗曚笂浼� + { +// #todo 涓婁紶銆備粎榛戝悕鍗曘�� +// #TODO 鏍规嵁createBy鍒ゆ柇鏄惁闇�瑕佷笂浼� + } // } // } return str_result; @@ -2417,10 +2434,11 @@ devHttpServer_c::UploadPersonToUserCenter(string &img_url, string &idcard, string &strUUID, string &feature_base64) { string str_serIp = GET_STR_CONFIG("mainServerIp"); string str_serPort = GET_STR_CONFIG("mainServerPort"); + string str_serUrl = GET_STR_CONFIG("mainServerrUrl"); // string sendUrl = "192.168.1.203:3697/addPerson/uploadToTemporary"; string sendUrl = str_serIp; - sendUrl.append(":").append(str_serPort).append("/addPerson/uploadToTemporary"); + sendUrl.append(":").append(str_serPort).append(str_serUrl); Json::Value perInfos; Json::Value perInfo; @@ -2434,6 +2452,39 @@ perInfo["photos"] = img_url; perInfo["featureBase64"] = feature_base64; perInfo["cardId"] = idcard;//鍥剧墖鎻忚堪 + perInfos.append(perInfo); + + thread sendPerson(uploadServer, this, sendUrl, perInfos.toStyledString()); + sendPerson.detach(); +} + +void +devHttpServer_c::UploadPersonToMonitorCenter(string &img_url, string &idcard, string &strUUID, string &feature_base64, + string &strTableId, string &strControl) { + +// string sendUrl = "192.168.1.203:3697/addPerson/uploadToTemporary"; + string sendUrl = GET_STR_CONFIG("addFromAnalyUrl"); + + if (sendUrl.empty()) { + ERR(""); + return; + } + + Json::Value perInfos; + Json::Value perInfo; +// #todo get string from config.json file + perInfo["id"] = strUUID; + perInfo["distributionIds"] = m_cluster_id; + perInfo["distributionNames"] = m_cluster_name; + auto rec = db_c.searchConfigTableWithinServerInfo(); + perInfo["deviceId"] = rec.dev_id.toStdString(); + perInfo["photos"] = img_url; + perInfo["featureBase64"] = feature_base64; + perInfo["cardId"] = idcard; // 鍥剧墖鎻忚堪 + + perInfo["taskId"] = strTableId; // 搴曞簱id + perInfo["isControl"] = strControl; // 甯冩帶鐘舵�侊紙0涓烘湭甯冩帶锛�1涓哄凡甯冩帶锛� + perInfos.append(perInfo); thread sendPerson(uploadServer, this, sendUrl, perInfos.toStyledString()); @@ -2469,6 +2520,7 @@ subJson.append("\"uuid\":\"" + item.second.uuid + "\","); subJson.append("\"tableName\":\"" + TableName + "\","); subJson.append("\"idcard\":\"" + t_faceInfoCache[item.second.uuid].idCard + "\","); + subJson.append("\"enable\":\"" + item.second.enable + "\","); subJson.append("\"imgUrl\":\"" + item.second.faceurl + "\""); // subJson.append("\"feature\":\"" + item.second.feature + "\","); //#todo modifysvn upda svn comm @@ -2490,6 +2542,7 @@ subJson.append("\"uuid\":\"" + item.second.id + "\","); subJson.append("\"tableName\":\"" + TableName + "\","); subJson.append("\"idcard\":\"" + item.second.idcard + "\","); + subJson.append("\"enable\":\"" + item.second.enable + "\","); subJson.append("\"imgUrl\":\"" + item.second.img + "\""); // subJson.append("\"feature\":\"" + item.second.feature + "\","); //#todo modifysvn upda svn comm @@ -2541,6 +2594,8 @@ std::string UploadFlag = value["IsSync"].asString(); std::string CmpThreshold = value["threshold"].asString(); std::string Enabled = value["enabled"].asString(); + Enabled = Enabled.empty() ? "1" : Enabled; + std::string createBy = value["createBy"].asString(); bool ret = false; //#鏇存柊搴曞簱绠$悊琛� @@ -2580,6 +2635,10 @@ return ""; } + { +// #todo 涓婁紶銆備粎榛戝悕鍗曘�� +// #TODO 鏍规嵁createBy鍒ゆ柇鏄惁闇�瑕佷笂浼� + } erlangDbTool->sendMessage(); std::string str_result = std::string("{\"result\":").append("\"" + std::to_string(ret) + "\"}"); @@ -2607,6 +2666,7 @@ if (reader.parse(content, value)) { std::string TableName = value["TableName"].asString(); std::string strUUID = value["uuid"].asString(); + std::string createBy = value["createBy"].asString(); bool ret = false; if (TableName.find("lt_") == 0) { @@ -2614,7 +2674,10 @@ } else { ret = erlangDbTool->delPerson(strUUID, TableName); } - + { +// #todo 涓婁紶銆備粎榛戝悕鍗曘�� +// #TODO 鏍规嵁createBy鍒ゆ柇鏄惁闇�瑕佷笂浼� + } erlangDbTool->sendMessage(); std::string str_result = std::string("{\"result\":").append("\"" + std::to_string(ret) + "\"}"); return str_result; diff --git a/QiaoJiaSystem/DataManagerServer/http_configserver.h b/QiaoJiaSystem/DataManagerServer/http_configserver.h index b25f94a..41625ab 100644 --- a/QiaoJiaSystem/DataManagerServer/http_configserver.h +++ b/QiaoJiaSystem/DataManagerServer/http_configserver.h @@ -192,6 +192,9 @@ void devHttpServer_c::UploadPersonToUserCenter(string &img_url, string &idcard, string &strUUID, string &feature_base64); + void devHttpServer_c::UploadPersonToMonitorCenter(string &img_url, string &idcard, string &strUUID, + string &feature_base64, string &strTableId, string &strControl); + void addPersonMToDB(const string &TableName, const string &img_url, const string &SyncType, const string &feature_base64, const Features &faceResults, string &idcard, string &strUUID, bool &ret_addPerson) const; diff --git a/QiaoJiaSystem/DataManagerServer/uploadDataInterface.md b/QiaoJiaSystem/DataManagerServer/uploadDataInterface.md new file mode 100644 index 0000000..993df8c --- /dev/null +++ b/QiaoJiaSystem/DataManagerServer/uploadDataInterface.md @@ -0,0 +1,98 @@ + + +---- + +#1.璋冪敤鍒涘缓甯冩帶鎶ヨ搴曞簱浠诲姟 + +192.168.1.184:3699/addTaskByNode + + + + { + "TableName": "test", //琛ㄥ悕 + "SyncType": "1", //鍚屾绫诲瀷 1鍚屾/0鏈湴搴� + "StartTime": "2018-01-01 01:02:00", //寮�濮嬫椂闂� + "EndTime": "2018-12-31 01:02:00" //缁撴潫鏃堕棿 + "IsSync":"", // 鏄惁鍚屾鍒板悗鍙颁复鏃跺簱 1 鏄� 0 涓嶆槸 + "threshold":0-100, // 鍥剧墖闃堝�� 0-100 + "enabled":"1", // 鏄惁鍚敤 1鍚敤 0鏈惎鐢� + "uuid":"uuid-搴曞簱id", + "cluId":"", + "devId":"" + } + + +//琛ㄧ被鍨嬩负 person 鐨勬暟鎹洰鍓嶈皟鐢ㄥ竷鎺� "TableType": "person", +//榛戠櫧鍚嶅崟 1榛戝悕鍗� "BwType": "1", 甯冩帶鍙榛戝悕鍗� +---- + +#2.璋冪敤涓婁紶甯冩帶浜哄憳鎺ュ彛 + 鍒嗘瀽璁惧涓婁紶甯冩帶浜哄憳 + + path锛歩p:3699/data/api-c/taskUser/addFromAnaly + 鍙傛暟锛� + userId 浜哄憳ID(蹇呴渶) + userName 濮撳悕 锛堝彲绌猴級 + idCard 韬唤璇佸彿锛堝彲浠ヤ笉鍑嗭級 + sex (0涓哄コ锛�1涓虹敺) 鎬у埆锛堝彲绌猴級 + mobile 鎵嬫満鍙凤紙鍙┖锛� + taskId 搴曞簱id + imgUrl 鍥剧墖鐨刦stdfs璺緞锛堝繀闇�锛� + featureBase64 鍥剧墖鐨勭壒寰佸�硷紙蹇呴渶锛� 锛堜互base64鏍煎紡绌胯繃鏉ワ級 + isControl 甯冩帶鐘舵�侊紙0涓烘湭甯冩帶锛�1涓哄凡甯冩帶锛� + 璇锋眰绫诲瀷锛歨ttpMethod = "POST"(json) + +---- + +#3.浜哄憳绠$悊涓婁紶浜哄憳鎺ュ彛 + 浜哄憳ID(蹇呴渶)锛� id 渚嬪锛歅SSVR010120181208175534014 + 濮撳悕锛堝彲绌猴級 name + 韬唤璇佸彿锛堝彲浠ヤ笉鍑嗭級cardId + 鎬у埆锛堝彲绌猴級gender + 鎵嬫満鍙凤紙鍙┖锛塸hone + 闆嗙兢id锛堝繀闇�锛塪istributionIds + 闆嗙兢鍚嶇О锛堝繀闇�锛塪istributionNames + 鍥剧墖鐨刦stdfs璺緞锛堝繀闇�锛塸hotos + 鍥剧墖鐨勭壒寰佸�硷紙蹇呴渶锛塮eatureBase64 锛堜互base64鏍煎紡绌胯繃鏉ワ級 + + 鏁版嵁绫诲瀷锛屾病鏍囨敞鐨勯兘鏄瓧绗︿覆 + 娉ㄦ剰浼犺緭鏃剁殑椹煎嘲寮忓懡鍚� + + +浼犲弬涓句緥锛� + + [ + { + "name":鈥滃紶涓夆��, + "cardId":"130430199809090876", + "gender":"鐢�", + "phone":"13700678954", + "deviceId":"DSPAD010120181101", + 鈥漝istributionIds鈥�:"fcjaw-soifaw-2134-432", + "distributionNames":"pad1", + "photos":"group1/M00/01/90/wKgBy1wLa-qAA5cJAABHxJUyH0A935.jpg", + "featureBase64 ":"kQZbUt48zxqUQfwv/r2mYfCz/VU5K7lg3KIgBdrc/+==" + }, + { + "name":鈥滈噷鏂��, + "cardId":"130430199809090876", + "gender":"鐢�", + "phone":"13700678954", + 鈥漝istributionIds鈥�:"fcjaw-soifaw-2134-432", + "distributionNames":"pad1", + "photos":"group1/M00/01/90/wKgBy1wLa-qAA5cJAABHxJUyH0A935.jpg", + "featureBase64 ":"kQZbUt48zxqUQfwv/r2mYfCz//+==" + } + ] + +璇锋眰鏂规硶涓簆ost锛屼互json鏍煎紡浼犺緭锛屾敮鎸佹壒閲忎笂浼� +鐩墠鐨刬p涓�203 +鎺ュ彛璺緞锛欼P锛�3697/addPerson/uploadToTemporary + + +--- + + + + + diff --git "a/QiaoJiaSystem/DataManagerServer/web-server\346\216\245\345\217\243.txt" "b/QiaoJiaSystem/DataManagerServer/web-server\346\216\245\345\217\243.txt" index 5091681..09d5596 100644 --- "a/QiaoJiaSystem/DataManagerServer/web-server\346\216\245\345\217\243.txt" +++ "b/QiaoJiaSystem/DataManagerServer/web-server\346\216\245\345\217\243.txt" @@ -393,29 +393,36 @@ "error": ["erlang is null"] } +#TODO 甯冩帶 鍒涘缓搴曞簱 createDatabase 涓嬪彂锛� { + "createBy","", //鍒涘缓鑰�/鍒嗘瀽璁惧analyDev.甯冩帶骞冲彴conCemter "TableType": "person", //琛ㄧ被鍨媝erson/car "TableName": "test", //琛ㄥ悕 - "SyncType": "1", //鍚屾绫诲瀷1鍚屾/0鏈湴搴� - "BwType": "1", //榛戠櫧鍚嶅崟1榛戝悕鍗�/0鐧藉悕鍗� + "SyncType": "1", //鍚屾绫诲瀷 1鍚屾/0鏈湴搴� + "BwType": "1", //榛戠櫧鍚嶅崟 1榛戝悕鍗�/0鐧藉悕鍗� "StartTime": "2018-01-01 01:02:00", //寮�濮嬫椂闂� "EndTime": "2018-12-31 01:02:00" //缁撴潫鏃堕棿 + "IsSync":"", // 鏄惁鍚屾鍒板悗鍙颁复鏃跺簱 1 鏄� 0 涓嶆槸 + "threshold":0-100, // 鍥剧墖闃堝�� 0-100 + "enabled":"1", // 鏄惁鍚敤 1鍚敤 0鏈惎鐢� + "uuid":"uuid-搴曞簱id" } 杩斿洖锛� { - "results": "1" //0澶辫触1鎴愬姛 + "results": "1", //0澶辫触1鎴愬姛 } 閿欒锛� { - "error": ["erlang is null"||"err_json"] + "error": "erlang is null/err_json/搴曞簱宸插瓨鍦�" } - +#TODO 甯冩帶 鏇存柊搴曞簱 updateDatabase 涓嬪彂锛� { + "createBy","", //鍒涘缓鑰�/鍒嗘瀽璁惧analyDev.甯冩帶骞冲彴conCemter "uuid":"", //琛╱uid "TableType": "person", //琛ㄧ被鍨媝erson/car "TableName": "test", //琛ㄥ悕 @@ -423,19 +430,26 @@ "BwType": "1", //榛戠櫧鍚嶅崟1榛戝悕鍗�/0鐧藉悕鍗� "StartTime": "2018-01-01 01:02:00", //寮�濮嬫椂闂� "EndTime": "2018-12-31 01:02:00" //缁撴潫鏃堕棿 + "IsSync":"", //鏄惁鍚屾鍒板悗鍙颁复鏃跺簱 1 鏄� 0 涓嶆槸 + "threshold":0-100, // 鍥剧墖闃堝�� 0-100 + "enabled":"1" // 鏄惁鍚敤 1鍚敤 0鏈惎鐢� } +// 鏇存柊 闈� null 瀛楁鍊� +// 鍋滄鍚敤鏃讹紝杩欒竟 鍙細浼� {"enabled":"0","uuid":""}锛屾墍浠ラ渶瑕佷笂闈㈢殑鏉′欢 杩斿洖锛� { "results": "1" //0澶辫触1鎴愬姛 } 閿欒锛� { - "error": ["erlang is null"||"err_json"] + "error": "erlang is null/err_json" } +#TODO 甯冩帶 鍒犻櫎搴曞簱 deleteDatabase 涓嬪彂锛� { + "createBy","", //鍒涘缓鑰�/鍒嗘瀽璁惧analyDev.甯冩帶骞冲彴conCemter "uuid":"", //琛╱uid "TableType": "car", //琛ㄧ被鍨媝erson/car "TableName": "test2", //琛ㄥ悕 @@ -447,87 +461,26 @@ } 閿欒锛� { - "error": ["erlang is null"||"err_json"] + "error": "erlang is null/err_json/搴曞簱宸插瓨鍦�" } - #鍒犻櫎淇敼琛ㄦ椂,琛ㄥ悕涓嶅姞 lt_;闇�瑕佷紶SyncType 瀛楁 +#鍒犻櫎淇敼娣诲姞鏌ヨ搴曞簱浜哄憳鏁版嵁鏃�,闇�瑕佸簳搴撳悕绉板姞 lt_ -# 鍒犻櫎淇敼娣诲姞鏌ヨ搴曞簱浜哄憳鏁版嵁鏃�,闇�瑕佸簳搴撳悕绉板姞 lt_ - - -鏌ユ壘鍚屾搴曞簱 findAllDatabase -涓嬪彂锛� -杩斿洖锛� -[{ - "uuid": "e92a005e-fc19-56b5-8a23-53570bc270ae", //琛╱uid - "tableName": "test", //琛ㄥ悕 - "tableType": "person", //琛ㄧ被鍨� - "bwType": "1", //榛戠櫧鍚嶅崟绫诲瀷 - "start_time": "2018-01-01 01:02:00", //寮�濮嬫椂闂� - "end_time": "2018-12-31 01:02:00" //缁撴潫鏃堕棿 -}] -閿欒锛� -{ - "error": "erlang is null" -} - -鏌ユ壘鍚屾搴曞簱 findLocalDatabase -涓嬪彂锛氭棤 -杩斿洖锛� -[{ - "uuid": "e92a005e-fc19-56b5-8a23-53570bc270ae", //琛╱uid - "tableName": "test", //琛ㄥ悕 - "tableType": "person", //琛ㄧ被鍨� - "bwType": "1", //榛戠櫧鍚嶅崟绫诲瀷 - "start_time": "2018-01-01 01:02:00", //寮�濮嬫椂闂� - "end_time": "2018-12-31 01:02:00" //缁撴潫鏃堕棿 -}] -閿欒锛� -{ - "error": "erlang is null" -} - -#d - -鍔犺浇搴曞簱鏁版嵁 loadFaceFeaData +#TODO 甯冩帶 +娣诲姞浜哄憳 addPerson 锛坕mg_url鍜宨mg_base64浜岄�変竴锛� 涓嬪彂锛� { - "TableName":"test" //琛ㄥ悕 -} -杩斿洖锛� -[{ - "uuid": "00b429d6-3746-57b9-8123-0dbf134731d2", //UUID - "tableName": "test", //琛ㄥ悕 - "idcard": "123456789012345678", //韬唤璇佸彿 - "imgUrl": "http://192.168.1.188/group1/M00/00/01/wKgBvFuOcuCAbYeQAB86k1llhSw841.jpg" - }, - { - "uuid": "0148cb5c-2232-5b02-9a00-f1f9a6b71de7", - "tableName": "test", - "idcard": "123456789012345678", - "imgUrl": "http://192.168.1.188/group1/M00/00/01/wKgBvFuOcuCADeQUABVsWlPEN7w947.jpg" - }, - { - "uuid": "01f20455-32bf-5c6e-b7b8-dea1395049a0", - "tableName": "test", - "idcard": "123456789012345678", - "imgUrl": "http://192.168.1.188/group1/M00/00/01/wKgBvFuOct-Aaz39ACP45aaRJUY002.jpg" - } -] -閿欒锛� -{ - "error": ["erlang is null"||"err_json"] -} - - -娣诲姞鎴栬�呮洿鏂颁汉鍛� addPerson -涓嬪彂锛� -{ + "createBy","", //鍒涘缓鑰�/鍒嗘瀽璁惧analyDev.甯冩帶骞冲彴conCemter + "enabled":"1", // 鏄惁鍚敤 1鍚敤 0鏈惎鐢� "uuid": "", //娣诲姞浜哄憳鏃惰涓虹┖"" - "TableName": "test", //琛ㄥ悕 - "img_url ": "http: //192.168.1.188/group1/M00/00/01/wKgBvFuOcuGADRA_ABzanOgXxUE975.jpg", - "idcard : 123456789012345678", //韬唤璇乮d - "img_base64 ": "" //鍥剧墖base64 + "TableId": "test", //琛╥d + "TableName":"", //琛ㄥ悕 + "TableType":"person", //person + "BwType":"", //榛戠櫧鍚嶅崟1榛戝悕鍗�/0鐧藉悕鍗� + "SyncType":"1", //鍚屾绫诲瀷1鍚屾/0鏈湴搴� + "img_url":"http: //192.168.1.188/group1/M00/00/01/wKgBvFuOcuGADRA_ABzanOgXxUE975.jpg", + "idcard":"123456789012345678", //韬唤璇佹弿杩� + "img_base64": "" //鍥剧墖base64鐮� } 杩斿洖锛� { @@ -539,12 +492,116 @@ "error": ["erlang is null"||"err_json"] } +#TODO 甯冩帶 +鏇存柊浜哄憳 updatePerson +涓嬪彂锛� +{ + "createBy","", //鍒涘缓鑰�/鍒嗘瀽璁惧analyDev.甯冩帶骞冲彴conCemter + "enabled":"1", // 鏄惁鍚敤 1鍚敤 0鏈惎鐢� + "uuid": "", + "TableId": "test", //琛╥d + "TableName":"", //琛ㄥ悕 + "TableType":"person", + "BwType":"", //榛戠櫧鍚嶅崟1榛戝悕鍗�/0鐧藉悕鍗� + "SyncType":"1", //鍚屾绫诲瀷1鍚屾/0鏈湴搴� + "img_url":"http: //192.168.1.188/group1/M00/00/01/wKgBvFuOcuGADRA_ABzanOgXxUE975.jpg", + "idcard":"123456789012345678", //韬唤璇乮d + "img_base64": "" //鍥剧墖base64鐮� +} +杩斿洖锛� +{ + "uuid": "82ee3b83-da2c-5d18-8cfa-f15e3ec4c9d4", + "img_url": "http://192.168.1.188/group1/M00/00/01/wKgBvFuOcuGADRA_ABzanOgXxUE975.jpg" +} +閿欒锛� +{ + "error": ["erlang is null"||"err_json"] +} +#TODO 甯冩帶 +鏌ユ壘鍚屾搴曞簱 findAllDatabase +涓嬪彂锛� +杩斿洖锛� +[{ + "uuid": "e92a005e-fc19-56b5-8a23-53570bc270ae", //琛╱uid + "tableName": "test", //琛ㄥ悕 + "tableType": "person", //琛ㄧ被鍨� + "bwType": "1", //榛戠櫧鍚嶅崟绫诲瀷 + "start_time": "2018-01-01 01:02:00", //寮�濮嬫椂闂� + "end_time": "2018-12-31 01:02:00", //缁撴潫鏃堕棿 + "IsSync":"", //鏄惁鍚屾鍒板悗鍙颁复鏃跺簱 1 鏄� 0 涓嶆槸 + "threshold":0-100, // 鍥剧墖闃堝�� 0-100 + "enabled":"1", // 鏄惁鍚敤 1鍚敤 0鏈惎鐢� + "createBy","" //鍒涘缓鑰�/鍒嗘瀽璁惧analyDev.甯冩帶骞冲彴conCemter +}] +閿欒锛� +{ + "error": "erlang is null" +} + +#TODO 甯冩帶 +鏌ユ壘鍚屾搴曞簱 findLocalDatabase +涓嬪彂锛氭棤 +杩斿洖锛� +[{ + "uuid": "e92a005e-fc19-56b5-8a23-53570bc270ae", //琛╱uid + "tableName": "test", //琛ㄥ悕 + "tableType": "person", //琛ㄧ被鍨� + "bwType": "1", //榛戠櫧鍚嶅崟绫诲瀷 + "start_time": "2018-01-01 01:02:00", //寮�濮嬫椂闂� + "end_time": "2018-12-31 01:02:00", //缁撴潫鏃堕棿 + "IsSync":"", //鏄惁鍚屾鍒板悗鍙颁复鏃跺簱 1 鏄� 0 涓嶆槸 + "threshold":0-100, // 鍥剧墖闃堝�� 0-100 + "enabled":"1", // 鏄惁鍚敤 1鍚敤 0鏈惎鐢� + "createBy","" //鍒涘缓鑰�/鍒嗘瀽璁惧analyDev.甯冩帶骞冲彴conCemter +}] +閿欒锛� +{ + "error": "erlang is null" +} + +#TODO 甯冩帶 +鍔犺浇搴曞簱鏁版嵁 loadFaceFeaData +涓嬪彂锛� +{ + "TableName":"test" //琛ㄥ悕 +} +杩斿洖锛� +[{ + "uuid": "00b429d6-3746-57b9-8123-0dbf134731d2", //UUID + "tableName": "test", //琛ㄥ悕 + "idcard": "123456789012345678", //韬唤璇佸彿 + "enabled":"1", // 鏄惁鍚敤 1鍚敤 0鏈惎鐢� + "imgUrl": "http://192.168.1.188/group1/M00/00/01/wKgBvFuOcuCAbYeQAB86k1llhSw841.jpg" + }, + { + "uuid": "0148cb5c-2232-5b02-9a00-f1f9a6b71de7", + "tableName": "test", + "idcard": "123456789012345678", + "enabled":"1", // 鏄惁鍚敤 1鍚敤 0鏈惎鐢� + "imgUrl": "http://192.168.1.188/group1/M00/00/01/wKgBvFuOcuCADeQUABVsWlPEN7w947.jpg" + }, + { + "uuid": "01f20455-32bf-5c6e-b7b8-dea1395049a0", + "tableName": "test", + "idcard": "123456789012345678", + "enabled":"1", // 鏄惁鍚敤 1鍚敤 0鏈惎鐢� + "imgUrl": "http://192.168.1.188/group1/M00/00/01/wKgBvFuOct-Aaz39ACP45aaRJUY002.jpg" + } +] +閿欒锛� +{ + "error": ["erlang is null"||"err_json"] +} + +#TODO 甯冩帶 娣诲姞鎴栬�呮洿鏂颁汉鍛� delPerson 涓嬪彂锛� { + "TableId": "test", //琛╥d "uuid": "", "TableName": "test" //琛ㄥ悕 + "createBy","", //鍒涘缓鑰�/鍒嗘瀽璁惧analyDev.甯冩帶骞冲彴conCemter } 杩斿洖锛� { diff --git a/QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.cpp b/QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.cpp index c8e3613..ddcd788 100644 --- a/QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.cpp +++ b/QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.cpp @@ -107,8 +107,12 @@ //#todo 闈炲悓姝ュ簱鏄惁闇�瑕佹瘮杈冿紵 DBG("m_faceFCMAP compare start " << it.first); +// 瀵规瘮鍒嗘暟,鎽勫儚鏈哄垎鏁板拰甯冩帶搴撳垎鏁帮紝璋佷綆鎸夎皝?鏆傛椂涓嶅仛 +// if(){ +// } +// score // 瀵规瘮鍑芥暟 - t_FaceFC->compare(key, &featureData, topN); + t_FaceFC->compare(key, &featureData, topN,); DBG("m_faceFCMAP compare end " << it.first); // 鑾峰彇瀵规瘮缁撴灉 auto t_results = t_FaceFC->getTopResult(key); diff --git a/QiaoJiaSystem/StructureApp/AppPipeController.h b/QiaoJiaSystem/StructureApp/AppPipeController.h index 9e031af..2827a56 100644 --- a/QiaoJiaSystem/StructureApp/AppPipeController.h +++ b/QiaoJiaSystem/StructureApp/AppPipeController.h @@ -27,14 +27,14 @@ * @param folderPath 浠诲姟鏍圭洰褰曪紝鐢ㄤ簬鍋氬叡浜唴瀛榠d * @param json 鍙傛暟涓簉tsp娴佸湴鍧� sdk鏄惁鍚敤鐨勬爣璇� */ - // AppPipeController(std::string folderPath, const Json::Value &json); - AppPipeController(std::string folderPath, const SdkRuleMap& ruleMap); + // AppPipeController(std::string folderPath, const Json::Value &json); + AppPipeController(std::string folderPath, const SdkRuleMap &ruleMap); - // AppPipeController(int index, const Json::Value &json, bool RecordVideoEnable = false); + // AppPipeController(int index, const Json::Value &json, bool RecordVideoEnable = false); - // AppPipeController(std::string camId, const Json::Value &json, bool RecordVideoEnable); + // AppPipeController(std::string camId, const Json::Value &json, bool RecordVideoEnable); - AppPipeController(std::string camId, const SdkRuleMap& ruleMap, bool RecordVideoEnable); + AppPipeController(std::string camId, const SdkRuleMap &ruleMap, bool RecordVideoEnable); virtual ~AppPipeController(); @@ -46,12 +46,14 @@ void setfdfsClient(FastFdsWithLock *p_fdfsClient); - void setWeekRule(const std::map<int, std::vector<LActRuleWeekRecord>>& weekRuleMap); + void setWeekRule(const std::map<int, std::vector<LActRuleWeekRecord>> &weekRuleMap); + private: void init(); + private://Perimete PerimeterElement perimeterElement; - // TriggerElement peTriggerElement; + // TriggerElement peTriggerElement; void initPerimeter(); @@ -72,14 +74,16 @@ private: PerStaticElement perStaticElement; + void initPerStatic(); + private://Perimete PerimeterElement perHubElement; - // TriggerElement peTriggerElement; + // TriggerElement peTriggerElement; void initPerHub(); + private: - ffmpeg::VideoCaptureElement videoCaptureElement; YoloRpcElement yoloRpcElement; FaceRpcElement faceRpcElement; FaceExtractElement faceExtractElement; @@ -108,7 +112,9 @@ std::map<int, std::vector<LActRuleWeekRecord>> m_weekRuleMap; SdkRuleMap m_sdkRuleMap; std::string m_localIp; + std::string getFullFileName(); + std::mutex mutex; }; diff --git a/QiaoJiaSystem/StructureApp/PerimeterElement.cpp b/QiaoJiaSystem/StructureApp/PerimeterElement.cpp index b605b07..ca48b0f 100644 --- a/QiaoJiaSystem/StructureApp/PerimeterElement.cpp +++ b/QiaoJiaSystem/StructureApp/PerimeterElement.cpp @@ -14,15 +14,15 @@ #include <jsoncpp/json/json.h> #define ALARM_PERCENT (10) //10% + PerimeterElement::PerimeterElement(const SdkRule &rule) : m_sdkRule(rule), PipeElement(true), trackingTrigger(nullptr), mRealNum(0), - m_triggerElement(rule.nTriggerDelay*8,0), + m_triggerElement(rule.nTriggerDelay * 8, 0), pManagerEsDB(nullptr), - m_bIsMask(true) -{ + m_bIsMask(true) { pManagerEsDB = new EsDBTool(appPref.getStringData("ipAdd"), appPref.getIntData("ipPort")); } @@ -64,37 +64,32 @@ // DBG("picDate="<<picDate); } - if (m_sdkRule.nSdkType == PerimeterSdk) - { + if (m_sdkRule.nSdkType == PerimeterSdk) { - if(m_bIsMask) - { - std::vector<Point> poly2; - std::vector<Point> interPoly; - poly2.push_back(Point(rect.x(),rect.y())); - poly2.push_back(Point(rect.x()+rect.width(),rect.y())); - poly2.push_back(Point(rect.x()+rect.width(),rect.y()+rect.height())); - poly2.push_back(Point(rect.x(),rect.y()+rect.height())); - IntAreaCalcUtil::PolygonClip(poly1,poly2,interPoly); - float inter = IntAreaCalcUtil::intAreaCalc(interPoly); - float total1 =IntAreaCalcUtil::intAreaCalc(poly1); - float total2 = IntAreaCalcUtil::intAreaCalc(poly2); - int per1 = (int)(inter / total1 * 100); - int per2 = (int)(inter / total2 * 100); - int per=std::max(per1,per2); + if (m_bIsMask) { + std::vector<Point> poly2; + std::vector<Point> interPoly; + poly2.push_back(Point(rect.x(), rect.y())); + poly2.push_back(Point(rect.x() + rect.width(), rect.y())); + poly2.push_back(Point(rect.x() + rect.width(), rect.y() + rect.height())); + poly2.push_back(Point(rect.x(), rect.y() + rect.height())); + IntAreaCalcUtil::PolygonClip(poly1, poly2, interPoly); + float inter = IntAreaCalcUtil::intAreaCalc(interPoly); + float total1 = IntAreaCalcUtil::intAreaCalc(poly1); + float total2 = IntAreaCalcUtil::intAreaCalc(poly2); + int per1 = (int) (inter / total1 * 100); + int per2 = (int) (inter / total2 * 100); + int per = std::max(per1, per2); - if(ALARM_PERCENT <= per) - { - //DBG("per 1="<<per1<<" per2="<<per2<<" per="<<per); - m_recVec.push_back(obj.rect); - num++; - } + if (ALARM_PERCENT <= per) { + //DBG("per 1="<<per1<<" per2="<<per2<<" per="<<per); + m_recVec.push_back(obj.rect); + num++; + } } - } - else if (mPolygon.containsPoint(center, Qt::OddEvenFill) || !m_bIsMask) - { + } else if (mPolygon.containsPoint(center, Qt::OddEvenFill) || !m_bIsMask) { m_recVec.push_back(obj.rect); @@ -102,23 +97,22 @@ } - } switch (m_sdkRule.nSdkType) { case PerimeterSdk: //state = num > 0 ; - state =( num !=mRealNum); - // DBG("num="<<num<< "time="<< picDate); + state = (num != mRealNum); + // DBG("num="<<num<< "time="<< picDate); break; case CrowdSdk: - state = num > m_sdkRule.nAlarmNumLowerLimit && num !=mRealNum; + state = num > m_sdkRule.nAlarmNumLowerLimit && num != mRealNum; break; case PerHubSdk: - state = num > m_sdkRule.nAlarmNumLowerLimit && num < m_sdkRule.nAlarmNumUpperLimit && num !=mRealNum; + state = num > m_sdkRule.nAlarmNumLowerLimit && num < m_sdkRule.nAlarmNumUpperLimit && num != mRealNum; // if(m_sdkRule.nAlarmNumLowerLimit>=0) @@ -154,12 +148,10 @@ m_triggerElement.setState(state); m_triggerElement.triggerOnce(); - if (m_triggerElement.getTriggerState() ) - { - if(num > 0) { + if (m_triggerElement.getTriggerState()) { + if (num > 0) { cv::Mat t_image = image(CutMask()).clone(); - if(t_image.empty()) - { + if (t_image.empty()) { DBG("t_image empty"); return; } @@ -230,7 +222,7 @@ void PerimeterElement::setMask(std::string mask) { QJsonArray arrayAreas = getJsonArrayFromQString(QString::fromStdString(mask)); if (arrayAreas.isEmpty() && m_sdkRule.nSdkType != PerimeterSdk) { - m_bIsMask=false; + m_bIsMask = false; return;//do not detect } int size = arrayAreas.size(); @@ -241,15 +233,11 @@ QJsonObject obj = jsonValue.toObject(); int x = obj.value("x").toDouble() * 4; int y = obj.value("y").toDouble() * 4; - if(m_sdkRule.nSdkType == PerimeterSdk) - { - poly1.push_back(Point(x,y)); + if (m_sdkRule.nSdkType == PerimeterSdk) { + poly1.push_back(Point(x, y)); + } else { + mPolygon << (QPoint(x, y)); } - else - { - mPolygon << (QPoint(x, y)); - } - } @@ -284,7 +272,7 @@ CvUtil::cvMat2Buffer(image, buffer); std::string strImgUrlTmp = ""; fdfsClient->fastFds->uploadFile(buffer, strImgUrlTmp, "jpg"); - // strImgUrl.append(fdfsClient->fastFds->getIp() + "/" + strImgUrlTmp); + // strImgUrl.append(fdfsClient->fastFds->getIp() + "/" + strImgUrlTmp); strImgUrl.clear(); strImgUrl = strImgUrlTmp; // strImgUrl.append("/").append(strImgUrlTmp); @@ -318,13 +306,13 @@ t_json["ChannlId"] = getProperty("ch_id"); // 閫氶亾id t_json["likeDate"] = AppUtil::getTimeSecString(); // 姣斿鏃堕棿 t_json["picAddress"] = m_sdkRule.strAddr.toStdString();// 鎶撴媿鍦板潃 - DBG("picAddress="<<m_sdkRule.strAddr.toStdString()); + DBG("picAddress=" << m_sdkRule.strAddr.toStdString()); t_json["picMaxUrl"] = "wait todo"; // 澶у浘璺緞 // t_json["Age"] ="wait todo"; t_json["picDate"] = time; // 鎶撴媿鏃堕棿锛屽繀椤绘湁 - DBG("picDate="<<time); + DBG("picDate=" << time); t_json["picLocalUrl"] = "wait todo"; // 鏈湴璺緞 t_json["isDelete"] = "1";//榛樿1 ,0鏃犳晥 1鏈夋晥 @@ -416,7 +404,7 @@ // DBG("RECT x="<<rect.x<<"y"<<rect.y<<"w"<<rect.width<<"h"<<rect.height); return rect; } -bool PerimeterElement::isAnd() -{ + +bool PerimeterElement::isAnd() { } diff --git a/QiaoJiaSystem/build/DataWebServer b/QiaoJiaSystem/build/DataWebServer index 1095109..0a67154 100755 --- a/QiaoJiaSystem/build/DataWebServer +++ b/QiaoJiaSystem/build/DataWebServer Binary files differ diff --git a/QiaoJiaSystem/build/config.json b/QiaoJiaSystem/build/config.json index b0d85af..e494774 100755 --- a/QiaoJiaSystem/build/config.json +++ b/QiaoJiaSystem/build/config.json @@ -1,26 +1,28 @@ { - "DEV_ID" : "DSVAD010120181119", - "ES_IP" : "192.168.1.122", - "ES_PORT" : 9200, - "FaceDetectionSampleSize" : 720, - "FaceSeachSleepTime" : 60, - "TotalLoadSize" : "500", - "buildAddr" : "/home/bsk/Apps/QiaoJiaSystem/build/", - "clusterID" : "", - "cutPath" : "/home/bsk/work/qiaojia/cut", - "encode_thread_num" : 3, - "erlCookie" : "123", - "erlFatherNode" : " ", - "erlNode" : "f6d7d984-858e-4235-a657-644927b3a628@192.168.1.148", - "erlPath" : "/opt/erlang/f6d7d984-858e-4235-a657-644927b3a628", - "loadPath" : "/home/bsk/work/qiaojia/load", - "localPasswd" : "123456", - "logPath" : "/home/bsk/work/log/", - "mainServerIp" : "192.168.1.182", - "mainServerPort" : "3697", - "netIfName" : "enp3s0", - "redis_buf_len" : 750, - "redis_ip" : "127.0.0.1", - "srsAddr" : "rtmp://192.168.1.122:1934/live/", - "webPort" : 11111 + "DEV_ID": "DSVAD010120181119", + "ES_IP": "192.168.1.122", + "ES_PORT": 9200, + "FaceDetectionSampleSize": 720, + "FaceSeachSleepTime": 60, + "TotalLoadSize": "500", + "buildAddr": "/home/bsk/Apps/QiaoJiaSystem/build/", + "clusterID": "", + "cutPath": "/home/bsk/work/qiaojia/cut", + "encode_thread_num": 3, + "erlCookie": "123", + "erlFatherNode": " ", + "erlNode": "f6d7d984-858e-4235-a657-644927b3a628@192.168.1.148", + "erlPath": "/opt/erlang/f6d7d984-858e-4235-a657-644927b3a628", + "loadPath": "/home/bsk/work/qiaojia/load", + "localPasswd": "123456", + "logPath": "/home/bsk/work/log/", + "mainServerIp": "192.168.1.182", + "mainServerPort": "3697", + "mainServerrUrl": "/addPerson/uploadToTemporary", + "addFromAnalyUrl":"192.168.1.182:3699/data/api-c/taskUser/addFromAnaly", + "netIfName": "enp3s0", + "redis_buf_len": 750, + "redis_ip": "127.0.0.1", + "srsAddr": "rtmp://192.168.1.122:1934/live/", + "webPort": 11111 } diff --git "a/QiaoJiaSystem/build/configjson\350\257\264\346\230\216.md" "b/QiaoJiaSystem/build/configjson\350\257\264\346\230\216.md" new file mode 100644 index 0000000..a59efa6 --- /dev/null +++ "b/QiaoJiaSystem/build/configjson\350\257\264\346\230\216.md" @@ -0,0 +1,121 @@ +##json鏂囦欢妯℃澘鍙婂弬鏁板惈涔� + + { + "DEV_ID" : "DSVAD010120181119", + "clusterID" : "", + "webPort" : 11111, + "netIfName" : "enp3s0", + "localPasswd" : "123456", + "ES_IP" : "192.168.1.122", + "ES_PORT" : 9200, + "mainServerIp" : "192.168.1.182", + "mainServerPort" : "3697", + "mainServerrUrl" : "/addPerson/uploadToTemporary", + "TotalLoadSize" : "500", + "buildAddr" : "/home/bsk/Apps/QiaoJiaSystem/build/", + "cutPath" : "/home/bsk/work/qiaojia/cut", + "loadPath" : "/home/bsk/work/qiaojia/load", + "logPath" : "/home/bsk/work/log/", + "FaceDetectionSampleSize" : 720, + "FaceSeachSleepTime" : 60, + "encode_thread_num" : 3, + "erlCookie" : "123", + "erlFatherNode" : " ", + "erlNode" : "f6d7d984-858e-4235-a657-644927b3a628@192.168.1.148", + "erlPath" : "/opt/erlang/f6d7d984-858e-4235-a657-644927b3a628", + "redis_buf_len" : 750, + "redis_ip" : "127.0.0.1", + "srsAddr" : "rtmp://192.168.1.122:1934/live/" + } + +---- +---- +* DEV_ID + >璁惧id + +* clusterID + >闆嗙兢id + +* webPort + >webserver缁檍ava鎺ュ彛鐨勭鍙� + +* netIfName + >褰撳墠鏈哄櫒鐨勭綉缁滃悕锛屼究浜庢煡璇p鍦板潃绛� + +* localPasswd + >褰撳墠鏈哄櫒鐨勭敤鎴峰悕鐨勫瘑鐮�? + +--- +* ES_IP + >es闆嗙兢鐨刬p + +* ES_PORT + >es闆嗙兢鐨勭鍙� +--- + +--- +* mainServerIp + >浜哄憳涓婁紶鐨刬p + +* mainServerPort + >浜哄憳涓婁紶鐨勭鍙� + +* mainServerrUrl + >浜哄憳涓婁紶鐨勬帴鍙rl +--- + +--- +* TotalLoadSize + >涓嬭浇鏂囦欢鐨勬渶澶у瓨鍌ㄧ┖闂� + +* buildAddr + >鎵ц鏂囦欢鐨勮矾寰� + +* cutPath + >瑁佸壀鏂囦欢瀛樺偍鐩綍 + +* loadPath + >涓嬭浇鏂囦欢瀛樺偍鐩綍 + +* logPath + >鏃ュ織璺緞 +--- + +* FaceDetectionSampleSize + > down sample size(image down sample) for detect image,if it is 0,will detect by original image. + > + > 浜鸿劯妫�娴� + +* FaceSeachSleepTime + >浜鸿劯瀵规瘮鏈嶅姟鏁版嵁鍒锋柊寤惰繜鏃堕棿 + +--- +* encode_thread_num + >缂栫爜绾跨▼涓暟 + +* erlCookie + >erlang闆嗙兢鐨刢ookie + +* erlFatherNode + >erlang闆嗙兢涓昏妭鐐� + +* erlNode + >erlang鑺傜偣鍚嶇О + +* erlPath + >erlang鑺傜偣鎵�鍦ㄨ矾寰� +--- + +* redis_buf_len + >redis buf 闀垮害锛� + +* redis_ip + >redis ip + +* srsAddr + >rtmp鎺ㄦ祦鐨勫熀纭�鍦板潃 + + + + + diff --git a/syncDBTool/ErlangDbTool.cpp b/syncDBTool/ErlangDbTool.cpp index ff0a319..5e79726 100755 --- a/syncDBTool/ErlangDbTool.cpp +++ b/syncDBTool/ErlangDbTool.cpp @@ -1643,7 +1643,7 @@ t_feature_info.id = query.value(0).toString().toStdString(); t_feature_info.img = query.value(1).toString().toStdString(); t_feature_info.idcard = query.value(2).toString().toStdString(); - t_feature_info.enable = query.value(4).toString().toStdString(); + t_feature_info.enable = query.value(3).toString().toStdString(); dataCache.insert(std::make_pair(t_feature_info.id, t_feature_info)); } -- Gitblit v1.8.0