|
@@ -4,7 +4,7 @@
|
|
|
* @Autor: lishengyin
|
|
|
* @Date: 2021-10-13 09:35:42
|
|
|
* @LastEditors: lishengyin
|
|
|
- * @LastEditTime: 2022-01-07 09:52:22
|
|
|
+ * @LastEditTime: 2022-01-10 10:05:32
|
|
|
*/
|
|
|
#include "user_app.h"
|
|
|
|
|
@@ -91,8 +91,9 @@ namespace MIVA
|
|
|
vector<vector<string>> sqlRet;
|
|
|
|
|
|
this->m_recorder = recorder::CreateNew();
|
|
|
+ this->m_Cleaner = Cleaner::CreateNew();
|
|
|
// 查询基础配置
|
|
|
- SqlWriter sqlSelectConfig("SELECT account,outType,outPath,outEnable FROM MIVA_DB.`MivaConfig`");
|
|
|
+ SqlWriter sqlSelectConfig("SELECT account,outType,outPath,outEnable,ClearType,recordMax,validTime FROM MIVA_DB.`MivaConfig`");
|
|
|
sqlSelectConfig << sqlRet;
|
|
|
for(auto &line : sqlRet)
|
|
|
{
|
|
@@ -100,6 +101,9 @@ namespace MIVA
|
|
|
this->m_recorder->outType = std::atoi(line[1].c_str());
|
|
|
this->m_recorder->Dir = line[2];
|
|
|
this->m_recorder->RecordEnable = std::atoi(line[3].c_str()) ? true:false;
|
|
|
+ this->m_Cleaner->ClearType = std::atoi(line[4].c_str());
|
|
|
+ this->m_Cleaner->recordMax = std::atoi(line[5].c_str());
|
|
|
+ this->m_Cleaner->validTime = std::atoi(line[6].c_str());
|
|
|
}
|
|
|
|
|
|
// 链接Netty后端
|
|
@@ -113,8 +117,9 @@ namespace MIVA
|
|
|
this->m_udpClient->bindUdpSock(this->PIS_port);
|
|
|
|
|
|
// 清洗旧数据
|
|
|
- SqlWriter sqlTruncate("truncate table MIVA_DB.InferTime");
|
|
|
- sqlTruncate << sqlRet;
|
|
|
+ // SqlWriter sqlTruncate("truncate table MIVA_DB.InferRecord");
|
|
|
+ // sqlTruncate << sqlRet;
|
|
|
+
|
|
|
SqlWriter sqlUpdata("UPDATE MIVA_DB.DataSources SET Num=0,finish=0");
|
|
|
|
|
|
sqlUpdata << sqlRet;
|
|
@@ -123,6 +128,7 @@ namespace MIVA
|
|
|
sqlSelect << sqlRet;
|
|
|
|
|
|
this->m_InferInfo = InferInfo::CreateNew();
|
|
|
+
|
|
|
|
|
|
// 初始化Deepstream
|
|
|
m_Infer = std::make_shared<Inference>();
|
|
@@ -292,6 +298,8 @@ namespace MIVA
|
|
|
this->ListenInferData();
|
|
|
this->m_Infer->Recorder();
|
|
|
this->m_Infer->StopTask();
|
|
|
+ // 清除历史
|
|
|
+ if(m_recorder->RecordEnable) this->m_Cleaner->ClearHistory();
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -412,7 +420,7 @@ namespace MIVA
|
|
|
passengerFlow.crType = atoi(line[1].c_str());
|
|
|
passengerFlow.personNum = atoi(line[2].c_str());
|
|
|
passengerFlow.detectionTime = line[3];
|
|
|
-
|
|
|
+ passengerFlow.detectionVideo = this->m_recorder->GetFileName(carCode);
|
|
|
vector<vector<std::string>> sqlRet1;
|
|
|
SqlWriter sqlSelect1("SELECT Uri,IP FROM MIVA_DB.`DataSources` WHERE Play=1 and Del=0 and CarId='?'");
|
|
|
sqlSelect1 << atoi(line[4].c_str()) << sqlRet1;
|
|
@@ -544,7 +552,7 @@ namespace MIVA
|
|
|
vector<vector<string>> sqlRet;
|
|
|
vector<DataSource>::iterator iter;
|
|
|
|
|
|
- SqlWriter sqlSelectConfig("SELECT account,outType,outPath,outEnable FROM MIVA_DB.`MivaConfig`");
|
|
|
+ SqlWriter sqlSelectConfig("SELECT account,outType,outPath,outEnable,ClearType,recordMax,validTime FROM MIVA_DB.`MivaConfig`");
|
|
|
sqlSelectConfig << sqlRet;
|
|
|
for(auto &line : sqlRet)
|
|
|
{
|
|
@@ -552,6 +560,9 @@ namespace MIVA
|
|
|
this->m_recorder->outType = std::atoi(line[1].c_str());
|
|
|
this->m_recorder->Dir = line[2];
|
|
|
this->m_recorder->RecordEnable = std::atoi(line[3].c_str()) ? true:false;
|
|
|
+ this->m_Cleaner->ClearType = std::atoi(line[4].c_str());
|
|
|
+ this->m_Cleaner->recordMax = std::atoi(line[5].c_str());
|
|
|
+ this->m_Cleaner->validTime = std::atoi(line[6].c_str());
|
|
|
}
|
|
|
|
|
|
if(this->m_Infer->enable == false || this->m_InferInfo->DataSources.empty()){
|
|
@@ -754,10 +765,24 @@ namespace MIVA
|
|
|
num++;
|
|
|
return;
|
|
|
}
|
|
|
- SqlWriter sqlInstall("INSERT INTO MIVA_DB.InferTime(time,InferTime) VALUES('?','?');");
|
|
|
+
|
|
|
+ SqlWriter sqlInstall("INSERT INTO MIVA_DB.InferRecord(time,InferTime,OutPath,batch_size,out_size,Finish,Del) VALUES('?','?','?','?','?','?','?');");
|
|
|
char ctime[80];
|
|
|
getDataTime(ctime);
|
|
|
- sqlInstall << ctime << (time2.tv_sec - time1.tv_sec) *1000 + (time2.tv_nsec - time1.tv_nsec)/1000000 << sqlRet;
|
|
|
+ string outPath = this->m_recorder->RecordEnable ? this->m_recorder->outDir : "";
|
|
|
+
|
|
|
+ int batch_size = 0;
|
|
|
+ for (auto iter = this->m_InferInfo->DataSources.begin(); iter != this->m_InferInfo->DataSources.end(); iter++){
|
|
|
+ if(iter->source_bin != NULL){
|
|
|
+ batch_size++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ int out_size = 0;
|
|
|
+ SqlWriter sqlSelectSize("SELECT * FROM MIVA_DB.`DataSources` WHERE Play = 1 and Del=0 and finish = 1");
|
|
|
+ sqlSelectSize << sqlRet;
|
|
|
+ out_size = sqlRet.size();
|
|
|
+ int finish = (batch_size == out_size) ? 1 : 0;
|
|
|
+ sqlInstall << ctime << (time2.tv_sec - time1.tv_sec) *1000 + (time2.tv_nsec - time1.tv_nsec)/1000000 << outPath << batch_size << out_size << finish << 0 << sqlRet;
|
|
|
}
|
|
|
|
|
|
/**
|