From eb2365ffe714065ca750cc3892688be481e9b290 Mon Sep 17 00:00:00 2001 From: kje97 Date: Tue, 24 Jun 2025 09:41:56 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=84=A4=EC=A0=95=20=EB=A1=9C=EB=93=9C?= =?UTF-8?q?=20=EC=99=84=EB=A3=8C=20=ED=9B=84=20=EC=8B=9C=EB=A6=AC=EC=96=BC?= =?UTF-8?q?=20=ED=8F=AC=ED=8A=B8=20=EC=B4=88=EA=B8=B0=ED=99=94=ED=95=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 모든 설정 로드 후 시리얼 포트를 초기화하는 InitializeSerialAfterLoad() 함수 추가 - loadConfig에서 즉시 시리얼 포트 연결하는 로직 제거 - 라디오 버튼 설정이 완전히 로드된 후 시리얼 포트 초기화되도록 수정 - QW 모드 감지 오류 해결 --- SalesPacking_MES_API_Project/mainForm.vb | 43 ++++++++++++++++++------ 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/SalesPacking_MES_API_Project/mainForm.vb b/SalesPacking_MES_API_Project/mainForm.vb index 9a0addd..896d04b 100644 --- a/SalesPacking_MES_API_Project/mainForm.vb +++ b/SalesPacking_MES_API_Project/mainForm.vb @@ -301,6 +301,8 @@ Public Class mainForm dgvRefresh() fullLoad(sender, e) + ' 모든 설정 로드 후에 시리얼 포트 초기화 + InitializeSerialAfterLoad() If rdbMode2.Checked = True Then loadConfig(saveList.lastCount) End If @@ -311,6 +313,23 @@ Public Class mainForm txbProdSN.Focus() End Sub + Private Sub InitializeSerialAfterLoad() + Try + If ckbWeight.Checked = True AndAlso cboComPort.SelectedItem IsNot Nothing Then + Dim serialName As String = cboComPort.SelectedItem.ToString() + If serialName <> "" Then + 'Debug.Print("설정 로드 완료 후 시리얼 초기화") + 'Debug.Print("serialName: [" & serialName & "]") + 'Debug.Print("QW 체크 여부: " & rdbWeightQW.Checked) + 'Debug.Print("CAS 체크 여부: " & rdbWeightCAS.Checked) + openSerial(serialName) + End If + End If + Catch ex As Exception + Debug.Print("시리얼 초기화 오류: " & ex.Message) + End Try + End Sub + Private Sub StartFormSet() Me.Text = projectName & projectVer pnOption.Visible = False @@ -5108,8 +5127,8 @@ Public Class mainForm Try If ckbWeight.Checked = True Then If serialName <> "" Or serialName <> Nothing Then - Debug.Print("serialName: [" & serialName & "]") - Debug.Print("QW 체크 여부: " & rdbWeightQW.Checked) + 'Debug.Print("serialName: [" & serialName & "]") + 'Debug.Print("QW 체크 여부: " & rdbWeightQW.Checked) If rdbWeightQW.Checked Then ' QW 모드: QWSerialPort 사용 @@ -5376,16 +5395,18 @@ Public Class mainForm LoadComport() + 'For cnt = 0 To cboComPort.Items.Count - 1 + ' cboComPort.SelectedIndex = cnt + ' If parsingCk = cboComPort.SelectedItem Then + ' openSerial(parsingCk) + ' End If + 'Next For cnt = 0 To cboComPort.Items.Count - 1 - cboComPort.SelectedIndex = cnt - If parsingCk = cboComPort.SelectedItem Then - 'openSerial(parsingCk) - ' QW 모드라면 라디오 버튼 체크 후 한 번만 openSerial 호출 - If rdbWeightQW.Checked = True Then - openSerial(parsingCk) ' parsingCk는 포트명(예: "COM5")이어야 함 - Else - openSerial(parsingCk) - End If + If parsingCk = cboComPort.Items(cnt).ToString() Then + cboComPort.SelectedIndex = cnt + ' 여기서 즉시 시리얼 포트를 열지 않고 선택만 함 + ' openSerial(parsingCk) <- 이 부분을 제거 + Exit For End If Next End If