update 完善缺陷列表映射

dev_lsy
liusiyang 3 weeks ago
parent 2e9abdf857
commit 6357f12f79

@ -9,35 +9,21 @@
#ifndef AICommonDefine_H_ #ifndef AICommonDefine_H_
#define AICommonDefine_H_ #define AICommonDefine_H_
// AI缺陷分类缺陷的种类 // AI缺陷分类缺陷的种类(只含主检测+分类的缺陷;支架偏移/支架缺失/把手缺失为传统算法检出,铜箔标签(TBBQ)由标签检测上报,均不走AI分类)
enum AI_CLass_QX_NAME_ enum AI_CLass_QX_NAME_
{ {
AI_CLass_QX_NAME_aotudian, // 凹凸点 AI_CLass_QX_NAME_CGMark, // 把手标记
AI_CLass_QX_NAME_other, // 其他 AI_CLass_QX_NAME_BQBMark, // 补强板标记
AI_CLass_QX_NAME_line, // 线状 AI_CLass_QX_NAME_TBMark, // 铜箔标记
AI_CLass_QX_NAME_zangwu, // 脏污
AI_CLass_QX_NAME_dianzhuang, // 点状
AI_CLass_QX_NAME_posun, // 破损
AI_CLass_QX_NAME_xianwei, // 纤维
AI_CLass_QX_NAME_shuizi, // 水渍
AI_CLass_QX_NAME_danban, // 淡斑
AI_CLass_QX_NAME_fuchen, // 浮尘
AI_CLass_QX_NAME_count, AI_CLass_QX_NAME_count,
}; };
// 缺陷项对应在参数中的名称 // 缺陷项对应在参数中的名称(顺序需与分类模型输出的label顺序一致)
static const std::string AI_CLass_QX_NAME_Names[] = static const std::string AI_CLass_QX_NAME_Names[] =
{ {
"aotudian", "CGMark",
"qx", "BQBMark",
"line", "TBMark",
"zangwu",
"dianzhuang",
"posun",
"xianwei",
"shuizi",
"danban",
"fuchen",
}; };
#endif #endif

@ -44,23 +44,17 @@ struct VERSION_INFO
int ResultVersion = RESULT_VERSION; int ResultVersion = RESULT_VERSION;
int InterfaceVersion = 0; int InterfaceVersion = 0;
}; };
// 检测错误代码 // 检测错误代码(与缺陷列表一致;支架偏移/支架缺失/把手缺失为传统算法检出,无AI分类)
enum ERROR_TYPE_ enum ERROR_TYPE_
{ {
ERROR_TYPE_OK, // 1 疑是 ERROR_TYPE_OK, // 0 好品
ERROR_TYPE_aotudian, // 2 凹凸点 ERROR_TYPE_ZJ_PianYi, // 1 支架偏移
ERROR_TYPE_other, // 3 其他 ERROR_TYPE_ZJ_QueShi, // 2 支架缺失
ERROR_TYPE_line, // 4 线状 ERROR_TYPE_CGMo_QueShi, // 3 把手缺失
ERROR_TYPE_zangwu, // 5 脏污 ERROR_TYPE_CGMark, // 4 把手标记
ERROR_TYPE_edge, // 6 边缘 ERROR_TYPE_BQBMark, // 5 补强板标记
ERROR_TYPE_ymhs, // 7 研磨划伤 ERROR_TYPE_TBBQ, // 6 铜箔标签
ERROR_TYPE_dianzhuang, // 8 点状 ERROR_TYPE_TBMark, // 7 铜箔标记
ERROR_TYPE_posun, // 9 破损
ERROR_TYPE_xianwei, // 10 纤维
ERROR_TYPE_shuizi, // 11 水渍
ERROR_TYPE_danban, // 12 淡斑
ERROR_TYPE_fuchen, // 13 浮尘
ERROR_TYPE_tag, // 14 标签
ERROR_TYPE_COUNT, ERROR_TYPE_COUNT,
}; };
extern std::vector<std::string> QX_Result_Names; extern std::vector<std::string> QX_Result_Names;

@ -445,8 +445,8 @@ int ImageResultJudge::ResultJudge(std::shared_ptr<ImageAllResult> pImageResult)
} }
} }
// 标签缺陷:检测到标签直接判 NG // 标签缺陷(TBBQ):检测到标签直接判 NG
if (config_qx_type == CONFIG_QX_NAME_cell_tag) if (config_qx_type == CONFIG_QX_NAME_cell_TBBQ)
{ {
bNG_Status = true; bNG_Status = true;
Judge_Status = true; Judge_Status = true;
@ -1132,75 +1132,13 @@ int ImageResultJudge::addInDrawBlob(int errortype, int blobidx, QX_ERROR_INFO_ *
int ImageResultJudge::ConfigTypeToResultType(int nconfigType) int ImageResultJudge::ConfigTypeToResultType(int nconfigType)
{ {
bool bdesc = false; // 缺陷类型(CONFIG_QX_NAME_)与结果列表(QX_Result_Names/QX_Result_Code)按配置顺序一一对应,直接按下标映射
int resultError_type = ERROR_TYPE_OK; if (nconfigType >= 0 && nconfigType < CONFIG_QX_NAME_count &&
if(nconfigType < CONFIG_QX_NAME_Names.size()) nconfigType < (int)QX_Result_Names.size())
{ {
string cqn = CONFIG_QX_NAME_Names[nconfigType]; return nconfigType;
for(int i = 0; i < m_FlawCodeList.size(); i++)
{
for(int j = 0; j < m_FlawCodeList.at(i).config_flaw_name.size(); j++)
{
if(cqn == m_FlawCodeList.at(i).config_flaw_name[j])
{
resultError_type = i;
bdesc = true;
break;
}
}
}
}
// 如果描述没有配置,用默认值
if(!bdesc)
{
switch (nconfigType)
{
case CONFIG_QX_NAME_cell_aotudian:
resultError_type = ERROR_TYPE_aotudian;
break;
case CONFIG_QX_NAME_cell_other:
resultError_type = ERROR_TYPE_other;
break;
case CONFIG_QX_NAME_cell_line:
resultError_type = ERROR_TYPE_line;
break;
case CONFIG_QX_NAME_cell_zangwu:
resultError_type = ERROR_TYPE_zangwu;
break;
case CONFIG_QX_NAME_cell_edge:
resultError_type = ERROR_TYPE_edge;
break;
case CONFIG_QX_NAME_cell_ymhs:
resultError_type = ERROR_TYPE_ymhs;
break;
case CONFIG_QX_NAME_cell_dianzhuang:
resultError_type = ERROR_TYPE_dianzhuang;
break;
case CONFIG_QX_NAME_cell_posun:
resultError_type = ERROR_TYPE_posun;
break;
case CONFIG_QX_NAME_cell_xianwei:
resultError_type = ERROR_TYPE_xianwei;
break;
case CONFIG_QX_NAME_cell_shuizi:
resultError_type = ERROR_TYPE_shuizi;
break;
case CONFIG_QX_NAME_cell_danban:
resultError_type = ERROR_TYPE_danban;
break;
case CONFIG_QX_NAME_cell_fuchen:
resultError_type = ERROR_TYPE_fuchen;
break;
case CONFIG_QX_NAME_cell_tag:
resultError_type = ERROR_TYPE_tag;
break;
default:
break;
}
} }
return ERROR_TYPE_OK;
return resultError_type;
} }
int ImageResultJudge::sendTask(std::shared_ptr<DrawInfo> task) int ImageResultJudge::sendTask(std::shared_ptr<DrawInfo> task)

@ -1042,7 +1042,7 @@ int ImgCheckAnalysisy::CheckRun()
temerror.flen = (w > h ? w : h) * m_fImgage_Scale_X; temerror.flen = (w > h ? w : h) * m_fImgage_Scale_X;
temerror.fbreadth = (w > h ? h : w) * m_fImgage_Scale_Y; temerror.fbreadth = (w > h ? h : w) * m_fImgage_Scale_Y;
temerror.nconfig_qx_type = CONFIG_QX_NAME_support_offset; temerror.nconfig_qx_type = CONFIG_QX_NAME_cell_ZJ_PianYi;
temerror.qx_name = CONFIG_QX_NAME_Names[temerror.nconfig_qx_type]; temerror.qx_name = CONFIG_QX_NAME_Names[temerror.nconfig_qx_type];
temerror.result = QX_RESULT_TYPE_NG; temerror.result = QX_RESULT_TYPE_NG;
temerror.result_name = QX_RESULT_TYPE_Names[QX_RESULT_TYPE_NG]; temerror.result_name = QX_RESULT_TYPE_Names[QX_RESULT_TYPE_NG];
@ -1101,8 +1101,8 @@ int ImgCheckAnalysisy::CheckRun()
float h = roi.height; float h = roi.height;
temerror.flen = (w > h ? w : h) * m_fImgage_Scale_X; temerror.flen = (w > h ? w : h) * m_fImgage_Scale_X;
temerror.fbreadth = (w > h ? h : w) * m_fImgage_Scale_Y; temerror.fbreadth = (w > h ? h : w) * m_fImgage_Scale_Y;
temerror.nconfig_qx_type = CONFIG_QX_NAME_handle_loss; temerror.nconfig_qx_type = CONFIG_QX_NAME_cell_CGMo_QueShi;
temerror.qx_name = CONFIG_QX_NAME_Names[CONFIG_QX_NAME_handle_loss]; temerror.qx_name = CONFIG_QX_NAME_Names[CONFIG_QX_NAME_cell_CGMo_QueShi];
temerror.result = QX_RESULT_TYPE_NG; temerror.result = QX_RESULT_TYPE_NG;
temerror.result_name = QX_RESULT_TYPE_Names[QX_RESULT_TYPE_NG]; temerror.result_name = QX_RESULT_TYPE_Names[QX_RESULT_TYPE_NG];
@ -1158,8 +1158,8 @@ int ImgCheckAnalysisy::CheckRun()
float th = tagRoi.size.height; float th = tagRoi.size.height;
temerror.flen = (tw > th ? tw : th) * m_fImgage_Scale_X; temerror.flen = (tw > th ? tw : th) * m_fImgage_Scale_X;
temerror.fbreadth = (tw > th ? th : tw) * m_fImgage_Scale_Y; temerror.fbreadth = (tw > th ? th : tw) * m_fImgage_Scale_Y;
temerror.nconfig_qx_type = CONFIG_QX_NAME_cell_tag; temerror.nconfig_qx_type = CONFIG_QX_NAME_cell_TBBQ;
temerror.qx_name = CONFIG_QX_NAME_Names[CONFIG_QX_NAME_cell_tag]; temerror.qx_name = CONFIG_QX_NAME_Names[CONFIG_QX_NAME_cell_TBBQ];
temerror.result = QX_RESULT_TYPE_NG; temerror.result = QX_RESULT_TYPE_NG;
temerror.result_name = QX_RESULT_TYPE_Names[QX_RESULT_TYPE_NG]; temerror.result_name = QX_RESULT_TYPE_Names[QX_RESULT_TYPE_NG];
@ -2091,7 +2091,8 @@ int ImgCheckAnalysisy::AI_QX_Class_Thread()
ERROR_DOTS_BLOB_DATA *pblob = &blobs.blobTab[submitted]; ERROR_DOTS_BLOB_DATA *pblob = &blobs.blobTab[submitted];
if (pblob->ErrType == ERR_TYPE_2) if (pblob->ErrType == ERR_TYPE_2)
{ {
pblob->AIclasstype = CONFIG_QX_NAME_cell_ymhs; // ERR_TYPE_2不参与分类,按默认AI类别(把手标记)处理
pblob->AIclasstype = CONFIG_QX_NAME_cell_CGMark;
submitted++; submitted++;
completed++; completed++;
continue; continue;
@ -2135,50 +2136,23 @@ int ImgCheckAnalysisy::AI_QX_Class_Thread()
int temClass = result->cls_label; int temClass = result->cls_label;
int cls_num = 0; int cls_num = 0;
// 分类模型label顺序:0-把手标记(CGMark) 1-补强板标记(BQBMark) 2-铜箔标记(TBMark)
switch (temClass) switch (temClass)
{ {
case 0: case 0:
cls_num = AI_CLass_QX_NAME_aotudian; cls_num = AI_CLass_QX_NAME_CGMark;
break; break;
case 1: case 1:
cls_num = AI_CLass_QX_NAME_other; cls_num = AI_CLass_QX_NAME_BQBMark;
break; break;
case 2: case 2:
cls_num = AI_CLass_QX_NAME_line; cls_num = AI_CLass_QX_NAME_TBMark;
break;
case 3:
cls_num = AI_CLass_QX_NAME_zangwu;
break;
case 4:
cls_num = AI_CLass_QX_NAME_dianzhuang;
break;
case 5:
cls_num = AI_CLass_QX_NAME_posun;
break;
case 6:
cls_num = AI_CLass_QX_NAME_xianwei;
break;
case 7:
cls_num = AI_CLass_QX_NAME_shuizi;
break;
case 8:
cls_num = AI_CLass_QX_NAME_danban;
break;
case 9:
cls_num = AI_CLass_QX_NAME_fuchen;
break; break;
default: default:
cls_num = AI_CLass_QX_NAME_zangwu; cls_num = AI_CLass_QX_NAME_CGMark;
break; break;
} }
@ -2419,38 +2393,18 @@ int ImgCheckAnalysisy::DrawResult_Step_1()
int ImgCheckAnalysisy::AIClassTypeToConfigType(int nAIQXType) int ImgCheckAnalysisy::AIClassTypeToConfigType(int nAIQXType)
{ {
int resultError_type = CONFIG_QX_NAME_cell_aotudian; // 只有主检测+分类的缺陷在映射表中;支架偏移/支架缺失/把手缺失(传统检出)、铜箔标签(标签检测)不走AI分类
int resultError_type = CONFIG_QX_NAME_cell_CGMark;
switch (nAIQXType) switch (nAIQXType)
{ {
case AI_CLass_QX_NAME_aotudian: case AI_CLass_QX_NAME_CGMark:
resultError_type = CONFIG_QX_NAME_cell_aotudian; resultError_type = CONFIG_QX_NAME_cell_CGMark;
break;
case AI_CLass_QX_NAME_other:
resultError_type = CONFIG_QX_NAME_cell_other;
break;
case AI_CLass_QX_NAME_line:
resultError_type = CONFIG_QX_NAME_cell_line;
break;
case AI_CLass_QX_NAME_zangwu:
resultError_type = CONFIG_QX_NAME_cell_zangwu;
break;
case AI_CLass_QX_NAME_dianzhuang:
resultError_type = CONFIG_QX_NAME_cell_dianzhuang;
break;
case AI_CLass_QX_NAME_posun:
resultError_type = CONFIG_QX_NAME_cell_posun;
break;
case AI_CLass_QX_NAME_xianwei:
resultError_type = CONFIG_QX_NAME_cell_xianwei;
break;
case AI_CLass_QX_NAME_shuizi:
resultError_type = CONFIG_QX_NAME_cell_shuizi;
break; break;
case AI_CLass_QX_NAME_danban: case AI_CLass_QX_NAME_BQBMark:
resultError_type = CONFIG_QX_NAME_cell_danban; resultError_type = CONFIG_QX_NAME_cell_BQBMark;
break; break;
case AI_CLass_QX_NAME_fuchen: case AI_CLass_QX_NAME_TBMark:
resultError_type = CONFIG_QX_NAME_cell_fuchen; resultError_type = CONFIG_QX_NAME_cell_TBMark;
break; break;
default: default:
break; break;

@ -39,43 +39,25 @@ static const std::string WHITE_BLCAK_Names[] =
// 检测缺陷的种类 // 检测缺陷的种类
enum CONFIG_QX_NAME_ enum CONFIG_QX_NAME_
{ {
CONFIG_QX_NAME_cell_aotudian, // 分类 凹凸点 CONFIG_QX_NAME_cell_ZJ_PianYi, // 分类 支架偏移
CONFIG_QX_NAME_cell_other, // 分类 其他 CONFIG_QX_NAME_cell_ZJ_QueShi, // 分类 支架缺失
CONFIG_QX_NAME_cell_line, // 分类 线状 CONFIG_QX_NAME_cell_CGMo_QueShi, // 分类 把手缺失
CONFIG_QX_NAME_cell_zangwu, // 分类 脏污 CONFIG_QX_NAME_cell_CGMark, // 分类 把手标记
CONFIG_QX_NAME_cell_edge, // 分类 边缘 CONFIG_QX_NAME_cell_BQBMark, // 分类 补强板标记
CONFIG_QX_NAME_cell_ymhs, // 分类 异物 CONFIG_QX_NAME_cell_TBBQ, // 分类 铜箔标签
CONFIG_QX_NAME_cell_dianzhuang, // 分类 点状 CONFIG_QX_NAME_cell_TBMark, // 分类 铜箔标记
CONFIG_QX_NAME_cell_posun, // 分类 破损
CONFIG_QX_NAME_cell_xianwei, // 分类 纤维
CONFIG_QX_NAME_cell_shuizi, // 分类 水渍
CONFIG_QX_NAME_cell_danban, // 分类 淡斑
CONFIG_QX_NAME_cell_fuchen, // 分类 浮尘
CONFIG_QX_NAME_cell_tag, // 分类 标签
CONFIG_QX_NAME_support_offset, // 支架偏移
CONFIG_QX_NAME_support_loss, // 支架缺失
CONFIG_QX_NAME_handle_loss, // 把手缺失
CONFIG_QX_NAME_count, CONFIG_QX_NAME_count,
}; };
// 缺陷项对应在参数中的名称 // 缺陷项对应在参数中的名称
static std::vector<std::string> CONFIG_QX_NAME_Names = static std::vector<std::string> CONFIG_QX_NAME_Names =
{ {
"aotudian", "ZJ_PianYi",
"other", "ZJ_QueShi",
"line", "CGMo_QueShi",
"zangwu", "CGMark",
"edge", "BQBMark",
"ymhs", "TBBQ",
"dianzhuang", "TBMark",
"posun",
"xianwei",
"shuizi",
"danban",
"fuchen",
"tag",
"support_offset",
"support_loss",
"handle_loss",
}; };
// 分析类型 // 分析类型

@ -24,37 +24,23 @@ std::vector<ReadFlawCode> m_FlawCodeList;
std::vector<std::string> QX_Result_Names = std::vector<std::string> QX_Result_Names =
{ {
"OK", "ZJ_PianYi",
"aotudian", "ZJ_QueShi",
"other", "CGMo_QueShi",
"line", "CGMark",
"zangwu", "BQBMark",
"edge", "TBBQ",
"ymhs", "TBMark",
"dianzhuang",
"posun",
"xianwei",
"shuizi",
"danban",
"fuchen",
"tag",
}; };
std::vector<std::string> QX_Result_Code = std::vector<std::string> QX_Result_Code =
{ {
"P0000", "M701201",
"MA507", "M200214",
"MA508", "M200215",
"MA506", "M200216",
"MA504", "M200217",
"MA503", "M200218",
"MA502", "M200219",
"MA505",
"MA501",
"P0001",
"P0002",
"P0003",
"P0004",
"P0005",
}; };
int ReadFlawCodeConfig(std::string json_path) int ReadFlawCodeConfig(std::string json_path)

@ -1010,125 +1010,20 @@ int BaseFuntonConfigJson::GetFunction(Json::Value value)
_config.bigNG.bOpen = value_f["isOpen"].asBool(); _config.bigNG.bOpen = value_f["isOpen"].asBool();
if (_config.bigNG.bOpen) if (_config.bigNG.bOpen)
{ {
if (value_f["form"]["aotudian"]["open"]) // 大缺陷参数按缺陷列表循环解析(表单键名与CONFIG_QX_NAME_Names一致)
for (int i = 0; i < CONFIG_QX_NAME_count; i++)
{ {
_config.bigNG.qx[CONFIG_QX_NAME_cell_aotudian].bOpen = value_f["form"]["aotudian"]["open"].asBool(); std::string strqx_name = CONFIG_QX_NAME_Names[i];
} if (value_f["form"][strqx_name]["open"])
if (value_f["form"]["aotudian"]["Area"])
{
_config.bigNG.qx[CONFIG_QX_NAME_cell_aotudian].fArea = value_f["form"]["aotudian"]["Area"].asFloat();
}
_config.bigNG.qx[CONFIG_QX_NAME_cell_aotudian].strname = "aotudian";
if (value_f["form"]["other"]["open"])
{
_config.bigNG.qx[CONFIG_QX_NAME_cell_other].bOpen = value_f["form"]["other"]["open"].asBool();
}
if (value_f["form"]["other"]["Area"])
{
_config.bigNG.qx[CONFIG_QX_NAME_cell_other].fArea = value_f["form"]["other"]["Area"].asFloat();
}
_config.bigNG.qx[CONFIG_QX_NAME_cell_other].strname = "other";
if (value_f["form"]["line"]["open"])
{
_config.bigNG.qx[CONFIG_QX_NAME_cell_line].bOpen = value_f["form"]["line"]["open"].asBool();
}
if (value_f["form"]["line"]["Area"])
{
_config.bigNG.qx[CONFIG_QX_NAME_cell_line].fArea = value_f["form"]["line"]["Area"].asFloat();
}
_config.bigNG.qx[CONFIG_QX_NAME_cell_line].strname = "line";
if (value_f["form"]["zangwu"]["open"])
{ {
_config.bigNG.qx[CONFIG_QX_NAME_cell_zangwu].bOpen = value_f["form"]["zangwu"]["open"].asBool(); _config.bigNG.qx[i].bOpen = value_f["form"][strqx_name]["open"].asBool();
} }
if (value_f["form"]["zangwu"]["Area"]) if (value_f["form"][strqx_name]["Area"])
{
_config.bigNG.qx[CONFIG_QX_NAME_cell_zangwu].fArea = value_f["form"]["zangwu"]["Area"].asFloat();
}
_config.bigNG.qx[CONFIG_QX_NAME_cell_zangwu].strname = "zangwu";
if (value_f["form"]["edge"]["open"])
{
_config.bigNG.qx[CONFIG_QX_NAME_cell_edge].bOpen = value_f["form"]["edge"]["open"].asBool();
}
if (value_f["form"]["edge"]["Area"])
{
_config.bigNG.qx[CONFIG_QX_NAME_cell_edge].fArea = value_f["form"]["edge"]["Area"].asFloat();
}
_config.bigNG.qx[CONFIG_QX_NAME_cell_edge].strname = "edge";
if (value_f["form"]["ymhs"]["open"])
{
_config.bigNG.qx[CONFIG_QX_NAME_cell_ymhs].bOpen = value_f["form"]["ymhs"]["open"].asBool();
}
if (value_f["form"]["ymhs"]["Area"])
{
_config.bigNG.qx[CONFIG_QX_NAME_cell_ymhs].fArea = value_f["form"]["ymhs"]["Area"].asFloat();
}
_config.bigNG.qx[CONFIG_QX_NAME_cell_ymhs].strname = "ymhs";
if (value_f["form"]["dianzhuang"]["open"])
{ {
_config.bigNG.qx[CONFIG_QX_NAME_cell_dianzhuang].bOpen = value_f["form"]["dianzhuang"]["open"].asBool(); _config.bigNG.qx[i].fArea = value_f["form"][strqx_name]["Area"].asFloat();
} }
if (value_f["form"]["dianzhuang"]["Area"]) _config.bigNG.qx[i].strname = strqx_name;
{
_config.bigNG.qx[CONFIG_QX_NAME_cell_dianzhuang].fArea = value_f["form"]["dianzhuang"]["Area"].asFloat();
}
_config.bigNG.qx[CONFIG_QX_NAME_cell_dianzhuang].strname = "dianzhuang";
if (value_f["form"]["posun"]["open"])
{
_config.bigNG.qx[CONFIG_QX_NAME_cell_posun].bOpen = value_f["form"]["posun"]["open"].asBool();
}
if (value_f["form"]["posun"]["Area"])
{
_config.bigNG.qx[CONFIG_QX_NAME_cell_posun].fArea = value_f["form"]["posun"]["Area"].asFloat();
}
_config.bigNG.qx[CONFIG_QX_NAME_cell_posun].strname = "posun";
if (value_f["form"]["xianwei"]["open"])
{
_config.bigNG.qx[CONFIG_QX_NAME_cell_xianwei].bOpen = value_f["form"]["xianwei"]["open"].asBool();
}
if (value_f["form"]["xianwei"]["Area"])
{
_config.bigNG.qx[CONFIG_QX_NAME_cell_xianwei].fArea = value_f["form"]["xianwei"]["Area"].asFloat();
}
_config.bigNG.qx[CONFIG_QX_NAME_cell_xianwei].strname = "xianwei";
if (value_f["form"]["shuizi"]["open"])
{
_config.bigNG.qx[CONFIG_QX_NAME_cell_shuizi].bOpen = value_f["form"]["shuizi"]["open"].asBool();
}
if (value_f["form"]["shuizi"]["Area"])
{
_config.bigNG.qx[CONFIG_QX_NAME_cell_shuizi].fArea = value_f["form"]["shuizi"]["Area"].asFloat();
}
_config.bigNG.qx[CONFIG_QX_NAME_cell_shuizi].strname = "shuizi";
if (value_f["form"]["danban"]["open"])
{
_config.bigNG.qx[CONFIG_QX_NAME_cell_danban].bOpen = value_f["form"]["danban"]["open"].asBool();
}
if (value_f["form"]["danban"]["Area"])
{
_config.bigNG.qx[CONFIG_QX_NAME_cell_danban].fArea = value_f["form"]["danban"]["Area"].asFloat();
}
_config.bigNG.qx[CONFIG_QX_NAME_cell_danban].strname = "danban";
if (value_f["form"]["fuchen"]["open"])
{
_config.bigNG.qx[CONFIG_QX_NAME_cell_fuchen].bOpen = value_f["form"]["fuchen"]["open"].asBool();
}
if (value_f["form"]["fuchen"]["Area"])
{
_config.bigNG.qx[CONFIG_QX_NAME_cell_fuchen].fArea = value_f["form"]["fuchen"]["Area"].asFloat();
} }
_config.bigNG.qx[CONFIG_QX_NAME_cell_fuchen].strname = "fuchen";
} }
else else
{ {

Loading…
Cancel
Save