Explorar el Código

V0.1.2
1、添加了写入数据库的类
2、修改了从Redis读取的类

Apple hace 7 meses
padre
commit
7b5d52cfa2

+ 1 - 0
.gitignore

@@ -0,0 +1 @@
+External

+ 1 - 0
CMakeLists.txt

@@ -11,6 +11,7 @@ set(CMAKE_CXX_STANDARD 17)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
 
+
 #=========================================================
 #********************  指定Qt安装路径 ********************
 #=========================================================

+ 39 - 9
SecurePlayAuxServer/SPAServer.cpp

@@ -5,6 +5,7 @@
 
 #include <filesystem>
 
+#include "CurlFtp.h"
 
 
 SPAServer::SPAServer()
@@ -16,15 +17,44 @@ SPAServer::SPAServer()
         return;
     }
 
-    m_fromSuperBrain.getToken();
-    // m_fromSuperBrain.getTaskTypeList();
-    m_fromRedis.setRedisIPAndPort("172.16.36.80", 32222);
-    m_fromRedis.setRedisPassword("Ff1z@TOFr^iwd%Ra");
-    m_fromRedis.connectRedis();
-    std::string value;
-    m_fromRedis.getRedisString("113:P100104000", value);
-    SPDLOG_LOGGER_INFO(m_logger, "{}", value);
-    m_fromRedis.disConnectRedis();
+    // m_fromSuperBrain.getToken();
+    // // m_fromSuperBrain.getTaskTypeList();
+    // m_fromRedis.setRedisIPAndPort("172.16.36.80", 32222);
+    // m_fromRedis.setRedisPassword("Ff1z@TOFr^iwd%Ra");
+    // m_fromRedis.connectRedis();
+    // std::string value;
+    // m_fromRedis.getRedisString("113:P100104000", value);
+    // SPDLOG_LOGGER_INFO(m_logger, "{}", value);
+    // m_fromRedis.disConnectRedis();
+
+    //|FTP|192.1.2.178:32021|lh|DWw7V9u0|
+    CurlFtp ftp;
+    ftp.setFtpIPAndPort("192.1.2.178", 32021);
+    ftp.setFtpUsernameAndPassword("lh", "DWw7V9u0");
+
+    std::string ftpPath = "lh";
+    std::vector<std::string> vecFile;
+    std::vector<std::string> vecDir;
+    ftp.getFileList(ftpPath, vecFile);
+    ftp.getDirList(ftpPath, vecDir);
+
+    for(auto& file : vecFile)
+    {
+        SPDLOG_LOGGER_INFO(m_logger, "{}", file);
+    }
+    for(auto& dir : vecDir)
+    {
+        SPDLOG_LOGGER_INFO(m_logger, "{}", dir);
+    }
+
+    if(ftp.isDirExist(ftpPath))
+    {
+        SPDLOG_LOGGER_INFO(m_logger, "文件夹存在");
+    }
+    else
+    {
+        SPDLOG_LOGGER_INFO(m_logger, "文件夹不存在");
+    }
 }
 
 SPAServer::~SPAServer()

+ 3 - 3
SecurePlayAuxServer/common/LHLog/LHLogInit.cpp

@@ -62,21 +62,21 @@ void initLog(QString ModuleName, CLHQLogApi& lhQLog)
         // }
         /* 创建一个标准输出 */
         auto logger_main = std::make_shared<spdlog::logger>("main",begin(sinks),end(sinks));
-        /* 创建一个WebAPI logger */
-        auto logger_WebAPI = std::make_shared<spdlog::logger>("WebAPI",begin(sinks),end(sinks));
         /* 创建一个FromSuperBrain Logger */
         auto logger_FromSuperBrain = std::make_shared<spdlog::logger>("FromSuperBrain",begin(sinks),end(sinks));
         /* 创建一个SPAServer logger */
         auto logger_SPAServer = std::make_shared<spdlog::logger>("SPAServer",begin(sinks),end(sinks));
         /* 创建一个FromRedis logger */
         auto logger_FromRedis = std::make_shared<spdlog::logger>("FromRedis",begin(sinks),end(sinks));
+        /* 创建一个ToEQMDataBase logger */
+        auto logger_ToEQMDataBase = std::make_shared<spdlog::logger>("ToEQMDataBase",begin(sinks),end(sinks));
 
         /* 注册到注册表 */
         spdlog::register_logger(logger_main);
-        spdlog::register_logger(logger_WebAPI);
         spdlog::register_logger(logger_FromSuperBrain);
         spdlog::register_logger(logger_SPAServer);
         spdlog::register_logger(logger_FromRedis);
+        spdlog::register_logger(logger_ToEQMDataBase);
 
         /* 设置spdlog输出级别,默认的估计不输出debug这个级别
          * 这是默认的设置,可以在外面单数设置输出方式

+ 1 - 1
SecurePlayAuxServer/communication/FromRedis.h

@@ -18,7 +18,7 @@ public:
     bool connectRedis();
     /* 断开Redis连接 */
     void disConnectRedis();
-    /* 获取redis中的数据 */
+    /* 获取redis中的string数据 */
     bool getRedisString(const std::string& key, std::string& value);
 
 private:

+ 61 - 0
SecurePlayAuxServer/communication/ToEQMDataBase.cpp

@@ -0,0 +1,61 @@
+#include "ToEQMDataBase.h"
+
+
+
+ToEQMDataBase::ToEQMDataBase()
+{
+    m_logger = spdlog::get("ToEQMDataBase");
+    if(m_logger == nullptr)
+    {
+        SPDLOG_ERROR("ToEQMDataBase logger is nullptr");
+        return;
+    }
+}
+
+ToEQMDataBase::~ToEQMDataBase()
+{
+    if(m_httpApi != nullptr)
+    {
+        delete m_httpApi;
+        m_httpApi = nullptr;
+    }
+}
+
+
+/* 初始化WebApi */
+bool ToEQMDataBase::initWebApi(const QString& url,const QString& serverIP,const QString& serID)
+{
+    if(m_httpApi == nullptr)
+    {
+        m_httpApi = new lhhttpapi;
+    }
+    int ret = 0;
+
+    ret = m_httpApi->DBQInit(url);
+    if(ret < 0)
+    {
+        SPDLOG_LOGGER_ERROR(m_logger,"Init WebApi failed:{}, error Info:{}",ret,m_httpApi->DoGetLastError(&ret).toStdString());
+        return false;
+    }
+    // SPDLOG_LOGGER_TRACE(m_logger,"初始化WebApi成功!");
+    QString serverList;
+    ret = m_httpApi->DBQGetServerList(serverList);
+    if(ret < 0)
+    {
+        SPDLOG_LOGGER_DEBUG(m_logger,"Get server list failed:{}, error info:{}",ret,m_httpApi->DoGetLastError(&ret).toStdString());
+        return false;
+    }
+    SPDLOG_LOGGER_TRACE(m_logger,"Server list:{}",serverList.toStdString());
+    SPDLOG_LOGGER_DEBUG(m_logger,"WebAPI Sucess!");
+    /* 登录 */
+    ret = m_httpApi->DBQLogin(serverIP, serID, "EQM_MG", m_userToken);
+    if(ret < 0)
+    {
+        SPDLOG_LOGGER_ERROR(m_logger,"Login failed:{}, error info:{}",ret,m_httpApi->DoGetLastError(&ret).toStdString());
+        return false;
+    }
+    SPDLOG_LOGGER_TRACE(m_logger,"Login sucess!");
+
+    return true;
+}
+

+ 24 - 0
SecurePlayAuxServer/communication/ToEQMDataBase.h

@@ -0,0 +1,24 @@
+#ifndef TOEQMDATABASE_H
+#define TOEQMDATABASE_H
+
+#include "spdlog/spdlog.h"
+#include "lhhttpapi.h"
+
+class ToEQMDataBase
+{
+public:
+    ToEQMDataBase();
+    ~ToEQMDataBase();
+
+    /* 初始化WebAPI */
+    bool initWebApi(const QString& url,const QString& serverIP,const QString& serID);
+
+private:
+    std::shared_ptr<spdlog::logger> m_logger = nullptr;
+
+    lhhttpapi* m_httpApi = nullptr;
+    QString m_userToken;
+};
+
+
+#endif /* TOEQMDATABASE_H */

+ 9 - 1
安播辅助服务程序说明.md

@@ -30,4 +30,12 @@
         - 数据库:EQM_BJ
     - WebApi
         - 地址:http://192.1.3.133:31000/LocalSetup
-        - 密码:HZlh
+        - 密码:HZlh
+
+## 从行业超脑获取基础信息
+1. 使用http从行业超脑获取到`算法列表`和`设备列表`
+2. 这里使用一个线程单独读取,可能需要定时更新
+
+## 从Redis获取数据
+1. `Key`的组成:`%d : %s`, `DeviceID`, `算子编号`
+2. 算子编号通过获取摄像头算法列表获取到这个设备的算法编号,目前不知道是哪个值