GrpcPrint/PrintS/Config/bean/RecoatCheckCfg.cpp

265 lines
11 KiB
C++

#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<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->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";