From 080afae264fe7ff89a54886f28dff208fe5a06c4 Mon Sep 17 00:00:00 2001
From: chenshijun <csj_sky@126.com>
Date: 星期二, 16 四月 2019 22:01:35 +0800
Subject: [PATCH] 整合代码

---
 QiaoJiaSystem/build/YoloServer                              |    0 
 QiaoJiaSystem/build/killAll.sh                              |    0 
 QiaoJiaSystem/build/FaceSearchServer                        |    0 
 QiaoJiaSystem/build/YoloDetectClientTest                    |    0 
 QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.cpp |   57 +++++---
 QiaoJiaSystem/FaceDetectServer/FaceDetectServerI.h          |    8 +
 QiaoJiaSystem/build/config.json                             |   48 ++++----
 QiaoJiaSystem/build/syncDBClient                            |    0 
 syncDBTool/ErlangDbTool.cpp                                 |    1 
 QiaoJiaSystem/build/FaceDetectServer                        |    0 
 QiaoJiaSystem/build/DataWebServer                           |    0 
 QiaoJiaSystem/build/FaceDetectResourcesTest                 |    0 
 QiaoJiaSystem/build/FaceExtractServer                       |    0 
 QiaoJiaSystem/DataManagerServer/http_configserver.cpp       |   21 ++
 QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.h   |   45 ++++++-
 QiaoJiaSystem/build/VideoAnalysFromHC                       |    0 
 QiaoJiaSystem/DataManagerServer/http_configserver.h         |   78 ++++++++++++
 QiaoJiaSystem/FaceSearchServer/FaceDBCompareServer.cpp      |   32 ----
 QiaoJiaSystem/FaceSearchServer/FaceDBCompareServer.h        |   25 +++
 19 files changed, 226 insertions(+), 89 deletions(-)

diff --git a/QiaoJiaSystem/DataManagerServer/http_configserver.cpp b/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
index 5761756..4e61e33 100644
--- a/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
+++ b/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
@@ -2142,9 +2142,12 @@
 //        auto resType = erlangDbTool->findAllTypeInfo();
         string json = "[";
         for (auto &item : resDB) {
+            //-------------------maybe delete ?------------------------
             if (item.second.tableName.find("lt_") == 0) {
                 continue;
             }
+            //-------------------maybe delete end----------------------
+
             string subJson = "{ ";
             subJson.append("\"uuid\":\"" + item.second.uuid + "\",");
             subJson.append("\"tableName\":\"" + item.second.tableName + "\",");
@@ -3029,8 +3032,19 @@
         }
     }
 
-    if (videoStVec.size() >= 1) {
-        std::string strVideoName = strPath + videoStVec[0].ToVideoName();
+    std::vector<VideoName_s_t> videoStVec_;
+    auto imgTm_ = AppUtil::ParseFromHypenTimeStr(imgSt.m_timeStamp);
+    for (auto &item : videoStVec) {
+        auto resTime_ = AppUtil::ParseFromHypenTimeStr(item.m_timeStamp);
+        auto timeRes = difftime(mktime(&resTime_), mktime(&imgTm_));
+        if ((timeRes < 0 && difftime(mktime(&imgTm_), mktime(&resTime_)) >= 30) || (timeRes / 60 >= 3)) {
+            continue;
+        }
+        videoStVec_.emplace_back(item);
+    }
+
+    if (videoStVec_.size() >= 1) {
+        std::string strVideoName = strPath + videoStVec_[0].ToVideoName();
         INFO("ImageName: " << imgKey << "  SingleMatchVideo: " << strVideoName);
         return strVideoName;
     } else {
@@ -3336,8 +3350,7 @@
         rule.strLine = value["strLine"].asCString();
         rule.strExLine = value["strExLine"].asCString();
 
-        if(!value["strPerimeterObjType"].empty())
-        {
+        if (!value["strPerimeterObjType"].empty()) {
             rule.strPerimeterObjType = value["strPerimeterObjType"].asCString();
         }
         if (rule.strCamId.isEmpty()) {
diff --git a/QiaoJiaSystem/DataManagerServer/http_configserver.h b/QiaoJiaSystem/DataManagerServer/http_configserver.h
index 00fff1c..98399e4 100644
--- a/QiaoJiaSystem/DataManagerServer/http_configserver.h
+++ b/QiaoJiaSystem/DataManagerServer/http_configserver.h
@@ -121,7 +121,7 @@
     std::string createDatabase(std::string ip, unsigned int port, std::string content, PResponse &response);
 
     /**
-     *
+     * 鍒犻櫎鏁版嵁 搴曞簱
      * @param ip
      * @param port
      * @param content
@@ -130,23 +130,97 @@
      */
     std::string deleteDatabase(std::string ip, unsigned int port, std::string content, PResponse &response);
 
+    /***
+     * 鏇存柊鏁版嵁 搴曞簱
+     * @param ip
+     * @param port
+     * @param content
+     * @param response
+     * @return
+     */
     std::string updateDatabase(std::string ip, unsigned int port, std::string content, PResponse &response);
 
+    /**
+     * 鏌ヨ鎵�鏈夊悓姝ュ簱
+     * @param ip
+     * @param port
+     * @param content
+     * @param response
+     * @return
+     */
     std::string findAllDatabase(std::string ip, unsigned int port, std::string content, PResponse &response);
 
+    /**
+     * 鏌ヨ鎵�鏈夋湰鍦板簱
+     * @param ip
+     * @param port
+     * @param content
+     * @param response
+     * @return
+     */
     std::string findLocalDatabase(std::string ip, unsigned int port, std::string content, PResponse &response);
 
+    /***
+     * 涓婁紶浜哄憳
+     * @param ip
+     * @param port
+     * @param content
+     * @param response
+     * @return
+     */
     std::string addPerson(std::string ip, unsigned int port, std::string content, PResponse &response);
 
+    //#todo 鎵归噺娣诲姞浜哄憳鍊熷彛
+
+    /***
+     * 鍚戝悓姝ュ簱鎵归噺娣诲姞浜哄憳鍙婃洿鏂颁汉鍛�
+     * feature_addPersonTracking 鍒嗘敮涓洿鏂板姛鑳藉垎绂讳负鏂板�熷彛
+     * @param ip
+     * @param port
+     * @param content
+     * @param response
+     * @return
+     */
     std::string addPersons(std::string ip, unsigned int port, std::string content, PResponse &response);
 
+    /***
+     * 鍒ゆ柇鍚屾搴撲腑浜哄憳鏄惁瀛樺湪
+     * @param ip
+     * @param port
+     * @param content
+     * @param response
+     * @return
+     */
     std::string personIsExists(std::string ip, unsigned int port, std::string content, PResponse &response);
 
+    /**
+     * 鏇存柊鍚屾搴撲腑鐨勪汉鍛�
+     * @param ip
+     * @param port
+     * @param content
+     * @param response
+     * @return
+     */
     std::string updatePersonByOldId(std::string ip, unsigned int port, std::string content, PResponse &response);
 
-
+    /**
+     * 鍒犻櫎浜哄憳
+     * @param ip
+     * @param port
+     * @param content
+     * @param response
+     * @return
+     */
     std::string delPerson(std::string ip, unsigned int port, std::string content, PResponse &response);
 
+    /**
+     * 鍔犺浇鐗瑰緛
+     * @param ip
+     * @param port
+     * @param content
+     * @param response
+     * @return
+     */
     std::string loadFaceFeaData(std::string ip, unsigned int port, std::string content, PResponse &response);
 
 
diff --git a/QiaoJiaSystem/FaceDetectServer/FaceDetectServerI.h b/QiaoJiaSystem/FaceDetectServer/FaceDetectServerI.h
index 09dfe1a..fed2cdb 100644
--- a/QiaoJiaSystem/FaceDetectServer/FaceDetectServerI.h
+++ b/QiaoJiaSystem/FaceDetectServer/FaceDetectServerI.h
@@ -10,6 +10,10 @@
     ~FaceDetectServerI();
     // FaceDetectServer interface
 public:
+    /**
+     * 浜鸿劯妫�娴�
+     * @return
+     */
     virtual FaceDetect::Faces faceDetect(Ice::Int, Ice::Int, const std::string &, const Ice::Current &) override;
 
 private:
@@ -19,6 +23,10 @@
 
     // FaceDetectServer interface
 public:
+    /**
+     * 浜鸿劯浜屾灞炴�ф彁鍙�
+     * @return
+     */
     virtual FaceDetect::ThftResult faceProperty(Ice::Int, Ice::Int, const FaceDetect::FacePos &, const std::string &, const Ice::Current &) override;
 
 private:
diff --git a/QiaoJiaSystem/FaceSearchServer/FaceDBCompareServer.cpp b/QiaoJiaSystem/FaceSearchServer/FaceDBCompareServer.cpp
index 1c7ca29..3281d1c 100644
--- a/QiaoJiaSystem/FaceSearchServer/FaceDBCompareServer.cpp
+++ b/QiaoJiaSystem/FaceSearchServer/FaceDBCompareServer.cpp
@@ -62,6 +62,7 @@
     DBG("m_dbRWLocks ok");
     m_dbRWLocks_Lock.unlock();
 //    ClockTimer clockTimer("compare ");
+    //淇濇姢 t_compareResults
     RWLock t_rwLock;
 
     m_rwLock.rdlock();
@@ -80,12 +81,15 @@
             FaceResult tface{0, data.uuid, alarmData->tableName, sc, data.faceUrl, data.idcard, ""};
             t_rwLock.wrlock();
             //#todo
+            // 瀵规瘮缁撴灉淇濆瓨
             if (sc < t_compareResults.end()->second.confidence) {
                 t_rwLock.unlock();
                 return;
             }
+            // 淇濆瓨瀵规瘮缁撴灉
             t_compareResults.insert(make_pair(tface.confidence, tface));
             //#todo 10
+            // 鍙繚鐣欐渶楂樼殑n涓姣旂粨鏋�
             if (t_compareResults.size() > topN) {
                 t_compareResults.erase((--t_compareResults.end()), t_compareResults.end());
             }
@@ -123,6 +127,7 @@
     auto &t_topResult = topResult[key];
     DBG("topResult[key] ok");
     t_topResult.clear();
+    // 瀵规瘮缁撴灉杞崲
     for (auto &item : t_compareResults) {
         auto &it = item.second;
         //#todo
@@ -203,16 +208,8 @@
             m_tableName = str_tab.substr(1, str_tab.length() - 2);//.append("_fea");
             DBG("m_tableName is  " << m_tableName);
 
-//            string tet = "./syncDBClient ";
-//            string str_json = writer.write(t_json);
-//            tet.append("\"" + str_json.substr(0, str_json.length() - 1) + "\" ");
-//            INFO(tet);
-//            system(tet.c_str());
             dataMap.clear();
             try {
-                // init
-//                BISTL::BiMapFeaData biMapFeaData(m_tableName);
-//                auto mymap = biMapFeaData.getMap();
 
                 auto mymap = m_erlangDbTool->loadFaceFeaData(m_tableName);
                 DBG(m_tableName << "  db size is  " << mymap.size());
@@ -231,29 +228,10 @@
                     test.enabled = it.enable;
                     test.monLevel = it.monLevel;
                 }
-//                //#todo
-//                for (auto it = mymap->begin(); it != mymap->end(); it++) {
-//                    string str_uuid(it->second.m_id.data());
-//                    string ft(it->second.m_feature.data());
-//                    string imgUrl(it->second.m_imgUrl.data());
-//                    string strIdCard(it->second.m_idcard.data());
-//                    string str2;
-//                    str2 = base64.Decode(ft.data(), ft.length());
-//                    std::vector<unsigned char> t_fea;
-//                    t_fea.resize(str2.size());
-//                    memcpy(t_fea.data(), str2.data(), str2.size());
-//                    auto &test = dataMap[str_uuid];
-//                    test.uuid = str_uuid;
-//                    test.features.push_back(t_fea);
-//                    test.faceUrl = imgUrl;
-//                    test.idcard = strIdCard;
-//                }
             } catch (const std::exception &e) {
                 printf("Exception:%s\n", e.what());
-//                BISTL::shared_memory_object::remove(m_tableName.c_str());
             }
             appPref.setIntData(m_tableName, 1);
-//            BISTL::shared_memory_object::remove(m_tableName.c_str());
         } else {
             //#todo get sqlite3 data
             m_tableName = t_json["tableName"].asCString();
diff --git a/QiaoJiaSystem/FaceSearchServer/FaceDBCompareServer.h b/QiaoJiaSystem/FaceSearchServer/FaceDBCompareServer.h
index 0667bbf..6ec4fae 100644
--- a/QiaoJiaSystem/FaceSearchServer/FaceDBCompareServer.h
+++ b/QiaoJiaSystem/FaceSearchServer/FaceDBCompareServer.h
@@ -21,19 +21,35 @@
 public:
     FaceDBCompareServer();
 
+    /**
+     * 鏈湴搴撴瀯閫�
+     */
     FaceDBCompareServer(SqliteFaceEncap *);
 
+    /***
+     * 鍚屾搴撴瀯閫�
+     */
     FaceDBCompareServer(ErlangTool::ErlangDbTool *);
 
     ~FaceDBCompareServer();
 
     virtual bool compare(std::thread::id key, AlarmData *alarmData, int topN);
 
+    /***
+     * @deprecated
+     * @param key
+     * @param alarmData
+     * @return
+     */
     bool compare(std::thread::id key, AlarmData *alarmData);
 
     FaceResults getTopResult(std::thread::id key);
 
 private:
+    /**
+     * 鍔犺浇鐗瑰緛
+     * @param str_config
+     */
     virtual void loadDBData(std::string str_config);
 
 protected:
@@ -41,10 +57,14 @@
     std::string m_tableName;
 
     int fea_size;
+    // 淇濇姢鐖剁被鐨刣ataMap
     RWLock m_rwLock;
     std::mutex topResultMtx;
     std::map<std::thread::id, FaceResults> topResult;
+
+    // 淇濇姢m_dbRWLocks
     RWLock m_dbRWLocks_Lock;
+    // 淇濇姢 topResult
     std::map<std::thread::id, RWLock> m_dbRWLocks;
 
     ErlangTool::ErlangDbTool *m_erlangDbTool;
@@ -54,8 +74,9 @@
 
 static bool getRet(std::string startTime, std::string endTime) {
     auto crrentTime = AppUtil::getTimeSecString();
-
-    if (crrentTime.compare(startTime) > 0 && (crrentTime.compare(endTime) < 0 || endTime == "0000-00-00 00:00:00")) {
+    // 鏍规嵁褰撳墠鏃堕棿鏄惁鍦ㄨ缃殑鏃堕棿鍐呮垨姘镐箙鐢熸晥
+    if (crrentTime.compare(startTime) > 0 && (crrentTime.compare(endTime) < 0
+                                              || endTime == "0000-00-00 00:00:00")) {
         return true;
     }
     return false;
diff --git a/QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.cpp b/QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.cpp
index 30fed97..e37f88a 100644
--- a/QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.cpp
+++ b/QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.cpp
@@ -123,14 +123,25 @@
 }
 
 //#todo 浼樺寲
+/**
+ *
+ * @param feature 闇�瑕佸姣旂殑鐗瑰緛
+ * @param info_json 闇�瑕佹彃鍏ユ暟鎹簱鐨刯son瀛楁
+ * @param topN 鑾峰彇鍓嶅嚑浣�
+ * @param score 瀵规瘮鐨勯槇鍊�
+ * @return
+ */
 ::FaceSearch::FaceResults
 FaceFeatureSearchServerI::faceSearchTopN(const ::FaceSearch::Data &feature, const ::std::string &info_json,
                                          ::Ice::Int topN, ::Ice::Float score, const ::Ice::Current &) {
     ClockTimer clockTimer("faceSearchTopN  " + to_string(score) + "  :");
     INFO("faceSearchTopN start");
+    // 鑾峰彇褰撳墠绾跨▼id
     thread::id key = std::this_thread::get_id();
     ::FaceSearch::FaceResults results;
     FaceResults t_TableCompareResult;
+
+    // 杩涜瀵规瘮鐨勬暟鎹粨鏋�
     AlarmData featureData;
     featureData.num = topN;
     featureData.feature.resize(feature.size());
@@ -142,14 +153,19 @@
     if (reader.parse(info_json, value)) {
         //#todo
         m_rwLock.rdlock();
+        // 鐗瑰緛杞寲涓篵ase64瀛樺叆鍒癹son涓�
         std::string feature_base64;
         feature_base64 = base64.Encode(feature.data(), feature.size());
         value["FaceFeature"] = feature_base64;
+        //---------------------------
+
         DBG("auto &it : m_faceFCMAP start " << m_faceFCMAP.size());
         //#todo lock
+        // 閬嶅巻涓嶅悓鐨勫簳搴撹繘琛屾瘮瀵�
         for (auto &it : m_faceFCMAP) {
             auto &t_FaceFC = it.second;
             auto t_tableInfo = m_tableType[it.first];
+            // 鑾峰彇搴曞簱鐨勬姤璀︾姸鎬�
             bool ret = getRet(t_tableInfo.startTime, t_tableInfo.endTime);
             if (ret) {
                 string t_alarmRet = t_tableInfo.bwType;
@@ -157,10 +173,12 @@
                 //#todo 闈炲悓姝ュ簱鏄惁闇�瑕佹瘮杈冿紵
 
                 DBG("m_faceFCMAP compare start " << it.first);
+                // 瀵规瘮
                 t_FaceFC->compare(key, &featureData, topN);
                 DBG("m_faceFCMAP compare end " << it.first);
-
+                // 鏍规嵁褰撳墠绾跨▼id鑾峰彇瀵规瘮缁撴灉
                 auto t_results = t_FaceFC->getTopResult(key);
+                // 瀵规瘮缁撴灉杞崲
                 for (auto &t_item : t_results) {
                     t_item.tableName = it.first;
                     t_item.alarmRet = t_alarmRet;
@@ -176,6 +194,7 @@
 
         DBG("t_TableCompareResult size" << t_TableCompareResult.size());
         //sort_all_results
+        // 鎺掑簭
         for (auto itor = t_TableCompareResult.begin(); itor != t_TableCompareResult.end(); ++itor) {
             float new_confidence = itor->confidence;
             auto rtTR = results.rbegin();
@@ -194,6 +213,7 @@
                 ERR("topResult is null");
             }
             auto itTR(rtTR.base());
+            // 鏁版嵁杞寲
             ::FaceSearch::FaceResult t_faceCR;
             t_faceCR.id = itor->id;
             t_faceCR.uuid = itor->uuid;
@@ -208,9 +228,10 @@
             results.insert(itTR, t_faceCR);
         }
         bool retface = true;
-//        cout << __FUNCTION__ << " -> " << __LINE__ << " ->  " << results.size() << endl;
         //#todo send message
         if (results.size() > 0) {
+            // 鏍规嵁浼犲叆鐨勫姣旈槇鍊煎仛绛涢��
+            // 鏈垎鏀彧淇濆瓨浜嗙涓�涓姣旂粨鏋�
             for (auto &item : results) {
                 //#todo 寰楀垎姣旇緝锛屽簲璇ュ湪compare涓繘琛�
                 if (item.confidence < score) {
@@ -226,15 +247,6 @@
                     break;
                 }
                 value["personId"] = item.uuid.size() > 0 ? item.uuid : "";//鍏宠仈搴曞簱浜哄憳id,浜鸿劯id
-
-//                string tmp_tableName = item.tableName;
-//                if (tmp_tableName.find("lt_") == 0) {
-//                    tmp_tableName = tmp_tableName.insert(tmp_tableName.find("lt_") + 3, "::");
-//                    value["BaseName"] = tmp_tableName;//鍏宠仈搴曞簱琛ㄥ悕
-//                } else {
-//                    value["BaseName"] = item.tableName.size() > 0 ? item.tableName : "";//鍏宠仈搴曞簱琛ㄥ悕
-//                }
-
                 value["BaseName"] = item.tableName.size() > 0 ? item.tableName : "";//鍏宠仈搴曞簱琛ㄥ悕
 
                 value["likePer"] = item.confidence > 0 ? item.confidence : 0.0;
@@ -244,10 +256,8 @@
                 value["personIsHub"] = item.alarmRet.size() > 0 ? item.alarmRet : "4";
 
                 auto str_uuid = value["Id"].asString();
-//                DBG(value.toStyledString());
 
-                cout << __FUNCTION__ << " -> " << __LINE__ << " ->  " << "value.toStyledString()  "
-                     << value.toStyledString() << "\n score   " << score << endl;
+                DBG("value.toStyledString()  " << value.toStyledString() << "\n score   " << score);
 //                DBG("score  " << score);
                 retface = pManagerEsDB.insertData("videopersons", "perVideoPicture", value.toStyledString(),
                                                   str_uuid);
@@ -258,37 +268,35 @@
             value["personIsHub"] = "4";
             value["likePer"] = 0.0;
             DBG(value.toStyledString());
-//            cout << __FUNCTION__ << " -> " << __LINE__ << " ->  " << "value.toStyledString()  "
-//                 << value.toStyledString() << endl;
             retface = pManagerEsDB.insertData("videopersons", "perVideoPicture", value.toStyledString(),
                                               str_uuid);
         }
         if (!retface) {
             ERR("insert error");
         } else {
-            cout << __FUNCTION__ << " -> " << __LINE__ << " ->  " << "retface  " << retface << endl;
+            ERR("retface  " << retface);
         };
     } else {
         ERR("json is error" << info_json);
     }
 
 
-
-
-//    for (auto &item : t_tables) {
-//        DBG(item);
-//    }
     return results;
 }
 
 bool FaceFeatureSearchServerI::loadFeatureData(FaceFeatureSearchServerI *faceFea) {
+    // 鍔犺浇搴曞簱鏁版嵁
     ErlangTool::map_TabDataCache dataBaseCache = faceFea->m_erlangDbTool.findAllDatabase();
     if (dataBaseCache.size() < 0 && faceFea->m_retUpdatePthread) {
+        // 杩欓噷杩涗笉鏉ュ惂锛�
         faceFea->m_retUpdatePthread = false;
+        //鎺у埗涓嬫柟绾跨▼鍙惎鍔ㄤ竴娆�
         std::thread thd(dataUpdate, faceFea);
         thd.detach();
     }
+    // 鑾峰彇琛ㄤ俊鎭�
     auto typeInfoCache = faceFea->m_erlangDbTool.findAllTypeInfo();
+    //娓呴櫎鏃ф暟鎹�
     faceFea->m_tableType.clear();
     string str_config = faceFea->m_erlangDbTool.getConfigJsonString();
 
@@ -368,6 +376,7 @@
     faceFea->m_inTime = getTimeLong();
     if (faceFea->m_retUpdatePthread) {
         faceFea->m_retUpdatePthread = false;
+        //鎺у埗涓嬫柟绾跨▼鍙惎鍔ㄤ竴娆�
         std::thread thd(dataUpdate, faceFea);
 
 //        faceFea->m_erlangDbTool.test(faceFea, erlangCallBackFunc);
@@ -418,6 +427,10 @@
 //    pthread_mutex_unlock(&(func_cond_mutex));
 //}
 
+/**
+ * 绛夊緟搴曞簱鍔犺浇瀹屾垚锛屽苟绛夊緟淇″彿瑙﹀彂鏂扮殑鏁版嵁鍒锋柊
+ * @param faceFea
+ */
 void FaceFeatureSearchServerI::dataUpdate(FaceFeatureSearchServerI *faceFea) {
     long inTime = faceFea->m_inTime;
     // modify all db ready start update, <10s
diff --git a/QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.h b/QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.h
index 7a1c16b..8a70b5c 100644
--- a/QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.h
+++ b/QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.h
@@ -24,6 +24,8 @@
 //};
 
 static bool t_live_ret = true;
+
+//鍏ㄥ眬鐨勪俊鍙烽噺锛屽鏋滄暟鎹埛鏂板欢杩熻繃楂樺彲浠ユ敼涓轰娇鐢╪sq娑堟伅闃熷垪銆�
 static pthread_cond_t func_cond(PTHREAD_COND_INITIALIZER);
 static pthread_mutex_t func_cond_mutex(PTHREAD_MUTEX_INITIALIZER);
 
@@ -39,44 +41,71 @@
     virtual ~FaceFeatureSearchServerI();
 
 public:
+    /**
+     * @deprecated
+     * @return
+     */
     virtual ::FaceSearch::FaceResults faceSearchMax(const ::FaceSearch::Data &, const ::std::string &,
                                                     const ::Ice::Current & = ::Ice::emptyCurrent);
 
+    /***
+     * 瀵规瘮鑾峰彇绗琻澶х殑浜哄憳
+     * @return
+     */
     virtual ::FaceSearch::FaceResults
     faceSearchTopN(const ::FaceSearch::Data &, const ::std::string &, ::Ice::Int, ::Ice::Float,
                    const ::Ice::Current & = ::Ice::emptyCurrent);
 
 private:
+    /**
+     * @deprecated
+     * @param nodeName
+     * @param cookie
+     * @return
+     */
     bool initErlang(std::string nodeName, std::string cookie);
 
-    //#todo delete cache
 
     //#todo loadData
+    /**
+     * 鍔犺浇浜鸿劯灞炴��
+     * @param faceFea
+     * @return
+     */
     static bool loadFeatureData(FaceFeatureSearchServerI *faceFea);
 
+    /**
+     * 鏁版嵁鏇存柊绾跨▼锛屾湁淇″彿瑙﹀彂鎵嶄細鏇存柊
+     * @param faceFea
+     */
     static void dataUpdate(FaceFeatureSearchServerI *faceFea);
 
+    /***
+     * 绛夊緟搴曞簱琛ㄥ姞杞芥垚鍔�
+     * @param faceFea
+     * @param loop
+     */
     static void waitTables(FaceFeatureSearchServerI *faceFea, int loop = -1);
-
-//    void erlangCallBackFunc(std::string);
 
 private:
     long m_inTime;
+    // 鐗瑰緛瀵规瘮绫�
     std::map<std::string, FaceDBCompareServer *> m_faceFCMAP;
+    // 搴曞簱绫诲瀷锛岀敓鏁堟椂闂寸瓑
     std::map<std::string, TableInfo> m_tableType;
 
+    // 瀵� m_faceFCMAP 鍔犺鍐欓攣
+    // 褰撳姣旀椂锛屾暟鎹埛鏂颁細绛夊緟
     RWLock m_rwLock;
+
     ErlangTool::ErlangDbTool m_erlangDbTool;
+
     SqliteFaceEncap m_sqliteFaceEncap;
+
     std::mutex m_mutex;
     bool m_retUpdatePthread;
 
     Base64 base64;
-//    Ice::ObjectPrx base_FaceMemoryData;
-//    IceRpcClient<::FaceSearch::FaceMemoryDataPrx> m_faceMemoryClient;
-//    ::FaceSearch::FaceMemoryDataPrx serverFaceMemoryData;
-
-//    func_cond_mutex(PTHREAD_MUTEX_INITIALIZER), func_cond(PTHREAD_COND_INITIALIZER)
 
     EsDBTool pManagerEsDB;//(appPref.getStringData("ipAdd"), appPref.getIntData("ipPort"));
 };
diff --git a/QiaoJiaSystem/build/DataWebServer b/QiaoJiaSystem/build/DataWebServer
index 664c46a..159d12e 100755
--- a/QiaoJiaSystem/build/DataWebServer
+++ b/QiaoJiaSystem/build/DataWebServer
Binary files differ
diff --git a/QiaoJiaSystem/build/FaceDetectResourcesTest b/QiaoJiaSystem/build/FaceDetectResourcesTest
index f9ddeb1..92a5db2 100755
--- a/QiaoJiaSystem/build/FaceDetectResourcesTest
+++ b/QiaoJiaSystem/build/FaceDetectResourcesTest
Binary files differ
diff --git a/QiaoJiaSystem/build/FaceDetectServer b/QiaoJiaSystem/build/FaceDetectServer
index 0bc5e41..80b8a99 100755
--- a/QiaoJiaSystem/build/FaceDetectServer
+++ b/QiaoJiaSystem/build/FaceDetectServer
Binary files differ
diff --git a/QiaoJiaSystem/build/FaceExtractServer b/QiaoJiaSystem/build/FaceExtractServer
index e2aeb11..fddc622 100755
--- a/QiaoJiaSystem/build/FaceExtractServer
+++ b/QiaoJiaSystem/build/FaceExtractServer
Binary files differ
diff --git a/QiaoJiaSystem/build/FaceSearchServer b/QiaoJiaSystem/build/FaceSearchServer
index 5a2e1ea..eac0e3f 100755
--- a/QiaoJiaSystem/build/FaceSearchServer
+++ b/QiaoJiaSystem/build/FaceSearchServer
Binary files differ
diff --git a/QiaoJiaSystem/build/VideoAnalysFromHC b/QiaoJiaSystem/build/VideoAnalysFromHC
index 6343aa6..260d802 100755
--- a/QiaoJiaSystem/build/VideoAnalysFromHC
+++ b/QiaoJiaSystem/build/VideoAnalysFromHC
Binary files differ
diff --git a/QiaoJiaSystem/build/YoloDetectClientTest b/QiaoJiaSystem/build/YoloDetectClientTest
index 216cd5e..3310f97 100755
--- a/QiaoJiaSystem/build/YoloDetectClientTest
+++ b/QiaoJiaSystem/build/YoloDetectClientTest
Binary files differ
diff --git a/QiaoJiaSystem/build/YoloServer b/QiaoJiaSystem/build/YoloServer
index 43d76f7..156a647 100755
--- a/QiaoJiaSystem/build/YoloServer
+++ b/QiaoJiaSystem/build/YoloServer
Binary files differ
diff --git a/QiaoJiaSystem/build/config.json b/QiaoJiaSystem/build/config.json
index f009670..9f0e3e5 100755
--- a/QiaoJiaSystem/build/config.json
+++ b/QiaoJiaSystem/build/config.json
@@ -1,26 +1,26 @@
 {
-  "mainServerIp": "192.168.1.182",
-  "mainServerPort": "3697",
-  "logPath": "/home/basic/work/log/",
-  "DEV_ID": "DSVAD010120181119",
-  "ES_IP": "192.168.1.182",
-  "ES_PORT": 9200,
-  "FaceSeachSleepTime": 60,
-  "TotalLoadSize": "500",
-  "buildAddr": "/home/basic/Apps/QiaoJiaSystem/build/",
-  "cutPath": "/home/basic/work/qiaojia/cut",
-  "erlCookie": "",
-  "erlFatherNode": "",
-  "erlNode": "",
-  "erlPath": "",
-  "loadPath": "/home/basic/work/qiaojia/load",
-  "localPasswd": "123456",
-  "netIfName": "enp3s0",
-  "srsAddr": "rtmp://192.168.1.122:1934/live/",
-  "webPort": 11111,
-  "redis_ip": "127.0.0.1",
-  "redis_buf_len": 750,
-  "encode_thread_num": 2,
-  "FaceDetectionSampleSize": 720,
-  "clusterID" : "sssss"
+   "DEV_ID" : "DSVAD010120181119",
+   "ES_IP" : "192.168.1.182",
+   "ES_PORT" : 9200,
+   "FaceDetectionSampleSize" : 720,
+   "FaceSeachSleepTime" : 60,
+   "TotalLoadSize" : "500",
+   "buildAddr" : "/home/basic/Apps/QiaoJiaSystem/build/",
+   "clusterID" : "sssss",
+   "cutPath" : "/home/basic/work/qiaojia/cut",
+   "encode_thread_num" : 2,
+   "erlCookie" : "",
+   "erlFatherNode" : "",
+   "erlNode" : "",
+   "erlPath" : "",
+   "loadPath" : "/home/basic/work/qiaojia/load",
+   "localPasswd" : "123456",
+   "logPath" : "/home/basic/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
 }
diff --git a/QiaoJiaSystem/build/killAll.sh b/QiaoJiaSystem/build/killAll.sh
old mode 100644
new mode 100755
diff --git a/QiaoJiaSystem/build/syncDBClient b/QiaoJiaSystem/build/syncDBClient
index 32115d0..01cc242 100755
--- a/QiaoJiaSystem/build/syncDBClient
+++ b/QiaoJiaSystem/build/syncDBClient
Binary files differ
diff --git a/syncDBTool/ErlangDbTool.cpp b/syncDBTool/ErlangDbTool.cpp
index fcd3a0b..b42a94b 100755
--- a/syncDBTool/ErlangDbTool.cpp
+++ b/syncDBTool/ErlangDbTool.cpp
@@ -1621,6 +1621,7 @@
             "Select a.uuid as id ,a.faceUrl as img,a.feature,b.idCard as idcard,b.enabled,b.monitorLevel from '" +
             str_tableUuid +
             "_fea' as a ,'" + str_tableUuid + "' as b  where a.uuid = b.uuid and ( a.del_flag=0 AND b.del_flag=0);");
+        //Select a.uuid as id ,a.faceUrl as img,a.feature,b.idCard as idcard,b.enabled,b.monitorLevel from '0cd82a8b-5285-5737-ab19-8c07247c797e_fea' as a ,'0cd82a8b-5285-5737-ab19-8c07247c797e' as b  where a.uuid = b.uuid and ( a.del_flag=0 AND b.del_flag=0);
         QSqlQuery query(g_syncDbFile);
         query.prepare(sql);
         if (!query.exec()) {

--
Gitblit v1.8.0