فهرست منبع

优化数据库结构

lishengyin 3 سال پیش
والد
کامیت
1424b6a229

+ 8 - 8
build/CMakeFiles/main.dir/CXX.includecache

@@ -1048,6 +1048,10 @@ SendHeartBeat.h
 iostream
 -
 
+../modules/dataType/include/DataSource.h
+iostream
+-
+
 ../modules/dataType/include/InferData.h
 iostream
 -
@@ -1144,10 +1148,6 @@ rapidjson/stringbuffer.h
 rapidjson/writer.h
 -
 
-../modules/dataType/include/Stream.h
-iostream
--
-
 ../modules/inference/include/inference.h
 iostream
 -
@@ -1171,8 +1171,8 @@ gstnvdsmeta.h
 ../modules/inference/include/gstnvdsmeta.h
 gst-nvmessage.h
 ../modules/inference/include/gst-nvmessage.h
-Stream.h
-../modules/inference/include/Stream.h
+DataSource.h
+../modules/inference/include/DataSource.h
 Util/logger.h
 ../modules/inference/include/Util/logger.h
 Util/NoticeCenter.h
@@ -1251,8 +1251,8 @@ time.h
 -
 inference.h
 ../modules/userApp/include/inference.h
-Stream.h
-../modules/userApp/include/Stream.h
+DataSource.h
+../modules/userApp/include/DataSource.h
 SendLogin.h
 ../modules/userApp/include/SendLogin.h
 NettyServerCommandEnum.h

+ 1 - 1
build/CMakeFiles/main.dir/depend.internal

@@ -87,6 +87,7 @@ CMakeFiles/main.dir/source/src/main.cpp.o
  ../3rdparty/rapidjson/include/rapidjson/writer.h
  ../modules/TCPClient/include/TCPClient.h
  ../modules/dataType/include/Crc16.h
+ ../modules/dataType/include/DataSource.h
  ../modules/dataType/include/InferData.h
  ../modules/dataType/include/NettyClientCommandEnum.h
  ../modules/dataType/include/NettyClientResultMsg.h
@@ -98,7 +99,6 @@ CMakeFiles/main.dir/source/src/main.cpp.o
  ../modules/dataType/include/PIDSServerResultMsg.h
  ../modules/dataType/include/SendHeartBeat.h
  ../modules/dataType/include/SendLogin.h
- ../modules/dataType/include/Stream.h
  ../modules/inference/include/inference.h
  ../modules/inifile/include/inifile.h
  ../modules/userApp/include/user_app.h

+ 1 - 1
build/CMakeFiles/main.dir/depend.make

@@ -86,6 +86,7 @@ CMakeFiles/main.dir/source/src/main.cpp.o: ../3rdparty/rapidjson/include/rapidjs
 CMakeFiles/main.dir/source/src/main.cpp.o: ../3rdparty/rapidjson/include/rapidjson/writer.h
 CMakeFiles/main.dir/source/src/main.cpp.o: ../modules/TCPClient/include/TCPClient.h
 CMakeFiles/main.dir/source/src/main.cpp.o: ../modules/dataType/include/Crc16.h
+CMakeFiles/main.dir/source/src/main.cpp.o: ../modules/dataType/include/DataSource.h
 CMakeFiles/main.dir/source/src/main.cpp.o: ../modules/dataType/include/InferData.h
 CMakeFiles/main.dir/source/src/main.cpp.o: ../modules/dataType/include/NettyClientCommandEnum.h
 CMakeFiles/main.dir/source/src/main.cpp.o: ../modules/dataType/include/NettyClientResultMsg.h
@@ -97,7 +98,6 @@ CMakeFiles/main.dir/source/src/main.cpp.o: ../modules/dataType/include/PIDSDataD
 CMakeFiles/main.dir/source/src/main.cpp.o: ../modules/dataType/include/PIDSServerResultMsg.h
 CMakeFiles/main.dir/source/src/main.cpp.o: ../modules/dataType/include/SendHeartBeat.h
 CMakeFiles/main.dir/source/src/main.cpp.o: ../modules/dataType/include/SendLogin.h
-CMakeFiles/main.dir/source/src/main.cpp.o: ../modules/dataType/include/Stream.h
 CMakeFiles/main.dir/source/src/main.cpp.o: ../modules/inference/include/inference.h
 CMakeFiles/main.dir/source/src/main.cpp.o: ../modules/inifile/include/inifile.h
 CMakeFiles/main.dir/source/src/main.cpp.o: ../modules/userApp/include/user_app.h

BIN
build/CMakeFiles/main.dir/source/src/main.cpp.o


+ 8 - 8
build/modules/CMakeFiles/modules.dir/CXX.includecache

@@ -1048,6 +1048,10 @@ SendHeartBeat.h
 iostream
 -
 
+../modules/dataType/include/DataSource.h
+iostream
+-
+
 ../modules/dataType/include/InferData.h
 iostream
 -
@@ -1144,10 +1148,6 @@ rapidjson/stringbuffer.h
 rapidjson/writer.h
 -
 
-../modules/dataType/include/Stream.h
-iostream
--
-
 ../modules/decoder/include/FFMpegDecoder.h
 string
 -
@@ -1189,8 +1189,8 @@ gstnvdsmeta.h
 ../modules/inference/include/gstnvdsmeta.h
 gst-nvmessage.h
 ../modules/inference/include/gst-nvmessage.h
-Stream.h
-../modules/inference/include/Stream.h
+DataSource.h
+../modules/inference/include/DataSource.h
 Util/logger.h
 ../modules/inference/include/Util/logger.h
 Util/NoticeCenter.h
@@ -1275,8 +1275,8 @@ time.h
 -
 inference.h
 ../modules/userApp/include/inference.h
-Stream.h
-../modules/userApp/include/Stream.h
+DataSource.h
+../modules/userApp/include/DataSource.h
 SendLogin.h
 ../modules/userApp/include/SendLogin.h
 NettyServerCommandEnum.h

+ 2 - 2
build/modules/CMakeFiles/modules.dir/depend.internal

@@ -198,6 +198,7 @@ modules/CMakeFiles/modules.dir/inference/src/inference.cpp.o
  ../3rdparty/rapidjson/include/rapidjson/stringbuffer.h
  ../3rdparty/rapidjson/include/rapidjson/writer.h
  ../modules/TCPClient/include/TCPClient.h
+ ../modules/dataType/include/DataSource.h
  ../modules/dataType/include/NettyClientCommandEnum.h
  ../modules/dataType/include/NettyClientResultMsg.h
  ../modules/dataType/include/NettyServerCommandEnum.h
@@ -205,7 +206,6 @@ modules/CMakeFiles/modules.dir/inference/src/inference.cpp.o
  ../modules/dataType/include/Notices.h
  ../modules/dataType/include/SendHeartBeat.h
  ../modules/dataType/include/SendLogin.h
- ../modules/dataType/include/Stream.h
  ../modules/inference/include/inference.h
  /home/nvidia/work/MIVA/modules/inference/src/inference.cpp
  /opt/nvidia/deepstream/deepstream-5.0/sources/includes/gst-nvmessage.h
@@ -558,6 +558,7 @@ modules/CMakeFiles/modules.dir/userApp/src/user_app.cpp.o
  ../3rdparty/rapidjson/include/rapidjson/writer.h
  ../modules/TCPClient/include/TCPClient.h
  ../modules/dataType/include/Crc16.h
+ ../modules/dataType/include/DataSource.h
  ../modules/dataType/include/InferData.h
  ../modules/dataType/include/NettyClientCommandEnum.h
  ../modules/dataType/include/NettyClientResultMsg.h
@@ -569,7 +570,6 @@ modules/CMakeFiles/modules.dir/userApp/src/user_app.cpp.o
  ../modules/dataType/include/PIDSServerResultMsg.h
  ../modules/dataType/include/SendHeartBeat.h
  ../modules/dataType/include/SendLogin.h
- ../modules/dataType/include/Stream.h
  ../modules/inference/include/inference.h
  ../modules/inifile/include/inifile.h
  ../modules/userApp/include/user_app.h

+ 2 - 2
build/modules/CMakeFiles/modules.dir/depend.make

@@ -197,6 +197,7 @@ modules/CMakeFiles/modules.dir/inference/src/inference.cpp.o: ../3rdparty/rapidj
 modules/CMakeFiles/modules.dir/inference/src/inference.cpp.o: ../3rdparty/rapidjson/include/rapidjson/stringbuffer.h
 modules/CMakeFiles/modules.dir/inference/src/inference.cpp.o: ../3rdparty/rapidjson/include/rapidjson/writer.h
 modules/CMakeFiles/modules.dir/inference/src/inference.cpp.o: ../modules/TCPClient/include/TCPClient.h
+modules/CMakeFiles/modules.dir/inference/src/inference.cpp.o: ../modules/dataType/include/DataSource.h
 modules/CMakeFiles/modules.dir/inference/src/inference.cpp.o: ../modules/dataType/include/NettyClientCommandEnum.h
 modules/CMakeFiles/modules.dir/inference/src/inference.cpp.o: ../modules/dataType/include/NettyClientResultMsg.h
 modules/CMakeFiles/modules.dir/inference/src/inference.cpp.o: ../modules/dataType/include/NettyServerCommandEnum.h
@@ -204,7 +205,6 @@ modules/CMakeFiles/modules.dir/inference/src/inference.cpp.o: ../modules/dataTyp
 modules/CMakeFiles/modules.dir/inference/src/inference.cpp.o: ../modules/dataType/include/Notices.h
 modules/CMakeFiles/modules.dir/inference/src/inference.cpp.o: ../modules/dataType/include/SendHeartBeat.h
 modules/CMakeFiles/modules.dir/inference/src/inference.cpp.o: ../modules/dataType/include/SendLogin.h
-modules/CMakeFiles/modules.dir/inference/src/inference.cpp.o: ../modules/dataType/include/Stream.h
 modules/CMakeFiles/modules.dir/inference/src/inference.cpp.o: ../modules/inference/include/inference.h
 modules/CMakeFiles/modules.dir/inference/src/inference.cpp.o: ../modules/inference/src/inference.cpp
 modules/CMakeFiles/modules.dir/inference/src/inference.cpp.o: /opt/nvidia/deepstream/deepstream-5.0/sources/includes/gst-nvmessage.h
@@ -557,6 +557,7 @@ modules/CMakeFiles/modules.dir/userApp/src/user_app.cpp.o: ../3rdparty/rapidjson
 modules/CMakeFiles/modules.dir/userApp/src/user_app.cpp.o: ../3rdparty/rapidjson/include/rapidjson/writer.h
 modules/CMakeFiles/modules.dir/userApp/src/user_app.cpp.o: ../modules/TCPClient/include/TCPClient.h
 modules/CMakeFiles/modules.dir/userApp/src/user_app.cpp.o: ../modules/dataType/include/Crc16.h
+modules/CMakeFiles/modules.dir/userApp/src/user_app.cpp.o: ../modules/dataType/include/DataSource.h
 modules/CMakeFiles/modules.dir/userApp/src/user_app.cpp.o: ../modules/dataType/include/InferData.h
 modules/CMakeFiles/modules.dir/userApp/src/user_app.cpp.o: ../modules/dataType/include/NettyClientCommandEnum.h
 modules/CMakeFiles/modules.dir/userApp/src/user_app.cpp.o: ../modules/dataType/include/NettyClientResultMsg.h
@@ -568,7 +569,6 @@ modules/CMakeFiles/modules.dir/userApp/src/user_app.cpp.o: ../modules/dataType/i
 modules/CMakeFiles/modules.dir/userApp/src/user_app.cpp.o: ../modules/dataType/include/PIDSServerResultMsg.h
 modules/CMakeFiles/modules.dir/userApp/src/user_app.cpp.o: ../modules/dataType/include/SendHeartBeat.h
 modules/CMakeFiles/modules.dir/userApp/src/user_app.cpp.o: ../modules/dataType/include/SendLogin.h
-modules/CMakeFiles/modules.dir/userApp/src/user_app.cpp.o: ../modules/dataType/include/Stream.h
 modules/CMakeFiles/modules.dir/userApp/src/user_app.cpp.o: ../modules/inference/include/inference.h
 modules/CMakeFiles/modules.dir/userApp/src/user_app.cpp.o: ../modules/inifile/include/inifile.h
 modules/CMakeFiles/modules.dir/userApp/src/user_app.cpp.o: ../modules/userApp/include/user_app.h

BIN
build/modules/CMakeFiles/modules.dir/inference/src/inference.cpp.o


BIN
build/modules/CMakeFiles/modules.dir/userApp/src/user_app.cpp.o


BIN
lib/libmodules.so


+ 3 - 3
modules/dataType/include/Stream.h → modules/dataType/include/DataSource.h

@@ -2,12 +2,12 @@
 #include <iostream>
 
 
-class Stream
+class DataSource
 {
 private:
 public:
-    Stream(){};
-    ~Stream(){};
+    DataSource(){};
+    ~DataSource(){};
     int Id;
     std::string uri;
 };

+ 3 - 7
modules/dataType/include/PIDSClientResultMsg.h

@@ -8,11 +8,6 @@
 
 using namespace std;
 
-struct CrowdednessData
-{
-    int Crowdedness;
-    int Num;
-};
 
 class PIDSClientResultMsg
 {
@@ -20,7 +15,7 @@ public:
     // 列车线路号
     int TrainLine;
     int Train;
-    std::map<int, CrowdednessData> data;
+    std::map<int, ResultData> data;
 
 public:
     PIDSClientResultMsg(){}
@@ -52,11 +47,12 @@ public:
         int id = 0;
         for(int i=0; i < 18; i+=3)
         {
-            data[17+i] = this->data[id].Crowdedness;
+            data[17+i] = this->data[id].Grade;
             data[18+i] = (this->data[id].Num & 0x00FF);
             data[19+i] = (this->data[id].Num & 0xFF00) >> 8;
             id++;
         }
+
         int16_t crc = Crc16::GetCRC16(data, 9, length);
         data[45] = (crc & 0x00FF);
         data[46] = (crc & 0xFF00) >> 8; 

+ 5 - 0
modules/dataType/include/PIDSDataDefine.h

@@ -36,6 +36,11 @@ struct CarData{
     std::list<CarInferData> inferData;
 };
 
+struct ResultData{
+    int Grade;
+    int Num;
+};
+
 
 void getBCDTime(uint8_t *out)
 {

+ 2 - 2
modules/inference/include/inference.h

@@ -12,7 +12,7 @@
 #include "gstnvdsmeta.h"
 #include "gst-nvmessage.h"
 
-#include "Stream.h"
+#include "DataSource.h"
 
 // ZLMediaKit
 #include "Util/logger.h"
@@ -56,7 +56,7 @@ namespace MIVA{
         Inference();
         ~Inference();
     public:
-        int32_t Init(list<Stream> DataList);
+        int32_t Init(std::list<DataSource> DataList);
         void Destory();
         void StartTask();
     private:

+ 2 - 2
modules/inference/src/inference.cpp

@@ -50,7 +50,7 @@ namespace MIVA{
         Destory();
     }
     // Init 初始化
-    int32_t Inference::Init(list<Stream> DataList)
+    int32_t Inference::Init(list<DataSource> DataList)
     {
         // init
         this->loop = g_main_loop_new (NULL, FALSE);
@@ -68,7 +68,7 @@ namespace MIVA{
         gst_bin_add (GST_BIN (this->pipeline), this->streammux);
 
         // 创建数据源
-        list<Stream>::iterator iter;
+        std::list<DataSource>::iterator iter;
         int i = 0;
         for(iter = DataList.begin(); iter != DataList.end(); iter++){
             GstPad *sinkpad, *srcpad;

+ 2 - 2
modules/userApp/include/user_app.h

@@ -23,7 +23,7 @@
 #include <map>
 #include <time.h>
 #include "inference.h"
-#include "Stream.h"
+#include "DataSource.h"
 
 // dataType
 #include "SendLogin.h"
@@ -87,7 +87,7 @@ namespace MIVA
         std::shared_ptr<Inference> m_Infer = NULL;
         Socket::Ptr m_udpClient = NULL;
 
-        std::list<Stream> DataList;
+        std::list<DataSource> DataList;
         Timer::Ptr m_timer0;
         Timer::Ptr m_timer1;
 

+ 24 - 29
modules/userApp/src/user_app.cpp

@@ -63,6 +63,8 @@ namespace MIVA
             vector<vector<string>> sql;
             // 创建数据库
             SqlWriter("create database MIVA_DB;", false) << sql;
+
+            // 创建表
         #endif
 
         // 链接Netty后端
@@ -74,14 +76,14 @@ namespace MIVA
 
         // 查询需要播放的流
         vector<vector<string>> sqlRet;
-        SqlWriter sqlSelect("SELECT Id,Stream FROM MIVA_DB.`Streams` WHERE Play = 1");
+        SqlWriter sqlSelect("SELECT Id,Uri FROM MIVA_DB.`DataSources` WHERE Play = 1 and Delete = 0");
         sqlSelect << sqlRet;
         if(!sqlRet.empty()){
             for(auto &line : sqlRet){
-                Stream stream;
-                stream.Id = std::atoi(line[0].c_str());
-                stream.uri = line[1];
-                this->DataList.push_back(stream);
+                DataSource data;
+                data.Id = std::atoi(line[0].c_str());
+                data.uri = line[1];
+                this->DataList.push_back(data);
             }
             // 初始化Deepstream
             m_Infer = Inference::CreateNew();
@@ -159,7 +161,7 @@ namespace MIVA
         char ctime[80];
         getDataTime(ctime);
         // 异步更新
-        SqlWriter updataSql("UPDATE MIVA_DB.Streams SET num = '?' DataTime = '?' WHERE Id = '?';");
+        SqlWriter updataSql("UPDATE MIVA_DB.DataSources SET Num = '?' DataTime = '?' WHERE Id = '?';");
         updataSql << num << ctime << Source_id << endl;
     }   
 
@@ -173,28 +175,21 @@ namespace MIVA
     // 上报识别结果
     void UserApp::ReportData()
     {
+        // 查询数据
         vector<vector<std::string>> sqlRet;
-        // 查询需要上报的车厢ID
-        SqlWriter sqlSelect("SELECT CarId FROM MIVA_DB.`CarId`");
+        PIDSClientResultMsg clentResultMsg;
+
+        SqlWriter sqlSelect("SELECT CarId,Grade,Num FROM MIVA_DB.`CarData`");
         sqlSelect << sqlRet;
         if(sqlRet.empty()){
             ErrorL << "Car data not found.";
             return;
         }
-        PIDSClientResultMsg clentResultMsg;
-
         for(auto &line : sqlRet){
-            vector<vector<std::string>> sqlRet0;
-            SqlWriter sqlSelect0("SELECT Crowdedness,num FROM MIVA_DB.`Crowdedness` where CarId = ?");
-            sqlSelect0  << atoi(line[0].c_str()) << sqlRet0;
-            if(sqlRet0.empty()) {
-                ErrorL << "Crowdedness data not found.";
-                continue;
-            }
-            for(auto &line0 : sqlRet0){
-                clentResultMsg.data[atoi(line[0].c_str())].Crowdedness = atoi(line0[0].c_str());
-                clentResultMsg.data[atoi(line[0].c_str())].Num = atoi(line0[1].c_str());
-            }
+            ResultData resultData;
+            resultData.Grade = atoi(line[1].c_str());
+            resultData.Num = atoi(line[2].c_str());
+            clentResultMsg.data[atoi(line[0].c_str())] = resultData;
         }
         uint8_t data[1024];
         std::string json;
@@ -235,7 +230,7 @@ namespace MIVA
             // 将收到的第一条PIS系统的数据作为空载荷
             // 同步
             if(num == 0){
-                SqlWriter updataSql("UPDATE MIVA_DB.CarId SET NoLoad = '?' WHERE CarId = '?';");
+                SqlWriter updataSql("UPDATE MIVA_DB.CarData SET NoLoad = '?' WHERE CarId = '?';");
                 for(int id=1; id <= 6 ; id ++){
                     updataSql << serverResultMag.DynamicLoad[id] << id << sqlRet;
                 }
@@ -243,7 +238,7 @@ namespace MIVA
             }else
             {
                 // 记录动态载荷
-                SqlWriter updataSql("UPDATE MIVA_DB.CarId SET DynamicLoad = '?' WHERE CarId = '?';");
+                SqlWriter updataSql("UPDATE MIVA_DB.CarData SET DynamicLoad = '?' WHERE CarId = '?';");
                 for(int id=1; id <= 6 ; id ++){
                     updataSql << serverResultMag.DynamicLoad[id] << id << sqlRet;
                 }
@@ -274,7 +269,7 @@ namespace MIVA
         std::map<int, CarData> carDatas;
         
         vector<vector<string>> sqlRet;
-        SqlWriter sqlSelect0("SELECT CarId,NoLoad,DynamicLoad FROM MIVA_DB.`CarId`");
+        SqlWriter sqlSelect0("SELECT CarId,NoLoad,DynamicLoad FROM MIVA_DB.`CarData`");
         sqlSelect0 << sqlRet;
         if(sqlRet.empty()){
             ErrorL << "Car data not found.";
@@ -286,7 +281,7 @@ namespace MIVA
             data.loadData.DynamicLoad = atoi(line[2].c_str());
             carDatas[atoi(line[0].c_str())] = data;
         }
-        SqlWriter sqlSelect1("SELECT CarId,Stream,Num FROM MIVA_DB.`Streams` WHERE Play = 1");
+        SqlWriter sqlSelect1("SELECT CarId,Uri,Num FROM MIVA_DB.`DataSources` WHERE Play = 1");
         sqlRet.clear();
         sqlSelect1 << sqlRet;
         for (auto &line : sqlRet)
@@ -302,7 +297,7 @@ namespace MIVA
         std::map<int, CarData>::iterator iter;
         for(iter=carDatas.begin(); iter!=carDatas.end(); iter++)
         {
-            SqlWriter sqlUpdata("UPDATA MIVA_DB.Streams SET Crowdedness = '?', num = '?' WHERE CarId = '?'");
+            SqlWriter sqlUpdata("UPDATA MIVA_DB.CarData SET Grade = '?',DataTime = '?', Num = '?' WHERE CarId = '?'");
 
             int sum = 0;
             std::list<CarInferData>::iterator it;
@@ -312,8 +307,10 @@ namespace MIVA
             int result = DataCalculation(iter->second.loadData.NoLoad, iter->second.loadData.DynamicLoad, sum);
             int grade = GradeDetermination(result);
 
+            char ctime[80];
+            getDataTime(ctime);
             // 更新数据
-            sqlUpdata << grade << result << iter->first << sqlRet;
+            sqlUpdata << grade << ctime << result << iter->first << sqlRet;
         }
     }
 
@@ -323,7 +320,6 @@ namespace MIVA
         uint32_t result;
 
 
-
         return result;
     }
 
@@ -333,7 +329,6 @@ namespace MIVA
         // 等级1 - 4
         uint8_t grade = 1;
 
-        
 
         return grade;
     }

BIN
source/bin/main


+ 1 - 1
source/src/main.cpp

@@ -24,7 +24,7 @@ int main(int argc, char *argv[])
   // 初始化
   if(app->Init(appName) != OK){
     ErrorL << "System initialization failed";
-    return -1;
+    return ERR;
   }
   
   // 挂起任务