|
|
|
|
|
#include "lpGlobalConfig.h"
|
|
|
|
|
|
#include "QZkJsonParser.h"
|
|
|
|
|
|
#include <QSettings>
|
|
|
|
|
|
#include "QApplication"
|
|
|
|
|
|
|
|
|
|
|
|
#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"
|
|
|
|
|
|
|
|
|
|
|
|
#pragma execution_character_set("utf-8")
|
|
|
|
|
|
|
|
|
|
|
|
lpGlobalConfig::lpGlobalConfig()
|
|
|
|
|
|
: IsOnline(0), IsDetect(0), IsCheck(false)
|
|
|
|
|
|
{
|
|
|
|
|
|
totalDetectNum = 0;
|
|
|
|
|
|
totalUnDetectNum = 0;
|
|
|
|
|
|
m_startDetectFlags = false;
|
|
|
|
|
|
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);
|
|
|
|
|
|
webSocketPort = jsMyself.value("webSocketPort").toInt(10110);
|
|
|
|
|
|
|
|
|
|
|
|
bRunBackRunning = jsMyself.value("runBackRnning").toBool(false);
|
|
|
|
|
|
bRunBackClosing = jsMyself.value("runBackClosing").toBool(false);//关闭页面时自动后台运行
|
|
|
|
|
|
strSysTitle = jsMyself.value("systitle").toString(QObject::tr("识别定位一体系统"));//系统标题
|
|
|
|
|
|
|
|
|
|
|
|
QJsonObject algObj = jsMyself.value(WHEEL_SELFDEFINE_ALGPARA).toObject();
|
|
|
|
|
|
if (!algObj.isEmpty())
|
|
|
|
|
|
{
|
|
|
|
|
|
algParam.m_AlgThres = algObj.value("Threshold").toInt(15);
|
|
|
|
|
|
algParam.m_RatioDetectType = algObj.value("RatioType").toInt(0);
|
|
|
|
|
|
algParam.m_bUseEqual = algObj.value("bEqual").toBool(false);//使用使用图像增强
|
|
|
|
|
|
algParam.m_filterSize = algObj.value("filterSize").toInt(50);//过滤圆大小
|
|
|
|
|
|
|
|
|
|
|
|
algParam.m_Circle_Polarity = algObj.value("circle_polarity").toInt(0);
|
|
|
|
|
|
algParam.m_Circle_EdgeWidth = algObj.value("circle_edgewidth").toInt(3);
|
|
|
|
|
|
algParam.m_Circle_ACThres = algObj.value("circle_acthres").toInt(3);
|
|
|
|
|
|
algParam.m_UseBackground = algObj.value("useBackground").toInt(0);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
QJsonObject detectImage = jsMyself.value(WHEEL_SELFDEFINE_DETECTIMAGE).toObject();
|
|
|
|
|
|
if (!detectImage.isEmpty())
|
|
|
|
|
|
{
|
|
|
|
|
|
m_Debug = detectImage.value("Debug").toInt(1001);
|
|
|
|
|
|
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::loadStandParam()
|
|
|
|
|
|
{
|
|
|
|
|
|
QString fileMyself = QApplication::applicationDirPath() + "\\user\\standparam.ini";
|
|
|
|
|
|
QSettings setting(fileMyself, QSettings::IniFormat);
|
|
|
|
|
|
int p1x = setting.value("point1_X", 0).toInt();
|
|
|
|
|
|
int p1y = setting.value("point1_y", 0).toInt();
|
|
|
|
|
|
int p2x = setting.value("point2_x", 100).toInt();
|
|
|
|
|
|
int p2y = setting.value("point2_y", 100).toInt();
|
|
|
|
|
|
double scale = setting.value("scale", 1.0).toDouble();
|
|
|
|
|
|
double length = setting.value("length", 1000).toDouble();
|
|
|
|
|
|
|
|
|
|
|
|
pointXOffset = setting.value("pointXoffset", 0.0).toDouble();
|
|
|
|
|
|
pointYOffset = setting.value("pointYoffset", 0.0).toDouble();
|
|
|
|
|
|
pointCircle = setting.value("pointCircle", 20).toInt();
|
|
|
|
|
|
point1.setX(p1x);
|
|
|
|
|
|
point1.setY(p1y);
|
|
|
|
|
|
point2.setX(p2x);
|
|
|
|
|
|
point2.setY(p2y);
|
|
|
|
|
|
fScale = scale;
|
|
|
|
|
|
fLength = length;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void lpGlobalConfig::saveStandParam()
|
|
|
|
|
|
{
|
|
|
|
|
|
QString fileMyself = QApplication::applicationDirPath() + "\\user\\standparam.ini";
|
|
|
|
|
|
QSettings setting(fileMyself, QSettings::IniFormat);
|
|
|
|
|
|
setting.setValue("point1_X", point1.x());
|
|
|
|
|
|
setting.setValue("point1_y", point1.y());
|
|
|
|
|
|
setting.setValue("point2_x", point2.x());
|
|
|
|
|
|
setting.setValue("point2_y", point2.y());
|
|
|
|
|
|
setting.setValue("scale", fScale);
|
|
|
|
|
|
setting.setValue("length", fLength);
|
|
|
|
|
|
setting.setValue("pointXoffset", pointXOffset);
|
|
|
|
|
|
setting.setValue("pointYoffset", pointYOffset);
|
|
|
|
|
|
setting.setValue("pointCircle", pointCircle);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
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("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);
|
|
|
|
|
|
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);
|
|
|
|
|
|
jsMyself.insert("webSocketPort", webSocketPort);
|
|
|
|
|
|
|
|
|
|
|
|
jsMyself.insert("runBackRnning",bRunBackRunning);
|
|
|
|
|
|
jsMyself.insert("runBackClosing", bRunBackClosing);//关闭页面时自动后台运行
|
|
|
|
|
|
jsMyself.insert("systitle", strSysTitle);//系统标题
|
|
|
|
|
|
|
|
|
|
|
|
QJsonObject algObj;
|
|
|
|
|
|
algObj.insert("Threshold", algParam.m_AlgThres);
|
|
|
|
|
|
algObj.insert("RatioType", algParam.m_RatioDetectType);
|
|
|
|
|
|
algObj.insert("bEqual", algParam.m_bUseEqual);//使用使用图像增强
|
|
|
|
|
|
algObj.insert("filterSize", algParam.m_filterSize);//过滤圆大小
|
|
|
|
|
|
algObj.insert("circle_polarity", algParam.m_Circle_Polarity);
|
|
|
|
|
|
algObj.insert("circle_edgewidth", algParam.m_Circle_EdgeWidth);
|
|
|
|
|
|
algObj.insert("circle_acthres", algParam.m_Circle_ACThres);
|
|
|
|
|
|
algObj.insert("useBackground", algParam.m_UseBackground);
|
|
|
|
|
|
jsMyself.insert(WHEEL_SELFDEFINE_ALGPARA, algObj);
|
|
|
|
|
|
|
|
|
|
|
|
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", algParam.m_AlgThres);
|
|
|
|
|
|
algObj.insert("RatioType", algParam.m_RatioDetectType);
|
|
|
|
|
|
algObj.insert("bEqual", algParam.m_bUseEqual);//使用使用图像增强
|
|
|
|
|
|
algObj.insert("filterSize", algParam.m_filterSize);//过滤圆大小
|
|
|
|
|
|
algObj.insert("circle_polarity", algParam.m_Circle_Polarity);
|
|
|
|
|
|
algObj.insert("circle_edgewidth", algParam.m_Circle_EdgeWidth);
|
|
|
|
|
|
algObj.insert("circle_acthres", algParam.m_Circle_ACThres);
|
|
|
|
|
|
algObj.insert("useBackground", algParam.m_UseBackground);
|
|
|
|
|
|
jsMyself.insert(WHEEL_SELFDEFINE_ALGPARA, algObj);
|
|
|
|
|
|
QZkJsonParser::WriteJsonObject(fileMyself, jsMyself);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|