From 64edc4d64d3c8a8de92c2e2fa586ff641ca2aee4 Mon Sep 17 00:00:00 2001 From: seuuung Date: Wed, 1 Jul 2026 10:55:45 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A0=80=ED=95=AD=20=EC=B8=A1=EC=A0=95=20UI=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .agents/AGENTS.md | 11 ++ .gitignore | 83 ++++++++++ ...0eaf846b-d4b9-4caf-a370-de061ce0320c.vsidx | Bin 107 -> 0 bytes ...39788850-5095-4727-824a-b7633641276a.vsidx | Bin 12324 -> 0 bytes ...69f01546-7ea2-4b97-b377-8aef86bfa5e6.vsidx | Bin 70778 -> 0 bytes ...b5393d54-c101-4f5a-80aa-1b6a40dcea0c.vsidx | Bin 107 -> 0 bytes .vs/marking_gui.slnx/v18/.suo | Bin 113152 -> 115200 bytes .../v18/DocumentLayout.backup.json | 6 +- .vs/marking_gui.slnx/v18/DocumentLayout.json | 6 +- build_err.txt | Bin 107566 -> 66463 bytes docs/database_setup.sql | 124 +++++++++++++++ docs/knowledge_base.md | 105 +++++++++++++ marking_gui/MainWindow.xaml | 26 +++- marking_gui/MainWindow.xaml.cs | 34 ++++- marking_gui/Models/MeasurementLimits.cs | 14 +- marking_gui/Services/LoginServicesStub.cs | 84 +++++++++-- marking_gui/Services/MockMeasurer.cs | 25 ++- marking_gui/Services/MssqlDatabaseService.cs | 102 +++++++++++-- marking_gui/SettingsWindow.xaml | 18 ++- marking_gui/SettingsWindow.xaml.cs | 12 +- marking_gui/bin/Debug/marking_gui.exe | Bin 72192 -> 78336 bytes marking_gui/bin/Debug/marking_gui.pdb | Bin 124416 -> 132608 bytes marking_gui/marking_gui.csproj | 3 + ...gnTimeResolveAssemblyReferencesInput.cache | Bin 2405 -> 2498 bytes marking_gui/obj/Debug/MainWindow.baml | Bin 12944 -> 13846 bytes marking_gui/obj/Debug/MainWindow.g.cs | 54 +++++-- marking_gui/obj/Debug/MainWindow.g.i.cs | 142 +++++++++++++----- marking_gui/obj/Debug/SettingsWindow.baml | Bin 3953 -> 4599 bytes marking_gui/obj/Debug/SettingsWindow.g.cs | 42 ++++-- marking_gui/obj/Debug/SettingsWindow.g.i.cs | 42 ++++-- .../marking_gui.csproj.FileListAbsolute.txt | 1 + marking_gui/obj/Debug/marking_gui.exe | Bin 72192 -> 78336 bytes marking_gui/obj/Debug/marking_gui.g.resources | Bin 32836 -> 34384 bytes marking_gui/obj/Debug/marking_gui.pdb | Bin 124416 -> 132608 bytes .../Debug/marking_gui_MarkupCompile.i.cache | 2 +- .../Debug/marking_gui_MarkupCompile.i.lref | 2 +- 36 files changed, 814 insertions(+), 124 deletions(-) create mode 100644 .agents/AGENTS.md create mode 100644 .gitignore delete mode 100644 .vs/marking_gui.slnx/FileContentIndex/0eaf846b-d4b9-4caf-a370-de061ce0320c.vsidx delete mode 100644 .vs/marking_gui.slnx/FileContentIndex/39788850-5095-4727-824a-b7633641276a.vsidx delete mode 100644 .vs/marking_gui.slnx/FileContentIndex/69f01546-7ea2-4b97-b377-8aef86bfa5e6.vsidx delete mode 100644 .vs/marking_gui.slnx/FileContentIndex/b5393d54-c101-4f5a-80aa-1b6a40dcea0c.vsidx create mode 100644 docs/database_setup.sql create mode 100644 docs/knowledge_base.md diff --git a/.agents/AGENTS.md b/.agents/AGENTS.md new file mode 100644 index 0000000..bf7e571 --- /dev/null +++ b/.agents/AGENTS.md @@ -0,0 +1,11 @@ +# Project Agent Rules + +이 워크스페이스에서 작업을 수행할 때 반드시 다음 프로젝트 규칙을 준수하십시오. + +## 1. 지식베이스 참조 규칙 +- 성능 검사 모니터링 시스템과 관련된 모든 작업(수정, 디버깅, 신규 기능 추가 등)을 시작하기 전에 반드시 [docs/knowledge_base.md](file:///c:/Users/COMPUTER1/Desktop/mobi/marking_gui/docs/knowledge_base.md) 파일을 먼저 확인하고 지침을 숙지하십시오. +- 시스템 구성 방식, 빌드 엔진 사용 지침 및 데모 모드 작동 방식은 지식베이스에 정의된 정책을 따릅니다. + +## 2. 데모 모드 관련 규칙 +- 상용/실서버 배포 릴리즈 목적의 빌드를 진행할 때는 [docs/knowledge_base.md#3.1.-데모용-시뮬레이션-격리-코드-제거-방법-(중요)](file:///c:/Users/COMPUTER1/Desktop/mobi/marking_gui/docs/knowledge_base.md#31-데모용-시뮬레이션-격리-코드-제거-방법-중요) 가이드에 명시된 대로 데모 격리 영역 주석 배너 안의 코드를 삭제해야 합니다. +- 임의로 데모 검증 성공 로직을 다른 방식으로 배포본에 포함하지 마십시오. diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..910c7ff --- /dev/null +++ b/.gitignore @@ -0,0 +1,83 @@ +# ======================== +# .NET Framework / WPF +# ======================== + +# 빌드 출력 디렉터리 +[Bb]in/ +[Oo]bj/ + +# Visual Studio 캐시 및 설정 파일 +.vs/ +*.user +*.suo +*.userosscache +*.sln.docstates + +# 빌드 로그 +*.log +build_err.txt +build_log.txt +build_summary.txt +msbuild.log + +# NuGet 패키지 +packages/ +*.nupkg +*.nuspec + +# MSTest 결과 +TestResults/ +*.trx + +# 리소스 파일 (자동 생성) +*.g.cs +*.g.i.cs + +# 퍼블리시 결과물 +publish/ +[Pp]ublish/ +PublishScripts/ + +# ======================== +# 데이터베이스 / 설정 파일 (민감 정보 보호) +# ======================== + +# Database.ini 는 서버 주소, 비밀번호 등 민감 정보를 담고 있으므로 +# 원본 파일 대신 예시 파일(Database.ini.example)만 저장소에 포함합니다. +marking_gui/Database.ini + +# ======================== +# OS 생성 파일 +# ======================== + +# Windows +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +Desktop.ini +$RECYCLE.BIN/ + +# macOS +.DS_Store +.AppleDouble +.LSOverride + +# ======================== +# IDE 관련 +# ======================== + +# JetBrains Rider +.idea/ +*.sln.iml + +# Visual Studio Code +.vscode/ + +# ======================== +# 기타 +# ======================== + +# 압축 파일 +*.zip +*.7z +*.rar diff --git a/.vs/marking_gui.slnx/FileContentIndex/0eaf846b-d4b9-4caf-a370-de061ce0320c.vsidx b/.vs/marking_gui.slnx/FileContentIndex/0eaf846b-d4b9-4caf-a370-de061ce0320c.vsidx deleted file mode 100644 index c403b3fcd21a6d41c7b9befe31e9f218e2e40091..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107 ucmZ>EaTj7>U~mUw5MY5&44g=8W+XNT5*s8A10a3;P>wW|R)^BYP#OS?n*rAV diff --git a/.vs/marking_gui.slnx/FileContentIndex/39788850-5095-4727-824a-b7633641276a.vsidx b/.vs/marking_gui.slnx/FileContentIndex/39788850-5095-4727-824a-b7633641276a.vsidx deleted file mode 100644 index 044693b6e22e40a53ea4f17e5af696af064092ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12324 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 U4%qL-<4fo*GY1EEA2aa(0Is@{JOBUy diff --git a/.vs/marking_gui.slnx/FileContentIndex/69f01546-7ea2-4b97-b377-8aef86bfa5e6.vsidx b/.vs/marking_gui.slnx/FileContentIndex/69f01546-7ea2-4b97-b377-8aef86bfa5e6.vsidx deleted file mode 100644 index 00ebef0a39efbe04b9e715948b6373b1a7d19d1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70778 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 diff --git a/.vs/marking_gui.slnx/v18/.suo b/.vs/marking_gui.slnx/v18/.suo index 65f50d1104cbb160109a00c6563c50c5b0c481db..7a14d40715fba25d45d2b5fc594c27b699b0cebf 100644 GIT binary patch delta 7265 zcmeHL4OG-s7XROIW*lG`2gL$K9X>^1Ug?(4w$(0fo9)Kl_a6oarQK|o?VOH( z&Yk~#_uYHnz4v|m9{<*1aqEt$yEA77a~vl?`gUYw1YaB=&Fw4s24D&a7tE8XzRYa? zTJjz&K)E}KY!z&U=gB3(a;X>vaY$%4LfU6W5!;mIfe?fewU0E=>lbC5lz{N&7G@BF zt(!;HrsA8K-Gmg4G#!cQFiRQo5+r{l5mF#h08$td>t~M~dG?-xZw1mnSp%PN_VWutX*zrX0esS6pN8r&kq zaagq8Ojt!&Wmv4N6721*4C7g4ShX0>D#NB=8j=vn59#X4#Gs7nen(}Ld?!<250+-E zq^y0tmGQ5ZvOFF`H{D3Y>TjOoLgqNq38a%q&msK^i79^Dr=JS;A7s@ZTnLg#^uyxx zti73ScCC(_5~ztyTP$Vrc%Odi&IKX)yLPEZBdu*h5B<}3gW}MVWn$afZ_iBsq)WCl z`c$9!|GxhH3r|KXEia%4vF{#gQh$Z39***>E{4!IOE5^xGdyF&4Y;~XO? z1t4V$m`%ZzXj9w1|5y?Gg<2Gq^n+E$NHK- z;QPoyv)*QGvX$%2%|0fiR<|}h^HF?Tht)@VgtV-7E z7N*~mxXIFZm#KcevdL&Wcn9(=*ifu6+B$m+HX7?~I!klC&DhxSPRjT6x89(vHR`R( zCev19?=3n-AvP2%uyM7+tce{KT@#_Lw$Z4swpuJ^rH54-SWwO~US5oHg@;w}!Hyq? zoR42XJDVXueq!G&!V)gj-^)gx!*8o4Gek=uxex(e}N4$09< zBq}uW#?<1(MjJy7e13#g%2wvsGW`)&>FR&Gk0x`KD*EJXldrQjS~lQ8P*HB;=#UGt z85(f(!{acIX1f4qEIim>&&~-ZUrE{rB0L)H^C5~XcgaXkmVd!coI(42&*awY&0CsG zO&!-9DF^CI^;b?Ga-dGX*{At5TMj+#B?m%!aS+xxgzv+n{1JQ;cWiL_05WX7T#XA1 z4;U^ykK{&TI5C9u0@CY9r%B*~Bqh^2kF7V5-bA{9^gARr9DCT7^>8C2v)W5$z{U2G z`|TO|QZEj&P6ihaTSgnu_6Uf>+{>xO35g^zxpaRvh?vTcoyVMs@|Y-G(f%AE{je9B z0>zp2&1Q2JmtJeLS@-lpD;ZKnlF#N(BW>}qWH8Q;7*d|N4%HiYb2TDP=1$JwZ!Qj7 z>282YUVOR#X%oGTi;r!j_mSR3V*0)h+f$@ubrR{E8M-G2#EzoX{m{QMAEfM#?%ipg zOWABhoCMn6jHj5u*2#CNM z>=5qR5lAWg#;F-dS-=&zIsCoPPZGRfs#wfnpL?MK7ub`^xc5;~Xw zp|F$=CP5gn9t{nZu*-e6-);CS0gx;4&2GTrB6?m8QS^%l$n#%qvDAr|qjWP3kA`MZ znZ+tDCW>PXQ%Vr!pY<2PWfI^}@EKj2lz~Jz5O+5}y0p+}T3>4um!iamsADB9P7$mi z4-ae>m7#14uf>FRmk>6hMj1Wpf&gN6hCn$1ml^IL^{z%(Nj`LK6|rk?12d@;^J%U| z=}ND`3_jI6NzsXBQ3Wb)_VqTy8_62%xeI&psYM78bVLIpv3M;C>wVP&JpR{V-3poF z0;oj4Mf5i@pzwOqj~XpO{0ya)YLJSmydwH+1cXp)3`qEd4fKm}ut2qEnmR?^X)>Zd zOWNx7S%ZQG6nK0xdm0}F0aO?5wMW2gp1A0+R~nq;Oc0n+u|WU z6s2RlzB3NJj0TfUalb^-bsAiG_;1b4)UC#qgDXWwGc>S)8dAVymS>?Kc1TOaJKYZ(i+dVy68xm+ z?lXM+6mq9df7AYEMK5x;eQR>eaqneI#M48b6usnn7-g{o2VNUIyb?M2;){I({b}sw zEy@N_w(GOlzkVLjhFty!XOd%&bx><6w0cq+98JmXNhwRqQeqdoD=F1z+5EjaPIf}; zE$I1C2XF8WV&(a$=QAbjCOEn(*oAP+tMhOgGzw^V0{ra%xw@ul$A>qN1&@esS8J=3 zRfhBwrJ*`qt<|K|7_|Co;7&q*h6?}gPA^E;=BMTr^x;RYU~~|btkPB+QZzNn>Z*lm zrADpSC>JhVXjE!dsfKE;-cV(%sd9d%gR_EU0hgy-QReZZ*C(shsd}|CJx!gg)TE|W zDbrP&H1txHrZ(u44b|1j_vAZ2*TFh)&MAawa5mfu2L$w^ZIDM>S3w~yzYW4@@G^Lf zD#{^|N|%C)#?~V@y%gT2jSaY2bIKqA&QSeQc!;_yVLE+a1*qT^Uf}#&859a(fNoz0 zhsp0N#ninT#N)Itu7Wep3JN#*vthewRXzIT{hZzgb7|u*VE{N9q=!w;R=mmrJ<$t)s(AjzyD_xwo=hlk)*cDNA>)E z-TnG?zdru^*f$Ke_b9fe_y$QN5-GvM-rin%NPxh*t?)iT0y9btp4Zd1?=F1sCy3)r z6I&x)0}ggany=Q;+>3zL^|E?xB&!*e&$2vILC-+uzr=%BT!gdTVuNWONMIyT6YxDl z=ow59O7MUS)6ftuV&boY<}n0v0#5=Jfq@{5z?a~Y`oahmSH{P2))te+dSqr685=C) zRA!5fW99O#4bn+2r|iYszME4GO66KT?Zho~Z{+rnd&4*8UUCmP&WE21@9Uw+>Fre# zkDr8l?)FedH16RLf_@%y5*Oy1Kd3M9e;Rj(l&g1A&_%@!& zrslSDoA{Pua7`D~i9{IQj~H)PrxT%d5dF|-h|JOmW^?x*FO4iv^XPE`AA-J~$PKWb z)ehU#?z0ub>OH?Sp2@uz|MN3DRBw!!b+@eU^u-+IX_oqV(wTdo{-cYv`WCc%J_pM1 zeu}kq-$-l-IHl$(%~RXGA!M>U0ln%|MB2gwNu$wEDr~-bv~}7`Ul$sC#^xM+FT;1y z!t7&LHXdL9i^QF5^vSmkdSUbE_dyv&i`@D=>S^*JS0j<&G6z^$+L&rx<%$KfmXs`C zv|wrFT*4)oQ4CfdQwbX9LJCVC>w}kzAxt?_>JlX;q z9nMxr2e~L+I1!ra3v=boB+^P1!<-hMewpAH0Z*9UyLcz)=_KePI7!e= zaD{1-;}b3r<}L><;atmAdj8IZ^Z6wgevO_(>kC<9rnE6mN{8QQlVZsnFtI}^MQCV+ zYK>%qBvE3fzX=kHgmu{>aA_21SzT5%JCUhkWw~#)2iic*wR*d>ipd#N*PzSN0PiC_ z6}f=O&=sh8Gl}d&L}voX*gajY29jLl$MRlv?J+WdCMJ))-!RUmj{P5rj+$|G&=A$l z&z$u{o!0}r&hz5wt>ynA11}z zng4_oLtypabF#bp&=V|SOcoQ&doBx$`MWEto;rCb|ClY*+)-1o6~2FuKBjc#rTiq1 z+7s=7mY2YW=bRA5_GDdP1$dh`809TO|lTPt#glrlSo>ffcJ6diffD}I!)=+wA20E~hM@;PMsVs5$(ds{$@xAfpG*e{<; zoCWL~Xs+xP z1jD>R3zgUs05y0h0P<1DX`u)fkmwq56JCsBWh^A3YiC*?B46azSB5$t@Wht`;Rg0- zVG5!@M95ztwopiV1RYrVq}@RHV8w7>NDvZKOyerruC)JYdEoJ2O7$zjaB%PqXXl15 zUYUU#Lm<}npX_t3*FW2yu2lSL?@^QN@|%RMtxt+OvaO!5qFdvaT>0o#!m?u*dqy@K zAZ%C9-aT{9?j-DH@iF7(uP$5hUm?^1+Csnw4WY0JyN%#4RjkC;Fwny)-t&T@b^PkW zKU$O?-FKp`s?{8&wg*HY)T*i#2^egE37#(6dKayVXgU||b&;kUjiCk#$87`X-QwF^ z;sIf>R&2Pt#D=?DXt={I#P4Im9#Nc3P`%|s1yfLCr1hc`?}$$96P&=SMhMiq>}V2~ z=*GL0Dw_EwdW;IEHYhIswYc~<;^On+5a_nFMO=(`!=V<-hrv9@#RysD)i<9|41kQ_#hhdrSyEm)dSr>Y zENSehl2KzzlM+C33~b}f^!H+NcJdh8=*;Z(^mWefy^+bKWfk*BnG;8rSrRQHM}6aZ z$CpWPPC5uAHpk5*mwGP_$ThQ!dbjj1Y59RB1F+S^Y7jdv1B~F z=J*!>C6)6{Gk&bjfh{BGw(E5OhB@}X1J|H)C4~2FB=eq!Xe`a65^+v~q4?V( z2<6qA$>z-z>efUh!*AA9^;_0adH>%v9up2tgHHyq74)chU^~C{(5Tf2hlU?GU{zBm zNIN^BO**ij^!V8U81Fc?AKn9I&#`wF(|64yq{#_V4xLV-dH{tlLXt}Vdr`61b5`I* N3&c1MHp3qV{THGr0_*?) diff --git a/.vs/marking_gui.slnx/v18/DocumentLayout.backup.json b/.vs/marking_gui.slnx/v18/DocumentLayout.backup.json index aab3543..e9a678d 100644 --- a/.vs/marking_gui.slnx/v18/DocumentLayout.backup.json +++ b/.vs/marking_gui.slnx/v18/DocumentLayout.backup.json @@ -14,8 +14,12 @@ "DocumentGroups": [ { "DockedWidth": 200, - "SelectedChildIndex": 0, + "SelectedChildIndex": 1, "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}" + }, { "$type": "Document", "DocumentIndex": 0, diff --git a/.vs/marking_gui.slnx/v18/DocumentLayout.json b/.vs/marking_gui.slnx/v18/DocumentLayout.json index aab3543..e9a678d 100644 --- a/.vs/marking_gui.slnx/v18/DocumentLayout.json +++ b/.vs/marking_gui.slnx/v18/DocumentLayout.json @@ -14,8 +14,12 @@ "DocumentGroups": [ { "DockedWidth": 200, - "SelectedChildIndex": 0, + "SelectedChildIndex": 1, "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}" + }, { "$type": "Document", "DocumentIndex": 0, diff --git a/build_err.txt b/build_err.txt index fb85ddd55e3ca9f288de791101f456278aca43b6..ad2671bd839e8ebdf681cf60eed84b97fbc2796a 100644 GIT binary patch literal 66463 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 wq7nS{&uatA8Q24 - + + - + @@ -294,7 +295,7 @@ - + @@ -311,6 +312,25 @@ + + + + + + + + + + + + + + + + + + + diff --git a/marking_gui/MainWindow.xaml.cs b/marking_gui/MainWindow.xaml.cs index 8cbbc5d..915baa3 100644 --- a/marking_gui/MainWindow.xaml.cs +++ b/marking_gui/MainWindow.xaml.cs @@ -79,6 +79,7 @@ namespace marking_gui { txtVoltageRangeGuide.Text = string.Format("기준범위: {0:F1}V ~ {1:F1}V", _limits.MinVoltage, _limits.MaxVoltage); txtCurrentRangeGuide.Text = string.Format("기준범위: {0:F1}A ~ {1:F1}A", _limits.MinCurrent, _limits.MaxCurrent); + txtResistanceRangeGuide.Text = string.Format("기준범위: {0:F1}Ω ~ {1:F1}Ω", _limits.MinResistance, _limits.MaxResistance); } private void btnOpenSettings_Click(object sender, RoutedEventArgs e) @@ -111,6 +112,8 @@ namespace marking_gui txtVoltage.Foreground = new SolidColorBrush(Color.FromRgb(31, 41, 55)); txtCurrent.Text = "-.--"; txtCurrent.Foreground = new SolidColorBrush(Color.FromRgb(31, 41, 55)); + txtResistance.Text = "-.--"; + txtResistance.Foreground = new SolidColorBrush(Color.FromRgb(31, 41, 55)); txtFinalResult.Text = "대 기 중"; txtFinalResult.Foreground = new SolidColorBrush(Color.FromRgb(156, 163, 175)); @@ -240,30 +243,34 @@ namespace marking_gui if (_timerTickCount < 10) // 약 2초 동안 측정값 흔들림 효과 연출 { - double tempVoltage, tempCurrent; - _measurer.GenerateNoiseValues(_limits, out tempVoltage, out tempCurrent); + double tempVoltage, tempCurrent, tempResistance; + _measurer.GenerateNoiseValues(_limits, out tempVoltage, out tempCurrent, out tempResistance); txtVoltage.Text = tempVoltage.ToString("F2"); txtCurrent.Text = tempCurrent.ToString("F2"); + txtResistance.Text = tempResistance.ToString("F2"); } else // 최종 측정 완료 및 판정 { _measurementTimer.Stop(); - double finalVoltage, finalCurrent; - _measurer.GenerateFinalValues(_limits, out finalVoltage, out finalCurrent); + double finalVoltage, finalCurrent, finalResistance; + _measurer.GenerateFinalValues(_limits, out finalVoltage, out finalCurrent, out finalResistance); txtVoltage.Text = finalVoltage.ToString("F2"); txtCurrent.Text = finalCurrent.ToString("F2"); + txtResistance.Text = finalResistance.ToString("F2"); // 합/불 판정 bool isVoltageOk = finalVoltage >= _limits.MinVoltage && finalVoltage <= _limits.MaxVoltage; bool isCurrentOk = finalCurrent >= _limits.MinCurrent && finalCurrent <= _limits.MaxCurrent; - bool isFinalPass = isVoltageOk && isCurrentOk; + bool isResistanceOk = finalResistance >= _limits.MinResistance && finalResistance <= _limits.MaxResistance; + bool isFinalPass = isVoltageOk && isCurrentOk && isResistanceOk; // 측정값 색상 표시 (통과 시 검은색, 실패 시 빨간색) txtVoltage.Foreground = isVoltageOk ? new SolidColorBrush(Color.FromRgb(31, 41, 55)) : new SolidColorBrush(Color.FromRgb(239, 68, 68)); txtCurrent.Foreground = isCurrentOk ? new SolidColorBrush(Color.FromRgb(31, 41, 55)) : new SolidColorBrush(Color.FromRgb(239, 68, 68)); + txtResistance.Foreground = isResistanceOk ? new SolidColorBrush(Color.FromRgb(31, 41, 55)) : new SolidColorBrush(Color.FromRgb(239, 68, 68)); if (isFinalPass) { @@ -284,11 +291,24 @@ namespace marking_gui borderFinalResult.Background = new SolidColorBrush(Color.FromRgb(254, 226, 226)); // Light Red } - // 데이터베이스에 최종 검사 결과 저장 (소수점 2자리 반올림 포맷 반영) + // 데이터베이스에 최종 검사 결과 저장 (소수점 2자리 반올림 포맷 반영 및 공정 정보 전달) try { string serial = txtSerial.Text.Trim(); - _database.SaveProductResult(serial, finalVoltage, finalCurrent, isFinalPass ? "PASS" : "FAIL"); + _database.SaveProductResult( + serial, + _loginInfo.Maker, + _loginInfo.Model, + _loginInfo.Variant1, + _loginInfo.Variant2, + _loginInfo.Operator, + _loginInfo.LineNo, + _loginInfo.LotNo, + _loginInfo.JigNo, + finalVoltage, + finalCurrent, + finalResistance, + isFinalPass ? "PASS" : "FAIL"); // 합격 판정 시 최종 SUCCESS 신호 전달 시뮬레이션 if (isFinalPass) diff --git a/marking_gui/Models/MeasurementLimits.cs b/marking_gui/Models/MeasurementLimits.cs index 0d8f494..df839f6 100644 --- a/marking_gui/Models/MeasurementLimits.cs +++ b/marking_gui/Models/MeasurementLimits.cs @@ -8,20 +8,24 @@ namespace marking_gui.Models public double MaxVoltage { get; set; } public double MinCurrent { get; set; } public double MaxCurrent { get; set; } + public double MinResistance { get; set; } + public double MaxResistance { get; set; } - public MeasurementLimits(double minVoltage = 4.0, double maxVoltage = 6.0, double minCurrent = 8.0, double maxCurrent = 10.0) + public MeasurementLimits(double minVoltage = 4.0, double maxVoltage = 6.0, double minCurrent = 8.0, double maxCurrent = 10.0, double minResistance = 0.4, double maxResistance = 0.8) { MinVoltage = minVoltage; MaxVoltage = maxVoltage; MinCurrent = minCurrent; MaxCurrent = maxCurrent; + MinResistance = minResistance; + MaxResistance = maxResistance; } public bool Validate(out string errorMessage) { errorMessage = string.Empty; - if (MinVoltage < 0 || MaxVoltage < 0 || MinCurrent < 0 || MaxCurrent < 0) + if (MinVoltage < 0 || MaxVoltage < 0 || MinCurrent < 0 || MaxCurrent < 0 || MinResistance < 0 || MaxResistance < 0) { errorMessage = "기준 범위 설정 값은 0 이상의 값이어야 합니다."; return false; @@ -39,6 +43,12 @@ namespace marking_gui.Models return false; } + if (MinResistance >= MaxResistance) + { + errorMessage = "저항 최소값은 최대값보다 작아야 합니다."; + return false; + } + return true; } } diff --git a/marking_gui/Services/LoginServicesStub.cs b/marking_gui/Services/LoginServicesStub.cs index f0f945c..af1dfa6 100644 --- a/marking_gui/Services/LoginServicesStub.cs +++ b/marking_gui/Services/LoginServicesStub.cs @@ -45,6 +45,8 @@ namespace Housing.Services public class LoginSettings { public bool OfflinePreview { get; set; } = true; // 기본값은 오프라인 테스트 편의를 위해 true + public string Procedure { get; set; } = string.Empty; + public string ProcessName { get; set; } = string.Empty; public static LoginSettings Load(string path) { @@ -72,6 +74,22 @@ namespace Housing.Services } } } + else if (trimmed.StartsWith("Procedure", StringComparison.OrdinalIgnoreCase)) + { + var parts = trimmed.Split(new[] { '=' }, 2); + if (parts.Length == 2) + { + settings.Procedure = parts[1].Trim(); + } + } + else if (trimmed.StartsWith("ProcessName", StringComparison.OrdinalIgnoreCase)) + { + var parts = trimmed.Split(new[] { '=' }, 2); + if (parts.Length == 2) + { + settings.ProcessName = parts[1].Trim(); + } + } } } } @@ -251,22 +269,66 @@ namespace Housing.Services { await conn.OpenAsync(); - // 우선 Users 또는 Accounts와 같이 로그인 테이블명이 뭔지 모를 수 있으므로 - // 쿼리 실패 시 default 계정 검증으로 fallback 하도록 구성 - const string query = "SELECT COUNT(*) FROM [Users] WHERE [OperatorId] = @Id AND [Password] = @Pw"; - using (var cmd = new System.Data.SqlClient.SqlCommand(query, conn)) + if (!string.IsNullOrWhiteSpace(_loginSettings.Procedure)) { - cmd.Parameters.AddWithValue("@Id", operatorId); - cmd.Parameters.AddWithValue("@Pw", password); - - var count = (int)await cmd.ExecuteScalarAsync(); - return count > 0; + using (var cmd = new System.Data.SqlClient.SqlCommand(_loginSettings.Procedure, conn)) + { + cmd.CommandType = System.Data.CommandType.StoredProcedure; + cmd.Parameters.AddWithValue("@Operator", operatorId); + cmd.Parameters.AddWithValue("@Password", password); + if (!string.IsNullOrWhiteSpace(_loginSettings.ProcessName)) + { + cmd.Parameters.AddWithValue("@ProcessName", _loginSettings.ProcessName); + } + + var resultObj = await cmd.ExecuteScalarAsync(); + if (resultObj != null) + { + if (int.TryParse(resultObj.ToString(), out var count)) + { + return count > 0; + } + if (bool.TryParse(resultObj.ToString(), out var boolVal)) + { + return boolVal; + } + return true; + } + return false; + } + } + else + { + // 우선 Users 또는 Accounts와 같이 로그인 테이블명이 뭔지 모를 수 있으므로 + // 쿼리 실패 시 default 계정 검증으로 fallback 하도록 구성 + const string query = "SELECT COUNT(*) FROM [Users] WHERE [OperatorId] = @Id AND [Password] = @Pw"; + using (var cmd = new System.Data.SqlClient.SqlCommand(query, conn)) + { + cmd.Parameters.AddWithValue("@Id", operatorId); + cmd.Parameters.AddWithValue("@Pw", password); + + var count = (int)await cmd.ExecuteScalarAsync(); + return count > 0; + } } } } - catch + catch (Exception ex) { - // DB 연결이나 쿼리 오류 발생 시, 테스트 편의를 위해 test/test 혹은 admin/admin 등 디폴트 계정을 제공 + // DB 연결이나 쿼리 오류 발생 시 로그 출력 후 디폴트 계정 검증으로 fallback + System.Diagnostics.Debug.WriteLine($"로그인 검증 중 에러 발생: {ex.Message}"); + + // ==================== [DEMO MODE START] ==================== + // DB가 없고 데모 환경일 때도 프로시저를 호출하려는 동작 및 로그 연출을 수행한 후 강제로 성공 처리 + // 상용 릴리즈 시 이 블록은 완전히 제거(삭제)할 수 있습니다. + if (!string.IsNullOrWhiteSpace(_loginSettings.Procedure)) + { + System.Diagnostics.Debug.WriteLine(string.Format("[데모 시뮬레이션] 프로시저 '{0}' 호출 모사 (ID: {1}, PW: {2}, Process: {3})", + _loginSettings.Procedure, operatorId, password, _loginSettings.ProcessName)); + return IsDefaultAccount(operatorId, password); + } + // ==================== [DEMO MODE END] ==================== + return IsDefaultAccount(operatorId, password); } } diff --git a/marking_gui/Services/MockMeasurer.cs b/marking_gui/Services/MockMeasurer.cs index ddad0bb..f52dc87 100644 --- a/marking_gui/Services/MockMeasurer.cs +++ b/marking_gui/Services/MockMeasurer.cs @@ -8,49 +8,66 @@ namespace marking_gui.Services private readonly Random _random = new Random(); // 2초 동안 측정 중 요동칠 가상 데이터 생성 - public void GenerateNoiseValues(MeasurementLimits limits, out double voltage, out double current) + public void GenerateNoiseValues(MeasurementLimits limits, out double voltage, out double current, out double resistance) { double midVoltage = (limits.MinVoltage + limits.MaxVoltage) / 2.0; double midCurrent = (limits.MinCurrent + limits.MaxCurrent) / 2.0; + double midResistance = (limits.MinResistance + limits.MaxResistance) / 2.0; // 설정 범위 폭에 맞추어 ±50% 범위의 노이즈 생성 double voltageSpan = limits.MaxVoltage - limits.MinVoltage; double currentSpan = limits.MaxCurrent - limits.MinCurrent; + double resistanceSpan = limits.MaxResistance - limits.MinResistance; voltage = midVoltage + (_random.NextDouble() * voltageSpan - (voltageSpan / 2.0)); current = midCurrent + (_random.NextDouble() * currentSpan - (currentSpan / 2.0)); + resistance = midResistance + (_random.NextDouble() * resistanceSpan - (resistanceSpan / 2.0)); } // 최종 합/불 판정 측정값 결정 (80% 확률로 합격 범위, 20% 확률로 불합격 범위 값 생성) - public void GenerateFinalValues(MeasurementLimits limits, out double voltage, out double current) + public void GenerateFinalValues(MeasurementLimits limits, out double voltage, out double current, out double resistance) { double voltageSpan = limits.MaxVoltage - limits.MinVoltage; double currentSpan = limits.MaxCurrent - limits.MinCurrent; + double resistanceSpan = limits.MaxResistance - limits.MinResistance; if (_random.Next(0, 10) < 8) { // 합격 범위 내의 가상 측정값 생성 voltage = limits.MinVoltage + (_random.NextDouble() * voltageSpan); current = limits.MinCurrent + (_random.NextDouble() * currentSpan); + resistance = limits.MinResistance + (_random.NextDouble() * resistanceSpan); } else { // 불합격 범위 유도 - if (_random.Next(0, 2) == 0) + int errorType = _random.Next(0, 3); + if (errorType == 0) { // 전압 에러 유도 (범위 폭의 50% 정도 벗어나도록 가/감산하여 음수 방지) voltage = _random.Next(0, 2) == 0 ? (limits.MinVoltage - (voltageSpan * 0.5)) : (limits.MaxVoltage + (voltageSpan * 0.5)); current = limits.MinCurrent + (_random.NextDouble() * currentSpan); + resistance = limits.MinResistance + (_random.NextDouble() * resistanceSpan); } - else + else if (errorType == 1) { // 전류 에러 유도 voltage = limits.MinVoltage + (_random.NextDouble() * voltageSpan); current = _random.Next(0, 2) == 0 ? (limits.MinCurrent - (currentSpan * 0.5)) : (limits.MaxCurrent + (currentSpan * 0.5)); + resistance = limits.MinResistance + (_random.NextDouble() * resistanceSpan); + } + else + { + // 저항 에러 유도 + voltage = limits.MinVoltage + (_random.NextDouble() * voltageSpan); + current = limits.MinCurrent + (_random.NextDouble() * currentSpan); + resistance = _random.Next(0, 2) == 0 + ? (limits.MinResistance - (resistanceSpan * 0.5)) + : (limits.MaxResistance + (resistanceSpan * 0.5)); } } } diff --git a/marking_gui/Services/MssqlDatabaseService.cs b/marking_gui/Services/MssqlDatabaseService.cs index 8fa6fdf..b8e682d 100644 --- a/marking_gui/Services/MssqlDatabaseService.cs +++ b/marking_gui/Services/MssqlDatabaseService.cs @@ -12,15 +12,38 @@ namespace marking_gui.Services { try { - // App.config 에서 연결 문자열을 로드하여 준비해둡니다. - var connSettings = ConfigurationManager.ConnectionStrings["MssqlConnection"]; - if (connSettings != null) + // AppDomain.CurrentDomain.BaseDirectory 에서 Database.ini 로드 시도 + string iniPath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Database.ini"); + if (System.IO.File.Exists(iniPath)) { - _connectionString = connSettings.ConnectionString; + var lines = System.IO.File.ReadAllLines(iniPath); + foreach (var line in lines) + { + var trimmed = line.Trim(); + if (trimmed.StartsWith("ConnectionString", StringComparison.OrdinalIgnoreCase)) + { + var parts = trimmed.Split(new[] { '=' }, 2); + if (parts.Length == 2) + { + _connectionString = parts[1].Trim(); + break; + } + } + } } - else + + // Database.ini 에 없을 경우 App.config 백업 사용 + if (string.IsNullOrEmpty(_connectionString)) { - _connectionString = "Server=localhost;Database=MarkingDb;Trusted_Connection=True;"; + var connSettings = ConfigurationManager.ConnectionStrings["MssqlConnection"]; + if (connSettings != null) + { + _connectionString = connSettings.ConnectionString; + } + else + { + _connectionString = "Server=localhost;Database=MarkingDb;Trusted_Connection=True;"; + } } } catch (Exception ex) @@ -64,23 +87,73 @@ namespace marking_gui.Services /// 최종 성능 검출 값을 데이터베이스에 저장합니다. /// 전압과 전류 수치는 3,2 포맷(DECIMAL(3, 2) 등)에 대응하기 위해 소수점 이하 2자리로 반올림하여 처리합니다. /// - public bool SaveProductResult(string serial, double voltage, double current, string result) + public bool SaveProductResult( + string serial, + string maker, + string model, + string variant1, + string variant2, + string operatorId, + string line, + string lotNo, + string jigNo, + double voltage, + double current, + double resistance, + string result) { - // 전압과 전류를 소수점 이하 2자리(3,2 포맷 규격)로 반올림 처리 + // 전압과 전류, 저항을 소수점 이하 2자리(3,2 포맷 규격)로 반올림 처리 decimal roundedVoltage = Math.Round((decimal)voltage, 2); decimal roundedCurrent = Math.Round((decimal)current, 2); + decimal roundedResistance = Math.Round((decimal)resistance, 2); + + // DB 컬럼 길이 한계에 맞춰서 문자열 안전하게 자르기 (Truncate) + string safeMaker = string.IsNullOrEmpty(maker) ? "" : (maker.Length > 10 ? maker.Substring(0, 10) : maker); + string safeModel = string.IsNullOrEmpty(model) ? "" : (model.Length > 10 ? model.Substring(0, 10) : model); + string safeVariant1 = string.IsNullOrEmpty(variant1) ? "" : (variant1.Length > 10 ? variant1.Substring(0, 10) : variant1); + string safeVariant2 = string.IsNullOrEmpty(variant2) ? "" : (variant2.Length > 10 ? variant2.Substring(0, 10) : variant2); + string safeOperator = string.IsNullOrEmpty(operatorId) ? "" : (operatorId.Length > 10 ? operatorId.Substring(0, 10) : operatorId); + string safeLine = string.IsNullOrEmpty(line) ? "" : (line.Length > 5 ? line.Substring(0, 5) : line); + string safeLotNo = string.IsNullOrEmpty(lotNo) ? "" : (lotNo.Length > 8 ? lotNo.Substring(0, 8) : lotNo); + string safeJigNo = string.IsNullOrEmpty(jigNo) ? "" : (jigNo.Length > 10 ? jigNo.Substring(0, 10) : jigNo); + + DateTime prodDate = DateTime.Now; + // QR Code 조합 포맷 생성 (Maker;Model;Variant_1;Variant_2;Operator;Production_Date) + string markingQr = string.Format("{0};{1};{2};{3};{4};{5}", + safeMaker, safeModel, safeVariant1, safeVariant2, safeOperator, prodDate.ToString("yyyyMMddHHmmss")); + if (markingQr.Length > 100) + { + markingQr = markingQr.Substring(0, 100); + } // TODO: 실제 MSSQL DB 적재를 위해 SQL 명령문 구현 템플릿 준비 /* - string query = "INSERT INTO ProductResults (SerialNumber, Voltage, Current, FinalResult, TestTime) VALUES (@Serial, @Voltage, @Current, @Result, GETDATE())"; + string query = @"INSERT INTO [dbo].[Marking] + ([IC_SN], [Marking_QR], [Maker], [Model], [Variant_1], [Variant_2], [Operator], [Production_Date], [Line], [Lot_No], [Jig_No], + [PT_Vol_1], [PT_Vol_2], [PT_Vol_3], [PT_Current_1], [PT_Current_2], [PT_Current_3], [PT_Resistance_1], [PT_Resistance_2], [PT_Resistance_3], [Result]) + VALUES + (@Serial, @Qr, @Maker, @Model, @Var1, @Var2, @Operator, @ProdDate, @Line, @LotNo, @JigNo, + @Vol1, 0.00, 0.00, @Cur1, 0.00, 0.00, @Res1, 0.00, 0.00, @Result)"; + using (var conn = new System.Data.SqlClient.SqlConnection(_connectionString)) { using (var cmd = new System.Data.SqlClient.SqlCommand(query, conn)) { cmd.Parameters.AddWithValue("@Serial", serial); - // DECIMAL(3,2) 포맷 매핑 파라미터 (Precision=3, Scale=2) - cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Voltage", System.Data.SqlDbType.Decimal) { Precision = 3, Scale = 2, Value = roundedVoltage }); - cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Current", System.Data.SqlDbType.Decimal) { Precision = 3, Scale = 2, Value = roundedCurrent }); + cmd.Parameters.AddWithValue("@Qr", markingQr); + cmd.Parameters.AddWithValue("@Maker", safeMaker); + cmd.Parameters.AddWithValue("@Model", safeModel); + cmd.Parameters.AddWithValue("@Var1", safeVariant1); + cmd.Parameters.AddWithValue("@Var2", safeVariant2); + cmd.Parameters.AddWithValue("@Operator", safeOperator); + cmd.Parameters.AddWithValue("@ProdDate", prodDate); + cmd.Parameters.AddWithValue("@Line", safeLine); + cmd.Parameters.AddWithValue("@LotNo", safeLotNo); + cmd.Parameters.AddWithValue("@JigNo", safeJigNo); + + cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Vol1", System.Data.SqlDbType.Decimal) { Precision = 3, Scale = 2, Value = roundedVoltage }); + cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Cur1", System.Data.SqlDbType.Decimal) { Precision = 3, Scale = 2, Value = roundedCurrent }); + cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Res1", System.Data.SqlDbType.Decimal) { Precision = 3, Scale = 2, Value = roundedResistance }); cmd.Parameters.AddWithValue("@Result", result); conn.Open(); @@ -90,8 +163,9 @@ namespace marking_gui.Services */ // 데모 단계 로그 출력 및 성공 반환 - System.Diagnostics.Debug.WriteLine(string.Format("[DB 저장 로그] S/N: {0} | 전압: {1:F2}V | 전류: {2:F2}A | 결과: {3}", - serial, roundedVoltage, roundedCurrent, result)); + System.Diagnostics.Debug.WriteLine(string.Format( + "[DB 저장 로그] S/N: {0} | QR: {1} | Maker: {2} | Model: {3} | Line: {4} | LotNo: {5} | Vol_1: {6:F2}V | Cur_1: {7:F2}A | Res_1: {8:F2}Ω | 결과: {9}", + serial, markingQr, safeMaker, safeModel, safeLine, safeLotNo, roundedVoltage, roundedCurrent, roundedResistance, result)); return true; } diff --git a/marking_gui/SettingsWindow.xaml b/marking_gui/SettingsWindow.xaml index a4f1e5e..33a5d4b 100644 --- a/marking_gui/SettingsWindow.xaml +++ b/marking_gui/SettingsWindow.xaml @@ -1,7 +1,7 @@ @@ -44,14 +44,16 @@ - + - + + + @@ -59,18 +61,24 @@ - + - + + + + + + + diff --git a/marking_gui/SettingsWindow.xaml.cs b/marking_gui/SettingsWindow.xaml.cs index c4d26a3..f16f6eb 100644 --- a/marking_gui/SettingsWindow.xaml.cs +++ b/marking_gui/SettingsWindow.xaml.cs @@ -16,28 +16,32 @@ namespace marking_gui InitializeComponent(); // 원본의 데이터 무결성을 유지하기 위해 임시 복제하여 사용 - Limits = new MeasurementLimits(limits.MinVoltage, limits.MaxVoltage, limits.MinCurrent, limits.MaxCurrent); + Limits = new MeasurementLimits(limits.MinVoltage, limits.MaxVoltage, limits.MinCurrent, limits.MaxCurrent, limits.MinResistance, limits.MaxResistance); txtMinVoltage.Text = Limits.MinVoltage.ToString("F1"); txtMaxVoltage.Text = Limits.MaxVoltage.ToString("F1"); txtMinCurrent.Text = Limits.MinCurrent.ToString("F1"); txtMaxCurrent.Text = Limits.MaxCurrent.ToString("F1"); + txtMinResistance.Text = Limits.MinResistance.ToString("F1"); + txtMaxResistance.Text = Limits.MaxResistance.ToString("F1"); } private void btnSave_Click(object sender, RoutedEventArgs e) { - double minV, maxV, minC, maxC; + double minV, maxV, minC, maxC, minR, maxR; if (!double.TryParse(txtMinVoltage.Text, out minV) || !double.TryParse(txtMaxVoltage.Text, out maxV) || !double.TryParse(txtMinCurrent.Text, out minC) || - !double.TryParse(txtMaxCurrent.Text, out maxC)) + !double.TryParse(txtMaxCurrent.Text, out maxC) || + !double.TryParse(txtMinResistance.Text, out minR) || + !double.TryParse(txtMaxResistance.Text, out maxR)) { MessageBox.Show("기준 범위 설정 값은 올바른 숫자 형식이어야 합니다.", "설정 오류", MessageBoxButton.OK, MessageBoxImage.Warning); return; } - MeasurementLimits tempLimits = new MeasurementLimits(minV, maxV, minC, maxC); + MeasurementLimits tempLimits = new MeasurementLimits(minV, maxV, minC, maxC, minR, maxR); string errorMessage; if (!tempLimits.Validate(out errorMessage)) { diff --git a/marking_gui/bin/Debug/marking_gui.exe b/marking_gui/bin/Debug/marking_gui.exe index ea62845e0afefdb57052b4a8ede348d2069ad18f..34c1d9c2d3cb2d8c86bc8425b7ba09c4b4ac1257 100644 GIT binary patch delta 24991 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 diff --git a/marking_gui/bin/Debug/marking_gui.pdb b/marking_gui/bin/Debug/marking_gui.pdb index e47e03177f35e140aed94cac96525f9ea492129b..7045d972adab1767c82ca1da7767292f5b5c61a5 100644 GIT binary patch delta 28735 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 delta 24146 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 vM@`bi~69z*+A + + PreserveNewest + \ No newline at end of file diff --git a/marking_gui/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/marking_gui/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache index da83b00dec97611cec869138a6d0b5cae61789c6..e41949b58bd21ff000a0386ac790c3e978ab5c43 100644 GIT binary patch delta 63 zcmaDVbVzuDIIAE714GE<59}5bJ!BZ2Kn!ljf&#td{JgZxbQchx*CnweF)6V)RWCCy OGjp;dQ|QKzB^&^YVimFg delta 44 ycmX>k{8VUyII92y1B1uJLY;{rGK^+Gn%l9UKrcBzFD)}Yb8;bb=w?605)J?){S9~k diff --git a/marking_gui/obj/Debug/MainWindow.baml b/marking_gui/obj/Debug/MainWindow.baml index aaa4968ad390b8e439366a8a4e8af60c75187fd7..1b96b34a0230ae6f9b01720fd205288ace975db1 100644 GIT binary patch delta 1325 zcmZ`(&u<%55Z3+;gl%nfl1kMHfajycqa_4m!poB3wu z?S5%}wQ|Rdwt2o23ilC<_O$IwCk6M@cr>A!oE|0mGbT@&+3HT=ilQj#(}D+>qVxiL zRH1ZqDm(~2DEX5eh4(Vr)ce&wMss>l?U&5&<{YHzXpBZRI`xT@2x>P(Aj6RIz>96cT_vN1<-o=zl_Ebl1h^jq>`pnz1a;&Gs+;t49H zOg2HEr&bP5!r>||0yPy+fxHa)5%14}<$n3MFaQ#MAQn|sDHzhR_o48-U=Oe0aBD{g z!J8c&ayxp}?P$8Cqu0<;Fss)^Z{yxKjm_(NV{_xL>$mmzg0*&G%`R8YScw}u1um=a z`C6!EJ}wIL^h39gmSUY9HP|&z92nx?bn1hy}Gg-5`{8&TNjC^s_G4!hjWu-<62=2M&~-b@vLBE zZ(Vrw?Je4fFI}C5(OtxwK+Q!Q0g;0-aBs^vXK*=mwMr~?fYuZH za&_1>jn5&kdlQZV$(x|@V?aJ2=N2Ca*$-m)soyZ!aXMy94=%tc)jxmdO5o1!T&APhV$y=COPU@C z#gJNeC*QSS+4G@YDcR+kjZs^4H=Ac?>G$kF>KsnV`xEK>Rd`Ew&9cv&pAv;Jm@vHa ztz|Az);u}5^1KYbM)K2D0hi-*%J$JMGt4UV(46mCg(E04w?7ivoORZo68th{a>ZB` V9=DAekZeQaYd~HH*+3p3^*{I7Fi8La delta 774 zcmZ{iOHUI~7>3U&Q%#DNDALZf^g=0}mg!77(>Yw4RHzpa#bB!miWgYO20>}0OE+$f ziSi{Hm*O8VF&KY<8#iur@4~Hrp&8#Z(;^!;llMK}WuEUl=gs!3&5w5B#3{@0M2uR6 zQpj=WSz*+2DrLLU?oM?WW7fJS;+(Mr^gzgCgQuBL;nULp?lPh6>ni;!ghL5V%UO*l z_w^J{QCi>SY1**P(Fa|GGpNW>Hm=bZE5WmLrfA?>FRt)0dRg33bBK?lqawzkGP3t` z^v=^z$>w=#lpd)Q2qgWK0#sb4eD|0r(bv+%|G+1ac^uq;KLRiJ!OZ~NlHe79>-1@I ziQ9m$g&kD<1FzDqVeqOC?$RG)OBIL*;8RdX;M4TDZ1ZV=kI-Rx)tEsrfS-ku@QSEG z4fn^W!<>aNN9dqp^E&;kT&SPNVN7Q9_C5#ik0bX!4#ys0w0;@?Vx zQ#+&ai?n0E<(DYz%<{`L=Zr-cP?nQDv0pPro})!tn@>C2d+)kpfnGZgBa6KZGmdDE zFH)}Bp1*=aIh`Vwpn_4ZLItB-gOZ~tVi{`4SJ$Bi<&Weo-Jl=UTC|Cys66`SF;k_a zJIb3h>J8p{Kq!(@~dh2-IDt&hEq;L1@um|~A*Wl%{{5~3)cr // 이 코드는 도구를 사용하여 생성되었습니다. @@ -137,7 +137,7 @@ namespace marking_gui { #line hidden - #line 288 "..\..\MainWindow.xaml" + #line 289 "..\..\MainWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.TextBlock txtVoltage; @@ -145,7 +145,7 @@ namespace marking_gui { #line hidden - #line 292 "..\..\MainWindow.xaml" + #line 293 "..\..\MainWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.TextBlock txtVoltageRangeGuide; @@ -153,7 +153,7 @@ namespace marking_gui { #line hidden - #line 307 "..\..\MainWindow.xaml" + #line 308 "..\..\MainWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.TextBlock txtCurrent; @@ -161,7 +161,7 @@ namespace marking_gui { #line hidden - #line 311 "..\..\MainWindow.xaml" + #line 312 "..\..\MainWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.TextBlock txtCurrentRangeGuide; @@ -169,7 +169,23 @@ namespace marking_gui { #line hidden - #line 317 "..\..\MainWindow.xaml" + #line 327 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock txtResistance; + + #line default + #line hidden + + + #line 331 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock txtResistanceRangeGuide; + + #line default + #line hidden + + + #line 337 "..\..\MainWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.Border borderFinalResult; @@ -177,7 +193,7 @@ namespace marking_gui { #line hidden - #line 326 "..\..\MainWindow.xaml" + #line 346 "..\..\MainWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.TextBlock txtFinalResult; @@ -185,7 +201,7 @@ namespace marking_gui { #line hidden - #line 327 "..\..\MainWindow.xaml" + #line 347 "..\..\MainWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.TextBlock txtFinalSerial; @@ -193,7 +209,7 @@ namespace marking_gui { #line hidden - #line 337 "..\..\MainWindow.xaml" + #line 357 "..\..\MainWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.Button btnStart; @@ -201,7 +217,7 @@ namespace marking_gui { #line hidden - #line 346 "..\..\MainWindow.xaml" + #line 366 "..\..\MainWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.Button btnOpenSettings; @@ -331,27 +347,33 @@ namespace marking_gui { this.txtCurrentRangeGuide = ((System.Windows.Controls.TextBlock)(target)); return; case 21: - this.borderFinalResult = ((System.Windows.Controls.Border)(target)); + this.txtResistance = ((System.Windows.Controls.TextBlock)(target)); return; case 22: - this.txtFinalResult = ((System.Windows.Controls.TextBlock)(target)); + this.txtResistanceRangeGuide = ((System.Windows.Controls.TextBlock)(target)); return; case 23: - this.txtFinalSerial = ((System.Windows.Controls.TextBlock)(target)); + this.borderFinalResult = ((System.Windows.Controls.Border)(target)); return; case 24: + this.txtFinalResult = ((System.Windows.Controls.TextBlock)(target)); + return; + case 25: + this.txtFinalSerial = ((System.Windows.Controls.TextBlock)(target)); + return; + case 26: this.btnStart = ((System.Windows.Controls.Button)(target)); - #line 338 "..\..\MainWindow.xaml" + #line 358 "..\..\MainWindow.xaml" this.btnStart.Click += new System.Windows.RoutedEventHandler(this.btnStart_Click); #line default #line hidden return; - case 25: + case 27: this.btnOpenSettings = ((System.Windows.Controls.Button)(target)); - #line 347 "..\..\MainWindow.xaml" + #line 367 "..\..\MainWindow.xaml" this.btnOpenSettings.Click += new System.Windows.RoutedEventHandler(this.btnOpenSettings_Click); #line default diff --git a/marking_gui/obj/Debug/MainWindow.g.i.cs b/marking_gui/obj/Debug/MainWindow.g.i.cs index 48f970b..3156126 100644 --- a/marking_gui/obj/Debug/MainWindow.g.i.cs +++ b/marking_gui/obj/Debug/MainWindow.g.i.cs @@ -1,4 +1,4 @@ -#pragma checksum "..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "60B18A2C8EC6850BAA7CCDBE87ACA2C0E97BE83EC5737A82EA9755C4685A0C2C" +#pragma checksum "..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "AD4A4C06745EFEC612E5A40E8825C3B16CE481532342C19F0C009E1B56E7E5F4" //------------------------------------------------------------------------------ // // 이 코드는 도구를 사용하여 생성되었습니다. @@ -89,7 +89,23 @@ namespace marking_gui { #line hidden - #line 188 "..\..\MainWindow.xaml" + #line 170 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button btnMaximize; + + #line default + #line hidden + + + #line 171 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock txtMaximizeIcon; + + #line default + #line hidden + + + #line 201 "..\..\MainWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.TextBox txtSerial; @@ -97,7 +113,7 @@ namespace marking_gui { #line hidden - #line 219 "..\..\MainWindow.xaml" + #line 232 "..\..\MainWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.TextBlock txtPrevHousing; @@ -105,7 +121,7 @@ namespace marking_gui { #line hidden - #line 230 "..\..\MainWindow.xaml" + #line 243 "..\..\MainWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.TextBlock txtPrevCal; @@ -113,7 +129,7 @@ namespace marking_gui { #line hidden - #line 241 "..\..\MainWindow.xaml" + #line 254 "..\..\MainWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.TextBlock txtPrevEol; @@ -121,7 +137,7 @@ namespace marking_gui { #line hidden - #line 275 "..\..\MainWindow.xaml" + #line 289 "..\..\MainWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.TextBlock txtVoltage; @@ -129,7 +145,7 @@ namespace marking_gui { #line hidden - #line 279 "..\..\MainWindow.xaml" + #line 293 "..\..\MainWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.TextBlock txtVoltageRangeGuide; @@ -137,7 +153,7 @@ namespace marking_gui { #line hidden - #line 294 "..\..\MainWindow.xaml" + #line 308 "..\..\MainWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.TextBlock txtCurrent; @@ -145,7 +161,7 @@ namespace marking_gui { #line hidden - #line 298 "..\..\MainWindow.xaml" + #line 312 "..\..\MainWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.TextBlock txtCurrentRangeGuide; @@ -153,7 +169,23 @@ namespace marking_gui { #line hidden - #line 304 "..\..\MainWindow.xaml" + #line 327 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock txtResistance; + + #line default + #line hidden + + + #line 331 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock txtResistanceRangeGuide; + + #line default + #line hidden + + + #line 337 "..\..\MainWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.Border borderFinalResult; @@ -161,7 +193,7 @@ namespace marking_gui { #line hidden - #line 313 "..\..\MainWindow.xaml" + #line 346 "..\..\MainWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.TextBlock txtFinalResult; @@ -169,7 +201,7 @@ namespace marking_gui { #line hidden - #line 314 "..\..\MainWindow.xaml" + #line 347 "..\..\MainWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.TextBlock txtFinalSerial; @@ -177,7 +209,7 @@ namespace marking_gui { #line hidden - #line 324 "..\..\MainWindow.xaml" + #line 357 "..\..\MainWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.Button btnStart; @@ -185,7 +217,7 @@ namespace marking_gui { #line hidden - #line 333 "..\..\MainWindow.xaml" + #line 366 "..\..\MainWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.Button btnOpenSettings; @@ -231,21 +263,29 @@ namespace marking_gui { #line hidden return; case 2: - this.txtCurrentTime = ((System.Windows.Controls.TextBlock)(target)); + + #line 129 "..\..\MainWindow.xaml" + ((System.Windows.Controls.Border)(target)).MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.TopBar_MouseLeftButtonDown); + + #line default + #line hidden return; case 3: - this.txtSystemStatus = ((System.Windows.Controls.TextBlock)(target)); + this.txtCurrentTime = ((System.Windows.Controls.TextBlock)(target)); return; case 4: - this.txtOperatorInfo = ((System.Windows.Controls.TextBlock)(target)); + this.txtSystemStatus = ((System.Windows.Controls.TextBlock)(target)); return; case 5: - this.txtModelInfo = ((System.Windows.Controls.TextBlock)(target)); + this.txtOperatorInfo = ((System.Windows.Controls.TextBlock)(target)); return; case 6: - this.txtLineInfo = ((System.Windows.Controls.TextBlock)(target)); + this.txtModelInfo = ((System.Windows.Controls.TextBlock)(target)); return; case 7: + this.txtLineInfo = ((System.Windows.Controls.TextBlock)(target)); + return; + case 8: this.btnLogout = ((System.Windows.Controls.Button)(target)); #line 163 "..\..\MainWindow.xaml" @@ -254,52 +294,86 @@ namespace marking_gui { #line default #line hidden return; - case 8: + case 9: + + #line 167 "..\..\MainWindow.xaml" + ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.BtnMinimize_Click); + + #line default + #line hidden + return; + case 10: + this.btnMaximize = ((System.Windows.Controls.Button)(target)); + + #line 170 "..\..\MainWindow.xaml" + this.btnMaximize.Click += new System.Windows.RoutedEventHandler(this.BtnMaximize_Click); + + #line default + #line hidden + return; + case 11: + this.txtMaximizeIcon = ((System.Windows.Controls.TextBlock)(target)); + return; + case 12: + + #line 173 "..\..\MainWindow.xaml" + ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.BtnClose_Click); + + #line default + #line hidden + return; + case 13: this.txtSerial = ((System.Windows.Controls.TextBox)(target)); return; - case 9: + case 14: this.txtPrevHousing = ((System.Windows.Controls.TextBlock)(target)); return; - case 10: + case 15: this.txtPrevCal = ((System.Windows.Controls.TextBlock)(target)); return; - case 11: + case 16: this.txtPrevEol = ((System.Windows.Controls.TextBlock)(target)); return; - case 12: + case 17: this.txtVoltage = ((System.Windows.Controls.TextBlock)(target)); return; - case 13: + case 18: this.txtVoltageRangeGuide = ((System.Windows.Controls.TextBlock)(target)); return; - case 14: + case 19: this.txtCurrent = ((System.Windows.Controls.TextBlock)(target)); return; - case 15: + case 20: this.txtCurrentRangeGuide = ((System.Windows.Controls.TextBlock)(target)); return; - case 16: + case 21: + this.txtResistance = ((System.Windows.Controls.TextBlock)(target)); + return; + case 22: + this.txtResistanceRangeGuide = ((System.Windows.Controls.TextBlock)(target)); + return; + case 23: this.borderFinalResult = ((System.Windows.Controls.Border)(target)); return; - case 17: + case 24: this.txtFinalResult = ((System.Windows.Controls.TextBlock)(target)); return; - case 18: + case 25: this.txtFinalSerial = ((System.Windows.Controls.TextBlock)(target)); return; - case 19: + case 26: this.btnStart = ((System.Windows.Controls.Button)(target)); - #line 325 "..\..\MainWindow.xaml" + #line 358 "..\..\MainWindow.xaml" this.btnStart.Click += new System.Windows.RoutedEventHandler(this.btnStart_Click); #line default #line hidden return; - case 20: + case 27: this.btnOpenSettings = ((System.Windows.Controls.Button)(target)); - #line 334 "..\..\MainWindow.xaml" + #line 367 "..\..\MainWindow.xaml" this.btnOpenSettings.Click += new System.Windows.RoutedEventHandler(this.btnOpenSettings_Click); #line default diff --git a/marking_gui/obj/Debug/SettingsWindow.baml b/marking_gui/obj/Debug/SettingsWindow.baml index d2534d09b1461aaab516444804ad47a452ef0184..19322e50d1749edcaa7fff68a284b91c320a6572 100644 GIT binary patch delta 635 zcmew;_g#5ID-)yT<~Ak`Ha6zRe;G{8Cs%PuGg?fJ;gFcTjzf;mih+TF4~UtU{bw+> zo_vc#da@3u7#o;tJ6VuZn$d2uE~gZu(_|0MRz~N^=QzzKOL9w1mgCA~beY`2mB#2g z`8}5wkd)$XntX;wYVtPj3`Wn%@;q9T<9MYeC-Y=7dQCpdlg8*h*@RaMNXGNlnlU#4 zo#F?zT7~`Ke@2s||I8$S0xIl>|1%l@IjSIz(4_x7Zx%GXow`;*_Zb#JuFxnSV_|s>Og9ZifMw1GK{sXooF`!|~)l zlc9;me=}dO)Lo!k3jdl#gE&05{;xJHx1?-~$ zAPW?j5Zfl-;)$#egbL}h0U4OiO{_q1E=VOk^=H9|7 zv4G{QCL3@{Fnqo@7f)M0WHXDg%QWDYJfAZgFl#OO5n5LX(b^JGnK zt;u#=Qj>GJGa20`U*~RQbe|l_qXi^ec$y|(VjT zI&L6lUjCQC)Ms*$KpLMfkPCL;$^Q(xtdpM!s5AOb<`az8@PkU|vH=;UKnw;d{6Y+z pNhNvCiFwJXIWzy7`c0lF=qc+Dlmr>fVj2J>*}<$pAju5GOaSexJ{ // 이 코드는 도구를 사용하여 생성되었습니다. @@ -40,7 +40,7 @@ namespace marking_gui { public partial class SettingsWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector { - #line 65 "..\..\SettingsWindow.xaml" + #line 67 "..\..\SettingsWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.TextBox txtMinVoltage; @@ -48,7 +48,7 @@ namespace marking_gui { #line hidden - #line 67 "..\..\SettingsWindow.xaml" + #line 69 "..\..\SettingsWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.TextBox txtMaxVoltage; @@ -56,7 +56,7 @@ namespace marking_gui { #line hidden - #line 71 "..\..\SettingsWindow.xaml" + #line 73 "..\..\SettingsWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.TextBox txtMinCurrent; @@ -64,7 +64,7 @@ namespace marking_gui { #line hidden - #line 73 "..\..\SettingsWindow.xaml" + #line 75 "..\..\SettingsWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.TextBox txtMaxCurrent; @@ -72,7 +72,23 @@ namespace marking_gui { #line hidden - #line 77 "..\..\SettingsWindow.xaml" + #line 79 "..\..\SettingsWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox txtMinResistance; + + #line default + #line hidden + + + #line 81 "..\..\SettingsWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox txtMaxResistance; + + #line default + #line hidden + + + #line 85 "..\..\SettingsWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.Button btnSave; @@ -80,7 +96,7 @@ namespace marking_gui { #line hidden - #line 78 "..\..\SettingsWindow.xaml" + #line 86 "..\..\SettingsWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.Button btnCancel; @@ -130,18 +146,24 @@ namespace marking_gui { this.txtMaxCurrent = ((System.Windows.Controls.TextBox)(target)); return; case 5: + this.txtMinResistance = ((System.Windows.Controls.TextBox)(target)); + return; + case 6: + this.txtMaxResistance = ((System.Windows.Controls.TextBox)(target)); + return; + case 7: this.btnSave = ((System.Windows.Controls.Button)(target)); - #line 77 "..\..\SettingsWindow.xaml" + #line 85 "..\..\SettingsWindow.xaml" this.btnSave.Click += new System.Windows.RoutedEventHandler(this.btnSave_Click); #line default #line hidden return; - case 6: + case 8: this.btnCancel = ((System.Windows.Controls.Button)(target)); - #line 78 "..\..\SettingsWindow.xaml" + #line 86 "..\..\SettingsWindow.xaml" this.btnCancel.Click += new System.Windows.RoutedEventHandler(this.btnCancel_Click); #line default diff --git a/marking_gui/obj/Debug/SettingsWindow.g.i.cs b/marking_gui/obj/Debug/SettingsWindow.g.i.cs index 5bddb21..593bd91 100644 --- a/marking_gui/obj/Debug/SettingsWindow.g.i.cs +++ b/marking_gui/obj/Debug/SettingsWindow.g.i.cs @@ -1,4 +1,4 @@ -#pragma checksum "..\..\SettingsWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "33961FE01569FF3D7FDD670A40AE2AB5450B6E4881EBA8EABD242BBB6EA0F36D" +#pragma checksum "..\..\SettingsWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "3B54A611CD6FF472DF4AA312133DE53F7310470DDD5247B79B8465A5C8B8AF60" //------------------------------------------------------------------------------ // // 이 코드는 도구를 사용하여 생성되었습니다. @@ -40,7 +40,7 @@ namespace marking_gui { public partial class SettingsWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector { - #line 65 "..\..\SettingsWindow.xaml" + #line 67 "..\..\SettingsWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.TextBox txtMinVoltage; @@ -48,7 +48,7 @@ namespace marking_gui { #line hidden - #line 67 "..\..\SettingsWindow.xaml" + #line 69 "..\..\SettingsWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.TextBox txtMaxVoltage; @@ -56,7 +56,7 @@ namespace marking_gui { #line hidden - #line 71 "..\..\SettingsWindow.xaml" + #line 73 "..\..\SettingsWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.TextBox txtMinCurrent; @@ -64,7 +64,7 @@ namespace marking_gui { #line hidden - #line 73 "..\..\SettingsWindow.xaml" + #line 75 "..\..\SettingsWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.TextBox txtMaxCurrent; @@ -72,7 +72,23 @@ namespace marking_gui { #line hidden - #line 77 "..\..\SettingsWindow.xaml" + #line 79 "..\..\SettingsWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox txtMinResistance; + + #line default + #line hidden + + + #line 81 "..\..\SettingsWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox txtMaxResistance; + + #line default + #line hidden + + + #line 85 "..\..\SettingsWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.Button btnSave; @@ -80,7 +96,7 @@ namespace marking_gui { #line hidden - #line 78 "..\..\SettingsWindow.xaml" + #line 86 "..\..\SettingsWindow.xaml" [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] internal System.Windows.Controls.Button btnCancel; @@ -130,18 +146,24 @@ namespace marking_gui { this.txtMaxCurrent = ((System.Windows.Controls.TextBox)(target)); return; case 5: + this.txtMinResistance = ((System.Windows.Controls.TextBox)(target)); + return; + case 6: + this.txtMaxResistance = ((System.Windows.Controls.TextBox)(target)); + return; + case 7: this.btnSave = ((System.Windows.Controls.Button)(target)); - #line 77 "..\..\SettingsWindow.xaml" + #line 85 "..\..\SettingsWindow.xaml" this.btnSave.Click += new System.Windows.RoutedEventHandler(this.btnSave_Click); #line default #line hidden return; - case 6: + case 8: this.btnCancel = ((System.Windows.Controls.Button)(target)); - #line 78 "..\..\SettingsWindow.xaml" + #line 86 "..\..\SettingsWindow.xaml" this.btnCancel.Click += new System.Windows.RoutedEventHandler(this.btnCancel_Click); #line default diff --git a/marking_gui/obj/Debug/marking_gui.csproj.FileListAbsolute.txt b/marking_gui/obj/Debug/marking_gui.csproj.FileListAbsolute.txt index d88a64c..d9434a0 100644 --- a/marking_gui/obj/Debug/marking_gui.csproj.FileListAbsolute.txt +++ b/marking_gui/obj/Debug/marking_gui.csproj.FileListAbsolute.txt @@ -38,3 +38,4 @@ C:\Users\COMPUTER1\Desktop\mobi\marking_gui\marking_gui\obj\Debug\MainWindow.bam C:\Users\COMPUTER1\Desktop\mobi\marking_gui\marking_gui\obj\Debug\marking_gui.g.resources C:\Users\COMPUTER1\Desktop\mobi\marking_gui\marking_gui\obj\Debug\marking_gui.exe C:\Users\COMPUTER1\Desktop\mobi\marking_gui\marking_gui\obj\Debug\marking_gui.pdb +C:\Users\COMPUTER1\Desktop\mobi\marking_gui\marking_gui\bin\Debug\Database.ini diff --git a/marking_gui/obj/Debug/marking_gui.exe b/marking_gui/obj/Debug/marking_gui.exe index ea62845e0afefdb57052b4a8ede348d2069ad18f..34c1d9c2d3cb2d8c86bc8425b7ba09c4b4ac1257 100644 GIT binary patch delta 24991 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 diff --git a/marking_gui/obj/Debug/marking_gui.g.resources b/marking_gui/obj/Debug/marking_gui.g.resources index ddd7d208b9566fb095973efb00535c4afc09a788..38085ca2d3ce98412fffb5c08da016d9c434066e 100644 GIT binary patch delta 2130 zcmb_dUrbYH6u;l?l_C{}{4FhDfr41LmC}9}C=?WQw9taWR1l|DDT`YJ ziQ8h2#+dlP%>IN26En8OWlJ{Ww#=9?o|a|F=EL^n*pplKgm>qBEd{gjHXbg&^XL1{ z`JL~a)2}bc3zy{EZYF=W9XN9tKN*yyit8qr>8P0l_JT<+(g*{v$+?@^H>xWPALtU# zXOd)*B*|`ktTTtCYjr3n8=Q4IFNPiNEwYQlguB$~;`OeE$tCR!nw^JqZcd#u$hu_8 zmUs!uz zmlv42&ctGoX#DyT_Xvg@erY~o*3dD@unAF`VKW?Vaj|Adw4CZ_K|_+E7g3s_4}~HO zVK?5>S>rcPv@#T`?&~A6ENLnk)<4hq z23tb6EZ%u{aptORapuAwS8v&B2O?ABQ}J;0Xk^RvC5=-$nb&mL<*C)Ret6hsGsRG+ z7;5o3cczQ?EEVraH%3htuMpknxcIZ@Z!v4n#-P*&=u9Gsu-}FWD3YB zAkG6?ujoqW#HrCrT?<2)7nDq)RDF@@-f%jDGCqboyo2UA)>BOcpsvCL}CJVqmYM! zS`1sfF18y+yq)C(sHDu7JAV*m(FZiV&%x!%GIwY@Fxxh{?EosNY6^cIQ8Lqmh?1EeLPVJ= z{4kGli+I~ED zQjv}oK5nmKQTVaFzizG7Kl3olE(Np*oBBMZYLbK$&c+zc#UH{YHus^8 zQnP11*5$?qT<4;Bg{>XF_gh#eJo3NBy5Mv`gU@>`@Ks=(?EnYXY$sgqap3oho{JC- zT41R6I19ktUPmHifpx)g)&mp4G1dz|1ReNgp_er=H+`vmL|c1s1DPoST1O2iRFjaG z&^Iiv1RShr@4$3_>Xf<;!OD9UmTT&4VM4_ delta 1040 zcmZ{jNla5w6o%h@JkT(d2GS8)q?Dts6D&+`4js&vRdyHg0bIbN+Mh{m!}XZQkHNtnjbAg!e{) z5;y-uDxD+uYxr9pm?vwc2X!0mRkcpLOtnz(cJm$&T=zCRJ+2tbXIRczYWh5Xd9{)cJfs`*$T~mH?cz6e_r2?Mw3#~fl9|pKFb{K zhA;m1|6$v(azC~m<6Z2YJ#2@9?NqQ`h}{Wq0x9B#`QC7)2lwoud*MpZPP_`b5B>ya z^%VUwx*ydpdH^nk+#~?cLv!{Z8fEklDuyo5FsjC#CL$O#VBpZe%ZQsq;725Bj$%^F zDz;}H!&qsC%{&f?sEH(?5H*rMSdOldqtFlwk$w5EHq zi+8u^0NjgBRS#}gICSV*$RHe!FT{s1$r=!73RRhS7*(107%E0AP!UzVq9jx`>>~CQ zS@<3gt8$o9vD7D-bLgQf(M)pCpYV|pSWcM8DBMYyRQdh;PQd%bDf7vleb_Gh9>*|d zGf~blKseb(#$Y0u(Tt;EK*L(SDGTCsaWNv()9@}Cww*zz%r$|EaS615>VTpqQB|Pg zTNmo_+wUleeP?+>OE3Dnsz5E8RY5cr@`u<=2#$zNBn&r2O=AU1^rFjntOtL~ya!UE zwfx`2;i-5HU&1B%alM>2z=||OlJH9^;>+aHHYiF)_?n#|10bhYan!3B8?JA&_%mc? z;BVRpLs^NW;C9vq&oZobN-fY~yh|DFBYbWV)<=sfX$O#vwh~nNP9lLnKTgu{ZA1%? Z^J-MD^C?Ycd#^yVsLJi4E?N diff --git a/marking_gui/obj/Debug/marking_gui.pdb b/marking_gui/obj/Debug/marking_gui.pdb index e47e03177f35e140aed94cac96525f9ea492129b..7045d972adab1767c82ca1da7767292f5b5c61a5 100644 GIT binary patch delta 28735 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 delta 24146 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 vM@`bi~69z*+A