From c8d9556e2aa8e64f956a5b516c8c80dbbc195b5d Mon Sep 17 00:00:00 2001
From: pansen <pansen626@sina.com>
Date: 星期二, 05 三月 2019 09:25:30 +0800
Subject: [PATCH] 添加GB28181模块

---
 QiaoJiaSystem/VideoToImageMulth/main.cpp |   73 ++++++++++++++++++++++++++++++++++++
 1 files changed, 72 insertions(+), 1 deletions(-)

diff --git a/QiaoJiaSystem/VideoToImageMulth/main.cpp b/QiaoJiaSystem/VideoToImageMulth/main.cpp
index 4eced3d..f0e6bcb 100644
--- a/QiaoJiaSystem/VideoToImageMulth/main.cpp
+++ b/QiaoJiaSystem/VideoToImageMulth/main.cpp
@@ -14,7 +14,9 @@
 #include <basic/util/file/FileUtil.h>
 #include <basic/util/app/AppPreference.hpp>
 #include <basic/util/app/AppConfig.h>
-#include <basic/util/app/AppConfig.h>
+
+#include <GB28181Server.h>
+#include <basic/util/net_config/net_config.h>
 
 static void startManager(LDBTool *_dbTool) {
     RtspAnalysManager rtspAnalysManager(_dbTool);
@@ -23,6 +25,24 @@
     }
 }
 
+std::string getLocalIp() {
+    unsigned char netmask_old[15] = {0};
+    unsigned char gateway_old[15] = {0};
+    unsigned char ip_old[15] = {0};
+
+    std::string net_ifname = appConfig.getStringProperty("netIfName");
+    std::string str_ip;
+
+    if (GetIpAddress(net_ifname.c_str(), ip_old)) {
+        std::string ip_old_temp((char *) ip_old);
+        str_ip = ip_old_temp;
+    } else {
+//        value["ipaddr"] = "";
+        ERR("not get ip addr");
+    }
+    assert(!str_ip.empty());
+    return std::move(str_ip);
+}
 
 int main(int argc, char **argv) {
     std::cout << __DATE__ << " " << __TIME__ << std::endl;
@@ -42,6 +62,57 @@
     appPref.setIntData("CamStep", atoi(argv[2]));
     appPref.setIntData("RpcServerPort", atoi(argv[3]));
 
+    //#todo search from db
+    MysqlDBServerCfg mysqlDBServerCfg;
+    mysqlDBServerCfg.Host = getLocalIp();
+    mysqlDBServerCfg.Port = 3306;
+    mysqlDBServerCfg.UserName = "root";
+    mysqlDBServerCfg.Passwd = "123456";
+    mysqlDBServerCfg.DBName = "EGEyesForVSS";
+    mysqlDBServerCfg.DBConnCount = 5;
+
+
+    //#todo search from db
+    GBServerCfg gbServerCfg;
+    gbServerCfg.SvrIp = getLocalIp(); // 鍥芥爣鏈嶅姟鐨刬p鍦板潃  (鏈満鐨刬p鍦板潃)
+    gbServerCfg.SvrPort = 7060; // 鍥芥爣鏈嶅姟鐩戝惉鐨勭鍙�
+    gbServerCfg.SvrPubID = "44120000002000000001"; // 鍥芥爣鏈嶅姟鍣ㄧ殑ID
+    gbServerCfg.bMD5Auth = false; // 鏄惁闇�瑕丮D5鍔犲瘑
+    gbServerCfg.UserName = "44120100002000000002"; // 鍥芥爣鏈嶅姟鐨勭敤鎴峰悕	(涓嬬骇璁惧娉ㄥ唽鐨勭敤鎴峰悕)
+    gbServerCfg.Passwd = "123456"; // 鍥芥爣鏈嶅姟鐨勫瘑鐮�	(涓嬬骇璁惧娉ㄥ唽鐨勫瘑鐮�)
+    gbServerCfg.SubScribeTime = 3600; // 璁㈤槄鏃堕棿  濡傛灉涓�0 琛ㄧず涓嶈闃�
+
+    SpinLock spinLock;
+
+    bool running = false;
+    bool serinit = false;
+    auto func = [&] {
+        spinLock.lock();
+        GB28181Server m_gbs;
+        m_gbs.setMysqlConnParam(mysqlDBServerCfg);
+        m_gbs.setGBServerParam(gbServerCfg);
+        DBG("initServer start before");
+        running = m_gbs.initServer();
+        DBG("initServer start after");
+
+        spinLock.unlock();
+        while (running) {
+            usleep(4000);
+        }
+
+    };
+
+    std::thread thd(func);
+
+    usleep(400);
+    //      ---------------------娴嬭瘯------------------------
+    spinLock.lock();
+    if (!running) {
+        ERR("running is false   <<   DB init error");
+        exit(0);
+    }
+    DBG("test start");
+
     appPref.setStringData("user.loop.absolute.path", appConfig.getStringProperty("cutPath"));
     IceRpcServer<RtspAnalysManager> server("RtspAnalysServer", appPref.getIntData("RpcServerPort"), "tcp");
     server.setMessageSizeMax(1024 * 1024 * 50);

--
Gitblit v1.8.0