现场更新备份

This commit is contained in:
2024-08-21 11:33:05 +08:00
parent bfb0b8064c
commit f15dfac750
26 changed files with 100 additions and 63 deletions
@@ -2,17 +2,16 @@
#include <appCore.hpp>
void appConfig::parsingGlobalData()
{
nlohmann::json globalJson = readJsonFromPath("./config/settingNew.json");
nlohmann::json globalJson = readJsonFromPath("./config/setting.json");
softwareTile = globalJson["softwareTile"];
imgSavePath = globalJson["imgSavePath"];
oriImgSavePath = globalJson["oriImgSavePath"];
resImgSavePath = globalJson["resImgSavePath"];
handleAiModelPath = globalJson["handleAiModelPath"];
productDataPath = globalJson["productDataPath"];
}
void appConfig::parsingTriggerData()
{
nlohmann::json triggerJson = readJsonFromPath("./config/triggerSetting.json");
//TRIGGER JSON
auto triggerJson = globalJson["Triggers"];
_triggerStruct.key = triggerJson["key"];
_triggerStruct.sleepTime = triggerJson["sleepTime"];
_triggerStruct.initStr = triggerJson["initStr"];
@@ -21,26 +20,24 @@ void appConfig::parsingTriggerData()
_triggerStruct.modelName = triggerJson["modelName"];
_triggerStruct.readNum = triggerJson["readNum"];
_triggerStruct.writeType = triggerJson["writeType"];
_triggerStruct.startPos = QString::fromStdString(_triggerStruct.readAllCmd).split("_")[2].toInt();;
}
void appConfig::parsingCameraData()
{
nlohmann::json cameraJson = readJsonFromPath("./config/cameraSetting.json");
_triggerStruct.startPos = QString::fromStdString(_triggerStruct.readAllCmd).split("_")[2].toInt();
//CAMERA JSON
auto cameraJson = globalJson["CameraSetting"];
for (auto data : cameraJson)
{
cameraStruct _cameraStruct;
_cameraStruct.key = data["key"];
_cameraStruct.connectionName = data["connectionName"];
_cameraStruct.serialNum = data["serialNum"];
_cameraStruct.triggerMode = data["triggerMode"];
_cameraStruct.triggerMode = data["triggerMode"];
_cameraStruct.moduleName = data["moduleName"];
_cameraStructs.push_back(_cameraStruct);
}
}
void appConfig::parsingSqlData()
{
nlohmann::json sqlJson = readJsonFromPath("./config/sqlSetting.json");
for (auto data = sqlJson["initData"].begin(); data != sqlJson["initData"].end();data++)
//SQL
auto sqlJson = globalJson["SQL"];
for (auto data = sqlJson["initData"].begin(); data != sqlJson["initData"].end(); data++)
{
_sqlConfigStruct.datas.insert(std::make_pair(data.key(), data.value()));
}
@@ -64,7 +61,7 @@ void appConfig::parsingProductData(std::string path)
productData.basePos = { res["baseX"],res["baseY"],res["baseZ"] };
productData.baseRad = { res["baseRx"],res["baseRy"],res["baseRz"] };
productData.halconAlgoIndex = res["halconAlgoIndex"];
productData.imgPosPath = res["imgPosPath"];
productData.imgPosPath = res["imgPosPath"];
productData.disableHandleAiConfig = res["disableHandleAiConfig"];
productData.enableCodedAlgo = res["enableCodedAlgo"];
productData.codedAlgoIndex = res["codedAlgoIndex"];
@@ -1,15 +1,14 @@
#include <appconfigStruct.h>
#include <sqlAppData.h>
class appConfig
{
public:
sqlManager _sqlManager;
sqlManager _sqlManager;//储存产品信息用
appConfig()
{
parsingGlobalData();
parsingProductData(productDataPath);
parsingTriggerData();
parsingCameraData();
parsingSqlData();
_sqlManager.initialization(this);
}
@@ -24,13 +23,8 @@ public:
void parsingGlobalData();
triggerStruct _triggerStruct;
void parsingTriggerData();
std::vector< cameraStruct> _cameraStructs;
void parsingCameraData();
sqlConfigStruct _sqlConfigStruct;
void parsingSqlData();
std::mutex productDatasMutex;
std::vector<productDataStruct>productDatas;
@@ -0,0 +1,11 @@
#include <sqlManager/sqliteModule.h>
#include <unordered_map>
#include <qvariant.h>
//程序启动时,从数据库读取至哈希表
//程序结束时,从哈希表保存至数据库
class sqlAppData
{
private:
std::unordered_map<std::string, QVariant>map;
};
@@ -35,9 +35,10 @@ public:
virtual sqlErr Select(
std::string tableName,
std::vector<std::string>selectStr,
sqlTableDatas& output = sqlTableDatas(),
std::string Where = "",
std::string equal = "",
sqlTableDatas& output = sqlTableDatas())
std::string equal = ""
)
{ return sqlErr(); };
virtual bool Update(
@@ -70,20 +70,29 @@ sqlTableDatas sqlManager::selectSingleData(std::string selectStr, std::string SN
{
mutex.lock();
sqlTableDatas selectResult;
dbPtr->Select(getCurrentDate(), { selectStr }, "SN", SN, selectResult);
dbPtr->Select(getCurrentDate(), { selectStr }, selectResult , "SN", SN);
if (selectResult.rowDatas.size() == 0)//无指定数据 查找前一天
dbPtr->Select(getPreviousDate(), { selectStr }, "SN", SN, selectResult);
dbPtr->Select(getPreviousDate(), { selectStr }, selectResult, "SN", SN);
mutex.unlock();
return selectResult;
}
sqlTableDatas sqlManager::selectAllData(std::string SN)
sqlTableDatas sqlManager::selectRowData(std::string SN)
{
mutex.lock();
//dbPtr->Update(getCurrentTableName(), { {"send","1" } }, "sn", SN);
sqlTableDatas selectResult;
dbPtr->Select(getCurrentDate(), {}, "SN", SN, selectResult);
dbPtr->Select(getCurrentDate(), {}, selectResult, "SN", SN);
if(selectResult.rowDatas.size()==0)//无指定数据 查找前一天
dbPtr->Select(getPreviousDate(), {}, "SN", SN, selectResult);
dbPtr->Select(getPreviousDate(), {}, selectResult, "SN", SN);
mutex.unlock();
return selectResult;
}
sqlTableDatas sqlManager::selectAllData(std::string tableName)
{
mutex.lock();
//dbPtr->Update(getCurrentTableName(), { {"send","1" } }, "sn", SN);
sqlTableDatas selectResult;
dbPtr->Select(tableName, {}, selectResult);
mutex.unlock();
return selectResult;
}
@@ -100,11 +109,11 @@ void sqlManager::initialization(appConfig* _appConfig,std::string dataBasePath,
for (auto data : _appConfig->_sqlConfigStruct.datas)
dataStr.push_back(data.first);
//创建未来180天的表格
//创建未来的表格
for (auto table : tables)
dbPtr->createTable(table, dataStr);
//查询是否有后期添加未创建的表格
//查询是否有后期添加未创建的列
for (auto table : tables)
{
std::vector<std::string> res = dbPtr->getColumn(table);
@@ -117,7 +126,7 @@ void sqlManager::initialization(appConfig* _appConfig,std::string dataBasePath,
auto iter = map.find(str);//寻找
if (iter == map.end())//找不到
{
dbPtr->addColumn(table, str, "REAL");//插入
dbPtr->addColumn(table, str, "TEXT");//插入
}
}
}
@@ -139,7 +148,7 @@ bool sqlManager::addData(std::string SN,std::vector<sqlData> data)
}
sqlTableDatas selectResult;
std::string currentTableName = getCurrentDate();
sqlErr res=dbPtr->Select(currentTableName, {},"sn", SN, selectResult);
sqlErr res=dbPtr->Select(currentTableName, {}, selectResult, "SN", SN);
//查询出错
if (res.customType != sqlOK)
{
@@ -150,7 +159,7 @@ bool sqlManager::addData(std::string SN,std::vector<sqlData> data)
//找到SN,进行更新操作
if (selectResult.rowDatas.size() != 0)
{
dbPtr->Update(currentTableName, data, "sn", SN);
dbPtr->Update(currentTableName, data, "SN", SN);
mutex.unlock();
return true;
}
@@ -29,7 +29,8 @@ public:
};
std::mutex mutex;
sqlTableDatas selectSingleData(std::string selectStr, std::string SN);
sqlTableDatas selectAllData(std::string SN);
sqlTableDatas selectRowData(std::string SN);
sqlTableDatas selectAllData(std::string tableName);
std::vector<std::string> getTableList();//获取所有列名
void initialization(appConfig* _appConfig, std::string dataBasePath = sqlDefaultDatabasePath,bool backUp=true);
@@ -79,7 +79,7 @@ bool sqliteModule::createTable(std::string tableName, std::vector<std::string>da
std::string query = "CREATE TABLE IF NOT EXISTS \'" + tableName
+"\' (SN TEXT PRIMARY KEY, timeCode TEXT,saveHour TEXT";
for (auto data : dataVec)
query += ","+data + "TEXT";
query += ","+data + " TEXT";
query += ",updateTime TEXT);";
int rc = sqlite3_exec(sqliteDbPtr, query.c_str(), 0, 0, 0);
if (rc != SQLITE_OK) {
@@ -226,9 +226,9 @@ bool sqliteModule::Delete(
sqlErr sqliteModule::Select(
std::string tableName,
std::vector<std::string>selectStr,
std::string Where,
std::string equal,
sqlTableDatas& output)
sqlTableDatas& output,
std::string Where,
std::string equal)
{
output.tableName = tableName;
std::string query = "SELECT ";
@@ -264,9 +264,9 @@ sqlErr sqliteModule::Select(
std::string columnValueStr = columnValue ? std::string(columnValue) : "";
columnNameStr.erase(std::remove(columnNameStr.begin(), columnNameStr.end(), '\''), columnNameStr.end());
if (columnNameStr.find(columnValueStr) != std::string::npos) {
columnValueStr = "";
}
//if (columnNameStr.find(columnValueStr) != std::string::npos) {
// columnValueStr = "";
//}
row.push_back({ columnNameStr, columnValueStr });
}
output.rowDatas.push_back(row);
@@ -25,9 +25,9 @@ public:
sqlErr Select(
std::string tableName,
std::vector<std::string>selectStr,
std::string Where = "",
std::string equal = "",
sqlTableDatas& output = sqlTableDatas());
sqlTableDatas& output = sqlTableDatas(),
std::string Where = "",
std::string equal = "");
bool Update(std::string,std::vector<sqlData>,std::string Where = "",std::string equal = "");
private:
+1 -1
View File
@@ -10,7 +10,7 @@
#include <qtimer.h>
#define disableBackEndCheck 1
#define disableBackEndCheck 0
#define disableeAlgo 0
#define enableHideConsle 1
class detGlobalData
+32 -12
View File
@@ -31,6 +31,11 @@ public:
bool res1 = waitrForInitResult(&_cameraManager);
bool res2 = waitrForInitResult(&_handleAiModelManager);
bool res3 = waitrForInitResult(&_triggerManager);
if (res3 == false)//连不上就重试一次
{
_triggerManager.start();
res3 = waitrForInitResult(&_triggerManager);
}
std::cout << "_cameraManager-initReuslt-->" << std::to_string(res1) << "\n"
<< "_handleAiModelManager-initReuslt-->" << std::to_string(res2) << "\n"
<< "_triggerManager-initReuslt-->" << std::to_string(res3) << "\n" << std::endl;
@@ -39,21 +44,36 @@ public:
else
emit _core._qtFunc.sendInitFinished(InitFailure);
}
bool waitrForInitResult(serviceModule* ptr)
//等待服务返回OK/NG直到超时
bool waitrForInitResult(serviceModule* ptr,int timeout=-1)
{
int timecnt = 0;
while (timecnt <= 100)
if (timeout == -1)//不会超时
{
if (ptr->status != NotInit)
break;
QThread::msleep(100);
timecnt++;
while (1)
{
if (ptr->status == InitFailure)
return false;
else if(ptr->status == InitOK)
return true;
QThread::msleep(100);
}
}
else
{
int timecnt = 0;
while (timecnt <= timeout)
{
if (ptr->status != NotInit)
break;
QThread::msleep(100);
timecnt++;
}
if (timecnt > 100)
return false;
if (ptr->status == InitFailure)
return false;
return true;
}
if (timecnt > 100)
return false;
if (ptr->status == InitFailure)
return false;
return true;
}
simpleSiemensTcp _simpleSiemensTcp;
detDataManager _detDataManager;//检测中的数据 不需要初始化
@@ -7,6 +7,9 @@ static void handleAiModelinitialization(handleAiModelManager*ptr)
ptr->insertSegModelPath("ASR-Seg.BHD", 0);
ptr->insertClsModelPath("ASR-Cls.BHD", 0);
ptr->insertSegModelPath("APEX-S-Seg.BHD", 0);
ptr->insertClsModelPath("APEX-S-Cls.BHD", 0);
ptr->insertDetModelPath("connectorDet.BHD", 0);
}
#pragma once
+2 -1
View File
@@ -17,7 +17,7 @@
#include <appCore.hpp>
#include <detProcess.hpp>
#include <algo/OPENCV_Correction.hpp>
#include <opencv2/core/utils/logger.hpp>
#pragma region 程序启动功能
bool appIsRuning()
{
@@ -169,6 +169,7 @@ int main(int argc, char* argv[])
if (appIsRuning() == false)
exit(0);
//////////
cv::utils::logging::setLogLevel(cv::utils::logging::LOG_LEVEL_ERROR);
qRegisterMetaType<imgWidgetShowType>("imgWidgetShowType");
qRegisterMetaType<showImgPack>("showImgPack");
qRegisterMetaType<cv::Mat*>("matPtr");
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.