#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); 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); 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); }