GrpcPrint/PrintS/Config/bean/RecoatCheckCfg.cpp

267 lines
9.4 KiB
C++

#include "RecoatCheckCfg.h"
#include "BaseConfig.h"
RecoatCheckCfg::RecoatCheckCfg()
{
m_Enable = false;
m_MaskTopLeftX = 0;
m_MaskTopLeftY = 0;
m_MaskTopRightX = 500;
m_MaskTopRightY = 0;
m_MaskBottomLeftX = 0;
m_MaskBottomLeftY = 500;
m_MaskBottomRightX = 500;
m_MaskBottomRightY = 500;
m_TransformTopLeftX = -40;
m_TransformTopLeftY = 40;
m_TransformTopRightX = 40;
m_TransformTopRightY = 40;
m_TransformBottomLeftX = -40;
m_TransformBottomLeftY = -40;
m_TransformBottomRightX = 40;
m_TransformBottomRightY = -40;
// 每个岛包含的未铺粉区域数目的阈值
m_PerIslandCntThreshold = 10;
// 单个未铺粉区域的面积阈值等于以层厚为半径的圆的面积乘以m_AreaThresholdFactor
m_AreaThresholdFactor = 1.0f;
// 单个未铺粉区域的轮廓长度阈值等于层厚乘以m_LengthThresholdFactor
m_LengthThresholdFactor = 10.0f;
// 重新铺粉尝试次数
m_RetryTimes = 3;
// 图像二值化阈值
m_BinaryThreshold = 96;
m_CheckOnPowderTest = false;
m_CheckType = WHOLE_PERCENTAGE;
m_UncoverPercentage = 20.0;
m_IsUpPartNotLight = true;
m_ImageScale = 5;
m_GrayOffset = 10;
m_CheckLayerIndex = 10;
}
RecoatCheckCfg::~RecoatCheckCfg()
{
}
void RecoatCheckCfg::GetUpdateSql(vector<string>& 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).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).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).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).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).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).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).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).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).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).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).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).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).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).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).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).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).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).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).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).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).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).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).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).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).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 ? "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).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).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).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";