From 56137774d8467a623aa7d5664b72d7c3c6f3d4a5 Mon Sep 17 00:00:00 2001 From: wangxx1809 Date: Thu, 27 Jun 2024 16:08:07 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=BF=A1=E6=81=AF=E9=83=A8?= =?UTF-8?q?=E5=88=86=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PrintS/Config/bean/CorrectParamCfg.cpp | 33 ++++++++++++++++++ PrintS/Config/bean/CorrectParamCfg.h | 2 ++ PrintS/Config/bean/ScanParamCfg.cpp | 41 +++++++++++++++++++++++ PrintS/Config/bean/ScanParamCfg.h | 3 ++ PrintS/Config/bean/ScanTestCfg.cpp | 30 +++++++++++++++++ PrintS/Config/bean/ScanTestCfg.h | 3 ++ PrintS/Config/bean/ScannerControlCfg.cpp | 25 +++++++++++++- PrintS/Config/bean/SkyWritingCfg.cpp | 25 +++++++++++++- PrintS/Config/bean/SkyWritingCfg.h | 3 ++ PrintS/output/Release/log/2024.hbd | Bin 176128 -> 176128 bytes 10 files changed, 163 insertions(+), 2 deletions(-) diff --git a/PrintS/Config/bean/CorrectParamCfg.cpp b/PrintS/Config/bean/CorrectParamCfg.cpp index 8f88cb4..6d58755 100644 --- a/PrintS/Config/bean/CorrectParamCfg.cpp +++ b/PrintS/Config/bean/CorrectParamCfg.cpp @@ -1,5 +1,6 @@ #include "CorrectParamCfg.h" #include "ScanCfg.h" +#include "../utils/ConverType.hpp" CorrectParamCfg::CorrectParamCfg() @@ -144,6 +145,38 @@ void CorrectParamCfg::SetCorrectCfg(stream::CorrectParamCfg* cp) { } +void CorrectParamCfg::Update(const ReadData& rd){ + for (auto start = rd.its.begin(); start != rd.its.end(); ++start) { + if (start->nameKey == "xmeasure_min") m_xmeasure_min = ConverType::TryToD(start->strValue); + else if (start->nameKey == "xmeasure_max") m_xmeasure_max = ConverType::TryToD(start->strValue); + else if (start->nameKey == "ymeasure_min") m_ymeasure_min = ConverType::TryToD(start->strValue); + else if (start->nameKey == "ymeasure_max") m_ymeasure_max = ConverType::TryToD(start->strValue); + else if (start->nameKey == "xposfix") m_xposfix = ConverType::TryToD(start->strValue); + else if (start->nameKey == "yposfix") m_yposfix = ConverType::TryToD(start->strValue); + else if (start->nameKey == "scan_angle") m_scan_angle = ConverType::TryToD(start->strValue); + else if (start->nameKey == "scan_angle_min") m_scan_angle_min = ConverType::TryToD(start->strValue); + else if (start->nameKey == "scan_angle_max") m_scan_angle_max = ConverType::TryToD(start->strValue); + else if (start->nameKey == "fix_angle") m_fix_angle = ConverType::TryToD(start->strValue); + else if (start->nameKey == "fix_angle_min") m_fix_angle_min = ConverType::TryToD(start->strValue); + else if (start->nameKey == "fix_angle_max") m_fix_angle_max = ConverType::TryToD(start->strValue); + else if (start->nameKey == "xcorrect") m_xcorrect = ConverType::TryToD(start->strValue); + else if (start->nameKey == "ycorrect") m_ycorrect = ConverType::TryToD(start->strValue); + else if (start->nameKey == "xcorrect_min") m_xcorrect_min = ConverType::TryToD(start->strValue); + else if (start->nameKey == "xcorrect_max") m_xcorrect_max = ConverType::TryToD(start->strValue); + else if (start->nameKey == "ycorrect_min") m_ycorrect_min = ConverType::TryToD(start->strValue); + else if (start->nameKey == "ycorrect_max") m_ycorrect_max = ConverType::TryToD(start->strValue); + else if (start->nameKey == "realXOffset") m_realXOffset = ConverType::TryToD(start->strValue); + else if (start->nameKey == "realYOffset") m_realYOffset = ConverType::TryToD(start->strValue); + else if (start->nameKey == "FactorK") m_FactorK = ConverType::TryToD(start->strValue); + else if (start->nameKey == "IsCorrectFile3D") m_IsCorrectFile3D = ConverType::TryToD(start->strValue); + else if (start->nameKey == "IsDynamicFocus") m_IsDynamicFocus = (bool)ConverType::TryToI(start->strValue); + else if (start->nameKey == "DefocusRatio") m_DefocusRatio = ConverType::TryToD(start->strValue); + else if (start->nameKey == "DefocusRatioMin") m_DefocusRatioMin = ConverType::TryToD(start->strValue); + else if (start->nameKey == "DefocusRatioMax") m_DefocusRatioMax = ConverType::TryToD(start->strValue); + } + +} + string CorrectParamCfg::CONFIG_NAME = "CorrectParamCfg"; string CorrectParamCfg::FIELD_X_MEASURE_MIN = "XMeasureMin"; string CorrectParamCfg::FIELD_X_MEASURE_MAX = "XMeasureMax"; diff --git a/PrintS/Config/bean/CorrectParamCfg.h b/PrintS/Config/bean/CorrectParamCfg.h index 3864c56..a16df91 100644 --- a/PrintS/Config/bean/CorrectParamCfg.h +++ b/PrintS/Config/bean/CorrectParamCfg.h @@ -1,6 +1,7 @@ #pragma once #include #include +#include "../DataManage/RWData.h" #include "../protobuf/stream.pb.h" using namespace std; @@ -12,6 +13,7 @@ public: void GetUpdateSql(int cno,vector& ups); void SetCorrectCfg(stream::CorrectParamCfg* cp); + void Update(const ReadData& rd); public: double m_xmeasure_min; //x可打印最小位置 double m_xmeasure_max; //x可打印最大位置 diff --git a/PrintS/Config/bean/ScanParamCfg.cpp b/PrintS/Config/bean/ScanParamCfg.cpp index 54530e2..50e6cb8 100644 --- a/PrintS/Config/bean/ScanParamCfg.cpp +++ b/PrintS/Config/bean/ScanParamCfg.cpp @@ -1,6 +1,7 @@ #include "ScanParamCfg.h" #include "ScanCfg.h" #include "../../utils/StringHelper.h" +#include "../../utils/ConverType.hpp" ScanParamCfg::ScanParamCfg() { @@ -126,6 +127,46 @@ void ScanParamCfg::SetScanParam(stream::ScanParamCfg* sp) { } +void ScanParamCfg::Update(const ReadData& rd) { + + for (auto start = rd.its.begin(); start != rd.its.end(); ++start) { + if (start->nameKey == "edge_level") m_edge_level = ConverType::TryToI(start->strValue); + else if (start->nameKey == "edge_level_min") m_edge_level_min = ConverType::TryToI(start->strValue); + else if (start->nameKey == "edge_level_max") m_edge_level_max = ConverType::TryToI(start->strValue); + else if (start->nameKey == "jump_delay") m_jump_delay = (unsigned int)ConverType::TryToI(start->strValue); + else if (start->nameKey == "jump_delay_min") m_jump_delay_min = (unsigned int)ConverType::TryToI(start->strValue); + else if (start->nameKey == "jump_delay_max") m_jump_delay_max = (unsigned int)ConverType::TryToI(start->strValue); + else if (start->nameKey == "scan_delay") m_scan_delay = (unsigned int)ConverType::TryToI(start->strValue); + else if (start->nameKey == "scan_delay_min") m_scan_delay_min = (unsigned int)ConverType::TryToI(start->strValue); + else if (start->nameKey == "scan_delay_max") m_scan_delay_max = (unsigned int)ConverType::TryToI(start->strValue); + else if (start->nameKey == "polygon_delay") m_polygon_delay = (unsigned int)ConverType::TryToI(start->strValue); + else if (start->nameKey == "polygon_delay_min") m_polygon_delay_min = (unsigned int)ConverType::TryToI(start->strValue); + else if (start->nameKey == "polygon_delay_max") m_polygon_delay_max = (unsigned int)ConverType::TryToI(start->strValue); + else if (start->nameKey == "laseroff_delay") m_laseroff_delay = (long)ConverType::TryToI(start->strValue); + else if (start->nameKey == "laseroff_delay_min") m_laseroff_delay_min = (long)ConverType::TryToI(start->strValue); + else if (start->nameKey == "laseroff_delay_max") m_laseroff_delay_max = (long)ConverType::TryToI(start->strValue); + else if (start->nameKey == "laseron_delay") m_laseron_delay = (long)ConverType::TryToI(start->strValue); + else if (start->nameKey == "laseron_delay_min") m_laseron_delay_min = (long)ConverType::TryToI(start->strValue); + else if (start->nameKey == "laseron_delay_max") m_laseron_delay_max = (long)ConverType::TryToI(start->strValue); + else if (start->nameKey == "min_jump_delay") m_min_jump_delay = (unsigned int)ConverType::TryToI(start->strValue); + else if (start->nameKey == "min_jump_delay_min") m_min_jump_delay_min = (unsigned int)ConverType::TryToI(start->strValue); + else if (start->nameKey == "min_jump_delay_max") m_min_jump_delay_max = (unsigned int)ConverType::TryToI(start->strValue); + + else if (start->nameKey == "jump_length_limit") m_jump_length_limit = (unsigned int)ConverType::TryToI(start->strValue); + else if (start->nameKey == "jump_length_limit_min") m_jump_length_limit_min = (unsigned int)ConverType::TryToI(start->strValue); + else if (start->nameKey == "jump_length_limit_max") m_jump_length_limit_max = (unsigned int)ConverType::TryToI(start->strValue); + + else if (start->nameKey == "jump_speed") m_jump_speed = ConverType::TryToD(start->strValue); + else if (start->nameKey == "jump_speed_min") m_jump_speed_min = ConverType::TryToD(start->strValue); + else if (start->nameKey == "jump_speed_max") m_jump_speed_max = ConverType::TryToD(start->strValue); + + else if (start->nameKey == "mark_speed") m_mark_speed = ConverType::TryToD(start->strValue); + else if (start->nameKey == "mark_speed_min") m_mark_speed_min = ConverType::TryToD(start->strValue); + else if (start->nameKey == "mark_speed_max") m_mark_speed_max = ConverType::TryToD(start->strValue); + } + +} + //string ScanParamCfg::CONFIG_NAME = "ScanParamCfg"; string ScanParamCfg::FIELD_EDGE_LEVEL = "EdgeLevel"; diff --git a/PrintS/Config/bean/ScanParamCfg.h b/PrintS/Config/bean/ScanParamCfg.h index deec20a..b93a8ee 100644 --- a/PrintS/Config/bean/ScanParamCfg.h +++ b/PrintS/Config/bean/ScanParamCfg.h @@ -2,6 +2,8 @@ #include #include #include "../protobuf/stream.pb.h" +#include "../DataManage/RWData.h" + using namespace std; class ScanParamCfg { @@ -11,6 +13,7 @@ public: void GetUpdateSql(int cno,vector& ups); void SetScanParam(stream::ScanParamCfg* sp); + void Update(const ReadData& rd); public: string CONFIG_NAME; static string FIELD_EDGE_LEVEL; diff --git a/PrintS/Config/bean/ScanTestCfg.cpp b/PrintS/Config/bean/ScanTestCfg.cpp index a8b03c8..e35c250 100644 --- a/PrintS/Config/bean/ScanTestCfg.cpp +++ b/PrintS/Config/bean/ScanTestCfg.cpp @@ -1,6 +1,7 @@ #include "ScanTestCfg.h" #include "ScanCfg.h" #include "../../utils/StringHelper.h" +#include "../../utils/ConverType.hpp" ScanTestCfg::ScanTestCfg() @@ -119,6 +120,35 @@ void ScanTestCfg::SetScanTestCfg(stream::ScanTestCfg* cp) { } +void ScanTestCfg::Update(const ReadData& rd) { + for (auto start = rd.its.begin(); start != rd.its.end(); ++start) { + if (start->nameKey == "debug_shape") m_debug_shape = ConverType::TryToI(start->strValue); + else if (start->nameKey == "shape_size") m_shape_size = ConverType::TryToI(start->strValue); + else if (start->nameKey == "shape_size_min") m_shape_size_min = ConverType::TryToI(start->strValue); + else if (start->nameKey == "shape_size_max") m_shape_size_max = ConverType::TryToI(start->strValue); + else if (start->nameKey == "laser_power") m_laser_power = ConverType::TryToI(start->strValue); + else if (start->nameKey == "laser_power_min") m_laser_power_min = ConverType::TryToI(start->strValue); + else if (start->nameKey == "laser_power_max") m_laser_power_max = ConverType::TryToI(start->strValue); + else if (start->nameKey == "defocus") m_defocus = ConverType::TryToD(start->strValue); + else if (start->nameKey == "defocus_min") m_defocus_min = ConverType::TryToD(start->strValue); + else if (start->nameKey == "defocus_max") m_defocus_max = ConverType::TryToD(start->strValue); + else if (start->nameKey == "is_cycle") m_is_cycle = ConverType::TryToD(start->strValue); + else if (start->nameKey == "cross_x") m_cross_x = ConverType::TryToD(start->strValue); + else if (start->nameKey == "cross_y") m_cross_y = ConverType::TryToD(start->strValue); + else if (start->nameKey == "z_distance") m_z_distance = ConverType::TryToD(start->strValue); + else if (start->nameKey == "IsAutoHeatingScanner") m_IsAutoHeatingScanner = (bool)ConverType::TryToI(start->strValue); + else if (start->nameKey == "AutoHeatingScannerMinutes") m_AutoHeatingScannerMinutes = (unsigned int)ConverType::TryToI(start->strValue); + else if (start->nameKey == "AutoHeatingScannerSize") m_AutoHeatingScannerSize = (unsigned int)ConverType::TryToI(start->strValue); + else if (start->nameKey == "AutoHeatingScannerSpeed") m_AutoHeatingScannerSpeed = ConverType::TryToD(start->strValue); + else if (start->nameKey == "mark_test_start_x") m_mark_test_start_x = ConverType::TryToD(start->strValue); + else if (start->nameKey == "mark_test_start_y") m_mark_test_start_y = ConverType::TryToD(start->strValue); + else if (start->nameKey == "mark_test_end_x") m_mark_test_end_x = ConverType::TryToD(start->strValue); + else if (start->nameKey == "mark_test_end_y") m_mark_test_end_y = ConverType::TryToD(start->strValue); + + } + +} + string ScanTestCfg::CONFIG_NAME="ScanTest"; string ScanTestCfg::FIELD_DEBUG_SHAPE = "DebugShape"; string ScanTestCfg::FIELD_SHAPE_SIZE = "ShapeSize"; diff --git a/PrintS/Config/bean/ScanTestCfg.h b/PrintS/Config/bean/ScanTestCfg.h index 9915ab0..88f0092 100644 --- a/PrintS/Config/bean/ScanTestCfg.h +++ b/PrintS/Config/bean/ScanTestCfg.h @@ -1,6 +1,7 @@ #pragma once #include #include +#include "../DataManage/RWData.h" #include "../protobuf/stream.pb.h" using namespace std; @@ -12,6 +13,8 @@ public: void GetUpdateSql(int cno,vector& ups); void SetScanTestCfg(stream::ScanTestCfg* cp); + + void Update(const ReadData& rd); public: int m_debug_shape; int m_shape_size; diff --git a/PrintS/Config/bean/ScannerControlCfg.cpp b/PrintS/Config/bean/ScannerControlCfg.cpp index 8ef85e7..2520850 100644 --- a/PrintS/Config/bean/ScannerControlCfg.cpp +++ b/PrintS/Config/bean/ScannerControlCfg.cpp @@ -103,10 +103,33 @@ void ScannerControlCfg::Update(const ReadData& rd) { ++start; } } + else if (type == SCANPARAMCFG) { + m_ScanCfgWrapper.m_ScanParamCfg.Update(rd); + } + else if (type == HATCHINGPARAMS) { + m_ScanCfgWrapper.m_HatchingParams.Update(rd); + } + else if (type == BORDERPARAMS) { + m_ScanCfgWrapper.m_BorderParams.Update(rd); + } + else if (type == SUPPORTPARAMS) { + m_ScanCfgWrapper.m_SupportParams.Update(rd); + } + else if (type == CORRECTPARAMCFG) { + m_ScanCfgWrapper.m_CorrectParamCfg.Update(rd); + } + else if (type == SCANTESTCFG) { + m_ScanCfgWrapper.m_ScanTestCfg.Update(rd); + } + else if (type == SKYWRITINGCFG) { + m_ScanCfgWrapper.m_SkyWritingCfg.Update(rd); + } else if (type == POWERCOMPENSATECFG) { m_ScanCfgWrapper.m_PowerCompensateCfg.Update(rd); } - + //else if (type == TIMEPOWERCOMPENSATECFG) { + // m_ScanCfgWrapper.m_TimePowerCompensateCfg.Update(rd); + //} } const string ScannerControlCfg::TABLE_NAME="ScannerControlCfg"; diff --git a/PrintS/Config/bean/SkyWritingCfg.cpp b/PrintS/Config/bean/SkyWritingCfg.cpp index f03691d..6053df5 100644 --- a/PrintS/Config/bean/SkyWritingCfg.cpp +++ b/PrintS/Config/bean/SkyWritingCfg.cpp @@ -1,6 +1,6 @@ #include "SkyWritingCfg.h" #include "ScanCfg.h" - +#include "../utils/ConverType.hpp" SkyWritingCfg::SkyWritingCfg() { @@ -87,6 +87,29 @@ void SkyWritingCfg::SetSkyWritingCfg(stream::SkyWritingCfg * cp) { cp->set_limitemax(m_LimiteMax); } +void SkyWritingCfg::Update(const ReadData& rd) { + for (auto start = rd.its.begin(); start != rd.its.end(); ++start) { + if (start->nameKey == "IsEnable") m_IsEnable =(bool) ConverType::TryToI(start->strValue); + else if (start->nameKey == "Timelag") m_Timelag = ConverType::TryToI(start->strValue); + else if (start->nameKey == "TimelagMin") m_TimelagMin = ConverType::TryToI(start->strValue); + else if (start->nameKey == "TimelagMax") m_TimelagMax = ConverType::TryToI(start->strValue); + else if (start->nameKey == "LaserOnShift") m_LaserOnShift = (long)ConverType::TryToI(start->strValue); + else if (start->nameKey == "LaserOnShiftMin") m_LaserOnShiftMin = (long)ConverType::TryToI(start->strValue); + else if (start->nameKey == "LaserOnShiftMax") m_LaserOnShiftMax = (long)ConverType::TryToI(start->strValue); + else if (start->nameKey == "Nprev") m_Nprev = (unsigned int)ConverType::TryToI(start->strValue); + else if (start->nameKey == "Npost") m_Npost = (unsigned int)ConverType::TryToI(start->strValue); + else if (start->nameKey == "NprevMax") m_NprevMax = (unsigned int)ConverType::TryToI(start->strValue); + else if (start->nameKey == "Npost") m_Npost = (unsigned int)ConverType::TryToI(start->strValue); + else if (start->nameKey == "NpostMin") m_NpostMin = (unsigned int)ConverType::TryToI(start->strValue); + else if (start->nameKey == "NpostMax") m_NpostMax = (unsigned int)ConverType::TryToI(start->strValue); + else if (start->nameKey == "m_Mode") m_Mode = ConverType::TryToI(start->strValue); + else if (start->nameKey == "Limite") m_Limite = (unsigned int)ConverType::TryToD(start->strValue); + else if (start->nameKey == "LimiteMin") m_LimiteMin = (unsigned int)ConverType::TryToD(start->strValue); + else if (start->nameKey == "LimiteMax") m_LimiteMax = (unsigned int)ConverType::TryToD(start->strValue); + + } +} + string SkyWritingCfg::CONFIG_NAME = "SkyWriting"; string SkyWritingCfg::FIELD_IS_ENABLE = "is_enable"; string SkyWritingCfg::FIELD_TIMELAG = "timelag"; diff --git a/PrintS/Config/bean/SkyWritingCfg.h b/PrintS/Config/bean/SkyWritingCfg.h index b361fbc..bc8c3a5 100644 --- a/PrintS/Config/bean/SkyWritingCfg.h +++ b/PrintS/Config/bean/SkyWritingCfg.h @@ -2,6 +2,7 @@ #include #include #include "../protobuf/stream.pb.h" +#include "../DataManage/RWData.h" using namespace std; @@ -12,6 +13,8 @@ public: ~SkyWritingCfg(); void GetUpdateSql(int cno,vector& ups); void SetSkyWritingCfg(stream::SkyWritingCfg* cp); + + void Update(const ReadData& rd); public: bool m_IsEnable; double m_Timelag; diff --git a/PrintS/output/Release/log/2024.hbd b/PrintS/output/Release/log/2024.hbd index a2c5d51defbd531e636df6f0cbca453bc64a4188..7de615a281c85dbcb786ef2c24b1fb5dde1bc432 100644 GIT binary patch delta 16533 zcmV(nK=QwU;0l1?3V(yxUJ)5ueeMuKv->swSxp|Z{J)+1Mw3D00dFb!Z7Y6G|Gi{R z1we*eM7+&2N<)FpNihdCorDr5fB;?m{ug>pRm0rQZTF1~x{&)%<$qqm=I(#lbV z-}k3k{=y)cn5MF8QpHJR#w(Dlu<(DF>oKTZ5I5Io34wuZpMSqKe+G&hmuwU6*cAmp zkb25!ZRp2*)X6jH)npAFL%*(^A|>j3-trhYMSb7nhia_U5;?iz>%4@hwIpOL#P-FX zl~EZmarNYI$nDa~N=6EIAR~fysw?JyTzyT7VvSSd4NORMj7D1X4Hsl6U-b0TwaDwW zX7+MR)$J2dCw~P=(+Dr5s$Tll+4BnS3p){enpCa+`iY6DnJgfBCw{EelC-?9@$1ZM0NPPOPw+8D_Hddqc zv?bR=xD(0$P93Z6XV?JMra}Ku!O9i){KQwOVa47M*;m8 zS1UnZCWQZ|s6 zIY*w=V_iX~f-yz@eck#ezCfKVLcc{+&a%ZP^vY#neknH|c1^QHXKUf9Hn6;1{)3b0 zjM$h0p}mQ15fPR+k~z{gS6A5-WLpxJXIX~I(SK}PL*e@E@X^AAaUcpp?*h!^Fcn)1PuYSB;Jc+9S33K>ZY1H zuvXrIWfeox3`4R_NkIX;kGH!tOKXal8XP6t)|2O*ey=R=cA3K*wE|+O^d8lzwfxFs-di%;ppmYh^Nj65h}1^-P5Vm!A`pPifqr$+D9~ZMoPmDwHe# zB?S{E8|R5)_IMVLUfODMKkpAb6K#fL$_}ssOD?6nx1%)pD2Q2Tshu5X;gE-tl79ja zsxA

-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 Mu|Y{qSgf=ehB)CZKL7v#