#include "RecoatCheckCfg.h" #include "BaseConfig.h" RecoatCheckCfg::RecoatCheckCfg() : m_Enable(new BoolData("Enable")) , m_CheckOnPowderTest(new BoolData("CheckOnPowderTest")) , m_MaskTopLeftX(new UIntData("MaskTopLeftX")) , m_MaskTopLeftY(new UIntData("MaskTopLeftY")) , m_MaskTopRightX(new UIntData("MaskTopRightX",u8"", 500)) , m_MaskTopRightY(new UIntData("MaskTopRightY")) , m_MaskBottomLeftX(new UIntData("MaskBottomLeftX")) , m_MaskBottomLeftY(new UIntData("MaskBottomLeftY",u8"", 500)) , m_MaskBottomRightX(new UIntData("MaskBottomRightX", u8"", 500)) , m_MaskBottomRightY(new UIntData("MaskBottomRightY", u8"", 500)) , m_TransformTopLeftX(new FloatData("TransformTopLeftX", u8"", -40)) , m_TransformTopLeftY(new FloatData("TransformTopLeftY", u8"", 40)) , m_TransformTopRightX(new FloatData("TransformTopRightX", u8"", 40)) , m_TransformTopRightY(new FloatData("TransformTopRightY", u8"", 40)) , m_TransformBottomLeftX(new FloatData("TransformBottomLeftX", u8"",-40)) , m_TransformBottomLeftY(new FloatData("TransformBottomLeftY", u8"", -40)) , m_TransformBottomRightX(new FloatData("TransformBottomRightX", u8"", 40)) , m_TransformBottomRightY(new FloatData("TransformBottomRightY", u8"", -40)) , m_PerIslandCntThreshold(new UIntData("PerIslandCntThreshold", u8"每个岛包含的未铺粉区域数目的阈值",10)) , m_AreaThresholdFactor(new FloatData("AreaThresholdFactor", u8"单个未铺粉区域的面积阈值等于以层厚为半径的圆的面积乘以m_AreaThresholdFactor", 1.0f)) , m_LengthThresholdFactor(new FloatData("LengthThresholdFactor", u8"单个未铺粉区域的轮廓长度阈值等于层厚乘以m_LengthThresholdFactor", 10.0f)) , m_RetryTimes(new UIntData("RetryTimes", u8"重新铺粉尝试次数",3)) , m_BinaryThreshold(new UIntData("BinaryThreshold", u8"图像二值化阈值",96)) , m_CheckType(new IntData("CheckType",u8"", WHOLE_PERCENTAGE)) , m_UncoverPercentage(new FloatData("UncoverPercentage",u8"", 20.0)) , m_IsUpPartNotLight(new BoolData("IsUpPartNotLight",u8"上部亮度不足", true)) , m_ImageScale(new IntData("ImageScale",u8"",5)) , m_GrayOffset(new IntData("GrayOffset", u8"", 10)) , m_CheckLayerIndex(new UIntData("CheckLayerIndex", u8"", 10)) { size_t ptrSize = sizeof(nullptr); //指针大小 void* startPtr = &m_startFlag + 1; size_t count = ((size_t)&m_endFlag - (size_t)startPtr) / ptrSize; InsertMp(startPtr, count); } RecoatCheckCfg::~RecoatCheckCfg() { } void RecoatCheckCfg::GetUpdateSql(vector& ups) { char buffer[512]; sprintf_s(buffer, sizeof(buffer), "UPDATE %s set %s=", BaseConfig::TABLE_NAME.c_str(), BaseConfig::FIELD_CONFIG_VALUE.c_str() ); string strhead(buffer); sprintf_s(buffer, sizeof(buffer), " WHERE %s='%s' AND %s=", BaseConfig::FIELD_CONFIG_NAME.c_str(), RecoatCheckCfg::CONFIG_NAME.c_str(), BaseConfig::FIELD_CONFIG_CODE.c_str() ); string strtail(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_Enable->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_ENABLE.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_MaskTopLeftX->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_MASK_TOP_LEFT_X.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_MaskTopLeftY->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_MASK_TOP_LEFT_Y.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_MaskTopRightX->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_MASK_TOP_RIGHT_X.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_MaskTopRightY->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_MASK_TOP_RIGHT_Y.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_MaskBottomLeftX->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_MASK_BOTTOM_LEFT_X.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_MaskBottomLeftY->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_MASK_BOTTOM_LEFT_Y.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_MaskBottomRightX->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_MASK_BOTTOM_RIGHT_X.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_MaskBottomRightY->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_MASK_BOTTOM_RIGHT_Y.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_TransformTopLeftX->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_TRANSFORM_TOP_LEFT_X.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_TransformTopLeftY->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_TRANSFORM_TOP_LEFT_Y.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_TransformTopRightX->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_TRANSFORM_TOP_RIGHT_X.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_TransformTopRightY->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_TRANSFORM_TOP_RIGHT_Y.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_TransformBottomLeftX->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_TRANSFORM_BOTTOM_LEFT_X.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_TransformBottomLeftY->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_TRANSFORM_BOTTOM_LEFT_Y.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_TransformBottomRightX->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_TRANSFORM_BOTTOM_RIGHT_X.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_TransformBottomRightY->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_TRANSFORM_BOTTOM_RIGHT_Y.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_PerIslandCntThreshold->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_ISLAND_THRESHOLD.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_AreaThresholdFactor->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_AREA_FACTOR.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_LengthThresholdFactor->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_LENGTH_FACTOR.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_RetryTimes->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_RETRY_TIMES.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_BinaryThreshold->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_BINARY_THRESHOLD.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_CheckOnPowderTest->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_CHECK_ON_POWDER_TEST.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_CheckType->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_CHECK_TYPE.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_UncoverPercentage->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_UNCOVER_PERCENTAGE.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), m_IsUpPartNotLight->GetValue() ? "1" : "0", strtail.c_str(), RecoatCheckCfg::FIELD_IS_UP_PART_NOT_LIGHT.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_ImageScale->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_IMAGE_SCALE.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_GrayOffset->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_GRAY_OFFSET.c_str()); ups.push_back(buffer); sprintf_s(buffer, sizeof(buffer), "%s'%s'%s'%s'", strhead.c_str(), to_string(m_CheckLayerIndex->GetValue()).c_str(), strtail.c_str(), RecoatCheckCfg::FIELD_CHECK_LAYER_INDEX.c_str()); ups.push_back(buffer); } string RecoatCheckCfg::CONFIG_NAME = "RecoatCheck"; string RecoatCheckCfg::FIELD_ENABLE = "Enable"; string RecoatCheckCfg::FIELD_MASK_TOP_LEFT_X = "MaskTopLeftX"; string RecoatCheckCfg::FIELD_MASK_TOP_LEFT_Y = "MaskTopLeftY"; string RecoatCheckCfg::FIELD_MASK_TOP_RIGHT_X = "MaskTopRightX"; string RecoatCheckCfg::FIELD_MASK_TOP_RIGHT_Y = "MaskTopRightY"; string RecoatCheckCfg::FIELD_MASK_BOTTOM_LEFT_X = "MaskBottomLeftX"; string RecoatCheckCfg::FIELD_MASK_BOTTOM_LEFT_Y = "MaskBottomLeftY"; string RecoatCheckCfg::FIELD_MASK_BOTTOM_RIGHT_X = "MaskBottomRightX"; string RecoatCheckCfg::FIELD_MASK_BOTTOM_RIGHT_Y = "MaskBottomRightY"; string RecoatCheckCfg::FIELD_TRANSFORM_TOP_LEFT_X = "TransformTopLeftX"; string RecoatCheckCfg::FIELD_TRANSFORM_TOP_LEFT_Y = "TransformTopLeftY"; string RecoatCheckCfg::FIELD_TRANSFORM_TOP_RIGHT_X = "TransformTopRightX"; string RecoatCheckCfg::FIELD_TRANSFORM_TOP_RIGHT_Y = "TransformTopRightY"; string RecoatCheckCfg::FIELD_TRANSFORM_BOTTOM_LEFT_X = "TransformBottomLeftX"; string RecoatCheckCfg::FIELD_TRANSFORM_BOTTOM_LEFT_Y = "TransformBottomLeftY"; string RecoatCheckCfg::FIELD_TRANSFORM_BOTTOM_RIGHT_X = "TransformBottomRightX"; string RecoatCheckCfg::FIELD_TRANSFORM_BOTTOM_RIGHT_Y = "TransformBottomRightY"; string RecoatCheckCfg::FIELD_ISLAND_THRESHOLD = "IslandThreshold"; string RecoatCheckCfg::FIELD_AREA_FACTOR = "AreaFactor"; string RecoatCheckCfg::FIELD_LENGTH_FACTOR = "LengthFactor"; string RecoatCheckCfg::FIELD_RETRY_TIMES = "RetryTimes"; string RecoatCheckCfg::FIELD_BINARY_THRESHOLD = "BinaryThreshold"; string RecoatCheckCfg::FIELD_CHECK_ON_POWDER_TEST = "CheckOnPowderTest"; string RecoatCheckCfg::FIELD_CHECK_TYPE = "CheckType"; string RecoatCheckCfg::FIELD_UNCOVER_PERCENTAGE = "Uncocer_percentage"; string RecoatCheckCfg::FIELD_IS_UP_PART_NOT_LIGHT = "IsUpPartNotLight"; string RecoatCheckCfg::FIELD_IMAGE_SCALE = "ImageScale"; string RecoatCheckCfg::FIELD_GRAY_OFFSET = "GrayOffset"; string RecoatCheckCfg::FIELD_CHECK_LAYER_INDEX = "CheckLayerIndex";