From ce9d187fd294cca192a27f52719094e9df7b1b62 Mon Sep 17 00:00:00 2001
From: 孙天宇 <suntianyu@aiotlink.com>
Date: 星期二, 12 七月 2022 16:28:48 +0800
Subject: [PATCH] 优化仓库

---
 src/h_interface.cpp |   70 ++++++++++++++++++++++++++++++++--
 1 files changed, 65 insertions(+), 5 deletions(-)

diff --git a/src/h_interface.cpp b/src/h_interface.cpp
index 1d34297..3b3a751 100644
--- a/src/h_interface.cpp
+++ b/src/h_interface.cpp
@@ -8,24 +8,71 @@
 using namespace std;
 
 string m_staticStruct::model_path = "path";
+string m_staticStruct::model_cfg = "0"; // 鍒濆鍖栫粨鏋勪綋闈欐�佸彉閲忓��
+string m_staticStruct::model_wts = "0"; // 鍒濆鍖栫粨鏋勪綋闈欐�佸彉閲忓��
 int m_staticStruct::type = 1;
+bool m_staticStruct::isTrack= true;
+int m_staticStruct::max_cam_num = 0;
+int m_staticStruct::wander_time = 0;
+float m_staticStruct::mv_velocity = 0;
+float m_staticStruct::fall_rate = 0;
 
-// 鍒涘缓
+
 API void* create(const char *conf, int *max_chan)
 {
+    // CLog::Initialize("/opt/vasystem/bin/models/baseDetector/log.properties");
     CLog::Initialize("../config/log4cplus.properties");
     ReadJsonFromFile(conf);
     AriManager *handle = new AriManager();
+    *max_chan = m_staticStruct::max_cam_num;
+    for (int i = 1; i <= m_staticStruct::max_cam_num; ++i)
+    {
+        handle->add_cam(i);
+    }
+    Timer::getInstance()->reset();
     return handle;
 }
 
-// 鍘熸煡鎵剧粨鏋滄帴鍙�
 API void* get_result(void *handle, const void *img, const int chan)
 {
     AriManager *h = (AriManager*)handle;
     TResult *t_result = (TResult*)malloc(sizeof(TResult));
     init_TResult(t_result);
-    h->single_SDK(chan, img, *t_result);
+
+    Timer::getInstance()->out("eveTime before yolo");
+    // h->single_SDK(chan, img, *t_result);
+    Timer::getInstance()->out("eveTime runing yolo");
+    return t_result;
+}
+
+
+API void* get_result2(void *handle, const void *img, const int chan, const char* timestamp, const char* mode)
+{
+    DEBUG("-----------------------begin------------ ");
+    AriManager *h = (AriManager*)handle;
+    TResult *t_result = (TResult*)malloc(sizeof(TResult));
+    init_TResult(t_result);
+
+    if(!m_staticStruct::isTrack)
+    {
+        Timer::getInstance()->out("get_result2 before yolo");
+        h->single_SDK(chan, img, t_result);
+        Timer::getInstance()->out("get_result2 runing yolo");
+        return t_result;
+    }
+
+    h->single_SDK(chan, img, t_result, const_cast<char*>(timestamp), mode);
+    DEBUG("--cam id:" + to_string(chan) + "  image human_count:" + to_string(t_result->count));
+    for (int i = 0; i < t_result->count; ++i)
+    {
+        if(mode == "video"){
+            DEBUG("--human_id:" + to_string(t_result->targets[i].id)+"  human_confidence:" + to_string(t_result->targets[i].confidence) + "  human_attribute:" + std::string(t_result->targets[i].attribute) +  "  human_top:" + to_string(t_result->targets[i].rect.top)+" human_left:" + to_string(t_result->targets[i].rect.left) + "  human_right:" + to_string(t_result->targets[i].rect.right)+ "  human_bottom:" + to_string(t_result->targets[i].rect.bottom));
+        }
+        else{
+            DEBUG("human_confidence:" + to_string(t_result->targets[i].confidence) + "  human_top:" + to_string(t_result->targets[i].rect.top)+" human_left:" + to_string(t_result->targets[i].rect.left) + "  human_right:" + to_string(t_result->targets[i].rect.right)+ "  human_bottom:" + to_string(t_result->targets[i].rect.bottom));
+        }
+    }
+    DEBUG("---------------------end over------------------------\n\n");
     return t_result;
 }
 
@@ -51,7 +98,6 @@
     h = NULL;
 }
 
-// 璇诲彇Json鏂囦欢
 void ReadJsonFromFile(const char* filename)
 {
     Json::Reader reader;
@@ -71,9 +117,24 @@
     if(reader.parse(in,root))
     {
         std::string model_path = root["param"]["model_path"].asString();
+        std::string model_cfg= root["param"]["model_cfg"].asString();
+        std::string model_wts = root["param"]["model_wts"].asString();
         int type = root["param"]["type"].asInt();
+        bool isTrack = root["param"]["isTrack"].asBool();
+        int max_cam_num = root["param"]["max_cam_num"].asInt();
+        int wander_time = root["param"]["wander_time"].asInt();
+        int mv_velocity = root["param"]["mv_velocity"].asFloat();
+        int fall_rate = root["param"]["fall_rate"].asFloat();
         m_staticStruct::model_path  = model_path;
+        m_staticStruct::model_cfg  = model_cfg;
+        m_staticStruct::model_wts  = model_wts;
         m_staticStruct::type  = type;
+        m_staticStruct::isTrack = isTrack;
+        m_staticStruct::max_cam_num  = max_cam_num;
+        m_staticStruct::wander_time = wander_time;
+        m_staticStruct::mv_velocity = mv_velocity;
+        m_staticStruct::fall_rate = fall_rate;
+
     }
     in.close();
 }
@@ -83,4 +144,3 @@
     t->count = 0;
     t->targets = nullptr;
 }
-

--
Gitblit v1.8.0