You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
whellvalue/src/tpMain/lpGlobalConfig.cpp

292 lines
10 KiB
C++

#include "lpGlobalConfig.h"
#include "QZkJsonParser.h"
#define WHEEL_SELFDEFINE_FILE "\\user\\selfdefine.json"
#define WHEEL_SELFDEFINE_DETECTIMAGE "DetectImage"
#define WHEEL_SELFDEFINE_ALGPARA "AlgPara"//算法参数
#define WHEEL_SELFDEFINE_AUTOITEM "AutoSystem"
#define WHEEL_SELFDEFINE_PLCPARA "plcPara"
#define WHEEL_D2H_KEY "Dia2Th"
#define WHEEL_D2H_K "k"
#define WHEEL_D2H_B "b"
lpGlobalConfig::lpGlobalConfig()
: IsOnline(0), IsDetect(0), IsCheck(false)
{
totalDetectNum = 0;
totalUnDetectNum = 0;
//m_bObjAll2A = false;
m_startDetectFlags = false;
//saveGood = 0;
//saveBad = 0;
m_Debug = 0;
m_k = -0.00077528844;
m_b = 0.786244571;
bUseDiameter = bUseThickness = false;
}
lpGlobalConfig::~lpGlobalConfig()
{
//save();
}
void lpGlobalConfig::init(QString strPath)
{
m_applicationDirPath = strPath;
QString fileMyself = m_applicationDirPath + WHEEL_SELFDEFINE_FILE;
QJsonObject jsMyself = QZkJsonParser::ReadJsonAuto(fileMyself);
tcpServerPort = jsMyself.value("tcpServerPort").toInt(10100);
QJsonObject algObj = jsMyself.value(WHEEL_SELFDEFINE_ALGPARA).toObject();
if (!algObj.isEmpty())
{
m_AlgThres = algObj.value("Threshold").toInt(15);
}
else {
m_AlgThres = 15;
}
QJsonObject detectImage = jsMyself.value(WHEEL_SELFDEFINE_DETECTIMAGE).toObject();
if (!detectImage.isEmpty())
{
m_Debug = detectImage.value("Debug").toInt(1001);
//saveGood = detectImage.value("Save_Good").toInt(0);
//saveBad = detectImage.value("Save_Bad").toInt(0);
m_UseBackground = detectImage.value("UseBackground").toInt(0);
//saveCutGood = detectImage.value("SaveCut_Good").toInt(0);
//saveCutBad = detectImage.value("SaveCut_Bad").toInt(0);
bSaveCutOKImg = detectImage.value("saveCutOKImg").toBool();
bSaveCutNGImg = detectImage.value("saveCutNGImg").toBool();
bSaveSrcNGImg = detectImage.value("saveSrcNGImg").toBool();
bSaveSrcOKImg = detectImage.value("saveSrcOKImg").toBool();
bSaveSrcNGImg_value = detectImage.value("saveSrcNGImg_value").toBool();
bSaveSrcOKImg_value = detectImage.value("saveSrcOKImg_value").toBool();
m_SaveImgDirPath = detectImage.value("SaveImgPath").toString();
if (m_SaveImgDirPath.isEmpty())
m_SaveImgDirPath = m_applicationDirPath;
}
QJsonObject autosystemobj = jsMyself.value(WHEEL_SELFDEFINE_AUTOITEM).toObject();
if (!autosystemobj.isEmpty())
{
m_AutoSendTick2COM = autosystemobj.value("AutoSendTick2COM").toInt(0);
m_AutoSendTick2Net = autosystemobj.value("AutoSendTick2Net").toInt(0);
m_SendChannelRes2COM = autosystemobj.value("SendChannelRes2COM").toInt(0);
m_SendChannelRes2Net = autosystemobj.value("SendChannelRes2Net").toInt(0);
m_SendDetectStr2Net = autosystemobj.value("SendDetectStr2Net").toInt(0);
m_IsUseRaster = autosystemobj.value("IsUseRaster").toInt(0);
m_SaveD2HCsv = autosystemobj.value("SaveD2HCsv").toInt(0);
m_IsUseChannel = autosystemobj.value("IsUseChannel").toInt(0);
m_StartAndDetect = autosystemobj.value("StartAndDetect").toInt(0);
m_CameraTrigeType = autosystemobj.value("CameraTrigerType").toInt(0);
m_showThressValue = autosystemobj.value("showThressValue").toInt(0);
m_showThressList = autosystemobj.value("showThressList").toInt(0);
}
else
{
m_AutoSendTick2COM = 1;
m_AutoSendTick2Net = 1;
m_SendChannelRes2COM = 1;
m_SendChannelRes2Net = 1;
m_SendDetectStr2Net = 1;
m_IsUseRaster = 1;
m_SaveD2HCsv = 0;
m_IsUseChannel = 0;
m_StartAndDetect = 1;
m_CameraTrigeType = 1;
}
QJsonObject m_plcparaobj = jsMyself.value(WHEEL_SELFDEFINE_PLCPARA).toObject();
if (!m_plcparaobj.isEmpty())
{
m_PLC_TrigerFilter = m_plcparaobj.value("TrigerFilter").toInt(1);
m_PLC_CamTrigDelay = m_plcparaobj.value("CamTrigDelay").toInt(1);
m_PLC_CamTrigPulse = m_plcparaobj.value("CamTrigPulse").toInt(1);
m_PLC_LightDelay = m_plcparaobj.value("LightDelay").toInt(1);
m_PLC_TrigerType = m_plcparaobj.value("TrigerType").toInt(0);
m_PLC_ResHoldTime = m_plcparaobj.value("ResHoldTime").toInt(1500);
m_PLC_RestartSeverCount = m_plcparaobj.value("TimeOutCount").toInt(10);//超时多少次重启服务器
m_PLC_ShowTimerOutMsg = m_plcparaobj.value("ShowTimeOutMsg").toInt(0);//超时时显示
m_PLC_IsResServer = m_plcparaobj.value("IsRestartServer").toInt(0);//是否超时时自动重启服务器
m_PLC_SaveMsgInLog = m_plcparaobj.value("IsSaveMsgInlog").toInt(0);//是否保存数据到系统日志
}
else
{
m_PLC_TrigerFilter = 1;
m_PLC_CamTrigDelay = 1;
m_PLC_CamTrigPulse = 1;
m_PLC_LightDelay = 1;
m_PLC_TrigerType = 1;
m_PLC_ResHoldTime = 1500;
m_PLC_RestartSeverCount = 10;
m_PLC_ShowTimerOutMsg = 0;
m_PLC_IsResServer = 0;
m_PLC_SaveMsgInLog = 0;
}
QJsonObject VirtualObj = jsMyself.value("DetectModl").toObject();
if (!VirtualObj.isEmpty())
{
m_Virtual_Camera = VirtualObj.value("Virsual_Camera").toInt();
m_Visural_Time = VirtualObj.value("Virsual_Times").toInt(3000);
m_UseCutImg = VirtualObj.value("UseCutImg").toInt(0);
}
else
{
m_UseCutImg = 0;
m_Virtual_Camera = 0;
m_Visural_Time = 1000;
}
QJsonObject PLCTestObj = jsMyself.value("PLCCommunicate").toObject();
if (!PLCTestObj.isEmpty())
{
m_ThreadWaitTime = PLCTestObj.value("ThreadWaitTime").toInt(200);
m_PLC_ASK = PLCTestObj.value("NoAsk").toInt(0);
}
else
{
m_ThreadWaitTime = 200;
m_PLC_ASK = 0;
}
QJsonObject objState = jsMyself.value("detectState").toObject();
if (!objState.empty()) {
IsOnline = objState.value("isOnline").toInt();
}
objState = jsMyself.value(WHEEL_D2H_KEY).toObject();
if (!objState.empty()) {
m_k = objState.value(WHEEL_D2H_K).toDouble(m_k);
m_b = objState.value(WHEEL_D2H_B).toDouble(m_b);
}
objState = jsMyself.value("alg").toObject();
if (!objState.empty()) {
bUseThickness = objState.value("useThickness").toDouble();
bUseDiameter = objState.value("useDiameter").toDouble();
}
objState = jsMyself.value("CheckDB").toObject();
if (!objState.empty()){
m_IAutoDelCountUser = objState.value("AutoDelCountUser").toInt(100000);
m_IAutoDelCountWarn = objState.value("AutoDelCountWarn").toInt(100000);
m_IAutoDelCbx_Index = objState.value("AutoDelTime").toInt(0);
m_IAutoDel_days = objState.value("AutoDel_days").toInt(3650);
if (m_IAutoDel_days <= 0)
m_IAutoDel_days = 3650;
}
else
{
m_IAutoDelCountUser = 100000;
m_IAutoDelCountWarn = 100000;
m_IAutoDelCbx_Index = 0;
m_IAutoDel_days = 3650;
}
}
void lpGlobalConfig::savePLCPara()
{
QString fileMyself = m_applicationDirPath + WHEEL_SELFDEFINE_FILE;
QJsonObject jsMyself = QZkJsonParser::ReadJsonAuto(fileMyself);
QJsonObject m_plcparaobj;
m_plcparaobj.insert("TrigerFilter", m_PLC_TrigerFilter);
m_plcparaobj.insert("CamTrigDelay", m_PLC_CamTrigDelay);
m_plcparaobj.insert("CamTrigPulse", m_PLC_CamTrigPulse);
m_plcparaobj.insert("LightDelay", m_PLC_LightDelay);
m_plcparaobj.insert("TrigerType", m_PLC_TrigerType);
m_plcparaobj.insert("ResHoldTime", m_PLC_ResHoldTime);//PLC结果等待时间
m_plcparaobj.insert("TimeOutCount", m_PLC_RestartSeverCount);//超时多少次重启服务器
m_plcparaobj.insert("ShowTimeOutMsg", m_PLC_ShowTimerOutMsg);//超时时显示
m_plcparaobj.insert("IsRestartServer", m_PLC_IsResServer);//是否超时时自动重启服务器
m_plcparaobj.insert("IsSaveMsgInlog", m_PLC_SaveMsgInLog);//是否保存数据到系统日志
jsMyself.insert(WHEEL_SELFDEFINE_PLCPARA, m_plcparaobj);
QZkJsonParser::WriteJsonObject(fileMyself, jsMyself);
}
void lpGlobalConfig::saveDeteImage()
{
QString fileMyself = m_applicationDirPath + WHEEL_SELFDEFINE_FILE;
QJsonObject jsMyself = QZkJsonParser::ReadJsonAuto(fileMyself);
QJsonObject DetectModl;
DetectModl.insert("Virsual_Camera", m_Virtual_Camera);
DetectModl.insert("Virsual_Times", m_Visural_Time);
DetectModl.insert("UseCutImg", m_UseCutImg);
jsMyself.insert("DetectModl", DetectModl);
QJsonObject DetectImage;
DetectImage.insert("Debug", m_Debug);
// DetectImage.insert("SaveCut_Bad", saveCutBad);
// DetectImage.insert("SaveCut_Good", saveCutGood);
// DetectImage.insert("Save_Bad", saveBad);
// DetectImage.insert("Save_Good", saveGood);
DetectImage.insert("saveCutOKImg",bSaveCutOKImg);
DetectImage.insert("saveCutNGImg",bSaveCutNGImg);
DetectImage.insert("saveSrcNGImg",bSaveSrcNGImg);
DetectImage.insert("saveSrcOKImg",bSaveSrcOKImg);
DetectImage.insert("saveSrcNGImg_value",bSaveSrcNGImg_value);
DetectImage.insert("saveSrcOKImg_value",bSaveSrcOKImg_value);
DetectImage.insert("SaveImgPath",m_SaveImgDirPath);
DetectImage.insert("UseBackground", m_UseBackground);
jsMyself.insert("DetectImage", DetectImage);
QJsonObject autosystemobj;
autosystemobj.insert("AutoSendTick2COM", m_AutoSendTick2COM);
autosystemobj.insert("AutoSendTick2Net", m_AutoSendTick2Net);
autosystemobj.insert("SendChannelRes2COM", m_SendChannelRes2COM);
autosystemobj.insert("SendChannelRes2Net", m_SendChannelRes2Net);
autosystemobj.insert("SendDetectStr2Net", m_SendDetectStr2Net);
autosystemobj.insert("IsUseRaster", m_IsUseRaster);
autosystemobj.insert("SaveD2HCsv", m_SaveD2HCsv);
autosystemobj.insert("IsUseChannel", m_IsUseChannel);
autosystemobj.insert("StartAndDetect", m_StartAndDetect);
autosystemobj.insert("CameraTrigerType", m_CameraTrigeType);
//
autosystemobj.insert("showThressValue", m_showThressValue);
autosystemobj.insert("showThressList", m_showThressList);
jsMyself.insert(WHEEL_SELFDEFINE_AUTOITEM, autosystemobj);
jsMyself.insert("tcpServerPort", tcpServerPort);
QZkJsonParser::WriteJsonObject(fileMyself, jsMyself);
}
void lpGlobalConfig::save()
{
QString fileMyself = m_applicationDirPath + WHEEL_SELFDEFINE_FILE;
QJsonObject jsMyself = QZkJsonParser::ReadJsonAuto(fileMyself);
QJsonObject objState;
objState.insert("isOnline", IsOnline);
jsMyself.insert("detectState", objState);
QJsonObject objd2h;
objd2h.insert(WHEEL_D2H_K, m_k);
objd2h.insert(WHEEL_D2H_B, m_b);
jsMyself.insert(WHEEL_D2H_KEY, objd2h);
QJsonObject objag;
if (bUseThickness)
objag.insert("useThickness",1);
else
objag.insert("useThickness", 0);
if (bUseDiameter)
objag.insert("useDiameter", 1);
else
objag.insert("useDiameter", 0);
jsMyself.insert("alg", objag);
QJsonObject objCheckDb;
objCheckDb.insert("AutoDelCountUser", m_IAutoDelCountUser);
objCheckDb.insert("AutoDelCountWarn", m_IAutoDelCountWarn);
objCheckDb.insert("AutoDelTime", m_IAutoDelCbx_Index);
objCheckDb.insert("AutoDel_days", m_IAutoDel_days);
jsMyself.insert("CheckDB", objCheckDb);
QJsonObject algObj;
algObj.insert("Threshold", m_AlgThres);
jsMyself.insert(WHEEL_SELFDEFINE_ALGPARA, algObj);
QZkJsonParser::WriteJsonObject(fileMyself, jsMyself);
}