store-TDTestExecutor/frmTD_JIG.vb

6101 lines
241 KiB
VB.net
Raw Normal View History

Imports System.Drawing.Printing
Imports System.IO
Imports System.IO.Ports
Imports System.Management
Imports System.Threading
Imports uPLibrary.Networking.M2Mqtt
Imports System.Linq
Imports System.Math
Imports System.Runtime.InteropServices.ComTypes
Imports System.Text
Public Class frmTD_JIG
Public Const TESTER_VER As String = "2.4.1"
Public ShowDetailLog As Boolean = False
Public RunDemoMode As Boolean = False
Public EnableSetup As Boolean = False
Public cmdMessage As String
Public rxMessage As String
Public cmpMessage As String = "SUCCESS"
Public tmpCmdMessage As String
Public RunStartTick As Long
Public RunEndTick As Long
Public Const MeasSTART As Boolean = True
Public Const MeasEND As Boolean = False
Public Const SoundEnd As String = "0"
Public Const SoundStart As String = "1"
Public Const SoundError As String = "2"
Public TestStep As Integer
Public DevNum As Integer = 0
Public DispToggle As Boolean = False
Public Const TimeLine As Long = 500
'Parametar 변수
Public ParaComport As String
Public ParaScopeID As String
Public Const CmdNone As String = "none"
Public Title_Text As String
Public AutoAgingCnt As Long
Public CkbNoRun As Boolean
Private txtPVSN As String
Private SettingMeasure As String
Private IQCStart As Boolean = False
Private CalModeOn As Boolean = False
Public Enum CART_TYPE
CART_NONE = 0
PRO_FACE = 11
PRO_EYE = 12
PRO_BODY = 13
LUX_FACE = 21
LUX_EYE = 22
LUX_BODY = 23
MAX_SET = 30
ALPHA_FACE = 41
ALPHA_EYE = 42
ALPHA_BODY = 43
MAX_CART_TYPE
End Enum
Public CartType As CART_TYPE
Public CartTypeName(CART_TYPE.MAX_CART_TYPE) As String
Public GradeStop As Integer = 0
Public IQCGradeName() As String = {"N/A", "IQC_ProCnt", "IQC_LuxCnt", "IQC_EyeCnt"}
Public txbIQC_GCnt(MODEL_NAME.MAX_MODEL_NUM) As TextBox
Public txbIQC_RCnt(RELAY_NUM.MAX_RELAY_NUM) As TextBox
Public txbPD1_GCnt(MODEL_NAME.MAX_MODEL_NUM) As TextBox
Public txbPD1_RCnt(RELAY_NUM.MAX_RELAY_NUM) As TextBox
Public Structure PreCnt
Public TotalCnt As Long
Public OKCnt As Long
Public NGCnt As Long
Public ProCnt As Long
Public LuxCnt As Long
Public EyeCnt As Long
Public R1Cnt As Long
Public R2Cnt As Long
Public R3Cnt As Long
Public R4Cnt As Long
Public R5Cnt As Long
Public R6Cnt As Long
Public R7Cnt As Long
Public R8Cnt As Long
Public R9Cnt As Long
Public R10Cnt As Long
Public ReTotalCnt As Long
Public ReOkCnt As Long
Public ReNgCnt As Long
End Structure
Public PreCnt_IQC As PreCnt
Public PreCnt_PD1 As PreCnt
Public ProMAX As Double = 1.83
Public ProTYP As Double = 1.78
Public ProMIN As Double = 1.73
Public LuxMAX As Double = 1.72
Public LuxTYP As Double = 1.67
Public LuxMIN As Double = 1.62
Public EyeMAX As Double = 1.61
Public EyeTYP As Double = 1.56
Public EyeMIN As Double = 1.51
Public RELAY_C() As String
Private RelayTxb(10) As TextBox
Private RelayCnt() As Int16
Public QC_Current As Double
Public PD2_Current As Double
Public CmdTime As Long
Public EnableCmdTime As Boolean = False
Public InputCnt As Long
Public Const InputCntVal As Integer = 10
Private IQCValueError As Double
Private myMgr As Ivi.Visa.Interop.ResourceManager
Private myScope As Ivi.Visa.Interop.FormattedIO488
Public varQueryResult As Object
Public strQueryResult As String
Private DSOX1102_DEV1 As String = "USB0::0x2A8D::0x1797::CN56526457::0::INSTR"
Private DSOX1102_DEV2 As String = "USB0::0x2A8D::0x178B::CN59280175::0::InStr"
Private DSOX1102_DEV3 As String = "USB0::0x2A8D::0x1797::CN56526457::0::INSTR"
Private MethodAVG As String = "MEASure:VAVerage?"
Private MethodMAX As String = "MEASure:VMAX?"
Private MethodTOP As String = "MEASure:VTOP?"
Private cmd As String
Private Delegate Sub PrintDelegate()
Private PrintRunDelegate As PrintDelegate
Public MQTClient As MqttClient
Public mqttBroker As String = String.Empty
Public mqttTopic As String = String.Empty
Private Enum TestStepList
MAX_First_OK = 16
MAX_First_NG
MAX_RE_OK
MAX_RE_NG
DUAL_First_OK = 21
DUAL_First_NG
DUAL_RE_OK
DUAL_RE_NG
End Enum
Public Structure TestStepValue
Public First_Ok As Int16
Public First_Ng As Int16
Public Re_OK As Int16
Public RE_Ng As Int16
End Structure
Private TeststepSet As TestStepValue
Private Sub print_on(printtext As String)
Try
Dim doc As bpac.Document = New bpac.Document
If printer_state(txbPrintApply.Text) Then
Dim print_address As String = txbLabel1.Text
doc.Open(print_address)
Dim print_name As Boolean = doc.SetPrinter(txbPrintApply.Text, True)
doc.GetObject(txbCode1.Text).Text = printtext
doc.GetObject(txbText1.Text).Text = printtext
doc.StartPrint("", bpac.PrintOptionConstants.bpoDefault)
doc.PrintOut(nudPrintCount.Value, bpac.PrintOptionConstants.bpoDefault)
doc.EndPrint()
doc.Close()
Else
MsgBox("프린터 연결이 잘못되었습니다. 전원이나 케이블을 확인하여 주십시오.", vbExclamation)
Exit Sub
End If
Catch ex As Exception
MsgBox("Print Error : " & ex.Message, vbCritical)
Exit Sub
End Try
End Sub
Private Function printer_state(printer As String) As Boolean
Dim scope As ManagementScope = New ManagementScope("\root\cimv2")
scope.Connect()
Dim searcher As ManagementObjectSearcher = New ManagementObjectSearcher("SELECT * FROM Win32_Printer")
Dim printName As String = ""
For Each printobj As ManagementObject In searcher.Get
printName = printobj("Name").ToString
If printName.Equals(printer) Then
If printobj("WorkOffline").ToString.ToLower.Equals("true") Then
Return False
Else
Return True
End If
End If
Next
Return False
End Function
Private Sub Print_Read_ini()
Dim objReader As System.IO.StreamReader
Dim configStr As String
Dim FilePath As String = System.AppDomain.CurrentDomain.BaseDirectory() & "\Config"
If Dir(FilePath, vbDirectory) = "" Then
MkDir(FilePath)
End If
Dim FileName As String = FilePath & "\" & "TD_Select_Printer_Config" & ".ini"
If File.Exists(FileName) Then
objReader = New System.IO.StreamReader(FileName, True)
configStr = objReader.ReadLine()
objReader.Close()
txbPrintApply.Text = Mid(configStr, 1, InStr(configStr, ",") - 1)
configStr = Mid(configStr, InStr(configStr, ",") + 1, configStr.Length)
txbLabel1.Text = Mid(configStr, 1, InStr(configStr, ",") - 1)
configStr = Mid(configStr, InStr(configStr, ",") + 1, configStr.Length)
txbCode1.Text = Mid(configStr, 1, InStr(configStr, ",") - 1)
configStr = Mid(configStr, InStr(configStr, ",") + 1, configStr.Length)
txbText1.Text = Mid(configStr, 1, InStr(configStr, ",") - 1)
configStr = Mid(configStr, InStr(configStr, ",") + 1, configStr.Length)
nudPrintCount.Text = Mid(configStr, 1, InStr(configStr, ",") - 1)
configStr = Mid(configStr, InStr(configStr, ",") + 1, configStr.Length)
ckbWarPnt.Checked = Mid(configStr, 1, configStr.Length)
End If
End Sub
Private Function Read_ini() As Boolean
Dim FilePath As String
Dim FileName As String
Dim ConifgStr As String
Dim DevTemp As String
Dim ShotCount As String
Dim CartTemp As String
Dim objReader As System.IO.StreamReader
Dim tmpStr As String
On Error GoTo RD_File_Error
FilePath = System.AppDomain.CurrentDomain.BaseDirectory() & "\Config"
'디렉토리가 없을 경우
If Dir(FilePath, vbDirectory) = "" Then
MkDir(FilePath)
End If
FileName = FilePath & "\" & "TD_Select_Config" & ".ini"
If File.Exists(FileName) = True Then
objReader = New System.IO.StreamReader(FileName, True)
ConifgStr = objReader.ReadLine()
objReader.Close()
DevNum = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
If DevNum = "1" Then
rdbIQC.Checked = True
ElseIf DevNum = "2" Then
rdbProduct1.Checked = True
ElseIf DevNum = "3" Then
rdbProduct2.Checked = True
ElseIf DevNum = "4" Then
rdbProduct3.Checked = True
Else
DevNum = 0
End If
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
cboComPort.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbScopeID.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbMeasureDelay.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbTimeout.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbOntime.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbProMax.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbProTyp.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbProMin.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbLuxMax.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbLuxTyp.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbLuxMin.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbEyeMax.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbEyeTyp.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbEyeMin.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ReDim RELAY_C(10)
RELAY_C(0) = "N/A"
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbRelay1.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
RELAY_C(1) = txbRelay1.Text
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbRelay2.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
RELAY_C(2) = txbRelay2.Text
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbRelay3.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
RELAY_C(3) = txbRelay3.Text
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbRelay4.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
RELAY_C(4) = txbRelay4.Text
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbRelay5.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
RELAY_C(5) = txbRelay5.Text
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbRelay6.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
RELAY_C(6) = txbRelay6.Text
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbRelay7.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
RELAY_C(7) = txbRelay7.Text
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbRelay8.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
RELAY_C(8) = txbRelay8.Text
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbRelay9.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
RELAY_C(9) = txbRelay9.Text
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbRelay10.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
RELAY_C(10) = txbRelay10.Text
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbHSCALE.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbHPOS.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbVSCALE.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbVPOS.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
tmpStr = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
If tmpStr = "AVG" Then
rdbAvg.Checked = True
ElseIf tmpStr = "MAX" Then
rdbMax.Checked = True
ElseIf tmpStr = "TOP" Then
rdbTop.Checked = True
End If
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbErrorFactor.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbOffsetValue.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbStartWaitDelay.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbWaitDelay.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbValueError.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbIQC_DummyShotCnt.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbMotorOnTime.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbKProMax.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbKProTyp.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbKProMin.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbKLuxMax.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbKLuxTyp.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbKLuxMin.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbKEyeMax.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbKEyeTyp.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
txbEyeMin.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
nudmat_1.Value = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
nudmat_2.Value = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
nudmat_3.Value = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
nudmat_4.Value = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
nudmat_5.Value = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
Dim testMode As Boolean
If UBound(Split(ConifgStr, ",")) > 0 Then
testMode = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
Else
testMode = ConifgStr
End If
ConifgStr = Mid(ConifgStr, InStr(ConifgStr, ",") + 1, Len(ConifgStr))
If UBound(Split(ConifgStr, ",")) > 0 Then
txbMinValue.Text = Mid(ConifgStr, 1, InStr(ConifgStr, ",") - 1)
Else
txbMinValue.Text = ConifgStr
End If
ParaComport = cboComPort.Text
ParaScopeID = "USB0::0x2A8D::" & txbScopeID.Text & "::0::INSTR"
If testMode = True Then
rdbCmat_10.Checked = True
rdbCmat_5.Checked = False
Else
rdbCmat_10.Checked = False
rdbCmat_5.Checked = True
End If
If rdbCmat_5.Checked = True Then
ReDim RelayCnt(5)
RelayCnt(1) = nudmat_1.Value
RelayCnt(2) = nudmat_2.Value
RelayCnt(3) = nudmat_3.Value
RelayCnt(4) = nudmat_4.Value
RelayCnt(5) = nudmat_5.Value
Else
ReDim RelayCnt(10)
For i = 1 To 10
RelayCnt(i) = i
Next
End If
lblR1CntIQC.Text = txbRelay1.Text
lblR1CntPD1.Text = txbRelay1.Text
lblR1CntIQC.Refresh()
lblR1CntPD1.Refresh()
lblR2CntIQC.Text = txbRelay2.Text
lblR2CntPD1.Text = txbRelay2.Text
lblR2CntIQC.Refresh()
lblR2CntPD1.Refresh()
lblR3CntIQC.Text = txbRelay3.Text
lblR3CntPD1.Text = txbRelay3.Text
lblR3CntIQC.Refresh()
lblR3CntPD1.Refresh()
lblR4CntIQC.Text = txbRelay4.Text
lblR4CntPD1.Text = txbRelay4.Text
lblR4CntIQC.Refresh()
lblR4CntPD1.Refresh()
lblR5CntIQC.Text = txbRelay5.Text
lblR5CntPD1.Text = txbRelay5.Text
lblR5CntIQC.Refresh()
lblR5CntPD1.Refresh()
lblR6CntIQC.Text = txbRelay6.Text
lblR6CntPD1.Text = txbRelay6.Text
lblR6CntIQC.Refresh()
lblR6CntPD1.Refresh()
lblR7CntIQC.Text = txbRelay7.Text
lblR7CntPD1.Text = txbRelay7.Text
lblR7CntIQC.Refresh()
lblR7CntPD1.Refresh()
lblR8CntIQC.Text = txbRelay8.Text
lblR8CntPD1.Text = txbRelay8.Text
lblR8CntIQC.Refresh()
lblR8CntPD1.Refresh()
lblR9CntIQC.Text = txbRelay9.Text
lblR9CntPD1.Text = txbRelay9.Text
lblR9CntIQC.Refresh()
lblR9CntPD1.Refresh()
lblR10CntIQC.Text = txbRelay10.Text
lblR10CntPD1.Text = txbRelay10.Text
lblR10CntIQC.Refresh()
lblR10CntPD1.Refresh()
txbIQC_GCnt(1) = txbProCnt
txbIQC_GCnt(2) = txbLuxCnt
txbIQC_GCnt(3) = txbEyeCnt
txbIQC_RCnt(1) = txbR1CntIQC
txbIQC_RCnt(2) = txbR2CntIQC
txbIQC_RCnt(3) = txbR3CntIQC
txbIQC_RCnt(4) = txbR4CntIQC
txbIQC_RCnt(5) = txbR5CntIQC
txbIQC_RCnt(6) = txbR6CntIQC
txbIQC_RCnt(7) = txbR7CntIQC
txbIQC_RCnt(8) = txbR8CntIQC
txbIQC_RCnt(9) = txbR9CntIQC
txbIQC_RCnt(10) = txbR10CntIQC
txbPD1_GCnt(1) = txbProCntPD1
txbPD1_GCnt(2) = txbLuxCntPD1
txbPD1_GCnt(3) = txbEyeCntPD1
txbPD1_GCnt(4) = txbMaxCntPD1
txbPD1_RCnt(1) = txbR1CntPD1
txbPD1_RCnt(2) = txbR2CntPD1
txbPD1_RCnt(3) = txbR3CntPD1
txbPD1_RCnt(4) = txbR4CntPD1
txbPD1_RCnt(5) = txbR5CntPD1
txbPD1_RCnt(6) = txbR6CntPD1
txbPD1_RCnt(7) = txbR7CntPD1
txbPD1_RCnt(8) = txbR8CntPD1
txbPD1_RCnt(9) = txbR9CntPD1
txbPD1_RCnt(10) = txbR10CntPD1
cboGrade.Items.Add("PRO")
cboGrade.Items.Add("LUX")
cboGrade.Items.Add("EYE")
cboCapacitor.Items.Add(txbRelay1.Text)
cboCapacitor.Items.Add(txbRelay2.Text)
cboCapacitor.Items.Add(txbRelay3.Text)
cboCapacitor.Items.Add(txbRelay4.Text)
cboCapacitor.Items.Add(txbRelay5.Text)
cboCapacitor.Items.Add(txbRelay6.Text)
cboCapacitor.Items.Add(txbRelay7.Text)
cboCapacitor.Items.Add(txbRelay8.Text)
cboCapacitor.Items.Add(txbRelay9.Text)
cboCapacitor.Items.Add(txbRelay10.Text)
CartTypeName(CART_TYPE.CART_NONE) = "입력 대기"
CartTypeName(CART_TYPE.PRO_FACE) = "PRO FACE"
CartTypeName(CART_TYPE.PRO_EYE) = "PRO EYE"
CartTypeName(CART_TYPE.LUX_FACE) = "LUX FACE"
CartTypeName(CART_TYPE.LUX_EYE) = "LUX EYE"
Return True
Else
MsgBox("검사기 정보가 없습니다." & vbCrLf & "검사기 설정을 진행하세요.", vbCritical, "DUALSONIC T/D Selecter Tester Manager")
frmLogin.ShowDialog()
If EnableSetup Then
loadSetupWindows()
Else
MsgBox("권한이 있는지 확인하세요.")
End
End If
EnableSetup = False
Return False
End If
Exit Function
RD_File_Error:
MsgBox("검사기 정보가 일치하지 않습니다." & vbCrLf & "검사기 설정을 재설정 해주세요.", vbCritical, "DUALSONIC T/D Selecter Tester Manager")
frmLogin.ShowDialog()
If EnableSetup Then
loadSetupWindows()
Else
MsgBox("권한이 있는지 확인하세요.")
End
End If
EnableSetup = False
Return False
End Function
Private Sub Save_ini(SaveType As Boolean)
Dim FilePath As String
Dim FileName As String
Dim ConfigStr As String
Dim objWriter As System.IO.StreamWriter
Dim tmpStr, testMode As String
On Error GoTo WR_File_Error
FilePath = System.AppDomain.CurrentDomain.BaseDirectory() & "\Config"
'디렉토리가 없을 경우
If Dir(FilePath, vbDirectory) = "" Then
MkDir(FilePath)
End If
If SaveType = True Then
FileName = FilePath & "\" & "TD_Select_Printer_Config" & ".ini"
ConfigStr = txbPrintApply.Text & "," & txbLabel1.Text & "," & txbCode1.Text & "," & txbText1.Text & "," & nudPrintCount.Value & "," & ckbWarPnt.Checked
Else
FileName = FilePath & "\" & "TD_Select_Config" & ".ini"
If rdbIQC.Checked Then
DevNum = 1
ElseIf rdbProduct1.Checked Then
DevNum = 2
ElseIf rdbProduct2.Checked Then
DevNum = 3
ElseIf rdbProduct3.Checked Then
DevNum = 4
End If
If rdbAvg.Checked Then
tmpStr = "AVG"
ElseIf rdbMax.Checked = True Then
tmpStr = "MAX"
Else
tmpStr = "TOP"
End If
If rdbCmat_10.Checked Then
testMode = True
Else
testMode = False
End If
ConfigStr = DevNum & "," & cboComPort.Text & "," & txbScopeID.Text & "," & txbMeasureDelay.Text & "," & txbTimeout.Text & "," & txbOntime.Text & "," & txbProMax.Text & "," & txbProTyp.Text & "," & txbProMin.Text & "," & txbLuxMax.Text & "," & txbLuxTyp.Text & "," & txbLuxMin.Text & "," & txbEyeMax.Text & "," & txbEyeTyp.Text & "," & txbEyeMin.Text & "," & txbRelay1.Text & "," & txbRelay2.Text & "," & txbRelay3.Text & "," & txbRelay4.Text & "," & txbRelay5.Text & "," & txbRelay6.Text & "," & txbRelay7.Text & "," & txbRelay8.Text & "," & txbRelay9.Text & "," & txbRelay10.Text & "," & txbHSCALE.Text & "," & txbHPOS.Text & "," & txbVSCALE.Text & "," & txbVPOS.Text & "," & tmpStr & "," & txbErrorFactor.Text & "," & txbOffsetValue.Text & "," & txbStartWaitDelay.Text & "," & txbWaitDelay.Text & "," & txbValueError.Text & "," & txbIQC_DummyShotCnt.Text & "," & txbMotorOnTime.Text & "," & txbKProMax.Text & "," & txbKProTyp.Text & "," & txbKProMin.Text & "," & txbKLuxMax.Text & "," & txbKLuxTyp.Text & "," & txbKLuxMin.Text & "," & txbKEyeMax.Text & "," & txbKEyeTyp.Text & "," & txbKEyeMin.Text & "," & nudmat_1.Text & "," & nudmat_2.Text & "," & nudmat_3.Text & "," & nudmat_4.Text & "," & nudmat_5.Text & "," & testMode & "," & txbMinValue.Text
End If
System.IO.File.Delete(FileName)
objWriter = New System.IO.StreamWriter(FileName, True)
objWriter.Flush()
objWriter.WriteLine(ConfigStr)
objWriter.Close()
Exit Sub
WR_File_Error:
MsgBox("Config Save Fail!")
End Sub
Private Sub PrintSaveData()
If txbLabel1.Text.Replace(" ", "") = "" Or txbCode1.Text.Replace(" ", "") = "" Or txbPrintApply.Text.Replace(" ", "") = "" Or txbText1.Text.Replace(" ", "") = "" Then
MsgBox("바코드 인쇄 프린터 설정란에 빈 칸이 존재합니다. 빈 칸을 채워주십시오.", vbExclamation)
Exit Sub
End If
Save_ini(True)
End Sub
Private Sub Save_CSV(SaveData As String)
Dim FilePath As String
Dim syear As String
Dim smonth As String
Dim sday As String
Dim FileCnt As Long
Dim runFlag As Boolean = True
Dim FileName As String
Dim ItemList As String = ""
Dim objWriter As System.IO.StreamWriter
On Error GoTo WR_File_Error
syear = DateAndTime.Year(Now)
smonth = DateAndTime.Month(Now)
sday = DateAndTime.Day(Now)
FilePath = System.AppDomain.CurrentDomain.BaseDirectory()
If DevNum = 1 Then
FilePath = FilePath & "LogData\IQC"
ItemList = "Date,Time,TD_SN,TestStep,Ok_Ng,Grade,C_Value,Current,RL1_Value,RL2_Value,RL3_Value,RL4_Value,RL5_Value,RL6_Value,RL7_Value,RL8_Value,RL9_Value,RL10_Value,TD_IN_DATE,TD_Frequency,TD_Impedance,TD_Capacitance,TD_Resistance,Total_Count,OK_Count,NG_Count,PRO_Count,LUX_Count,EYE_Count,RL1_Count,RL2_Count,RL3_Count,RL4_Count,RL5_Count,RL6_Count,RL7_Count,RL8_Count,RL9_Count,RL10_Count,ReTotal_Count,ReOk_Count,ReNg_Count"
ElseIf DevNum = 2 Then
FilePath = FilePath & "LogData\PD1"
ItemList = "Date,Time,TD_SN,TestStep,TD_DATE,TD_Frequency,TD_Impedance,TD_Capacitance,TD_Resistance,Grade,C_Value,Total_Count,OK_Count,NG_Count,PRO_Count,LUX_Count,EYE_Count,RL1_Count,RL2_Count,RL3_Count,RL4_Count,RL5_Count,RL6_Count,RL7_Count,RL8_Count,RL9_Count,RL10_Count"
ElseIf DevNum = 3 Then
FilePath = FilePath & "LogData\PD2"
ElseIf DevNum = 4 Then
FilePath = FilePath & "LogData\PD3"
End If
'디렉토리가 없을 경우
If Dir(FilePath, vbDirectory) = "" Then
MkDir(FilePath)
End If
FileName = FilePath & "\" & DateAndTime.Year(Now) & "_" & DateAndTime.Month(Now) & "_" & DateAndTime.Day(Now) & ".csv"
If File.Exists(FileName) = True Then
objWriter = New System.IO.StreamWriter(FileName, True)
objWriter.WriteLine(SaveData)
Else
objWriter = New System.IO.StreamWriter(FileName, True)
objWriter.WriteLine(ItemList)
objWriter.WriteLine(SaveData)
End If
objWriter.Close()
Exit Sub
WR_File_Error:
MsgBox("Logdata save fail!")
End Sub
Sub cmdDisplay(strDisp As String)
Dim dispStr As String
dispStr = (Today + " " + TimeOfDay + " " + strDisp + vbCrLf)
If DevNum = 1 Then
txbCmdWindow.AppendText(dispStr)
txbCmdWindow.Refresh()
ElseIf DevNum = 3 Then
txbCmdWindowP2.AppendText(dispStr)
txbCmdWindowP2.Refresh()
Else
End If
End Sub
Private Sub FormLoadInfo()
Dim FormWidth, FormHeight As Integer
Me.Hide()
'Me.WindowState = FormWindowState.Maximized
FormWidth = Val(Me.Width)
FormHeight = Val(Me.Height)
If FormWidth < 1100 And FormHeight < 800 Then
'Me.MaximumSize = New Size(FormWidth, FormHeight)
Me.Width = FormWidth
Me.Height = FormHeight
Else
'Me.WindowState = FormWindowState.Normal
'Me.MaximumSize = New Size(1040, 784)
Me.Width = 1040
Me.Height = 784
End If
Me.Show()
Me.Refresh()
gpbTime.Refresh()
lblTime.Refresh()
gpbConfig.Refresh()
chbUseBarcode.Refresh()
chbAutoMeasure.Refresh()
btnSetup.Refresh()
btnExit.Refresh()
gpbSpec.Refresh()
txbPV_SN.Refresh()
lblPV_SN.Refresh()
txbPV_Date.Refresh()
lblPV_Date.Refresh()
txbPV_Freq.Refresh()
lblPV_Freq.Refresh()
txbPV_Z.Refresh()
lblPV_Z.Refresh()
txbPV_C.Refresh()
lblPV_C.Refresh()
txbPV_R.Refresh()
lblPV_R.Refresh()
cmdDisplay("DUALSONIC T/D Select JIG Start!")
End Sub
Private Sub loadSetupWindows()
'Me.Size = New Size(1500, 780)
Me.Size = New Size(1500, 880)
EnableSetup = True
gpbSetupWindow.Visible = True
gpbSetupWindow.Location = New Size(1, 9)
'gpbSetupWindow.Size = New Size(1475, 734)
gpbSetupWindow.Size = New Size(1475, 800)
DefaultTextColor()
End Sub
Private Function ParametarLoad() As Boolean
Print_Read_ini()
Return Read_ini()
End Function
Private Sub LoadComportName()
Dim portname() As String
Dim i As Integer
Try
cboComPort.Items.Clear()
portname = SerialPort.GetPortNames
For i = 1 To portname.Length
cboComPort.Items.Add(portname(i - 1))
Next i
cboComPort.Text = "PRESS!"
Catch ex As Exception
MsgBox("COM 포트 에러" & vbCrLf & "", vbOK + vbCritical, "DUALSONIC T/D Selecter Tester Manager")
ckbSerialUse.Checked = False
End Try
End Sub
Private Sub OpenSerial()
Try
If ParaComport <> "" Then
If cmdSerialPort.IsOpen = False Then
With cmdSerialPort
.PortName = ParaComport
.BaudRate = 115200
.DataBits = 8
.Parity = IO.Ports.Parity.None
.StopBits = IO.Ports.StopBits.One
.Handshake = IO.Ports.Handshake.None
End With
cmdSerialPort.Open()
cmdDisplay("Open comport complete!")
End If
Else
MsgBox("시리얼포트를 설정해주세요!" & vbCrLf & "", vbCritical, "DUALSONIC T/D Selecter Tester Manager")
ckbSerialUse.Checked = False
End If
Catch ex As Exception
MsgBox("COM 포트 에러" & vbCrLf & "", vbOK + vbCritical, "DUALSONIC T/D Selecter Tester Manager")
ckbSerialUse.Checked = False
End Try
End Sub
Private Sub loadIQCWindows()
gpbIQC.Visible = True
gpbProduct1.Visible = False
gpbProduct2.Visible = False
gpbProduct4.Visible = False
gpbIQC.Refresh()
Me.Text = Title_Text & " (T/D 수입 검사 공정)"
gpbIQC.Location = New Size(2, 230)
gpbIQC.Size = New Size(1020, 514)
gpbIQC.Refresh()
chbUseBarcode.Checked = True
chbUseBarcode.Enabled = True
chbUseBarcode.Refresh()
chbAutoMeasure.Checked = True
chbAutoMeasure.Enabled = True
chbUseBarcode.Refresh()
btnRunIQC.Enabled = False
btnRunIQC.Refresh()
txbPV_SN.Focus()
End Sub
Private Sub loadProduct1Windows()
gpbIQC.Visible = False
gpbProduct1.Visible = True
gpbProduct2.Visible = False
gpbProduct4.Visible = False
Me.Text = Title_Text & " (캐패시터 값 확인 및 C/T 주파수입력 공정)"
gpbProduct1.Location = New Size(2, 230)
gpbProduct1.Size = New Size(1020, 513)
gpbProduct1.Refresh()
txbPV_SN.Location = New Size(123, 30)
txbPV_SN.Size = New Size(364, 76)
txbPV_SN.Refresh()
lblGradePD1.Location = New Size(202, 29)
txbGradePD1.Location = New Size(406, 14)
lblCapacitorPD1.Location = New Size(202, 136)
txbCapacitorPD1.Location = New Size(406, 121)
lblCartridgePD1.Location = New Size(145, 243)
txbCartridgePD1.Location = New Size(406, 228)
lblGradePD1.Refresh()
txbGradePD1.Refresh()
lblCapacitorPD1.Refresh()
txbCapacitorPD1.Refresh()
lblCartridgePD1.Refresh()
txbCartridgePD1.Refresh()
gpbCheckGrade.Refresh()
chbUseBarcode.Checked = True
chbUseBarcode.Enabled = True
chbAutoMeasure.Checked = True
chbAutoMeasure.Enabled = True
btnRunPD1.Enabled = False
txbPV_SN.Focus()
End Sub
Private Sub loadProduct2Windows()
gpbIQC.Visible = False
gpbProduct1.Visible = False
gpbProduct2.Visible = True
gpbProduct3.Visible = False
gpbProduct4.Visible = False
gpbProduct2.Refresh()
Me.Text = Title_Text & " (카트리지 조립 후 성능검사 공정)"
chbUseBarcode.Checked = False
chbUseBarcode.Enabled = False
chbUseBarcode.Refresh()
chbAutoMeasure.Checked = True
chbAutoMeasure.Enabled = True
chbAutoMeasure.Refresh()
gpbProduct2.Location = New Size(2, 230)
gpbProduct2.Size = New Size(1018, 513)
gpbProduct2.Refresh()
''txbPV_SN.Location = New Size(105, 30)
''txbPV_SN.Size = New Size(382, 76)
''txbPV_SN.Refresh()
btnRunPD2.Enabled = False
btnRunPD2.Refresh()
txbPV_SN.Clear()
txbPV_SN.AppendText("대기중")
txbPV_SN.Refresh()
txbCmdWindowP2.Focus()
txbCmdWindowP2.Refresh()
DispToggle = True
cmdRunTimer.Enabled = True
End Sub
Private Sub initCartInfo()
Try
rdbFace.Checked = True
rdbMode1.Checked = True
If setOnTime(txbMotorOnTime.Text) Then
MsgBox("AMP 정보 초기화 실패.")
End If
Catch ex As Exception
End Try
End Sub
Private Sub loadProduct3Windows()
gpbIQC.Visible = False
gpbProduct1.Visible = False
gpbProduct2.Visible = False
gpbProduct3.Visible = True
gpbProduct4.Visible = False
Me.Text = Title_Text & " (도트 검사 공정)"
gpbProduct3.Location = New Size(2, 230)
gpbProduct3.Size = New Size(1018, 513)
gpbProduct3.Refresh()
''txbPV_SN.Location = New Size(123, 30)
''txbPV_SN.Size = New Size(364, 76)
''txbPV_SN.Refresh()
lblGradePD3.Location = New Size(202, 35)
lblGradePD3.Size = New Size(147, 77)
lblGradePD3.Refresh()
txbGradePD3.Location = New Size(406, 25)
txbGradePD3.Size = New Size(384, 95)
txbGradePD3.Refresh()
lblCapacitorPD3.Location = New Size(202, 145)
lblCapacitorPD3.Size = New Size(148, 77)
lblCapacitorPD3.Refresh()
txbCapacitorPD3.Location = New Size(406, 135)
txbCapacitorPD3.Size = New Size(384, 95)
txbCapacitorPD3.Refresh()
lblCapSelectPD3.Visible = False
pnlCapSelectPD3.Visible = False
End Sub
Private Sub initDevice()
cmdDisplay("Load Tester Parameter Complete!")
lblTime.Text = Now
If DevNum = 1 Then
ckbPlay.Text = "신규측정방식"
ckbPlay.Checked = True
ckbSerialUse.Visible = False
loadIQCWindows()
If LoadRegIQC() Then
cmdDisplay(Err.Description)
cmdDisplay("Today's measure count data check fail!")
Return
Else
LoadTextIQC()
SetDefaultText()
cmdDisplay("Today's measure count data check complete!")
End If
OpenSerial()
initScope()
ElseIf DevNum = 2 Then
ckbPlay.Text = "MAXIMUM"
ckbPlay.Checked = True
ckbSerialUse.Visible = True
loadProduct1Windows()
'If LoadRegPD1() Then
' Return
'Else
' LoadTextPD1()
' SetDefaultText()
'End If
ResetRegMesPD1()
If LoadRegPD1() Then
Return
Else
If LoadLocalCount() Then
Return
Else
LoadTextPDLocal1()
SetDefaultText()
End If
End If
gradeReset()
ElseIf DevNum = 3 Then
loadProduct2Windows()
txbCmdWindowP2.Focus()
OpenSerial()
initScope()
ElseIf DevNum = 4 Then
loadProduct3Windows()
OpenSerial()
initCartInfo()
End If
cmdDisplay("Load Windows Form Complete!")
End Sub
Private Sub frmTD_JIG_Disposed(sender As System.Object, e As System.EventArgs) Handles MyBase.Disposed
Try
If cmdSerial.Text = "닫기" Then
cmdSerialPort.Close()
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
exit_Process()
End Sub
Private Sub frmTD_JIG_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Try
Me.Text = "DUALSONIC T/D MEASURING INSTRUMENT Ver" & TESTER_VER
Title_Text = Me.Text
SetDefaultText()
If ParametarLoad() Then
FormLoadInfo()
initDevice()
End If
If frmMqtt.loadMqtt = False Then
frmMqtt.txbMqttAd.Text = String.Empty
frmMqtt.txbMqttTp.Text = String.Empty
mqttBroker = String.Empty
mqttTopic = String.Empty
frmLogin.mqttStart = False
Else
If frmLogin.mqttConnect() Then
frmLogin.mqttStart = True
Else
frmLogin.mqttStart = False
End If
End If
Catch ex As Exception
cmdDisplay("Form Load Error!")
End Try
End Sub
Sub initScope()
On Error GoTo VisaComError
If ParaScopeID <> "" Then
myMgr = New Ivi.Visa.Interop.ResourceManager
myScope = New Ivi.Visa.Interop.FormattedIO488
myScope.IO = myMgr.Open(ParaScopeID)
'myScope.IO = myMgr.Open(DSOX1102_DEV1)
myScope.IO.Clear() ' Clear the interface.
myScope.IO.Timeout = 10000 ' Set I/O communication timeout.
' Initialize - start from a known state.
Initialize()
cmdDisplay("Open Scope device complete!")
Else
MsgBox("스코프 ID를 설정해주세요!" & vbCrLf & "", vbCritical, "DUALSONIC T/D Selecter Tester Manager")
End If
Exit Sub
VisaComError:
MsgBox("스코프 설정을 확인해주세요!" & vbCrLf & "", vbCritical, "DUALSONIC T/D Selecter Tester Manager")
cmdDisplay("VISA COM Error:" & Err.Description)
'MsgBox("VISA COM Error:" + vbCrLf + Err.Description)
End Sub
Private Sub Initialize()
On Error GoTo VisaComError
' Get and display the device's *IDN? string.
strQueryResult = DoQueryString("*IDN?")
Debug.Print("Identification string: " + strQueryResult)
' Clear status and load the default setup.
DoCommand("*RST")
DoCommand("*CLS")
DoCommand(":DISPlay:ANNotation 1")
DoCommand(":DISPlay:ANNotation:Text 'JION Meditech Tester'")
DoCommand(":DISPlay:ANNotation:BACKground TRAN")
DoCommand(":MEASure:SOURce CHANnel1")
DoCommand(":CHANnel1:UNITs AMPere")
DoCommand(":CHANnel1:COUPling DC")
' 트리거 설정
DoCommand(":TRIGger:MODE EDGE") ' 트리거 모드 에지
DoCommand(":ACQuire:TYPE HRES") ' 획득 타입 하이-레졸루션
DoCommand(":TRIGger:EDGE:SLOPe POS")
DoCommand(":TRIGger:EDGE:LEVel 0.5")
DoCommand(":TRIGger:SWEep NORMal") '트리거 모드 노멀 / Auto
runScopeScale()
'DoCommand(":AutoScale")
''DoCommand(":CHANnel1:SCALe 1.0")
''DoCommand(":CHANnel1:OFFSet 1.5")
''DoCommand(":TIMebase:SCALe 0.001")
''DoCommand(":TIMebase:POSition 2.0")
''MsgBox(strQueryResult = DoQueryString("MEASure:VAVerage?"))
''MsgBox(strQueryResult = DoQueryString("MEASure:VBASe?"))
''MsgBox(strQueryResult = DoQueryString("MEASure:VMAX?"))
Exit Sub
VisaComError:
cmdDisplay("VISA COM Error:" & Err.Description)
'MsgBox("VISA COM Error:" + vbCrLf + Err.Description)
DoCommand("*CLS")
'End
End Sub
Private Function DoCommand(command As String) As String
On Error GoTo VisaComError
myScope.WriteString(command)
CheckInstrumentErrors()
Return "Pass"
VisaComError:
cmdDisplay("ERROR[C]: " & Err.Description)
Return "Fail"
'MsgBox("VISA COM Error: " + vbCrLf + CStr(Err.Number) + ", " + Err.Source + ", " + Err.Description, vbExclamation, "VISA COM Error")
End Function
Private Function DoQueryString(query As String) As String
On Error GoTo VisaComError
myScope.WriteString(query)
DoQueryString = myScope.ReadString
CheckInstrumentErrors()
Return DoQueryString
Exit Function
VisaComError:
cmdDisplay("ERROR[Q]: " & Err.Description)
Return "Fail"
'MsgBox("VISA COM Error: " + vbCrLf + CStr(Err.Number) + ", " + Err.Source + ", " + Err.Description, vbExclamation, "VISA COM Error")
End Function
Private Sub CheckInstrumentErrors()
On Error GoTo VisaComError
Dim strErrVal As String
Dim strOut As String = ""
myScope.WriteString(":SYSTem:ERRor?") ' Query any errors data.
strErrVal = myScope.ReadString ' Read: Errnum,"Error String".
While Val(strErrVal) <> 0 ' End if find: 0,"No Error".
strOut = "INST Error: " + strErrVal
myScope.WriteString(":SYSTem:ERRor?") ' Request error message.
strErrVal = myScope.ReadString ' Read error message.
End While
If Not strOut = "" Then
cmdDisplay(strOut)
myScope.FlushWrite(False)
myScope.FlushRead()
End If
Exit Sub
VisaComError:
''MsgBox("VISA COM Error: " + vbCrLf + Err.Description)
cmdDisplay("ERROR[E]: " & Err.Description)
myScope.FlushWrite(False)
myScope.FlushRead()
End Sub
Private Sub runTimeTimer_Tick(sender As Object, e As EventArgs) Handles runTimeTimer.Tick
lblTime.Text = Now
If PD1_STATUS = PD1_ENUM.WAIT And DevNum = 2 Then
If txbCartridgePD1.BackColor = Color.Blue Then
txbCartridgePD1.BackColor = Color.Yellow
Else
txbCartridgePD1.BackColor = Color.Blue
End If
txbCartridgePD1.Refresh()
ElseIf DevNum = 3 And DispToggle Then
If EnableSetup = False Then txbCmdWindowP2.Focus()
If txbPV_SN.BackColor = Color.Blue Then
txbPV_SN.BackColor = Color.Yellow
Else
txbPV_SN.BackColor = Color.Blue
End If
txbPV_SN.Refresh()
End If
End Sub
Private Function SendData(SendMessage As String) As Boolean
Try
If cmdSerialPort.IsOpen = True Then
'txbSerial.Text = ""
cmdSerialPort.DiscardInBuffer()
cmdSerialPort.DiscardOutBuffer()
If cmdSerialPort.BytesToRead Then
MsgBox(cmdSerialPort.BytesToRead)
cmdSerialPort.DiscardInBuffer()
End If
cmdSerialPort.WriteTimeout = -1
cmdSerialPort.WriteLine(SendMessage)
CmdTime = 0
EnableCmdTime = True
Else
MsgBox("통신 포트가 열리지 않았습니다.")
ckbSerialUse.Checked = False
Return True
End If
Catch ex As Exception
Return True
End Try
Return False
End Function
Private Sub ComportSetup()
With cmdSerialPort
'.PortName = "COM" & Val(cboComPort.Text)
.PortName = cboComPort.Text
.BaudRate = 230400
.DataBits = 8
.Parity = IO.Ports.Parity.None
.StopBits = IO.Ports.StopBits.One
.Handshake = IO.Ports.Handshake.None
''.RtsEnable = True
'.ReceivedBytesThreshold = 1
'AddHandler cmdSerialPort.DataReceived, AddressOf DataReceivedHandler
End With
End Sub
Private Sub exit_Process()
Try
cmdSerialPort.Close()
''cmdSerial.Text = "열기"
''cboComPort.Enabled = True
''txbAuthBox.Visible = False
''txbCartBox.Visible = False
''txbShotBox.Visible = False
''GroupBoxEnable(False)
''Save_ini()
End
Catch ex As Exception
MsgBox(ex.Message)
End Try
''Try
'' Me.Close()
''Catch ex As InvalidOperationException
'' Console.WriteLine(ex.GetType().FullName)
'' Console.WriteLine(ex.Message)
''End Try
End Sub
Private Sub runScopeScale()
DoCommand(":CHANnel1:SCALe " & txbVSCALE.Text)
DoCommand(":CHANnel1:OFFSet " & txbVPOS.Text)
DoCommand(":TIMebase:SCALe " & txbHSCALE.Text)
DoCommand(":TIMebase:POSition " & txbHPOS.Text)
End Sub
Private Sub DelayMs(DelayTime As Long)
Static Dim StartTick As Long
Dim EndTick As Long
StartTick = GetTickCount()
Do Until (EndTick - StartTick) >= DelayTime
EndTick = GetTickCount()
Loop
End Sub
Private Sub RunStableTime()
Dim TmpTime As Double
Dim TimeLineCnt As Long
Dim TimeLineMod As Long
Dim dispStr As String
cmdDisplay("Waiting for stabilization measurement.")
TmpTime = Val(txbWaitDelay.Text)
TimeLineMod = TmpTime Mod TimeLine
If TmpTime >= TimeLine Then
TimeLineCnt = (TmpTime - TimeLineMod) / TimeLine
End If
dispStr = (Today + " " + TimeOfDay + " " + "Start waiting time.")
txbCmdWindowP2.AppendText(dispStr)
txbCmdWindowP2.Refresh()
For cnt = 1 To TimeLineCnt
DelayMs(TimeLine)
dispStr = (".")
If cnt Mod 2 Then
If txbJudge.BackColor = Color.Blue Then
txbJudge.BackColor = Color.Gray
Else
txbJudge.BackColor = Color.Blue
End If
txbJudge.Refresh()
End If
txbCmdWindowP2.AppendText(dispStr)
txbCmdWindowP2.Refresh()
Next
txbCmdWindowP2.AppendText(vbCrLf)
txbCmdWindowP2.Refresh()
DelayMs(TimeLineMod)
End Sub
Private Function MeasureTime(StartEnd As Boolean) As Long
Static Dim nStartTick As Long
Static Dim nEndTick As Long
If StartEnd = MeasSTART Then
nStartTick = GetTickCount()
Return 0
Else
nEndTick = GetTickCount()
Return (nEndTick - nStartTick)
End If
End Function
Private Sub cmdSerial_Click(sender As Object, e As EventArgs) Handles cmdSerial.Click
LoadComportName()
End Sub
Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
Try
If cmdSerial.Text = "닫기" Then
cmdSerialPort.Close()
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
exit_Process()
End Sub
Private Sub TD_JIG_Activated(sender As Object, e As EventArgs) Handles Me.Activated
txbPV_SN.Focus()
End Sub
Private Sub txbPV_SN_Click(sender As Object, e As EventArgs) Handles txbPV_SN.Click
If DevNum = 3 Then
gpbProduct2.Focus()
Else
txbPV_SN.Clear()
End If
End Sub
Private Sub txbGrade_GotFocus(sender As Object, e As EventArgs) Handles txbGrade.GotFocus
txbPV_SN.Focus()
End Sub
Private Sub txbCapacitor_GotFocus(sender As Object, e As EventArgs) Handles txbCapacitor.GotFocus
If DevNum = 3 Then
gpbProduct2.Focus()
Else
txbPV_SN.Focus()
End If
End Sub
Private Sub txbPV_Date_GotFocus(sender As Object, e As EventArgs) Handles txbPV_Date.GotFocus
If DevNum = 3 Then
gpbProduct2.Focus()
Else
txbPV_SN.Focus()
End If
End Sub
Private Sub txbPV_Freq_GotFocus(sender As Object, e As EventArgs) Handles txbPV_Freq.GotFocus
If DevNum = 1 Then
If chbAutoMeasure.Checked Then
txbPV_SN.Focus()
End If
ElseIf DevNum = 2 Then
ElseIf DevNum = 3 Then
If chbAutoMeasure.Checked Then
txbPV_SN.Focus()
End If
ElseIf DevNum = 4 Then
If chbAutoMeasure.Checked Then
txbPV_SN.Focus()
End If
Else
txbPV_SN.Focus()
End If
End Sub
Private Sub txbPV_Z_GotFocus(sender As Object, e As EventArgs) Handles txbPV_Z.GotFocus
If DevNum = 3 Then
gpbProduct2.Focus()
Else
txbPV_SN.Focus()
End If
End Sub
Private Sub txbPV_C_GotFocus(sender As Object, e As EventArgs) Handles txbPV_C.GotFocus
If DevNum = 3 Then
gpbProduct2.Focus()
Else
txbPV_SN.Focus()
End If
End Sub
Private Sub txbPV_R_GotFocus(sender As Object, e As EventArgs) Handles txbPV_R.GotFocus
If DevNum = 3 Then
gpbProduct2.Focus()
Else
txbPV_SN.Focus()
End If
End Sub
Private Sub chbUseBarcode_GotFocus(sender As Object, e As EventArgs) Handles chbUseBarcode.GotFocus
txbPV_SN.Focus()
End Sub
Private Function ParsingData(CmdInclude As Boolean) As String
Dim cmdStr As String = "0"
Dim cmdVal(0 To 6) As String
Dim ReturnStr As String
Dim i As Integer
Try
If rxMessage <> "" Then
cmdMessage = ""
If Mid(rxMessage, 1, 1) = "[" Then
cmdMessage = Mid(rxMessage, 2, Len(rxMessage))
cmdStr = Mid(cmdMessage, 1, (InStr(rxMessage, " ") - 2))
cmdMessage = Mid(rxMessage, InStr(rxMessage, " ") + 1, Len(cmdMessage))
For i = 1 To 6
If InStr(cmdMessage, ",") <> 0 Then
cmdVal(i) = Mid(cmdMessage, 1, InStr(cmdMessage, ",") - 1)
cmdMessage = Mid(cmdMessage, InStr(cmdMessage, ",") + 1, Len(cmdMessage))
ElseIf InStr(cmdMessage, "]") <> 0 Then
cmdVal(i) = Mid(cmdMessage, 1, InStr(cmdMessage, "]") - 1)
'cmdMessage = Mid(cmdMessage, InStr(cmdMessage, "]") + 1, Len(cmdMessage))
Else
Exit For
End If
Next i
rxMessage = ""
If CmdInclude = True Then
ReturnStr = cmdStr & ","
End If
Select Case cmdStr
Case "ctabroad"
cmdStr = cmdVal(1)
Return cmdStr
Case "cartauth"
cmdStr = cmdVal(1)
Return cmdStr
Case "carttdsn"
cmdStr = cmdVal(1)
Return cmdStr
Case "tshotcnt"
cmdStr = cmdVal(1)
Return cmdStr
Case "rshotcnt"
cmdStr = cmdVal(1)
Return cmdStr
Case "setfreq"
cmdStr = cmdVal(1)
Return cmdStr
Case "setmfreq"
cmdStr = cmdVal(1)
Return cmdStr
Case "setsvfrq"
cmdStr = cmdVal(1)
Return cmdStr
Case "getrdfrq"
cmdStr = cmdVal(1)
Return cmdStr
Case "runshot"
cmdStr = cmdVal(1)
Return cmdStr
Case "setrlsel"
cmdStr = (cmdVal(1) & "," & cmdVal(2))
Return cmdStr
Case "setrlone"
cmdStr = (cmdVal(1) & "," & cmdVal(2))
Return cmdStr
Case "rshdelay"
cmdStr = cmdVal(1)
Return cmdStr
Case "runbeep"
cmdStr = cmdVal(1)
Return cmdStr
Case "getctcon"
cmdStr = cmdVal(1)
Return cmdStr
Case "cartsn"
cmdStr = cmdVal(1)
Return cmdStr
Case "rdctconn"
cmdStr = cmdVal(1)
Return cmdStr
Case "cartfreq"
cmdStr = cmdVal(1)
Return cmdStr
Case "cartmanu"
cmdStr = cmdVal(1)
Return cmdStr
Case "ctmodel"
cmdStr = cmdVal(1)
Return cmdStr
Case "carttype"
cmdStr = cmdVal(1)
Return cmdStr
Case "sethertz"
cmdStr = cmdVal(1)
Return cmdStr
Case "setdtype"
cmdStr = cmdVal(1)
Return cmdStr
Case "setctype"
cmdStr = cmdVal(1)
Return cmdStr
Case "setontim"
cmdStr = cmdVal(1)
Return cmdStr
Case "ctinitif"
cmdStr = (cmdVal(1) & "," & cmdVal(2) & "," & cmdVal(3) & "," & cmdVal(4) & "," & cmdVal(5) & "," & cmdVal(6))
Return cmdStr
Case "cartinfo"
cmdStr = (cmdVal(1) & "," & cmdVal(2) & "," & cmdVal(3) & "," & cmdVal(4) & "," & cmdVal(5) & "," & cmdVal(6))
Return cmdStr
Case Else
Return "Else"
rxMessage = ""
End Select
End If
rxMessage = ""
Return True
Else
'txbFreq.Text = "Else"
Return False
End If
Catch ex As Exception
rxMessage = ""
Return Err.Description
End Try
End Function
Private Function PollingReceiveData(RdTimeout As Long) As String
Try
If cmdSerialPort.IsOpen = True Then
'cmdDisplay("Waiting for receive data.")
rxMessage = ""
cmdSerialPort.ReadTimeout = RdTimeout
rxMessage = cmdSerialPort.ReadLine()
Return ParsingData(False)
Else
cmdDisplay("통신 포트가 열리지 않았습니다.")
ckbSerialUse.Checked = False
Return True
End If
Catch ex As Exception
rxMessage = ""
Return Err.Description
End Try
End Function
Private Sub SetFrequency(cmdStr As String)
tmpCmdMessage = "setmfreq"
cmdMessage = "[" & tmpCmdMessage & " " & cmdStr & "]" + vbCrLf
SendData(cmdMessage)
PollingReceiveData(300)
End Sub
Function SetFrequencyReturn(cmdStr As String) As Boolean
Dim retVal As String
tmpCmdMessage = "setmfreq"
cmdMessage = "[" & tmpCmdMessage & " " & cmdStr & "]" + vbCrLf
SendData(cmdMessage)
retVal = PollingReceiveData(300)
If retVal = cmdStr Then
Return False
Else
Return True
End If
End Function
Function SetCartType(cmdStr As String) As Boolean
Dim retVal As String
tmpCmdMessage = "setctype"
cmdMessage = "[" & tmpCmdMessage & " " & cmdStr & "]" + vbCrLf
SendData(cmdMessage)
retVal = PollingReceiveData(500)
If retVal = cmdStr Then
Return False
Else
Return True
End If
End Function
Function SetDepthType(cmdStr As String) As Boolean
Dim retVal As String
tmpCmdMessage = "setdtype"
cmdMessage = "[" & tmpCmdMessage & " " & cmdStr & "]" + vbCrLf
SendData(cmdMessage)
retVal = PollingReceiveData(500)
If retVal = cmdStr Then
Return False
Else
Return True
End If
End Function
Function SetHertzType(cmdStr As String) As Boolean
Dim retVal As String
tmpCmdMessage = "sethertz"
cmdMessage = "[" & tmpCmdMessage & " " & cmdStr & "]" + vbCrLf
SendData(cmdMessage)
retVal = PollingReceiveData(500)
If retVal = cmdStr Then
Return False
Else
Return True
End If
End Function
Private Function SetBeep(cmdStr As String) As Boolean
tmpCmdMessage = "runbeep"
cmdMessage = "[" & tmpCmdMessage & " " & cmdStr & "]" + vbCrLf
If SendData(cmdMessage) Then
Return True
End If
PollingReceiveData(300)
Return False
End Function
Private Sub SetRunShotDelay(cmdStr As String)
tmpCmdMessage = "rshdelay"
cmdMessage = "[" & tmpCmdMessage & " " & cmdStr & "]" + vbCrLf
SendData(cmdMessage)
End Sub
Function SetRelay(ch As Integer, OnOff As Integer) As Boolean
Dim retVal As String
Dim sendVal As String
sendVal = ch & "," & OnOff
tmpCmdMessage = "setrlone"
cmdMessage = "[" & tmpCmdMessage & " " & Str(ch) & "," & Str(OnOff) & "]" + vbCrLf
SendData(cmdMessage)
retVal = PollingReceiveData(300)
If retVal = sendVal Then
Return False
Else
Return True
End If
End Function
Function setOnTime(cmdStr As String) As Boolean
Dim retVal As String
tmpCmdMessage = "setontim"
cmdMessage = "[" & tmpCmdMessage & " " & cmdStr & "]" + vbCrLf
SendData(cmdMessage)
retVal = PollingReceiveData(500)
If retVal = cmdStr Then
Return False
Else
Return True
End If
End Function
Private Sub RunShot(cmdStr As String)
tmpCmdMessage = "runshot"
cmdMessage = "[" & tmpCmdMessage & " " & cmdStr & "]" + vbCrLf
SendData(cmdMessage)
End Sub
Private Function RunMeasure() As String
Dim tmpVal As Double
Dim cnt As Long
Dim MeasureStr As String
If rdbAvg.Checked Then
MeasureStr = MethodAVG
ElseIf rdbMax.Checked Then
MeasureStr = MethodMAX
Else
MeasureStr = MethodTOP
End If
For cnt = 1 To 3
strQueryResult = DoQueryString(":TER?")
If strQueryResult = 1 Then
If DoQueryString(":OPERegister:CONDition?") = 32 Then
strQueryResult = DoQueryString(MeasureStr)
tmpVal = Format(Val(strQueryResult), "0.000")
If tmpVal > 10 Then
Return "Over"
Else
Return tmpVal
End If
End If
End If
Next
Return "Fail"
End Function
Function MesUpdateDB() As Boolean
Dim CntCmd As String = "IQC_TotalCnt='" & txbTotalCnt.Text & "',IQC_OkCnt='" & txbOKCnt.Text & "',IQC_NgCnt='" & txbNGCnt.Text & "',IQC_ProCnt='" & txbProCnt.Text &
"',IQC_LuxCnt='" & txbLuxCnt.Text & "',IQC_EyeCnt='" & txbEyeCnt.Text & "',IQC_R1Cnt='" & txbR1CntIQC.Text & "',IQC_R2Cnt='" & txbR2CntIQC.Text &
"',IQC_R3Cnt='" & txbR3CntIQC.Text & "',IQC_R4Cnt='" & txbR4CntIQC.Text & "',IQC_R5Cnt='" & txbR5CntIQC.Text & "',IQC_R6Cnt='" & txbR6CntIQC.Text &
"',IQC_R7Cnt='" & txbR7CntIQC.Text & "',IQC_R8Cnt='" & txbR8CntIQC.Text & "',IQC_R9Cnt='" & txbR9CntIQC.Text & "',IQC_R10Cnt='" & txbR10CntIQC.Text &
"',IQC_ReTotalCnt='" & txbReTotalCnt.Text & "',IQC_ReOkCnt='" & txbReOkCnt.Text & "',IQC_ReNgCnt='" & txbReNgCnt.Text & "'"
cmd = "update jomtMES_IQCTbl set " & CntCmd & " where TesterDate = '" & getNowDate() & "';"
DBCommand(cmd)
Return True
End Function
Private Sub TransDB_PD2()
Dim TestStep As Integer
Dim UpdateSetDataStr As String
TestStep = 31
UpdateSetDataStr = "TestStep='" & TestStep & "',P2_Date='" & getNowDate() & "',P2_Time='" & getNowTime() & "',P2_Frequency='" & txbPV_Freq.Text & "',P2_Current='" & PD2_Current & "'"
cmd = "update jomtCartridgeTbl set " & UpdateSetDataStr & " where PV_SN ='" & txbPV_SN.Text & "';"
DBCommand(cmd)
cmdDisplay("Save Measure DB complete!")
End Sub
Private Sub UploadCntDB_IQC()
Dim TodayDate As String
Dim CntCmd As String = "IQC_TotalCnt='" & RegMesIQC.IQC_TotalCnt & "',IQC_OkCnt='" & RegMesIQC.IQC_OKCnt & "',IQC_NgCnt='" & RegMesIQC.IQC_NGCnt & "',IQC_ProCnt='" & RegMesIQC.IQC_GradeCnt(MODEL_NAME.PRO) &
"',IQC_LuxCnt='" & RegMesIQC.IQC_GradeCnt(MODEL_NAME.LUX) & "',IQC_EyeCnt='" & RegMesIQC.IQC_GradeCnt(MODEL_NAME.EYE) & "',IQC_R1Cnt='" & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL1) & "',IQC_R2Cnt='" & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL2) &
"',IQC_R3Cnt='" & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL3) & "',IQC_R4Cnt='" & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL4) & "',IQC_R5Cnt='" & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL5) & "',IQC_R6Cnt='" & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL6) &
"',IQC_R7Cnt='" & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL7) & "',IQC_R8Cnt='" & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL8) & "',IQC_R9Cnt='" & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL9) & "',IQC_R10Cnt='" & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL10) &
"',IQC_ReTotalCnt='" & RegMesIQC.IQC_ReTotalCnt & "',IQC_ReOkCnt='" & RegMesIQC.IQC_ReOkCnt & "',IQC_ReNgCnt='" & RegMesIQC.IQC_ReNgCnt & "'"
If ShowDetailLog Then cmdDisplay("Enter the 'UploadCntDB_IQC' processor")
TodayDate = getNowDate()
cmd = "update jomtMES_IQCTbl set " & CntCmd & " where IQC_Date = '" & TodayDate & "';"
DBCommand(cmd)
End Sub
Private Sub UploadCntDB_PD1()
Dim TodayDate As String
Dim CntCmd As String = "PD1_TotalCnt='" & RegMesPD1.PD1_TotalCnt & "',PD1_OkCnt='" & RegMesPD1.PD1_OKCnt & "',PD1_NgCnt='" & RegMesPD1.PD1_NGCnt & "',PD1_ProCnt='" & RegMesPD1.PD1_GradeCnt(MODEL_NAME.PRO) &
"',PD1_LuxCnt='" & RegMesPD1.PD1_GradeCnt(MODEL_NAME.LUX) & "',PD1_EyeCnt='" & RegMesPD1.PD1_GradeCnt(MODEL_NAME.EYE) & "',PD1_MAXCnt='" & RegMesPD1.PD1_GradeCnt(MODEL_NAME.MAX) & "',PD1_R1Cnt='" & RegMesPD1.PD1_CapCnt(RELAY_NUM.RL1) & "',PD1_R2Cnt='" & RegMesPD1.PD1_CapCnt(RELAY_NUM.RL2) &
"',PD1_R3Cnt='" & RegMesPD1.PD1_CapCnt(RELAY_NUM.RL3) & "',PD1_R4Cnt='" & RegMesPD1.PD1_CapCnt(RELAY_NUM.RL4) & "',PD1_R5Cnt='" & RegMesPD1.PD1_CapCnt(RELAY_NUM.RL5) & "',PD1_R6Cnt='" & RegMesPD1.PD1_CapCnt(RELAY_NUM.RL6) &
"',PD1_R7Cnt='" & RegMesPD1.PD1_CapCnt(RELAY_NUM.RL7) & "',PD1_R8Cnt='" & RegMesPD1.PD1_CapCnt(RELAY_NUM.RL8) & "',PD1_R9Cnt='" & RegMesPD1.PD1_CapCnt(RELAY_NUM.RL9) & "',PD1_R10Cnt='" & RegMesPD1.PD1_CapCnt(RELAY_NUM.RL10) & "'"
If ShowDetailLog Then cmdDisplay("Enter the 'UploadCntDB_PD1' processor")
TodayDate = getNowDate()
cmd = "update jomtMES_PD1Tbl set " & CntCmd & " where PD1_Date = '" & TodayDate & "';"
DBCommand(cmd)
End Sub
Private Function SaveLocalCount() As Boolean
Try
Dim TodayDate As String = getNowDate()
Dim MonthToday As String = Format(Now, "yyyy-MM")
Dim StartForm As String = "TestDate,FullCount,OKCount,NGCount,PROCount,LuxCount,EyeCount,MaxCount,R1Count,R2Count,R3Count,R4Count,R5Count,R6Count,R7Count,R8Count,R9Count,R10Count"
Dim FilePath As String = System.AppDomain.CurrentDomain.BaseDirectory & "\LocalCount"
NewDir(FilePath)
Dim FileName As String = FilePath & "\" & MonthToday & ".csv"
Dim SaveData As String = TodayDate & "," & RegLocalPD1.PD1_TotalCnt & "," & RegLocalPD1.PD1_OKCnt & "," & RegLocalPD1.PD1_NGCnt & "," & RegLocalPD1.PD1_GradeCnt(MODEL_NAME.PRO) & "," &
RegLocalPD1.PD1_GradeCnt(MODEL_NAME.LUX) & "," & RegLocalPD1.PD1_GradeCnt(MODEL_NAME.EYE) & "," & RegLocalPD1.PD1_GradeCnt(MODEL_NAME.MAX) & "," & RegLocalPD1.PD1_CapCnt(RELAY_NUM.RL1) & "," &
RegLocalPD1.PD1_CapCnt(RELAY_NUM.RL2) & "," & RegLocalPD1.PD1_CapCnt(RELAY_NUM.RL3) & "," & RegLocalPD1.PD1_CapCnt(RELAY_NUM.RL4) & "," & RegLocalPD1.PD1_CapCnt(RELAY_NUM.RL5) & "," &
RegLocalPD1.PD1_CapCnt(RELAY_NUM.RL6) & "," & RegLocalPD1.PD1_CapCnt(RELAY_NUM.RL7) & "," & RegLocalPD1.PD1_CapCnt(RELAY_NUM.RL8) & "," & RegLocalPD1.PD1_CapCnt(RELAY_NUM.RL9) & "," &
RegLocalPD1.PD1_CapCnt(RELAY_NUM.RL10)
Dim StrData As String = String.Empty
If File.Exists(FileName) Then
StrData = File.ReadAllText(FileName, Encoding.UTF8)
If StrData = vbCrLf Or StrData = "" Or StrData = Nothing Or StrData = String.Empty Then
StrData = StartForm & vbCrLf & SaveData
Else
If UBound(Split(StrData, TodayDate)) > 0 Then
StrData = Mid(StrData, 1, InStr(StrData, TodayDate) - 1)
StrData = StrData & SaveData & vbCrLf
Else
StrData = StrData & SaveData & vbCrLf
End If
End If
Else
StrData = StartForm & vbCrLf & SaveData & vbCrLf
End If
File.WriteAllText(FileName, StrData, Encoding.UTF8)
Return False
Catch ex As Exception
MsgBox("수량을 저장하는 과정에서 오류가 발생하였습니다!" & vbCrLf & ex.Message, vbCritical)
Return True
End Try
End Function
Private Function LoadLocalCount() As Boolean
Try
Dim TodayDate As String = getNowDate()
Dim MonthToday As String = Format(Now, "yyyy-MM")
Dim FilePath As String = System.AppDomain.CurrentDomain.BaseDirectory & "\LocalCount"
NewDir(FilePath)
Dim FileName As String = FilePath & "\" & MonthToday & ".csv"
Dim StrData As String
If File.Exists(FileName) Then
StrData = File.ReadAllText(FileName, Encoding.UTF8)
If UBound(Split(StrData, TodayDate)) > 0 Then
StrData = Mid(StrData, InStr(StrData, TodayDate), InStr(StrData, vbCrLf) - 1)
ViewCountSet(StrData)
Else
CountReset()
End If
Else
CountReset()
End If
Return False
Catch ex As Exception
MsgBox("수량을 불러오는 과정에서 오류가 발생하였습니다!" & vbCrLf & ex.Message, vbCritical)
Return True
End Try
End Function
Private Sub ViewCountSet(saveData As String)
If UBound(Split(saveData, ",")) = 17 Then
saveData = Mid(saveData, InStr(saveData, ",") + 1, saveData.Length) '' 날짜 삭제
txbTotalCntPD1.Text = Mid(saveData, 1, InStr(saveData, ",") - 1)
saveData = Mid(saveData, InStr(saveData, ",") + 1, saveData.Length) '' 전체 수량 삭제
txbOkCntPD1.Text = Mid(saveData, 1, InStr(saveData, ",") - 1)
saveData = Mid(saveData, InStr(saveData, ",") + 1, saveData.Length) '' 합격 수량 삭제
txbNgCntPD1.Text = Mid(saveData, 1, InStr(saveData, ",") - 1)
saveData = Mid(saveData, InStr(saveData, ",") + 1, saveData.Length) '' 불량 수량 삭제
txbProCntPD1.Text = Mid(saveData, 1, InStr(saveData, ",") - 1)
saveData = Mid(saveData, InStr(saveData, ",") + 1, saveData.Length) '' PRO 수량 삭제
txbLuxCntPD1.Text = Mid(saveData, 1, InStr(saveData, ",") - 1)
saveData = Mid(saveData, InStr(saveData, ",") + 1, saveData.Length) '' LUX 수량 삭제
txbEyeCntPD1.Text = Mid(saveData, 1, InStr(saveData, ",") - 1)
saveData = Mid(saveData, InStr(saveData, ",") + 1, saveData.Length) '' EYE 수량 삭제
txbMaxCntPD1.Text = Mid(saveData, 1, InStr(saveData, ",") - 1)
saveData = Mid(saveData, InStr(saveData, ",") + 1, saveData.Length) '' MAX 수량 삭제
txbR1CntPD1.Text = Mid(saveData, 1, InStr(saveData, ",") - 1)
saveData = Mid(saveData, InStr(saveData, ",") + 1, saveData.Length) '' R1 수량 삭제
txbR2CntPD1.Text = Mid(saveData, 1, InStr(saveData, ",") - 1)
saveData = Mid(saveData, InStr(saveData, ",") + 1, saveData.Length) '' R2 수량 삭제
txbR3CntPD1.Text = Mid(saveData, 1, InStr(saveData, ",") - 1)
saveData = Mid(saveData, InStr(saveData, ",") + 1, saveData.Length) '' R3 수량 삭제
txbR4CntPD1.Text = Mid(saveData, 1, InStr(saveData, ",") - 1)
saveData = Mid(saveData, InStr(saveData, ",") + 1, saveData.Length) '' R4 수량 삭제
txbR5CntPD1.Text = Mid(saveData, 1, InStr(saveData, ",") - 1)
saveData = Mid(saveData, InStr(saveData, ",") + 1, saveData.Length) '' R5 수량 삭제
txbR6CntPD1.Text = Mid(saveData, 1, InStr(saveData, ",") - 1)
saveData = Mid(saveData, InStr(saveData, ",") + 1, saveData.Length) '' R6 수량 삭제
txbR7CntPD1.Text = Mid(saveData, 1, InStr(saveData, ",") - 1)
saveData = Mid(saveData, InStr(saveData, ",") + 1, saveData.Length) '' R7 수량 삭제
txbR8CntPD1.Text = Mid(saveData, 1, InStr(saveData, ",") - 1)
saveData = Mid(saveData, InStr(saveData, ",") + 1, saveData.Length) '' R8 수량 삭제
txbR9CntPD1.Text = Mid(saveData, 1, InStr(saveData, ",") - 1)
saveData = Mid(saveData, InStr(saveData, ",") + 1, saveData.Length) '' R9 수량 삭제
txbR10CntPD1.Text = Mid(saveData, 1, saveData.Length)
Else
CountReset()
MsgBox("데이터를 불러오는데 오류가 발생하였습니다.", vbCritical)
End If
End Sub
Private Sub CountReset()
txbTotalCntPD1.Text = "0"
txbOkCntPD1.Text = "0"
txbNgCntPD1.Text = "0"
txbProCntPD1.Text = "0"
txbLuxCntPD1.Text = "0"
txbEyeCntPD1.Text = "0"
txbMaxCntPD1.Text = "0"
txbR1CntPD1.Text = "0"
txbR2CntPD1.Text = "0"
txbR3CntPD1.Text = "0"
txbR4CntPD1.Text = "0"
txbR5CntPD1.Text = "0"
txbR6CntPD1.Text = "0"
txbR7CntPD1.Text = "0"
txbR8CntPD1.Text = "0"
txbR9CntPD1.Text = "0"
txbR10CntPD1.Text = "0"
End Sub
Private Sub NewDir(FilePath As String)
If Dir(FilePath, vbDirectory) = "" Then
MkDir(FilePath)
End If
End Sub
Private Sub GetCntDB_IQC()
Dim QC_Date, QC_Grade, QC_Capacitor As String
Dim TodayDate As String
Dim RetCnt, gCnt, pCnt, rCnt As Integer
Try
If ShowDetailLog Then cmdDisplay("Enter the 'GetCntDB' processor")
ResetCntRegIQC()
TodayDate = getNowDate()
If RegMeasure.PreTestStep = 1 Then '정상 일때
CntRegMesIQC.IQC_TotalCnt += 1
If RegMeasure.MeasureOkNg = "OK" Then
CntRegMesIQC.IQC_OKCnt += 1
gCnt = GradeToValue(RegMeasure.MeasureGrade)
If gCnt Then CntRegMesIQC.IQC_GradeCnt(gCnt) += 1
If RegMeasure.MeasureValue(0) Then
CntRegMesIQC.IQC_GdCapCnt(gCnt, RegMeasure.MeasureValue(0)) += 1
End If
RegMeasure.MeasureTestStep = 11
ElseIf RegMeasure.MeasureOkNg = "NG" Then
RegMeasure.MeasureTestStep = 12
CntRegMesIQC.IQC_NGCnt += 1
End If
ElseIf RegMeasure.PreTestStep >= 11 And RegMeasure.PreTestStep <= 19 Then
RetCnt = DBQueryReader("select QC_Date, QC_Grade, QC_Capacitor From jomtCartridgeTbl Where PV_SN = '" & RegMeasure.MeasurePV_SN & "';")
If RetCnt Then
QC_Date = sqlDataQuery(0)
QC_Grade = sqlDataQuery(1)
QC_Capacitor = sqlDataQuery(2)
If QC_Date = TodayDate Then
If RegMeasure.MeasureOkNg = "OK" Then
If RegMeasure.PreTestStep = 12 Or RegMeasure.PreTestStep = 14 Then '이전 불량일때
CntRegMesIQC.IQC_OKCnt += 1
CntRegMesIQC.IQC_NGCnt -= 1
gCnt = GradeToValue(RegMeasure.MeasureGrade)
If gCnt Then CntRegMesIQC.IQC_GradeCnt(gCnt) += 1
If RegMeasure.MeasureValue(0) Then
CntRegMesIQC.IQC_GdCapCnt(gCnt, RegMeasure.MeasureValue(0)) += 1
End If
ElseIf RegMeasure.PreTestStep = 11 Or RegMeasure.PreTestStep = 13 Then '이전 양품일때
gCnt = GradeToValue(RegMeasure.MeasureGrade)
pCnt = GradeToValue(QC_Grade)
If RegMeasure.MeasureGrade <> QC_Grade Then
If gCnt Then CntRegMesIQC.IQC_GradeCnt(gCnt) += 1
If pCnt Then CntRegMesIQC.IQC_GradeCnt(pCnt) -= 1
End If
If RegMeasure.MeasureCapacitor <> QC_Capacitor Then
If RegMeasure.MeasureValue(0) Then
CntRegMesIQC.IQC_GdCapCnt(gCnt, RegMeasure.MeasureValue(0)) += 1
End If
For rCnt = 1 To 10
If QC_Capacitor = RELAY_C(rCnt) Then
CntRegMesIQC.IQC_GdCapCnt(pCnt, rCnt) -= 1
Exit For
End If
Next
End If
End If
RegMeasure.MeasureTestStep = 11
ElseIf RegMeasure.MeasureOkNg = "NG" Then
If RegMeasure.PreTestStep = 11 Or RegMeasure.PreTestStep = 13 Then '이전 양품일때
CntRegMesIQC.IQC_OKCnt -= 1
CntRegMesIQC.IQC_NGCnt += 1
pCnt = GradeToValue(QC_Grade)
If pCnt Then CntRegMesIQC.IQC_GradeCnt(pCnt) -= 1
For rCnt = 1 To 10
If QC_Capacitor = RELAY_C(rCnt) Then
CntRegMesIQC.IQC_GdCapCnt(pCnt, rCnt) -= 1
Exit For
End If
Next
End If
RegMeasure.MeasureTestStep = 12
End If
Else ' 재검사 측정
RetCnt = DBQueryReader("select QC_LastDate From jomtCartridgeTbl Where PV_SN = '" & RegMeasure.MeasurePV_SN & "';")
If RetCnt Then
RegMeasure.QC_LastDate = sqlDataQuery(0)
Else
RegMeasure.QC_LastDate = "NULL"
End If
If RegMeasure.QC_LastDate <> getNowDate() Then
CntRegMesIQC.IQC_ReTotalCnt += 1
End If
If RegMeasure.MeasureOkNg = "OK" Then
If RegMeasure.PreTestStep = 12 Or RegMeasure.PreTestStep = 14 Then '이전 불량일때
CntRegMesIQC.IQC_ReOkCnt += 1
CntRegMesIQC.IQC_ReNgCnt -= 1
gCnt = GradeToValue(RegMeasure.MeasureGrade)
If gCnt Then CntRegMesIQC.IQC_ReGradeCnt(gCnt) += 1
If RegMeasure.MeasureValue(0) Then
CntRegMesIQC.IQC_ReGdCapCnt(gCnt, RegMeasure.MeasureValue(0)) += 1
End If
ElseIf RegMeasure.PreTestStep = 11 Or RegMeasure.PreTestStep = 13 Then '이전 양품일때
gCnt = GradeToValue(RegMeasure.MeasureGrade)
pCnt = GradeToValue(QC_Grade)
If RegMeasure.MeasureGrade <> QC_Grade Then
If gCnt Then CntRegMesIQC.IQC_ReGradeCnt(gCnt) += 1
If pCnt Then CntRegMesIQC.IQC_ReGradeCnt(pCnt) -= 1
End If
If RegMeasure.MeasureCapacitor <> QC_Capacitor Then
If RegMeasure.MeasureValue(0) Then
CntRegMesIQC.IQC_ReGdCapCnt(gCnt, RegMeasure.MeasureValue(0)) += 1
End If
For rCnt = 1 To 10
If QC_Capacitor = RELAY_C(rCnt) Then
CntRegMesIQC.IQC_ReGdCapCnt(pCnt, rCnt) -= 1
Exit For
End If
Next
End If
End If
RegMeasure.MeasureTestStep = 13
ElseIf RegMeasure.MeasureOkNg = "NG" Then
If RegMeasure.PreTestStep = 11 Or RegMeasure.PreTestStep = 13 Then
CntRegMesIQC.IQC_ReOkCnt -= 1
CntRegMesIQC.IQC_ReNgCnt += 1
pCnt = GradeToValue(QC_Grade)
If pCnt Then CntRegMesIQC.IQC_ReGradeCnt(pCnt) -= 1
For rCnt = 1 To 10
If QC_Capacitor = RELAY_C(rCnt) Then
CntRegMesIQC.IQC_ReGdCapCnt(pCnt, rCnt) -= 1
Exit For
End If
Next
End If
RegMeasure.MeasureTestStep = 14
End If
End If
End If
End If
Catch ex As Exception
End Try
End Sub
Private Sub CalCntDB_IQC()
If ShowDetailLog Then cmdDisplay("Enter the 'CalCntDB_IQC' processor")
RegMesIQC.IQC_TotalCnt += CntRegMesIQC.IQC_TotalCnt
RegMesIQC.IQC_OKCnt += CntRegMesIQC.IQC_OKCnt
RegMesIQC.IQC_NGCnt += CntRegMesIQC.IQC_NGCnt
For i = MODEL_NAME.PRO To MODEL_NAME.EYE
RegMesIQC.IQC_GradeCnt(i) += CntRegMesIQC.IQC_GradeCnt(i)
Next
For n = RELAY_NUM.RL1 To RELAY_NUM.RL10
For i = MODEL_NAME.PRO To MODEL_NAME.EYE
RegMesIQC.IQC_CapCnt(n) += CntRegMesIQC.IQC_GdCapCnt(i, n)
Next
Next
RegMesIQC.IQC_ReTotalCnt += CntRegMesIQC.IQC_ReTotalCnt
RegMesIQC.IQC_ReOkCnt += CntRegMesIQC.IQC_ReOkCnt
RegMesIQC.IQC_ReNgCnt += CntRegMesIQC.IQC_ReNgCnt
If CntRegMesIQC.IQC_ReOkCnt Or CntRegMesIQC.IQC_ReNgCnt Then
If RegMeasure.QC_LastDate <> getNowDate() Then
If RegMeasure.MeasureOkNg = "OK" Then
RegMesIQC.IQC_ReNgCnt += 1
ElseIf RegMeasure.MeasureOkNg = "NG" Then
RegMesIQC.IQC_ReOkCnt += 1
End If
End If
End If
End Sub
Private Sub CalRegProductIQC()
If ShowDetailLog Then cmdDisplay("Enter the 'CalRegProductIQC' processor")
RegMesProduct.IQC_TotalCnt += CntRegMesIQC.IQC_TotalCnt
RegMesProduct.PV_TDCnt -= CntRegMesIQC.IQC_TotalCnt
RegMesProduct.IQC_OkCnt += (CntRegMesIQC.IQC_OKCnt + CntRegMesIQC.IQC_ReOkCnt)
RegMesProduct.IQC_NgCnt += (CntRegMesIQC.IQC_NGCnt + CntRegMesIQC.IQC_ReNgCnt)
For i = MODEL_NAME.PRO To MODEL_NAME.EYE
RegMesProduct.IQC_GradeCnt(i) += (CntRegMesIQC.IQC_GradeCnt(i) + CntRegMesIQC.IQC_ReGradeCnt(i))
Next
For i = MODEL_NAME.PRO To MODEL_NAME.EYE
For n = RELAY_NUM.RL1 To RELAY_NUM.RL5
RegMesProduct.IQC_GdCapCnt(i, n) += (CntRegMesIQC.IQC_GdCapCnt(i, n) + CntRegMesIQC.IQC_ReGdCapCnt(i, n))
Next
Next
End Sub
Private Sub LoadTextIQC()
Try
txbTotalCnt.Text = RegMesIQC.IQC_TotalCnt
txbTotalCnt.Refresh()
txbOKCnt.Text = RegMesIQC.IQC_OKCnt
txbOKCnt.Refresh()
txbNGCnt.Text = RegMesIQC.IQC_NGCnt
txbNGCnt.Refresh()
For i = MODEL_NAME.PRO To MODEL_NAME.EYE
txbIQC_GCnt(i).Text = RegMesIQC.IQC_GradeCnt(i)
txbIQC_GCnt(i).Refresh()
Next
For i = RELAY_NUM.RL1 To RELAY_NUM.MAX_RELAY_NUM - 1
txbIQC_RCnt(i).Text = RegMesIQC.IQC_CapCnt(i)
txbIQC_RCnt(i).Refresh()
Next
txbReTotalCnt.Text = RegMesIQC.IQC_ReTotalCnt
txbReTotalCnt.Refresh()
txbReOkCnt.Text = RegMesIQC.IQC_ReOkCnt
txbReOkCnt.Refresh()
txbReNgCnt.Text = RegMesIQC.IQC_ReNgCnt
txbReNgCnt.Refresh()
Catch ex As Exception
cmdDisplay(Err.Description)
End Try
End Sub
Private Sub LoadTextPDLocal1()
RegLocalPD1.PD1_TotalCnt = Val(txbTotalCntPD1.Text)
RegLocalPD1.PD1_OKCnt = Val(txbOkCntPD1.Text)
RegLocalPD1.PD1_NGCnt = Val(txbNgCntPD1.Text)
For i = MODEL_NAME.PRO To MODEL_NAME.MAX
RegLocalPD1.PD1_GradeCnt(i) = txbPD1_GCnt(i).Text
Next
For i = RELAY_NUM.RL1 To RELAY_NUM.MAX_RELAY_NUM - 1
RegLocalPD1.PD1_CapCnt(i) = txbPD1_RCnt(i).Text
Next
End Sub
Private Sub LoadTextPD1()
Try
txbTotalCntPD1.Text = RegMesPD1.PD1_TotalCnt
txbTotalCntPD1.Refresh()
txbOkCntPD1.Text = RegMesPD1.PD1_OKCnt
txbOkCntPD1.Refresh()
txbNgCntPD1.Text = RegMesPD1.PD1_NGCnt
txbNgCntPD1.Refresh()
For i = MODEL_NAME.PRO To MODEL_NAME.MAX
txbPD1_GCnt(i).Text = RegMesPD1.PD1_GradeCnt(i)
txbPD1_GCnt(i).Refresh()
Next
For i = RELAY_NUM.RL1 To RELAY_NUM.MAX_RELAY_NUM - 1
txbPD1_RCnt(i).Text = RegMesPD1.PD1_CapCnt(i)
txbPD1_RCnt(i).Refresh()
Next
Catch ex As Exception
cmdDisplay(Err.Description)
End Try
End Sub
Private Sub TesterLogTransDB()
Dim TestStep As Integer
Dim UpdateSetDataStr As String
TestStep = 11
UpdateSetDataStr = "TestStep='" & TestStep & "',QC_DateTime='" & getNowDateTime() & "',QC_Frequency='" & txbPV_Freq.Text & "',QC_Current='" & RegMeasure.MeasureValue(RegMeasure.MeasureValue(0)) & "',QC_Capacitor='" & txbCapacitor.Text & "',QC_Grade='" & txbGrade.Text & "',QC_R1Value='" & RegMeasure.MeasureValue(1) & "',QC_R2Value='" & RegMeasure.MeasureValue(2) & "',QC_R3Value='" & RegMeasure.MeasureValue(3) & "',QC_R4Value='" & RegMeasure.MeasureValue(4) & "',QC_R5Value='" & RegMeasure.MeasureValue(5) & "',QC_R6Value='" & RegMeasure.MeasureValue(6) & "',QC_R7Value='" & RegMeasure.MeasureValue(7) & "',QC_R8Value='" & RegMeasure.MeasureValue(8) & "',QC_R9Value='" & RegMeasure.MeasureValue(9) & "',QC_R10Value='" & RegMeasure.MeasureValue(10) & "'"
cmd = "update jomtCartridgeTbl set " & UpdateSetDataStr & " where PV_SN ='" + txbPV_SN.Text + "';"
DBCommand(cmd)
cmdDisplay("Save Measure DB complete!")
End Sub
Private Sub IQCValueStandard(testType As Boolean) '' true : DIT / false : J
If testType = True Then
ProMAX = txbProMax.Text
ProTYP = txbProTyp.Text
ProMIN = txbProMin.Text
LuxMAX = txbLuxMax.Text
LuxTYP = txbLuxTyp.Text
LuxMIN = txbLuxMin.Text
EyeMAX = txbEyeMax.Text
EyeTYP = txbEyeTyp.Text
EyeMIN = txbEyeTyp.Text
Else
ProMAX = txbKProMax.Text
ProTYP = txbKProTyp.Text
ProMIN = txbKProMin.Text
LuxMAX = txbKLuxMax.Text
LuxTYP = txbKLuxTyp.Text
LuxMIN = txbKLuxMin.Text
EyeMAX = txbKEyeMax.Text
EyeTYP = txbKEyeTyp.Text
EyeMIN = txbKEyeTyp.Text
End If
End Sub
Private Sub RunProcessIQC()
Try
Dim RetStr As String
Dim SaveLogStr As String
Dim StatusFail As Boolean = False
If (Len(RegMeasure.MeasurePV_SN) = LenPVSN And (Mid(RegMeasure.MeasurePV_SN, 1, 3) = NamePVSN Or Mid(RegMeasure.MeasurePV_SN, 1, 1) = NamePVSN2)) Or chbAutoMeasure.Checked = False Or CalModeOn = True And (txbPV_Freq.Text <> "N/A" And txbPV_Freq.Text <> "") Then
If Mid(RegMeasure.MeasurePV_SN, 1, 3) = NamePVSN Then
IQCValueStandard(True)
Else
IQCValueStandard(False)
End If
cmdDisplay("Start measurement.")
SetDefaultText()
txbGrade.BackColor = DefaultBackColor
txbGrade.Text = "측정중"
txbGrade.Refresh()
txbCapacitor.BackColor = DefaultBackColor
txbCapacitor.Text = "측정중"
txbCapacitor.Refresh()
btnRunIQC.Enabled = False
btnRunIQC.Refresh()
MeasureTime(MeasSTART)
If SetBeep(SoundStart) Then
txbGrade.BackColor = DefaultBackColor
txbGrade.Text = "대기"
txbGrade.Refresh()
txbCapacitor.BackColor = DefaultBackColor
txbCapacitor.Text = "대기"
txbCapacitor.Refresh()
txbRun.Text = "통신 에러"
txbRun.BackColor = Color.Red
txbRun.Refresh()
Exit Sub
End If
myScope.IO.Clear() ' Clear the interface.
myScope.IO.Timeout = Val(txbTimeout.Text) ' Set I/O communication timeout.
RetStr = DoCommand("*CLS")
If RetStr = "Fail" Then
StatusFail = True
If ShowDetailLog Then
txbRun.Text = "Scope Error 01" 'cmdDisplay("Scope clear failure")
txbRun.BackColor = Color.Red
txbRun.Refresh()
End If
GoTo MEASURE_END
End If
If ShowDetailLog Then cmdDisplay("Scope clear complete")
SetFrequency(txbPV_Freq.Text)
If ShowDetailLog Then cmdDisplay("Frequency : " & txbPV_Freq.Text & " kHz")
IQCValueError = 0
'더미 샷
SetRelay(1, 1)
For Cnt = 1 To Val(txbIQC_DummyShotCnt.Text)
If ShowDetailLog Then cmdDisplay("Run dummy measure sequence[" & Cnt & "]")
RetStr = DoCommand(":Single")
If RetStr = "Fail" Then
StatusFail = True
If ShowDetailLog Then cmdDisplay("Trigger set failure")
If ShowDetailLog Then
txbRun.Text = "Scope Error 02" 'cmdDisplay("Trigger set failure")
txbRun.BackColor = Color.Red
txbRun.Refresh()
End If
Exit For
End If
If ShowDetailLog Then cmdDisplay("Waiting for trigger")
If ShowDetailLog Then cmdDisplay("Run dummy shot[" & txbOntime.Text & " ms]")
RunShot(txbOntime.Text)
PollingReceiveData(300)
DelayMs(Val(txbOntime.Text) + 50)
RetStr = RunMeasure()
If RetStr = "Fail" Then
StatusFail = True
txbRun.Text = "Scope Error 03" 'cmdDisplay("Trigger failure")
txbRun.BackColor = Color.Red
txbRun.Refresh()
If ShowDetailLog Then cmdDisplay("Trigger failure")
Exit For
End If
Dim tmpMeasureValue As Double = Val(RetStr)
If tmpMeasureValue < Val(txbMinValue.Text) Then
StatusFail = True
txbRun.Text = "최소전류미달" 'cmdDisplay("Trigger failure")
txbRun.BackColor = Color.Red
txbRun.Refresh()
Exit For
End If
If Abs(tmpMeasureValue - IQCValueError) < Val(txbValueError.Text) Then
IQCValueError = tmpMeasureValue
Else
If IQCValueError = 0 Then
IQCValueError = tmpMeasureValue
Else
StatusFail = True
txbRun.Text = "연결불량" 'cmdDisplay("Trigger failure")
txbRun.BackColor = Color.Red
txbRun.Refresh()
Exit For
End If
End If
cmdDisplay("Measurement[D" & Cnt & "] : " & Format(tmpMeasureValue, "0.000") & " A")
DelayMs(Val(txbMeasureDelay.Text))
Next
'측정 샷
ResetRegMeasureValue()
For Cnt = 1 To RelayCnt.Length - 1
If ShowDetailLog Then cmdDisplay("Run measure sequence[" & Cnt & "]")
SetRelay(RelayCnt(Cnt), 1)
If ShowDetailLog Then cmdDisplay("Turn on relay[" & Cnt & "]")
RetStr = DoCommand(":Single")
If RetStr = "Fail" Then
StatusFail = True
txbRun.Text = "Scope Error 04" 'cmdDisplay("Trigger set failure")
txbRun.BackColor = Color.Red
txbRun.Refresh()
If ShowDetailLog Then cmdDisplay("Trigger set failure")
Exit For
End If
If ShowDetailLog Then cmdDisplay("Waiting for trigger")
If ShowDetailLog Then cmdDisplay("Run shot[" & txbOntime.Text & " ms]")
RunShot(txbOntime.Text)
PollingReceiveData(300)
DelayMs(Val(txbOntime.Text) + 50)
RetStr = RunMeasure()
If RetStr = "Fail" Then
StatusFail = True
txbRun.Text = "Scope Error 03" 'cmdDisplay("Trigger failure")
txbRun.BackColor = Color.Red
txbRun.Refresh()
If ShowDetailLog Then cmdDisplay("Trigger failure")
Exit For
End If
RegMeasure.MeasureValue(RelayCnt(Cnt)) = Val(RetStr)
If RegMeasure.MeasureValue(RelayCnt(Cnt)) < Val(txbMinValue.Text) Then
StatusFail = True
txbRun.Text = "최소전류미달" 'cmdDisplay("Trigger failure")
txbRun.BackColor = Color.Red
txbRun.Refresh()
Exit For
End If
If Abs(RegMeasure.MeasureValue(RelayCnt(Cnt)) - IQCValueError) < Val(txbValueError.Text) Then
IQCValueError = RegMeasure.MeasureValue(RelayCnt(Cnt))
Else
StatusFail = True
txbRun.Text = "연결불량" 'cmdDisplay("Trigger failure")
txbRun.BackColor = Color.Red
txbRun.Refresh()
Exit For
End If
cmdDisplay("Measurement[R" & Cnt & "] : " & Format(RegMeasure.MeasureValue(RelayCnt(Cnt)), "0.000") & " A")
DelayMs(Val(txbMeasureDelay.Text))
Next
MEASURE_END:
DoCommand(":Run")
SetBeep(SoundEnd)
cmdDisplay("End measurement(Run Times : " + Str(MeasureTime(MeasEND)) + " ms).")
If ShowDetailLog Then cmdDisplay("Judgment start")
If StatusFail Then
RegMeasure.MeasureOkNg = "NG"
RegMeasure.MeasureGrade = "FAIL"
txbGrade.BackColor = Color.Red
txbCapacitor.BackColor = Color.Red
txbGrade.Text = "FAIL"
txbCapacitor.Text = "FAIL"
txbGrade.Refresh()
txbCapacitor.Refresh()
Exit Sub
Else
RegMeasure.MeasureValue(0) = 0
For Cnt = 1 To RelayCnt.Length - 1
If RegMeasure.MeasureValue(RelayCnt(Cnt)) <= ProMAX And RegMeasure.MeasureValue(0) = 0 Then RegMeasure.MeasureValue(0) = Cnt
If RegMeasure.MeasureValue(0) Then
If RegMeasure.MeasureValue(RegMeasure.MeasureValue(0)) < RegMeasure.MeasureValue(RelayCnt(Cnt)) Then
If RegMeasure.MeasureValue(RelayCnt(Cnt)) <= ProMAX Then
RegMeasure.MeasureValue(0) = RelayCnt(Cnt)
End If
End If
End If
Next
If RegMeasure.MeasureValue(0) = 0 Then
RegMeasure.MeasureOkNg = "NG"
RegMeasure.MeasureGrade = "OVER"
txbGrade.Text = RegMeasure.MeasureGrade
RegMeasure.MeasureValue(0) = 0
txbGrade.BackColor = Color.Red
ElseIf RegMeasure.MeasureValue(RegMeasure.MeasureValue(0)) >= ProMIN Then
RegMeasure.MeasureOkNg = "OK"
RegMeasure.MeasureGrade = "PRO"
txbGrade.Text = RegMeasure.MeasureGrade
txbGrade.BackColor = Color.Green
ElseIf RegMeasure.MeasureValue(RegMeasure.MeasureValue(0)) >= LuxMIN Then
RegMeasure.MeasureOkNg = "OK"
RegMeasure.MeasureGrade = "LUX"
txbGrade.Text = RegMeasure.MeasureGrade
txbGrade.BackColor = Color.Green
ElseIf RegMeasure.MeasureValue(RegMeasure.MeasureValue(0)) >= EyeMIN Then
RegMeasure.MeasureOkNg = "OK"
RegMeasure.MeasureGrade = "EYE"
txbGrade.Text = RegMeasure.MeasureGrade
txbGrade.BackColor = Color.Green
Else
RegMeasure.MeasureOkNg = "NG"
RegMeasure.MeasureGrade = "UNDER"
txbGrade.Text = RegMeasure.MeasureGrade
RegMeasure.MeasureValue(0) = 0
txbGrade.BackColor = Color.Red
End If
txbGrade.Refresh()
RegMeasure.MeasureCapacitor = RELAY_C(RegMeasure.MeasureValue(0))
txbCapacitor.Text = RegMeasure.MeasureCapacitor
If RegMeasure.MeasureValue(0) Then
txbCapacitor.BackColor = Color.Green
Else
txbCapacitor.BackColor = Color.Red
End If
txbRun.Text = "측정완료"
txbRun.BackColor = Color.Green
txbCapacitor.Refresh()
End If
If CalModeOn = False Then
If chbAutoMeasure.Checked Then
txbRun.Text = "DB등록중"
txbRun.BackColor = Color.DarkOrange
GetCntDB_IQC() 'TD 측정 수량 집계
If UploadDB_IQC() Then 'TD 측정 Data DB 저장
cmdDisplay("Save Measure DB failure!")
txbRun.Text = "DB등록실패"
txbRun.BackColor = Color.DarkOrange
Else
cmdDisplay("Save Measure DB complete!")
txbRun.Text = "DB등록완료"
txbRun.BackColor = Color.Green
End If
CalCntDB_IQC() 'TD 측정 수량 계산
UploadCntDB_IQC() 'TD 측정 수량 및 테스트 스텝 DB 업로드
LoadTextIQC() 'TD 측정 수량 화면 표시 업데이트
If txbRun.Text = "DB등록완료" Then
txbRun.Text = "수량등록완료"
txbRun.BackColor = Color.Green
Else
txbRun.Text = "DB등록실패"
txbRun.BackColor = Color.Red
End If
'LoadRegProduct() '생산 MES 수량 정보 DB 다운로드
'CalRegProductIQC() '생산 MES 수량 계산
'UploadRegProductIQC() '생산 MES 수량 정보 DB 업로드
End If
SaveLogStr = getNowDate() & "," & getNowTime() & "," & RegMeasure.MeasurePV_SN & "," & RegMeasure.MeasureTestStep & "," & RegMeasure.MeasureOkNg & "," & RegMeasure.MeasureGrade & "," &
RegMeasure.MeasureCapacitor & "," & RegMeasure.MeasureValue(RegMeasure.MeasureValue(0)) & "," & RegMeasure.MeasureValue(RELAY_NUM.RL1) & "," &
RegMeasure.MeasureValue(RELAY_NUM.RL2) & "," & RegMeasure.MeasureValue(RELAY_NUM.RL3) & "," & RegMeasure.MeasureValue(RELAY_NUM.RL4) & "," & RegMeasure.MeasureValue(RELAY_NUM.RL5) & "," &
RegMeasure.MeasureValue(RELAY_NUM.RL6) & "," & RegMeasure.MeasureValue(RELAY_NUM.RL7) & "," & RegMeasure.MeasureValue(RELAY_NUM.RL8) & "," & RegMeasure.MeasureValue(RELAY_NUM.RL9) & "," & RegMeasure.MeasureValue(RELAY_NUM.RL10) & "," &
RegTD_VALUE.PV_Date & "," & RegTD_VALUE.PV_Frequency & "," & RegTD_VALUE.PV_Impedance & "," & RegTD_VALUE.PV_Capacitance & "," & RegTD_VALUE.PV_Resistance & "," &
RegMesIQC.IQC_TotalCnt & "," & RegMesIQC.IQC_OKCnt & "," & RegMesIQC.IQC_NGCnt & "," & RegMesIQC.IQC_GradeCnt(MODEL_NAME.PRO) & "," & RegMesIQC.IQC_GradeCnt(MODEL_NAME.LUX) & "," &
RegMesIQC.IQC_GradeCnt(MODEL_NAME.EYE) & "," & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL1) & "," & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL2) & "," & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL3) & "," & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL4) & "," &
RegMesIQC.IQC_CapCnt(RELAY_NUM.RL5) & "," & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL6) & "," & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL7) & "," & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL8) & "," & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL9) & "," & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL10) & "," &
RegMesIQC.IQC_ReTotalCnt & "," & RegMesIQC.IQC_ReOkCnt & "," & RegMesIQC.IQC_ReNgCnt
Save_CSV(SaveLogStr)
Dim mqttResult As Boolean
If RegMeasure.MeasureOkNg = "OK" Then
mqttResult = True
Else
mqttBroker = False
End If
SaveLogStr = "[{""testdate"":""" & getNowDate() & """},{""testtime"":""" & getNowTime() & """},{""td_serial"":""" & RegMeasure.MeasurePV_SN & """},{""td_freq"":""" & RegTD_VALUE.PV_Frequency & """},{""td_imp"":""" & RegTD_VALUE.PV_Impedance & """},{""td_grade"":""" & RegMeasure.MeasureGrade & """},{""test_result"":""" & mqttResult & """},{""td_c"":""" & RegMeasure.MeasureCapacitor & """}]"
Mqtt_DataSend(SaveLogStr)
txbGrade.Refresh()
txbCapacitor.Refresh()
End If
Else
If (txbPV_SN.Text = "" Or txbPV_SN.Text = "입력하세요!") And chbAutoMeasure.Checked Then
MsgBox("T/D SN 번호를 입력해주세요")
ElseIf (Len(RegMeasure.MeasurePV_SN) <> LenPVSN And Len(RegMeasure.MeasurePV_SN) <> (LenPVSN - 1)) And chbAutoMeasure.Checked Then
MsgBox("T/D SN 번호를 형식에 맞게 입력해주세요")
ElseIf (Mid(RegMeasure.MeasurePV_SN, 1, 3) <> NamePVSN Or Mid(RegMeasure.MeasurePV_SN, 1, 1) <> NamePVSN2) And chbAutoMeasure.Checked Then
MsgBox("T/D SN 번호를 형식에 맞게 입력해주세요")
ElseIf txbPV_Freq.Text = "N/A" Or txbPV_Freq.Text = "" Then
MsgBox("T/D 주파수를 형식에 맞게 입력해주세요")
End If
End If
btnRunIQC.Enabled = True
btnRunIQC.Refresh()
If chbUseBarcode.Checked Then txbPV_SN.Focus()
Catch ResultNull As NullReferenceException
btnRunIQC.Enabled = True
btnRunIQC.Refresh()
MsgBox("Mea ERR:장비와 연결되어 있지 않습니다. 연결 상태를 확인하여 주십시오", vbCritical)
Catch ex As Exception
btnRunIQC.Enabled = True
btnRunIQC.Refresh()
MsgBox("Mea ERR:" & Err.Description)
SetBeep(SoundError)
End Try
End Sub
' Private Sub RunProcessIQC()
' Dim Cnt As Integer
' Dim StatusFail As Boolean = False
' Dim RetStr As String
' Dim SaveLogStr As String
' Dim tmpMeasureValue As Double
' Try
' If ((Len(RegMeasure.MeasurePV_SN) = LenPVSN Or Len(RegMeasure.MeasurePV_SN) = LenPVSN - 1) And (Mid(RegMeasure.MeasurePV_SN, 1, 3) = NamePVSN Or Mid(RegMeasure.MeasurePV_SN, 1, 1) = NamePVSN2)) Or chbAutoMeasure.Checked = False Or CalModeOn = True And (txbPV_Freq.Text <> "N/A" And txbPV_Freq.Text <> "") Then
' If Mid(RegMeasure.MeasurePV_SN, 1, 3) = NamePVSN Then
' IQCValueStandard(True)
' Else
' IQCValueStandard(False)
' End If
' cmdDisplay("Start measurement.")
' SetDefaultText()
' txbGrade.BackColor = DefaultBackColor
' txbGrade.Text = "측정중"
' txbGrade.Refresh()
' txbCapacitor.BackColor = DefaultBackColor
' txbCapacitor.Text = "측정중"
' txbCapacitor.Refresh()
' btnRunIQC.Enabled = False
' btnRunIQC.Refresh()
' MeasureTime(MeasSTART)
' If SetBeep(SoundStart) Then
' txbGrade.BackColor = DefaultBackColor
' txbGrade.Text = "대기"
' txbGrade.Refresh()
' txbCapacitor.BackColor = DefaultBackColor
' txbCapacitor.Text = "대기"
' txbCapacitor.Refresh()
' txbRun.Text = "통신 에러"
' txbRun.BackColor = Color.Red
' txbRun.Refresh()
' Exit Sub
' End If
' myScope.IO.Clear() ' Clear the interface.
' myScope.IO.Timeout = Val(txbTimeout.Text) ' Set I/O communication timeout.
' RetStr = DoCommand("*CLS")
' If RetStr = "Fail" Then
' StatusFail = True
' If ShowDetailLog Then
' txbRun.Text = "Scope Error 01" 'cmdDisplay("Scope clear failure")
' txbRun.BackColor = Color.Red
' txbRun.Refresh()
' End If
' GoTo MEASURE_END
' End If
' If ShowDetailLog Then cmdDisplay("Scope clear complete")
' SetFrequency(txbPV_Freq.Text)
' If ShowDetailLog Then cmdDisplay("Frequency : " & txbPV_Freq.Text & " kHz")
' '더미 샷
' SetRelay(1, 1)
' For Cnt = 1 To Val(txbIQC_DummyShotCnt.Text)
' If ShowDetailLog Then cmdDisplay("Run dummy measure sequence[" & Cnt & "]")
' RetStr = DoCommand(":Single")
' If RetStr = "Fail" Then
' StatusFail = True
' If ShowDetailLog Then cmdDisplay("Trigger set failure")
' If ShowDetailLog Then
' txbRun.Text = "Scope Error 02" 'cmdDisplay("Trigger set failure")
' txbRun.BackColor = Color.Red
' txbRun.Refresh()
' End If
' Exit For
' End If
' If ShowDetailLog Then cmdDisplay("Waiting for trigger")
' If ShowDetailLog Then cmdDisplay("Run dummy shot[" & txbOntime.Text & " ms]")
' RunShot(txbOntime.Text)
' PollingReceiveData(300)
' DelayMs(Val(txbOntime.Text) + 50)
' RetStr = RunMeasure()
' If RetStr = "Fail" Then
' StatusFail = True
' txbRun.Text = "Scope Error 03" 'cmdDisplay("Trigger failure")
' txbRun.BackColor = Color.Red
' txbRun.Refresh()
' If ShowDetailLog Then cmdDisplay("Trigger failure")
' Exit For
' End If
' tmpMeasureValue = Val(RetStr)
' cmdDisplay("Measurement[D" & Cnt & "] : " & Format(tmpMeasureValue, "0.000") & " A")
' DelayMs(Val(txbMeasureDelay.Text))
' Next
' '측정 샷
' ResetRegMeasureValue()
' For Cnt = 1 To RELAY_C.Length - 1
' If ShowDetailLog Then cmdDisplay("Run measure sequence[" & Cnt & "]")
' SetRelay(relayCnt(Cnt), 1)
' If ShowDetailLog Then cmdDisplay("Turn on relay[" & Cnt & "]")
' RetStr = DoCommand(":Single")
' If RetStr = "Fail" Then
' StatusFail = True
' txbRun.Text = "Scope Error 04" 'cmdDisplay("Trigger set failure")
' txbRun.BackColor = Color.Red
' txbRun.Refresh()
' If ShowDetailLog Then cmdDisplay("Trigger set failure")
' Exit For
' End If
' If ShowDetailLog Then cmdDisplay("Waiting for trigger")
' If ShowDetailLog Then cmdDisplay("Run shot[" & txbOntime.Text & " ms]")
' RunShot(txbOntime.Text)
' PollingReceiveData(300)
' DelayMs(Val(txbOntime.Text) + 50)
' RetStr = RunMeasure()
' If RetStr = "Fail" Then
' StatusFail = True
' txbRun.Text = "Scope Error 03" 'cmdDisplay("Trigger failure")
' txbRun.BackColor = Color.Red
' txbRun.Refresh()
' If ShowDetailLog Then cmdDisplay("Trigger failure")
' Exit For
' End If
' RegMeasure.MeasureValue(relayCnt(Cnt)) = Val(RetStr)
' tmpMeasureValue = RegMeasure.MeasureValue(relayCnt(Cnt))
' cmdDisplay("Measurement[R" & Cnt & "] : " & Format(tmpMeasureValue, "0.000") & " A")
' DelayMs(Val(txbMeasureDelay.Text))
' Next
'MEASURE_END:
' DoCommand(":Run")
' SetBeep(SoundEnd)
' cmdDisplay("End measurement(Run Times : " + Str(MeasureTime(MeasEND)) + " ms).")
' If ShowDetailLog Then cmdDisplay("Judgment start")
' If StatusFail Then
' RegMeasure.MeasureOkNg = "NG"
' RegMeasure.MeasureGrade = "FAIL"
' txbGrade.BackColor = Color.Red
' txbCapacitor.BackColor = Color.Red
' txbGrade.Text = "FAIL"
' txbCapacitor.Text = "FAIL"
' txbGrade.Refresh()
' txbCapacitor.Refresh()
' txbRun.Text = "측정실패"
' txbRun.BackColor = Color.Red
' Else
' RegMeasure.MeasureValue(0) = 0
' For Cnt = 1 To RELAY_C.Length - 1
' If RegMeasure.MeasureValue(relayCnt(Cnt)) <= ProMAX And RegMeasure.MeasureValue(0) = 0 Then RegMeasure.MeasureValue(0) = Cnt
' If RegMeasure.MeasureValue(0) Then
' If RegMeasure.MeasureValue(RegMeasure.MeasureValue(0)) < RegMeasure.MeasureValue(relayCnt(Cnt)) Then
' If RegMeasure.MeasureValue(relayCnt(Cnt)) <= ProMAX Then
' RegMeasure.MeasureValue(0) = Cnt
' End If
' End If
' End If
' Next
' If RegMeasure.MeasureValue(0) = 0 Then
' RegMeasure.MeasureOkNg = "NG"
' RegMeasure.MeasureGrade = "OVER"
' txbGrade.Text = RegMeasure.MeasureGrade
' RegMeasure.MeasureValue(0) = 0
' txbGrade.BackColor = Color.Red
' ElseIf RegMeasure.MeasureValue(RegMeasure.MeasureValue(0)) >= ProMIN Then
' RegMeasure.MeasureOkNg = "OK"
' RegMeasure.MeasureGrade = "PRO"
' txbGrade.Text = RegMeasure.MeasureGrade
' txbGrade.BackColor = Color.Green
' ElseIf RegMeasure.MeasureValue(RegMeasure.MeasureValue(0)) >= LuxMIN Then
' RegMeasure.MeasureOkNg = "OK"
' RegMeasure.MeasureGrade = "LUX"
' txbGrade.Text = RegMeasure.MeasureGrade
' txbGrade.BackColor = Color.Green
' ElseIf RegMeasure.MeasureValue(RegMeasure.MeasureValue(0)) >= EyeMIN Then
' RegMeasure.MeasureOkNg = "OK"
' RegMeasure.MeasureGrade = "EYE"
' txbGrade.Text = RegMeasure.MeasureGrade
' txbGrade.BackColor = Color.Green
' Else
' RegMeasure.MeasureOkNg = "NG"
' RegMeasure.MeasureGrade = "UNDER"
' txbGrade.Text = RegMeasure.MeasureGrade
' RegMeasure.MeasureValue(0) = 0
' txbGrade.BackColor = Color.Red
' End If
' txbGrade.Refresh()
' RegMeasure.MeasureCapacitor = RELAY_C(RegMeasure.MeasureValue(0))
' txbCapacitor.Text = RegMeasure.MeasureCapacitor
' If RegMeasure.MeasureValue(0) Then
' txbCapacitor.BackColor = Color.Green
' Else
' txbCapacitor.BackColor = Color.Red
' End If
' txbRun.Text = "측정완료"
' txbRun.BackColor = Color.Green
' txbCapacitor.Refresh()
' End If
' If chbAutoMeasure.Checked Then
' txbRun.Text = "DB등록중"
' txbRun.BackColor = Color.DarkOrange
' GetCntDB_IQC() 'TD 측정 수량 집계
' If UploadDB_IQC() Then 'TD 측정 Data DB 저장
' cmdDisplay("Save Measure DB failure!")
' txbRun.Text = "DB등록실패"
' txbRun.BackColor = Color.DarkOrange
' Else
' cmdDisplay("Save Measure DB complete!")
' txbRun.Text = "DB등록완료"
' txbRun.BackColor = Color.Green
' End If
' CalCntDB_IQC() 'TD 측정 수량 계산
' UploadCntDB_IQC() 'TD 측정 수량 및 테스트 스텝 DB 업로드
' LoadTextIQC() 'TD 측정 수량 화면 표시 업데이트
' If txbRun.Text = "DB등록완료" Then
' txbRun.Text = "수량등록완료"
' txbRun.BackColor = Color.Green
' Else
' txbRun.Text = "DB등록실패"
' txbRun.BackColor = Color.Red
' End If
' 'LoadRegProduct() '생산 MES 수량 정보 DB 다운로드
' 'CalRegProductIQC() '생산 MES 수량 계산
' 'UploadRegProductIQC() '생산 MES 수량 정보 DB 업로드
' End If
' SaveLogStr = getNowDate() & "," & getNowTime() & "," & RegMeasure.MeasurePV_SN & "," & RegMeasure.MeasureTestStep & "," & RegMeasure.MeasureOkNg & "," & RegMeasure.MeasureGrade & "," &
' RegMeasure.MeasureCapacitor & "," & RegMeasure.MeasureValue(RegMeasure.MeasureValue(0)) & "," & RegMeasure.MeasureValue(RELAY_NUM.RL1) & "," &
' RegMeasure.MeasureValue(RELAY_NUM.RL2) & "," & RegMeasure.MeasureValue(RELAY_NUM.RL3) & "," & RegMeasure.MeasureValue(RELAY_NUM.RL4) & "," & RegMeasure.MeasureValue(RELAY_NUM.RL5) & "," &
' RegMeasure.MeasureValue(RELAY_NUM.RL6) & "," & RegMeasure.MeasureValue(RELAY_NUM.RL7) & "," & RegMeasure.MeasureValue(RELAY_NUM.RL8) & "," & RegMeasure.MeasureValue(RELAY_NUM.RL9) & "," & RegMeasure.MeasureValue(RELAY_NUM.RL10) & "," &
' RegTD_VALUE.PV_Date & "," & RegTD_VALUE.PV_Frequency & "," & RegTD_VALUE.PV_Impedance & "," & RegTD_VALUE.PV_Capacitance & "," & RegTD_VALUE.PV_Resistance & "," &
' RegMesIQC.IQC_TotalCnt & "," & RegMesIQC.IQC_OKCnt & "," & RegMesIQC.IQC_NGCnt & "," & RegMesIQC.IQC_GradeCnt(MODEL_NAME.PRO) & "," & RegMesIQC.IQC_GradeCnt(MODEL_NAME.LUX) & "," &
' RegMesIQC.IQC_GradeCnt(MODEL_NAME.EYE) & "," & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL1) & "," & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL2) & "," & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL3) & "," & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL4) & "," &
' RegMesIQC.IQC_CapCnt(RELAY_NUM.RL5) & "," & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL6) & "," & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL7) & "," & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL8) & "," & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL9) & "," & RegMesIQC.IQC_CapCnt(RELAY_NUM.RL10) & "," &
' RegMesIQC.IQC_ReTotalCnt & "," & RegMesIQC.IQC_ReOkCnt & "," & RegMesIQC.IQC_ReNgCnt
' Save_CSV(SaveLogStr)
' Dim mqttResult As Boolean
' If RegMeasure.MeasureOkNg = "OK" Then
' mqttResult = True
' Else
' mqttBroker = False
' End If
' SaveLogStr = "[{""testdate"":""" & getNowDate() & """},{""testtime"":""" & getNowTime() & """},{""td_serial"":""" & RegMeasure.MeasurePV_SN & """},{""td_freq"":""" & RegTD_VALUE.PV_Frequency & """},{""td_imp"":""" & RegTD_VALUE.PV_Impedance & """},{""td_grade"":""" & RegMeasure.MeasureGrade & """},{""test_result"":""" & mqttResult & """},{""td_c"":""" & RegMeasure.MeasureCapacitor & """}]"
' Mqtt_DataSend(SaveLogStr)
' txbGrade.Refresh()
' txbCapacitor.Refresh()
' Else
' If (txbPV_SN.Text = "" Or txbPV_SN.Text = "입력하세요!") And chbAutoMeasure.Checked Then
' MsgBox("T/D SN 번호를 입력해주세요")
' ElseIf (Len(RegMeasure.MeasurePV_SN) <> LenPVSN And Len(RegMeasure.MeasurePV_SN) <> (LenPVSN - 1)) And chbAutoMeasure.Checked Then
' MsgBox("T/D SN 번호를 형식에 맞게 입력해주세요")
' ElseIf (Mid(RegMeasure.MeasurePV_SN, 1, 3) <> NamePVSN Or Mid(RegMeasure.MeasurePV_SN, 1, 1) <> NamePVSN2) And chbAutoMeasure.Checked Then
' MsgBox("T/D SN 번호를 형식에 맞게 입력해주세요")
' ElseIf txbPV_Freq.Text = "N/A" Or txbPV_Freq.Text = "" Then
' MsgBox("T/D 주파수를 형식에 맞게 입력해주세요")
' End If
' End If
' btnRunIQC.Enabled = True
' btnRunIQC.Refresh()
' If chbUseBarcode.Checked Then txbPV_SN.Focus()
' Catch ResultNull As NullReferenceException
' btnRunIQC.Enabled = True
' btnRunIQC.Refresh()
' MsgBox("Mea ERR:장비와 연결되어 있지 않습니다. 연결 상태를 확인하여 주십시오", vbCritical)
' Catch ex As Exception
' btnRunIQC.Enabled = True
' btnRunIQC.Refresh()
' MsgBox("Mea ERR:" & Err.Description)
' SetBeep(SoundError)
' End Try
' End Sub
Private Function CheckCartConnect() As Boolean
Dim retVal As String
Try
tmpCmdMessage = "getctcon"
cmdMessage = "[" & tmpCmdMessage & "]" + vbCrLf
SendData(cmdMessage)
retVal = PollingReceiveData(1000)
If retVal <> 0 Then
Return False
Else
Return True
End If
Catch
Return True
End Try
End Function
Private Function SetWriteFrequency() As Boolean
Dim tmpStr As String
tmpCmdMessage = "cartfreq"
cmdMessage = "[" & tmpCmdMessage & " " & txbPV_Freq.Text & "]" + vbCrLf
SendData(cmdMessage)
tmpStr = PollingReceiveData(3000)
If tmpStr <> txbPV_Freq.Text Then
Return True
End If
Return False
End Function
Private Function SetWriteCartManCode() As Boolean
Dim tmpStr As String
tmpCmdMessage = "cartmanu"
cmdMessage = "[" & tmpCmdMessage & " JOMT]" + vbCrLf
SendData(cmdMessage)
tmpStr = PollingReceiveData(10000)
If tmpStr <> "jomt" Then
Return True
End If
Return False
End Function
Private Function SetWriteCartModel() As Boolean
Dim tmpStr As String
If CartType = CART_TYPE.CART_NONE Then Return True
tmpCmdMessage = "ctmodel"
cmdMessage = "[" & tmpCmdMessage & " " & CartType & "]" + vbCrLf
SendData(cmdMessage)
tmpStr = PollingReceiveData(3000)
If tmpStr <> CartType Then
Return True
End If
Return False
End Function
Private Function SetWriteCartType() As Boolean
Dim tmpStr As String
Dim tmpCartType As Integer
If CartType = CART_TYPE.CART_NONE Then Return True
If CartType = CART_TYPE.PRO_EYE Or CartType = CART_TYPE.LUX_EYE Then
tmpCartType = 1
ElseIf CartType = CART_TYPE.PRO_FACE Or CartType = CART_TYPE.LUX_FACE Then
tmpCartType = 2
End If
tmpCmdMessage = "carttype"
cmdMessage = "[" & tmpCmdMessage & " " & tmpCartType & "]" + vbCrLf
SendData(cmdMessage)
tmpStr = PollingReceiveData(3000)
If tmpStr <> tmpCartType Then
Return True
End If
Return False
End Function
Private Function SetPV_SN() As Boolean
Dim tmpStr As String
tmpCmdMessage = "initcart"
cmdMessage = "[" & tmpCmdMessage & " " & txbPV_SN.Text & "]" + vbCrLf
SendData(cmdMessage)
tmpStr = PollingReceiveData(10000)
If UCase(tmpStr) <> txbPV_SN.Text Then
Return True
End If
Return False
End Function
Public Function UploadDB_PD1() As Boolean
Dim UpdateSetDataStr As String
Dim P1_Model As String = "NULL"
Dim P1_CartType As String = "NULL"
Try
Select Case CartType
Case CART_TYPE.PRO_FACE
P1_Model = "PRO"
P1_CartType = "FACE"
Case CART_TYPE.PRO_EYE
P1_Model = "PRO"
P1_CartType = "EYE"
Case CART_TYPE.LUX_FACE
P1_Model = "LUX"
P1_CartType = "FACE"
Case CART_TYPE.LUX_EYE
P1_Model = "LUX"
P1_CartType = "EYE"
Case CART_TYPE.PRO_BODY
P1_Model = "PRO"
P1_CartType = "BODY"
Case CART_TYPE.LUX_BODY
P1_Model = "LUX"
P1_CartType = "BODY"
Case CART_TYPE.ALPHA_FACE
P1_Model = "ALPHA"
P1_CartType = "FACE"
Case CART_TYPE.ALPHA_EYE
P1_Model = "ALPHA"
P1_CartType = "EYE"
Case CART_TYPE.ALPHA_BODY
P1_Model = "ALPHA"
P1_CartType = "BODY"
Case CART_TYPE.MAX_SET
P1_Model = "MAXIMUM"
P1_CartType = "SET"
End Select
If ShowDetailLog Then cmdDisplay("Enter the 'UploadDB_PD1' processor")
If RegMeasure.PreTestStep <= 29 Then
If ckbSerialUse.Checked = True Then
UpdateSetDataStr = "TestStep='" & RegMeasure.MeasureTestStep & "',P1_Frequency='" & RegTD_VALUE.PV_Frequency & "',P1_Model='" & P1_Model & "',P1_CartType='" & P1_CartType & "'"
If RegMeasure.PreTestStep < TeststepSet.Re_OK Then
UpdateSetDataStr = UpdateSetDataStr & ",P1_Date='" & getNowDate() & "',P1_Time='" & getNowTime() & "'"
End If
Else
UpdateSetDataStr = "TestStep='" & RegMeasure.MeasureTestStep & "',P0_Model='" & P1_Model & "',P0_Type='" & P1_CartType & "'"
If RegMeasure.PreTestStep < TeststepSet.Re_OK Then
UpdateSetDataStr = UpdateSetDataStr & ",P0_Date='" & getNowDate() & "',P0_Time='" & getNowTime() & "'"
End If
End If
StrCmd = "update jomtCartridgeTbl set " & UpdateSetDataStr & " where PV_SN ='" & RegTD_VALUE.PV_SN & "';"
DBCommand(StrCmd)
Return False
End If
Return True
Catch ex As Exception
Return True
End Try
End Function
Private Sub CalCntDB_PD1()
Dim cnt As Integer
If ShowDetailLog Then cmdDisplay("Enter the 'CalCntDB_PD1' processor")
ResetCntRegMesPD1()
If RegMeasure.PreTestStep < TeststepSet.First_Ok - 1 Then
CntRegMesPD1.PD1_TotalCnt += 1
If RegMeasure.MeasureOkNg = "OK" Then
CntRegMesPD1.PD1_OKCnt += 1
cnt = GradeToValue(RegMeasure.MeasureGrade)
CntRegMesPD1.PD1_GradeCnt(cnt) += 1
For cnt = 1 To 10
If RegMeasure.MeasureCapacitor = RELAY_C(cnt) Then
CntRegMesPD1.PD1_CapCnt(cnt) += 1
Exit For
End If
Next
RegMeasure.MeasureTestStep = TeststepSet.First_Ok
Else
CntRegMesPD1.PD1_NGCnt += 1
RegMeasure.MeasureTestStep = TeststepSet.First_Ng
End If
ElseIf RegMeasure.MeasureTestStep >= TeststepSet.First_Ok Then
If RegMeasure.MeasureOkNg = "OK" Then '현재 OK 이면서
RegMeasure.MeasureTestStep = TeststepSet.First_Ok
If RegMeasure.PreTestStep = TeststepSet.First_Ok Or RegMeasure.PreTestStep = TeststepSet.Re_OK Then '이전 OK 일때
ElseIf RegMeasure.PreTestStep = TeststepSet.First_Ng Or RegMeasure.PreTestStep = TeststepSet.RE_Ng Then '이전 NG 일때
CntRegMesPD1.PD1_OKCnt += 1
CntRegMesPD1.PD1_NGCnt -= 1
cnt = GradeToValue(RegMeasure.MeasureGrade)
CntRegMesPD1.PD1_GradeCnt(cnt) += 1
For cnt = 1 To 10
If RegMeasure.MeasureCapacitor = RELAY_C(cnt) Then
CntRegMesPD1.PD1_CapCnt(cnt) += 1
Exit For
End If
Next
End If
Else '현재 NG 이면서
RegMeasure.MeasureTestStep = TeststepSet.First_Ng
If RegMeasure.PreTestStep = TeststepSet.First_Ok Or RegMeasure.PreTestStep = TeststepSet.Re_OK Then '이전 OK 일때
CntRegMesPD1.PD1_OKCnt -= 1
CntRegMesPD1.PD1_NGCnt += 1
cnt = GradeToValue(RegMeasure.MeasureGrade)
CntRegMesPD1.PD1_GradeCnt(cnt) -= 1
For cnt = 1 To 5
If RegMeasure.MeasureCapacitor = RELAY_C(cnt) Then
CntRegMesPD1.PD1_CapCnt(cnt) -= 1
Exit For
End If
Next
ElseIf RegMeasure.PreTestStep = TeststepSet.First_Ng Or RegMeasure.PreTestStep = TeststepSet.RE_Ng Then '이전 NG 일때
End If
End If
End If
RegMesPD1.PD1_TotalCnt += CntRegMesPD1.PD1_TotalCnt
RegMesPD1.PD1_OKCnt += CntRegMesPD1.PD1_OKCnt
RegMesPD1.PD1_NGCnt += CntRegMesPD1.PD1_NGCnt
RegLocalPD1.PD1_TotalCnt += CntRegMesPD1.PD1_TotalCnt
RegLocalPD1.PD1_OKCnt += CntRegMesPD1.PD1_OKCnt
RegLocalPD1.PD1_NGCnt += CntRegMesPD1.PD1_NGCnt
For i = MODEL_NAME.PRO To MODEL_NAME.MAX
RegMesPD1.PD1_GradeCnt(i) += CntRegMesPD1.PD1_GradeCnt(i)
RegLocalPD1.PD1_GradeCnt(i) += CntRegMesPD1.PD1_GradeCnt(i)
Next
For i = RELAY_NUM.RL1 To RELAY_NUM.MAX_RELAY_NUM - 1
RegMesPD1.PD1_CapCnt(i) += CntRegMesPD1.PD1_CapCnt(i)
RegLocalPD1.PD1_CapCnt(i) += CntRegMesPD1.PD1_CapCnt(i)
Next
End Sub
Private Sub SaveDB_PD1()
Dim SaveLogStr As String
CalCntDB_PD1() '보드 장착 수량 계산
UploadDB_PD1() 'PD1 단계 DB 업로드
'LoadTextPD1() '보드 장착 수량 화면 표시 업데이트
UploadCntDB_PD1() '보드 장착 수량 정보 DB 업로드
SaveLocalCount()
LoadLocalCount()
'LoadRegProduct() '생산 MES 수량 정보 DB 다운로드
'CalRegProductPD1() '생산 MES 수량 계산
'UploadRegProductPD1() '생산 MES 수량 정보 DB 업로드
SaveLogStr = getNowDate() & "," & getNowTime() & "," & txbPV_SN.Text & "," & txbPV_Date.Text & "," & txbPV_Freq.Text & "," & txbPV_Z.Text & "," & txbPV_C.Text & "," & txbPV_R.Text & "," & txbGradePD1.Text & "," & txbCapacitorPD1.Text & "," & "," & txbTotalCntPD1.Text & "," & txbOkCntPD1.Text & "," & txbNgCntPD1.Text & "," & txbProCntPD1.Text & "," & txbLuxCntPD1.Text & "," & txbEyeCntPD1.Text & "," & txbR1CntPD1.Text & "," & txbR2CntPD1.Text & "," & txbR3CntPD1.Text & "," & txbR4CntPD1.Text & "," & txbR5CntPD1.Text & txbR6CntPD1.Text & txbR7CntPD1.Text & txbR8CntPD1.Text & txbR9CntPD1.Text & txbR10CntPD1.Text
Save_CSV(SaveLogStr)
End Sub
Private Sub RunProcessPD1()
Dim tmpCmd As String
If ckbSerialUse.Checked = False Then
If LoadDB() Then
Exit Sub
End If
If RunCartInfoReadPD1() Then ' IQC 측정값 읽기
btnRunPD1.Refresh()
End If
RegMeasure.MeasureOkNg = "OK"
RegMeasure.MeasureGrade = "MAX"
CartType = CART_TYPE.MAX_SET
If ckbPlay.Checked = True Then
SaveDB_PD1()
End If
btnRunPD1.Enabled = True
Else
Select Case PD1_STATUS
Case PD1_ENUM.STANDBY
If LoadDB() Then
PD1_STATUS = PD1_ENUM.STANDBY
Exit Select
End If
If RunCartInfoReadPD1() Then ' IQC 측정값 읽기
PD1_STATUS = PD1_ENUM.STANDBY
btnRunPD1.Enabled = True
btnRunPD1.Refresh()
Else
PD1_STATUS = PD1_ENUM.WAIT
If chbAutoMeasure.Checked Then
If CheckCartConnect() Then
btnRunPD1.Text = "카트리지 보드를 장착해주세요!"
btnRunPD1.Refresh()
txbCartridgePD1.BackColor = Color.Blue
txbCartridgePD1.Refresh()
Else
PD1_STATUS = PD1_ENUM.WRITE
btnRunPD1.Text = "카트리지 정보를 기록하는 중."
btnRunPD1.Refresh()
RunCartInitWrite()
End If
Else
btnRunPD1.Enabled = True
btnRunPD1.Focus()
btnRunPD1.Refresh()
End If
End If
Case PD1_ENUM.WAIT
If chbAutoMeasure.Checked Then
tmpCmd = ParsingData(False)
If tmpCmd <> "0" Then
PD1_STATUS = PD1_ENUM.WRITE
btnRunPD1.Text = "카트리지 정보를 기록하는 중."
btnRunPD1.Refresh()
RunCartInitWrite()
End If
Else
If CheckCartConnect() Then
btnRunPD1.Text = "카트리지 보드를 장착해주세요!"
btnRunPD1.Refresh()
txbCartridgePD1.BackColor = Color.Blue
txbCartridgePD1.Refresh()
Else
PD1_STATUS = PD1_ENUM.WRITE
btnRunPD1.Text = "카트리지 정보를 기록하는 중."
btnRunPD1.Refresh()
RunCartInitWrite()
End If
btnRunPD1.Focus()
End If
Case PD1_ENUM.WRITE
If chbAutoMeasure.Checked Then
tmpCmd = ParsingData(False)
If tmpCmd = "1" Or (Mid(tmpCmd, 1, 3) = "dit" And Len(tmpCmd) = 9) Or (Mid(tmpCmd, 1, 3) = "dit" And Len(tmpCmd) = 10) Or (Mid(tmpCmd, 1, 1) = "j" And Len(tmpCmd) = 10) Then
PD1_STATUS = PD1_ENUM.WRITE
btnRunPD1.Text = "카트리지 정보를 기록하는 중."
btnRunPD1.Refresh()
RunCartInitWrite()
End If
End If
End Select
If PD1_STATUS = PD1_ENUM.SAVE Then
SaveDB_PD1()
PD1_STATUS = PD1_ENUM.STANDBY
End If
End If
End Sub
Private Sub RunProcessPD2()
Dim tmpCmd As String
Dim RetStr As String
Dim StatusFail As Boolean = False
Try
If chbAutoMeasure.Checked Then
tmpCmd = ParsingData(False)
Else
tmpCmd = txbPV_SN.Text
End If
tmpCmd = UCase(tmpCmd)
If (Mid(tmpCmd, 1, 3) = "DIT" And Len(tmpCmd) = 9) Or (Mid(tmpCmd, 1, 3) = "DIT" And Len(tmpCmd) = 10) Then
DispToggle = False
txbPV_SN.BackColor = DefaultBackColor
txbPV_SN.Clear()
txbPV_SN.AppendText(tmpCmd)
LoadDB()
LoadGrade()
cmdDisplay("Start measurement.")
txbJudge.BackColor = DefaultBackColor
txbJudge.Text = "측정중"
txbJudge.Refresh()
txbWriteInfo.BackColor = DefaultBackColor
txbWriteInfo.Text = "대기"
txbWriteInfo.Refresh()
MeasureTime(MeasSTART)
myScope.IO.Clear() ' Clear the interface.
myScope.IO.Timeout = Val(txbTimeout.Text) ' Set I/O communication timeout.
RetStr = DoCommand("*CLS")
If RetStr = "Fail" Then
StatusFail = True
GoTo MEASURE_END
End If
SetFrequency(txbPV_Freq.Text)
DelayMs(Val(txbStartWaitDelay.Text))
RunShot(txbOntime.Text)
PollingReceiveData(300)
RunShot(txbOntime.Text)
PollingReceiveData(300)
txbJudge.Text = "측정대기중"
txbJudge.Refresh()
RunStableTime()
RetStr = DoCommand(":Single")
If RetStr = "Fail" Then
StatusFail = True
GoTo MEASURE_END
End If
RunShot(txbOntime.Text)
PollingReceiveData(300)
DelayMs(Val(txbOntime.Text) + 50)
RetStr = RunMeasure()
If RetStr = "Fail" Then
StatusFail = True
DoCommand(":RUN")
GoTo MEASURE_END
End If
'DoCommand(":RUN")
PD2_Current = Val(RetStr) + Val(txbOffsetValue.Text)
cmdDisplay("Measurement : " & Format(PD2_Current, "0.000") & " A")
TransDB_PD2()
If (QC_Current >= (PD2_Current - Val(txbErrorFactor.Text))) And (QC_Current <= (PD2_Current + Val(txbErrorFactor.Text))) Then
txbJudge.Text = "OK"
txbJudge.BackColor = Color.Green
txbJudge.Refresh()
Else
txbJudge.Text = "NG"
txbJudge.BackColor = Color.Red
txbJudge.Refresh()
End If
ElseIf tmpCmd = "0" Then
DispToggle = True
txbPV_SN.Clear()
txbPV_SN.AppendText("대기중")
txbPV_Date.Text = "N/A"
txbPV_Freq.Text = "N/A"
txbPV_Z.Text = "N/A"
txbPV_C.Text = "N/A"
txbPV_R.Text = "N/A"
txbGradeP2.Text = "N/A"
txbCapacitorP2.Text = "N/A"
txbJudge.Text = "N/A"
txbWriteInfo.Text = "N/A"
txbPV_Date.Refresh()
txbPV_Freq.Refresh()
txbPV_Z.Refresh()
txbPV_C.Refresh()
txbPV_R.Refresh()
txbGradeP2.Refresh()
txbCapacitorP2.Refresh()
txbJudge.Refresh()
txbWriteInfo.Refresh()
End If
txbCmdWindowP2.Focus()
Exit Sub
Catch ex As Exception
MsgBox(Err.Description)
End Try
MEASURE_END:
txbJudge.Text = "NG"
txbJudge.BackColor = Color.Red
txbJudge.Refresh()
End Sub
Private Sub RunProcessPD3()
Dim Cnt As Integer
Try
If (txbPV_Freq.Text = "N/A" Or txbPV_Freq.Text = "") And (txbCapacitorPD3.Text = "대기" Or txbCapacitorPD3.Text = "") Then
MsgBox("카트리지 정보를 입력해주세요.")
GoTo FAIL_END
End If
If (rdbMode1.Checked = False And rdbMode2.Checked = False And rdbMode3.Checked = False) Then
MsgBox("카트리지 모드 정보를 입력해주세요.")
GoTo FAIL_END
End If
If SetFrequencyReturn(txbPV_Freq.Text) Then
''txbGradePD3.Text = "FAIL"
''txbGradePD3.BackColor = Color.Red
''txbGradePD3.Refresh()
GoTo FAIL_END
End If
For Cnt = 1 To 10
If RELAY_C(Cnt) = txbCapacitorPD3.Text Then
If SetRelay(Cnt, 1) Then
''txbCapacitorPD3.Text = "FAIL"
''txbCapacitorPD3.BackColor = Color.Red
''txbCapacitorPD3.Refresh()
GoTo FAIL_END
End If
End If
Next
If chbAutoMeasure.Checked Then
txbPV_SN.Focus()
End If
Exit Sub
Catch ex As Exception
txbGradePD3.Text = "FAIL"
txbCapacitorPD3.Text = "FAIL"
txbGradePD3.BackColor = Color.Red
txbCapacitorPD3.BackColor = Color.Red
txbGradePD3.Refresh()
txbCapacitorPD3.Refresh()
End Try
FAIL_END:
txbGradePD3.Text = "FAIL"
txbCapacitorPD3.Text = "FAIL"
txbGradePD3.BackColor = Color.Red
txbCapacitorPD3.BackColor = Color.Red
txbGradePD3.Refresh()
txbCapacitorPD3.Refresh()
If chbAutoMeasure.Checked Then
txbPV_SN.Focus()
End If
End Sub
Private Function RunCartInfoReadPD1() As Boolean
Dim tmpBackColor As Object = txbGradePD1.BackColor
Dim RunBol As Boolean = True
Dim OKRunSwitch As Boolean = False
Try
If (((Len(txbPV_SN.Text) = LenPVSN Or Len(txbPV_SN.Text) = LenPVSN - 1) And (Mid(txbPV_SN.Text, 1, 3) = NamePVSN Or Mid(txbPV_SN.Text, 1, 1) = NamePVSN2) Or chbAutoMeasure.Checked = False) And (txbPV_Freq.Text <> "N/A" And txbPV_Freq.Text <> "")) Then
txbGradePD1.BackColor = DefaultBackColor
txbGradePD1.Text = "로딩중"
txbGradePD1.Refresh()
txbCapacitorPD1.BackColor = DefaultBackColor
txbCapacitorPD1.Text = "로딩중"
txbCapacitorPD1.Refresh()
txbCartridgePD1.BackColor = DefaultBackColor
txbCartridgePD1.Text = "대기"
txbCartridgePD1.Refresh()
btnRunPD1.Enabled = False
btnRunPD1.Refresh()
If ckbSerialUse.Checked = False Then
If Mid(txbPV_SN.Text, 1, 4) = "DITH" Or Mid(txbPV_SN.Text, 1, 2) = "J2" Then
OKRunSwitch = False
Else
OKRunSwitch = True
End If
Else
OKRunSwitch = True
End If
If OKRunSwitch = True Then
cmd = "select TestStep,QC_Grade,QC_Capacitor from jomtCartridgeTbl where PV_SN = '" + txbPV_SN.Text + "';"
If DBQueryReader(cmd) Then
RegMeasure.MeasureTestStep = sqlDataQuery(0)
RegMeasure.MeasureGrade = sqlDataQuery(1)
RegMeasure.MeasureCapacitor = sqlDataQuery(2)
If GradeStop Mod 3 = 2 Or GradeStop Mod 3 = 1 Then
If RegMeasure.MeasureGrade = "0" Then
txbGradePD1.Text = "미측정"
txbCapacitorPD1.Text = "N/A"
txbGradePD1.BackColor = Color.Red
txbCapacitorPD1.BackColor = Color.Red
RegMeasure.MeasureOkNg = "NG"
End If
If txbCapacitorPD1.Text = "N/A" Then
txbGradePD1.BackColor = Color.Red
txbCapacitorPD1.BackColor = Color.Red
RegMeasure.MeasureOkNg = "NG"
End If
If RegMeasure.MeasureOkNg <> "NG" Then
txbCapacitorPD1.BackColor = Color.Green
txbCapacitorPD1.Text = RegMeasure.MeasureCapacitor
RegMeasure.MeasureGrade = SettingMeasure
txbGradePD1.BackColor = Color.Green
txbGradePD1.Text = RegMeasure.MeasureGrade
End If
Else
If RegMeasure.MeasureGrade = "OVER" Then
txbGradePD1.Text = "OVER"
txbCapacitorPD1.Text = "사용불가"
txbCartridgePD1.Text = "사용불가"
txbCapacitorPD1.BackColor = Color.Red
txbGradePD1.BackColor = Color.Red
txbCartridgePD1.BackColor = Color.Red
RegMeasure.MeasureOkNg = "NG"
txbGradePD1.Refresh()
txbCapacitorPD1.Refresh()
txbCartridgePD1.Refresh()
End If
If RegMeasure.MeasureGrade = "0" Then
txbGradePD1.Text = "미측정"
txbCapacitorPD1.Text = "N/A"
txbCartridgePD1.Text = "사용불가"
txbCapacitorPD1.BackColor = Color.Red
txbGradePD1.BackColor = Color.Red
txbCartridgePD1.BackColor = Color.Red
RegMeasure.MeasureOkNg = "NG"
txbGradePD1.Refresh()
txbCapacitorPD1.Refresh()
txbCartridgePD1.Refresh()
End If
If txbCapacitorPD1.Text = "N/A" Then
txbCartridgePD1.Text = "사용불가"
txbCapacitorPD1.BackColor = Color.Red
txbGradePD1.BackColor = Color.Red
txbCartridgePD1.BackColor = Color.Red
RegMeasure.MeasureOkNg = "NG"
txbGradePD1.Refresh()
txbCapacitorPD1.Refresh()
txbCartridgePD1.Refresh()
End If
If RegMeasure.MeasureOkNg <> "NG" Then
If rdbCmat_5.Checked = True Then
For run = 0 To 1
Select Case RegMeasure.MeasureCapacitor
Case RELAY_C(1)
txbCapacitorPD1.BackColor = Color.Red
txbCapacitorPD1.ForeColor = Color.Black
txbCapacitorPD1.Text = "RED"
Case RELAY_C(2)
txbCapacitorPD1.BackColor = Color.Green
txbCapacitorPD1.ForeColor = Color.Black
txbCapacitorPD1.Text = "GREEN"
Case RELAY_C(3)
txbCapacitorPD1.BackColor = Color.Blue
txbCapacitorPD1.ForeColor = Color.Black
txbCapacitorPD1.Text = "BLUE"
Case RELAY_C(4)
txbCapacitorPD1.BackColor = Color.Black
txbCapacitorPD1.ForeColor = Color.White
txbCapacitorPD1.Text = "BLACK"
Case RELAY_C(5)
txbCapacitorPD1.BackColor = Color.SeaShell
txbCapacitorPD1.ForeColor = Color.Black
txbCapacitorPD1.Text = "WHITE"
Case Else
If cValueChange() Then
RunBol = False
End If
End Select
If RunBol = True Then
Exit For
Else
RunBol = True
End If
Next
If RunBol = True Then
If RegMeasure.MeasureGrade <> "OVER" And RegMeasure.MeasureGrade <> "UNDER" And RegMeasure.MeasureGrade <> "EYE" Then
txbGradePD1.Text = RegMeasure.MeasureGrade
txbGradePD1.BackColor = Color.Green
Else
txbGradePD1.Text = RegMeasure.MeasureGrade
txbCapacitorPD1.Text = "N/A"
txbGradePD1.BackColor = Color.Red
txbCapacitorPD1.BackColor = Color.Red
End If
Else
txbGradePD1.Text = "N/A"
txbCapacitorPD1.Text = "N/A"
txbGradePD1.BackColor = Color.Red
txbCapacitorPD1.BackColor = Color.Red
End If
Else
txbGradePD1.BackColor = Color.Green
txbCapacitorPD1.BackColor = Color.Green
txbGradePD1.Text = RegMeasure.MeasureGrade
txbCapacitorPD1.Text = RegMeasure.MeasureCapacitor
End If
End If
End If
txbGradePD1.Refresh()
txbCapacitorPD1.Refresh()
Else
txbGradePD1.Text = "N/A"
txbCapacitorPD1.Text = "N/A"
txbGradePD1.BackColor = Color.Red
txbCapacitorPD1.BackColor = Color.Red
txbGradePD1.Refresh()
txbCapacitorPD1.Refresh()
End If
Else
txbGradePD1.Text = "사용불가"
txbCapacitorPD1.Text = "N/A"
txbCartridgePD1.Text = "사용불가"
txbCapacitorPD1.BackColor = Color.Red
txbGradePD1.BackColor = Color.Red
txbCartridgePD1.BackColor = Color.Red
RegMeasure.MeasureOkNg = "NG"
txbGradePD1.Refresh()
txbCapacitorPD1.Refresh()
txbCartridgePD1.Refresh()
End If
Else
If (txbPV_SN.Text = "" Or txbPV_SN.Text = "입력하세요!") And chbAutoMeasure.Checked Then
MsgBox("T/D SN 번호를 입력해주세요")
ElseIf (Len(txbPV_SN.Text) <> LenPVSN And Len(txbPV_SN.Text) <> (LenPVSN - 1)) And chbAutoMeasure.Checked Then
MsgBox("T/D SN 번호를 형식에 맞게 입력해주세요")
ElseIf Mid(txbPV_SN.Text, 1, 3) <> NamePVSN And chbAutoMeasure.Checked Then
MsgBox("T/D SN 번호를 형식에 맞게 입력해주세요")
End If
Return False
End If
If chbUseBarcode.Checked Then txbPV_SN.Focus()
If txbGradePD1.Text = "N/A" Or txbCapacitorPD1.Text = "N/A" Or RegMeasure.MeasureOkNg = "NG" Then
Return True
Else
Return False
End If
Catch e As Exception
MsgBox(e, vbCritical)
SetBeep(SoundError)
Return True
End Try
End Function
Private Function cValueChange() As Boolean
ReDim RegMeasure.MeasureValue(10)
RegMeasure.MeasureValue(0) = 0
If Mid(txtPVSN, 1, 3) = NamePVSN Then
IQCValueStandard(True)
Else
IQCValueStandard(False)
End If
cmd = "SELECT QC_R1Value,QC_R2Value,QC_R3Value,QC_R4Value,QC_R5Value,QC_R6Value,QC_R7Value,QC_R8Value,QC_R9Value,QC_R10Value FROM jomtCartridgeTbl WHERE PV_SN = '" + txbPV_SN.Text + "'"
If DBQueryReader(cmd) Then
For i = 1 To sqlDataQuery.Length
RegMeasure.MeasureValue(i) = sqlDataQuery(i - 1)
Next
For Cnt = 1 To 10
If Cnt = nudmat_1.Value Or Cnt = nudmat_2.Value Or Cnt = nudmat_3.Value Or Cnt = nudmat_4.Value Or Cnt = nudmat_5.Value Then
If RegMeasure.MeasureValue(Cnt) <= ProMAX And RegMeasure.MeasureValue(0) = 0 Then RegMeasure.MeasureValue(0) = Cnt
If RegMeasure.MeasureValue(0) Then
If RegMeasure.MeasureValue(RegMeasure.MeasureValue(0)) < RegMeasure.MeasureValue(Cnt) Then
If RegMeasure.MeasureValue(Cnt) <= ProMAX Then
RegMeasure.MeasureValue(0) = Cnt
End If
End If
End If
End If
Next
If RegMeasure.MeasureValue(0) = 0 Then
RegMeasure.MeasureGrade = "OVER"
ElseIf RegMeasure.MeasureValue(RegMeasure.MeasureValue(0)) >= ProMIN Then
RegMeasure.MeasureGrade = "PRO"
ElseIf RegMeasure.MeasureValue(RegMeasure.MeasureValue(0)) >= LuxMIN Then
RegMeasure.MeasureGrade = "LUX"
ElseIf RegMeasure.MeasureValue(RegMeasure.MeasureValue(0)) >= EyeMIN Then
RegMeasure.MeasureGrade = "EYE"
Else
RegMeasure.MeasureGrade = "UNDER"
RegMeasure.MeasureValue(0) = 0
End If
If RegMeasure.MeasureValue(0) <> 0 Then
RegMeasure.MeasureCapacitor = RelayTxb(RegMeasure.MeasureValue(0)).Text
Return True
Else
Return False
End If
Else
Return False
End If
End Function
Private Function RunCartInfoReadPD3() As Boolean
Dim tmpBackColor As Object = txbGradePD1.BackColor
Try
If (((Len(txbPV_SN.Text) = LenPVSN Or Len(txbPV_SN.Text) = LenPVSN - 1) And Mid(txbPV_SN.Text, 1, 3) = NamePVSN) Or chbAutoMeasure.Checked = False) And (txbPV_Freq.Text <> "N/A" And txbPV_Freq.Text <> "") Then
txbGradePD3.BackColor = DefaultBackColor
txbGradePD3.Text = "로딩중"
txbGradePD3.Refresh()
txbCapacitorPD3.BackColor = DefaultBackColor
txbCapacitorPD3.Text = "로딩중"
txbCapacitorPD3.Refresh()
cmd = "select TestStep,QC_Grade,QC_Capacitor from jomtCartridgeTbl where PV_SN = '" + txbPV_SN.Text + "';"
If DBQueryReader(cmd) Then
RegMeasure.MeasureTestStep = sqlDataQuery(0)
RegMeasure.MeasureGrade = sqlDataQuery(1)
RegMeasure.MeasureCapacitor = sqlDataQuery(2)
txbGradePD3.BackColor = Color.Green
txbCapacitorPD3.BackColor = Color.Green
txbGradePD3.Text = RegMeasure.MeasureGrade
txbCapacitorPD3.Text = RegMeasure.MeasureCapacitor
txbGradePD3.Refresh()
txbCapacitorPD3.Refresh()
Else
txbGradePD3.Text = "N/A"
txbCapacitorPD3.Text = "N/A"
txbGradePD3.BackColor = Color.Red
txbCapacitorPD3.BackColor = Color.Red
txbGradePD3.Refresh()
txbCapacitorPD3.Refresh()
End If
Else
If (txbPV_SN.Text = "" Or txbPV_SN.Text = "입력하세요!") And chbAutoMeasure.Checked Then
MsgBox("T/D SN 번호를 입력해주세요")
ElseIf (Len(txbPV_SN.Text) <> LenPVSN And Len(txbPV_SN.Text) <> (LenPVSN - 1)) And chbAutoMeasure.Checked Then
MsgBox("T/D SN 번호를 형식에 맞게 입력해주세요")
ElseIf Mid(txbPV_SN.Text, 1, 3) <> NamePVSN And chbAutoMeasure.Checked Then
MsgBox("T/D SN 번호를 형식에 맞게 입력해주세요")
End If
Return False
End If
If chbUseBarcode.Checked Then txbPV_SN.Focus()
If txbGradePD3.Text = "N/A" Or txbCapacitorPD3.Text = "N/A" Then
Return True
Else
Return False
End If
Catch
SetBeep(SoundError)
Return True
End Try
End Function
Public Sub SetCartModelType()
If ckbUseModelSelect.Checked Then
frmModelSelect.ShowDialog()
Else
If ckbUseGradeChange.Checked Then
If CartType = CART_TYPE.PRO_FACE Then
If RegMeasure.MeasureGrade = "LUX" Or RegMeasure.MeasureGrade = "EYE" Then
frmModelSelect.ShowDialog()
End If
ElseIf CartType = CART_TYPE.LUX_FACE Then
If RegMeasure.MeasureGrade = "EYE" Then
frmModelSelect.ShowDialog()
End If
End If
End If
End If
End Sub
Public Function TD_SNSearch() As String
tmpCmdMessage = "carttdsn"
cmdMessage = "[" & tmpCmdMessage & "]" + vbCrLf
SendData(cmdMessage)
Return PollingReceiveData(3000)
End Function
Public Sub RunCartInitWrite()
Dim FailFlag As Boolean = False
Try
If (txbGradePD1.Text = "FAIL" Or txbGradePD1.Text = "N/A") Or (txbCapacitorPD1.Text = "FAIL" Or txbCapacitorPD1.Text = "N/A") Then
txbCartridgePD1.Text = "N/A"
txbCartridgePD1.Refresh()
MsgBox("T/D 정보를 확인 해주세요")
PD1_STATUS = PD1_ENUM.STANDBY
Exit Sub
End If
txbCartridgePD1.Text = "쓰기중"
txbCartridgePD1.BackColor = DefaultBackColor
btnRunPD1.Enabled = False
txbCartridgePD1.Refresh()
Dim tdSnData As String = TD_SNSearch()
'If UCase(Mid(tdSnData, 1, 3)) = "DIT" Or UCase(Mid(tdSnData, 1, 1)) = "J" Then
' txbCartridgePD1.BackColor = Color.Yellow
' txbCartridgePD1.Text = "정보입력중"
' txbCartridgePD1.Refresh()
' If SetInfo() Then
' FailFlag = True
' txbCartridgePD1.BackColor = Color.OrangeRed
' GoTo MEASURE_END
' End If
'Else
' If SetAuth() Then
' FailFlag = True
' txbCartridgePD1.BackColor = Color.OrangeRed
' GoTo MEASURE_END
' End If
' txbCartridgePD1.BackColor = Color.Yellow
' txbCartridgePD1.Text = "정보입력중"
' txbCartridgePD1.Refresh()
' If SetInfo() Then
' FailFlag = True
' txbCartridgePD1.BackColor = Color.OrangeRed
' GoTo MEASURE_END
' End If
'End If
If UCase(Mid(tdSnData, 1, 3)) <> "DIT" Or UCase(Mid(tdSnData, 1, 1)) <> "J" Then
If SetAuth() Then
FailFlag = True
txbCartridgePD1.BackColor = Color.OrangeRed
GoTo MEASURE_END
End If
txbCartridgePD1.BackColor = Color.Yellow
txbCartridgePD1.Text = "정보입력중"
txbCartridgePD1.Refresh()
If SetInfo() Then
FailFlag = True
txbCartridgePD1.BackColor = Color.OrangeRed
GoTo MEASURE_END
End If
Else
txbCartridgePD1.BackColor = Color.Yellow
txbCartridgePD1.Text = "정보입력중"
txbCartridgePD1.Refresh()
If SetInfo() Then
FailFlag = True
txbCartridgePD1.BackColor = Color.OrangeRed
GoTo MEASURE_END
End If
End If
MEASURE_END:
If FailFlag Then
RegMeasure.MeasureOkNg = "NG"
txbCartridgePD1.Text = "FAIL"
txbCartridgePD1.Refresh()
btnRunPD1.Text = "재실행"
btnRunPD1.Visible = True
btnRunPD1.Enabled = True
btnRunPD1.Focus()
btnRunPD1.Refresh()
PD1_STATUS = PD1_ENUM.WAIT
Else
RegMeasure.MeasureOkNg = "OK"
txbCartridgePD1.BackColor = Color.Green
txbCartridgePD1.Text = "OK"
txbCartridgePD1.Refresh()
btnRunPD1.Text = "실행"
btnRunPD1.Visible = True
If chbAutoMeasure.Checked And chbUseBarcode.Checked Then
btnRunPD1.Enabled = False
Else
btnRunPD1.Enabled = True
End If
btnRunPD1.Refresh()
PD1_STATUS = PD1_ENUM.SAVE
End If
Catch
RegMeasure.MeasureOkNg = "NG"
txbCartridgePD1.Text = "FAIL"
txbCartridgePD1.BackColor = Color.PaleVioletRed
txbCartridgePD1.Refresh()
btnRunPD1.Text = "재실행"
btnRunPD1.Visible = True
btnRunPD1.Enabled = True
btnRunPD1.Focus()
btnRunPD1.Refresh()
PD1_STATUS = PD1_ENUM.WAIT
SetBeep(SoundError)
End Try
End Sub
Private Function SetAuth() As Boolean
Dim tmpStr As String
tmpCmdMessage = "cartauth"
cmdMessage = "[" & tmpCmdMessage & "]" + vbCrLf
SendData(cmdMessage)
tmpStr = PollingReceiveData(5000)
If Mid(tmpStr, 1, 7) = "success" Then
Return False
End If
Return True
End Function
Public Function SetInfo() As Boolean
Dim retVal, power, tShot, rShot As String
power = 0
If Mid(txbPV_SN.Text, 1, 4) = "DITH" Or Mid(txbPV_SN.Text, 1, 2) = "J2" Then
If rdb20mm.Checked = True Then
If txbGradePD1.Text = "PRO" Then
CartType = CART_TYPE.PRO_BODY
tShot = 30000
rShot = 30000
Else
tShot = 20000
rShot = 20000
End If
Else
If txbGradePD1.Text = "PRO" Then
CartType = CART_TYPE.ALPHA_BODY
tShot = 50000
rShot = 50000
Else
Return True
End If
End If
Else
If rdb20mm.Checked = True Then
If txbGradePD1.Text = "PRO" Then
CartType = CART_TYPE.PRO_FACE
tShot = 6000
rShot = 6000
Else
CartType = CART_TYPE.PRO_EYE
tShot = 60000
rShot = 60000
End If
Else
If txbGradePD1.Text = "PRO" Then
CartType = CART_TYPE.ALPHA_FACE
tShot = 20000
rShot = 20000
Else
CartType = CART_TYPE.ALPHA_EYE
tShot = 90000
rShot = 90000
End If
End If
End If
tmpCmdMessage = "cartinfo"
cmdMessage = "[" & tmpCmdMessage & " " & txbPV_SN.Text & "," & CartType & "," & txbPV_Freq.Text & "," & power & "," & tShot & "," & rShot & "]" + vbCrLf
SendData(cmdMessage)
retVal = PollingReceiveData(5000)
If UCase(Mid(retVal, 1, InStr(1, retVal, ",") - 1)) <> txbPV_SN.Text Then
Return True
End If
If Mid(retVal, 12, 2) = CartType.ToString Or Mid(retVal, 11, 2) = CartType.ToString Then
Return True
End If
If Mid(retVal, 17, 4) = txbPV_Freq.Text Or Mid(retVal, 16, 4) = txbPV_Freq.Text Then
Return False
Else
Return True
End If
End Function
Private Sub txbPV_SN_TextChanged(sender As Object, e As EventArgs) Handles txbPV_SN.TextChanged
Dim tmpStr As String
If DevNum = 1 Or DevNum = 2 Or DevNum = 4 Then
If InputCnt = 0 And chbUseBarcode.Checked = True Then
tmpStr = txbPV_SN.Text
If (Len(tmpStr) > 1) Then
tmpStr = Mid(tmpStr, Len(tmpStr), 1)
txbPV_SN.Clear()
txbPV_SN.AppendText(tmpStr)
End If
SetInputCnt()
End If
ElseIf DevNum = 3 Then
If chbAutoMeasure.Checked Then
txbCmdWindowP2.Focus()
Else
txbPV_SN.Focus()
End If
Else
End If
End Sub
Sub SetInputCnt()
InputCnt = InputCntVal
InputTimer.Enabled = True
End Sub
Function LoadDB() As Boolean
Try
ResetRegMeasure()
RegMeasure.MeasurePV_SN = txtPVSN
If LoadRegTD(RegMeasure.MeasurePV_SN) Then
txbPV_Date.Text = "N/A"
txbPV_Date.ForeColor = Color.Red
txbPV_Freq.Text = "N/A"
txbPV_Freq.ForeColor = Color.Red
txbPV_Z.Text = "N/A"
txbPV_Z.ForeColor = Color.Red
txbPV_C.Text = "N/A"
txbPV_C.ForeColor = Color.Red
txbPV_R.Text = "N/A"
txbPV_R.ForeColor = Color.Red
cmdDisplay("T/D(SN:" + txtPVSN + ") Database loading failed.")
txbPV_Date.Refresh()
txbPV_Freq.Refresh()
txbPV_Z.Refresh()
txbPV_C.Refresh()
txbPV_R.Refresh()
Return True
Else
txbPV_Date.Text = RegTD_VALUE.PV_Date
txbPV_Date.ForeColor = Color.Black
txbPV_Freq.Text = RegTD_VALUE.PV_Frequency
txbPV_Freq.ForeColor = Color.Black
txbPV_Z.Text = RegTD_VALUE.PV_Impedance
txbPV_Z.ForeColor = Color.Black
txbPV_C.Text = RegTD_VALUE.PV_Capacitance
txbPV_C.ForeColor = Color.Black
txbPV_R.Text = RegTD_VALUE.PV_Resistance
txbPV_R.ForeColor = Color.Black
cmdDisplay("T/D(SN:" + RegTD_VALUE.PV_SN + ") DB loading succeeded.")
txbPV_Date.Refresh()
txbPV_Freq.Refresh()
txbPV_Z.Refresh()
txbPV_C.Refresh()
txbPV_R.Refresh()
Return False
End If
Catch ex As Exception
Return True
End Try
End Function
Sub LoadGrade()
If (Len(txbPV_SN.Text) = LenPVSN Or Len(txbPV_SN.Text) = LenPVSN - 1) And Mid(txbPV_SN.Text, 1, 3) = NamePVSN Then
txbGradeP2.Clear()
txbCapacitorP2.Clear()
cmd = "select TestStep,QC_Grade,QC_Capacitor,QC_Current from jomtCartridgeTbl where PV_SN = '" + txbPV_SN.Text + "';"
If DBQueryReader(cmd) Then
TestStep = Val(Mid(sqlDataQuery(0), 1, InStr(sqlDataQuery(0), " ")))
txbGradeP2.Text = sqlDataQuery(1)
txbCapacitorP2.Text = sqlDataQuery(2)
QC_Current = Val(sqlDataQuery(3))
'cmdDisplay("T/D(SN:" + txbPV_SN.Text + ") DB loading succeeded.")
Else
txbGradeP2.Text = "N/A"
txbCapacitorP2.Text = "N/A"
'cmdDisplay("T/D(SN:" + txbPV_SN.Text + ") Database loading failed.")
End If
txbGradeP2.Refresh()
txbCapacitorP2.Refresh()
Else
' cmdDisplay("T/D(SN:" + txbPV_SN.Text + ") Database loading failed.")
End If
End Sub
Public Sub runSetupWindow()
If EnableSetup Then
loadSetupWindows()
Else
MsgBox("권한이 있는지 확인하세요.")
End If
frmLogin.Hide()
End Sub
Private Sub btnSetup_Click(sender As Object, e As EventArgs) Handles btnSetup.Click
frmLogin.ShowDialog()
End Sub
Private Sub btnSetupExit_Click(sender As Object, e As EventArgs) Handles btnSetupExit.Click
If ParametarLoad() Then
initDevice()
OpenSerial()
gpbSetupWindow.Visible = False
DefaultTextColor()
btnSetup.Enabled = True
Me.Size = New Size(1040, 784)
Else
End
End If
End Sub
Private Sub btnSetupSave_Click(sender As Object, e As EventArgs) Handles btnSetupSave.Click
Dim retVal As Integer
retVal = MsgBox("설정을 저장하시겠습니까?", vbYesNo + vbExclamation, "DUALSONIC Configuation")
If retVal = 6 Then
Dim valueList As List(Of String) = New List(Of String)() From {nudmat_1.Value, nudmat_2.Value, nudmat_3.Value, nudmat_4.Value, nudmat_5.Value}
If valueList.Count <> valueList.Distinct().Count Then
MsgBox("C값 매칭 데이터 중 중복값이 존재합니다.", vbExclamation)
Exit Sub
End If
Save_ini(False)
PrintSaveData()
DefaultTextColor()
End If
End Sub
Private Sub txbMeasureDelay_TextChanged(sender As Object, e As EventArgs) Handles txbMeasureDelay.TextChanged
txbMeasureDelay.ForeColor = Color.Red
End Sub
Private Sub txbTimeout_TextChanged(sender As Object, e As EventArgs) Handles txbTimeout.TextChanged
txbTimeout.ForeColor = Color.Red
End Sub
Private Sub txbOntime_TextChanged(sender As Object, e As EventArgs) Handles txbOntime.TextChanged
txbOntime.ForeColor = Color.Red
End Sub
Private Sub txbHSCALE_TextChanged(sender As Object, e As EventArgs) Handles txbHSCALE.TextChanged
txbHSCALE.ForeColor = Color.Red
End Sub
Private Sub txbHPOS_TextChanged(sender As Object, e As EventArgs) Handles txbHPOS.TextChanged
txbHPOS.ForeColor = Color.Red
End Sub
Private Sub txbVSCALE_TextChanged(sender As Object, e As EventArgs) Handles txbVSCALE.TextChanged
txbVSCALE.ForeColor = Color.Red
End Sub
Private Sub txbVPOS_TextChanged(sender As Object, e As EventArgs) Handles txbVPOS.TextChanged
txbVPOS.ForeColor = Color.Red
End Sub
Private Sub txbProMax_TextChanged(sender As Object, e As EventArgs) Handles txbProMax.TextChanged
txbProMax.ForeColor = Color.Red
End Sub
Private Sub txbProTyp_TextChanged(sender As Object, e As EventArgs) Handles txbProTyp.TextChanged
txbProTyp.ForeColor = Color.Red
End Sub
Private Sub txbProMin_TextChanged(sender As Object, e As EventArgs) Handles txbProMin.TextChanged
txbProMin.ForeColor = Color.Red
End Sub
Private Sub txbLuxMax_TextChanged(sender As Object, e As EventArgs) Handles txbLuxMax.TextChanged
txbLuxMax.ForeColor = Color.Red
End Sub
Private Sub txbLuxTyp_TextChanged(sender As Object, e As EventArgs) Handles txbLuxTyp.TextChanged
txbLuxTyp.ForeColor = Color.Red
End Sub
Private Sub txbLuxMin_TextChanged(sender As Object, e As EventArgs) Handles txbLuxMin.TextChanged
txbLuxMin.ForeColor = Color.Red
End Sub
Private Sub txbEyeMax_TextChanged(sender As Object, e As EventArgs) Handles txbEyeMax.TextChanged
txbEyeMax.ForeColor = Color.Red
End Sub
Private Sub txbEyeTyp_TextChanged(sender As Object, e As EventArgs) Handles txbEyeTyp.TextChanged
txbEyeTyp.ForeColor = Color.Red
End Sub
Private Sub txbEyeMin_TextChanged(sender As Object, e As EventArgs) Handles txbEyeMin.TextChanged
txbEyeMin.ForeColor = Color.Red
End Sub
Private Sub txbRelay1_TextChanged(sender As Object, e As EventArgs) Handles txbRelay1.TextChanged
txbRelay1.ForeColor = Color.Red
End Sub
Private Sub txbRelay2_TextChanged(sender As Object, e As EventArgs) Handles txbRelay2.TextChanged
txbRelay2.ForeColor = Color.Red
End Sub
Private Sub txbRelay3_TextChanged(sender As Object, e As EventArgs) Handles txbRelay3.TextChanged
txbRelay3.ForeColor = Color.Red
End Sub
Private Sub txbRelay4_TextChanged(sender As Object, e As EventArgs) Handles txbRelay4.TextChanged
txbRelay4.ForeColor = Color.Red
End Sub
Private Sub txbRelay5_TextChanged(sender As Object, e As EventArgs) Handles txbRelay5.TextChanged
txbRelay5.ForeColor = Color.Red
End Sub
Private Sub txbRelay6_TextChanged(sender As Object, e As EventArgs) Handles txbRelay6.TextChanged
txbRelay6.ForeColor = Color.Red
End Sub
Private Sub txbRelay7_TextChanged(sender As Object, e As EventArgs) Handles txbRelay7.TextChanged
txbRelay7.ForeColor = Color.Red
End Sub
Private Sub txbRelay8_TextChanged(sender As Object, e As EventArgs) Handles txbRelay8.TextChanged
txbRelay8.ForeColor = Color.Red
End Sub
Private Sub txbRelay9_TextChanged(sender As Object, e As EventArgs) Handles txbRelay9.TextChanged
txbRelay9.ForeColor = Color.Red
End Sub
Private Sub txbRelay10_TextChanged(sender As Object, e As EventArgs) Handles txbRelay10.TextChanged
txbRelay10.ForeColor = Color.Red
End Sub
Private Sub txbScopeID_TextChanged(sender As Object, e As EventArgs) Handles txbScopeID.TextChanged
txbScopeID.ForeColor = Color.Red
End Sub
Private Sub rdbIQC_CheckedChanged(sender As Object, e As EventArgs) Handles rdbIQC.CheckedChanged
rdbIQC.ForeColor = Color.Red
rdbProduct1.ForeColor = Color.Black
rdbProduct2.ForeColor = Color.Black
rdbProduct3.ForeColor = Color.Black
End Sub
Private Sub rdbProduct1_CheckedChanged(sender As Object, e As EventArgs) Handles rdbProduct1.CheckedChanged
rdbIQC.ForeColor = Color.Black
rdbProduct1.ForeColor = Color.Red
rdbProduct2.ForeColor = Color.Black
rdbProduct3.ForeColor = Color.Black
End Sub
Private Sub rdbProduct2_CheckedChanged(sender As Object, e As EventArgs) Handles rdbProduct2.CheckedChanged
rdbIQC.ForeColor = Color.Black
rdbProduct1.ForeColor = Color.Black
rdbProduct2.ForeColor = Color.Red
rdbProduct3.ForeColor = Color.Black
End Sub
Private Sub rdbProduct3_CheckedChanged(sender As Object, e As EventArgs) Handles rdbProduct3.CheckedChanged
rdbIQC.ForeColor = Color.Black
rdbProduct1.ForeColor = Color.Black
rdbProduct2.ForeColor = Color.Black
rdbProduct3.ForeColor = Color.Red
End Sub
Private Sub rdbAvg_CheckedChanged(sender As Object, e As EventArgs) Handles rdbAvg.CheckedChanged
rdbAvg.ForeColor = Color.Red
rdbMax.ForeColor = Color.Black
rdbTop.ForeColor = Color.Black
End Sub
Private Sub rdbMax_CheckedChanged(sender As Object, e As EventArgs) Handles rdbMax.CheckedChanged
rdbAvg.ForeColor = Color.Black
rdbMax.ForeColor = Color.Red
rdbTop.ForeColor = Color.Black
End Sub
Private Sub rdbTop_CheckedChanged(sender As Object, e As EventArgs) Handles rdbTop.CheckedChanged
rdbAvg.ForeColor = Color.Black
rdbMax.ForeColor = Color.Black
rdbTop.ForeColor = Color.Red
End Sub
Private Sub DefaultTextColor()
rdbIQC.ForeColor = Color.Black
rdbProduct1.ForeColor = Color.Black
rdbProduct2.ForeColor = Color.Black
rdbProduct3.ForeColor = Color.Black
txbMeasureDelay.ForeColor = Color.Black
txbTimeout.ForeColor = Color.Black
txbOntime.ForeColor = Color.Black
txbHSCALE.ForeColor = Color.Black
txbHPOS.ForeColor = Color.Black
txbVSCALE.ForeColor = Color.Black
txbVPOS.ForeColor = Color.Black
txbProMax.ForeColor = Color.Black
txbProTyp.ForeColor = Color.Black
txbProMin.ForeColor = Color.Black
txbLuxMax.ForeColor = Color.Black
txbLuxTyp.ForeColor = Color.Black
txbLuxMin.ForeColor = Color.Black
txbEyeMax.ForeColor = Color.Black
txbEyeTyp.ForeColor = Color.Black
txbEyeMin.ForeColor = Color.Black
txbRelay1.ForeColor = Color.Black
txbRelay2.ForeColor = Color.Black
txbRelay3.ForeColor = Color.Black
txbRelay4.ForeColor = Color.Black
txbRelay5.ForeColor = Color.Black
txbRelay6.ForeColor = Color.Black
txbRelay7.ForeColor = Color.Black
txbRelay8.ForeColor = Color.Black
txbRelay9.ForeColor = Color.Black
txbRelay10.ForeColor = Color.Black
txbScopeID.ForeColor = Color.Black
rdbAvg.ForeColor = Color.Black
rdbMax.ForeColor = Color.Black
rdbTop.ForeColor = Color.Black
rdbDev1.ForeColor = Color.Black
rdbDev2.ForeColor = Color.Black
rdbDev3.ForeColor = Color.Black
txbErrorFactor.ForeColor = Color.Black
txbOffsetValue.ForeColor = Color.Black
txbWaitDelay.ForeColor = Color.Black
txbStartWaitDelay.ForeColor = Color.Black
txbValueError.ForeColor = Color.Black
txbMotorOnTime.ForeColor = Color.Black
End Sub
Private Sub rdbDev1_CheckedChanged(sender As Object, e As EventArgs) Handles rdbDev1.CheckedChanged
txbScopeID.Text = "0x1797::CN56526457"
rdbDev1.ForeColor = Color.Red
rdbDev2.ForeColor = Color.Black
rdbDev3.ForeColor = Color.Black
End Sub
Private Sub rdbDev2_CheckedChanged(sender As Object, e As EventArgs) Handles rdbDev2.CheckedChanged
txbScopeID.Text = "0x178B::CN59280175"
rdbDev1.ForeColor = Color.Black
rdbDev2.ForeColor = Color.Red
rdbDev3.ForeColor = Color.Black
End Sub
Private Sub rdbDev3_CheckedChanged(sender As Object, e As EventArgs) Handles rdbDev3.CheckedChanged
txbScopeID.Text = "0x178B::CN59280334"
rdbDev1.ForeColor = Color.Black
rdbDev2.ForeColor = Color.Black
rdbDev3.ForeColor = Color.Red
End Sub
Private Sub btnSetupLoad_Click(sender As Object, e As EventArgs) Handles btnSetupLoad.Click
Print_Read_ini()
Read_ini()
End Sub
Private Sub RunProcess()
Try
If DevNum = 1 Then
If chbAutoMeasure.Checked And CalModeOn = False Then
If ckbPlay.Checked = True Then
If txtPVSN.ToUpper = "[START]" Then
If RegMeasure.MeasurePV_SN = Nothing Then
MsgBox("측정하려는 TD의 데이터가 존재하지 않습니다. TD 시리얼 번호를 스캔하여 주십시오", vbExclamation, "DUALSONIC_TD_IQC_JIG")
Return
Else
txbRun.Text = "측정중"
txbRun.BackColor = Color.Khaki
End If
Else
SetDefaultText()
If Mid(txbPV_SN.Text, 1, 1).ToLower = "i" Or Mid(txbPV_SN.Text, 1, 1).ToLower = "h" Or Mid(txbPV_SN.Text, 1, 1).ToLower = "s" Then
txtPVSN = MySqlModule.NamePVSN & txbPV_SN.Text
Else
txtPVSN = txbPV_SN.Text
End If
If LoadDB() Then ' 자동측정 진행설명(DB로드 한 후 측정한 값 DB 저장)
RegMeasure.MeasurePV_SN = Nothing
txbRun.Text = "TD 정보 에러"
txbRun.BackColor = Color.Red
btnRunIQC.Enabled = False
txbPV_SN.Focus()
Else
txbRun.Text = "TD 정보 확인"
txbRun.BackColor = Color.Green
btnRunIQC.Enabled = True
txbPV_SN.Focus()
End If
Return
End If
Else
SetDefaultText()
If Mid(txbPV_SN.Text, 1, 1).ToLower = "i" Then
txtPVSN = MySqlModule.NamePVSN & Mid(txbPV_SN.Text, 2, txbPV_SN.Text.Length)
Else
txtPVSN = txbPV_SN.Text
End If
If LoadDB() Then ' 자동측정 진행설명(DB로드 한 후 측정한 값 DB 저장)
RegMeasure.MeasurePV_SN = Nothing
txbPV_SN.Focus()
Return
End If
End If
End If
RunProcessIQC()
ElseIf DevNum = 2 Then
PD1_STATUS = PD1_ENUM.STANDBY
txtPVSN = txbPV_SN.Text
SetDefaultText()
RunProcessPD1()
ElseIf DevNum = 3 Then
''LoadDB()
''If chbAutoMeasure.Checked Then
'' RunProcessPD1()
''End If
ElseIf DevNum = 4 Then
If chbAutoMeasure.Checked Then
LoadDB()
RunCartInfoReadPD3()
End If
RunProcessPD3()
End If
Catch nullable As NullReferenceException
Exit Sub
Catch ex As Exception
MsgBox(ex.Message, vbCritical)
End Try
End Sub
Private Sub InputTimer_Tick(sender As Object, e As EventArgs) Handles InputTimer.Tick
If InputCnt Then
InputCnt -= 1
Else
InputTimer.Enabled = False
If chbAutoMeasure.Checked Then
PD1_STATUS = PD1_ENUM.STANDBY
txtPVSN = Nothing
txtPVSN = txbPV_SN.Text
btnRunIQC_Click(sender, e)
Else
btnRunPD1.Focus()
btnRunPD1.Refresh()
End If
End If
End Sub
Private Sub chbAutoMeasure_CheckedChanged(sender As Object, e As EventArgs) Handles chbAutoMeasure.CheckedChanged
Dim tmpStr As String
Select Case DevNum
Case 1
If chbAutoMeasure.Checked Then
btnRunIQC.Enabled = False
'btnRunIQC.Location = New Size(513, 410)
'btnRunIQC.Size = New Size(505, 95)
btnRunIQC.Refresh()
btnCal.Visible = True
btnCal.Enabled = True
btnRunIQCDB.Visible = False
btnRunIQCDB.Refresh()
chbUseBarcode.Checked = True
chbUseBarcode.Refresh()
txbPV_SN.BackColor = Color.White
txbPV_SN.Refresh()
txbPV_Freq.Text = "N/A"
txbPV_Freq.BackColor = Color.White
txbPV_Freq.Refresh()
Else
btnRunIQC.Visible = True
btnRunIQC.Enabled = True
'btnRunIQC.Location = New Size(768, 410)
'btnRunIQC.Size = New Size(250, 95)
btnRunIQC.Refresh()
btnRunIQCDB.Visible = True
btnRunIQCDB.Enabled = True
btnCal.Visible = False
btnCal.Enabled = False
'btnRunIQCDB.Location = New Size(513, 410)
'btnRunIQCDB.Size = New Size(250, 95)
btnRunIQCDB.Refresh()
txbPV_SN.BackColor = Color.LightYellow
txbPV_SN.Refresh()
txbPV_Freq.Text = ""
txbPV_Freq.BackColor = Color.LightYellow
txbPV_Freq.Refresh()
End If
Case 2
If chbAutoMeasure.Checked Then
If chbUseBarcode.Checked Then btnRunPD1.Enabled = False
Else
btnRunPD1.Enabled = True
End If
Case 3
If chbAutoMeasure.Checked Then
btnRunPD2.Enabled = False
DispToggle = True
txbPV_SN.Text = "대기중"
txbPV_SN.Refresh()
Else
btnRunPD2.Enabled = True
txbPV_SN.BackColor = DefaultBackColor
DispToggle = False
End If
Case 4
If chbAutoMeasure.Checked Then
lblGradePD3.Location = New Size(202, 35)
lblGradePD3.Size = New Size(147, 77)
lblGradePD3.Text = "등급"
lblGradePD3.Refresh()
txbGradePD3.Location = New Size(406, 25)
txbGradePD3.Size = New Size(384, 95)
txbGradePD3.Refresh()
lblCapacitorPD3.Location = New Size(202, 145)
lblCapacitorPD3.Size = New Size(148, 77)
lblCapacitorPD3.Refresh()
txbCapacitorPD3.Location = New Size(406, 135)
txbCapacitorPD3.Size = New Size(384, 95)
txbCapacitorPD3.Refresh()
lblCapSelectPD3.Visible = False
pnlCapSelectPD3.Visible = False
txbGradePD3.Text = "대기"
txbGradePD3.Refresh()
txbCapacitorPD3.Text = "대기"
txbCapacitorPD3.Refresh()
txbPV_Freq.Text = "N/A"
txbPV_Freq.BackColor = Color.White
txbPV_Freq.Refresh()
If chbUseBarcode.Checked = True Then
btnRunPD3.Enabled = False
Else
btnRunPD3.Enabled = True
End If
Else
lblGradePD3.Location = New Size(10, 40)
lblGradePD3.Size = New Size(204, 77)
lblGradePD3.Text = "주파수"
lblGradePD3.Refresh()
txbGradePD3.Location = New Size(200, 30)
txbGradePD3.Size = New Size(320, 95)
txbGradePD3.Refresh()
lblCapacitorPD3.Location = New Size(535, 40)
lblCapacitorPD3.Size = New Size(148, 77)
lblCapacitorPD3.Refresh()
txbCapacitorPD3.Location = New Size(685, 30)
txbCapacitorPD3.Size = New Size(320, 95)
txbCapacitorPD3.Refresh()
lblCapSelectPD3.Visible = True
pnlCapSelectPD3.Visible = True
tmpStr = txbGradePD3.Text
txbPV_Freq.Text = ""
txbGradePD3.Text = tmpStr
txbGradePD3.Refresh()
txbPV_Freq.BackColor = Color.LightYellow
txbPV_Freq.Refresh()
btnRunPD3.Enabled = True
End If
End Select
If chbUseBarcode.Checked And chbUseBarcode.Enabled Then
txbPV_SN.Focus()
End If
End Sub
Private Sub chbUseBarcode_CheckedChanged(sender As Object, e As EventArgs) Handles chbUseBarcode.CheckedChanged
If DevNum = 1 Or DevNum = 2 Or DevNum = 3 Or DevNum = 4 Then
If chbUseBarcode.Checked And chbAutoMeasure.Checked Then
txbPV_SN.Focus()
btnRunIQC.Enabled = False
btnRunPD3.Enabled = False
Else
btnRunIQC.Enabled = True
btnRunPD3.Enabled = True
End If
End If
End Sub
Private Sub btnRunIQC_Click(sender As Object, e As EventArgs) Handles btnRunIQC.Click
txbGrade.Text = "대기"
txbCapacitor.Text = "대기"
txbGrade.BackColor = DefaultBackColor
txbCapacitor.BackColor = DefaultBackColor
If CalModeOn = True Then
CalModeOn = False
btnRunIQC.Text = "검사시작"
txbCmdWindow.Visible = False
gbTestWindow.Visible = True
If chbAutoMeasure.Checked = True And chbUseBarcode.Checked = True Then
btnRunIQC.Enabled = False
Else
btnRunIQC.Enabled = True
End If
Else
If RegMeasure.MeasurePV_SN <> Nothing Then
If txbPV_SN.Text = "[START]" Then
If ckbWarPnt.Checked = True Then
Dim RunThread As Thread = New Thread(New ParameterizedThreadStart(AddressOf print_on))
RunThread.IsBackground = True
RunThread.Start(RegMeasure.MeasurePV_SN)
End If
RunProcess()
RegMeasure.MeasurePV_SN = Nothing
Else
RunProcess()
End If
Else
RunProcess()
End If
End If
End Sub
Private Sub btnRunPD1_Click(sender As Object, e As EventArgs) Handles btnRunPD1.Click
RunProcess()
End Sub
Private Sub btnRunP2_Click(sender As Object, e As EventArgs) Handles btnRunPD2.Click
RunProcessPD2()
End Sub
Private Sub cmdRunTimer_Tick(sender As Object, e As EventArgs) Handles cmdRunTimer.Tick
Try
If cmdSerialPort.IsOpen = True Then
If cmdSerialPort.BytesToRead <> 0 Then
cmdSerialPort.ReadTimeout = 0
rxMessage = cmdSerialPort.ReadLine()
If rxMessage <> "" Then
If DevNum = 2 And chbAutoMeasure.Checked Then
If Mid(rxMessage, 2, 10) <> "cartconn 0" And (PD1_STATUS = PD1_ENUM.WAIT Or PD1_STATUS = PD1_ENUM.WRITE) Then
RunProcessPD1()
End If
ElseIf DevNum = 3 And chbAutoMeasure.Checked Then
RunProcessPD2()
ElseIf DevNum = 4 Then
If Mid(rxMessage, 2, 8) = "setctype" Then
If Mid(rxMessage, 11, 1) = "1" Then
CkbNoRun = True
rdbEye.Checked = True
ElseIf Mid(rxMessage, 11, 1) = "2" Then
CkbNoRun = True
rdbFace.Checked = True
End If
ElseIf Mid(rxMessage, 2, 8) = "setdtype" Then
'DUAL : 1 , 3.0 : 2 , 4.5 : 3
If Mid(rxMessage, 11, 1) = "1" Then
CkbNoRun = True
rdbMode3.Checked = True
ElseIf Mid(rxMessage, 11, 1) = "2" Then
CkbNoRun = True
rdbMode1.Checked = True
ElseIf Mid(rxMessage, 11, 1) = "3" Then
CkbNoRun = True
rdbMode2.Checked = True
End If
ElseIf Mid(rxMessage, 2, 8) = "sethertz" Then
If Mid(rxMessage, 11, 1) = "1" Then
CkbNoRun = True
rdbMode1.Checked = True
ElseIf Mid(rxMessage, 11, 1) = "2" Then
CkbNoRun = True
rdbMode2.Checked = True
ElseIf Mid(rxMessage, 11, 1) = "3" Then
CkbNoRun = True
rdbMode3.Checked = True
End If
End If
End If
End If
End If
End If
Catch ex As Exception
'MsgBox(Err.Description)
End Try
End Sub
Private Sub txbGradePD1_GotFocus(sender As Object, e As EventArgs) Handles txbGradePD1.GotFocus
txbPV_SN.Focus()
End Sub
Private Sub txbCapacitorPD1_GotFocus(sender As Object, e As EventArgs) Handles txbCapacitorPD1.GotFocus
txbPV_SN.Focus()
End Sub
Private Sub txbCartridgePD1_GotFocus(sender As Object, e As EventArgs) Handles txbCartridgePD1.GotFocus
txbPV_SN.Focus()
End Sub
Private Sub btnRunIQCDB_Click(sender As Object, e As EventArgs) Handles btnRunIQCDB.Click
LoadDB()
End Sub
Private Sub txbErrorFactor_TextChanged(sender As Object, e As EventArgs) Handles txbErrorFactor.TextChanged
txbErrorFactor.ForeColor = Color.Red
End Sub
Private Sub txbOffsetValue_TextChanged(sender As Object, e As EventArgs) Handles txbOffsetValue.TextChanged
txbOffsetValue.ForeColor = Color.Red
End Sub
Private Sub txbStartWaitDelay_TextChanged(sender As Object, e As EventArgs) Handles txbStartWaitDelay.TextChanged
txbStartWaitDelay.ForeColor = Color.Red
End Sub
Private Sub txbWaitDelay_TextChanged(sender As Object, e As EventArgs) Handles txbWaitDelay.TextChanged
txbWaitDelay.ForeColor = Color.Red
End Sub
Function GradeToValue(TmpGrade As String) As Integer
If TmpGrade = "PRO" Then
Return MODEL_NAME.PRO
ElseIf TmpGrade = "LUX" Then
Return MODEL_NAME.LUX
ElseIf TmpGrade = "EYE" Then
Return MODEL_NAME.EYE
ElseIf TmpGrade = "MAX" Then
Return MODEL_NAME.MAX
Else
Return 0
End If
End Function
Private Sub SetDefaultText()
'IQC
txbTotalCnt.ForeColor = DefaultForeColor
txbOKCnt.ForeColor = DefaultForeColor
txbNGCnt.ForeColor = DefaultForeColor
txbProCnt.ForeColor = DefaultForeColor
txbLuxCnt.ForeColor = DefaultForeColor
txbEyeCnt.ForeColor = DefaultForeColor
txbR1CntIQC.ForeColor = DefaultForeColor
txbR2CntIQC.ForeColor = DefaultForeColor
txbR3CntIQC.ForeColor = DefaultForeColor
txbR4CntIQC.ForeColor = DefaultForeColor
txbR5CntIQC.ForeColor = DefaultForeColor
txbR6CntIQC.ForeColor = DefaultForeColor
txbR7CntIQC.ForeColor = DefaultForeColor
txbR8CntIQC.ForeColor = DefaultForeColor
txbR9CntIQC.ForeColor = DefaultForeColor
txbR10CntIQC.ForeColor = DefaultForeColor
txbReTotalCnt.ForeColor = DefaultForeColor
txbReOkCnt.ForeColor = DefaultForeColor
txbReNgCnt.ForeColor = DefaultForeColor
txbTotalCnt.Refresh()
txbOKCnt.Refresh()
txbNGCnt.Refresh()
txbProCnt.Refresh()
txbLuxCnt.Refresh()
txbEyeCnt.Refresh()
txbR1CntIQC.Refresh()
txbR2CntIQC.Refresh()
txbR3CntIQC.Refresh()
txbR4CntIQC.Refresh()
txbR5CntIQC.Refresh()
txbR6CntIQC.Refresh()
txbR7CntIQC.Refresh()
txbR8CntIQC.Refresh()
txbR9CntIQC.Refresh()
txbR10CntIQC.Refresh()
txbReTotalCnt.Refresh()
txbReOkCnt.Refresh()
txbReNgCnt.Refresh()
'PD1 txbOkCntPD1
txbTotalCntPD1.ForeColor = Color.Black
txbOkCntPD1.ForeColor = Color.Black
txbNgCntPD1.ForeColor = Color.Black
txbR1CntPD1.ForeColor = Color.Black
txbR2CntPD1.ForeColor = Color.Black
txbR3CntPD1.ForeColor = Color.Black
txbR4CntPD1.ForeColor = Color.Black
txbR5CntPD1.ForeColor = Color.Black
txbR6CntPD1.ForeColor = Color.Black
txbR7CntPD1.ForeColor = Color.Black
txbR8CntPD1.ForeColor = Color.Black
txbR9CntPD1.ForeColor = Color.Black
txbR10CntPD1.ForeColor = Color.Black
txbProCntPD1.ForeColor = Color.Black
txbLuxCntPD1.ForeColor = Color.Black
txbEyeCntPD1.ForeColor = Color.Black
txbTotalCntPD1.Refresh()
txbOkCntPD1.Refresh()
txbNgCntPD1.Refresh()
txbR1CntPD1.Refresh()
txbR2CntPD1.Refresh()
txbR3CntPD1.Refresh()
txbR4CntPD1.Refresh()
txbR5CntPD1.Refresh()
txbR6CntPD1.Refresh()
txbR7CntPD1.Refresh()
txbR8CntPD1.Refresh()
txbR9CntPD1.Refresh()
txbR10CntPD1.Refresh()
txbProCntPD1.Refresh()
txbLuxCntPD1.Refresh()
txbEyeCntPD1.Refresh()
RelayTxb(1) = txbRelay1
RelayTxb(2) = txbRelay2
RelayTxb(3) = txbRelay3
RelayTxb(4) = txbRelay4
RelayTxb(5) = txbRelay5
RelayTxb(6) = txbRelay6
RelayTxb(7) = txbRelay7
RelayTxb(8) = txbRelay8
RelayTxb(9) = txbRelay9
RelayTxb(10) = txbRelay10
End Sub
Private Sub txbTotalCnt_TextChanged(sender As Object, e As EventArgs) Handles txbTotalCnt.TextChanged
If txbTotalCnt.Text > PreCnt_IQC.TotalCnt Then
txbTotalCnt.ForeColor = Color.Red
ElseIf txbTotalCnt.Text < PreCnt_IQC.TotalCnt Then
txbTotalCnt.ForeColor = Color.Blue
End If
PreCnt_IQC.TotalCnt = txbTotalCnt.Text
txbTotalCnt.Refresh()
End Sub
Private Sub txbOKCnt_TextChanged(sender As Object, e As EventArgs) Handles txbOKCnt.TextChanged
If Val(txbOKCnt.Text) > PreCnt_IQC.OKCnt Then
txbOKCnt.ForeColor = Color.Red
ElseIf Val(txbOKCnt.Text) < PreCnt_IQC.OKCnt Then
txbOKCnt.ForeColor = Color.Blue
End If
PreCnt_IQC.OKCnt = Val(txbOKCnt.Text)
txbOKCnt.Refresh()
End Sub
Private Sub txbNGCnt_TextChanged(sender As Object, e As EventArgs) Handles txbNGCnt.TextChanged
If Val(txbNGCnt.Text) > PreCnt_IQC.NGCnt Then
txbNGCnt.ForeColor = Color.Red
ElseIf Val(txbNGCnt.Text) < PreCnt_IQC.NGCnt Then
txbNGCnt.ForeColor = Color.Blue
End If
PreCnt_IQC.NGCnt = txbNGCnt.Text
txbNGCnt.Refresh()
End Sub
Private Sub txbProCnt_TextChanged(sender As Object, e As EventArgs) Handles txbProCnt.TextChanged
If Val(txbProCnt.Text) > PreCnt_IQC.ProCnt Then
txbProCnt.ForeColor = Color.Red
ElseIf Val(txbProCnt.Text) < PreCnt_IQC.ProCnt Then
txbProCnt.ForeColor = Color.Blue
End If
PreCnt_IQC.ProCnt = txbProCnt.Text
txbProCnt.Refresh()
End Sub
Private Sub txbLuxCnt_TextChanged(sender As Object, e As EventArgs) Handles txbLuxCnt.TextChanged
If Val(txbLuxCnt.Text) > PreCnt_IQC.LuxCnt Then
txbLuxCnt.ForeColor = Color.Red
ElseIf Val(txbLuxCnt.Text) < PreCnt_IQC.LuxCnt Then
txbLuxCnt.ForeColor = Color.Blue
End If
PreCnt_IQC.LuxCnt = txbLuxCnt.Text
txbLuxCnt.Refresh()
End Sub
Private Sub txbEyeCnt_TextChanged(sender As Object, e As EventArgs) Handles txbEyeCnt.TextChanged
If Val(txbEyeCnt.Text) > PreCnt_IQC.EyeCnt Then
txbEyeCnt.ForeColor = Color.Red
ElseIf Val(txbEyeCnt.Text) < PreCnt_IQC.EyeCnt Then
txbEyeCnt.ForeColor = Color.Blue
End If
PreCnt_IQC.EyeCnt = txbEyeCnt.Text
txbEyeCnt.Refresh()
End Sub
Private Sub txbR1CntIQC_TextChanged(sender As Object, e As EventArgs) Handles txbR1CntIQC.TextChanged
If Val(txbR1CntIQC.Text) > PreCnt_IQC.R1Cnt Then
txbR1CntIQC.ForeColor = Color.Red
ElseIf Val(txbR1CntIQC.Text) < PreCnt_IQC.R1Cnt Then
txbR1CntIQC.ForeColor = Color.Blue
End If
PreCnt_IQC.R1Cnt = txbR1CntIQC.Text
txbR1CntIQC.Refresh()
End Sub
Private Sub txbR2CntIQC_TextChanged(sender As Object, e As EventArgs) Handles txbR2CntIQC.TextChanged
If Val(txbR2CntIQC.Text) > PreCnt_IQC.R2Cnt Then
txbR2CntIQC.ForeColor = Color.Red
ElseIf Val(txbR2CntIQC.Text) < PreCnt_IQC.R2Cnt Then
txbR2CntIQC.ForeColor = Color.Blue
End If
PreCnt_IQC.R2Cnt = txbR2CntIQC.Text
txbR2CntIQC.Refresh()
End Sub
Private Sub txbR3CntIQC_TextChanged(sender As Object, e As EventArgs) Handles txbR3CntIQC.TextChanged
If Val(txbR3CntIQC.Text) > PreCnt_IQC.R3Cnt Then
txbR3CntIQC.ForeColor = Color.Red
ElseIf Val(txbR3CntIQC.Text) < PreCnt_IQC.R3Cnt Then
txbR3CntIQC.ForeColor = Color.Blue
End If
PreCnt_IQC.R3Cnt = txbR3CntIQC.Text
txbR3CntIQC.Refresh()
End Sub
Private Sub txbR4CntIQC_TextChanged(sender As Object, e As EventArgs) Handles txbR4CntIQC.TextChanged
If Val(txbR4CntIQC.Text) > PreCnt_IQC.R4Cnt Then
txbR4CntIQC.ForeColor = Color.Red
ElseIf Val(txbR4CntIQC.Text) < PreCnt_IQC.R4Cnt Then
txbR4CntIQC.ForeColor = Color.Blue
End If
PreCnt_IQC.R4Cnt = txbR4CntIQC.Text
txbR4CntIQC.Refresh()
End Sub
Private Sub txbR5CntIQC_TextChanged(sender As Object, e As EventArgs) Handles txbR5CntIQC.TextChanged
If Val(txbR5CntIQC.Text) > PreCnt_IQC.R5Cnt Then
txbR5CntIQC.ForeColor = Color.Red
ElseIf Val(txbR5CntIQC.Text) < PreCnt_IQC.R5Cnt Then
txbR5CntIQC.ForeColor = Color.Blue
End If
PreCnt_IQC.R5Cnt = txbR5CntIQC.Text
txbR5CntIQC.Refresh()
End Sub
Private Sub txbR6CntIQC_TextChanged(sender As Object, e As EventArgs) Handles txbR6CntIQC.TextChanged
If Val(txbR6CntIQC.Text) > PreCnt_IQC.R6Cnt Then
txbR6CntIQC.ForeColor = Color.Red
ElseIf Val(txbR6CntIQC.Text) < PreCnt_IQC.R6Cnt Then
txbR6CntIQC.ForeColor = Color.Blue
End If
PreCnt_IQC.R6Cnt = txbR6CntIQC.Text
txbR6CntIQC.Refresh()
End Sub
Private Sub txbR7CntIQC_TextChanged(sender As Object, e As EventArgs) Handles txbR7CntIQC.TextChanged
If Val(txbR7CntIQC.Text) > PreCnt_IQC.R7Cnt Then
txbR7CntIQC.ForeColor = Color.Red
ElseIf Val(txbR7CntIQC.Text) < PreCnt_IQC.R7Cnt Then
txbR7CntIQC.ForeColor = Color.Blue
End If
PreCnt_IQC.R7Cnt = txbR7CntIQC.Text
txbR7CntIQC.Refresh()
End Sub
Private Sub txbR8CntIQC_TextChanged(sender As Object, e As EventArgs) Handles txbR8CntIQC.TextChanged
If Val(txbR8CntIQC.Text) > PreCnt_IQC.R8Cnt Then
txbR8CntIQC.ForeColor = Color.Red
ElseIf Val(txbR8CntIQC.Text) < PreCnt_IQC.R8Cnt Then
txbR8CntIQC.ForeColor = Color.Blue
End If
PreCnt_IQC.R8Cnt = txbR8CntIQC.Text
txbR8CntIQC.Refresh()
End Sub
Private Sub txbR9CntIQC_TextChanged(sender As Object, e As EventArgs) Handles txbR9CntIQC.TextChanged
If Val(txbR9CntIQC.Text) > PreCnt_IQC.R9Cnt Then
txbR9CntIQC.ForeColor = Color.Red
ElseIf Val(txbR9CntIQC.Text) < PreCnt_IQC.R9Cnt Then
txbR9CntIQC.ForeColor = Color.Blue
End If
PreCnt_IQC.R9Cnt = txbR9CntIQC.Text
txbR9CntIQC.Refresh()
End Sub
Private Sub txbR10CntIQC_TextChanged(sender As Object, e As EventArgs) Handles txbR10CntIQC.TextChanged
If Val(txbR10CntIQC.Text) > PreCnt_IQC.R10Cnt Then
txbR10CntIQC.ForeColor = Color.Red
ElseIf Val(txbR10CntIQC.Text) < PreCnt_IQC.R10Cnt Then
txbR10CntIQC.ForeColor = Color.Blue
End If
PreCnt_IQC.R10Cnt = txbR10CntIQC.Text
txbR10CntIQC.Refresh()
End Sub
Private Sub txbReTotalCnt_TextChanged(sender As Object, e As EventArgs) Handles txbReTotalCnt.TextChanged
If Val(txbReTotalCnt.Text) > PreCnt_IQC.ReTotalCnt Then
txbReTotalCnt.ForeColor = Color.Red
ElseIf Val(txbReTotalCnt.Text) < PreCnt_IQC.ReTotalCnt Then
txbReTotalCnt.ForeColor = Color.Blue
End If
PreCnt_IQC.ReTotalCnt = txbReTotalCnt.Text
txbReTotalCnt.Refresh()
End Sub
Private Sub txbReOkCnt_TextChanged(sender As Object, e As EventArgs) Handles txbReOkCnt.TextChanged
If Val(txbReOkCnt.Text) > PreCnt_IQC.ReOkCnt Then
txbReOkCnt.ForeColor = Color.Red
ElseIf Val(txbReOkCnt.Text) < PreCnt_IQC.ReOkCnt Then
txbReOkCnt.ForeColor = Color.Blue
End If
PreCnt_IQC.ReOkCnt = txbReOkCnt.Text
txbReOkCnt.Refresh()
End Sub
Private Sub txbReNgCnt_TextChanged(sender As Object, e As EventArgs) Handles txbReNgCnt.TextChanged
If Val(txbReNgCnt.Text) > PreCnt_IQC.ReNgCnt Then
txbReNgCnt.ForeColor = Color.Red
ElseIf Val(txbReNgCnt.Text) < PreCnt_IQC.ReNgCnt Then
txbReNgCnt.ForeColor = Color.Blue
End If
PreCnt_IQC.ReNgCnt = txbReNgCnt.Text
txbReNgCnt.Refresh()
End Sub
Private Sub txbTotalCnt_GotFocus(sender As Object, e As EventArgs) Handles txbTotalCnt.GotFocus
pnlIQCDisp.Focus()
End Sub
Private Sub txbOKCnt_GotFocus(sender As Object, e As EventArgs) Handles txbOKCnt.GotFocus
pnlIQCDisp.Focus()
End Sub
Private Sub txbNGCnt_GotFocus(sender As Object, e As EventArgs) Handles txbNGCnt.GotFocus
pnlIQCDisp.Focus()
End Sub
Private Sub txbProCnt_GotFocus(sender As Object, e As EventArgs) Handles txbProCnt.GotFocus
pnlIQCDisp.Focus()
End Sub
Private Sub txbLuxCnt_GotFocus(sender As Object, e As EventArgs) Handles txbLuxCnt.GotFocus
pnlIQCDisp.Focus()
End Sub
Private Sub txbEyeCnt_GotFocus(sender As Object, e As EventArgs) Handles txbEyeCnt.GotFocus
pnlIQCDisp.Focus()
End Sub
Private Sub txbR1CntIQC_GotFocus(sender As Object, e As EventArgs) Handles txbR1CntIQC.GotFocus
pnlIQCDisp.Focus()
End Sub
Private Sub txbR2CntIQC_GotFocus(sender As Object, e As EventArgs) Handles txbR2CntIQC.GotFocus
pnlIQCDisp.Focus()
End Sub
Private Sub txbR3CntIQC_GotFocus(sender As Object, e As EventArgs) Handles txbR3CntIQC.GotFocus
pnlIQCDisp.Focus()
End Sub
Private Sub txbR4CntIQC_GotFocus(sender As Object, e As EventArgs) Handles txbR4CntIQC.GotFocus
pnlIQCDisp.Focus()
End Sub
Private Sub txbR5CntIQC_GotFocus(sender As Object, e As EventArgs) Handles txbR5CntIQC.GotFocus
pnlIQCDisp.Focus()
End Sub
Private Sub txbR6CntIQC_GotFocus(sender As Object, e As EventArgs) Handles txbR6CntIQC.GotFocus
pnlIQCDisp.Focus()
End Sub
Private Sub txbR7CntIQC_GotFocus(sender As Object, e As EventArgs) Handles txbR7CntIQC.GotFocus
pnlIQCDisp.Focus()
End Sub
Private Sub txbR8CntIQC_GotFocus(sender As Object, e As EventArgs) Handles txbR8CntIQC.GotFocus
pnlIQCDisp.Focus()
End Sub
Private Sub txbR9CntIQC_GotFocus(sender As Object, e As EventArgs) Handles txbR9CntIQC.GotFocus
pnlIQCDisp.Focus()
End Sub
Private Sub txbR10CntIQC_GotFocus(sender As Object, e As EventArgs) Handles txbR10CntIQC.GotFocus
pnlIQCDisp.Focus()
End Sub
Private Sub txbReTotalCnt_GotFocus(sender As Object, e As EventArgs) Handles txbReTotalCnt.GotFocus
pnlIQCDisp.Focus()
End Sub
Private Sub txbReOkCnt_GotFocus(sender As Object, e As EventArgs) Handles txbReOkCnt.GotFocus
pnlIQCDisp.Focus()
End Sub
Private Sub txbReNgCnt_GotFocus(sender As Object, e As EventArgs) Handles txbReNgCnt.GotFocus
pnlIQCDisp.Focus()
End Sub
Private Sub lblOntime_DoubleClick(sender As Object, e As EventArgs) Handles lblOntime.DoubleClick
If ckbLogDetail.Visible = True Then
ckbLogDetail.Visible = False
Else
ckbLogDetail.Visible = True
End If
End Sub
Private Sub ckbLogDetail_CheckedChanged(sender As Object, e As EventArgs) Handles ckbLogDetail.CheckedChanged
If ckbLogDetail.Checked Then
ShowDetailLog = True
Else
ShowDetailLog = False
End If
End Sub
Private Sub lblMesureDelaytime_DoubleClick(sender As Object, e As EventArgs) Handles lblMesureDelaytime.DoubleClick
If ckbRunDemoMode.Visible = True Then
ckbRunDemoMode.Visible = False
Else
ckbRunDemoMode.Visible = True
End If
End Sub
Private Sub ckbRunDemoMode_CheckedChanged(sender As Object, e As EventArgs) Handles ckbRunDemoMode.CheckedChanged
If ckbRunDemoMode.Checked Then
RunDemoMode = True
Else
RunDemoMode = False
End If
End Sub
Private Sub txbIQCOffsetValue_TextChanged(sender As Object, e As EventArgs) Handles txbValueError.TextChanged
txbValueError.ForeColor = Color.Red
End Sub
Private Sub ckbUseInfoInput_CheckedChanged(sender As Object, e As EventArgs) Handles ckbUseInfoInput.CheckedChanged
If ckbUseInfoInput.Checked Then
lblGradePD1.Location = New Size(96, 29)
txbGradePD1.Location = New Size(300, 14)
lblCapacitorPD1.Location = New Size(96, 136)
txbCapacitorPD1.Location = New Size(300, 121)
lblCartridgePD1.Location = New Size(39, 243)
txbCartridgePD1.Location = New Size(300, 228)
gpbCheckGrade.Visible = True
Else
lblGradePD1.Location = New Size(202, 29)
txbGradePD1.Location = New Size(406, 14)
lblCapacitorPD1.Location = New Size(202, 136)
txbCapacitorPD1.Location = New Size(406, 121)
lblCartridgePD1.Location = New Size(145, 243)
txbCartridgePD1.Location = New Size(406, 228)
gpbCheckGrade.Visible = False
End If
lblGradePD1.Refresh()
txbGradePD1.Refresh()
lblCapacitorPD1.Refresh()
txbCapacitorPD1.Refresh()
lblCartridgePD1.Refresh()
txbCartridgePD1.Refresh()
gpbCheckGrade.Refresh()
End Sub
Private Sub cboGrade_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboGrade.SelectedIndexChanged
txbPV_SN.Focus()
End Sub
Private Sub cboCapacitor_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboCapacitor.SelectedIndexChanged
txbPV_SN.Focus()
End Sub
Private Sub gpbProduct1_Enter(sender As Object, e As EventArgs) Handles gpbProduct1.Enter
If ckbUseInfoInput.Checked = False And chbAutoMeasure.Checked Then
txbPV_SN.Focus()
End If
End Sub
Private Sub txbTotalCntPD1_TextChanged(sender As Object, e As EventArgs) Handles txbTotalCntPD1.TextChanged
If txbTotalCntPD1.Text > PreCnt_PD1.TotalCnt Then
txbTotalCntPD1.ForeColor = Color.Red
ElseIf txbTotalCntPD1.Text < PreCnt_PD1.TotalCnt Then
txbTotalCntPD1.ForeColor = Color.Blue
End If
PreCnt_PD1.TotalCnt = txbTotalCntPD1.Text
txbTotalCntPD1.Refresh()
End Sub
Private Sub txbOkCntPD1_TextChanged(sender As Object, e As EventArgs) Handles txbOkCntPD1.TextChanged
If txbOkCntPD1.Text > PreCnt_PD1.OKCnt Then
txbOkCntPD1.ForeColor = Color.Red
ElseIf txbOkCntPD1.Text < PreCnt_PD1.OKCnt Then
txbOkCntPD1.ForeColor = Color.Blue
End If
PreCnt_PD1.OKCnt = txbOkCntPD1.Text
txbOkCntPD1.Refresh()
End Sub
Private Sub txbNgCntPD1_TextChanged(sender As Object, e As EventArgs) Handles txbNgCntPD1.TextChanged
If txbNgCntPD1.Text > PreCnt_PD1.NGCnt Then
txbNgCntPD1.ForeColor = Color.Red
ElseIf txbNgCntPD1.Text < PreCnt_PD1.NGCnt Then
txbNgCntPD1.ForeColor = Color.Blue
End If
PreCnt_PD1.NGCnt = txbNgCntPD1.Text
txbNgCntPD1.Refresh()
End Sub
Private Sub txbProCntPD1_TextChanged(sender As Object, e As EventArgs) Handles txbProCntPD1.TextChanged
If txbProCntPD1.Text > PreCnt_PD1.ProCnt Then
txbProCntPD1.ForeColor = Color.Red
ElseIf txbProCntPD1.Text < PreCnt_PD1.ProCnt Then
txbProCntPD1.ForeColor = Color.Blue
End If
PreCnt_PD1.ProCnt = txbProCntPD1.Text
txbProCntPD1.Refresh()
End Sub
Private Sub txbLuxCntPD1_TextChanged(sender As Object, e As EventArgs) Handles txbLuxCntPD1.TextChanged
If txbLuxCntPD1.Text > PreCnt_PD1.LuxCnt Then
txbLuxCntPD1.ForeColor = Color.Red
ElseIf txbLuxCntPD1.Text < PreCnt_PD1.LuxCnt Then
txbLuxCntPD1.ForeColor = Color.Blue
End If
PreCnt_PD1.LuxCnt = txbLuxCntPD1.Text
txbLuxCntPD1.Refresh()
End Sub
Private Sub txbEyeCntPD1_TextChanged(sender As Object, e As EventArgs) Handles txbEyeCntPD1.TextChanged
If txbEyeCntPD1.Text > PreCnt_PD1.EyeCnt Then
txbEyeCntPD1.ForeColor = Color.Red
ElseIf txbEyeCntPD1.Text < PreCnt_PD1.EyeCnt Then
txbEyeCntPD1.ForeColor = Color.Blue
End If
PreCnt_PD1.EyeCnt = txbEyeCntPD1.Text
txbEyeCntPD1.Refresh()
End Sub
Private Sub txbR1CntPD1_TextChanged(sender As Object, e As EventArgs) Handles txbR1CntPD1.TextChanged
If txbR1CntPD1.Text > PreCnt_PD1.R1Cnt Then
txbR1CntPD1.ForeColor = Color.Red
ElseIf txbR1CntPD1.Text < PreCnt_PD1.R1Cnt Then
txbR1CntPD1.ForeColor = Color.Blue
End If
PreCnt_PD1.R1Cnt = txbR1CntPD1.Text
txbR1CntPD1.Refresh()
End Sub
Private Sub txbR2CntPD1_TextChanged(sender As Object, e As EventArgs) Handles txbR2CntPD1.TextChanged
If txbR2CntPD1.Text > PreCnt_PD1.R2Cnt Then
txbR2CntPD1.ForeColor = Color.Red
ElseIf txbR2CntPD1.Text < PreCnt_PD1.R2Cnt Then
txbR2CntPD1.ForeColor = Color.Blue
End If
PreCnt_PD1.R2Cnt = txbR2CntPD1.Text
txbR2CntPD1.Refresh()
End Sub
Private Sub txbR3CntPD1_TextChanged(sender As Object, e As EventArgs) Handles txbR3CntPD1.TextChanged
If txbR3CntPD1.Text > PreCnt_PD1.R3Cnt Then
txbR3CntPD1.ForeColor = Color.Red
ElseIf txbR3CntPD1.Text < PreCnt_PD1.R3Cnt Then
txbR3CntPD1.ForeColor = Color.Blue
End If
PreCnt_PD1.R3Cnt = txbR3CntPD1.Text
txbR3CntPD1.Refresh()
End Sub
Private Sub txbR4CntPD1_TextChanged(sender As Object, e As EventArgs) Handles txbR4CntPD1.TextChanged
If txbR4CntPD1.Text > PreCnt_PD1.R4Cnt Then
txbR4CntPD1.ForeColor = Color.Red
ElseIf txbR4CntPD1.Text < PreCnt_PD1.R4Cnt Then
txbR4CntPD1.ForeColor = Color.Blue
End If
PreCnt_PD1.R4Cnt = txbR4CntPD1.Text
txbR4CntPD1.Refresh()
End Sub
Private Sub txbR5CntPD1_TextChanged(sender As Object, e As EventArgs) Handles txbR5CntPD1.TextChanged
If txbR5CntPD1.Text > PreCnt_PD1.R5Cnt Then
txbR5CntPD1.ForeColor = Color.Red
ElseIf txbR5CntPD1.Text < PreCnt_PD1.R5Cnt Then
txbR5CntPD1.ForeColor = Color.Blue
End If
PreCnt_PD1.R5Cnt = txbR5CntPD1.Text
txbR5CntPD1.Refresh()
End Sub
Private Sub txbR6CntPD1_TextChanged(sender As Object, e As EventArgs) Handles txbR6CntPD1.TextChanged
If txbR6CntPD1.Text > PreCnt_PD1.R6Cnt Then
txbR6CntPD1.ForeColor = Color.Red
ElseIf txbR6CntPD1.Text < PreCnt_PD1.R6Cnt Then
txbR6CntPD1.ForeColor = Color.Blue
End If
PreCnt_PD1.R6Cnt = txbR6CntPD1.Text
txbR6CntPD1.Refresh()
End Sub
Private Sub txbR7CntPD1_TextChanged(sender As Object, e As EventArgs) Handles txbR7CntPD1.TextChanged
If txbR7CntPD1.Text > PreCnt_PD1.R7Cnt Then
txbR7CntPD1.ForeColor = Color.Red
ElseIf txbR7CntPD1.Text < PreCnt_PD1.R7Cnt Then
txbR7CntPD1.ForeColor = Color.Blue
End If
PreCnt_PD1.R7Cnt = txbR7CntPD1.Text
txbR7CntPD1.Refresh()
End Sub
Private Sub txbR8CntPD1_TextChanged(sender As Object, e As EventArgs) Handles txbR8CntPD1.TextChanged
If txbR8CntPD1.Text > PreCnt_PD1.R8Cnt Then
txbR8CntPD1.ForeColor = Color.Red
ElseIf txbR8CntPD1.Text < PreCnt_PD1.R8Cnt Then
txbR8CntPD1.ForeColor = Color.Blue
End If
PreCnt_PD1.R8Cnt = txbR8CntPD1.Text
txbR8CntPD1.Refresh()
End Sub
Private Sub txbR9CntPD1_TextChanged(sender As Object, e As EventArgs) Handles txbR9CntPD1.TextChanged
If txbR9CntPD1.Text > PreCnt_PD1.R9Cnt Then
txbR9CntPD1.ForeColor = Color.Red
ElseIf txbR9CntPD1.Text < PreCnt_PD1.R9Cnt Then
txbR9CntPD1.ForeColor = Color.Blue
End If
PreCnt_PD1.R9Cnt = txbR9CntPD1.Text
txbR9CntPD1.Refresh()
End Sub
Private Sub txbR10CntPD1_TextChanged(sender As Object, e As EventArgs) Handles txbR10CntPD1.TextChanged
If txbR10CntPD1.Text > PreCnt_PD1.R10Cnt Then
txbR10CntPD1.ForeColor = Color.Red
ElseIf txbR10CntPD1.Text < PreCnt_PD1.R10Cnt Then
txbR10CntPD1.ForeColor = Color.Blue
End If
PreCnt_PD1.R10Cnt = txbR10CntPD1.Text
txbR10CntPD1.Refresh()
End Sub
Public Sub UpdateCartType()
CartType = CART_TYPE.CART_NONE
If ckbUseGradeChange.Checked Then
If rdbModelPro.Checked And rdbTypeFace.Checked Then
CartType = CART_TYPE.PRO_FACE
ElseIf rdbModelPro.Checked And rdbTypeEye.Checked Then
CartType = CART_TYPE.PRO_EYE
ElseIf rdbModelLux.Checked And rdbTypeFace.Checked Then
CartType = CART_TYPE.LUX_FACE
ElseIf rdbModelLux.Checked And rdbTypeEye.Checked Then
CartType = CART_TYPE.LUX_EYE
End If
Else
If rdbModelPro.Checked Then
CartType = CART_TYPE.PRO_EYE
ElseIf rdbModelLux.Checked Then
CartType = CART_TYPE.LUX_EYE
End If
End If
txbModelSelect.Text = CartTypeName(CartType)
txbModelSelect.Refresh()
End Sub
Public Sub UpdateCartTypeWindow()
CartType = CART_TYPE.CART_NONE
If ckbUseGradeChange.Checked Then
If frmModelSelect.rdbModelProWindow.Checked And frmModelSelect.rdbTypeFaceWindow.Checked Then
CartType = CART_TYPE.PRO_FACE
ElseIf frmModelSelect.rdbModelProWindow.Checked And frmModelSelect.rdbTypeEyeWindow.Checked Then
CartType = CART_TYPE.PRO_EYE
ElseIf frmModelSelect.rdbModelLuxWindow.Checked And frmModelSelect.rdbTypeFaceWindow.Checked Then
CartType = CART_TYPE.LUX_FACE
ElseIf frmModelSelect.rdbModelLuxWindow.Checked And frmModelSelect.rdbTypeEyeWindow.Checked Then
CartType = CART_TYPE.LUX_EYE
End If
Else
If frmModelSelect.rdbModelProWindow.Checked Then
CartType = CART_TYPE.PRO_EYE
ElseIf frmModelSelect.rdbModelLuxWindow.Checked Then
CartType = CART_TYPE.LUX_EYE
End If
End If
frmModelSelect.txbModelSelectWindow.Text = CartTypeName(CartType)
frmModelSelect.txbModelSelectWindow.Refresh()
If ckbUseGradeChange.Checked Then
If frmModelSelect.rdbModelProWindow.Checked Or frmModelSelect.rdbModelLuxWindow.Checked Then
If frmModelSelect.rdbTypeFaceWindow.Checked = False And frmModelSelect.rdbTypeEyeWindow.Checked = False Then
frmModelSelect.lblModelSelectTitle.Text = "카트리지 타입을 선택해주세요!"
End If
ElseIf frmModelSelect.rdbTypeFaceWindow.Checked Or frmModelSelect.rdbTypeEyeWindow.Checked Then
If frmModelSelect.rdbModelProWindow.Checked = False And frmModelSelect.rdbTypeFaceWindow.Checked = False Then
frmModelSelect.lblModelSelectTitle.Text = "카트리지 모델을 선택해주세요!"
End If
End If
End If
If CartType Then
frmModelSelect.lblModelSelectTitle.Text = " 사양 선택이 완료되었습니다!"
frmModelSelect.Refresh()
'DelayMs(5000)
'frmModelSelect.Close()
End If
End Sub
Private Sub ckbUseGradeChange_CheckedChanged(sender As Object, e As EventArgs) Handles ckbUseGradeChange.CheckedChanged
If ckbUseGradeChange.Checked Then
pnlModelSelect.Location = New Size(6, 148)
pnlTypeSelect.Location = New Size(6, 180)
pnlTypeSelect.Visible = True
frmModelSelect.pnlModelSelectWindow.Location = New Size(1, 312)
frmModelSelect.pnlTypeSelectWindow.Location = New Size(1, 412)
frmModelSelect.pnlTypeSelectWindow.Visible = True
gpbCartType.Text = "카트리지 모델 선택 설정"
Else
pnlModelSelect.Location = New Size(6, 164)
pnlTypeSelect.Visible = False
frmModelSelect.pnlModelSelectWindow.Location = New Size(1, 362)
frmModelSelect.pnlTypeSelectWindow.Visible = False
gpbCartType.Text = "EYE 카트리지 모델 선택 설정"
End If
gpbCartType.Refresh()
pnlModelSelect.Refresh()
pnlTypeSelect.Refresh()
frmModelSelect.pnlModelSelectWindow.Refresh()
frmModelSelect.pnlTypeSelectWindow.Refresh()
frmModelSelect.pnlTypeSelectWindow.Refresh()
End Sub
Private Sub rdbModelPro_CheckedChanged(sender As Object, e As EventArgs) Handles rdbModelPro.CheckedChanged
If rdbModelPro.Checked Then
rdbModelPro.ForeColor = Color.Red
Else
rdbModelPro.ForeColor = Color.Black
End If
rdbModelPro.Refresh()
UpdateCartType()
End Sub
Private Sub rdbModelLux_CheckedChanged(sender As Object, e As EventArgs) Handles rdbModelLux.CheckedChanged
If rdbModelLux.Checked Then
rdbModelLux.ForeColor = Color.Red
Else
rdbModelLux.ForeColor = Color.Black
End If
rdbModelLux.Refresh()
UpdateCartType()
End Sub
Private Sub rdbTypeFace_CheckedChanged(sender As Object, e As EventArgs) Handles rdbTypeFace.CheckedChanged
If rdbTypeFace.Checked Then
rdbTypeFace.ForeColor = Color.Red
Else
rdbTypeFace.ForeColor = Color.Black
End If
rdbTypeFace.Refresh()
UpdateCartType()
End Sub
Private Sub rdbTypeEye_CheckedChanged(sender As Object, e As EventArgs) Handles rdbTypeEye.CheckedChanged
If rdbTypeEye.Checked Then
rdbTypeEye.ForeColor = Color.Red
Else
rdbTypeEye.ForeColor = Color.Black
End If
rdbTypeEye.Refresh()
UpdateCartType()
End Sub
Private Sub ckbUseModelSelect_CheckedChanged(sender As Object, e As EventArgs) Handles ckbUseModelSelect.CheckedChanged
If ckbUseModelSelect.Checked Then
lblGradePD1.Location = New Size(202, 29)
txbGradePD1.Location = New Size(406, 14)
lblCapacitorPD1.Location = New Size(202, 136)
txbCapacitorPD1.Location = New Size(406, 121)
lblCartridgePD1.Location = New Size(145, 243)
txbCartridgePD1.Location = New Size(406, 228)
gpbCartType.Visible = False
Else
lblGradePD1.Location = New Size(96, 29)
txbGradePD1.Location = New Size(300, 14)
lblCapacitorPD1.Location = New Size(96, 136)
txbCapacitorPD1.Location = New Size(300, 121)
lblCartridgePD1.Location = New Size(39, 243)
txbCartridgePD1.Location = New Size(300, 228)
gpbCartType.Visible = True
End If
lblGradePD1.Refresh()
txbGradePD1.Refresh()
lblCapacitorPD1.Refresh()
txbCapacitorPD1.Refresh()
lblCartridgePD1.Refresh()
txbCartridgePD1.Refresh()
gpbCheckGrade.Refresh()
End Sub
Private Sub AutoAgingTimer_Tick(sender As Object, e As EventArgs) Handles AutoAgingTimer.Tick
If AutoAgingCnt > 0 Then
AutoAgingCnt -= 1
txbAgingWait.Text = AutoAgingCnt
txbAgingWait.Refresh()
Else
AutoAgingCnt = Val(txbAutoInterval.Text)
txbAgingWait.Text = AutoAgingCnt
txbAgingWait.Refresh()
AutoAgingTimer.Enabled = False
RunProcess()
txbShotCnt.Text += 1
AutoAgingTimer.Enabled = True
End If
End Sub
Private Sub btnAutoAging_Click(sender As Object, e As EventArgs) Handles btnAutoAging.Click
If btnAutoAging.Text = "자동시작" Then
AutoAgingTimer.Enabled = True
btnAutoAging.Text = "자동멈춤"
Else
AutoAgingTimer.Enabled = False
btnAutoAging.Text = "자동시작"
AutoAgingCnt = 0
End If
btnAutoAging.Refresh()
End Sub
Private Sub btnRunPD3_Click(sender As Object, e As EventArgs) Handles btnRunPD3.Click
RunProcess()
End Sub
Private Sub rdbCapacitor1_CheckedChanged(sender As Object, e As EventArgs) Handles rdbCapacitor1.CheckedChanged
If (rdbCapacitor1.Checked) Then txbCapacitorPD3.Text = "0"
End Sub
Private Sub rdbCapacitor2_CheckedChanged(sender As Object, e As EventArgs) Handles rdbCapacitor2.CheckedChanged
If (rdbCapacitor2.Checked) Then txbCapacitorPD3.Text = "22"
End Sub
Private Sub rdbCapacitor3_CheckedChanged(sender As Object, e As EventArgs) Handles rdbCapacitor3.CheckedChanged
If (rdbCapacitor3.Checked) Then txbCapacitorPD3.Text = "56"
End Sub
Private Sub rdbCapacitor4_CheckedChanged(sender As Object, e As EventArgs) Handles rdbCapacitor4.CheckedChanged
If (rdbCapacitor4.Checked) Then txbCapacitorPD3.Text = "82"
End Sub
Private Sub rdbCapacitor5_CheckedChanged(sender As Object, e As EventArgs) Handles rdbCapacitor5.CheckedChanged
If (rdbCapacitor5.Checked) Then txbCapacitorPD3.Text = "100"
End Sub
Private Sub rdbCapacitor6_CheckedChanged(sender As Object, e As EventArgs) Handles rdbCapacitor6.CheckedChanged
If (rdbCapacitor6.Checked) Then txbCapacitorPD3.Text = "120"
End Sub
Private Sub rdbCapacitor7_CheckedChanged(sender As Object, e As EventArgs) Handles rdbCapacitor7.CheckedChanged
If (rdbCapacitor7.Checked) Then txbCapacitorPD3.Text = "150"
End Sub
Private Sub rdbCapacitor8_CheckedChanged(sender As Object, e As EventArgs) Handles rdbCapacitor8.CheckedChanged
If (rdbCapacitor8.Checked) Then txbCapacitorPD3.Text = "180"
End Sub
Private Sub rdbCapacitor9_CheckedChanged(sender As Object, e As EventArgs) Handles rdbCapacitor9.CheckedChanged
If (rdbCapacitor9.Checked) Then txbCapacitorPD3.Text = "220"
End Sub
Private Sub rdbCapacitor10_CheckedChanged(sender As Object, e As EventArgs) Handles rdbCapacitor10.CheckedChanged
If (rdbCapacitor10.Checked) Then txbCapacitorPD3.Text = "270"
End Sub
Private Sub txbPV_Freq_TextChanged(sender As Object, e As EventArgs) Handles txbPV_Freq.TextChanged
If chbAutoMeasure.Checked = False And DevNum = 4 Then
txbGradePD3.Text = txbPV_Freq.Text
End If
End Sub
Private Sub txbGradePD3_GotFocus(sender As Object, e As EventArgs) Handles txbGradePD3.GotFocus
gpbProduct3.Focus()
End Sub
Private Sub txbCapacitorPD3_GotFocus(sender As Object, e As EventArgs) Handles txbCapacitorPD3.GotFocus
gpbProduct3.Focus()
End Sub
Private Sub rdbFace_CheckedChanged(sender As Object, e As EventArgs) Handles rdbFace.CheckedChanged
lblMode.Text = "모드"
rdbMode1.Checked = True
rdbMode1.Text = "3.0"
rdbMode1.Refresh()
rdbMode2.Checked = False
rdbMode2.Text = "4.5"
rdbMode2.Refresh()
rdbMode3.Checked = False
rdbMode3.Text = "Dual"
rdbMode3.Refresh()
'EYE_CART : 1 , FACE_CART : 2
If CkbNoRun = False Then
If SetCartType(2) Then
MsgBox("카트리지 정보 설정 실패.")
End If
End If
CkbNoRun = False
If chbUseBarcode.Checked Then
txbPV_SN.Focus()
End If
End Sub
Private Sub rdbEye_CheckedChanged(sender As Object, e As EventArgs) Handles rdbEye.CheckedChanged
lblMode.Text = "속도"
rdbMode1.Checked = False
rdbMode1.Text = "1Hz"
rdbMode1.Refresh()
rdbMode2.Checked = False
rdbMode2.Text = "2Hz"
rdbMode2.Refresh()
rdbMode3.Checked = True
rdbMode3.Text = "3Hz"
rdbMode3.Refresh()
'EYE_CART : 1 , FACE_CART : 2
If CkbNoRun = False Then
If SetCartType(1) Then
MsgBox("카트리지 정보 설정 실패.")
End If
End If
CkbNoRun = False
If chbUseBarcode.Checked Then
txbPV_SN.Focus()
End If
End Sub
Private Sub gpbProduct3_GotFocus(sender As Object, e As EventArgs) Handles gpbProduct3.GotFocus
If chbAutoMeasure.Checked Then
txbPV_SN.Focus()
End If
End Sub
Private Sub rdbMode1_CheckedChanged(sender As Object, e As EventArgs) Handles rdbMode1.CheckedChanged
If CkbNoRun = False Then
If rdbFace.Checked Then
'DUAL : 1 , 3.0 : 2 , 4.5 : 3
If SetDepthType(2) Then
MsgBox("카트리지 정보 설정 실패.")
End If
ElseIf rdbEye.Checked Then
'1Hz : 1 , 2Hz : 2 , 3Hz : 3
If SetHertzType(1) Then
MsgBox("카트리지 정보 설정 실패.")
End If
End If
End If
CkbNoRun = False
txbPV_SN.Focus()
End Sub
Private Sub rdbMode2_CheckedChanged(sender As Object, e As EventArgs) Handles rdbMode2.CheckedChanged
If CkbNoRun = False Then
If rdbFace.Checked Then
'DUAL : 1 , 3.0 : 2 , 4.5 : 3
If SetDepthType(3) Then
MsgBox("카트리지 정보 설정 실패.")
End If
ElseIf rdbEye.Checked Then
'1Hz : 1 , 2Hz : 2 , 3Hz : 3
If SetHertzType(2) Then
MsgBox("카트리지 정보 설정 실패.")
End If
End If
End If
CkbNoRun = False
txbPV_SN.Focus()
End Sub
Private Sub rdbMode3_CheckedChanged(sender As Object, e As EventArgs) Handles rdbMode3.CheckedChanged
If CkbNoRun = False Then
If rdbFace.Checked Then
'DUAL : 1 , 3.0 : 2 , 4.5 : 3
If SetDepthType(1) Then
MsgBox("카트리지 정보 설정 실패.")
End If
ElseIf rdbEye.Checked Then
'1Hz : 1 , 2Hz : 2 , 3Hz : 3
If SetHertzType(3) Then
MsgBox("카트리지 정보 설정 실패.")
End If
End If
End If
CkbNoRun = False
txbPV_SN.Focus()
End Sub
Private Sub txbMotorOnTime_TextChanged(sender As Object, e As EventArgs) Handles txbMotorOnTime.TextChanged
txbMotorOnTime.ForeColor = Color.Red
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
ReDim RegMeasure.MeasureValue(11)
For i = 0 To 10
Next
RegMeasure.MeasureValue(0) = 0
RegMeasure.MeasureValue(1) = TextBox2.Text
RegMeasure.MeasureValue(2) = TextBox27.Text
RegMeasure.MeasureValue(3) = TextBox26.Text
RegMeasure.MeasureValue(4) = TextBox25.Text
RegMeasure.MeasureValue(5) = TextBox24.Text
RegMeasure.MeasureValue(6) = TextBox23.Text
RegMeasure.MeasureValue(7) = TextBox22.Text
RegMeasure.MeasureValue(8) = TextBox21.Text
RegMeasure.MeasureValue(9) = TextBox20.Text
RegMeasure.MeasureValue(10) = TextBox19.Text
'For Cnt = 1 To 9
' If RegMeasure.MeasureValue(Cnt) <= ProMAX And RegMeasure.MeasureValue(0) = 0 Then RegMeasure.MeasureValue(0) = Cnt
' If RegMeasure.MeasureValue(0) Then
' If RegMeasure.MeasureValue(RegMeasure.MeasureValue(0)) < RegMeasure.MeasureValue(Cnt + 1) Then
' If RegMeasure.MeasureValue(Cnt + 1) <= ProMAX Then
' RegMeasure.MeasureValue(0) = Cnt + 1
' Else
' If MySqlModule.RegMeasure.MeasureValue(Cnt) <= ProMAX Then RegMeasure.MeasureValue(0) = Cnt
' End If
' End If
' End If
'Next
'For Cnt = 1 To 10
' If RegMeasure.MeasureValue(Cnt) <= ProMAX And RegMeasure.MeasureValue(0) = 0 Then RegMeasure.MeasureValue(0) = Cnt
' If RegMeasure.MeasureValue(0) Then
' If RegMeasure.MeasureValue(RegMeasure.MeasureValue(0)) < RegMeasure.MeasureValue(Cnt) Then
' If RegMeasure.MeasureValue(Cnt) <= ProMAX Then
' RegMeasure.MeasureValue(0) = Cnt
' End If
' End If
' End If
'Next
If RegMeasure.MeasureValue(0) = 0 Then
RegMeasure.MeasureOkNg = "NG"
RegMeasure.MeasureGrade = "OVER"
txbGrade.Text = RegMeasure.MeasureGrade
RegMeasure.MeasureValue(0) = 0
txbGrade.BackColor = Color.Red
ElseIf RegMeasure.MeasureValue(RegMeasure.MeasureValue(0)) >= ProMIN Then
RegMeasure.MeasureOkNg = "OK"
RegMeasure.MeasureGrade = "PRO"
txbGrade.Text = RegMeasure.MeasureGrade
txbGrade.BackColor = Color.Green
ElseIf RegMeasure.MeasureValue(RegMeasure.MeasureValue(0)) >= LuxMIN Then
RegMeasure.MeasureOkNg = "OK"
RegMeasure.MeasureGrade = "LUX"
txbGrade.Text = RegMeasure.MeasureGrade
txbGrade.BackColor = Color.Green
ElseIf RegMeasure.MeasureValue(RegMeasure.MeasureValue(0)) >= EyeMIN Then
RegMeasure.MeasureOkNg = "OK"
RegMeasure.MeasureGrade = "EYE"
txbGrade.Text = RegMeasure.MeasureGrade
txbGrade.BackColor = Color.Green
Else
RegMeasure.MeasureOkNg = "NG"
RegMeasure.MeasureGrade = "UNDER"
txbGrade.Text = RegMeasure.MeasureGrade
RegMeasure.MeasureValue(0) = 0
txbGrade.BackColor = Color.Red
End If
txbGrade.Refresh()
RegMeasure.MeasureCapacitor = RELAY_C(RegMeasure.MeasureValue(0))
txbCapacitor.Text = RegMeasure.MeasureCapacitor
If RegMeasure.MeasureValue(0) Then
txbCapacitor.BackColor = Color.Green
Else
txbCapacitor.BackColor = Color.Red
End If
txbCapacitor.Refresh()
End Sub
Private Sub btnCal_Click(sender As Object, e As EventArgs) Handles btnCal.Click
If CalModeOn = False Then
CalModeOn = True
txbCmdWindow.Clear()
txbCmdWindow.Visible = True
gbTestWindow.Visible = False
btnRunIQC.Enabled = True
btnRunIQC.Text = "완료"
End If
txbPV_Freq.Text = "7000"
RegMeasure.MeasurePV_SN = "DITTEST"
RunProcess()
btnRunIQC.Enabled = True
txbPV_Freq.Text = "N/A"
End Sub
Private Sub btPrintref_Click(sender As Object, e As EventArgs) Handles btPrintref.Click
Dim lvi(1) As String
Dim alList As System.Collections.ArrayList = New System.Collections.ArrayList(PrinterSettings.InstalledPrinters)
alList.Sort()
dgvPrinter.Rows.Clear()
For i = 0 To alList.Count - 1
lvi(0) = i + 1
lvi(1) = alList(i).ToString
dgvPrinter.Rows.Add(lvi)
Next
End Sub
Private Sub btnName1_Click(sender As Object, e As EventArgs) Handles btnName1.Click
Dim row As DataGridViewRow = dgvPrinter.SelectedRows(0)
Dim printname As String = row.Cells(1).Value.ToString
txbPrintApply.Text = printname
End Sub
Private Sub btnLabel1_Click(sender As Object, e As EventArgs) Handles btnLabel1.Click
Dim fileAddress As String = openfile()
If fileAddress <> "fail" Then
txbLabel1.Text = fileAddress
End If
End Sub
Private Function openfile() As String
Dim ofd As OpenFileDialog = New OpenFileDialog
ofd.Title = "라벨 파일 주소 불러오기"
ofd.FileName = ""
ofd.Filter = "라벨 파일(*.lbx) | *.lbx"
Dim dr As DialogResult = ofd.ShowDialog
If dr = DialogResult.OK Then
Return ofd.FileName
End If
Return "fail"
End Function
Private Sub Mqtt_DataSend(loadText As String)
Try
If loadText.Replace(" ", "") = "" Then
MsgBox("저장할 데이터가 존재하지 않습니다. 데이터를 확인하여 주십시오.", vbCritical)
Exit Sub
End If
If MQTClient IsNot Nothing AndAlso MQTClient.IsConnected Then
If mqttTopic.Length <> 0 Then
Try
Dim qos As Byte = 0
MQTClient.Publish(mqttTopic, System.Text.Encoding.Default.GetBytes(loadText), qos, False)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical)
End Try
Else
MsgBox("토픽을 지정하지 않았습니다. 토픽을 지정하여 주십시오.", vbExclamation)
End If
Else
MsgBox("Broker 호스트와 연결되지 않았습니다. 호스트와 연결하여 주십시오.", vbExclamation)
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub frmTD_JIG_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
End
End Sub
Private Sub lblTime_DoubleClick(sender As Object, e As EventArgs) Handles lblTime.DoubleClick
MsgBox("MQTT 정보" + vbCrLf + "MQTT Broker : " + mqttBroker + vbCrLf + "MQTT Topic : " + mqttTopic + vbCrLf + "DUALSONIC VER 3.2.2", vbInformation)
End Sub
Private Sub rdbCmat_5_CheckedChanged(sender As Object, e As EventArgs) Handles rdbCmat_5.CheckedChanged
If rdbCmat_5.Checked = True Then
nudmat_1.Enabled = True
nudmat_2.Enabled = True
nudmat_3.Enabled = True
nudmat_4.Enabled = True
nudmat_5.Enabled = True
ckbSerialUse.Checked = False
ckbSerialUse.Enabled = False
btnGradeStop.Enabled = False
gbDSMode.Enabled = False
GradeStop = 3
SettingMeasure = String.Empty
End If
End Sub
Private Sub rdbCmat_10_CheckedChanged(sender As Object, e As EventArgs) Handles rdbCmat_10.CheckedChanged
If rdbCmat_10.Checked = True Then
nudmat_1.Enabled = False
nudmat_2.Enabled = False
nudmat_3.Enabled = False
nudmat_4.Enabled = False
nudmat_5.Enabled = False
ckbSerialUse.Checked = True
ckbSerialUse.Enabled = True
If ckbSerialUse.Checked = True Then
btnGradeStop.Enabled = True
gbDSMode.Enabled = True
End If
End If
End Sub
Private Sub btnGradeStop_Click(sender As Object, e As EventArgs) Handles btnGradeStop.Click
GradeStop += 1
If GradeStop Mod 3 = 2 Then
gradeChange("EYE")
ElseIf GradeStop Mod 3 = 1 Then
gradeChange("PRO")
Else
gradeReset()
End If
End Sub
Private Sub gradeChange(typeName As String)
SettingMeasure = typeName
txbGradePD1.BackColor = Color.Green
txbGradePD1.Text = SettingMeasure
txbGradePD1.Refresh()
End Sub
Private Sub gradeReset()
SettingMeasure = String.Empty
txbGradePD1.BackColor = DefaultBackColor
txbGradePD1.Text = "대기"
txbGradePD1.Refresh()
End Sub
Private Sub ckbSerialUse_CheckedChanged(sender As Object, e As EventArgs) Handles ckbSerialUse.CheckedChanged
If ckbSerialUse.Checked = True Then
If cmdSerialPort.IsOpen = False Then
OpenSerial()
End If
End If
OkNgTestStepSet()
End Sub
Private Sub OkNgTestStepSet()
If ckbSerialUse.Checked = False Then
TeststepSet.First_Ok = TestStepList.MAX_First_OK
TeststepSet.First_Ng = TestStepList.MAX_First_NG
TeststepSet.Re_OK = TestStepList.MAX_RE_OK
TeststepSet.RE_Ng = TestStepList.MAX_RE_NG
gbDSMode.Enabled = False
btnGradeStop.Enabled = False
Else
TeststepSet.First_Ok = TestStepList.DUAL_First_OK
TeststepSet.First_Ng = TestStepList.DUAL_First_NG
TeststepSet.Re_OK = TestStepList.DUAL_RE_OK
TeststepSet.RE_Ng = TestStepList.DUAL_RE_NG
gbDSMode.Enabled = True
btnGradeStop.Enabled = True
End If
End Sub
End Class