feat/qw-scale-integration #9

Merged
kje97 merged 7 commits from feat/qw-scale-integration into master 2025-06-24 15:56:45 +09:00
Showing only changes of commit ecadd4c180 - Show all commits

View File

@ -300,9 +300,6 @@ Public Class mainForm
varDataSetting() varDataSetting()
dgvRefresh() dgvRefresh()
fullLoad(sender, e) fullLoad(sender, e)
' 모든 설정 로드 후에 시리얼 포트 초기화
InitializeSerialAfterLoad()
If rdbMode2.Checked = True Then If rdbMode2.Checked = True Then
loadConfig(saveList.lastCount) loadConfig(saveList.lastCount)
End If End If
@ -313,23 +310,6 @@ Public Class mainForm
txbProdSN.Focus() txbProdSN.Focus()
End Sub 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() Private Sub StartFormSet()
Me.Text = projectName & projectVer Me.Text = projectName & projectVer
pnOption.Visible = False pnOption.Visible = False
@ -5123,12 +5103,28 @@ Public Class mainForm
End If End If
End Sub End Sub
' 추가: 설정 변경시 시리얼 포트 재연결을 위한 함수
Private Sub ReconnectSerialPort()
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)
openSerial(serialName)
End If
End If
Catch ex As Exception
Debug.Print("시리얼 포트 재연결 오류: " & ex.Message)
End Try
End Sub
Private Function openSerial(serialName As String) Private Function openSerial(serialName As String)
Try Try
If ckbWeight.Checked = True Then If ckbWeight.Checked = True Then
If serialName <> "" Or serialName <> Nothing Then If serialName <> "" Or serialName <> Nothing Then
'Debug.Print("serialName: [" & serialName & "]") 'Debug.Print("serialName: [" & serialName & "]")
'Debug.Print("QW 체크 여부: " & rdbWeightQW.Checked)
If rdbWeightQW.Checked Then If rdbWeightQW.Checked Then
' QW 모드: QWSerialPort 사용 ' QW 모드: QWSerialPort 사용
@ -5378,6 +5374,7 @@ Public Class mainForm
Case saveList.comport Case saveList.comport
Dim textNum As Int16 = UBound(Split(readData, "^")) Dim textNum As Int16 = UBound(Split(readData, "^"))
Dim parsingCk As String Dim parsingCk As String
Dim savedComPort As String = ""
For i = 0 To textNum For i = 0 To textNum
@ -5389,6 +5386,7 @@ Public Class mainForm
End If End If
If i = 0 Then If i = 0 Then
savedComPort = parsingCk ' COM 포트 정보 저장
cboComPort.Items.Clear() cboComPort.Items.Clear()
If ckbWeight.Checked = True Then If ckbWeight.Checked = True Then
@ -5404,8 +5402,6 @@ Public Class mainForm
For cnt = 0 To cboComPort.Items.Count - 1 For cnt = 0 To cboComPort.Items.Count - 1
If parsingCk = cboComPort.Items(cnt).ToString() Then If parsingCk = cboComPort.Items(cnt).ToString() Then
cboComPort.SelectedIndex = cnt cboComPort.SelectedIndex = cnt
' 여기서 즉시 시리얼 포트를 열지 않고 선택만
' openSerial(parsingCk) <- 부분을 제거
Exit For Exit For
End If End If
Next Next
@ -5480,6 +5476,16 @@ Public Class mainForm
errorGen("Config 파일을 불러오는 과정에서 오류가 발생하였습니다.") errorGen("Config 파일을 불러오는 과정에서 오류가 발생하였습니다.")
End If End If
Next Next
' 모든 설정이 로드된 시리얼 포트 연결 시도
If savedComPort <> "" AndAlso ckbWeight.Checked = True Then
' UI 업데이트가 완료되도록 잠시 대기 실행
Application.DoEvents()
'Debug.Print("=== 설정 로드 완료 후 시리얼 포트 연결 ===")
'Debug.Print("저장된 COM포트: " & savedComPort)
'Debug.Print("QW 체크 여부: " & rdbWeightQW.Checked)
'Debug.Print("CAS 체크 여부: " & rdbWeightCAS.Checked)
openSerial(savedComPort)
End If
Case saveList.divideCode Case saveList.divideCode
Dim textNum As Int16 = UBound(Split(readData, "^")) Dim textNum As Int16 = UBound(Split(readData, "^"))
@ -5545,6 +5551,16 @@ Public Class mainForm
Private Sub ckbWeight_Click(sender As Object, e As EventArgs) Handles ckbWeight.Click, chbUseBarcode.Click, ckbPrinter.Click, ckbAPIuse.Click, rdbMode1.Click, rdbMode2.Click, rdbAuto1.Click, rdbAuto2.Click, rdbWeightAuto.Click, rdbWeightCAS.Click, rdbWeightQW.Click, rdbMesDbAPI.Click, rdbMesDbPg.Click, rdbNew.Click, rdbBef.Click Private Sub ckbWeight_Click(sender As Object, e As EventArgs) Handles ckbWeight.Click, chbUseBarcode.Click, ckbPrinter.Click, ckbAPIuse.Click, rdbMode1.Click, rdbMode2.Click, rdbAuto1.Click, rdbAuto2.Click, rdbWeightAuto.Click, rdbWeightCAS.Click, rdbWeightQW.Click, rdbMesDbAPI.Click, rdbMesDbPg.Click, rdbNew.Click, rdbBef.Click
ckbChange = True ckbChange = True
' 중량 관련 라디오 버튼이 변경된 경우 시리얼 포트 재연결
If TypeOf sender Is RadioButton Then
Dim changedRadio As RadioButton = DirectCast(sender, RadioButton)
If changedRadio.Name.StartsWith("rdbWeight") AndAlso changedRadio.Checked Then
' 잠시 대기 재연결 (UI 업데이트 완료 )
Application.DoEvents()
ReconnectSerialPort()
End If
End If
End Sub End Sub
Private Sub btnReg_Click(sender As Object, e As EventArgs) Handles btnReg.Click Private Sub btnReg_Click(sender As Object, e As EventArgs) Handles btnReg.Click