Imports System.IO Imports System.IO.Ports Imports System.Math Imports OpenCvSharp Imports AForge.Video.DirectShow Imports uPLibrary.Networking.M2Mqtt Imports System.Text Public Class Main_Form Public Program_Name As String = "DUALSONIC_Multi_Function_Tester Ver." Public Program_Version As String = "1.1.2" ''데이터 베이스 테이블 목록 Private TDTable As String = "jomtTesterDB.jomtCartridgeTbl" Private TDTestTable As String = "jomtTesterServerDB.jomtCartridgeTbl" Private hfDataTable As String = "jomtTesterDB.jomtHFTestTbl" Private hfDataTestTable As String = "jomtTesterServerDB.jomtHFTestTbl" Private rfDataTable As String = "jomtTesterDB.jomtRFTestTbl" Private rfDataTestTable As String = "jomtTesterServerDB.jomtRFTestTbl" Private pd1CntTable As String = "jomtTesterDB.jomtMES_PD1Tbl" Private pd1CntTestTable As String = "jomtTesterServerDB.jomtMES_PD1Tbl" Private iqcCntTable As String = "jomtTesterDB.jomtMES_IQCTbl" Private iqcCntTestTable As String = "jomtTesterServerDB.jomtMES_IQCTbl" Private NonTDTable As String = "jomtTesterDB.jomtNonTDTbl" Private NonTDTestTable As String = "jomtTesterServerDB.jomtNonTDTbl" ''사용하고자 하는 데이터베이스 Private TDTableNow As String = TDTable Private hfTableNow As String = hfDataTable Private rfTableNow As String = rfDataTable Private pd1CntTableNow As String = pd1CntTable Private iqcCntTableNow As String = iqcCntTable Private NonTDTableNow As String = NonTDTable Private ParaComport As String Private modeSaveSwitch As Boolean = False Private Enum testRunningList Running Fail Success End Enum Private testState(testRunningList.Success) As String Private Enum ConnectList USB GPIB MAXConnect End Enum Private ConnectName(ConnectList.GPIB) As String Private ConnectSelect As Int16 Private Enum formTypeList full iqc prod_HF prod_RF altoIQC altoPD Company DS_IQC DS_PD EF_IQC EF_PD MAX_FORM_TYPE End Enum Private formType As Int16 Private formProdCode(formTypeList.MAX_FORM_TYPE) As String Private StartSwitch As Boolean Private TDSNHead1 As String = "DIT" Private TDSNHead2 As String = "J3" Private Const TestType As String = "SET" Private Const TestModel As String = "MAXIMUM" Private Const TestModel_EF As String = "EFFECT" Private Const TestCount As Int16 = 10 Private Const RFTest_Count As Int16 = 2 ''0,1,2 = 세번 측정 Private Const RFTest_Type As Int16 = 1 ''0,1 = 세번 측정 Private Const MCTest_Count As Int16 = 1 ''0,1 = 두번 측정 Private Const EPTest_Count As Int16 = 2 ''0,1,2 = 세 번 측정 Private Const EPTest_WCount As Int16 = 1 Private Const DataSaveCount As Int16 = 10 Private Const LEDReTest As Int16 = 8 ''원하는 좌표 기준 8방위 = 총 9 차례 시도 Private Const SuccessCode As Int16 = 23 Private Const ImgSave As String = "ImgSave" Private Const ImgCvt As String = "ImgConvert" Private Const LEDColorCk As Int16 = 1 Public LedColorName(LEDColorCk) As String Private LedCoordinate(LEDColorCk, LEDColorCk) As Int16 Private LedCoordinate2(LEDColorCk, LEDColorCk) As Int16 Private LedHueMin(LEDColorCk) As TextBox Private LedHueMax(LEDColorCk) As TextBox Private LedSaturMin(LEDColorCk) As TextBox Private LedSaturMax(LEDColorCk) As TextBox Private LedBrightMin(LEDColorCk) As TextBox Private LedBrightMax(LEDColorCk) As TextBox Private LedData(LEDColorCk, 2) As Int16 Public HF_OutMIN As TextBox Public HF_OutMax As TextBox Public HF_OutRange As TextBox Public RF_VRMSMax(RFTest_Count) As TextBox Public RF_VRMSMin(RFTest_Count) As TextBox Public MC_VPPtxb(MCTest_Count + 1) As TextBox Public MC_Widthtxb(MCTest_Count + 1) As TextBox Public EP_VPPtxb(EPTest_Count) As TextBox Public EP_FREQtxb(EPTest_Count) As TextBox Public HF_Outtxb(HFTest_Count) As TextBox Public JIGON_Timeout As Int16 Public JIGON_Delay As Int16 Public JIGDT_Timeout As Int16 Public StepDelay As Integer Public HFRunCount As Int16 Public HFDataValid As Int16 Public HFReCkCount As Int16 Public HFLowShot As Int16 Private XMoveCrd As Int16 Private YMoveCrd As Int16 Private textRunning(TestCount) As TextBox Public txbWindow As TextBox Private EPVppMin As TextBox Private EPVppMax As TextBox Private EPFreq(EPTest_Count) As TextBox Private EPWidthMin(EPTest_Count) As TextBox Private EPWidthMax(EPTest_Count) As TextBox Private FWVerNow As TextBox Private BatCapacityMin As TextBox Private BatCapacityMax As TextBox Private rxMessage, cmdMessage, tmpCmdMessage As String Private dupDATA As Int16 = 0 Private Const td_name_size As Int16 = 8 Private SetTimeScale As Single Private SetDelay As Single Private SetRunShot As Int16 Private WebCamNum As Integer Private OLEDCamNum As Int16 Private TestError As Boolean = False Private DBCmd As String Private InputCnt As Int16 Private Const InputCntVal As Int16 = 10 Private DataSaveName(DataSaveCount) As String Private ScopeList() As String Private SpecList() As String Private StartTime As Long Private EndTime As Long Private NowDate As String Private NowTime As String Public Structure TestDataList Public Test_Serial As String Public Test_Firmware As String Public Test_Battery As Single Public Test_Temperature() As Double Public Test_HFData() As Double Public Test_HFInterval() As Single Public Test_RFVRMS() As Single Public Test_RFFreq() As Int16 Public Test_RFPWidth() As Single Public Test_RFNWidth() As Single Public Test_MCVpp() As Single Public Test_MCWidth() As Single Public Test_MCFreq() As Single Public Test_EPVpp() As Single Public Test_EPFreq() As Single Public Test_EPPWidth() As Single Public Test_EPNWidth() As Single End Structure Private TestData As TestDataList Private Enum TestStepList HF_NewSuc = 21 HF_NEWFail RF_NewSuc RF_NewFail HF_ReSuc HF_ReFail RF_ReSuc RF_ReFail End Enum Private processNum As Int16 Private Enum TD_Data TestStep TestDate Freq Grade power motor End Enum Private TDDataSet(TD_Data.motor) As String Private Enum TestList Start HIFU RF MC EP Battey Temp DataWrite MESreg DBWrite COUNT CSV Firmware Wait End Enum Private TestStep As Int16 = TestList.Wait Private Enum HifuTest_Step Step1 '6850 Step2 '7000 step3 '7150 step4 step5 End Enum Private HifuStep(HifuTest_Step.step5) As Int16 Private Enum HifuTest_Diff Step1_2 Step2_3 End Enum Private HFTest_Count As Int16 = HifuTest_Step.step3 Private Enum TempData DivTemp CartTemp CPUTemp End Enum Private TmpMin(TempData.CartTemp) As TextBox Private TmpMax(TempData.CartTemp) As TextBox Private TempSet(TempData.CPUTemp) As TextBox ''MQTT Public MQTClient As MqttClient Public mqttBroker As String = String.Empty Public mqttTopic As String = String.Empty Private todayCount As Integer = 1 '' 금일 측정 개수 Private Sub typeDataSetting() If rdbAltoIqc.Checked = True Or rdbAltoPD.Checked = True Then TmpMin(TempData.DivTemp) = txbTpDevMin_AL TmpMin(TempData.CartTemp) = txbTpCartMin_AL TmpMax(TempData.DivTemp) = txbTpDevMax_AL TmpMax(TempData.CartTemp) = txbTpCartMax_AL RF_VRMSMin(0) = txbRFVRmin1_AL RF_VRMSMin(1) = txbRFVRmin2_AL RF_VRMSMin(2) = txbRFVRmin3_AL RF_VRMSMax(0) = txbRFVRmax1_AL RF_VRMSMax(1) = txbRFVRmax2_AL RF_VRMSMax(2) = txbRFVRmax3_AL EPVppMin = txbEPVPmin_AL EPVppMax = txbEPVPmax_AL EPWidthMin(0) = txbEPDYmin1_AL EPWidthMin(1) = txbEPDYmin2_AL EPWidthMin(2) = txbEPDYmin3_AL EPWidthMax(0) = txbEPDYmax1_AL EPWidthMax(1) = txbEPDYmax2_AL EPWidthMax(2) = txbEPDYmax3_AL FWVerNow = txbFirmVer_AL BatCapacityMin = txbBatMin_AL BatCapacityMax = txbBatMax_AL ElseIf rdbDsIQC.Checked = True Or rdbDsPD.Checked = True Then TmpMin(TempData.DivTemp) = txbDSTmpDe_stMin TmpMin(TempData.CartTemp) = txbDSTmpCa_stMin TmpMax(TempData.DivTemp) = txbDSTmpDe_stMax TmpMax(TempData.CartTemp) = txbDSTmpCa_stMax BatCapacityMin = txbDSbat_stMin BatCapacityMax = txbDSbat_stMax FWVerNow = txbDSfw_st HF_OutMIN = txbDShfOut_stMin HF_OutMax = txbDShfOut_stMax HF_OutRange = txbDShfDif_st Else HF_OutMIN = txbHFOutMin HF_OutMax = txbHFOutMax HF_OutRange = txbHFMin TmpMin(TempData.DivTemp) = txbTpDevMin TmpMin(TempData.CartTemp) = txbTpCartMin TmpMax(TempData.DivTemp) = txbTpDevMax TmpMax(TempData.CartTemp) = txbTpCartMax RF_VRMSMin(0) = txbRFVRmin1 RF_VRMSMin(1) = txbRFVRmin2 RF_VRMSMin(2) = txbRFVRmin3 RF_VRMSMax(0) = txbRFVRmax1 RF_VRMSMax(1) = txbRFVRmax2 RF_VRMSMax(2) = txbRFVRmax3 EPVppMin = txbEPVPmin EPVppMax = txbEPVPmax EPWidthMin(0) = txbEPDYmin1 EPWidthMin(1) = txbEPDYmin2 EPWidthMin(2) = txbEPDYmin3 EPWidthMax(0) = txbEPDYmax1 EPWidthMax(1) = txbEPDYmax2 EPWidthMax(2) = txbEPDYmax3 FWVerNow = txbFirmVer BatCapacityMin = txbBatMin BatCapacityMax = txbBatMax End If If rdbCompany.Checked <> True Then If todayCountSet() Then txbWindow.AppendText("Today Count Setting Error ! " & vbCrLf) txbDayCount.Text = "0" txbOkCount.Text = "0" txbNgCount.Text = "0" End If End If End Sub Public Sub Data_Setting() typeDataSetting() testState(testRunningList.Running) = "Running" testState(testRunningList.Fail) = "F A I L" testState(testRunningList.Success) = "O K" HifuStep(HifuTest_Step.Step1) = txbFrStep1.Text HifuStep(HifuTest_Step.Step2) = txbFrStep2.Text HifuStep(HifuTest_Step.step3) = txbFrStep3.Text 'HifuStep(HifuTest_Step.Step1) = "6850" 'HifuStep(HifuTest_Step.Step2) = "6900" 'HifuStep(HifuTest_Step.step3) = "7000" HifuStep(HifuTest_Step.step4) = "7100" HifuStep(HifuTest_Step.step5) = "7150" TempSet(TempData.DivTemp) = txbDevTmp TempSet(TempData.CartTemp) = txbCartTmp TempSet(TempData.CPUTemp) = txbCPUTemp EPFreq(0) = txbEPFreq1 EPFreq(1) = txbEPFreq2 EPFreq(2) = txbEPFreq3 textRunning(1) = txbStep1 textRunning(2) = txbStep2 textRunning(3) = txbStep3 textRunning(4) = txbStep4 textRunning(5) = txbStep5 textRunning(6) = txbStep6 textRunning(7) = txbStep7 textRunning(8) = txbStep8 textRunning(9) = txbStep9 textRunning(10) = txbStep10 LedColorName(0) = "Red" LedColorName(1) = "Yellow" LedCoordinate(0, 0) = Val(txbRedCdn_X1.Text) ''Red X LedCoordinate(0, 1) = Val(txbRedCdn_Y1.Text) ''Red Y LedCoordinate(1, 0) = Val(txbYelCdn_X1.Text) ''Red X LedCoordinate(1, 1) = Val(txbYelCdn_Y1.Text) ''Red Y LedCoordinate2(0, 0) = Val(txbYelX1.Text) ''Yellow X LedCoordinate2(0, 1) = Val(txbYelY1.Text) ''Yellow Y LedCoordinate2(1, 0) = Val(txbYelX2.Text) ''Yellow X LedCoordinate2(1, 1) = Val(txbYelY2.Text) ''Yellow Y LedHueMin(0) = txbRHueMin LedHueMin(1) = txbYHueMin1 LedHueMax(0) = txbRHueMax LedHueMax(1) = txbYHueMax1 LedSaturMin(0) = txbRSatMin LedSaturMin(1) = txbYSatMin1 LedSaturMax(0) = txbRSatMax LedSaturMax(1) = txbYSatMax1 LedBrightMin(0) = txbRBgtMin LedBrightMin(1) = txbYBgtMin1 LedBrightMax(0) = txbRBgtMax LedBrightMax(1) = txbYBgtMax1 ''jig 관련 변수 JIGON_Timeout = txbJgTimeout.Text JIGON_Delay = txbJgDelay.Text JIGDT_Timeout = txbDTTimeout.Text ''구간별 딜레이 StepDelay = nudStepDelay.Text ''HIFU 관련 변수 HFRunCount = txbHFReCnt.Text HFDataValid = txbHFeffect.Text HFReCkCount = txbHFReCkCnt.Text HFLowShot = txbHFLowShot.Text ''항목별 제품 코드 formProdCode(formTypeList.full) = "30" formProdCode(formTypeList.iqc) = "30" formProdCode(formTypeList.prod_HF) = "30" formProdCode(formTypeList.prod_RF) = "30" formProdCode(formTypeList.altoIQC) = "50" formProdCode(formTypeList.altoPD) = "50" formProdCode(formTypeList.Company) = "00" formProdCode(formTypeList.DS_IQC) = "40" formProdCode(formTypeList.DS_PD) = "40" formProdCode(formTypeList.EF_IQC) = "60" formProdCode(formTypeList.EF_PD) = "60" End Sub '' 바코드 스캐너 동작 Private Sub SetInputCnt() InputCnt = InputCntVal BarTimer.Enabled = True End Sub Private Sub chbUseBarcode_CheckedChanged(sender As Object, e As EventArgs) Handles chbUseBarcode.CheckedChanged, chbAutoMeasure.CheckedChanged txbBarcode.Focus() End Sub Private Sub BarTimer_Tick(sender As Object, e As EventArgs) Handles BarTimer.Tick If InputCnt Then InputCnt -= 1 Else BarTimer.Enabled = False If txbBarcode.Text.Replace(" ", "") <> "" Or chbAutoMeasure.Checked Then If InStr(txbBarcode.Text, TDSNHead1) > 0 Or InStr(txbBarcode.Text, TDSNHead2) > 0 Or InStr(txbBarcode.Text, "[START]") > 0 Then btnRun_Click(sender, e) End If txbBarcode.Focus() Else btnRun.Focus() End If txbBarcode.Refresh() btnRun.Refresh() End If End Sub Private Sub txbBarcode_TextChanged(sender As Object, e As EventArgs) Handles txbBarcode.TextChanged Dim TmpStr As String If InputCnt = 0 And chbUseBarcode.Checked = True Then If TestStep = TestList.Wait Then TmpStr = txbBarcode.Text txbCmdWindow.AppendText(TmpStr) If (Len(TmpStr) > 1) Then TmpStr = Mid(TmpStr, Len(TmpStr), 1) txbBarcode.Clear() txbBarcode.AppendText(TmpStr) End If SetInputCnt() End If End If End Sub Private Sub txbBarcode_Click(sender As Object, e As EventArgs) Handles txbBarcode.Click txbBarcode.BackColor = Color.White If chbUseBarcode.Checked = False Then txbBarcode.Clear() End If End Sub '' ------------------------------------------------------ Private Sub Main_Form_Load(sender As Object, e As EventArgs) Handles MyBase.Load PositionSetting() txbWindow = txbCmdWindow txbWindow.AppendText("Config Data Loading...." & vbCrLf) WebCamNum = -1 '' 연결 방식 관련 ConnectName(ConnectList.USB) = "USB" ConnectName(ConnectList.GPIB) = "GPIB" ConfigIniLoad() loadLocalFile() txbWindow.AppendText("Config Data Loading Success" & vbCrLf) txbWindow.AppendText("Data Setting Loading...." & vbCrLf) Data_Setting() txbWindow.AppendText("Data Setting Loading Success" & vbCrLf) dgvID.Font = New Font("함초롱바탕", 11.25, FontStyle.Bold) 'EquipSetting() TestDBCon() modeSaveSwitch = True txbBarcode.Focus() End Sub Private Function todayCountSet() As Boolean '' Dim NotChecked As Boolean = False NowDate = Format(Now, "yyyy-MM-dd") If rdbIQC.Checked = True Or rdbAltoIqc.Checked = True Then DBCmd = "SELECT COUNT(NUMBER) FROM " & iqcCntTableNow & " WHERE IQC_Date = '" & NowDate & "'" If DBQueryScalar(DBCmd) = 0 Then DBCmd = "INSERT INTO " & iqcCntTableNow & " (IQC_Date) VALUES ('" & NowDate & "')" If DBCommand(DBCmd) = False Then Return True End If End If Else DBCmd = "SELECT COUNT(NUMBER) FROM " & pd1CntTableNow & " WHERE PD1_Date = '" & NowDate & "'" If DBQueryScalar(DBCmd) = 0 Then DBCmd = "INSERT INTO " & pd1CntTableNow & " (PD1_Date) VALUES ('" & NowDate & "')" If DBCommand(DBCmd) = False Then Return True End If End If End If If rdbAltoPD.Checked = True Then DBCmd = "SELECT PD1_AltoCnt,PD1_AltoOkCnt,PD1_AltoNgCnt FROM " & pd1CntTableNow & " WHERE PD1_Date = '" & NowDate & "'" ElseIf rdbHF.Checked = True Or rdbEFPD.Checked = True Then DBCmd = "SELECT PD1_MaxHFTotalCnt,PD1_MaxHFOkCnt,PD1_MaxHFNgCnt FROM " & pd1CntTableNow & " WHERE PD1_Date = '" & NowDate & "'" ElseIf rdbRFMCEP.Checked = True Then DBCmd = "SELECT PD1_MaxRFTotalCnt,PD1_MaxRFOkCnt,PD1_MaxRFNgCnt FROM " & pd1CntTableNow & " WHERE PD1_Date = '" & NowDate & "'" ElseIf rdbIQC.Checked = True Then DBCmd = "SELECT IQC_MAXTotalCnt,IQC_MAXOkCnt,IQC_MAXNgCnt FROM " & iqcCntTableNow & " WHERE IQC_Date = '" & NowDate & "'" ElseIf rdbAltoIqc.Checked = True Then DBCmd = "SELECT IQC_ALTOTotalCnt,IQC_ALTOOkCnt,IQC_ALTONgCnt FROM " & iqcCntTableNow & " WHERE IQC_Date = '" & NowDate & "'" ElseIf rdbDsPD.Checked = True Then DBCmd = "SELECT PD1_DevTotalCnt,PD1_DevOkCnt,PD1_DevNgCnt FROM " & pd1CntTableNow & " WHERE PD1_Date = '" & NowDate & "'" Else NotChecked = True End If If (NotChecked = False) Then If DBQueryReader(DBCmd) Then txbDayCount.Text = sqlDataQuery(0) txbOkCount.Text = sqlDataQuery(1) txbNgCount.Text = sqlDataQuery(2) Return False Else Return True End If Else Return True End If Return False End Function Private Sub PositionSetting() MainSetting() TopPositonSet() BarcPositionSet() StatePosition() SituationPosition() End Sub Private Sub TestDBCon() DBCmd = "select database()" If DBQueryScalar(DBCmd) = "False" Then txbWindow.AppendText("DataBase Connection Error!!" & vbCrLf) End If txbWindow.AppendText("DataBase Connection Success!!" & vbCrLf) End Sub Private Sub btnReStart_Click(sender As Object, e As EventArgs) Handles btnReStart.Click StartSwitch = False loadLocalFile() Data_Setting() changeMode() txbBarcode.Focus() End Sub Private Sub EquipSetting() Dim ErrorSwitch As Boolean = False If EquipSet() Then txbWindow.AppendText("Scope Setting Fail!!" & vbCrLf) ErrorSwitch = True Else txbWindow.AppendText("Scope Setting Success!!" & vbCrLf) End If If SpecSet() Then txbWindow.AppendText("Spectrum Setting Fail!!" & vbCrLf) ErrorSwitch = True Else txbWindow.AppendText("Spectrum Setting Success!!" & vbCrLf) End If If ErrorSwitch = False Then StartSwitch = True End If End Sub Private Sub btnSerial_Click(sender As Object, e As EventArgs) Handles btnSerial.Click If btnSerial.Text = "스캔" Then If LoadComportName() Then btnSerial.Text = "연결" End If Else If cbbSerial.SelectedIndex = -1 Then MsgBox("포트를 선택하여 주십시오.", vbExclamation, Program_Name & Program_Version) Exit Sub End If If JigSerial.IsOpen Then JigSerial.Close() End If If cbbJgBaudRate.SelectedIndex = -1 Then cbbJgBaudRate.SelectedIndex = 1 End If ParaComport = cbbSerial.SelectedItem OpenSerial(cbbJgBaudRate.SelectedItem) btnSerial.Text = "스캔" txbBarcode.Focus() End If End Sub Private Function LoadComportName() As Boolean Dim portname() As String Try cbbSerial.Items.Clear() portname = SerialPort.GetPortNames For i = 0 To portname.Length - 1 cbbSerial.Items.Add(portname(i)) Next cbbSerial.Text = "Select!" Return True Catch ex As Exception MsgBox("COM 포트 에러" & vbCrLf & "", vbOK + vbCritical, "DUALSONIC Cartridge Film Pressing") Return False End Try End Function Private Sub OpenSerial(baudNum As Integer) Try If JigSerial.IsOpen = False Then With JigSerial .PortName = ParaComport .BaudRate = baudNum .DataBits = 8 .Parity = IO.Ports.Parity.None .StopBits = IO.Ports.StopBits.One .Handshake = IO.Ports.Handshake.None .ReadTimeout = 0 .WriteTimeout = 1 End With JigSerial.Open() txbWindow.AppendText("JIG Serial Port Open!!" & vbCrLf) Else MsgBox("열려있는 시리얼 포트가 존재합니다! 시리얼 포트를 끊고 다시 설정하여 주십시오." & vbCrLf & "", vbCritical, "DUALSONIC Cartridge Film Pressing") End If Catch ex As Exception MsgBox("COM 포트 에러" & vbCrLf & "", vbOK + vbCritical, "DUALSONIC Cartridge Film Pressing") End Try End Sub '' Spectrum Command------------------------------------------------------------------------------------------------------------------------------ Private Function SpecConnectSelect(SpecID As String) As Int16 If SpecID = "" Then Return -1 End If Dim SpecConnect As String = Mid(SpecID, 1, InStr(1, SpecID, "0:") - 1) For i = ConnectList.USB To ConnectList.MAXConnect - 1 If SpecConnect = ConnectName(i) Then Return i End If Next Return -1 End Function Private Function SpecSet() As Boolean Dim ScopeData As String Dim ErrCheck As Boolean = False ConnectSelect = SpecConnectSelect(txbSpecID.Text) If ConnectSelect = -1 Then MsgBox("연결된 Spectrum 이 존재하지 않습니다. 연결을 확인하여 주십시오.", vbCritical) Return True End If ScopeData = SpecOpen(txbSpecID.Text, nudSpTimeout.Text) txbWindow.AppendText("Spectrum Data:" & ScopeData & vbCrLf) If ScopeData = "FAIL" Then MsgBox("Spectrum 연결에 실패했습니다.", vbCritical, Program_Name & Program_Version) Return True End If If ConnectSelect = ConnectList.USB Then ScopeData = RunCommand("*CLS") If ScopeData <> "PASS" Then txbWindow.AppendText("Spectrum Data initialization Error:" & ScopeData & vbCrLf) ErrCheck = True Else txbWindow.AppendText("Spectrum Data initialization:" & ScopeData & vbCrLf) End If ScopeData = RunCommand(":FREQuency:CENTer " & txbFrStep1.Text & "kHz") If ScopeData <> "PASS" Then txbWindow.AppendText("Spectrum Center Frequence Setting Error:" & ScopeData & vbCrLf) ErrCheck = True Else txbWindow.AppendText("Spectrum Center Frequence Setting :" & ScopeData & vbCrLf) End If ScopeData = RunCommand(":FREQuency:SPAN " & txbSpan.Text & "MHz") If ScopeData <> "PASS" Then txbWindow.AppendText("Spectrum Span Setting Error:" & ScopeData & vbCrLf) ErrCheck = True Else txbWindow.AppendText("Spectrum Span Setting :" & ScopeData & vbCrLf) End If ScopeData = RunCommand(":BANDwidth:AUTO OFF") If ScopeData <> "PASS" Then txbWindow.AppendText("Spectrum RBW Auto Setting Error:" & ScopeData & vbCrLf) ErrCheck = True Else txbWindow.AppendText("Spectrum RBW Auto Setting :" & ScopeData & vbCrLf) End If ScopeData = RunCommand(":BANDwidth " & txbRBW.Text & " MHz") If ScopeData <> "PASS" Then txbWindow.AppendText("Spectrum RBW Auto Setting Error:" & ScopeData & vbCrLf) ErrCheck = True Else txbWindow.AppendText("Spectrum RBW Auto Setting :" & ScopeData & vbCrLf) End If ScopeData = RunCommand(":BANDwidth:VIDeo:AUTO ON") If ScopeData <> "PASS" Then txbWindow.AppendText("Spectrum VBW Auto Setting Error:" & ScopeData & vbCrLf) ErrCheck = True Else txbWindow.AppendText("Spectrum VBW Auto Setting :" & ScopeData & vbCrLf) End If ScopeData = RunCommand(":DISPlay:WINDow:TRACe:Y:PDIVision 1") If ScopeData <> "PASS" Then txbWindow.AppendText("Spectrum Scale/Div Setting Error:" & ScopeData & vbCrLf) ErrCheck = True Else txbWindow.AppendText("Spectrum Scale/Div Setting :" & ScopeData & vbCrLf) End If ScopeData = RunCommand(":DISPlay:WINDow:TRACe:Y:SPACing LOGarithmic") If ScopeData <> "PASS" Then txbWindow.AppendText("Spectrum Scale Type Setting Error:" & ScopeData & vbCrLf) ErrCheck = True Else txbWindow.AppendText("Spectrum Scale Type Setting :" & ScopeData & vbCrLf) End If If ckbScopeZ.Checked = True Then ScopeData = RunCommand(":CORRection:IMPedance 50") If ScopeData <> "PASS" Then txbWindow.AppendText("Spectrum Impedance Setting Error:" & ScopeData & vbCrLf) ErrCheck = True Else txbWindow.AppendText("Spectrum Impedance Setting :" & ScopeData & vbCrLf) End If End If 'ScopeData = RunCommand(":POWer:ATTLimit:STATe ON") 'If ScopeData <> "PASS" Then ' txbWindow.AppendText("Spectrum Att Limit Setting Error:" & ScopeData & vbCrLf) ' ErrCheck = True 'Else ' txbWindow.AppendText("Spectrum Att Limit Setting :" & ScopeData & vbCrLf) 'End If ScopeData = RunCommand(":UNIT:POWer W") If ScopeData <> "PASS" Then txbWindow.AppendText("Spectrum Y Axis Setting Error:" & ScopeData & vbCrLf) ErrCheck = True Else txbWindow.AppendText("Spectrum Y Axis Setting :" & ScopeData & vbCrLf) End If ScopeData = RunCommand(":POWer:ATTenuation:AUTO ON") If ScopeData <> "PASS" Then txbWindow.AppendText("Spectrum Attenuation Setting Error:" & ScopeData & vbCrLf) ErrCheck = True Else txbWindow.AppendText("Spectrum Attenuation Setting :" & ScopeData & vbCrLf) End If ScopeData = RunCommand(":POWer:ATTenuation 25dB") If ScopeData <> "PASS" Then txbWindow.AppendText("Spectrum Attenuation Number Setting Error:" & ScopeData & vbCrLf) ErrCheck = True Else txbWindow.AppendText("Spectrum Attenuation Number Setting :" & ScopeData & vbCrLf) End If ScopeData = RunCommand(":DISPlay:WINDow:TRACe:Y:RLEVel:OFFSet " & txbHFRefLev.Text & "") If ScopeData <> "PASS" Then txbWindow.AppendText("Spectrum Ref Level Setting Error:" & ScopeData & vbCrLf) ErrCheck = True Else txbWindow.AppendText("Spectrum Ref Level Setting :" & ScopeData & vbCrLf) End If ScopeData = RunCommand(":DISPlay:WINDow:TRACe:Y:RLEVel 28.18W") If ScopeData <> "PASS" Then txbWindow.AppendText("Spectrum Ref Level Setting Error:" & ScopeData & vbCrLf) ErrCheck = True Else txbWindow.AppendText("Spectrum Ref Level Setting :" & ScopeData & vbCrLf) End If ElseIf ConnectSelect = ConnectList.GPIB Then Else MsgBox("잘못된 연결 방식의 Spectrum 입니다. 확인하여 주십시오.", vbCritical) Return True End If If ErrCheck = True Then Return True End If Return False End Function Private Function CalMarker_Set() As Boolean Dim ScopeData As String = RunCommand(":CALCulate:MARKer1:MAXimum") If ScopeData <> "PASS" Then txbWindow.AppendText("Spectrum Trace1 CalCulate Marker1 Maximum Check Error:" & ScopeData & vbCrLf) Return False Else txbWindow.AppendText("Spectrum Trace1 CalCulate Marker1 Maximum Check : " & ScopeData & vbCrLf) Return True End If End Function Private Function SpecFreq_Set(FreqReg As Single) As Boolean Dim specData As String = RunCommand(":FREQuency:CENTer " & FreqReg & "kHz") If specData <> "PASS" Then Return False Else Return True End If End Function Private Function Clear_Set() As Boolean Dim ScopeData As String = RunCommand(":TRACe1:MODE WRITe") If ScopeData <> "PASS" Then Return False Else Return True End If End Function Private Function MaxHold_Set() As Boolean Dim ScopeData As String = RunCommand(":TRACe1:MODE MAXHold") If ScopeData <> "PASS" Then Return False Else Return True End If End Function Private Function TektronixReset() As Boolean Dim ScopeData As String = RunCommand(":TRACe1:AVERage:CLEar") If ScopeData <> "PASS" Then Return False Else Return True End If End Function ''' Scope Command------------------------------------------------------------------------------------------------------------------------------ Private Function EquipSet() As Boolean Dim ScopeData As String Dim ErrCheck As Boolean = False ScopeData = ScopeOpen(txbScopeID.Text, nudScTimeout.Value) txbWindow.AppendText(vbCrLf & "Scope Data:" & ScopeData & vbCrLf) If ScopeData = "FAIL" Then MsgBox("Scope 연결에 실패했습니다.", vbCritical, Program_Name & Program_Version) Return True End If ScopeData = DoCommand("*RST") If ScopeData <> "PASS" Then txbWindow.AppendText("Scope Factory initialization Error:" & ScopeData & vbCrLf) ErrCheck = True Else txbWindow.AppendText("Scope Factory initialization:" & ScopeData & vbCrLf) End If ScopeData = DoCommand("*CLS") If ScopeData <> "PASS" Then txbWindow.AppendText("Scope Data initialization Error:" & ScopeData & vbCrLf) ErrCheck = True Else txbWindow.AppendText("Scope Data initialization:" & ScopeData & vbCrLf) End If ScopeData = DoCommand(":DISPlay:ANNotation 1") If ScopeData <> "PASS" Then txbWindow.AppendText("Scope Annotation use Error:" & ScopeData & vbCrLf) ErrCheck = True Else txbWindow.AppendText("Scope Annotation use:" & ScopeData & vbCrLf) End If ScopeData = DoCommand(":DISPlay:ANNotation:Text 'JION Meditech Function Tester'") If ScopeData <> "PASS" Then txbWindow.AppendText("Scope Annotation Text Error:" & ScopeData & vbCrLf) ErrCheck = True Else txbWindow.AppendText("Scope Annotation Text:" & ScopeData & vbCrLf) End If ScopeData = DoCommand(":DISPlay:ANNotation:COLor CH3") If ScopeData <> "PASS" Then txbWindow.AppendText("Scope Annotation Color Error:" & ScopeData & vbCrLf) ErrCheck = True Else txbWindow.AppendText("Scope Annotation Color:" & ScopeData & vbCrLf) End If ScopeData = DoCommand(":DISPlay:ANNotation:BACKground TRAN") If ScopeData <> "PASS" Then txbWindow.AppendText("Scope Annotation BackGround Error:" & ScopeData & vbCrLf) ErrCheck = True Else txbWindow.AppendText("Scope Annotation BackGround:" & ScopeData & vbCrLf) End If ScopeData = DoCommand(":CHANnel1:COUPling DC") If ScopeData <> "PASS" Then txbWindow.AppendText(vbCrLf & "Scope Coupling Set Error:" & ScopeData & vbCrLf) ErrCheck = True Else txbWindow.AppendText(vbCrLf & "Scope Coupling Set:" & ScopeData & vbCrLf) End If RF_Setting() '' 50ms 단축을 위해 사용 - 안할시 170ms / 적용시 110ms If ErrCheck = True Then Return True End If Return False End Function Private Function RF_Setting() As Boolean Dim SetString As String If TrigSlope_Set("POS") = False Then Return True End If If rdbRFTrAuto.Checked = True Then SetString = "AUTO" Else SetString = "NORMal" End If If TriggerSet(SetString) = False Then Return True End If If TrigMod_Set() = False Then Return True End If If TrigLv_Set(nudRFTrgLv.Value) = False Then Return True End If If TimeScale_Set(CSng(txbRFtime.Text)) = False Then Return True End If If Delay_Select(Val(txbRFDelay.Text)) = False Then Return True End If If CH_Select(nudRFCh.Value) = False Then Return True End If If rdbRFUnitV.Checked = True Then SetString = "VOLT" Else SetString = "AMPere" End If If Unit_Select(SetString, nudRFCh.Value) = False Then Return True End If If Scale_Select(nudRFScale.Value, nudRFCh.Value) = False Then Return True End If If MeasClear() = False Then Return True End If If VRMS_Set(nudRFCh.Value) = False Then Return True End If If Freq_Set(nudRFCh.Value) = False Then Return True End If Return False End Function Private Function MC_Setting() As Boolean Dim SetString As String If TrigSlope_Set("POS") = False Then Return True End If If rdbMCTrAuto.Checked = True Then SetString = "AUTO" Else SetString = "NORMal" End If If TriggerSet(SetString) = False Then Return True End If If TrigLv_Set(nudMCFVTrgLv.Value) = False Then Return True End If If TrigMod_Set() = False Then Return True End If If CH_Select(nudMCCh.Value) = False Then Return True End If If rdbMCUnitV.Checked = True Then SetString = "VOLT" Else SetString = "AMPere" End If If Unit_Select(SetString, nudMCCh.Value) = False Then Return True End If If TimeScale_Set(Val(txbMCFVtime.Text)) = False Then Return True End If If Delay_Select(Val(txbMCFVDelay.Text)) = False Then Return True End If If Scale_Select(nudMCScale.Value, nudMCCh.Value) = False Then Return True End If If MeasClear() = False Then Return True End If If VPP_Set(nudMCCh.Value) = False Then Return True End If If Freq_Set(nudMCCh.Value) = False Then Return True End If If PWidth_Set(nudMCCh.Value) = False Then Return True End If If NWidth_Set(nudMCCh.Value) = False Then Return True End If Return False End Function Private Function EP_Setting() As Boolean Dim SetString As String If TrigSlope_Set("POS") = False Then Return True End If If rdbEPTrAuto.Checked = True Then SetString = "AUTO" Else SetString = "NORMal" End If If TriggerSet(SetString) = False Then Return True End If If TrigMod_Set() = False Then Return True End If If TrigLv_Set(nudEPFVTrgLv.Value) = False Then Return True End If If TimeScale_Set(Val(txbEPFVtime.Text)) = False Then Return True End If If Delay_Select(Val(txbEPFVDelay.Text)) = False Then Return True End If If CH_Select(nudEPCh.Value) = False Then Return True End If If rdbEPUnitV.Checked = True Then SetString = "VOLT" Else SetString = "AMPere" End If If Unit_Select(SetString, nudEPCh.Value) = False Then Return True End If If Scale_Select(nudEPScale.Value, nudEPCh.Value) = False Then Return True End If If MeasClear() = False Then Return True End If If VPP_Set(nudEPCh.Value) = False Then Return True End If If Freq_Set(nudEPCh.Value) = False Then Return True End If If PWidth_Set(nudEPCh.Value) = False Then Return True End If If NWidth_Set(nudEPCh.Value) = False Then Return True End If Return False End Function Private Function TrigLv_Set(Tg_Lv As Single) As Boolean Dim ScopeData As String = DoCommand(":TRIGger:LEVel " & Tg_Lv) If ScopeData <> "PASS" Then txbWindow.AppendText("Scope Trigger Level Setting Error :" & ScopeData & vbCrLf) Return False Else txbWindow.AppendText("Scope Trigger Level Setting :" & ScopeData & vbCrLf) '' TS_Value 값 출력되도록 변경해야 함 Return True End If End Function Private Function TimeScale_Set(TS_Value As Single) As Boolean Dim ScopeData As String = DoCommand(":TIMebase:SCALe " & TS_Value) If ScopeData <> "PASS" Then txbWindow.AppendText("Scope Time Scale Setting Error :" & ScopeData & vbCrLf) Return False Else txbWindow.AppendText("Scope Time Scale Setting :" & ScopeData & vbCrLf) '' TS_Value 값 출력되도록 변경해야 함 Return True End If End Function Private Function TriggerSet(Trigger_Sweep As String) As Boolean Dim ScopeData As String = DoCommand(":TRIGger:SWEep " & Trigger_Sweep) If ScopeData <> "PASS" Then txbWindow.AppendText("Scope Trigger Mode Error:" & Trigger_Sweep & ScopeData & vbCrLf) Return False Else txbWindow.AppendText("Scope Trigger Mode Setting: " & Trigger_Sweep & "/ Success" & vbCrLf) Return True End If End Function Private Function CH_Select(chNum As Int16) As Boolean Dim ScopeData As String = DoCommand(":MEASure:SOURce CHANnel" & chNum) If ScopeData <> "PASS" Then txbWindow.AppendText("Scope Channel Select Error :" & ScopeData & vbCrLf) Return False Else txbWindow.AppendText("Scope Channel Select Setting : " & ScopeData & vbCrLf) Return True End If End Function Private Function Unit_Select(Scope_Unit As String, chNum As Int16) As Boolean Dim ScopeData As String = DoCommand(":CHANnel" & chNum & ":UNITs " & Scope_Unit) If ScopeData <> "PASS" Then txbWindow.AppendText("Scope Channel Units Error:" & ScopeData & vbCrLf) Return False Else txbWindow.AppendText("Scope Channel Units Setting: " & Scope_Unit & "/ Success" & vbCrLf) Return True End If End Function Private Function Scale_Select(ScaleValue As Single, chNum As Int16) As Boolean Dim ScopeData As String = DoCommand(":CHANnel" & chNum & ":SCALe " & ScaleValue) If ScopeData <> "PASS" Then txbWindow.AppendText("Scope Channel Scale Error:" & ScopeData & vbCrLf) Return False Else txbWindow.AppendText("Scope Channel Scale Setting: " & ScaleValue & "/" & ScopeData & vbCrLf) Return True End If End Function Private Function Delay_Select(DelayCount As String) As Boolean Dim ScopeData As String = DoCommand(":TIMebase:DELay " & DelayCount) If ScopeData <> "PASS" Then txbWindow.AppendText("Scope Time Delay Set Error:" & ScopeData & vbCrLf) Return False Else txbWindow.AppendText("Scope Time Delay Set Setting: " & DelayCount & "-" & ScopeData & "_Success" & vbCrLf) Return True End If End Function Private Function TrigMod_Set() As Boolean Dim ScopeData As String = DoCommand(":TRIGger:MODE EDGE") If ScopeData <> "PASS" Then txbWindow.AppendText("Scope Trigger Mode Set Error:" & ScopeData & vbCrLf) Return False Else txbWindow.AppendText("Scope Trigger Mode Set : Success" & vbCrLf) Return True End If End Function Private Function TrigSlope_Set(slope_Type As String) As Boolean Dim ScopeData As String = DoCommand(":TRIGger:EDGE:SLOPe " & slope_Type) If ScopeData <> "PASS" Then txbWindow.AppendText("Scope Trigger Edge Slope Set Error : " & ScopeData & vbCrLf) Return False Else txbWindow.AppendText("Scope Trigger Edge Slope Set: EDGE_Success" & vbCrLf) Return True End If End Function Private Function VPP_Set(chNum As Int16) As Boolean Dim ScopeData As String = DoCommand(":MEASure:VPP CHANnel" & chNum) If ScopeData <> "PASS" Then txbWindow.AppendText("Scope Measure VPP Set Error:" & ScopeData & vbCrLf) Return False Else txbWindow.AppendText("Scope Measure VPP Set: Success" & vbCrLf) Return True End If End Function Private Function VRMS_Set(chNum As Int16) As Boolean Dim ScopeData As String = DoCommand(":MEASure:VRMS DISPlay,DC,CHANnel" & chNum) If ScopeData <> "PASS" Then txbWindow.AppendText("Scope Measure VRMS DC Set Error:" & ScopeData & vbCrLf) Return False Else txbWindow.AppendText("Scope Measure VRMS DC Set: Success" & vbCrLf) Return True End If End Function Private Function Freq_Set(chNum As Int16) As Boolean Dim ScopeData As String = DoCommand(":MEASure:FREQuency CHANnel" & chNum) If ScopeData <> "PASS" Then txbWindow.AppendText("Scope Measure PWidth Set Error:" & ScopeData & vbCrLf) Return False Else txbWindow.AppendText("Scope Measure PWidth Set: Success" & vbCrLf) Return True End If End Function Private Function MeasClear() As Boolean Dim ScopeData As String = DoCommand(":MEASure:CLEar") If ScopeData <> "PASS" Then txbWindow.AppendText("Scope Measure Clear Error:" & ScopeData & vbCrLf) Return False Else txbWindow.AppendText("Scope Measure Clear Set: Success" & vbCrLf) Return True End If End Function Private Function PWidth_Set(chNum As Int16) As Boolean Dim ScopeData As String = DoCommand(":MEASure:PWIDth CHANnel" & chNum) If ScopeData <> "PASS" Then txbWindow.AppendText("Scope Measure PWidth Set Error:" & ScopeData & vbCrLf) Return False Else txbWindow.AppendText("Scope Measure PWidth Set: Success" & vbCrLf) Return True End If End Function Private Function NWidth_Set(chNum As Int16) As Boolean Dim ScopeData As String = DoCommand(":MEASure:NWIDth CHANnel" & chNum) If ScopeData <> "PASS" Then txbWindow.AppendText("Scope Measure NWidth Set Error:" & ScopeData & vbCrLf) Return False Else txbWindow.AppendText("Scope Measure NWidth Set: Success" & vbCrLf) Return True End If End Function '' JIG Command------------------------------------------------------------------------------------------------------------------------------ Private Function SendData(SendMessage As String) As Boolean Try If JigSerial.IsOpen = True Then JigSerial.DiscardInBuffer() JigSerial.DiscardOutBuffer() If JigSerial.BytesToRead Then JigSerial.DiscardInBuffer() End If JigSerial.WriteTimeout = -1 JigSerial.WriteLine(SendMessage) Return False Else MsgBox("통신 포트가 열리지 않았습니다.", vbCritical) Return True End If Catch ex As Exception Return True End Try Return True End Function Private Function PollingReceiveData(RdTimeout As Long) As String Try If JigSerial.IsOpen = True Then rxMessage = "" JigSerial.ReadTimeout = RdTimeout rxMessage = JigSerial.ReadLine Return ParsingData() Else MsgBox("통신 포트가 열리지 않았습니다.", vbCritical) Return "close" End If Catch timeout As TimeoutException rxMessage = "" Return "timeout" Catch ex As Exception rxMessage = "" MsgBox(Err.Description, vbCritical) Return "pass" End Try End Function Private Function ParsingData() As String Dim cmdStr As String Dim cmdVal(0 To 6) As String Dim i As Integer Try cmdStr = "0" 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 5 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 = "" Select Case cmdStr Case "deviceon" cmdStr = cmdVal(1) Return cmdStr Case "entermft" cmdStr = cmdVal(1) Return cmdStr Case "mftmode" cmdStr = cmdVal(1) Return cmdStr Case "runmc" cmdStr = cmdVal(1) Return cmdStr Case "runrf" cmdStr = cmdVal(1) Return cmdStr Case "runep" cmdStr = cmdVal(1) Return cmdStr Case "endmft" cmdStr = cmdVal(1) Return cmdStr Case "runhifu" cmdStr = cmdVal(1) Return cmdStr Case "dsfwver" cmdStr = cmdVal(1) Return cmdStr Case "rdbattlv" cmdStr = cmdVal(1) Return cmdStr Case "rdtemp" cmdStr = cmdVal(1) & "," & cmdVal(2) Return cmdStr Case "resetinf" cmdStr = cmdVal(1) Return cmdStr Case "settdsn" cmdStr = cmdVal(1) Return cmdStr Case "settdcnf" cmdStr = cmdVal(1) & "," & cmdVal(2) Return cmdStr Case "runled" cmdStr = cmdVal(1) Return cmdStr Case "setmotor" cmdStr = cmdVal(1) & "," & cmdVal(2) & "," & cmdVal(3) & "," & cmdVal(4) & "," & cmdVal(5) Return cmdStr Case "runbuzz" cmdStr = cmdVal(1) Return cmdStr End Select End If rxMessage = "" Return True Else Return False End If Catch ex As Exception rxMessage = "" Return Err.Description End Try End Function Private Function DeviceOn() As Boolean Dim retVal As String tmpCmdMessage = "deviceon" cmdMessage = "[" & tmpCmdMessage & "]" If SendData(cmdMessage) Then Return True End If retVal = PollingReceiveData(JIGON_Timeout) If retVal = "success" Then Return False End If Return True End Function Private Function FirmVerCheck() As Boolean 'MeasureTimeFunc(MeasStart) 'MainTextChange("펌웨어 측정중") TestStep = TestList.Firmware TestData.Test_Firmware = String.Empty tmpCmdMessage = "dsfwver" cmdMessage = "[" & tmpCmdMessage & "]" If SendData(cmdMessage) Then txbVer.ForeColor = Color.Red txbWindow.AppendText("Product Firmware/ JIG Connecter ERROR!" & vbCrLf) Return True End If TestData.Test_Firmware = PollingReceiveData(JIGDT_Timeout) txbVer.Text = TestData.Test_Firmware txbVer.Refresh() If TestData.Test_Firmware = FWVerNow.Text Then txbVer.ForeColor = Color.Blue TestRunningState(testRunningList.Success, Color.Green) txbWindow.AppendText("Firmware Time(ms) : " & MeasureTimeFunc(MeasEnd) & vbCrLf) Return False Else txbVer.ForeColor = Color.Red TestRunningState(testRunningList.Fail, Color.Red) txbWindow.AppendText("Firmware Time(ms) : " & MeasureTimeFunc(MeasEnd) & vbCrLf) Return True End If End Function Private Function TestMode_On(ModeNum As Int16) As Boolean Dim retVal As String tmpCmdMessage = "mftmode" cmdMessage = "[" & tmpCmdMessage & " " & ModeNum & "]" If SendData(cmdMessage) Then Return True End If retVal = PollingReceiveData(JIGDT_Timeout) If retVal = "sucess" Then Return False End If Return True End Function Private Function RunHifu(FreqUse As Boolean, Freq As Int16, Timeset As Int16) As Boolean Dim retVal As String tmpCmdMessage = "runhifu" cmdMessage = "[" & tmpCmdMessage & " " & Math.Abs(Val(FreqUse)) & "," & Freq & "," & Timeset & "]" If SendData(cmdMessage) Then Return True End If retVal = PollingReceiveData(JIGDT_Timeout) If retVal = "sucess" Then Return False End If Return True End Function Private Function RunRF(runType As Int16) As Boolean Dim retVal As String tmpCmdMessage = "runrf" cmdMessage = "[" & tmpCmdMessage & " " & runType & "," & nudRFRun.Value & "]" If SendData(cmdMessage) Then Return True End If retVal = PollingReceiveData(JIGDT_Timeout) If retVal = "sucess" Then Return False End If Return False End Function Private Function RunMC(runType As Int16, RunTime As Int16) As Boolean Dim retVal As String tmpCmdMessage = "runmc" cmdMessage = "[" & tmpCmdMessage & " " & runType & "," & RunTime & "]" If SendData(cmdMessage) Then Return True End If retVal = PollingReceiveData(JIGDT_Timeout) If retVal = "sucess" Then Return False End If Return True End Function Private Function RunEP(runType As Int32) As Boolean Dim retVal As String tmpCmdMessage = "runep" cmdMessage = "[" & tmpCmdMessage & " " & runType & "," & nudEPFVRun.Value & "]" If SendData(cmdMessage) Then Return True End If retVal = PollingReceiveData(JIGDT_Timeout) If retVal = "sucess" Then Return False End If Return True End Function Private Function RunTemp() As String Dim retVal As String tmpCmdMessage = "rdtemp" cmdMessage = "[" & tmpCmdMessage & "]" If SendData(cmdMessage) Then Return "conerror" End If retVal = PollingReceiveData(JIGDT_Timeout) Return retVal End Function Private Function RunBattery() As String Dim retVal As String tmpCmdMessage = "rdbattlv" cmdMessage = "[" & tmpCmdMessage & "]" If SendData(cmdMessage) Then Return "conerror" End If retVal = PollingReceiveData(JIGDT_Timeout) Return retVal End Function Private Function LEDRun(ColorNum As Int16, OnSet As Boolean) As Boolean Dim retVal As String tmpCmdMessage = "runled" cmdMessage = "[" & tmpCmdMessage & " " & ColorNum & "," & Abs(Val(OnSet)) & "]" If SendData(cmdMessage) Then Return True End If retVal = PollingReceiveData(JIGDT_Timeout) If retVal = "sucess" Then Return False End If Return True End Function Private Function SerialWrite(TDSN As String) As Boolean Dim retVal As String tmpCmdMessage = "settdsn" cmdMessage = "[" & tmpCmdMessage & " " & TDSN & "]" If SendData(cmdMessage) Then Return True End If retVal = PollingReceiveData(JIGDT_Timeout) If retVal.ToLower = TDSN.ToLower Then Return False End If Return True End Function Private Function FreqWrite(Freq As Int16, Power As Int16) As Boolean Dim retVal As String tmpCmdMessage = "settdcnf" cmdMessage = "[" & tmpCmdMessage & " " & Freq & "," & Power & "]" If SendData(cmdMessage) Then Return True End If retVal = PollingReceiveData(JIGDT_Timeout) If retVal = Freq & "," & Power Then Return False End If Return True End Function Private Function ResetData() As Boolean Dim retVal As String tmpCmdMessage = "resetinf" cmdMessage = "[" & tmpCmdMessage & "]" delay_run(300) If SendData(cmdMessage) Then Return True End If retVal = PollingReceiveData(JIGDT_Timeout) If retVal = "ok" Then Return False End If txbWindow.AppendText(retVal & vbCrLf) Return True End Function Private Function EndTest() As Boolean Dim retVal As String tmpCmdMessage = "endmft" cmdMessage = "[" & tmpCmdMessage & "]" If SendData(cmdMessage) Then Return True End If retVal = PollingReceiveData(JIGDT_Timeout) If retVal = "ok" Then Return False End If Return True End Function ''---------------------------------------------------------------------------------------------------------------------------- Private Function NonTDExist() As Boolean DBCmd = "SELECT COUNT(PV_SN) FROM " & NonTDTableNow & " WHERE PV_SN = '" & TestData.Test_Serial & "'" Dim sqlData As String = DBQueryScalar(DBCmd) If sqlData = "False" Then txbWindow.AppendText("DataBase TD DATA Connect Fail!!" & vbCrLf) TestError = False Return False End If If IsNumeric(sqlData) = False Then txbWindow.AppendText("DataBase TD DATA Numeric Fail!!" & vbCrLf) TestError = False Return False End If If Val(sqlData) > 0 Then '' td 데이터가 db에 있을 경우 Return False End If Return True End Function Private Function TDExist() As Boolean DBCmd = "SELECT COUNT(PV_SN) FROM " & TDTableNow & " WHERE PV_SN = '" & TestData.Test_Serial & "'" Dim sqlData As String = DBQueryScalar(DBCmd) If sqlData = "False" Then txbWindow.AppendText("DataBase TD DATA Connect Fail!!" & vbCrLf) TestError = False Return False End If If IsNumeric(sqlData) = False Then txbWindow.AppendText("DataBase TD DATA Numeric Fail!!" & vbCrLf) TestError = False Return False End If If Val(sqlData) < 1 Then txbWindow.AppendText("DataBase TD DATA Exist Fail!!" & vbCrLf) Return False End If txbWindow.AppendText("DataBase TD DATA Exist Success!!" & vbCrLf) Return True End Function Private Sub TDCompare() Dim tableName() As String Dim dupCount As Int16 = 0 dupDATA = 0 If formType = formTypeList.full Then ReDim tableName(1) tableName(0) = hfTableNow tableName(1) = rfTableNow ElseIf formType = formTypeList.prod_HF Or formType = formTypeList.EF_PD Then ReDim tableName(0) tableName(0) = hfTableNow ElseIf formType = formTypeList.prod_RF Or formType = formTypeList.altoPD Then ReDim tableName(0) tableName(0) = rfTableNow Else ReDim tableName(1) tableName(0) = hfTableNow tableName(1) = rfTableNow End If For i = 0 To tableName.Length - 1 DBCmd = "SELECT COUNT(PV_SN) FROM " & tableName(i) & " WHERE PV_SN = '" & TestData.Test_Serial & "'" & " AND DATE(TestDate) = CURDATE()" Dim DupYn As Int16 = DBQueryScalar(DBCmd) If DupYn > 0 Then If tableName(i) = hfTableNow Then dupCount = 1 Else dupCount = 2 End If Else dupCount = 0 End If dupDATA = dupDATA + dupCount Next End Sub Private Function StepSearch() As Boolean DBCmd = "SELECT TestStep FROM " & NonTDTableNow & " WHERE PV_SN = '" & TestData.Test_Serial & "'" TDDataSet(TD_Data.TestStep) = DBQueryScalar(DBCmd) If TDDataSet(TD_Data.TestStep) = "False" Then txbWindow.AppendText("DataBase TestStep DATA Load Fail!!" & vbCrLf) Return True End If Return False End Function Private Function TDTestNG() As Boolean DBCmd = "SELECT TestStep,QC_Date,QC_Frequency,QC_Grade,Ct_Power,Ct_Motor_Lv FROM " & TDTableNow & " WHERE PV_SN = '" & TestData.Test_Serial & "'" If DBQueryReader(DBCmd) Then For i = 0 To sqlDataQuery.Length - 1 TDDataSet(i) = sqlDataQuery(i) Next txbWindow.AppendText("DataBase TD DATA Load Success!!" & vbCrLf) Return False End If txbWindow.AppendText("DataBase TD DATA Load Fail!!" & vbCrLf) Return True End Function ''---------------------------------------------------------------------------------------------------------------------------- Public Function HFTestRun() As Boolean MeasureTimeFunc(MeasStart) MainTextChange("HIFU 측정중") TestStep = TestList.HIFU TestRunningState(testRunningList.Running, Color.Yellow) Const ModCnt As Int16 = 1 Dim ErrorCheck As Boolean = False Dim ForCnt As Int16 = 0 Dim PlayCount As Int16 = nudHFCount.Value For cnt = 0 To HifuTest_Step.step3 TestData.Test_HFData(cnt) = 0 If cnt < HifuTest_Step.step3 Then TestData.Test_HFInterval(cnt) = 0 End If Next If TestMode_On(ModCnt) Then txbWindow.AppendText("TestMode_Microcurrent Entrance Fail: " & ModCnt & vbCrLf) GoTo SettingFail End If For cnt = 0 To HifuTest_Step.step3 ForCnt = cnt hfTestState(cnt) If ConnectSelect = ConnectList.GPIB Then If TektronixReset() = False Then txbWindow.AppendText("Spectrum Reset Fail :" & cnt & vbCrLf) GoTo ForSettingFail End If Else If SpecFreq_Set(HifuStep(cnt)) = False Then txbWindow.AppendText("Spectrum Center Frequence Fail :" & cnt & vbCrLf) GoTo ForSettingFail End If If Clear_Set() = False Then txbWindow.AppendText("Spectrum Trace Clear Fail : " & cnt & vbCrLf) GoTo ForSettingFail End If If MaxHold_Set() = False Then txbWindow.AppendText("Spectrum Trace MaxHold Fail : " & cnt & vbCrLf) GoTo ForSettingFail End If txbWindow.AppendText("Run Hifu setting : " & cnt & vbCrLf) End If delay_run(txbHFStDelay.Text) For i = 0 To PlayCount - 1 If RunHifu(False, HifuStep(cnt), nudHFRun.Value) Then txbWindow.AppendText("Run Hifu Fail : " & cnt & vbCrLf) GoTo ForSettingFail End If txbWindow.AppendText("Run Hifu freq : " & HifuStep(cnt) & vbCrLf) txbWindow.AppendText("Run HIFU Success : " & cnt & vbCrLf) delay_run(nudHFwait.Value) Next If CalMarker_Set() = False Then txbWindow.AppendText("Spectrum CALCulate Marker Fail : " & cnt & vbCrLf) GoTo ForSettingFail End If TestData.Test_HFData(cnt) = Round(Convert.ToDouble(SpecQueryStr(":CALCulate:MARKer1:Y?")), 3) If formType = formTypeList.DS_IQC Or formType = formTypeList.DS_PD Then If cnt Mod 2 = 0 Then If TestData.Test_HFData(cnt) < Convert.ToDouble(Val(txbDSSub_Min.Text)) Or TestData.Test_HFData(cnt) > Convert.ToDouble(Val(txbDSSub_Max.Text)) Then txbWindow.AppendText("Run Hifu Fail " & cnt & " : " & TestData.Test_HFData(cnt) & vbCrLf) hfTestFail(cnt) ErrorCheck = True Else txbWindow.AppendText("Run Hifu " & cnt & " : " & TestData.Test_HFData(cnt) & vbCrLf) hfTestSuccess(cnt) End If Else If TestData.Test_HFData(cnt) < Convert.ToDouble(Val(txbDShfOut_stMin.Text)) Or TestData.Test_HFData(cnt) > Convert.ToDouble(Val(txbDShfOut_stMax.Text)) Then txbWindow.AppendText("Run Hifu Fail " & cnt & " : " & TestData.Test_HFData(cnt) & vbCrLf) hfTestFail(cnt) ErrorCheck = True Else txbWindow.AppendText("Run Hifu " & cnt & " : " & TestData.Test_HFData(cnt) & vbCrLf) hfTestSuccess(cnt) End If End If Else txbWindow.AppendText("Run Hifu setting : " & TestData.Test_HFData(cnt) & vbCrLf) If TestData.Test_HFData(cnt) < Convert.ToDouble(Val(HF_OutMIN.Text)) Or TestData.Test_HFData(cnt) > Convert.ToDouble(Val(HF_OutMax.Text)) Then txbWindow.AppendText("Run Hifu Fail " & cnt & " : " & TestData.Test_HFData(cnt) & vbCrLf) hfTestFail(cnt) ErrorCheck = True Else txbWindow.AppendText("Run Hifu " & cnt & " : " & TestData.Test_HFData(cnt) & vbCrLf) hfTestSuccess(cnt) End If End If Next If formType = formTypeList.DS_PD Or formType = formTypeList.DS_IQC Then If TestData.Test_HFData(HifuTest_Step.Step1) > TestData.Test_HFData(HifuTest_Step.step3) Then TestData.Test_HFInterval(HifuTest_Diff.Step1_2) = TestData.Test_HFData(HifuTest_Step.Step1) - TestData.Test_HFData(HifuTest_Step.Step2) txbWindow.AppendText("Run Hifu Step1 - Step2 : " & TestData.Test_HFInterval(HifuTest_Diff.Step1_2) & vbCrLf) TestData.Test_HFInterval(HifuTest_Diff.Step2_3) = 0 txbWindow.AppendText("Run Hifu Step2 - Step3 : " & TestData.Test_HFInterval(HifuTest_Diff.Step2_3) & vbCrLf) ElseIf TestData.Test_HFData(0) = TestData.Test_HFData(2) Then TestData.Test_HFInterval(HifuTest_Diff.Step1_2) = TestData.Test_HFData(HifuTest_Step.Step1) - TestData.Test_HFData(HifuTest_Step.Step2) txbWindow.AppendText("Run Hifu Step1 - Step2 : " & TestData.Test_HFInterval(HifuTest_Diff.Step1_2) & vbCrLf) TestData.Test_HFInterval(HifuTest_Diff.Step2_3) = 0 txbWindow.AppendText("Run Hifu Step2 - Step3 : " & TestData.Test_HFInterval(HifuTest_Diff.Step2_3) & vbCrLf) Else TestData.Test_HFInterval(HifuTest_Diff.Step1_2) = 0 txbWindow.AppendText("Run Hifu Step1 - Step2 : " & TestData.Test_HFInterval(HifuTest_Diff.Step1_2) & vbCrLf) TestData.Test_HFInterval(HifuTest_Diff.Step2_3) = TestData.Test_HFData(HifuTest_Step.Step2) - TestData.Test_HFData(HifuTest_Step.step3) txbWindow.AppendText("Run Hifu Step2 - Step3 : " & TestData.Test_HFInterval(HifuTest_Diff.Step2_3) & vbCrLf) End If Else TestData.Test_HFInterval(HifuTest_Diff.Step1_2) = TestData.Test_HFData(HifuTest_Step.Step1) - TestData.Test_HFData(HifuTest_Step.Step2) txbWindow.AppendText("Run Hifu Step1 - Step2 : " & TestData.Test_HFInterval(HifuTest_Diff.Step1_2) & vbCrLf) TestData.Test_HFInterval(HifuTest_Diff.Step2_3) = TestData.Test_HFData(HifuTest_Step.Step2) - TestData.Test_HFData(HifuTest_Step.step3) txbWindow.AppendText("Run Hifu Step2 - Step3 : " & TestData.Test_HFInterval(HifuTest_Diff.Step2_3) & vbCrLf) End If If Abs(TestData.Test_HFInterval(HifuTest_Diff.Step1_2)) >= Abs(Convert.ToDouble(HF_OutRange.Text)) Or Abs(TestData.Test_HFInterval(HifuTest_Diff.Step2_3)) >= Abs(Convert.ToDouble(HF_OutRange.Text)) Then txbWindow.AppendText("Run Hifu Range Value Fail" & vbCrLf) ErrorCheck = True End If If ErrorCheck = True Then TestRunningState(testRunningList.Fail, Color.Red) TestError = False Else TestRunningState(testRunningList.Success, Color.Green) End If txbWindow.AppendText("Hifu Test Full Time : " & MeasureTimeFunc(MeasEnd) & vbCrLf) Return False ForSettingFail: hfTestFail(ForCnt) SettingFail: MeasureTimeFunc(MeasEnd) TestError = False TestRunningState(testRunningList.Fail, Color.Red) Return True End Function Private Sub hfTestState(cnt As Int16) If rdbHF.Checked = True Or rdbEFPD.Checked = True Then If cnt = HifuTest_Step.Step1 Then txbHFtest1.Text = "측정중" txbHFtest1.BackColor = Color.Yellow txbHFtest1.Refresh() ElseIf cnt = HifuTest_Step.Step2 Then txbHFtest2.Text = "측정중" txbHFtest2.BackColor = Color.Yellow txbHFtest2.Refresh() Else txbHFtest3.Text = "측정중" txbHFtest3.BackColor = Color.Yellow txbHFtest3.Refresh() End If ElseIf formType = formTypeList.DS_IQC Or formType = formTypeList.DS_PD Then If cnt = HifuTest_Step.Step1 Then txbDSHifu_1.Text = "측정중" txbDSHifu_1.BackColor = Color.Yellow txbDSHifu_1.Refresh() ElseIf cnt = HifuTest_Step.Step2 Then txbDSHifu_2.Text = "측정중" txbDSHifu_2.BackColor = Color.Yellow txbDSHifu_2.Refresh() Else txbDSHifu_3.Text = "측정중" txbDSHifu_3.BackColor = Color.Yellow txbDSHifu_3.Refresh() End If Else If cnt = HifuTest_Step.Step1 Then txbIQCHF1.Text = "측정중" txbIQCHF1.BackColor = Color.Yellow txbIQCHF1.Refresh() ElseIf cnt = HifuTest_Step.Step2 Then txbIQCHF2.Text = "측정중" txbIQCHF2.BackColor = Color.Yellow txbIQCHF2.Refresh() Else txbIQCHF3.Text = "측정중" txbIQCHF3.BackColor = Color.Yellow txbIQCHF3.Refresh() End If End If End Sub Private Sub hfTestFail(cnt As Int16) If rdbHF.Checked = True Or rdbEFPD.Checked = True Then If cnt = HifuTest_Step.Step1 Then txbHFtest1.Text = "FAIL" txbHFtest1.BackColor = Color.Red txbHFtest1.Refresh() ElseIf cnt = HifuTest_Step.Step2 Then txbHFtest2.Text = "FAIL" txbHFtest2.BackColor = Color.Red txbHFtest2.Refresh() Else txbHFtest3.Text = "FAIL" txbHFtest3.BackColor = Color.Red txbHFtest3.Refresh() End If ElseIf formType = formTypeList.DS_IQC Or formType = formTypeList.DS_PD Then If cnt = HifuTest_Step.Step1 Then txbDSHifu_1.Text = "FAIL" txbDSHifu_1.BackColor = Color.Red txbDSHifu_1.Refresh() ElseIf cnt = HifuTest_Step.Step2 Then txbDSHifu_2.Text = "FAIL" txbDSHifu_2.BackColor = Color.Red txbDSHifu_2.Refresh() Else txbDSHifu_3.Text = "FAIL" txbDSHifu_3.BackColor = Color.Red txbDSHifu_3.Refresh() End If Else If cnt = HifuTest_Step.Step1 Then txbIQCHF1.Text = "FAIL" txbIQCHF1.BackColor = Color.Red txbIQCHF1.Refresh() ElseIf cnt = HifuTest_Step.Step2 Then txbIQCHF2.Text = "FAIL" txbIQCHF2.BackColor = Color.Red txbIQCHF2.Refresh() Else txbIQCHF3.Text = "FAIL" txbIQCHF3.BackColor = Color.Red txbIQCHF3.Refresh() End If End If End Sub Private Sub hfTestSuccess(cnt As Int16) If rdbHF.Checked = True Or rdbEFPD.Checked = True Then If cnt = HifuTest_Step.Step1 Then txbHFtest1.Text = "SUCCESS" txbHFtest1.BackColor = Color.Green txbHFtest1.Refresh() ElseIf cnt = HifuTest_Step.Step2 Then txbHFtest2.Text = "SUCCESS" txbHFtest2.BackColor = Color.Green txbHFtest2.Refresh() Else txbHFtest3.Text = "SUCCESS" txbHFtest3.BackColor = Color.Green txbHFtest3.Refresh() End If ElseIf formType = formTypeList.DS_IQC Or formType = formTypeList.DS_PD Then If cnt = HifuTest_Step.Step1 Then txbDSHifu_1.Text = "SUCCESS" txbDSHifu_1.BackColor = Color.Green txbDSHifu_1.Refresh() ElseIf cnt = HifuTest_Step.Step2 Then txbDSHifu_2.Text = "SUCCESS" txbDSHifu_2.BackColor = Color.Green txbDSHifu_2.Refresh() Else txbDSHifu_3.Text = "SUCCESS" txbDSHifu_3.BackColor = Color.Green txbDSHifu_3.Refresh() End If Else If cnt = HifuTest_Step.Step1 Then txbIQCHF1.Text = "SUCCESS" txbIQCHF1.BackColor = Color.Green txbIQCHF1.Refresh() ElseIf cnt = HifuTest_Step.Step2 Then txbIQCHF2.Text = "SUCCESS" txbIQCHF2.BackColor = Color.Green txbIQCHF2.Refresh() Else txbIQCHF3.Text = "SUCCESS" txbIQCHF3.BackColor = Color.Green txbIQCHF3.Refresh() End If End If End Sub Public Function RFTestRun() As Boolean Dim ForCnt As Int16 = 0 Try MeasureTimeFunc(MeasStart) MainTextChange("RF 측정중") TestStep = TestList.RF TestRunningState(testRunningList.Running, Color.Yellow) Const ModCnt As Int16 = 2 Dim ScopeData As String = String.Empty Dim ErrorCheck As Boolean = False For i = 0 To RFTest_Count TestData.Test_RFVRMS(i) = 0 TestData.Test_RFFreq(i) = 0 Next If RF_Setting() Then txbWindow.AppendText("RF Scope Setting Fail: " & ModCnt & vbCrLf) GoTo SettingFail End If If TestMode_On(ModCnt) Then txbWindow.AppendText("TestMode_Microcurrent Entrance Fail: " & ModCnt & vbCrLf) GoTo SettingFail End If For i = RFTest_Count To 0 Step -1 ForCnt = i Dim freqCount As Int16 = 0 If rdbAltoIqc.Checked = True Or rdbAltoPD.Checked = True Then freqCount = (i * 2) + 2 Else freqCount = i End If rfTestState(i) DoCommand(":Single") If RunRF(freqCount) Then GoTo forSettingFail End If ScopeData = DoQueryString(":MEASure:VRMS? CHANnel" & nudRFCh.Value) If InStr(1, ScopeData.ToLower, "error") > 0 Then GoTo forSettingFail End If TestData.Test_RFVRMS(i) = Convert.ToDouble(ScopeData).ToString("f12") ScopeData = DoQueryString(":MEASure:FREQuency? CHANnel" & nudRFCh.Value) If InStr(1, ScopeData.ToLower, "error") > 0 Then GoTo forSettingFail End If TestData.Test_RFFreq(i) = Convert.ToDouble(ScopeData).ToString("f12") / 1000000 If (TestData.Test_RFVRMS(i) < CSng(RF_VRMSMin(i).Text) Or TestData.Test_RFVRMS(i) > CSng(RF_VRMSMax(i).Text)) Or Round(TestData.Test_RFFreq(i), 0) <> i + 1 Then txbWindow.AppendText("Run RF FAIL" & i & " : " & TestData.Test_RFVRMS(i) & "/" & TestData.Test_RFFreq(i) & vbCrLf) rfTestFail(i) ErrorCheck = True Else txbWindow.AppendText("Run RF " & i & " : " & TestData.Test_RFVRMS(i) & "/" & TestData.Test_RFFreq(i) & vbCrLf) rfTestSuccess(i) End If Next If ErrorCheck = True Then TestRunningState(testRunningList.Fail, Color.Red) TestError = False Else TestRunningState(testRunningList.Success, Color.Green) End If txbWindow.AppendText("RF Test Full Time : " & MeasureTimeFunc(MeasEnd) & vbCrLf) Return False Catch ex As Exception txbWindow.AppendText("Run RF Try Error : " & ex.Message & vbCrLf) GoTo SettingFail End Try forSettingFail: rfTestFail(forcnt) SettingFail: txbWindow.AppendText("Run RF FAIL" & vbCrLf) TestRunningState(testRunningList.Fail, Color.Red) TestError = False MeasureTimeFunc(MeasEnd) Return True End Function Private Sub rfTestState(cnt As Int16) If rdbRFMCEP.Checked = True Then If cnt = 2 Then txbRFtest1.Text = "측정중" txbRFtest1.BackColor = Color.Yellow txbRFtest1.Refresh() ElseIf cnt = 1 Then txbRFtest2.Text = "측정중" txbRFtest2.BackColor = Color.Yellow txbRFtest2.Refresh() Else txbRFtest3.Text = "측정중" txbRFtest3.BackColor = Color.Yellow txbRFtest3.Refresh() End If ElseIf rdbAltoIqc.Checked = True Or rdbAltoPD.Checked = True Or rdbCompany.Checked = True Then If cnt = 2 Then txbAlIQCRF_1.Text = "측정중" txbAlIQCRF_1.BackColor = Color.Yellow txbAlIQCRF_1.Refresh() ElseIf cnt = 1 Then txbAlIQCRF_2.Text = "측정중" txbAlIQCRF_2.BackColor = Color.Yellow txbAlIQCRF_2.Refresh() Else txbAlIQCRF_3.Text = "측정중" txbAlIQCRF_3.BackColor = Color.Yellow txbAlIQCRF_3.Refresh() End If Else If cnt = 2 Then txbIQCRF1.Text = "측정중" txbIQCRF1.BackColor = Color.Yellow txbIQCRF1.Refresh() ElseIf cnt = 1 Then txbIQCRF2.Text = "측정중" txbIQCRF2.BackColor = Color.Yellow txbIQCRF2.Refresh() Else txbIQCRF3.Text = "측정중" txbIQCRF3.BackColor = Color.Yellow txbIQCRF3.Refresh() End If End If End Sub Private Sub rfTestFail(cnt As Int16) If rdbRFMCEP.Checked = True Then If cnt = 2 Then txbRFtest1.Text = "FAIL" txbRFtest1.BackColor = Color.Red txbRFtest1.Refresh() ElseIf cnt = 1 Then txbRFtest2.Text = "FAIL" txbRFtest2.BackColor = Color.Red txbRFtest2.Refresh() Else txbRFtest3.Text = "FAIL" txbRFtest3.BackColor = Color.Red txbRFtest3.Refresh() End If ElseIf rdbAltoIqc.Checked = True Or rdbAltoPD.Checked = True Or rdbCompany.Checked = True Then If cnt = 2 Then txbAlIQCRF_1.Text = "FAIL" txbAlIQCRF_1.BackColor = Color.Red txbAlIQCRF_1.Refresh() ElseIf cnt = 1 Then txbAlIQCRF_2.Text = "FAIL" txbAlIQCRF_2.BackColor = Color.Red txbAlIQCRF_2.Refresh() Else txbAlIQCRF_3.Text = "FAIL" txbAlIQCRF_3.BackColor = Color.Red txbAlIQCRF_3.Refresh() End If Else If cnt = 2 Then txbIQCRF1.Text = "FAIL" txbIQCRF1.BackColor = Color.Red txbIQCRF1.Refresh() ElseIf cnt = 1 Then txbIQCRF2.Text = "FAIL" txbIQCRF2.BackColor = Color.Red txbIQCRF2.Refresh() Else txbIQCRF3.Text = "FAIL" txbIQCRF3.BackColor = Color.Red txbIQCRF3.Refresh() End If End If End Sub Private Sub rfTestSuccess(cnt As Int16) If rdbRFMCEP.Checked = True Then If cnt = 2 Then txbRFtest1.Text = "SUCCESS" txbRFtest1.BackColor = Color.Green txbRFtest1.Refresh() ElseIf cnt = 1 Then txbRFtest2.Text = "SUCCESS" txbRFtest2.BackColor = Color.Green txbRFtest2.Refresh() Else txbRFtest3.Text = "SUCCESS" txbRFtest3.BackColor = Color.Green txbRFtest3.Refresh() End If ElseIf rdbAltoIqc.Checked = True Or rdbAltoPD.Checked = True Or rdbCompany.Checked = True Then If cnt = 2 Then txbAlIQCRF_1.Text = "SUCCESS" txbAlIQCRF_1.BackColor = Color.Green txbAlIQCRF_1.Refresh() ElseIf cnt = 1 Then txbAlIQCRF_2.Text = "SUCCESS" txbAlIQCRF_2.BackColor = Color.Green txbAlIQCRF_2.Refresh() Else txbAlIQCRF_3.Text = "SUCCESS" txbAlIQCRF_3.BackColor = Color.Green txbAlIQCRF_3.Refresh() End If Else If cnt = 2 Then txbIQCRF1.Text = "SUCCESS" txbIQCRF1.BackColor = Color.Green txbIQCRF1.Refresh() ElseIf cnt = 1 Then txbIQCRF2.Text = "SUCCESS" txbIQCRF2.BackColor = Color.Green txbIQCRF2.Refresh() Else txbIQCRF3.Text = "SUCCESS" txbIQCRF3.BackColor = Color.Green txbIQCRF3.Refresh() End If End If End Sub Public Function MCTestRunSp() As Boolean Try MeasureTimeFunc(MeasStart) MainTextChange("미세전류 측정중") TestStep = TestList.MC TestRunningState(testRunningList.Running, Color.Yellow) Const ModCnt As Int16 = 3 Dim ScopeData As String Dim CheckData As String = "NWIDth" Dim forCnt As Int16 = 0 Dim ErrorCheck As Boolean = False For i = 0 To MCTest_Count TestData.Test_MCVpp(i) = 0 TestData.Test_MCWidth(i) = 0 TestData.Test_MCFreq(i) = 0 Next If MC_Setting() Then GoTo SettingFail End If If TestMode_On(ModCnt) Then GoTo SettingFail End If For i = 0 To MCTest_Count forCnt = i If i = MCTest_Count Then If Not TrigSlope_Set("NEG") Then GoTo SettingFail End If CheckData = "PWIDth" End If DoCommand(":Single") If RunMC(i, nudMCFVRun.Value) Then GoTo SettingFail End If ScopeData = DoQueryString(":MEASure:" & CheckData & "? CHANnel" & nudMCCh.Value) If InStr(1, ScopeData.ToLower, "error") > 0 Then GoTo SettingFail End If TestData.Test_MCWidth(i) = Convert.ToDouble(ScopeData).ToString("f12") * 1000 ScopeData = DoQueryString(":MEASure:VPP? CHANnel" & nudMCCh.Value) If InStr(1, ScopeData.ToLower, "error") > 0 Then GoTo SettingFail End If TestData.Test_MCVpp(i) = Convert.ToDouble(ScopeData).ToString("f12") ScopeData = DoQueryString(":MEASure:FREQuency? CHANnel" & nudMCCh.Value) If InStr(1, ScopeData.ToLower, "error") > 0 Then GoTo SettingFail End If TestData.Test_MCFreq(i) = Convert.ToDouble(ScopeData).ToString("f12") If (TestData.Test_MCVpp(i) < txbMCVPmin.Text Or TestData.Test_MCVpp(i) > txbMCVPmax.Text) Or (TestData.Test_MCFreq(i) < txbMCFrmin.Text Or TestData.Test_MCFreq(i) > txbMCFrmax.Text) Or ((TestData.Test_MCWidth(i) < txbMCDYmin.Text Or TestData.Test_MCWidth(i) > txbMCDYmax.Text)) Then txbWindow.AppendText("Run MC FAIL" & i & " : " & TestData.Test_MCVpp(i) & "/" & TestData.Test_MCFreq(i) & "/" & TestData.Test_MCWidth(i) & vbCrLf) ErrorCheck = True Else txbWindow.AppendText("Run MC " & i & " : " & TestData.Test_MCVpp(i) & "/" & TestData.Test_MCFreq(i) & "/" & TestData.Test_MCWidth(i) & vbCrLf) End If Next If ErrorCheck = True Then TestRunningState(testRunningList.Fail, Color.Red) TestError = False Else TestRunningState(testRunningList.Success, Color.Green) End If txbWindow.AppendText("MC Test Full Time : " & MeasureTimeFunc(MeasEnd) & vbCrLf) Return False Catch ex As Exception txbWindow.AppendText("MC Try Error : " & ex.Message & vbCrLf) GoTo SettingFail End Try SettingFail: txbWindow.AppendText("Run MC FAIL" & vbCrLf) TestRunningState(testRunningList.Fail, Color.Red) TestError = False MeasureTimeFunc(MeasEnd) Return True End Function 'Private Sub Jig_End() ' If EndTest() Then ' txbWindow.AppendText("JIG Serial Test End : FAIL" & vbCrLf) ' Exit Sub ' End If ' txbWindow.AppendText("JIG Serial Test End : Success" & vbCrLf) 'End Sub Private Sub Jig_End() For retryCount As Integer = 0 To 2 txbWindow.AppendText($"JIG 종료 시도 {retryCount + 1}/3" & vbCrLf) If EndTest() Then txbWindow.AppendText($"JIG Serial Test End : FAIL (시도 {retryCount + 1})" & vbCrLf) If retryCount < 2 Then Threading.Thread.Sleep(1000) If JigSerial IsNot Nothing AndAlso JigSerial.IsOpen Then JigSerial.DiscardInBuffer() JigSerial.DiscardOutBuffer() Threading.Thread.Sleep(200) End If Continue For Else txbWindow.AppendText("JIG 정상 종료 실패 - 강제 종료 실행" & vbCrLf) ForceJigShutdown() Exit Sub End If Else txbWindow.AppendText("JIG Serial Test End : Success" & vbCrLf) Exit For End If Next End Sub Private Sub ForceJigShutdown() Try txbWindow.AppendText("강제 JIG 종료 시작" & vbCrLf) If JigSerial IsNot Nothing AndAlso JigSerial.IsOpen Then Dim shutdownCommands() As String = {"[endmft]"} For Each cmd In shutdownCommands Try SendData(cmd) Threading.Thread.Sleep(500) txbWindow.AppendText($"강제 종료 명령 전송: {cmd}" & vbCrLf) Catch End Try Next Try Dim portName As String = JigSerial.PortName Dim baudRate As Integer = JigSerial.BaudRate JigSerial.Close() Threading.Thread.Sleep(1000) JigSerial.PortName = portName JigSerial.BaudRate = baudRate JigSerial.Open() txbWindow.AppendText("시리얼 포트 재연결 완료" & vbCrLf) Catch serialEx As Exception txbWindow.AppendText($"시리얼 포트 재연결 실패: {serialEx.Message}" & vbCrLf) End Try End If Catch ex As Exception txbWindow.AppendText($"강제 종료 중 오류: {ex.Message}" & vbCrLf) End Try End Sub Public Function EPTestRun() As Boolean Dim ForCnt As Int16 = 0 Try TestStep = TestList.EP MeasureTimeFunc(MeasStart) MainTextChange("EP 측정중") TestRunningState(testRunningList.Running, Color.Yellow) Const ModCnt As Int16 = 4 Dim ScopeData As String Dim ErrorCheck As Boolean = False ReDim TestData.Test_EPVpp(EPTest_Count) ReDim TestData.Test_EPFreq(EPTest_Count) ReDim TestData.Test_EPPWidth(EPTest_Count) ReDim TestData.Test_EPNWidth(EPTest_Count) For i = 0 To EPTest_Count TestData.Test_EPVpp(i) = 0 TestData.Test_EPFreq(i) = 0 TestData.Test_EPPWidth(i) = 0 TestData.Test_EPNWidth(i) = 0 Next If EP_Setting() Then GoTo SettingFail End If If TestMode_On(ModCnt) Then GoTo SettingFail End If For i = 0 To EPTest_Count ForCnt = i For n = 0 To nudEPRe.Value epTestState(i) DoCommand(":Single") If RunEP(Val(EPFreq(i).Text)) Then GoTo ForSettingFail End If ScopeData = DoQueryString(":MEASure:VPP? CHANnel" & nudEPCh.Value) If InStr(1, ScopeData.ToLower, "error") > 0 Then GoTo ForSettingFail End If TestData.Test_EPVpp(i) = Convert.ToDouble(ScopeData).ToString("f12") If TestData.Test_EPVpp(i) < EPVppMin.Text Or TestData.Test_EPVpp(i) > EPVppMax.Text Then txbWindow.AppendText("Run EP VPP FAIL" & i & " : " & TestData.Test_EPVpp(i) & vbCrLf) epTestFail(i) ErrorCheck = True 'Exit For Else ScopeData = DoQueryString(":MEASure:FREQuency? CHANnel" & nudEPCh.Value) If InStr(1, ScopeData.ToLower, "error") > 0 Then GoTo ForSettingFail End If TestData.Test_EPFreq(i) = Convert.ToDouble(ScopeData).ToString("f12") / 10000 If Round(TestData.Test_EPFreq(i), 0) <> Round((CSng(EPFreq(i).Text) / 10000), 0) Then txbWindow.AppendText("Run EP FREQ FAIL" & i & " : " & TestData.Test_EPNWidth(i) & "/" & TestData.Test_EPPWidth(i) & vbCrLf) If n = nudEPRe.Value Then epTestFail(i) ErrorCheck = True End If Else ScopeData = DoQueryString(":MEASure:NWIDth? CHANnel" & nudEPCh.Value) If InStr(1, ScopeData.ToLower, "error") > 0 Then GoTo ForSettingFail End If TestData.Test_EPNWidth(i) = Convert.ToDouble(ScopeData).ToString("f12") * 1000000 ScopeData = DoQueryString(":MEASure:PWIDth? CHANnel" & nudEPCh.Value) If InStr(1, ScopeData.ToLower, "error") > 0 Then GoTo ForSettingFail End If TestData.Test_EPPWidth(i) = Convert.ToDouble(ScopeData).ToString("f12") * 1000000 If Abs(TestData.Test_EPPWidth(i) - TestData.Test_EPNWidth(i)) < Val(EPWidthMin(i).Text) Or Abs(TestData.Test_EPPWidth(i) - TestData.Test_EPNWidth(i)) > Val(EPWidthMax(i).Text) Then txbWindow.AppendText("Run EP WIDTH FAIL" & i & " : " & TestData.Test_EPNWidth(i) & "/" & TestData.Test_EPPWidth(i) & vbCrLf) If n = nudEPRe.Value Then epTestFail(i) ErrorCheck = True Exit For End If Else txbWindow.AppendText("Run EP " & i & " : " & TestData.Test_EPVpp(i) & "/" & TestData.Test_EPFreq(i) & "/" & TestData.Test_EPNWidth(i) & "/" & TestData.Test_EPPWidth(i) & vbCrLf) epTestSuccess(i) Exit For End If End If End If Next If ErrorCheck = True Then Exit For End If Next If ErrorCheck = True Then TestRunningState(testRunningList.Fail, Color.Red) TestError = False Else TestRunningState(testRunningList.Success, Color.Green) End If txbWindow.AppendText("EP Test Full Time : " & MeasureTimeFunc(MeasEnd) & vbCrLf) Return False Catch ex As Exception txbWindow.AppendText("EP Try Error : " & ex.Message & " : " & vbCrLf) GoTo SettingFail End Try ForSettingFail: epTestFail(ForCnt) SettingFail: txbWindow.AppendText("Run EP FAIL" & vbCrLf) TestRunningState(testRunningList.Fail, Color.Red) TestError = False MeasureTimeFunc(MeasEnd) Return True End Function Private Sub epTestState(cnt As Int16) If rdbRFMCEP.Checked = True Then If cnt = 0 Then txbEPtest1.Text = "진행중" txbEPtest1.BackColor = Color.Yellow txbEPtest1.Refresh() ElseIf cnt = 1 Then txbEPtest2.Text = "진행중" txbEPtest2.BackColor = Color.Yellow txbEPtest2.Refresh() Else txbEPtest3.Text = "진행중" txbEPtest3.BackColor = Color.Yellow txbEPtest3.Refresh() End If ElseIf rdbAltoPD.Checked = True Or rdbAltoIqc.Checked = True Or rdbCompany.Checked = True Then If cnt = 0 Then txbAlIQCEP_1.Text = "진행중" txbAlIQCEP_1.BackColor = Color.Yellow txbAlIQCEP_1.Refresh() ElseIf cnt = 1 Then txbAlIQCEP_2.Text = "진행중" txbAlIQCEP_2.BackColor = Color.Yellow txbAlIQCEP_2.Refresh() Else txbAlIQCEP_3.Text = "진행중" txbAlIQCEP_3.BackColor = Color.Yellow txbAlIQCEP_3.Refresh() End If Else If cnt = 0 Then txbIQCEP1.Text = "진행중" txbIQCEP1.BackColor = Color.Yellow txbIQCEP1.Refresh() ElseIf cnt = 1 Then txbIQCEP2.Text = "진행중" txbIQCEP2.BackColor = Color.Yellow txbIQCEP2.Refresh() Else txbIQCEP3.Text = "진행중" txbIQCEP3.BackColor = Color.Yellow txbIQCEP3.Refresh() End If End If End Sub Private Sub epTestFail(cnt As Int16) If rdbRFMCEP.Checked = True Then If cnt = 0 Then txbEPtest1.Text = "FAIL" txbEPtest1.BackColor = Color.Red txbEPtest1.Refresh() ElseIf cnt = 1 Then txbEPtest2.Text = "FAIL" txbEPtest2.BackColor = Color.Red txbEPtest2.Refresh() Else txbEPtest3.Text = "FAIL" txbEPtest3.BackColor = Color.Red txbEPtest3.Refresh() End If ElseIf rdbAltoPD.Checked = True Or rdbAltoIqc.Checked = True Or rdbCompany.Checked = True Then If cnt = 0 Then txbAlIQCEP_1.Text = "FAIL" txbAlIQCEP_1.BackColor = Color.Red txbAlIQCEP_1.Refresh() ElseIf cnt = 1 Then txbAlIQCEP_2.Text = "FAIL" txbAlIQCEP_2.BackColor = Color.Red txbAlIQCEP_2.Refresh() Else txbAlIQCEP_3.Text = "FAIL" txbAlIQCEP_3.BackColor = Color.Red txbAlIQCEP_3.Refresh() End If Else If cnt = 0 Then txbIQCEP1.Text = "FAIL" txbIQCEP1.BackColor = Color.Red txbIQCEP1.Refresh() ElseIf cnt = 1 Then txbIQCEP2.Text = "FAIL" txbIQCEP2.BackColor = Color.Red txbIQCEP2.Refresh() Else txbIQCEP3.Text = "FAIL" txbIQCEP3.BackColor = Color.Red txbIQCEP3.Refresh() End If End If End Sub Private Sub epTestSuccess(cnt As Int16) If rdbRFMCEP.Checked = True Then If cnt = 0 Then txbEPtest1.Text = "SUCCESS" txbEPtest1.BackColor = Color.Green txbEPtest1.Refresh() ElseIf cnt = 1 Then txbEPtest2.Text = "SUCCESS" txbEPtest2.BackColor = Color.Green txbEPtest2.Refresh() Else txbEPtest3.Text = "SUCCESS" txbEPtest3.BackColor = Color.Green txbEPtest3.Refresh() End If ElseIf rdbAltoPD.Checked = True Or rdbAltoIqc.Checked = True Or rdbCompany.Checked = True Then If cnt = 0 Then txbAlIQCEP_1.Text = "SUCCESS" txbAlIQCEP_1.BackColor = Color.Green txbAlIQCEP_1.Refresh() ElseIf cnt = 1 Then txbAlIQCEP_2.Text = "SUCCESS" txbAlIQCEP_2.BackColor = Color.Green txbAlIQCEP_2.Refresh() Else txbAlIQCEP_3.Text = "SUCCESS" txbAlIQCEP_3.BackColor = Color.Green txbAlIQCEP_3.Refresh() End If Else If cnt = 0 Then txbIQCEP1.Text = "SUCCESS" txbIQCEP1.BackColor = Color.Green txbIQCEP1.Refresh() ElseIf cnt = 1 Then txbIQCEP2.Text = "SUCCESS" txbIQCEP2.BackColor = Color.Green txbIQCEP2.Refresh() Else txbIQCEP3.Text = "SUCCESS" txbIQCEP3.BackColor = Color.Green txbIQCEP3.Refresh() End If End If End Sub Private Function JigRun_On() As Boolean Try MeasureTimeFunc(MeasStart) TestStep = TestList.Start MainTextChange("전원 ON") If TestMode_On(0) = False Then Jig_End() End If If DeviceOn() Then txbWindow.AppendText("JIG Product Device ON : FAIL" & vbCrLf) MsgBox("제품과의 연결이 올바르지 않습니다. 연결 상태를 확인하여 주십시오.", vbCritical, Program_Name & Program_Version) MeasureTimeFunc(MeasEnd) Return True End If delay_run(JIGON_Delay) txbWindow.AppendText("JIG On Full Time(ms) : " & MeasureTimeFunc(MeasEnd) & vbCrLf) Return False Catch ex As Exception txbWindow.AppendText("JIG Product Device ON : FAIL" & vbCrLf) MsgBox("JIG ON_오류 발생 ! : " & ex.Message & vbCritical) Return True End Try End Function Private Function BatteryTest() As Boolean MeasureTimeFunc(MeasStart) MainTextChange("배터리 측정중") TestStep = TestList.Battey TestRunningState(testRunningList.Running, Color.Yellow) TestData.Test_Battery = 0 Try Dim ResData As String = RunBattery() If ResData = "conerror" Then txbWindow.AppendText("JIG Serial Battery Test Connect Error " & vbCrLf) TestRunningState(testRunningList.Fail, Color.Red) MeasureTimeFunc(MeasEnd) Return True End If TestData.Test_Battery = CSng(ResData) txbVolt.Text = TestData.Test_Battery If TestData.Test_Battery >= CSng(BatCapacityMin.Text) And TestData.Test_Battery <= CSng(BatCapacityMax.Text) Then txbVolt.ForeColor = Color.Blue TestRunningState(testRunningList.Success, Color.Green) txbWindow.AppendText("Battery Volt Check : " & MeasureTimeFunc(MeasEnd) & vbCrLf) Return False Else txbVolt.ForeColor = Color.Red TestRunningState(testRunningList.Fail, Color.Red) txbWindow.AppendText("Battery Volt Check FAIL : " & MeasureTimeFunc(MeasEnd) & vbCrLf) Return True End If Catch ex As InvalidCastException txbWindow.AppendText("JIG Serial Battery Test Min Or Max Result Error : TimeOut" & vbCrLf) TestRunningState(testRunningList.Fail, Color.Red) MeasureTimeFunc(MeasEnd) Return True End Try End Function Private Function TempTest() As Boolean MeasureTimeFunc(MeasStart) MainTextChange("온도 데이터 측정중") TestStep = TestList.Temp TestRunningState(testRunningList.Running, Color.Yellow) Dim ResData As String = RunTemp() If ResData = "conerror" Then MsgBox("제품과의 연결이 올바르지 않습니다. 연결 상태를 확인하여 주십시오.", vbCritical, Program_Name & Program_Version) MeasureTimeFunc(MeasEnd) TestRunningState(testRunningList.Fail, Color.Red) Return True End If Dim ErrorStep As Boolean = False Dim DataCount As Int16 = UBound(Split(ResData, ",")) If DataCount <> 0 And (DataCount = TempData.CartTemp Or DataCount = TempData.CPUTemp) Then For i = 0 To DataCount Dim resStr As String If i = DataCount Then resStr = Mid(ResData, 1, ResData.Length) Else resStr = Mid(ResData, 1, InStr(ResData, ",") - 1) ResData = Mid(ResData, InStr(ResData, ",") + 1, ResData.Length) End If If resStr.Length > 5 Then TestData.Test_Temperature(i) = 0 Else TestData.Test_Temperature(i) = resStr End If TempSet(i).Text = TestData.Test_Temperature(i) Next Else txbWindow.AppendText("Temperature Test Connecter Error : " & vbCrLf) MeasureTimeFunc(MeasEnd) TestRunningState(testRunningList.Fail, Color.Red) Return True End If If TempCheck() = True Then If TestData.Test_Temperature(TempData.DivTemp) <= CSng(TmpMin(TempData.DivTemp).Text) Or TestData.Test_Temperature(TempData.DivTemp) >= CSng(TmpMax(TempData.DivTemp).Text) Then TempSet(TempData.DivTemp).ForeColor = Color.Red ErrorStep = True Else TempSet(TempData.DivTemp).ForeColor = Color.Blue End If TestData.Test_Temperature(TempData.CartTemp) = 0 Else For i = 0 To TempData.CartTemp If TestData.Test_Temperature(i) <= CSng(TmpMin(i).Text) Or TestData.Test_Temperature(i) >= CSng(TmpMax(i).Text) Then TempSet(i).ForeColor = Color.Red ErrorStep = True Else TempSet(i).ForeColor = Color.Blue End If Next End If TempSet(TempData.DivTemp).Refresh() TempSet(TempData.CartTemp).Refresh() If ErrorStep = True Then txbWindow.AppendText("Temperature Full Time : " & MeasureTimeFunc(MeasEnd) & vbCrLf) TestRunningState(testRunningList.Fail, Color.Red) Return True End If txbWindow.AppendText("Temperature Full Time : " & MeasureTimeFunc(MeasEnd) & vbCrLf) TestRunningState(testRunningList.Success, Color.Green) Return False End Function Private Function TempCheck() As Boolean If rdbIQC.Checked = True Or rdbAltoIqc.Checked = True Then Return True Else If rdbHF.Checked = True Or rdbEFPD.Checked = True Or rdbDsIQC.Checked = True Or rdbDsPD.Checked = True Then If ckbModeV2.Checked = True Or rdbDsIQC.Checked = True Or rdbDsPD.Checked = True Then Return True Else Return False End If Else Return False End If End If End Function Private Function DataWriteAL() As Boolean MeasureTimeFunc(MeasStart) MainTextChange("정보입력중..") TestStep = TestList.DataWrite TestRunningState(testRunningList.Running, Color.Yellow) Dim sucSwitch As Boolean = False If ResetData() Then GoTo DataFail End If For i = 1 To nudSaveCk.Value If prod_reg_data("JOMT", "003000", "50", "82", "0") Then GoTo DataFail End If Next For i = 1 To nudSaveCk.Value sucSwitch = False If SerialWrite(TestData.Test_Serial) Then GoTo DataFail End If Dim tdData As String = TD_name_load() If tdData = "0" Or tdData = "1" Then GoTo DataFail End If If tdData.ToUpper = TestData.Test_Serial Then sucSwitch = True Exit For End If Next If sucSwitch = False Then GoTo DataFail End If txbWindow.AppendText("DataWrite Full Time : " & MeasureTimeFunc(MeasEnd) & vbCrLf) TestRunningState(testRunningList.Success, Color.Green) Return False DataFail: txbWindow.AppendText("Product Data Write Error" & vbCrLf) TestRunningState(testRunningList.Fail, Color.Red) TestError = False Return True End Function Private Function TestDataSearch(TDSerial As String) As Boolean DBCmd = "SELECT COUNT(PV_SN) FROM " & hfTableNow & " WHERE PV_SN = '" & TDSerial & "'" Dim SerialCount As Integer = DBQueryScalar(DBCmd) If SerialCount = 0 Then Return False Else Return True End If End Function Private Function MonthCodeChange(monthData As String) As String Select Case monthData Case "01" Return "1" Case "02" Return "2" Case "03" Return "3" Case "04" Return "4" Case "05" Return "5" Case "06" Return "6" Case "07" Return "7" Case "08" Return "8" Case "09" Return "9" Case "10" Return "A" Case "11" Return "B" Case "12" Return "C" Case Else Return "-1" End Select End Function Private Function ProdCodeChange() As String If rdbCompany.Checked = True Or rdbHF.Checked = True Or rdbEFPD.Checked = True Or rdbIQC.Checked = True Or rdbRFMCEP.Checked = True Then Return "M" ElseIf rdbAltoIqc.Checked = True Or rdbAltoPD.Checked = True Then Return "A" ElseIf rdbDsIQC.Checked = True Or rdbDsPD.Checked = True Then Return "D" Else Return "0" End If End Function Private Function NewSerialCreate() As Boolean Const SerialLength As Int16 = 4 Dim CreateOK As Boolean = True Dim SerialNum As String = String.Empty DBCmd = "SELECT PD1_DevTotalCnt FROM " & pd1CntTableNow & " WHERE PD1_Date = '" & NowDate & "'" Dim TotalCount As Int16 = DBQueryScalar(DBCmd) Dim SerialMonth As String = MonthCodeChange(Format(Now, "MM")) Dim SerialYear As String = Format(Now, "yy") Dim SerialDay As String = Format(Now, "dd") Dim ProdCode As String = ProdCodeChange() If SerialMonth = "-1" Then Return False End If For i = 0 To 4 '' 새 번호 여부 확인 횟수 (5회 확인) TotalCount += 1 SerialNum = TotalCount For cnt = TotalCount.ToString.Length To SerialLength - 1 ''시리얼 번호 뒷 자리 네 개는 일별 제작 순번 SerialNum = "0" & SerialNum Next SerialNum = ProdCode & SerialYear & SerialMonth & SerialDay & SerialNum If TestDataSearch(SerialNum) = False Then TestData.Test_Serial = SerialNum Return False End If Next Return True End Function Private Function TDNullProdWrite() As Boolean dupDATA = 0 Dim tdData As String = TD_name_load() If tdData = "1" Then GoTo DataFail End If If tdData = "0" Then GoTo TDNulllFunc Else If TestDataSearch(tdData) Then TestData.Test_Serial = tdData dupDATA = 1 Return False Else GoTo TDNulllFunc End If End If TDNulllFunc: If NewSerialCreate() Then txbWindow.AppendText("TD Null Product Serial Number Create Error" & vbCrLf) TestError = False Return True End If Return False DataFail: txbWindow.AppendText("TD Null Product Serial Number Data Search Error" & vbCrLf) TestError = False Return True End Function Private Function DataWrite(ProdCode As String) As Boolean MeasureTimeFunc(MeasStart) MainTextChange("정보입력중..") TestStep = TestList.DataWrite TestRunningState(testRunningList.Running, Color.Yellow) Dim tdData As String = String.Empty Dim freqData As String = String.Empty Dim powerData As String = String.Empty Dim motorData As Int16 = 0 Dim sucSwitch As Boolean = False If ResetData() Then GoTo DataFail End If For i = 1 To nudSaveCk.Value If rdbHF.Checked = True Or rdbEFPD.Checked = True Then If prod_reg_data("JOMT", "000000", ProdCode, "82", "0") Then GoTo DataFail End If End If Next If formType <> formTypeList.altoIQC And formType <> formTypeList.altoPD Then For i = 1 To nudSaveCk.Value sucSwitch = False If SerialWrite(TestData.Test_Serial) Then GoTo DataFail End If tdData = TD_name_load() If tdData = "0" Or tdData = "1" Then GoTo DataFail End If If tdData.ToUpper = TestData.Test_Serial Then sucSwitch = True Exit For End If Next If sucSwitch = False Then GoTo DataFail Else txbWindow.AppendText("Product Serial Number : " & tdData & vbCrLf) End If For i = 1 To nudSaveCk.Value sucSwitch = False If FreqWrite(TDDataSet(TD_Data.Freq), TDDataSet(TD_Data.power)) Then GoTo DataFail End If freqData = sett_data() If freqData = "0" Then GoTo DataFail End If powerData = Mid(freqData, InStrRev(freqData, ",", freqData.Length) + 1, freqData.Length) freqData = Mid(freqData, 1, InStr(1, freqData, ",") - 1) If powerData = TDDataSet(TD_Data.power) And freqData = TDDataSet(TD_Data.Freq) Then sucSwitch = True Exit For End If Next If sucSwitch = False Then GoTo DataFail Else txbWindow.AppendText("Product Frequence : " & freqData & "/ Power : " & powerData & vbCrLf) End If For i = 1 To nudSaveCk.Value sucSwitch = False If Motor_reg(TDDataSet(TD_Data.motor)) Then GoTo DataFail End If motorData = Motor_Read() If motorData = 6 Then GoTo DataFail End If If motorData = TDDataSet(TD_Data.motor) Then sucSwitch = True Exit For End If Next If sucSwitch = False Then GoTo DataFail Else txbWindow.AppendText("Product Motor : " & motorData & vbCrLf) End If End If txbWindow.AppendText("DataWrite Full Time : " & MeasureTimeFunc(MeasEnd) & vbCrLf) TestRunningState(testRunningList.Success, Color.Green) Return False DataFail: txbWindow.AppendText("Product Data Write Error" & vbCrLf) TestRunningState(testRunningList.Fail, Color.Red) TestError = False Return True End Function Private Function prod_reg_data(factory As String, prod_serial As String, prod_code As String, area As String, abroad As String) As Boolean Dim retVal As String Dim nowDate As String = Format(Now, "yy") & Format(Now, "MM") tmpCmdMessage = "wrsconf1" cmdMessage = "[" & tmpCmdMessage & " " & factory & "," & nowDate & prod_serial & "," & prod_code & "," & area & "," & abroad & "]" + vbCrLf If SendData(cmdMessage) Then Return False End If retVal = PollingReceiveData(1000) If retVal <> factory.ToLower & "," & prod_serial & "," & prod_code & "," & area & "," & abroad Then Return False End If Return True End Function Private Function TD_name_load() As String Dim retVal As String tmpCmdMessage = "settdsn" cmdMessage = "[" & tmpCmdMessage & "]" + vbCrLf If SendData(cmdMessage) Then Return "1" End If retVal = PollingReceiveData(500) If retVal.Length > td_name_size Then Return retVal Else Return "0" End If End Function Private Function Motor_Read() As Int16 Dim retval As String tmpCmdMessage = "setmotor" cmdMessage = "[" & tmpCmdMessage & "]" If SendData(cmdMessage) Then Return 6 End If retval = PollingReceiveData(1000) If UBound(Split(retval, ",")) = 4 Then Return Mid(retval, 1, InStr(1, retval, ",") - 1) End If Return 6 End Function Private Function sett_data() As String Dim retval As String tmpCmdMessage = "settdcnf" cmdMessage = "[" & tmpCmdMessage & "]" + vbCrLf If SendData(cmdMessage) Then Return "0" End If retval = PollingReceiveData(500) If InStr(1, retval, ",") > 0 Then Return retval Else Return "0" End If End Function Private Function Motor_reg(pulse As Integer) As Boolean Dim retval As String tmpCmdMessage = "setmotor" cmdMessage = "[" & tmpCmdMessage & " " & pulse & ",0,0,0,0]" If SendData(cmdMessage) Then Return True End If retval = PollingReceiveData(1000) If retval = pulse & ",0,0,0,0" Then Return False End If Return True End Function Private Sub StartClear() DataTextReset() DataColorReset() DataRefresh() txbForeColorReset() StepTextReset() StepColorReset() StepRefresh() SaveDataReset() rfmceptxbReset() rfmceptxbColorReset() rfmceptxbRefReset() hftxbReset() hfColorReset() hfRefReset() iqctxbReset() iqcColorReset() iqctxbRefresh() altoIQC_txbReset() altoIQC_ColorReset() altoIQC_RefReset() DstxbReset() DsColorReset() DstxbRefresh() End Sub Private Sub altoIQC_txbReset() txbAlIQCBody.Text = "대기" txbAlIQCBody_1.Text = "대기" txbAlIQCBody_2.Text = "대기" txbAlIQCBody_3.Text = "대기" txbAlIQCEP.Text = "대기" txbAlIQCEP_1.Text = "대기" txbAlIQCEP_2.Text = "대기" txbAlIQCEP_3.Text = "대기" txbAlIQCRF.Text = "대기" txbAlIQCRF_1.Text = "대기" txbAlIQCRF_2.Text = "대기" txbAlIQCRF_3.Text = "대기" End Sub Private Sub altoIQC_ColorReset() txbAlIQCBody.BackColor = Color.White txbAlIQCBody_1.BackColor = Color.White txbAlIQCBody_2.BackColor = Color.White txbAlIQCBody_3.BackColor = Color.White txbAlIQCEP.BackColor = Color.White txbAlIQCEP_1.BackColor = Color.White txbAlIQCEP_2.BackColor = Color.White txbAlIQCEP_3.BackColor = Color.White txbAlIQCRF.BackColor = Color.White txbAlIQCRF_1.BackColor = Color.White txbAlIQCRF_2.BackColor = Color.White txbAlIQCRF_3.BackColor = Color.White End Sub Private Sub altoIQC_RefReset() txbAlIQCBody.Refresh() txbAlIQCBody_1.Refresh() txbAlIQCBody_2.Refresh() txbAlIQCBody_3.Refresh() txbAlIQCEP.Refresh() txbAlIQCEP_1.Refresh() txbAlIQCEP_2.Refresh() txbAlIQCEP_3.Refresh() txbAlIQCRF.Refresh() txbAlIQCRF_1.Refresh() txbAlIQCRF_2.Refresh() txbAlIQCRF_3.Refresh() End Sub Private Sub txbForeColorReset() txbTDSN.ForeColor = Color.Black txbDate.ForeColor = Color.Black txbFreq.ForeColor = Color.Black txbGrade.ForeColor = Color.Black txbVer.ForeColor = Color.Black txbVolt.ForeColor = Color.Black txbDevTmp.ForeColor = Color.Black txbCartTmp.ForeColor = Color.Black End Sub Private Sub hftxbReset() txbBat.Text = "대기" txbTemp.Text = "대기" txbHFresult.Text = "대기" txbHFtest1.Text = "대기" txbHFtest2.Text = "대기" txbHFtest3.Text = "대기" txbTDreg.Text = "대기" txbDBreg.Text = "대기" End Sub Private Sub hfColorReset() txbBat.BackColor = Color.White txbTemp.BackColor = Color.White txbHFresult.BackColor = Color.White txbHFtest1.BackColor = Color.White txbHFtest2.BackColor = Color.White txbHFtest3.BackColor = Color.White txbTDreg.BackColor = Color.White txbDBreg.BackColor = Color.White End Sub Private Sub hfRefReset() txbBat.Refresh() txbTemp.Refresh() txbHFresult.Refresh() txbHFtest1.Refresh() txbHFtest2.Refresh() txbHFtest3.Refresh() txbTDreg.Refresh() txbDBreg.Refresh() End Sub Private Sub rfmceptxbReset() txbRFresult.Text = "대기" txbRFtest1.Text = "대기" txbRFtest2.Text = "대기" txbRFtest3.Text = "대기" txbMCresult.Text = "대기" txbEPresult.Text = "대기" txbEPtest1.Text = "대기" txbEPtest2.Text = "대기" txbEPtest3.Text = "대기" End Sub Private Sub rfmceptxbColorReset() txbRFresult.BackColor = Color.White txbRFtest1.BackColor = Color.White txbRFtest2.BackColor = Color.White txbRFtest3.BackColor = Color.White txbMCresult.BackColor = Color.White txbEPresult.BackColor = Color.White txbEPtest1.BackColor = Color.White txbEPtest2.BackColor = Color.White txbEPtest3.BackColor = Color.White End Sub Private Sub rfmceptxbRefReset() txbRFresult.Refresh() txbRFtest1.Refresh() txbRFtest2.Refresh() txbRFtest3.Refresh() txbMCresult.Refresh() txbEPresult.Refresh() txbEPtest1.Refresh() txbEPtest2.Refresh() txbEPtest3.Refresh() End Sub Private Sub iqctxbReset() txbIQCHF.Text = "대기" txbIQCRF.Text = "대기" txbIQCEP.Text = "대기" txbIQCHF1.Text = "대기" txbIQCHF2.Text = "대기" txbIQCHF3.Text = "대기" txbIQCRF1.Text = "대기" txbIQCRF2.Text = "대기" txbIQCRF3.Text = "대기" txbIQCEP1.Text = "대기" txbIQCEP2.Text = "대기" txbIQCEP3.Text = "대기" End Sub Private Sub iqcColorReset() txbIQCHF.BackColor = Color.White txbIQCRF.BackColor = Color.White txbIQCEP.BackColor = Color.White txbIQCHF1.BackColor = Color.White txbIQCHF2.BackColor = Color.White txbIQCHF3.BackColor = Color.White txbIQCRF1.BackColor = Color.White txbIQCRF2.BackColor = Color.White txbIQCRF3.BackColor = Color.White txbIQCEP1.BackColor = Color.White txbIQCEP2.BackColor = Color.White txbIQCEP3.BackColor = Color.White End Sub Private Sub iqctxbRefresh() txbIQCHF.Refresh() txbIQCRF.Refresh() txbIQCEP.Refresh() txbIQCHF1.Refresh() txbIQCHF2.Refresh() txbIQCHF3.Refresh() txbIQCRF1.Refresh() txbIQCRF2.Refresh() txbIQCRF3.Refresh() txbIQCEP1.Refresh() txbIQCEP2.Refresh() txbIQCEP3.Refresh() End Sub Private Sub DstxbReset() txbDSBasic.Text = "대기" txbDSFirm.Text = "대기" txbDSTemp.Text = "대기" txbDSBat.Text = "대기" txbDSHifu.Text = "대기" txbDSHifu_1.Text = "대기" txbDSHifu_2.Text = "대기" txbDSHifu_3.Text = "대기" txbDSSave.Text = "대기" txbDSWrite.Text = "대기" txbDSWrite_2.Text = "대기" txbDSWrite_3.Text = "대기" End Sub Private Sub DsColorReset() txbDSBasic.BackColor = Color.White txbDSFirm.BackColor = Color.White txbDSTemp.BackColor = Color.White txbDSBat.BackColor = Color.White txbDSHifu.BackColor = Color.White txbDSHifu_1.BackColor = Color.White txbDSHifu_2.BackColor = Color.White txbDSHifu_3.BackColor = Color.White txbDSSave.BackColor = Color.White txbDSWrite.BackColor = Color.White txbDSWrite_2.BackColor = Color.White txbDSWrite_3.BackColor = Color.White End Sub Private Sub DstxbRefresh() txbDSBasic.Refresh() txbDSFirm.Refresh() txbDSTemp.Refresh() txbDSBat.Refresh() txbDSHifu.Refresh() txbDSHifu_1.Refresh() txbDSHifu_2.Refresh() txbDSHifu_3.Refresh() txbDSSave.Refresh() txbDSWrite.Refresh() txbDSWrite_2.Refresh() txbDSWrite_3.Refresh() End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click TestData.Test_Serial = txbBarcode.Text txbBarcode.Text = "[START]" btnRun_Click(sender, e) End Sub Private Sub btnRun_Click(sender As Object, e As EventArgs) Handles btnRun.Click txbBarcode.ReadOnly = True StartClear() NowDate = Format(Now, "yyyy-MM-dd") NowTime = Format(Now, "HH:mm:ss") TestError = True TestStep = TestList.Start Select Case formType Case formTypeList.full allFunction() Case formTypeList.prod_HF, formTypeList.EF_PD hfFunction() Case formTypeList.prod_RF rfFunction() Case formTypeList.altoIQC altoFunctionIQC() Case formTypeList.altoPD AltoFunctionPD() Case formTypeList.Company CompanyFunction() Case formTypeList.iqc iqcFunction() Case formTypeList.DS_IQC, formTypeList.DS_PD DSTestFunction() Case Else MsgBox("잘못된 동작 모드가 입력되어 있습니다. 관리자에게 문의해주세요.", vbCritical) End Select txbBarcode.ReadOnly = False TestStep = TestList.Wait txbBarcode.Focus() txbBarcode.Select(txbBarcode.Text.Length, 0) End Sub Private Function altoNumAppoint(PlusCount As Int16) As String Try DBCmd = "SELECT PD1_AltoCnt FROM " & pd1CntTableNow & " WHERE PD1_Date = '" & NowDate & "'" Dim altoNum As String = DBQueryScalar(DBCmd) If altoNum = "" Then altoNum = "1" '' 첫 시작일 경우 Else altoNum = Val(altoNum) + PlusCount '' 번호 업데이트 End If For i = altoNum.Length To 4 altoNum = "0" + altoNum Next altoNum = Mid(NowDate, 4, 1) & Mid(NowDate, 6, 2) & Mid(NowDate, 9, 2) & altoNum Return altoNum Catch ex As Exception MsgBox(ex.Message, vbCritical) Return "0" End Try End Function Private Function NonTDSerial() As Boolean Dim TDSerial As String = TD_name_load() txbWindow.AppendText("Prod Serial Number Send Fail!!" & TDSerial & vbCrLf) If TDSerial = "1" Then TestError = False txbWindow.AppendText("Prod Serial Number Send Fail!!" & vbCrLf) Return True End If If TDSerial = "0" Then Return True '' TD 데이터가 없을 경우 Else If IsNumeric(TDSerial) = False Then TestError = False txbWindow.AppendText("Prod Serial Number Standard Fail!!" & vbCrLf) Return True '' 잘못된 번호가 들어갈 경우 Else TestData.Test_Serial = TDSerial Return False '' TD 데이터가 있을 경우 End If End If End Function Private Function AltoDataSetting() As Boolean Dim NewSerial As Boolean = False Dim AltoSerial As String = String.Empty dupDATA = 0 If NonTDSerial() Then If TestError = False Then MsgBox("제품의 시리얼 번호를 읽는 중 오류가 발생하였습니다.", vbCritical, Program_Name & Program_Version) MeasureTimeFunc(MeasEnd) Return True End If NewSerial = True Else If NonTDExist() Then NewSerial = True Else If StepSearch() Then MsgBox("현 제품의 공정 순서를 확인할 수 없습니다. 데이터가 존재하지 않습니다.", vbCritical, Program_Name & Program_Version) MeasureTimeFunc(MeasEnd) Return True End If TDCompare() NewSerial = False End If End If If NewSerial = True Then Dim SerialCount As Int16 = 1 Dim CountWhile As Boolean = True While CountWhile AltoSerial = altoNumAppoint(SerialCount) txbWindow.AppendText("Set Serial Number : " & AltoSerial & vbCrLf) If AltoSerial = "0" Then MsgBox("시리얼 번호 생성 도중 오류가 발생하였습니다.", vbCritical, Program_Name & Program_Version) MeasureTimeFunc(MeasEnd) Return True End If If NonTDExist() Then TestData.Test_Serial = AltoSerial CountWhile = False TDDataSet(TD_Data.TestStep) = "11" dupDATA = 0 End If If SerialCount = 5 Then MsgBox("시리얼 번호 생성 도중 오류가 발생하였습니다.", vbCritical, Program_Name & Program_Version) MeasureTimeFunc(MeasEnd) Return True End If SerialCount += 1 End While End If txbWindow.AppendText("TD Data Time(s) : " & MeasureTimeFunc(MeasEnd) & vbCrLf) Return False End Function Private Sub CompanyFunction() StartTime = MeasureTimeAll(MeasStart) If StartSwitch = True Then If JigSerial.IsOpen = True Then txbWindow.AppendText("-1.OK" & vbCrLf) If txbBarcode.Text <> "[START]" Then MsgBox("잘못된 시작 명령어를 입력하였습니다.", vbExclamation, Program_Name & Program_Version) GoTo startFail End If For i = 0 To nudOnRe.Value If JigRun_On() Then GoTo processEnd End If If FirmVerCheck() Then Dim ReadUni As Byte() = Encoding.Unicode.GetBytes(TestData.Test_Firmware) If ReadUni(0) < 57 Then MsgBox("잘못된 펌웨어 버전입니다. 버전을 확인하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo processEnd End If If i = nudOnRe.Value Then MsgBox("전원 ON에 실패하였습니다. 다시 시도하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo processEnd End If Else Exit For End If Next 'If JigRun_On() Then ' GoTo startFail 'End If 'If FirmVerCheck() Then ' MsgBox("최신 펌웨어로 동작하고 있지 않습니다. 펌웨어 버전을 확인하여 주십시오.", vbCritical, Program_Name & Program_Version) ' GoTo processEnd 'End If If TempTest() Then GoTo processEnd End If If BatteryTest() Then GoTo processEnd End If If RFTestRun() Then GoTo processEnd End If If EPTestRun() Then GoTo processEnd End If GoTo processEnd Else FailMain() MsgBox("지그를 연결한 후 동작하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo startFail End If Else FailMain() MsgBox("스코프와 스펙트럼을 연결한 후 동작하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo startFail End If processEnd: Jig_End() NormalEnd: Dim csvData As String = "" & NowDate & "," & NowTime & "," & TestData.Test_Firmware & "," & TestData.Test_Temperature(TempData.DivTemp) & "," & TestData.Test_RFVRMS(0) & "," & TestData.Test_RFFreq(0) & "," & TestData.Test_RFVRMS(1) & "," & TestData.Test_RFFreq(1) & "," & TestData.Test_RFVRMS(2) & "," & TestData.Test_RFFreq(2) & "," & TestData.Test_EPVpp(0) & "," & TestData.Test_EPFreq(0) & "," & TestData.Test_EPPWidth(0) & "," & TestData.Test_EPNWidth(0) & "," & TestData.Test_EPVpp(1) & "," & TestData.Test_EPFreq(1) & "," & TestData.Test_EPPWidth(1) & "," & TestData.Test_EPNWidth(1) & "," & TestData.Test_EPVpp(2) & "," & TestData.Test_EPFreq(2) & "," & TestData.Test_EPPWidth(2) & "," & TestData.Test_EPNWidth(2) & "" If Save_Csv(csvData) Then txbWindow.AppendText("CSV Data Save : FAIL" & vbCrLf) GoTo processEnd Else If TestError = False Then FailMain() Else SuccessMain() End If End If startFail: myscope.IO.Clear() txbWindow.AppendText("[" & MeasureTimeAll(MeasEnd) & "ms] Test Play" & vbCrLf) End Sub Private Sub AltoFunctionPD() StartTime = MeasureTimeAll(MeasStart) If StartSwitch = True Then If JigSerial.IsOpen = True Then If txbBarcode.Text <> "[START]" Then MsgBox("잘못된 시작 명령어를 입력하였습니다.", vbExclamation, Program_Name & Program_Version) GoTo startFail End If For i = 0 To nudOnRe.Value If JigRun_On() Then GoTo processEnd End If If FirmVerCheck() Then Dim ReadUni As Byte() = Encoding.Unicode.GetBytes(TestData.Test_Firmware) If ReadUni(0) < 57 Then MsgBox("잘못된 펌웨어 버전입니다. 버전을 확인하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo processEnd End If If i = nudOnRe.Value Then MsgBox("전원 ON에 실패하였습니다. 다시 시도하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo processEnd End If Else Exit For End If Next 'If JigRun_On() Then ' GoTo startFail 'End If 'If FirmVerCheck() Then ' MsgBox("최신 펌웨어로 동작하고 있지 않습니다. 펌웨어 버전을 확인하여 주십시오.", vbCritical, Program_Name & Program_Version) ' TestError = False ' GoTo processEnd 'End If If AltoDataSetting() Then TestError = False GoTo processEnd End If If TempTest() Then TestError = False GoTo NormalEnd End If If BatteryTest() Then TestError = False GoTo NormalEnd End If If RFTestRun() Then TestError = False GoTo NormalEnd End If If EPTestRun() Then TestError = False GoTo NormalEnd End If If DataWriteAL() Then TestError = False GoTo NormalEnd End If GoTo NormalEnd Else FailMain() MsgBox("지그를 연결한 후 동작하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo startFail End If Else FailMain() MsgBox("스코프와 스펙트럼을 연결한 후 동작하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo startFail End If NormalEnd: If ALPD_PostReg() Then If dbAltoSave() Then If CountChanage() Then Dim csvData As String csvData = "" & TestData.Test_Serial & "," & NowDate & "," & NowTime & "," & TestData.Test_Firmware & "," & TestData.Test_Temperature(TempData.DivTemp) & "," & TestData.Test_Temperature(TempData.CartTemp) & "," & TestData.Test_Battery & "," & TestData.Test_RFVRMS(0) & "," & TestData.Test_RFFreq(0) & "," & TestData.Test_RFVRMS(1) & "," & TestData.Test_RFFreq(1) & "," & TestData.Test_RFVRMS(2) & "," & TestData.Test_RFFreq(2) & "," & TestData.Test_EPVpp(0) & "," & TestData.Test_EPFreq(0) & "," & TestData.Test_EPPWidth(0) & "," & TestData.Test_EPNWidth(0) & "," & TestData.Test_EPVpp(1) & "," & TestData.Test_EPFreq(1) & "," & TestData.Test_EPPWidth(1) & "," & TestData.Test_EPNWidth(1) & "," & TestData.Test_EPVpp(2) & "," & TestData.Test_EPFreq(2) & "," & TestData.Test_EPPWidth(2) & "," & TestData.Test_EPNWidth(2) & "" If Save_Csv(csvData) Then txbWindow.AppendText("CSV Data Save : FAIL" & vbCrLf) GoTo processEnd Else If TestError = False Then FailMain() Else SuccessMain() End If End If Else FailMain() End If Else FailMain() End If Else FailMain() End If processEnd: Jig_End() startFail: myscope.IO.Clear() txbWindow.AppendText("[" & MeasureTimeAll(MeasEnd) & "ms] Test Play" & vbCrLf) End Sub Private Function ALPD_PostReg() As Boolean If ckbPostgre.Checked = True Then DBCmd = "select exists(select 1 from prods where td_serial = '" & TestData.Test_Serial & "') AS A;" Dim TDExistBol As Boolean = pgDBQueryScalar(DBCmd) If TDExistBol = False Then DBCmd = "INSERT INTO prods(td_serial, p2_jignum, p2_testdate, p2_testtime, p2_result, p2_rf1_vrms, p2_rf1_freq, p2_rf2_vrms, p2_rf2_freq, p2_rf3_vrms, p2_rf3_freq, p2_mc1_vpp, p2_mc1_freq,p2_mc1_width, p2_mc2_vpp, p2_mc2_freq, p2_mc2_width, p2_ep1_vpp, p2_ep1_freq, p2_ep1_pwidth, p2_ep1_nwidth, p2_ep2_vpp, p2_ep2_freq, p2_ep2_pwidth, p2_ep2_nwidth, p2_ep3_vpp, p2_ep3_freq, p2_ep3_pwidth, p2_ep3_nwidth, created_at, updated_at) " & "VALUES('" & TestData.Test_Serial & "', '" & nudJigNum.Value & "', '" & NowDate & "', '" & NowTime & "','" & TestError & "', '" & TestData.Test_RFVRMS(0) & "', '" & TestData.Test_RFFreq(0) & "', '" & TestData.Test_RFVRMS(1) & "', '" & TestData.Test_RFFreq(1) & "', '" & TestData.Test_RFVRMS(2) & "', '" & TestData.Test_RFFreq(2) & "', '" & TestData.Test_MCVpp(0) & "', '" & TestData.Test_MCFreq(0) & "', '" & TestData.Test_MCWidth(0) & "','" & TestData.Test_MCVpp(1) & "', '" & TestData.Test_MCFreq(1) & "', '" & TestData.Test_MCWidth(1) & "','" & TestData.Test_EPVpp(0) & "','" & TestData.Test_EPFreq(0) & "','" & TestData.Test_EPPWidth(0) & "','" & TestData.Test_EPNWidth(0) & "','" & TestData.Test_EPVpp(1) & "','" & TestData.Test_EPFreq(1) & "','" & TestData.Test_EPPWidth(1) & "','" & TestData.Test_EPNWidth(1) & "','" & TestData.Test_EPVpp(2) & "','" & TestData.Test_EPFreq(2) & "','" & TestData.Test_EPPWidth(2) & "','" & TestData.Test_EPNWidth(2) & "',NOW(),NOW());" Else DBCmd = "UPDATE prods SET td_serial = '" & TestData.Test_Serial & "', p2_jignum = '" & nudJigNum.Value & "', p2_testdate = '" & NowDate & "', p2_testtime = '" & NowTime & "', " & "p2_result = '" & TestError & "', p2_rf1_vrms = '" & TestData.Test_RFVRMS(0) & "', p2_rf1_freq = '" & TestData.Test_RFFreq(0) & "', p2_rf2_vrms = '" & TestData.Test_RFVRMS(1) & "', " & "p2_rf2_freq = '" & TestData.Test_RFFreq(1) & "', p2_rf3_vrms = '" & TestData.Test_RFVRMS(2) & "', p2_rf3_freq = '" & TestData.Test_RFFreq(2) & "', p2_mc1_vpp = '" & TestData.Test_MCVpp(0) & "', p2_mc1_freq = '" & TestData.Test_MCFreq(0) & "',p2_mc1_width = '" & TestData.Test_MCWidth(0) & "',p2_mc2_vpp = '" & TestData.Test_MCVpp(1) & "', p2_mc2_freq = '" & TestData.Test_MCFreq(1) & "',p2_mc2_width = '" & TestData.Test_MCWidth(1) & "',p2_ep1_vpp = '" & TestData.Test_EPVpp(0) & "',p2_ep1_freq = '" & TestData.Test_EPFreq(0) & "',p2_ep1_pwidth = '" & TestData.Test_EPPWidth(0) & "',p2_ep1_nwidth = '" & TestData.Test_EPNWidth(0) & "',p2_ep2_vpp = '" & TestData.Test_EPVpp(1) & "',p2_ep2_freq = '" & TestData.Test_EPFreq(1) & "',p2_ep2_pwidth = '" & TestData.Test_EPNWidth(1) & "',p2_ep2_nwidth = '" & TestData.Test_EPNWidth(1) & "',p2_ep3_vpp = '" & TestData.Test_EPVpp(2) & "',p2_ep3_freq = '" & TestData.Test_EPFreq(2) & "',p2_ep3_pwidth = '" & TestData.Test_EPPWidth(2) & "', p2_ep3_nwidth = '" & TestData.Test_EPNWidth(2) & "', updated_at = NOW() WHERE td_serial = '" & TestData.Test_Serial & "';" End If If pgDBCommand(DBCmd) Then Return True Else Return False End If Else Return True End If End Function Private Sub altoFunctionIQC() StartTime = MeasureTimeAll(MeasStart) If StartSwitch = True Then If JigSerial.IsOpen = True Then If txbBarcode.Text <> "[START]" Then MsgBox("잘못된 시작 명령어를 입력하였습니다.", vbExclamation, Program_Name & Program_Version) GoTo NormalEnd End If For i = 0 To nudOnRe.Value If JigRun_On() Then GoTo ProcessEnd End If If FirmVerCheck() Then Dim ReadUni As Byte() = Encoding.Unicode.GetBytes(TestData.Test_Firmware) If ReadUni(0) < 57 Then MsgBox("잘못된 펌웨어 버전입니다. 버전을 확인하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo ProcessEnd End If If i = nudOnRe.Value Then MsgBox("전원 ON에 실패하였습니다. 다시 시도하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo ProcessEnd End If Else Exit For End If Next If BuzzerTestFunc(0) Then TestError = False GoTo ProcessEnd End If delay_run(100) If TempTest() Then GoTo ProcessEnd End If If RFTestRun() Then GoTo ProcessEnd End If If BuzzerTestFunc(1) Then TestError = False GoTo ProcessEnd End If delay_run(100) If EPTestRun() Then GoTo ProcessEnd End If If BuzzerTestFunc(2) Then TestError = False GoTo ProcessEnd End If todayCount += 1 If saveLocalFile() Then GoTo ProcessEnd End If GoTo SuccessEnd Else MsgBox("지그를 연결한 후 동작하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo NormalEnd End If Else MsgBox("스코프와 스펙트럼을 연결한 후 동작하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo NormalEnd End If SuccessEnd: If ALIQC_PostReg() Then txbWindow.AppendText("PostgreSQL Data Save : OK" & vbCrLf) Dim csvData As String = "" & NowDate & "," & NowTime & "," & TestData.Test_Firmware & "," & TestData.Test_Temperature(TempData.DivTemp) & "," & TestData.Test_Temperature(TempData.CartTemp) & "," & TestData.Test_Battery & "," & TestData.Test_RFVRMS(0) & "," & TestData.Test_RFFreq(0) & "," & TestData.Test_RFVRMS(1) & "," & TestData.Test_RFFreq(1) & "," & TestData.Test_RFVRMS(2) & "," & TestData.Test_RFFreq(2) & "," & TestData.Test_EPVpp(0) & "," & TestData.Test_EPFreq(0) & "," & TestData.Test_EPPWidth(0) & "," & TestData.Test_EPNWidth(0) & "," & TestData.Test_EPVpp(1) & "," & TestData.Test_EPFreq(1) & "," & TestData.Test_EPPWidth(1) & "," & TestData.Test_EPNWidth(1) & "," & TestData.Test_EPVpp(2) & "," & TestData.Test_EPFreq(2) & "," & TestData.Test_EPPWidth(2) & "," & TestData.Test_EPNWidth(2) & "," & TestError & "" If Save_Csv(csvData) Then txbWindow.AppendText("CSV Data Save : FAIL" & vbCrLf) FailMain() Else txbWindow.AppendText("CSV Data Save : OK" & vbCrLf) If CountChanage() Then txbWindow.AppendText("Run Count Change Save : OK" & vbCrLf) If TestError = False Then FailMain() Else SuccessMain() End If Else txbWindow.AppendText("Run Count Change Save : FAIL" & vbCrLf) FailMain() End If End If Else txbWindow.AppendText("PostgreSQL Data Save : FAIL" & vbCrLf) FailMain() End If ProcessEnd: Jig_End() NormalEnd: myscope.IO.Clear() txbWindow.AppendText("[" & MeasureTimeAll(MeasEnd) & "ms] Test Play" & vbCrLf) End Sub Private Function ALIQC_PostReg() As Boolean If ckbPostgre.Checked = True Then DBCmd = "INSERT INTO pcbs(jig_num, test_date, test_time, board_num, test_result, fw_ver, rf1_vrms, rf1_freq, rf2_vrms, rf2_freq, rf3_vrms, rf3_freq, ep1_vpp, ep1_freq,ep1_pwidth, ep1_nwidth, ep2_vpp, ep2_freq, ep2_pwidth, ep2_nwidth, ep3_vpp, ep3_freq, ep3_pwidth, ep3_nwidth, created_at, updated_at) " & "VALUES('" & nudJigNum.Value & "', '" & NowDate & "', '" & NowTime & "', '" & todayCount & "','" & TestError & "', '" & TestData.Test_Firmware & "', '" & TestData.Test_RFVRMS(0) & "', '" & TestData.Test_RFFreq(0) & "', '" & TestData.Test_RFVRMS(1) & "', '" & TestData.Test_RFFreq(1) & "', '" & TestData.Test_RFVRMS(2) & "','" & TestData.Test_RFFreq(2) & "', '" & TestData.Test_EPVpp(0) & "','" & TestData.Test_EPFreq(0) & "','" & TestData.Test_EPPWidth(0) & "','" & TestData.Test_EPNWidth(0) & "','" & TestData.Test_EPVpp(1) & "','" & TestData.Test_EPFreq(1) & "','" & TestData.Test_EPPWidth(1) & "','" & TestData.Test_EPNWidth(1) & "','" & TestData.Test_EPVpp(2) & "','" & TestData.Test_EPFreq(2) & "','" & TestData.Test_EPPWidth(2) & "','" & TestData.Test_EPNWidth(2) & "',NOW(),NOW());" If pgDBCommand(DBCmd) Then Return True Else Return False End If Else Return True End If End Function Private Sub iqcFunction() StartTime = MeasureTimeAll(MeasStart) If StartSwitch = True Then If JigSerial.IsOpen = True Then If txbBarcode.Text = "[START]" Then For i = 0 To nudOnRe.Value If JigRun_On() Then GoTo processEnd End If delay_run(StepDelay) If FirmVerCheck() Then Dim ReadUni As Byte() = Encoding.Unicode.GetBytes(TestData.Test_Firmware) If ReadUni(0) < 57 Then MsgBox("잘못된 펌웨어 버전입니다. 버전을 확인하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo processEnd End If If i = nudOnRe.Value Then MsgBox("전원 ON에 실패하였습니다. 다시 시도하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo processEnd End If Else Exit For End If delay_run(StepDelay) Next If BuzzerTestFunc(0) Then TestError = False GoTo processEnd End If delay_run(StepDelay) If TempTest() Then TestError = False GoTo processEnd End If delay_run(StepDelay) If HFTestRun() Then TestError = False GoTo processEnd End If delay_run(StepDelay) If BuzzerTestFunc(1) Then TestError = False GoTo processEnd End If delay_run(StepDelay) If RFTestRun() Then TestError = False GoTo processEnd End If delay_run(StepDelay) If BuzzerTestFunc(2) Then TestError = False GoTo processEnd End If delay_run(StepDelay) If EPTestRun() Then TestError = False GoTo processEnd End If delay_run(StepDelay) todayCount += 1 If saveLocalFile() Then GoTo processEnd End If GoTo SuccessEnd Else MsgBox("잘못된 시작 명령어를 입력하였습니다.", vbExclamation, Program_Name & Program_Version) GoTo ErrorEnd End If Else MsgBox("지그를 연결한 후 동작하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo ErrorEnd End If Else MsgBox("스코프와 스펙트럼을 연결한 후 동작하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo ErrorEnd End If SuccessEnd: Dim csvData As String = "" & NowDate & "," & NowTime & "," & TestData.Test_Firmware & "," & TestData.Test_Temperature(TempData.DivTemp) & "," & TestData.Test_HFData(HifuTest_Step.Step1) & "," & TestData.Test_HFData(HifuTest_Step.Step2) & "," & TestData.Test_HFData(HifuTest_Step.step3) & "," & TestData.Test_RFVRMS(0) & "," & TestData.Test_RFFreq(0) & "," & TestData.Test_RFVRMS(1) & "," & TestData.Test_RFFreq(1) & "," & TestData.Test_RFVRMS(2) & "," & TestData.Test_RFFreq(2) & "," & TestData.Test_EPVpp(0) & "," & TestData.Test_EPFreq(0) & "," & TestData.Test_EPPWidth(0) & "," & TestData.Test_EPNWidth(0) & "," & TestData.Test_EPVpp(1) & "," & TestData.Test_EPFreq(1) & "," & TestData.Test_EPPWidth(1) & "," & TestData.Test_EPNWidth(1) & "," & TestData.Test_EPVpp(2) & "," & TestData.Test_EPFreq(2) & "," & TestData.Test_EPPWidth(2) & "," & TestData.Test_EPNWidth(2) & "," & TestError & "" If Save_Csv(csvData) Then txbWindow.AppendText("CSV Data Save : FAIL" & vbCrLf) FailMain() Else txbWindow.AppendText("CSV Data Save : OK" & vbCrLf) If IQC_PostReg() Then txbWindow.AppendText("PostgreSQL Data Save : OK" & vbCrLf) If CountChanage() Then txbWindow.AppendText("Run Count Change Save : OK" & vbCrLf) If TestError = False Then FailMain() Else SuccessMain() End If Else txbWindow.AppendText("Run Count Change Save : FAIL" & vbCrLf) FailMain() End If Else txbWindow.AppendText("PostgreSQL Data Save : FAIL" & vbCrLf) FailMain() End If End If processEnd: Jig_End() ErrorEnd: myscope.IO.Clear() txbWindow.AppendText("[" & MeasureTimeAll(MeasEnd) & "ms] Test Play" & vbCrLf) End Sub Private Function BuzzerTestFunc(TypeNum As Int16) As Boolean MeasureTimeFunc(MeasStart) tmpCmdMessage = "runbuzz" cmdMessage = "[" & tmpCmdMessage & " " & TypeNum & "]" If SendData(cmdMessage) Then txbWindow.AppendText("BUZZER Send Error !" & vbCrLf) Return True End If Dim BzResult As String = PollingReceiveData(JIGDT_Timeout) If BzResult = "sucess" Then txbWindow.AppendText("BUZZER " & TypeNum & " OK !" & vbCrLf) Return False Else txbWindow.AppendText("BUZZER Receive Error !" & vbCrLf) Return True End If End Function Private Function IQC_PostReg() As Boolean If ckbPostgre.Checked = True And TestError = True Then DBCmd = "INSERT INTO pcbs(jig_num, test_date, test_time, board_num, test_result, fw_ver, hf1_value,hf2_value, hf3_value, rf1_vrms, rf1_freq, rf2_vrms, rf2_freq, rf3_vrms, rf3_freq, ep1_vpp, ep1_freq,ep1_pwidth, ep1_nwidth, ep2_vpp, ep2_freq, ep2_pwidth, ep2_nwidth, ep3_vpp, ep3_freq, ep3_pwidth, ep3_nwidth, created_at, updated_at) " & "VALUES('" & nudJigNum.Value & "', '" & NowDate & "', '" & NowTime & "', '" & todayCount & "','" & TestError & "', '" & TestData.Test_Firmware & "', '" & TestData.Test_HFData(HifuTest_Step.Step1) & "', '" & TestData.Test_HFData(HifuTest_Step.Step2) & "', '" & TestData.Test_HFData(HifuTest_Step.step3) & "', '" & TestData.Test_RFVRMS(0) & "', '" & TestData.Test_RFFreq(0) & "', '" & TestData.Test_RFVRMS(1) & "', '" & TestData.Test_RFFreq(1) & "', '" & TestData.Test_RFVRMS(2) & "','" & TestData.Test_RFFreq(2) & "', '" & TestData.Test_EPVpp(0) & "','" & TestData.Test_EPFreq(0) & "','" & TestData.Test_EPPWidth(0) & "','" & TestData.Test_EPNWidth(0) & "','" & TestData.Test_EPVpp(1) & "','" & TestData.Test_EPFreq(1) & "','" & TestData.Test_EPPWidth(1) & "','" & TestData.Test_EPNWidth(1) & "','" & TestData.Test_EPVpp(2) & "','" & TestData.Test_EPFreq(2) & "','" & TestData.Test_EPPWidth(2) & "','" & TestData.Test_EPNWidth(2) & "',NOW(),NOW());" If pgDBCommand(DBCmd) Then Return True Else Return False End If Else Return True End If End Function Private Sub InitializeDeviceState() Try txbWindow.AppendText("기기 상태 초기화 시작..." & vbCrLf) Try TestMode_On(0) ' MFT 모드를 0으로 초기화 Threading.Thread.Sleep(300) Catch End Try txbWindow.AppendText("기기 상태 초기화 완료" & vbCrLf) Catch ex As Exception txbWindow.AppendText("기기 초기화 중 오류 (무시하고 계속): " & ex.Message & vbCrLf) End Try End Sub Private Sub rfFunction() Try StartTime = MeasureTimeAll(MeasStart) TestData.Test_Serial = txbBarcode.Text InitializeDeviceState() If StartSwitch = True Then If JigSerial.IsOpen = True Then If TDDataSearch() Then FailMain() GoTo NormalEnd End If For i = 0 To nudOnRe.Value If JigRun_On() Then GoTo ProcessEnd End If If FirmVerCheck() Then Dim ReadUni As Byte() = Encoding.Unicode.GetBytes(TestData.Test_Firmware) If ReadUni(0) < 57 Then MsgBox("잘못된 펌웨어 버전입니다. 버전을 확인하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo ProcessEnd End If If i = nudOnRe.Value Then MsgBox("전원 ON에 실패하였습니다. 다시 시도하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo ProcessEnd End If Else Exit For End If Next 'If JigRun_On() Then ' FailMain() ' GoTo ProcessEnd 'End If 'If FirmVerCheck() Then ' FailMain() ' MsgBox("최신 펌웨어로 동작하고 있지 않습니다. 펌웨어 버전을 확인하여 주십시오.", vbCritical, Program_Name & Program_Version) ' GoTo ProcessEnd 'End If If TDSetCheck() Then FailMain() GoTo ProcessEnd End If If RFTestRun() Then FailMain() GoTo ProcessEnd End If If MCTestRunSp() Then FailMain() GoTo ProcessEnd End If If EPTestRun() Then FailMain() GoTo ProcessEnd End If GoTo RunSuccess Else MsgBox("지그를 연결한 후 동작하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo NormalEnd End If Else MsgBox("스코프와 스펙트럼을 연결한 후 동작하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo NormalEnd End If Catch ex As Exception MsgBox("ERR!! :: " & ex.Message, vbCritical) GoTo ProcessEnd End Try RunSuccess: txbWindow.AppendText("=== 합격 데이터 저장 시작 ===" & vbCrLf) If RF_PostReg() Then txbWindow.AppendText("PostgreSQL Data Save : OK" & vbCrLf) If dbRFSave() Then txbWindow.AppendText("DB Data Save : OK" & vbCrLf) If CountChanage() Then txbWindow.AppendText("Run Count Change Save : OK" & vbCrLf) Dim csvData As String = "" & TestData.Test_Serial & "," & NowDate & "," & NowTime & "," & TestData.Test_Firmware & "," & TestData.Test_RFVRMS(0) & "," & TestData.Test_RFFreq(0) & "," & TestData.Test_RFVRMS(1) & "," & TestData.Test_RFFreq(1) & "," & TestData.Test_RFVRMS(2) & "," & TestData.Test_RFFreq(2) & "," & TestData.Test_MCWidth(0) & "," & TestData.Test_MCVpp(0) & "," & TestData.Test_MCFreq(0) & "," & TestData.Test_MCWidth(1) & "," & TestData.Test_MCVpp(1) & "," & TestData.Test_MCFreq(1) & "," & TestData.Test_EPVpp(0) & "," & TestData.Test_EPFreq(0) & "," & TestData.Test_EPPWidth(0) & "," & TestData.Test_EPNWidth(0) & "," & TestData.Test_EPVpp(1) & "," & TestData.Test_EPFreq(1) & "," & TestData.Test_EPPWidth(1) & "," & TestData.Test_EPNWidth(1) & "," & TestData.Test_EPVpp(2) & "," & TestData.Test_EPFreq(2) & "," & TestData.Test_EPPWidth(2) & "," & TestData.Test_EPNWidth(2) & "," & TestError & "" If Save_Csv(csvData) Then txbWindow.AppendText("CSV Data Save : FAIL" & vbCrLf) FailMain() Else txbWindow.AppendText("Run Count Change Save : OK" & vbCrLf) If TestError = False Then FailMain() Else SuccessMain() End If End If Else txbWindow.AppendText("Run Count Change Save : FAIL" & vbCrLf) FailMain() End If Else txbWindow.AppendText("DB Data Save : FAIL" & vbCrLf) FailMain() End If Else txbWindow.AppendText("PostgreSQL Data Save : FAIL" & vbCrLf) FailMain() End If txbWindow.AppendText("=== 합격 데이터 저장 완료 ===" & vbCrLf) ProcessEnd: Jig_End() txbWindow.AppendText("=== 불합격 데이터 저장 시작 ===" & vbCrLf) ' 불합격 시에도 전체 데이터 저장 로직 실행 If RF_PostReg() Then txbWindow.AppendText("PostgreSQL Data Save (NG) : OK" & vbCrLf) If dbRFSave() Then txbWindow.AppendText("DB Data Save (NG) : OK" & vbCrLf) If CountChanage() Then txbWindow.AppendText("Run Count Change Save (NG) : OK" & vbCrLf) Dim csvData As String = "" & TestData.Test_Serial & "," & NowDate & "," & NowTime & "," & TestData.Test_Firmware & "," & TestData.Test_RFVRMS(0) & "," & TestData.Test_RFFreq(0) & "," & TestData.Test_RFVRMS(1) & "," & TestData.Test_RFFreq(1) & "," & TestData.Test_RFVRMS(2) & "," & TestData.Test_RFFreq(2) & "," & TestData.Test_MCWidth(0) & "," & TestData.Test_MCVpp(0) & "," & TestData.Test_MCFreq(0) & "," & TestData.Test_MCWidth(1) & "," & TestData.Test_MCVpp(1) & "," & TestData.Test_MCFreq(1) & "," & TestData.Test_EPVpp(0) & "," & TestData.Test_EPFreq(0) & "," & TestData.Test_EPPWidth(0) & "," & TestData.Test_EPNWidth(0) & "," & TestData.Test_EPVpp(1) & "," & TestData.Test_EPFreq(1) & "," & TestData.Test_EPPWidth(1) & "," & TestData.Test_EPNWidth(1) & "," & TestData.Test_EPVpp(2) & "," & TestData.Test_EPFreq(2) & "," & TestData.Test_EPPWidth(2) & "," & TestData.Test_EPNWidth(2) & "," & TestError & "" If Save_Csv(csvData) Then txbWindow.AppendText("CSV Data Save (NG) : FAIL" & vbCrLf) FailMain() Else txbWindow.AppendText("CSV Data Save (NG) : OK" & vbCrLf) If TestError = False Then FailMain() Else SuccessMain() End If End If Else txbWindow.AppendText("Run Count Change Save (NG) : FAIL" & vbCrLf) FailMain() End If Else txbWindow.AppendText("DB Data Save (NG) : FAIL" & vbCrLf) FailMain() End If Else txbWindow.AppendText("PostgreSQL Data Save (NG) : FAIL" & vbCrLf) FailMain() End If txbWindow.AppendText("=== 불합격 데이터 저장 완료 ===" & vbCrLf) NormalEnd: myscope.IO.Clear() 'txbWindow.AppendText("[" & MeasureTimeAll(MeasEnd) & "ms] Test Play" & vbCrLf) Try If TestError = False Then Jig_End() ' 지그 전원 차단 TestMode_On(0) ' MFT 모드 초기화 txbWindow.AppendText("비정상 종료로 인한 전원 차단" & vbCrLf) End If Catch normalEx As Exception txbWindow.AppendText("정상 종료 처리 중 오류: " & normalEx.Message & vbCrLf) End Try 'myscope.IO.Clear() txbWindow.AppendText("[" & MeasureTimeAll(MeasEnd) & "ms] Test Play" & vbCrLf) End Sub Private Function TDSetCheck() As Boolean Dim TDResult As String = TD_name_load() If TDResult = "1" Then MsgBox("Send 중 오류가 발생하였습니다.", vbCritical) txbTDSN.ForeColor = Color.Red Return True End If If TDResult = "0" Then MsgBox("Receive 중 오류가 발생하였습니다.", vbCritical) txbTDSN.ForeColor = Color.Red Return True End If If TDResult.Length <> 10 Then txbWindow.AppendText("TDResult Length ERROR !! : " & TDResult & "" & vbCrLf) txbTDSN.ForeColor = Color.Red Return True End If If TestData.Test_Serial.ToUpper = TDResult.ToUpper Then txbWindow.AppendText("TS : " & TestData.Test_Serial & ", TR : " & TDResult & "" & vbCrLf) txbTDSN.ForeColor = Color.Blue Return False Else txbWindow.AppendText("TS : " & TestData.Test_Serial & ", TR : " & TDResult & "" & vbCrLf) txbTDSN.ForeColor = Color.Red Return True End If End Function Private Function RF_PostReg() As Boolean If ckbPostgre.Checked = True Then DBCmd = "select exists(select 1 from prods where td_serial = '" & TestData.Test_Serial & "') AS A;" Dim TDExistBol As Boolean = pgDBQueryScalar(DBCmd) If TDExistBol = False Then DBCmd = "INSERT INTO prods(td_serial, p2_jignum, p2_testdate, p2_testtime, p2_result, p2_rf1_vrms, p2_rf1_freq, p2_rf2_vrms, p2_rf2_freq, p2_rf3_vrms, p2_rf3_freq, p2_mc1_vpp, p2_mc1_freq,p2_mc1_width, p2_mc2_vpp, p2_mc2_freq, p2_mc2_width, p2_ep1_vpp, p2_ep1_freq, p2_ep1_pwidth, p2_ep1_nwidth, p2_ep2_vpp, p2_ep2_freq, p2_ep2_pwidth, p2_ep2_nwidth, p2_ep3_vpp, p2_ep3_freq, p2_ep3_pwidth, p2_ep3_nwidth, created_at, updated_at) " & "VALUES('" & TestData.Test_Serial & "', '" & nudJigNum.Value & "', '" & NowDate & "', '" & NowTime & "','" & TestError & "', '" & TestData.Test_RFVRMS(0) & "', '" & TestData.Test_RFFreq(0) & "', '" & TestData.Test_RFVRMS(1) & "', '" & TestData.Test_RFFreq(1) & "', '" & TestData.Test_RFVRMS(2) & "', '" & TestData.Test_RFFreq(2) & "', '" & TestData.Test_MCVpp(0) & "', '" & TestData.Test_MCFreq(0) & "', '" & TestData.Test_MCWidth(0) & "','" & TestData.Test_MCVpp(1) & "', '" & TestData.Test_MCFreq(1) & "', '" & TestData.Test_MCWidth(1) & "','" & TestData.Test_EPVpp(0) & "','" & TestData.Test_EPFreq(0) & "','" & TestData.Test_EPPWidth(0) & "','" & TestData.Test_EPNWidth(0) & "','" & TestData.Test_EPVpp(1) & "','" & TestData.Test_EPFreq(1) & "','" & TestData.Test_EPPWidth(1) & "','" & TestData.Test_EPNWidth(1) & "','" & TestData.Test_EPVpp(2) & "','" & TestData.Test_EPFreq(2) & "','" & TestData.Test_EPPWidth(2) & "','" & TestData.Test_EPNWidth(2) & "',NOW(),NOW());" Else DBCmd = "UPDATE prods SET td_serial = '" & TestData.Test_Serial & "', p2_jignum = '" & nudJigNum.Value & "', p2_testdate = '" & NowDate & "', p2_testtime = '" & NowTime & "', " & "p2_result = '" & TestError & "', p2_rf1_vrms = '" & TestData.Test_RFVRMS(0) & "', p2_rf1_freq = '" & TestData.Test_RFFreq(0) & "', p2_rf2_vrms = '" & TestData.Test_RFVRMS(1) & "', " & "p2_rf2_freq = '" & TestData.Test_RFFreq(1) & "', p2_rf3_vrms = '" & TestData.Test_RFVRMS(2) & "', p2_rf3_freq = '" & TestData.Test_RFFreq(2) & "', p2_mc1_vpp = '" & TestData.Test_MCVpp(0) & "', p2_mc1_freq = '" & TestData.Test_MCFreq(0) & "',p2_mc1_width = '" & TestData.Test_MCWidth(0) & "',p2_mc2_vpp = '" & TestData.Test_MCVpp(1) & "', p2_mc2_freq = '" & TestData.Test_MCFreq(1) & "',p2_mc2_width = '" & TestData.Test_MCWidth(1) & "',p2_ep1_vpp = '" & TestData.Test_EPVpp(0) & "',p2_ep1_freq = '" & TestData.Test_EPFreq(0) & "',p2_ep1_pwidth = '" & TestData.Test_EPPWidth(0) & "',p2_ep1_nwidth = '" & TestData.Test_EPNWidth(0) & "',p2_ep2_vpp = '" & TestData.Test_EPVpp(1) & "',p2_ep2_freq = '" & TestData.Test_EPFreq(1) & "',p2_ep2_pwidth = '" & TestData.Test_EPNWidth(1) & "',p2_ep2_nwidth = '" & TestData.Test_EPNWidth(1) & "',p2_ep3_vpp = '" & TestData.Test_EPVpp(2) & "',p2_ep3_freq = '" & TestData.Test_EPFreq(2) & "',p2_ep3_pwidth = '" & TestData.Test_EPPWidth(2) & "', p2_ep3_nwidth = '" & TestData.Test_EPNWidth(2) & "', updated_at = NOW() WHERE td_serial = '" & TestData.Test_Serial & "';" End If txbWindow.AppendText(DBCmd & vbCrLf) If pgDBCommand(DBCmd) Then Return True Else Return False End If Else Return True End If End Function Private Sub hfFunction() StartTime = MeasureTimeAll(MeasStart) TestData.Test_Serial = txbBarcode.Text If StartSwitch = True Then If JigSerial.IsOpen = True Then If TDDataSearch() Then FailMain() GoTo NormalEnd End If For i = 0 To nudOnRe.Value If JigRun_On() Then GoTo ProcessEnd End If delay_run(StepDelay) If FirmVerCheck() Then Dim ReadUni As Byte() = Encoding.Unicode.GetBytes(TestData.Test_Firmware) If ReadUni(0) < 57 Then MsgBox("잘못된 펌웨어 버전입니다. 버전을 확인하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo ProcessEnd End If If i = nudOnRe.Value Then MsgBox("전원 ON에 실패하였습니다. 다시 시도하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo ProcessEnd End If Else Exit For End If delay_run(StepDelay) Next 'If JigRun_On() Then ' FailMain() ' GoTo ProcessEnd 'End If 'If FirmVerCheck() Then ' FailMain() ' MsgBox("최신 펌웨어로 동작하고 있지 않습니다. 펌웨어 버전을 확인하여 주십시오.", vbCritical, Program_Name & Program_Version) ' GoTo ProcessEnd 'End If If BatteryTest() Then FailMain() GoTo ProcessEnd End If If TempTest() Then FailMain() GoTo ProcessEnd End If If HFTestRun() Then FailMain() GoTo ProcessEnd End If If rdbHF.Checked = True Then If DataWrite(formProdCode(formTypeList.prod_HF)) Then FailMain() GoTo ProcessEnd End If ElseIf rdbEFPD.Checked = True Then If DataWrite(formProdCode(formTypeList.EF_PD)) Then FailMain() GoTo ProcessEnd End If End If GoTo RunSuccess Else MsgBox("지그를 연결한 후 동작하여 주십시오.", vbCritical, Program_Name & Program_Version) FailMain() GoTo NormalEnd End If Else MsgBox("스코프와 스펙트럼을 연결한 후 동작하여 주십시오.", vbCritical, Program_Name & Program_Version) FailMain() GoTo NormalEnd End If RunSuccess: If HIFU_PostReg() Then txbWindow.AppendText("PostgreSQL Data Save : OK" & vbCrLf) If dbHFSave() Then txbWindow.AppendText("DB Data Save : OK" & vbCrLf) If CountChanage() Then txbWindow.AppendText("Run Count Change : OK" & vbCrLf) Dim csvData As String = "" & TestData.Test_Serial & "," & NowDate & "," & NowTime & "," & TestData.Test_Firmware & "," & TestData.Test_Battery & "," & TestData.Test_Temperature(TempData.DivTemp) & "," & TestData.Test_Temperature(TempData.CartTemp) & "," & TestData.Test_HFData(HifuTest_Step.Step1) & "," & TestData.Test_HFData(HifuTest_Step.Step2) & "," & TestData.Test_HFData(HifuTest_Step.step3) & "," & TestError & "" If Save_Csv(csvData) Then txbWindow.AppendText("CSV Data Save : FAIL" & vbCrLf) FailMain() Else txbWindow.AppendText("CSV Data Save : OK" & vbCrLf) If TestError = False Then FailMain() Else SuccessMain() End If End If Else txbWindow.AppendText("Run Count Change : FAIL" & vbCrLf) FailMain() End If Else txbWindow.AppendText("DB Data Save : FAIL" & vbCrLf) FailMain() End If Else txbWindow.AppendText("PostgreSQL Data Save : FAIL" & vbCrLf) FailMain() End If ProcessEnd: Jig_End() NormalEnd: txbWindow.AppendText("[" & MeasureTimeAll(MeasEnd) & "ms] Test Play" & vbCrLf) End Sub Private Function HIFU_PostReg() As Boolean If ckbPostgre.Checked = True Then DBCmd = "select exists(select 1 from prods where td_serial = '" & TestData.Test_Serial & "') AS A;" Dim TDExistBol As Boolean = pgDBQueryScalar(DBCmd) If TDExistBol = False Then DBCmd = "INSERT INTO prods(td_serial, p1_jignum, p1_testdate, p1_testtime, p1_result, p1_fwver, p1_batterylv, p1_divtemp, p1_carttemp, p1_hf1_value, p1_hf2_value, p1_hf3_value, created_at, updated_at)" & "VALUES('" & TestData.Test_Serial & "', '" & nudJigNum.Value & "', '" & NowDate & "', '" & NowTime & "','" & TestError & "', '" & TestData.Test_Firmware & "', '" & TestData.Test_Battery & "', '" & TestData.Test_Temperature(TempData.DivTemp) & "', '" & TestData.Test_Temperature(TempData.CartTemp) & "', '" & TestData.Test_HFData(HifuTest_Step.Step1) & "', '" & TestData.Test_HFData(HifuTest_Step.Step2) & "', '" & TestData.Test_HFData(HifuTest_Step.step3) & "', NOW(), NOW());" Else DBCmd = "UPDATE prods SET td_serial = '" & TestData.Test_Serial & "', p1_jignum = '" & nudJigNum.Value & "', p1_testdate = '" & NowDate & "', p1_testtime = '" & NowTime & "', " & "p1_result = '" & TestError & "', p1_fwver = '" & TestData.Test_Firmware & "', p1_batterylv = '" & TestData.Test_Battery & "', p1_divtemp = '" & TestData.Test_Temperature(TempData.DivTemp) & "', " & "p1_carttemp = '" & TestData.Test_Temperature(TempData.CartTemp) & "', p1_hf1_value = '" & TestData.Test_HFData(HifuTest_Step.Step1) & "', p1_hf2_value = '" & TestData.Test_HFData(HifuTest_Step.Step2) & "', p1_hf3_value = '" & TestData.Test_HFData(HifuTest_Step.step3) & "', updated_at = NOW() WHERE td_serial = '" & TestData.Test_Serial & "';" End If If pgDBCommand(DBCmd) Then Return True Else Return False End If Else Return True End If End Function Private Sub DSTestFunction() StartTime = MeasureTimeAll(MeasStart) If StartSwitch = True Then If JigSerial.IsOpen = True Then If txbBarcode.Text <> "[START]" Then MsgBox("잘못된 시작 명령어를 입력하였습니다.", vbExclamation, Program_Name & Program_Version) GoTo NormalEnd End If If JigRun_On() Then FailMain() GoTo ProcessEnd End If 'If TDNullProdWrite() Then ' FailMain() ' GoTo ProcessEnd 'End If delay_run(Val(txbDSDelay.Text)) If FirmVerCheck() Then txbDSBasic.Text = "FAIL" txbDSBasic.BackColor = Color.Red txbDSBasic.Refresh() FailMain() MsgBox("최신 펌웨어로 동작하고 있지 않습니다. 펌웨어 버전을 확인하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo ProcessEnd End If If TempTest() Then txbDSBasic.Text = "FAIL" txbDSBasic.BackColor = Color.Red txbDSBasic.Refresh() FailMain() GoTo ProcessEnd End If If BatteryTest() Then txbDSBasic.Text = "FAIL" txbDSBasic.BackColor = Color.Red txbDSBasic.Refresh() FailMain() GoTo ProcessEnd End If txbDSBasic.Text = "SUCCESS" txbDSBasic.BackColor = Color.Green txbDSBasic.Refresh() If HFTestRun() Then FailMain() GoTo ProcessEnd End If TestStep = TestList.DataWrite TestRunningState(testRunningList.Success, Color.Green) 'Dim TestResult As Boolean = Not (TestError) 'Dim mqttSendData As String = "[{""td_serial"":""" & TestData.Test_Serial & """},{""p1_testdate"":""" & NowDate & """},{""p1_testtime"":""" & NowTime & """},{""p1_result"":""" & TestResult & """},{""p1_fwver"":""" & TestData.Test_Firmware & """},{""p1_batterylv"":""" & TestData.Test_Battery & """},{""p1_divtemp"":""" & TestData.Test_Temperature(TempData.DivTemp) & """},{""p1_carttemp"":""" & TestData.Test_Temperature(TempData.CartTemp) & """},{""p1_hf1_value"":""" & TestData.Test_HFData(HifuTest_Step.Step1) & """},{""p1_hf2_value"":""" & TestData.Test_HFData(HifuTest_Step.Step2) & """},{""p1_hf3_value"":""" & TestData.Test_HFData(HifuTest_Step.step3) & """},{""oled_result"":""""},{""buzzer_result"":""""}]" 'If Mqtt_DataSend(mqttSendData, mqttTopic) Then ' txbWindow.AppendText("MES Server Mqtt Protocol Fail ! " & vbCrLf) ' TestRunningState(testRunningList.Fail, Color.Red) 'Else ' txbWindow.AppendText("MES Server Mqtt Protocol Save ! " & vbCrLf) ' TestRunningState(testRunningList.Success, Color.Green) 'End If 'txbWindow.AppendText("MES Server Mqtt Protocol Save ! " & vbCrLf) 'TestRunningState(testRunningList.Success, Color.Green) GoTo RunSuccess Else MsgBox("지그를 연결한 후 동작하여 주십시오.", vbCritical, Program_Name & Program_Version) FailMain() GoTo NormalEnd End If Else MsgBox("스코프와 스펙트럼을 연결한 후 동작하여 주십시오.", vbCritical, Program_Name & Program_Version) FailMain() GoTo NormalEnd End If RunSuccess: 'If dbHFSave() Then If CountChanage() Then Dim csvData As String = NowDate & "," & NowTime & "," & TestData.Test_Firmware & "," & TestData.Test_Battery & "," & TestData.Test_Temperature(TempData.DivTemp) & "," & TestData.Test_Temperature(TempData.CartTemp) & "," & TestData.Test_HFData(HifuTest_Step.Step1) & "," & TestData.Test_HFData(HifuTest_Step.Step2) & "," & TestData.Test_HFData(HifuTest_Step.step3) & "" If Save_Csv(csvData) Then txbWindow.AppendText("CSV Data Save : FAIL" & vbCrLf) FailMain() Else If txbDSWrite.BackColor = Color.Green And txbDSWrite_2.BackColor = Color.Green And txbDSWrite_3.BackColor = Color.Green Then txbDSSave.BackColor = Color.Green Else txbDSSave.BackColor = Color.Red End If If TestError = False Then FailMain() Else SuccessMain() End If End If Else FailMain() End If 'Else ' FailMain() 'End If ProcessEnd: Jig_End() NormalEnd: txbWindow.AppendText("[" & MeasureTimeAll(MeasEnd) & "ms] Test Play" & vbCrLf) End Sub Private Sub allFunction() txbBarcode.ReadOnly = True Dim ModCnt As Int16 = 0 Dim ErrorCheck As Boolean = False StartTime = MeasureTimeAll(MeasStart) TestData.Test_Serial = txbBarcode.Text If StartSwitch = True Then If JigSerial.IsOpen = True Then MeasureTimeFunc(MeasStart) If TDDataSearch() Then GoTo ProcessEnd End If txbWindow.AppendText("4. " & MeasureTimeFunc(MeasEnd) & vbCrLf) MeasureTimeFunc(MeasStart) MainTextChange("전원 ON") If JigRun_On() Then MsgBox("제품과의 연결이 올바르지 않습니다. 연결 상태를 확인하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo ProcessEnd End If txbWindow.AppendText("3. " & MeasureTimeFunc(MeasEnd) & vbCrLf) MeasureTimeFunc(MeasStart) If FirmVerCheck() Then MsgBox("최신 펌웨어로 동작하고 있지 않습니다. 펌웨어 버전을 확인하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo ProcessEnd End If txbWindow.AppendText("1. firm : " & MeasureTimeFunc(MeasEnd) & vbCrLf) MeasureTimeFunc(MeasStart) MainTextChange("HIFU 측정중") 'delay_run(StepDelay) If HFTestRun() Then If TestError = False Then ErrorRunning() GoTo ProcessEnd End If ErrorRunning() ErrorCheck = True Else SuccessRunning() End If txbWindow.AppendText("F. HF : " & MeasureTimeFunc(MeasEnd) & vbCrLf) MeasureTimeFunc(MeasStart) delay_run(StepDelay) If RFTestRun() Then If TestError = False Then ErrorRunning() GoTo ProcessEnd End If ErrorRunning() ErrorCheck = True Else SuccessRunning() End If txbWindow.AppendText("F. RF : " & MeasureTimeFunc(MeasEnd) & vbCrLf) MeasureTimeFunc(MeasStart) MainTextChange("미세전류 측정중") 'delay_run(StepDelay) If MCTestRunSp() Then If TestError = False Then ErrorRunning() GoTo ProcessEnd End If ErrorRunning() ErrorCheck = True Else SuccessRunning() End If txbWindow.AppendText("F. MC : " & MeasureTimeFunc(MeasEnd) & vbCrLf) MeasureTimeFunc(MeasStart) If EPTestRun() Then If TestError = False Then ErrorRunning() GoTo ProcessEnd End If ErrorRunning() ErrorCheck = True Else SuccessRunning() End If txbWindow.AppendText("F. EP : " & MeasureTimeFunc(MeasEnd) & vbCrLf) 'MainTextChange("LED 측정중..") 'delay_run(StepDelay) 'If LEDTestRun3() Then ' ErrorRunning() ' ErrorCheck = True 'Else ' SuccessRunning() 'End If 'MeasureTimeFunc(MeasStart) If BatteryTest() Then ErrorRunning() GoTo ProcessEnd Else SuccessRunning() End If txbWindow.AppendText("F. BT : " & MeasureTimeFunc(MeasEnd) & vbCrLf) MeasureTimeFunc(MeasStart) If TempTest() Then ErrorRunning() GoTo ProcessEnd Else SuccessRunning() End If txbWindow.AppendText("F. TM : " & MeasureTimeFunc(MeasEnd) & vbCrLf) MeasureTimeFunc(MeasStart) If DataWrite(formProdCode(formTypeList.full)) Then ErrorRunning() ErrorCheck = True Else SuccessRunning() End If txbWindow.AppendText("F. DW : " & MeasureTimeFunc(MeasEnd) & vbCrLf) MeasureTimeFunc(MeasStart) MainTextChange("DB입력중..") If DBSave() Then ErrorRunning() ErrorCheck = True Else SuccessRunning() End If MainTextChange("측정 완료") txbWindow.AppendText("F. DB : " & MeasureTimeFunc(MeasEnd) & vbCrLf) If ErrorCheck = True Then FailMain() ErrorCheck = False Else txbDayCount.Text += 1 txbOkCount.Text += 1 SuccessMain() ErrorCheck = True End If txbWindow.AppendText("[" & MeasureTimeAll(MeasEnd) & "ms] Test Play Success" & vbCrLf) Jig_End() Dim NowDate As String = Format(Now, "yyyy") & "-" & Format(Now, "MM") & "-" & Format(Now, "dd") Dim NowTime As String = Format(Now, "HH") & ":" & Format(Now, "mm") & ":" & Format(Now, "ss") txbBarcode.ReadOnly = False txbBarcode.Select(txbBarcode.Text.Length, 0) txbWindow.AppendText("[" & MeasureTimeAll(MeasEnd) & "ms] Test Play Success" & vbCrLf) TestStep = TestList.Wait Exit Sub Else MsgBox("지그를 연결한 후 동작하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo NormalEnd Exit Sub End If Else MsgBox("스코프와 스펙트럼을 연결한 후 동작하여 주십시오.", vbCritical, Program_Name & Program_Version) GoTo NormalEnd Exit Sub End If NormalEnd: FailMain() If rdbRFMCEP.Checked = True Then myscope.IO.Clear() End If Exit Sub ProcessEnd: FailMain() Jig_End() myscope.IO.Clear() End Sub Private Function CountChanage() As Boolean TestStep = TestList.COUNT If formType <> formTypeList.Company Then TestRunningState(testRunningList.Running, Color.Yellow) If todayCountSet() Then txbWindow.AppendText("Today Count Setting Error ! " & vbCrLf) TestRunningState(testRunningList.Fail, Color.Red) Return False End If Select Case formType Case formTypeList.prod_HF, formTypeList.EF_PD, formTypeList.DS_IQC, formTypeList.DS_PD HIFUReCount() Case formTypeList.prod_RF, formTypeList.altoPD RFReCount() Case formTypeList.iqc, formTypeList.altoIQC IQCReCount() End Select If CountUpdate() Then txbWindow.AppendText("Today Count Update Error ! " & vbCrLf) TestRunningState(testRunningList.Fail, Color.Red) Return False End If End If TestRunningState(testRunningList.Success, Color.Green) Return True End Function Private Sub HIFUReCount() If dupDATA = 0 Then txbDayCount.Text = Val(txbDayCount.Text) + 1 If processNum = TestStepList.HF_NewSuc Or processNum = TestStepList.HF_ReSuc Then txbOkCount.Text = Val(txbOkCount.Text) + 1 Else txbNgCount.Text = Val(txbNgCount.Text) + 1 End If Else If TDDataSet(TD_Data.TestStep) = TestStepList.HF_NEWFail Or TDDataSet(TD_Data.TestStep) = TestStepList.HF_ReFail Then If processNum = TestStepList.HF_NewSuc Or processNum = TestStepList.HF_ReSuc Then txbOkCount.Text = Val(txbOkCount.Text) + 1 txbNgCount.Text = Val(txbNgCount.Text) - 1 End If Else If processNum = TestStepList.HF_NEWFail Or processNum = TestStepList.HF_ReFail Then txbOkCount.Text = Val(txbOkCount.Text) - 1 txbNgCount.Text = Val(txbNgCount.Text) + 1 End If End If End If End Sub Private Sub IQCReCount() txbDayCount.Text = Val(txbDayCount.Text) + 1 txbOkCount.Text = Val(txbOkCount.Text) + 1 End Sub Private Sub RFReCount() If dupDATA = 0 Then txbDayCount.Text = Val(txbDayCount.Text) + 1 If processNum = TestStepList.RF_NewSuc Or processNum = TestStepList.RF_ReSuc Then txbOkCount.Text = Val(txbOkCount.Text) + 1 Else txbNgCount.Text = Val(txbNgCount.Text) + 1 End If Else If TDDataSet(TD_Data.TestStep) = TestStepList.RF_NewFail Or TDDataSet(TD_Data.TestStep) = TestStepList.RF_ReFail Then If processNum = TestStepList.RF_NewSuc Or processNum = TestStepList.RF_ReSuc Then txbOkCount.Text = Val(txbOkCount.Text) + 1 txbNgCount.Text = Val(txbNgCount.Text) - 1 End If Else If processNum = TestStepList.RF_NewFail Or processNum = TestStepList.RF_ReFail Then txbOkCount.Text = Val(txbOkCount.Text) - 1 txbNgCount.Text = Val(txbNgCount.Text) + 1 End If End If End If End Sub Private Function CountUpdate() As Boolean If rdbAltoPD.Checked = True Then DBCmd = "UPDATE " & pd1CntTableNow & " SET PD1_AltoCnt = '" & txbDayCount.Text & "', PD1_AltoOkCnt = '" & txbOkCount.Text & "', PD1_AltoNgCnt = '" & txbNgCount.Text & "' WHERE PD1_Date = '" & NowDate & "'" ElseIf rdbHF.Checked = True Or rdbEFPD.Checked = True Then DBCmd = "UPDATE " & pd1CntTableNow & " SET PD1_MaxHFTotalCnt = '" & txbDayCount.Text & "', PD1_MaxHFOkCnt = '" & txbOkCount.Text & "', PD1_MaxHFNgCnt = '" & txbNgCount.Text & "' WHERE PD1_Date = '" & NowDate & "'" ElseIf rdbRFMCEP.Checked = True Then DBCmd = "UPDATE " & pd1CntTableNow & " SET PD1_MaxRFTotalCnt = '" & txbDayCount.Text & "', PD1_MaxRFOkCnt = '" & txbOkCount.Text & "', PD1_MaxRFNgCnt = '" & txbNgCount.Text & "' WHERE PD1_Date = '" & NowDate & "'" ElseIf rdbIQC.Checked = True Then DBCmd = "UPDATE " & iqcCntTableNow & " SET IQC_MAXTotalCnt = '" & txbDayCount.Text & "', IQC_MAXOkCnt = '" & txbOkCount.Text & "', IQC_MAXNgCnt = '" & txbNgCount.Text & "' WHERE IQC_Date = '" & NowDate & "'" ElseIf rdbAltoIqc.Checked = True Then DBCmd = "UPDATE " & iqcCntTableNow & " SET IQC_ALTOTotalCnt = '" & txbDayCount.Text & "', IQC_ALTOOkCnt = '" & txbOkCount.Text & "', IQC_ALTONgCnt = '" & txbNgCount.Text & "' WHERE IQC_Date = '" & NowDate & "'" End If If DBCommand(DBCmd) Then Return False Else Return True End If End Function Private Function TDDataSearch() As Boolean MeasureTimeFunc(MeasStart) If TDExist() Then TDCompare() If TDTestNG() Then MsgBox("해당 시리얼 번호는 데이터가 존재하지 않습니다. TD 수입검사 진행 여부를 확인하여 주십시오.", vbCritical, Program_Name & Program_Version) MeasureTimeFunc(MeasEnd) Return True End If If TDDataSet(TD_Data.TestStep) = 1 Then MsgBox("전류측정을 진행하지 않은 TD 시리얼 번호입니다. 전류측정을 진행하여 주십시오.", vbCritical, Program_Name & Program_Version) MeasureTimeFunc(MeasEnd) Return True End If txbTDSN.Text = TestData.Test_Serial txbTDSN.Refresh() txbDate.Text = TDDataSet(TD_Data.TestDate) txbDate.Refresh() txbFreq.Text = TDDataSet(TD_Data.Freq) txbFreq.Refresh() txbGrade.Text = TDDataSet(TD_Data.Grade) txbGrade.Refresh() txbWindow.AppendText("TD Data Time(s) : " & MeasureTimeFunc(MeasEnd) & vbCrLf) Return False Else MsgBox("TD 데이터가 존재하지 않습니다. 성적서를 등록하여 주십시오.", vbExclamation, Program_Name & Program_Version) MeasureTimeFunc(MeasEnd) Return True End If End Function Private Sub ImageLocation(ColorCode As Int16, NowNum As Int16, ReCnt As Integer) XMoveCrd = 0 YMoveCrd = 0 Select Case NowNum Case 0 XMoveCrd = LedCoordinate(ColorCode, 0) YMoveCrd = LedCoordinate(ColorCode, 1) Case 1 XMoveCrd = LedCoordinate(ColorCode, 0) + ReCnt YMoveCrd = LedCoordinate(ColorCode, 1) Case 2 XMoveCrd = LedCoordinate(ColorCode, 0) YMoveCrd = LedCoordinate(ColorCode, 1) + ReCnt Case 3 XMoveCrd = LedCoordinate(ColorCode, 0) - ReCnt YMoveCrd = LedCoordinate(ColorCode, 1) Case 4 XMoveCrd = LedCoordinate(ColorCode, 0) YMoveCrd = LedCoordinate(ColorCode, 1) - ReCnt Case 5 XMoveCrd = LedCoordinate(ColorCode, 0) + ReCnt YMoveCrd = LedCoordinate(ColorCode, 1) - ReCnt Case 6 XMoveCrd = LedCoordinate(ColorCode, 0) + ReCnt YMoveCrd = LedCoordinate(ColorCode, 1) + ReCnt Case 7 XMoveCrd = LedCoordinate(ColorCode, 0) - ReCnt YMoveCrd = LedCoordinate(ColorCode, 1) + ReCnt Case 8 XMoveCrd = LedCoordinate(ColorCode, 0) - ReCnt YMoveCrd = LedCoordinate(ColorCode, 1) - ReCnt End Select If XMoveCrd < 0 Then XMoveCrd = 0 End If If YMoveCrd < 0 Then YMoveCrd = 0 End If If XMoveCrd > 640 Then XMoveCrd = 640 End If If YMoveCrd > 480 Then YMoveCrd = 480 End If End Sub Private Sub SuccessRunning() textRunning(TestStep).Text = "O K" textRunning(TestStep).BackColor = Color.Green End Sub Private Sub ErrorRunning() textRunning(TestStep).Text = "F A I L" textRunning(TestStep).BackColor = Color.Red End Sub Private Sub TestRunningState(stateType As Int16, bColor As Color) Dim ChangeTxb As New TextBox Dim runSwitch As Boolean = True Select Case TestStep Case TestList.Firmware If formType = formTypeList.DS_IQC Or formType = formTypeList.DS_PD Then ChangeTxb = txbDSFirm Else runSwitch = False End If Case TestList.Battey If formType = formTypeList.prod_HF Or formType = formTypeList.EF_PD Then ChangeTxb = txbBat ElseIf formType = formTypeList.DS_IQC Or formType = formTypeList.DS_PD Then ChangeTxb = txbDSBat Else runSwitch = False End If Case TestList.Temp If formType = formTypeList.prod_HF Or formType = formTypeList.EF_PD Then ChangeTxb = txbTemp ElseIf formType = formTypeList.DS_IQC Or formType = formTypeList.DS_PD Then ChangeTxb = txbDSTemp Else runSwitch = False End If Case TestList.HIFU If formType = formTypeList.prod_HF Or formType = formTypeList.EF_PD Then ChangeTxb = txbHFresult ElseIf formType = formTypeList.iqc Then ChangeTxb = txbIQCHF ElseIf formType = formTypeList.DS_IQC Or formType = formTypeList.DS_PD Then ChangeTxb = txbDSHifu Else runSwitch = False End If Case TestList.RF If formType = formTypeList.prod_RF Then ChangeTxb = txbRFresult ElseIf formType = formTypeList.altoPD Or formType = formTypeList.altoIQC Or formType = formTypeList.Company Then ChangeTxb = txbAlIQCRF ElseIf formType = formTypeList.iqc Then ChangeTxb = txbIQCRF Else runSwitch = False End If Case TestList.MC If formType = formTypeList.prod_RF Then ChangeTxb = txbMCresult Else runSwitch = False End If Case TestList.EP If formType = formTypeList.prod_RF Then ChangeTxb = txbEPresult ElseIf formType = formTypeList.altoPD Or formType = formTypeList.altoIQC Or formType = formTypeList.Company Then ChangeTxb = txbAlIQCEP ElseIf formType = formTypeList.iqc Then ChangeTxb = txbIQCEP Else runSwitch = False End If Case TestList.DataWrite If formType = formTypeList.prod_HF Or formType = formTypeList.EF_PD Then ChangeTxb = txbTDreg ElseIf formType = formTypeList.DS_IQC Or formType = formTypeList.DS_PD Then ChangeTxb = txbDSWrite Else runSwitch = False End If Case TestList.DBWrite If formType = formTypeList.prod_HF Or formType = formTypeList.EF_PD Then ChangeTxb = txbDBreg Else runSwitch = False End If Case TestList.COUNT If formType = formTypeList.DS_IQC Or formType = formTypeList.DS_PD Then ChangeTxb = txbDSWrite_2 Else runSwitch = False End If Case TestList.CSV If formType = formTypeList.DS_IQC Or formType = formTypeList.DS_PD Then ChangeTxb = txbDSWrite_3 Else runSwitch = False End If Case Else runSwitch = False End Select If runSwitch = True Then ChangeTxb.Text = testState(stateType) ChangeTxb.BackColor = bColor ChangeTxb.Refresh() End If End Sub Private Sub FailMain() txbBarcode.Text = " 불 합 격" txbBarcode.BackColor = Color.Red txbBarcode.Refresh() End Sub Private Sub SuccessMain() txbBarcode.Text = " 합 격" txbBarcode.BackColor = Color.Green txbBarcode.Refresh() End Sub Private Sub MainTextChange(ChangeText As String) txbBarcode.Text = ChangeText txbBarcode.BackColor = Color.GreenYellow txbBarcode.Refresh() End Sub Private Sub delay_run(ByVal millisecond As Double) Dim delayTime As Date = Now.AddSeconds(millisecond / 1000) Do Until Now > delayTime Application.DoEvents() Loop End Sub Private Function dbAltoSave() As Boolean If formType = formTypeList.altoPD Then MeasureTimeFunc(MeasStart) MainTextChange("DB입력중..") TestStep = TestList.DBWrite TestRunningState(testRunningList.Running, Color.Yellow) If dupDATA = 2 Then DBCmd = "UPDATE " & rfTableNow & " SET TestDate='" & NowDate & "',TestTime='" & NowTime & "',RF_R1Vrms='" & TestData.Test_RFVRMS(0) & "',RF_R1Freq='" & TestData.Test_RFFreq(0) & "',RF_R2Vrms='" & TestData.Test_RFVRMS(1) & "',RF_R2Freq='" & TestData.Test_RFFreq(1) & "',RF_R3Vrms='" & TestData.Test_RFVRMS(2) & "',RF_R3Freq='" & TestData.Test_RFFreq(2) & "',EP_R1Vpp='" & TestData.Test_EPVpp(0) & "',EP_R1Freq='" & TestData.Test_EPFreq(0) & "',EP_R1PWidth='" & TestData.Test_EPPWidth(0) & "',EP_R1NWidth='" & TestData.Test_EPNWidth(0) & "',EP_R2Vpp='" & TestData.Test_EPVpp(1) & "',EP_R2Freq='" & TestData.Test_EPFreq(1) & "',EP_R2PWidth='" & TestData.Test_EPPWidth(1) & "',EP_R2NWidth='" & TestData.Test_EPNWidth(1) & "',EP_R3Vpp='" & TestData.Test_EPVpp(2) & "',EP_R3Freq='" & TestData.Test_EPFreq(2) & "',EP_R3PWidth='" & TestData.Test_EPPWidth(2) & "',EP_R3NWidth='" & TestData.Test_EPNWidth(2) & "' WHERE PV_SN = '" & TestData.Test_Serial & "'" If TestError = False Then processNum = TestStepList.RF_ReFail Else processNum = TestStepList.Rf_ReSuc End If Else DBCmd = "INSERT INTO " & rfTableNow & "(PV_SN,TestDate,TestTime,RF_R1Vrms,RF_R1Freq,RF_R2Vrms,RF_R2Freq,RF_R3Vrms,RF_R3Freq,EP_R1Vpp,EP_R1Freq,EP_R1PWidth,EP_R1NWidth,EP_R2Vpp,EP_R2Freq,EP_R2PWidth,EP_R2NWidth,EP_R3Vpp,EP_R3Freq,EP_R3PWidth,EP_R3NWidth) VALUE ('" & TestData.Test_Serial & "','" & NowDate & "','" & NowTime & "','" & TestData.Test_RFVRMS(0) & "','" & TestData.Test_RFFreq(0) & "','" & TestData.Test_RFVRMS(1) & "','" & TestData.Test_RFFreq(1) & "','" & TestData.Test_RFVRMS(2) & "','" & TestData.Test_RFFreq(2) & "','" & TestData.Test_EPVpp(0) & "','" & TestData.Test_EPFreq(0) & "','" & TestData.Test_EPPWidth(0) & "','" & TestData.Test_EPNWidth(0) & "','" & TestData.Test_EPVpp(1) & "','" & TestData.Test_EPFreq(1) & "','" & TestData.Test_EPPWidth(1) & "','" & TestData.Test_EPNWidth(1) & "','" & TestData.Test_EPVpp(2) & "','" & TestData.Test_EPFreq(2) & "','" & TestData.Test_EPPWidth(2) & "','" & TestData.Test_EPNWidth(2) & "')" If TestError = False Then processNum = TestStepList.Rf_NewFail Else processNum = TestStepList.RF_NewSuc End If End If txbWindow.AppendText("DataBase Save FAIL" & DBCmd & "//" & processNum & vbCrLf) If DBCommand(DBCmd) = False Then GoTo dbFail End If If TDDataSet(TD_Data.TestStep) = "11" Then DBCmd = "INSERT INTO " & NonTDTableNow & "(TestStep,PV_SN,P1_DateTime,Fw_Ver,DivTemp,CtTemp,BatteryLv) VALUES('" & processNum & "','" & TestData.Test_Serial & "','" & NowDate & " " & NowTime & "','" & TestData.Test_Firmware & "','" & TestData.Test_Temperature(TempData.DivTemp) & "','" & TestData.Test_Temperature(TempData.CartTemp) & "','" & TestData.Test_Battery & "')" txbWindow.AppendText("DataBase Save FAIL" & DBCmd & vbCrLf) If DBCommand(DBCmd) = False Then GoTo dbFail End If Else Dim sucSwitch As Boolean = False For i = 1 To nudSaveCk.Value sucSwitch = False DBCmd = "UPDATE " & NonTDTableNow & " SET TestStep = '" & processNum & "', P1_DateTime = '" & NowDate & " " & NowTime & "', Fw_Ver = '" & TestData.Test_Firmware & "', DivTemp = '" & TestData.Test_Temperature(TempData.DivTemp) & "', CtTemp = '" & TestData.Test_Temperature(TempData.CartTemp) & "', BatteryLv = '" & TestData.Test_Battery & "' WHERE PV_SN = '" & TestData.Test_Serial & "'" txbWindow.AppendText("DataBase Save FAIL" & DBCmd & vbCrLf) If DBCommand(DBCmd) = False Then GoTo dbFail End If DBCmd = "SELECT TestStep FROM " & NonTDTableNow & " WHERE PV_SN = '" & TestData.Test_Serial & "'" Dim tdState As Int16 = DBQueryScalar(DBCmd) txbWindow.AppendText("DataBase Save FAIL" & DBCmd & "//" & tdState & "//" & processNum & vbCrLf) If tdState = processNum Then sucSwitch = True Exit For End If Next If sucSwitch = False Then GoTo dbFail End If End If txbWindow.AppendText("DataBase Save Full Time : " & MeasureTimeFunc(MeasEnd) & vbCrLf) TestRunningState(testRunningList.Success, Color.Green) End If Return True dbFail: txbWindow.AppendText("DataBase Save FAIL" & vbCrLf) MeasureTimeFunc(MeasEnd) TestRunningState(testRunningList.Fail, Color.Red) TestError = False Return False End Function Private Function dbRFSave() As Boolean MeasureTimeFunc(MeasStart) MainTextChange("DB입력중..") TestStep = TestList.DBWrite TestRunningState(testRunningList.Running, Color.Yellow) Dim sucSwitch As Boolean = False If dupDATA = 2 Then DBCmd = "UPDATE " & rfTableNow & " SET TestDate='" & NowDate & "',TestTime='" & NowTime & "',RF_R1Vrms='" & TestData.Test_RFVRMS(0) & "',RF_R1Freq='" & TestData.Test_RFFreq(0) & "',RF_R2Vrms='" & TestData.Test_RFVRMS(1) & "',RF_R2Freq='" & TestData.Test_RFFreq(1) & "',RF_R3Vrms='" & TestData.Test_RFVRMS(2) & "',RF_R3Freq='" & TestData.Test_RFFreq(2) & "',MC_R1Wave='" & TestData.Test_MCWidth(0) & "',MC_R1Vpp='" & TestData.Test_MCVpp(0) & "',MC_R1Freq='" & TestData.Test_MCFreq(0) & "',MC_R2Wave='" & TestData.Test_MCWidth(1) & "',MC_R2Vpp='" & TestData.Test_MCVpp(0) & "',MC_R2Freq='" & TestData.Test_MCFreq(0) & "',EP_R1Vpp='" & TestData.Test_EPVpp(0) & "',EP_R1Freq='" & TestData.Test_EPFreq(0) & "',EP_R1PWidth='" & TestData.Test_EPPWidth(0) & "',EP_R1NWidth='" & TestData.Test_EPNWidth(0) & "',EP_R2Vpp='" & TestData.Test_EPVpp(1) & "',EP_R2Freq='" & TestData.Test_EPFreq(1) & "',EP_R2PWidth='" & TestData.Test_EPPWidth(1) & "',EP_R2NWidth='" & TestData.Test_EPNWidth(1) & "',EP_R3Vpp='" & TestData.Test_EPVpp(2) & "',EP_R3Freq='" & TestData.Test_EPFreq(2) & "',EP_R3PWidth='" & TestData.Test_EPPWidth(2) & "',EP_R3NWidth='" & TestData.Test_EPNWidth(2) & "' WHERE PV_SN = '" & TestData.Test_Serial & "'" If TestError = False Then processNum = TestStepList.RF_ReFail Else processNum = TestStepList.RF_ReSuc End If Else DBCmd = "INSERT INTO " & rfTableNow & "(PV_SN,TestDate,TestTime,RF_R1Vrms,RF_R1Freq,RF_R2Vrms,RF_R2Freq,RF_R3Vrms,RF_R3Freq,MC_R1Wave,MC_R1Vpp,MC_R1Freq,MC_R2Wave,MC_R2Vpp,MC_R2Freq,EP_R1Vpp,EP_R1Freq,EP_R1PWidth,EP_R1NWidth,EP_R2Vpp,EP_R2Freq,EP_R2PWidth,EP_R2NWidth,EP_R3Vpp,EP_R3Freq,EP_R3PWidth,EP_R3NWidth) VALUE ('" & TestData.Test_Serial & "','" & NowDate & "','" & NowTime & "','" & TestData.Test_RFVRMS(0) & "','" & TestData.Test_RFFreq(0) & "','" & TestData.Test_RFVRMS(1) & "','" & TestData.Test_RFFreq(1) & "','" & TestData.Test_RFVRMS(2) & "','" & TestData.Test_RFFreq(2) & "','" & TestData.Test_MCWidth(0) & "','" & TestData.Test_MCVpp(0) & "','" & TestData.Test_MCFreq(0) & "','" & TestData.Test_MCWidth(1) & "','" & TestData.Test_MCVpp(1) & "','" & TestData.Test_MCFreq(1) & "','" & TestData.Test_EPVpp(0) & "','" & TestData.Test_EPFreq(0) & "','" & TestData.Test_EPPWidth(0) & "','" & TestData.Test_EPNWidth(0) & "','" & TestData.Test_EPVpp(1) & "','" & TestData.Test_EPFreq(1) & "','" & TestData.Test_EPPWidth(1) & "','" & TestData.Test_EPNWidth(1) & "','" & TestData.Test_EPVpp(2) & "','" & TestData.Test_EPFreq(2) & "','" & TestData.Test_EPPWidth(2) & "','" & TestData.Test_EPNWidth(2) & "')" If TestError = False Then processNum = TestStepList.RF_NewFail Else processNum = TestStepList.RF_NewSuc End If End If If DBCommand(DBCmd) = False Then GoTo dbFail End If For i = 1 To nudSaveCk.Value sucSwitch = False DBCmd = "UPDATE " & TDTableNow & " SET TestStep='" & processNum & "' WHERE PV_SN = '" & TestData.Test_Serial & "'" If DBCommand(DBCmd) = False Then GoTo dbFail End If DBCmd = "SELECT TestStep FROM " & TDTableNow & " WHERE PV_SN = '" & TestData.Test_Serial & "'" Dim tdState As Int16 = DBQueryScalar(DBCmd) If tdState = processNum Then sucSwitch = True Exit For End If Next If sucSwitch = False Then GoTo dbFail End If txbWindow.AppendText("DataBase Save Full Time : " & MeasureTimeFunc(MeasEnd) & vbCrLf) TestRunningState(testRunningList.Success, Color.Green) Return True dbFail: txbWindow.AppendText("DataBase Save FAIL" & vbCrLf) MeasureTimeFunc(MeasEnd) TestRunningState(testRunningList.Fail, Color.Red) TestError = False Return False End Function Private Function dbHFSave() As Boolean MeasureTimeFunc(MeasStart) MainTextChange("DB입력중..") TestStep = TestList.DBWrite TestRunningState(testRunningList.Running, Color.Yellow) processNum = 0 If dupDATA = 1 Then DBCmd = "UPDATE " & hfTableNow & " SET TestDate = '" & NowDate & "', TestTime = '" & NowTime & "', FW_Ver = '" & TestData.Test_Firmware & "', BatteryLv = '" & TestData.Test_Battery & "', DivTemp = '" & TestData.Test_Temperature(TempData.DivTemp) & "', CtTemp = '" & TestData.Test_Temperature(TempData.CartTemp) & "', HF_R1Value = '" & TestData.Test_HFData(HifuTest_Step.Step1) & "', HF_R2Value = '" & TestData.Test_HFData(HifuTest_Step.Step2) & "', HF_R3Value = '" & TestData.Test_HFData(HifuTest_Step.step3) & "' WHERE PV_SN = '" & TestData.Test_Serial & "'" If TestError = False Then processNum = TestStepList.HF_ReFail Else processNum = TestStepList.HF_ReSuc End If Else DBCmd = "INSERT INTO " & hfTableNow & "(PV_SN,TestDate,TestTime,FW_Ver,BatteryLv,DivTemp,CtTemp,HF_R1Value,HF_R2Value,HF_R3Value) VALUE('" & TestData.Test_Serial & "','" & NowDate & "','" & NowTime & "','" & TestData.Test_Firmware & "','" & TestData.Test_Battery & "','" & TestData.Test_Temperature(TempData.DivTemp) & "','" & TestData.Test_Temperature(TempData.CartTemp) & "','" & TestData.Test_HFData(HifuTest_Step.Step1) & "','" & TestData.Test_HFData(HifuTest_Step.Step2) & "','" & TestData.Test_HFData(HifuTest_Step.step3) & "')" If TestError = False Then processNum = TestStepList.HF_NEWFail Else processNum = TestStepList.HF_NewSuc End If End If If DBCommand(DBCmd) = False Then GoTo dbFail End If If formType <> formTypeList.DS_PD And formType <> formTypeList.DS_IQC And formType <> formTypeList.iqc And formType <> formTypeList.altoIQC And formType <> formTypeList.altoPD Then Dim sucSwitch As Boolean = False For i = 1 To nudSaveCk.Value sucSwitch = False If rdbEFPD.Checked = True Then DBCmd = "UPDATE " & TDTableNow & " SET TestStep='" & processNum & "', Ct_Model='EFFECT', Ct_Type='SET',Ct_Frequency='" & TDDataSet(TD_Data.Freq) & "',P1_Date='" & NowDate & "',P1_Time='" & NowTime & "',P1_Model='EFFECT',P1_CartType='SET',P1_Frequency='" & TDDataSet(TD_Data.Freq) & "' WHERE PV_SN = '" & TestData.Test_Serial & "'" Else DBCmd = "UPDATE " & TDTableNow & " SET TestStep='" & processNum & "', Ct_Model='MAXIMUM', Ct_Type='SET',Ct_Frequency='" & TDDataSet(TD_Data.Freq) & "',P1_Date='" & NowDate & "',P1_Time='" & NowTime & "',P1_Model='MAXIMUM',P1_CartType='SET',P1_Frequency='" & TDDataSet(TD_Data.Freq) & "' WHERE PV_SN = '" & TestData.Test_Serial & "'" End If If DBCommand(DBCmd) = False Then GoTo dbFail End If DBCmd = "SELECT TestStep FROM " & TDTableNow & " WHERE PV_SN = '" & TestData.Test_Serial & "'" Dim tdState As String = DBQueryScalar(DBCmd) If tdState = processNum Then sucSwitch = True Exit For End If Next If sucSwitch = False Then GoTo dbFail End If End If txbWindow.AppendText("DataBase Save Full Time : " & MeasureTimeFunc(MeasEnd) & vbCrLf) TestRunningState(testRunningList.Success, Color.Green) Return True dbFail: txbWindow.AppendText("DataBase Save FAIL" & vbCrLf) MeasureTimeFunc(MeasEnd) TestRunningState(testRunningList.Fail, Color.Red) TestError = False Return False End Function Private Function DBSave() As Boolean MeasureTime(MeasStart) Dim NowDate As String = Format(Now, "yyyy") & "-" & Format(Now, "MM") & "-" & Format(Now, "dd") Dim NowTime As String = Format(Now, "HH") & ":" & Format(Now, "mm") & ":" & Format(Now, "ss") If dupDATA = 1 Or dupDATA = 3 Then DBCmd = "UPDATE " & hfTableNow & " SET TestDate = '" & NowDate & "', TestTime = '" & NowTime & "', FW_Ver = '" & TestData.Test_Firmware & "', BatteryLv = '" & TestData.Test_Battery & "', DivTemp = '" & TestData.Test_Temperature(TempData.DivTemp) & "', CtTemp = '" & TestData.Test_Temperature(TempData.CartTemp) & "', HF_R1Value = '" & TestData.Test_HFData(HifuTest_Step.Step1) & "', HF_R2Value = '" & TestData.Test_HFData(HifuTest_Step.Step2) & "', HF_R3Value = '" & TestData.Test_HFData(HifuTest_Step.step3) & "' WHERE PV_SN = '" & TestData.Test_Serial & "'" Else DBCmd = "INSERT INTO " & hfTableNow & "(PV_SN,TestDate,TestTime,FW_Ver,BatteryLv,DivTemp,CtTemp,HF_R1Value,HF_R2Value,HF_R3Value) VALUE('" & TestData.Test_Serial & "','" & NowDate & "','" & NowTime & "','" & TestData.Test_Firmware & "','" & TestData.Test_Battery & "','" & TestData.Test_Temperature(TempData.DivTemp) & "','" & TestData.Test_Temperature(TempData.CartTemp) & "','" & TestData.Test_HFData(HifuTest_Step.Step1) & "','" & TestData.Test_HFData(HifuTest_Step.Step2) & "','" & TestData.Test_HFData(HifuTest_Step.step3) & "')" End If If dupDATA = 2 Or dupDATA = 3 Then DBCmd = "UPDATE " & rfTableNow & " SET TestDate='" & NowDate & "',TestTime='" & NowTime & "',RF_R1Vrms='" & TestData.Test_RFVRMS(0) & "',RF_R1Freq='" & TestData.Test_RFFreq(0) & "',RF_R2Vrms='" & TestData.Test_RFVRMS(1) & "',RF_R2Freq='" & TestData.Test_RFFreq(1) & "',RF_R3Vrms='" & TestData.Test_RFVRMS(2) & "',RF_R3Freq='" & TestData.Test_RFFreq(2) & "',MC_R1Wave='" & TestData.Test_MCWidth(0) & "',MC_R1Vpp='" & TestData.Test_MCVpp(0) & "',MC_R1Freq='" & TestData.Test_MCFreq(0) & "',MC_R2Wave='" & TestData.Test_MCWidth(1) & "',MC_R2Vpp='" & TestData.Test_MCVpp(0) & "',MC_R2Freq='" & TestData.Test_MCFreq(0) & "',EP_R1Vpp='" & TestData.Test_EPVpp(0) & "',EP_R1Freq='" & TestData.Test_EPFreq(0) & "',EP_R1PWidth='" & TestData.Test_EPPWidth(0) & "',EP_R1NWidth='" & TestData.Test_EPNWidth(0) & "',EP_R2Vpp='" & TestData.Test_EPVpp(1) & "',EP_R2Freq='" & TestData.Test_EPFreq(1) & "',EP_R2PWidth='" & TestData.Test_EPPWidth(1) & "',EP_R2NWidth='" & TestData.Test_EPNWidth(1) & "',EP_R3Vpp='" & TestData.Test_EPVpp(2) & "',EP_R3Freq='" & TestData.Test_EPFreq(2) & "',EP_R3PWidth='" & TestData.Test_EPPWidth(2) & "',EP_R3NWidth='" & TestData.Test_EPNWidth(2) & "' WHERE PV_SN = '" & TestData.Test_Serial & "'" Else DBCmd = "INSERT INTO " & rfTableNow & "(PV_SN,TestDate,TestTime,RF_R1Vrms,RF_R1Freq,RF_R2Vrms,RF_R2Freq,RF_R3Vrms,RF_R3Freq,MC_R1Wave,MC_R1Vpp,MC_R1Freq,MC_R2Wave,MC_R2Vpp,MC_R2Freq,EP_R1Vpp,EP_R1Freq,EP_R1PWidth,EP_R1NWidth,EP_R2Vpp,EP_R2Freq,EP_R2PWidth,EP_R2NWidth,EP_R3Vpp,EP_R3Freq,EP_R3PWidth,EP_R3NWidth) VALUE ('" & TestData.Test_Serial & "','" & NowDate & "','" & NowTime & "','" & TestData.Test_RFVRMS(0) & "','" & TestData.Test_RFFreq(0) & "','" & TestData.Test_RFVRMS(1) & "','" & TestData.Test_RFFreq(1) & "','" & TestData.Test_RFVRMS(2) & "','" & TestData.Test_RFFreq(2) & "','" & TestData.Test_MCWidth(0) & "','" & TestData.Test_MCVpp(0) & "','" & TestData.Test_MCFreq(0) & "','" & TestData.Test_MCWidth(1) & "','" & TestData.Test_MCVpp(1) & "','" & TestData.Test_MCFreq(1) & "','" & TestData.Test_EPVpp(0) & "','" & TestData.Test_EPFreq(0) & "','" & TestData.Test_EPPWidth(0) & "','" & TestData.Test_EPNWidth(0) & "','" & TestData.Test_EPVpp(1) & "','" & TestData.Test_EPFreq(1) & "','" & TestData.Test_EPPWidth(1) & "','" & TestData.Test_EPNWidth(1) & "','" & TestData.Test_EPVpp(2) & "','" & TestData.Test_EPFreq(2) & "','" & TestData.Test_EPPWidth(2) & "','" & TestData.Test_EPNWidth(2) & "')" End If For i = 0 To nudSaveCk.Value - 1 If rdbEFPD.Checked = True Then DBCmd = "Update " & TDTableNow & " SET TestStep = '" & SuccessCode & "', Ct_Model = 'EFFECT', Ct_Type = 'SET',Ct_Frequency = '" & TDDataSet(TD_Data.Freq) & "', P1_Date = '" & NowDate & "', P1_Time = '" & NowTime & "', P1_Model = '" & TestModel_EF & "', P1_CartType = '" & TestType & "', P1_Frequency = '" & TDDataSet(TD_Data.Freq) & "' WHERE PV_SN = '" & TestData.Test_Serial & "'" Else DBCmd = "Update " & TDTableNow & " SET TestStep = '" & SuccessCode & "', Ct_Model = 'MAXIMUM', Ct_Type = 'SET',Ct_Frequency = '" & TDDataSet(TD_Data.Freq) & "', P1_Date = '" & NowDate & "', P1_Time = '" & NowTime & "', P1_Model = '" & TestModel & "', P1_CartType = '" & TestType & "', P1_Frequency = '" & TDDataSet(TD_Data.Freq) & "' WHERE PV_SN = '" & TestData.Test_Serial & "'" End If If DBCommand(DBCmd) = False Then txbWindow.AppendText("DataBase Save : FAIL" & vbCrLf) Return True End If DBCmd = "SELECT TestStep FROM " & TDTableNow & " WHERE PV_SN = '" & TestData.Test_Serial & "'" Dim tdState As Int16 = DBQueryScalar(DBCmd) If tdState = SuccessCode Then Exit For End If Next txbWindow.AppendText("[" & MeasureTime(MeasEnd) & "ms] DataBase Save : Success" & vbCrLf) MeasureTime(MeasStart) Dim csvData As String = "" & NowDate & "," & NowTime & "," & TestData.Test_Serial & "," & TestData.Test_Firmware & "," & TestData.Test_Battery & "," & TestData.Test_Temperature(TempData.DivTemp) & "," & TestData.Test_Temperature(TempData.CartTemp) & "," & TestData.Test_HFData(HifuTest_Step.Step1) & "," & TestData.Test_HFInterval(HifuTest_Diff.Step1_2) & "," & TestData.Test_HFData(HifuTest_Step.Step2) & "," & TestData.Test_HFInterval(HifuTest_Diff.Step2_3) & "," & TestData.Test_HFData(HifuTest_Step.step3) & "," & TestData.Test_RFVRMS(0) & "," & TestData.Test_RFFreq(0) & "," & TestData.Test_RFVRMS(1) & "," & TestData.Test_RFFreq(1) & "," & TestData.Test_RFVRMS(2) & "," & TestData.Test_RFFreq(2) & "," & TestData.Test_MCWidth(0) & "," & TestData.Test_MCVpp(0) & "," & TestData.Test_MCWidth(1) & "," & TestData.Test_MCVpp(1) & "," & TestData.Test_EPVpp(0) & "," & TestData.Test_EPFreq(0) & "," & TestData.Test_EPPWidth(0) & "," & TestData.Test_EPNWidth(0) & "," & TestData.Test_EPVpp(1) & "," & TestData.Test_EPFreq(1) & "," & TestData.Test_EPPWidth(1) & "," & TestData.Test_EPNWidth(1) & "," & TestData.Test_EPVpp(2) & "," & TestData.Test_EPFreq(2) & "," & TestData.Test_EPPWidth(2) & "," & TestData.Test_EPNWidth(2) & "" If Save_Csv(NowDate & "," & NowTime & "," & csvData) Then txbWindow.AppendText("CSV Data Save : FAIL" & vbCrLf) Return True End If txbWindow.AppendText("[" & MeasureTime(MeasEnd) & "ms] CSV Data Save : Success" & vbCrLf) Return False End Function Private Sub btnEnd_Click(sender As Object, e As EventArgs) Handles btnEnd.Click End End Sub Private Sub btnSetup_Click(sender As Object, e As EventArgs) Handles btnSetup.Click pnOption.Location = New Drawing.Point(6, 1) pnMain.Visible = False pnOption.Visible = True End Sub Private Sub btnOpExit_Click(sender As Object, e As EventArgs) Handles btnOpExit.Click pnMain.Location = New Drawing.Point(6, 1) pnMain.Visible = True pnOption.Visible = False loadLocalFile() Data_Setting() changeMode() txbBarcode.ReadOnly = False txbBarcode.Focus() End Sub Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click ConfigIniSave() End Sub Private Sub ConfigIniSave() Dim FileName As String, TrigType As String, UnitType As String, RegText As String Dim comtext As String = "" Dim ObjWriter As StreamWriter On Error GoTo WR_File_Error Dim FilePath As String = System.AppDomain.CurrentDomain.BaseDirectory() & "\Config" If Dir(FilePath, vbDirectory) = "" Then MkDir(FilePath) End If For i = 0 To DataSaveCount FileName = FilePath & "\" & DataSaveName(i) & ".ini" Select Case i Case 0 comtext = txbSpan.Text & "," & txbRBW.Text & "," & nudHFCount.Text & "," & nudHFRun.Text & "," & nudHFwait.Text & "," & txbFrStep1.Text & "," & txbFrStep2.Text & "," & txbFrStep3.Text & "," & txbHFStDelay.Text & "," & txbHFLowShot.Text & "," & txbHFReCnt.Text & "," & txbHFeffect.Text & "," & txbHFReCkCnt.Text & "," & txbDSDelay.Text & "," & txbHFRefLev.Text Case 1 If rdbRFTrAuto.Checked Then TrigType = rdbRFTrAuto.Text Else TrigType = rdbRFtrNormal.Text End If If rdbRFUnitV.Checked Then UnitType = rdbRFUnitV.Text Else UnitType = rdbRFUnitA.Text End If comtext = TrigType & "," & txbRFtime.Text & "," & UnitType & "," & nudRFScale.Text & "," & txbRFDelay.Text & "," & nudRFRun.Text & "," & nudRFCh.Value & "," & nudRFTrgLv.Value & "," & txbRFWdtime.Text & "," & txbRFWdDelay.Text & "," & nudRFWdTrgLv.Value & "," & nudRFWdRun.Value Case 2 If rdbMCTrAuto.Checked Then TrigType = rdbMCTrAuto.Text Else TrigType = rdbMCtrNormal.Text End If If rdbMCUnitV.Checked Then UnitType = rdbMCUnitV.Text Else UnitType = rdbMCUnitA.Text End If comtext = TrigType & "," & txbMCFVtime.Text & "," & UnitType & "," & nudMCScale.Text & "," & txbMCFVDelay.Text & "," & nudMCFVRun.Text & "," & nudMCCh.Value & "," & nudMCFVTrgLv.Value & "," & txbMCWdtime.Text & "," & txbMCWdDelay.Text & "," & nudMCWdTrgLv.Value & "," & nudMCWdRun.Value Case 3 If rdbEPTrAuto.Checked Then TrigType = rdbEPTrAuto.Text Else TrigType = rdbEPtrNormal.Text End If If rdbEPUnitV.Checked Then UnitType = rdbEPUnitV.Text Else UnitType = rdbEPUnitA.Text End If comtext = TrigType & "," & txbEPFVtime.Text & "," & UnitType & "," & nudEPScale.Text & "," & txbEPFVDelay.Text & "," & nudEPFVRun.Text & "," & txbEPFreq1.Text & "," & txbEPFreq2.Text & "," & txbEPFreq3.Text & "," & nudEPCh.Value & "," & nudEPFVTrgLv.Value Case 4 comtext = txbFirmVer.Text & "," & txbBatMin.Text & "," & txbBatMax.Text & "," & txbTpDevMin.Text & "," & txbTpDevMax.Text _ & "," & txbTpCartMin.Text & "," & txbTpCartMax.Text & "," & txbHFOutMin.Text & "," & txbHFOutMax.Text & "," & txbHFMin.Text & "," & txbRFVRmin1.Text & "," & txbRFVRmax1.Text & "," & txbRFVRmin2.Text & "," & txbRFVRmax2.Text & "," & txbRFVRmin3.Text & "," & txbRFVRmax3.Text & "," & txbMCVPmin.Text & "," & txbMCVPmax.Text & "," & txbMCDYmin.Text & "," & txbMCDYmax.Text & "," & txbMCFrmin.Text & "," & txbMCFrmax.Text & "," & txbEPVPmin.Text & "," & txbEPVPmax.Text & "," & txbEPDYmin1.Text & "," & txbEPDYmax1.Text & "," & txbEPDYmin2.Text & "," & txbEPDYmax2.Text & "," & txbEPDYmin3.Text & "," & txbEPDYmax3.Text & "," & txbRHueMin.Text & "," & txbRHueMax.Text _ & "," & txbRSatMin.Text & "," & txbRSatMax.Text & "," & txbRBgtMin.Text & "," & txbRBgtMax.Text & "," & txbYHueMin1.Text & "," & txbYHueMax1.Text & "," & txbYSatMin1.Text & "," & txbYSatMax1.Text & "," & txbYBgtMin1.Text & "," & txbYBgtMax1.Text & "," & txbFirmVer_AL.Text & "," & txbTpDevMin_AL.Text & "," & txbTpDevMax_AL.Text & "," & txbTpCartMin_AL.Text & "," & txbTpCartMax_AL.Text & "," & txbBatMin_AL.Text & "," & txbBatMax_AL.Text & "," & txbRFVRmin1_AL.Text & "," & txbRFVRmax1_AL.Text & "," & txbRFVRmin2_AL.Text & "," & txbRFVRmax2_AL.Text & "," & txbRFVRmin3_AL.Text & "," & txbRFVRmax3_AL.Text & "," & txbEPVPmin_AL.Text & "," & txbEPVPmax_AL.Text & "," & txbEPDYmin1_AL.Text & "," & txbEPDYmax1_AL.Text & "," & txbEPDYmin2_AL.Text & "," & txbEPDYmax2_AL.Text & "," & txbEPDYmin3_AL.Text & "," & txbEPDYmax3_AL.Text & "," & txbBDVRmin1_AL.Text & "," & txbBDVRmax1_AL.Text & "," & txbBDVRmin2_AL.Text & "," & txbBDVRmax2_AL.Text & "," & txbBDVRmin3_AL.Text & "," & txbBDVRmax3_AL.Text & "," & txbDSfw_st.Text & "," & txbDSbat_stMin.Text & "," & txbDSbat_stMax.Text & "," & txbDSTmpDe_stMin.Text & "," & txbDSTmpDe_stMax.Text & "," & txbDSTmpCa_stMin.Text & "," & txbDSTmpCa_stMax.Text & "," & txbDShfOut_stMin.Text & "," & txbDShfOut_stMax.Text & "," & txbDShfDif_st.Text & "," & txbDSSub_Min.Text & "," & txbDSSub_Max.Text Case 5 For cnt = 0 To dgvID.Rows.Count - 2 If cnt = 0 Then comtext = dgvID.Rows(cnt).Cells(0).Value & "/" & dgvID.Rows(cnt).Cells(1).Value & "/" & dgvID.Rows(cnt).Cells(2).Value Else comtext = comtext & "," & dgvID.Rows(cnt).Cells(0).Value & "/" & dgvID.Rows(cnt).Cells(1).Value & "/" & dgvID.Rows(cnt).Cells(2).Value End If Next Case 6 If cbbSpecID.SelectedIndex = -1 And cbbScopeID.SelectedIndex = -1 Then comtext = "" Else comtext = cbbScopeID.SelectedItem & "," & cbbSpecID.SelectedItem End If Case 7 Dim ImgProcess As String If rdbimgSave.Checked = True Then ImgProcess = ImgSave Else ImgProcess = ImgCvt End If comtext = cbbWebCam.SelectedItem & "," & txbCamDelay.Text & "," & txbRedCdn_X1.Text & "," & txbRedCdn_Y1.Text & "," & txbYelCdn_X1.Text & "," & txbYelCdn_Y1.Text & "," & txbRedCdn_X2.Text & "," & txbRedCdn_Y2.Text & "," & txbYelCdn_X2.Text & "," & txbYelCdn_Y2.Text & "," & txbAround.Text & "," & txbInc.Text & "," & ImgProcess & "," & nudLEDStart.Value & "," & nudLedRe.Value Case 8 comtext = txbJgTimeout.Text & "," & txbJgDelay.Text & "," & txbDTTimeout.Text Case 9 comtext = cbbSerial.SelectedItem & "," & cbbJgBaudRate.SelectedItem & "," & ckbScopeZ.Checked Case 10 comtext = nudStepDelay.Value & "," & nudSpTimeout.Value & "," & nudScTimeout.Value & "," & nudSaveCk.Value & "," & formType & "," & nudEPRe.Value & "," & nudOnRe.Value & "," & nudJigNum.Value End Select File.Delete(FileName) ObjWriter = New StreamWriter(FileName, True) ObjWriter.Flush() ObjWriter.WriteLine(comtext) ObjWriter.Close() Next MsgBox("Save Success!!", vbInformation) Exit Sub WR_File_Error: MsgBox("Config Save Fail!", vbCritical) End Sub Private Sub modeConfigSave() If modeSaveSwitch = True Then Dim FileName As String, TrigType As String, UnitType As String, RegText As String Dim comtext As String = "" Dim ObjWriter As StreamWriter On Error GoTo WR_File_Error Dim FilePath As String = System.AppDomain.CurrentDomain.BaseDirectory() & "\Config" If Dir(FilePath, vbDirectory) = "" Then MkDir(FilePath) End If FileName = FilePath & "\" & DataSaveName(10) & ".ini" comtext = nudStepDelay.Value & "," & nudSpTimeout.Value & "," & nudScTimeout.Value & "," & nudSaveCk.Value & "," & formType & "," & nudEPRe.Value & "," & nudOnRe.Value File.Delete(FileName) ObjWriter = New StreamWriter(FileName, True) ObjWriter.Flush() ObjWriter.WriteLine(comtext) ObjWriter.Close() End If Exit Sub WR_File_Error: MsgBox("Config Save Fail!", vbCritical) End Sub Private Sub ConfigIniLoad() Dim FileName As String, ConfigStr As String, LoadData As String Dim ObjReader As StreamReader Dim FilePath As String = System.AppDomain.CurrentDomain.BaseDirectory() & "\config" If Dir(FilePath, vbDirectory) = "" Then MkDir(FilePath) End If SaveFileCK() For i = 0 To DataSaveCount FileName = FilePath & "\" & DataSaveName(i) & ".ini" If File.Exists(FileName) Then ObjReader = New StreamReader(FileName, True) ConfigStr = ObjReader.ReadLine ObjReader.Close() For cnt = 0 To UBound(Split(ConfigStr, ",")) If InStr(ConfigStr, ",") > 0 Then LoadData = Mid(ConfigStr, 1, InStr(ConfigStr, ",") - 1) ConfigStr = Mid(ConfigStr, InStr(ConfigStr, ",") + 1, ConfigStr.Length) Else LoadData = ConfigStr End If Select Case i Case 0 HF_LoadTxb(cnt, LoadData) Case 1 RF_LoadTxb(cnt, LoadData) Case 2 MC_LoadTxb(cnt, LoadData) Case 3 EP_LoadTxb(cnt, LoadData) Case 4 Standard_LoadTxb(cnt, LoadData) Case 5 EquipList_LoadTxb(LoadData) Case 6 Equip_LoadTxb(cnt, LoadData) Case 7 LED_LoadTxb(cnt, LoadData) Case 8 JIG_LoadTxb(cnt, LoadData) Case 9 Comport_LoadTxb(cnt, LoadData) Case 10 ETC_LoadTxb(cnt, LoadData) End Select Next End If Next End Sub Private Sub SaveFileCK() DataSaveName(0) = "HF_Config" DataSaveName(1) = "RF_Config" DataSaveName(2) = "MC_Config" DataSaveName(3) = "EP_Config" DataSaveName(4) = "Standard_Config" DataSaveName(5) = "EquipList_Config" DataSaveName(6) = "Equip_Config" DataSaveName(7) = "LED_Config" DataSaveName(8) = "JIG_Config" DataSaveName(9) = "Comport_Config" DataSaveName(10) = "ETC_Config" End Sub Private Sub DataTextReset() txbTDSN.Text = "대기" txbDate.Text = "대기" txbFreq.Text = "대기" txbGrade.Text = "대기" txbVer.Text = "대기" txbVolt.Text = "대기" txbDevTmp.Text = "대기" txbCartTmp.Text = "대기" End Sub Private Sub DataColorReset() txbTDSN.BackColor = Color.White txbDate.BackColor = Color.White txbFreq.BackColor = Color.White txbGrade.BackColor = Color.White txbVer.BackColor = Color.White txbVolt.BackColor = Color.White txbDevTmp.BackColor = Color.White txbCartTmp.BackColor = Color.White End Sub Private Sub DataRefresh() txbTDSN.Refresh() txbDate.Refresh() txbFreq.Refresh() txbGrade.Refresh() txbVer.Refresh() txbVolt.Refresh() txbDevTmp.Refresh() txbCartTmp.Refresh() End Sub Private Sub StepTextReset() txbStep1.Text = "대기" txbStep2.Text = "대기" txbStep3.Text = "대기" txbStep4.Text = "대기" txbStep5.Text = "대기" txbStep6.Text = "대기" txbStep7.Text = "대기" txbStep8.Text = "대기" txbStep9.Text = "대기" txbStep10.Text = "대기" End Sub Private Sub StepColorReset() txbStep1.BackColor = Color.White txbStep2.BackColor = Color.White txbStep3.BackColor = Color.White txbStep4.BackColor = Color.White txbStep5.BackColor = Color.White txbStep6.BackColor = Color.White txbStep7.BackColor = Color.White txbStep8.BackColor = Color.White txbStep9.BackColor = Color.White txbStep10.BackColor = Color.White End Sub Private Sub StepRefresh() txbStep1.Refresh() txbStep2.Refresh() txbStep3.Refresh() txbStep4.Refresh() txbStep5.Refresh() txbStep6.Refresh() txbStep7.Refresh() txbStep8.Refresh() txbStep9.Refresh() txbStep10.Refresh() End Sub Private Sub SaveDataReset() TestData.Test_Serial = "" TestData.Test_Firmware = "" TestData.Test_Battery = 0 ReDim TestData.Test_Temperature(0) ReDim TestData.Test_Temperature(TempData.CPUTemp) ReDim TestData.Test_HFData(HifuTest_Step.step5) ReDim TestData.Test_HFInterval(HifuTest_Step.step3 - 1) ReDim TestData.Test_RFVRMS(RFTest_Count) ReDim TestData.Test_RFFreq(RFTest_Count) ReDim TestData.Test_MCVpp(MCTest_Count) ReDim TestData.Test_MCWidth(MCTest_Count) ReDim TestData.Test_MCFreq(MCTest_Count) ReDim TestData.Test_EPVpp(EPTest_Count) ReDim TestData.Test_EPFreq(EPTest_Count) ReDim TestData.Test_EPPWidth(EPTest_Count) ReDim TestData.Test_EPNWidth(EPTest_Count) End Sub Private Sub HF_LoadTxb(cnt As Int16, LoadData As String) Select Case cnt Case 0 txbSpan.Text = LoadData Case 1 txbRBW.Text = LoadData Case 2 nudHFCount.Text = LoadData Case 3 nudHFRun.Text = LoadData Case 4 nudHFwait.Text = LoadData Case 5 txbFrStep1.Text = LoadData Case 6 txbFrStep2.Text = LoadData Case 7 txbFrStep3.Text = LoadData Case 8 txbHFStDelay.Text = LoadData Case 9 txbHFLowShot.Text = LoadData Case 10 txbHFReCnt.Text = LoadData Case 11 txbHFeffect.Text = LoadData Case 12 txbHFReCkCnt.Text = LoadData Case 13 txbDSDelay.Text = LoadData Case 14 txbHFRefLev.Text = LoadData Case Else MsgBox("HF_잘못된 데이터가 존재합니다.", vbExclamation) End Select End Sub Private Sub Comport_LoadTxb(cnt As Int16, LoadData As String) Select Case cnt Case 0 LoadComportName() For i = 0 To cbbSerial.Items.Count - 1 cbbSerial.SelectedIndex = i If cbbSerial.SelectedItem = LoadData Then ParaComport = LoadData Exit For Else cbbSerial.SelectedIndex = -1 End If Next btnSerial.Text = "스캔" Case 1 For i = 0 To cbbJgBaudRate.Items.Count - 1 cbbJgBaudRate.SelectedIndex = i If cbbJgBaudRate.SelectedItem = LoadData Then Exit For Else cbbJgBaudRate.SelectedIndex = -1 End If Next If ParaComport <> "" And LoadData <> "" Then OpenSerial(LoadData) End If Case 2 ckbScopeZ.Checked = LoadData Case Else MsgBox("Comport_잘못된 데이터가 존재합니다.", vbExclamation) End Select End Sub Private Sub ETC_LoadTxb(cnt As Int16, LoadData As String) Select Case cnt Case 0 nudStepDelay.Value = LoadData Case 1 nudSpTimeout.Value = LoadData Case 2 nudScTimeout.Text = LoadData Case 3 nudSaveCk.Value = LoadData Case 4 If LoadData = formTypeList.full Then rdbAll.Checked = True rdbHF.Checked = False rdbEFPD.Checked = False rdbRFMCEP.Checked = False rdbIQC.Checked = False rdbAltoIqc.Checked = False rdbAltoPD.Checked = False rdbDsIQC.Checked = False rdbDsPD.Checked = False ElseIf LoadData = formTypeList.prod_HF Then rdbAll.Checked = False rdbHF.Checked = True rdbEFPD.Checked = False rdbRFMCEP.Checked = False rdbIQC.Checked = False rdbAltoIqc.Checked = False rdbAltoPD.Checked = False rdbDsIQC.Checked = False rdbDsPD.Checked = False ElseIf LoadData = formTypeList.prod_RF Then rdbAll.Checked = False rdbHF.Checked = False rdbEFPD.Checked = False rdbRFMCEP.Checked = True rdbIQC.Checked = False rdbAltoIqc.Checked = False rdbAltoPD.Checked = False rdbDsIQC.Checked = False rdbDsPD.Checked = False ElseIf LoadData = formTypeList.iqc Then rdbAll.Checked = False rdbHF.Checked = False rdbEFPD.Checked = False rdbRFMCEP.Checked = False rdbIQC.Checked = True rdbAltoIqc.Checked = False rdbAltoPD.Checked = False rdbDsIQC.Checked = False rdbDsPD.Checked = False ElseIf LoadData = formTypeList.altoIQC Then rdbAll.Checked = False rdbHF.Checked = False rdbEFPD.Checked = False rdbRFMCEP.Checked = False rdbIQC.Checked = False rdbAltoIqc.Checked = True rdbAltoPD.Checked = False rdbDsIQC.Checked = False rdbDsPD.Checked = False ElseIf LoadData = formTypeList.altoPD Then rdbAll.Checked = False rdbHF.Checked = False rdbEFPD.Checked = False rdbRFMCEP.Checked = False rdbIQC.Checked = False rdbAltoIqc.Checked = False rdbAltoPD.Checked = True rdbDsIQC.Checked = False rdbDsPD.Checked = False ElseIf LoadData = formTypeList.DS_IQC Then rdbAll.Checked = False rdbHF.Checked = False rdbEFPD.Checked = False rdbRFMCEP.Checked = False rdbIQC.Checked = False rdbAltoIqc.Checked = False rdbAltoPD.Checked = False rdbDsIQC.Checked = True rdbDsPD.Checked = False ElseIf LoadData = formTypeList.DS_PD Then rdbAll.Checked = False rdbHF.Checked = False rdbEFPD.Checked = False rdbRFMCEP.Checked = False rdbIQC.Checked = False rdbAltoIqc.Checked = False rdbAltoPD.Checked = False rdbDsIQC.Checked = False rdbDsPD.Checked = True ElseIf LoadData = formTypeList.EF_PD Then rdbAll.Checked = False rdbHF.Checked = False rdbEFPD.Checked = True rdbRFMCEP.Checked = False rdbIQC.Checked = False rdbAltoIqc.Checked = False rdbAltoPD.Checked = False rdbDsIQC.Checked = False rdbDsPD.Checked = True Else rdbAll.Checked = True rdbHF.Checked = False rdbEFPD.Checked = False rdbRFMCEP.Checked = False rdbIQC.Checked = False rdbAltoIqc.Checked = False rdbAltoPD.Checked = False rdbDsIQC.Checked = False rdbDsPD.Checked = False End If Case 5 nudEPRe.Value = LoadData Case 6 nudOnRe.Value = LoadData Case 7 nudJigNum.Value = LoadData Case Else MsgBox("ETC_잘못된 데이터가 존재합니다.", vbExclamation) End Select End Sub Private Sub JIG_LoadTxb(cnt As Int16, LoadData As String) Select Case cnt Case 0 txbJgTimeout.Text = LoadData Case 1 txbJgDelay.Text = LoadData Case 2 txbDTTimeout.Text = LoadData Case Else MsgBox("JIG_잘못된 데이터가 존재합니다.", vbExclamation) End Select End Sub Private Sub LED_LoadTxb(cnt As Int16, LoadData As String) Select Case cnt Case 0 WebCamList(True) For i = 0 To cbbWebCam.Items.Count - 1 cbbWebCam.SelectedIndex = i If LoadData = cbbWebCam.SelectedItem Then WebCamNum = cbbWebCam.SelectedIndex Exit For End If cbbWebCam.SelectedIndex = -1 Next Case 1 txbCamDelay.Text = LoadData Case 2 txbRedCdn_X1.Text = LoadData Case 3 txbRedCdn_Y1.Text = LoadData Case 4 txbYelCdn_X1.Text = LoadData Case 5 txbYelCdn_Y1.Text = LoadData Case 6 txbRedCdn_X2.Text = LoadData Case 7 txbRedCdn_Y2.Text = LoadData Case 8 txbYelCdn_X2.Text = LoadData Case 9 txbYelCdn_Y2.Text = LoadData Case 10 txbAround.Text = LoadData Case 11 txbInc.Text = LoadData Case 12 If LoadData = ImgSave Then rdbimgSave.Checked = True rdbMatCovert.Checked = False ElseIf LoadData = ImgCvt Then rdbimgSave.Checked = False rdbMatCovert.Checked = True Else MsgBox("이미지 처리 방식에 관련하여 잘못된 데이터가 저장되었습니다.", vbCritical) End If Case 13 nudLEDStart.Value = LoadData Case 14 nudLedRe.Value = LoadData Case Else MsgBox("LED_잘못된 데이터가 존재합니다.", vbExclamation) End Select End Sub Private Sub RF_LoadTxb(cnt As Int16, LoadData As String) Select Case cnt Case 0 If LoadData.ToLower = "auto" Then rdbRFTrAuto.Checked = True Else rdbRFtrNormal.Checked = True End If Case 1 txbRFtime.Text = LoadData Case 2 If LoadData.ToLower = "volt" Then rdbRFUnitV.Checked = True Else rdbRFUnitA.Checked = True End If Case 3 nudRFScale.Text = LoadData Case 4 txbRFDelay.Text = LoadData Case 5 nudRFRun.Text = LoadData Case 6 nudRFCh.Value = LoadData Case 7 nudRFTrgLv.Value = LoadData Case 8 txbRFWdtime.Text = LoadData Case 9 txbRFWdDelay.Text = LoadData Case 10 nudRFWdTrgLv.Value = LoadData Case 11 nudRFWdRun.Value = LoadData Case Else MsgBox("RF_잘못된 데이터가 존재합니다.", vbExclamation) End Select End Sub Private Sub MC_LoadTxb(cnt As Int16, LoadData As String) Select Case cnt Case 0 If LoadData.ToLower = "auto" Then rdbMCTrAuto.Checked = True Else rdbMCtrNormal.Checked = True End If Case 1 txbMCFVtime.Text = LoadData Case 2 If LoadData.ToLower = "volt" Then rdbMCUnitV.Checked = True Else rdbMCUnitA.Checked = True End If Case 3 nudMCScale.Text = LoadData Case 4 txbMCFVDelay.Text = LoadData Case 5 nudMCFVRun.Text = LoadData Case 6 nudMCCh.Value = LoadData Case 7 nudMCFVTrgLv.Value = LoadData Case 8 txbMCWdtime.Text = LoadData Case 9 txbMCWdDelay.Text = LoadData Case 10 nudMCWdTrgLv.Value = LoadData Case 11 nudMCWdRun.Value = LoadData Case Else MsgBox("MC_잘못된 데이터가 존재합니다.", vbExclamation) End Select End Sub Private Sub EP_LoadTxb(cnt As Int16, LoadData As String) Select Case cnt Case 0 If LoadData.ToLower = "auto" Then rdbEPTrAuto.Checked = True Else rdbEPtrNormal.Checked = True End If Case 1 txbEPFVtime.Text = LoadData Case 2 If LoadData.ToLower = "volt" Then rdbEPUnitV.Checked = True Else rdbEPUnitA.Checked = True End If Case 3 nudEPScale.Text = LoadData Case 4 txbEPFVDelay.Text = LoadData Case 5 nudEPFVRun.Text = LoadData Case 6 txbEPFreq1.Text = LoadData Case 7 txbEPFreq2.Text = LoadData Case 8 txbEPFreq3.Text = LoadData Case 9 nudEPCh.Value = LoadData Case 10 nudEPFVTrgLv.Value = LoadData Case Else MsgBox("EP_잘못된 데이터가 존재합니다.", vbExclamation) End Select End Sub Private Sub Standard_LoadTxb(cnt As Int16, LoadData As String) Select Case cnt Case 0 txbFirmVer.Text = LoadData Case 1 txbBatMin.Text = LoadData Case 2 txbBatMax.Text = LoadData Case 3 txbTpDevMin.Text = LoadData Case 4 txbTpDevMax.Text = LoadData Case 5 txbTpCartMin.Text = LoadData Case 6 txbTpCartMax.Text = LoadData Case 7 txbHFOutMin.Text = LoadData Case 8 txbHFOutMax.Text = LoadData Case 9 txbHFMin.Text = LoadData Case 10 txbRFVRmin1.Text = LoadData Case 11 txbRFVRmax1.Text = LoadData Case 12 txbRFVRmin2.Text = LoadData Case 13 txbRFVRmax2.Text = LoadData Case 14 txbRFVRmin3.Text = LoadData Case 15 txbRFVRmax3.Text = LoadData Case 16 txbMCVPmin.Text = LoadData Case 17 txbMCVPmax.Text = LoadData Case 18 txbMCDYmin.Text = LoadData Case 19 txbMCDYmax.Text = LoadData Case 20 txbMCFrmin.Text = LoadData Case 21 txbMCFrmax.Text = LoadData Case 22 txbEPVPmin.Text = LoadData Case 23 txbEPVPmax.Text = LoadData Case 24 txbEPDYmin1.Text = LoadData Case 25 txbEPDYmax1.Text = LoadData Case 26 txbEPDYmin2.Text = LoadData Case 27 txbEPDYmax2.Text = LoadData Case 28 txbEPDYmin3.Text = LoadData Case 29 txbEPDYmax3.Text = LoadData Case 30 txbRHueMin.Text = LoadData Case 31 txbRHueMax.Text = LoadData Case 32 txbRSatMin.Text = LoadData Case 33 txbRSatMax.Text = LoadData Case 34 txbRBgtMin.Text = LoadData Case 35 txbRBgtMax.Text = LoadData Case 36 txbYHueMin1.Text = LoadData Case 37 txbYHueMax1.Text = LoadData Case 38 txbYSatMin1.Text = LoadData Case 39 txbYSatMax1.Text = LoadData Case 40 txbYBgtMin1.Text = LoadData Case 41 txbYBgtMax1.Text = LoadData Case 42 txbFirmVer_AL.Text = LoadData Case 43 txbTpDevMin_AL.Text = LoadData Case 44 txbTpDevMax_AL.Text = LoadData Case 45 txbTpCartMin_AL.Text = LoadData Case 46 txbTpCartMax_AL.Text = LoadData Case 47 txbBatMin_AL.Text = LoadData Case 48 txbBatMax_AL.Text = LoadData Case 49 txbRFVRmin1_AL.Text = LoadData Case 50 txbRFVRmax1_AL.Text = LoadData Case 51 txbRFVRmin2_AL.Text = LoadData Case 52 txbRFVRmax2_AL.Text = LoadData Case 53 txbRFVRmin3_AL.Text = LoadData Case 54 txbRFVRmax3_AL.Text = LoadData Case 55 txbEPVPmin_AL.Text = LoadData Case 56 txbEPVPmax_AL.Text = LoadData Case 57 txbEPDYmin1_AL.Text = LoadData Case 58 txbEPDYmax1_AL.Text = LoadData Case 59 txbEPDYmin2_AL.Text = LoadData Case 60 txbEPDYmax2_AL.Text = LoadData Case 61 txbEPDYmin3_AL.Text = LoadData Case 62 txbEPDYmax3_AL.Text = LoadData Case 63 txbBDVRmin1_AL.Text = LoadData Case 64 txbBDVRmax1_AL.Text = LoadData Case 65 txbBDVRmin2_AL.Text = LoadData Case 66 txbBDVRmax2_AL.Text = LoadData Case 67 txbBDVRmin3_AL.Text = LoadData Case 68 txbBDVRmax3_AL.Text = LoadData Case 69 txbDSfw_st.Text = LoadData Case 70 txbDSbat_stMin.Text = LoadData Case 71 txbDSbat_stMax.Text = LoadData Case 72 txbDSTmpDe_stMin.Text = LoadData Case 73 txbDSTmpDe_stMax.Text = LoadData Case 74 txbDSTmpCa_stMin.Text = LoadData Case 75 txbDSTmpCa_stMax.Text = LoadData Case 76 txbDShfOut_stMin.Text = LoadData Case 77 txbDShfOut_stMax.Text = LoadData Case 78 txbDShfDif_st.Text = LoadData Case 79 txbDSSub_Min.Text = LoadData Case 80 txbDSSub_Max.Text = LoadData Case Else MsgBox("기준 설정_잘못된 데이터가 존재합니다.", vbExclamation) End Select End Sub Private Sub Equip_LoadTxb(cnt As Int16, LoadData As String) Const MountEquip As Int16 = 1 Dim CbList(MountEquip) As ComboBox CbList(MountEquip - 1) = cbbScopeID CbList(MountEquip) = cbbSpecID If LoadData <> "" Then For i = 0 To CbList(cnt).Items.Count CbList(cnt).SelectedIndex = i If LoadData = CbList(cnt).SelectedItem Then Exit For End If CbList(cnt).SelectedIndex = -1 Next End If End Sub Private Sub btnScRg_Click(sender As Object, e As EventArgs) Handles btnScRg.Click If txbRgScName.Text.Replace(" ", "") = "" Then MsgBox("장비명을 입력하지 않았습니다.", vbExclamation) Else If txbRgScID.Text.Replace(" ", "") = "" Then MsgBox("장비 ID를 입력하지 않았습니다.", vbExclamation) Else If cbbRgScType.SelectedIndex = -1 Then MsgBox("장비 종류를 입력하지 않았습니다.", vbExclamation) Else dgvID.Rows.Add(txbRgScName.Text, txbRgScID.Text, cbbRgScType.SelectedItem) MsgBox("장비 등록 완료", vbInformation) EquipCBBLoad() txbRgScName.Text = "" txbRgScID.Text = "" cbbRgScType.SelectedIndex = -1 cbbRgScType.Text = "선택!" End If End If End If End Sub Private Sub cbbScopeID_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbbScopeID.SelectedIndexChanged If cbbScopeID.SelectedIndex <> -1 Then txbScopeID.Text = ScopeList(cbbScopeID.SelectedIndex) End If End Sub Private Sub cbbSpecID_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbbSpecID.SelectedIndexChanged If cbbSpecID.SelectedIndex <> -1 Then txbSpecID.Text = SpecList(cbbSpecID.SelectedIndex) End If End Sub Private Sub btnScDel_Click(sender As Object, e As EventArgs) Handles btnScDel.Click For i = 0 To dgvID.Rows.Count - 2 If dgvID.Rows(i).Selected = True Then If MsgBox("해당 장비 데이터를 삭제하시겠습니까?", vbExclamation + vbYesNo) = MsgBoxResult.Yes Then dgvID.Rows.Remove(dgvID.Rows(i)) MsgBox("데이터 삭제를 완료하였습니다.", vbInformation) End If End If Next End Sub Private Sub EquipCBBLoad() cbbScopeID.Items.Clear() cbbSpecID.Items.Clear() If dgvID.Rows.Count > 1 Then For i = 0 To dgvID.Rows.Count - 2 If dgvID.Rows(i).Cells(2).Value.ToString.ToLower = "scope" Then cbbScopeID.Items.Add(dgvID.Rows(i).Cells(0).Value) ReDim Preserve ScopeList(cbbScopeID.Items.Count - 1) ScopeList(cbbScopeID.Items.Count - 1) = dgvID.Rows(i).Cells(1).Value Else cbbSpecID.Items.Add(dgvID.Rows(i).Cells(0).Value) ReDim Preserve SpecList(cbbSpecID.Items.Count - 1) SpecList(cbbSpecID.Items.Count - 1) = dgvID.Rows(i).Cells(1).Value End If Next End If End Sub Private Sub EquipList_LoadTxb(LoadData As String) Dim DgvList() As String = New String(0) {""} For i = 0 To UBound(Split(LoadData, "/")) ReDim Preserve DgvList(i) If InStr(LoadData, "/") > 0 Then DgvList(i) = Mid(LoadData, 1, InStr(LoadData, "/") - 1) LoadData = Mid(LoadData, InStr(LoadData, "/") + 1, LoadData.Length) Else DgvList(i) = Mid(LoadData, 1, LoadData.Length) End If Next dgvID.Rows.Add(DgvList) EquipCBBLoad() End Sub Private Sub rdbSort_CheckedChanged(sender As Object, e As EventArgs) Handles rdbSort.CheckedChanged gbChkPoint.Visible = True gbChkPoint.Enabled = True gbScopeOption.Visible = False gbScopeOption.Enabled = False gbETC.Visible = False gbETC.Enabled = False gbStandard.Visible = True rdbStdMax.Checked = True End Sub Private Sub rdbRF_CheckedChanged(sender As Object, e As EventArgs) Handles rdbRF.CheckedChanged gbChkPoint.Visible = False gbChkPoint.Enabled = False gbScopeOption.Visible = True gbScopeOption.Enabled = True gbETC.Visible = True gbETC.Enabled = True gbMCoption.Visible = False gbMCoption.Enabled = False gbRFOption.Visible = True gbRFOption.Enabled = True gbStandard.Visible = False End Sub Private Sub rdbMC_CheckedChanged(sender As Object, e As EventArgs) Handles rdbMC.CheckedChanged gbChkPoint.Visible = False gbChkPoint.Enabled = False gbScopeOption.Visible = True gbScopeOption.Enabled = True gbETC.Visible = True gbETC.Enabled = True gbMCoption.Visible = True gbMCoption.Enabled = True gbRFOption.Visible = False gbRFOption.Enabled = False gbStandard.Visible = False End Sub Private Sub rdbLed_CheckedChanged(sender As Object, e As EventArgs) Handles rdbLed.CheckedChanged gbLedOp.Visible = True gbLedOp.Enabled = True gbSpecOption.Visible = False gbSpecOption.Enabled = False End Sub Private Sub rdbTestMode_CheckedChanged(sender As Object, e As EventArgs) Handles rdbTestMode.CheckedChanged gbLedOp.Visible = False gbLedOp.Enabled = False gbSpecOption.Visible = True gbSpecOption.Enabled = True End Sub Private Function loadLocalFile() As Boolean Try Dim filePath, fileName, strData As String Dim saveYear As String = DateAndTime.Year(Now) Dim saveMonth As String = Format(Now, "MM") Dim saveDay As String = Format(Now, "dd") Dim saveDate As String = saveYear & "-" & saveMonth & "-" & saveDay filePath = System.AppDomain.CurrentDomain.BaseDirectory & "\TestCount" If Dir(filePath, vbDirectory) = "" Then MkDir(filePath) End If fileName = filePath & "\" & saveYear & "_" & saveMonth & ".csv" If File.Exists(fileName) Then strData = File.ReadAllText(fileName) If UBound(Split(strData, saveDate)) > 0 Then todayCount = Val(Mid(strData, InStr(strData, saveDate), InStr(strData, vbCrLf) - 1)) End If End If Return True Catch ex As Exception MsgBox("오류 발생 :: " & ex.Message, vbCritical) Return False End Try End Function Private Function saveLocalFile() As Boolean Try Dim filePath, fileName, saveData, strData As String Dim saveYear As String = DateAndTime.Year(Now) Dim saveMonth As String = Format(Now, "MM") Dim saveDay As String = Format(Now, "dd") Dim startForm As String = "TestDate,Count" filePath = System.AppDomain.CurrentDomain.BaseDirectory & "\TestCount" If Dir(filePath, vbDirectory) = "" Then MkDir(filePath) End If fileName = filePath & "\" & saveYear & "_" & saveMonth & ".csv" saveData = NowDate & "," & todayCount If File.Exists(fileName) = True Then strData = File.ReadAllText(fileName, Encoding.UTF8) If strData = vbCrLf Or strData = Nothing Or strData = "" Then strData = startForm & vbCrLf & saveData & vbCrLf Else If UBound(Split(strData, NowDate)) > 0 Then strData = Mid(strData, 1, InStr(strData, NowDate) - 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("오류 발생 :: " & ex.Message, vbCritical) TestError = False Return True End Try End Function Private Function Save_Csv(SaveData As String) As Boolean On Error GoTo WR_File_Error TestStep = TestList.CSV Dim ItemList As String Dim FileName As String Dim objWriter As StreamWriter Dim syaer As String = DateAndTime.Year(Now) Dim smonth As String = DateAndTime.Month(Now) Dim sday As String = DateAndTime.Day(Now) Dim FilePath As String = System.AppDomain.CurrentDomain.BaseDirectory & "\LogData" If Dir(FilePath, vbDirectory) = "" Then MkDir(FilePath) End If Select Case formType Case formTypeList.full ItemList = "TestDate,TestTime,PV_SN,FW_VER,Battery_Level,Div_Temp,Cart_Temp,HIFU_6850,HIFU_Diff1,HIFU_7000,HIFU_Diff2,HIFU_7150,RF_1VRMS,RF_1Freq,RF_2VRMS,RF_2Freq,RF_3VRMS,RF_3Freq,MC_PlusWave,MC_PlusVpp,MC_MinusWave,MC_MinusVpp,EP_1Vpp,EP_1Freq,EP_1PWidth,EP_1NWidth,EP_2Vpp,EP_2Freq,EP_2PWidth,EP_2NWidth,EP_3Vpp,EP_3Freq,EP_3PWidth,EP_3NWidth,Test_Result" FileName = FilePath & "\" & DateAndTime.Year(Now) & "_" & DateAndTime.Month(Now) & "_" & DateAndTime.Day(Now) & "_ALL.csv" Case formTypeList.prod_HF, formTypeList.EF_PD ItemList = "PV_SN,TestDate,TestTime,FW_Ver,BatteryLv,DivTemp,CtTemp,HF_R1Value,HF_R2Value,HF_R3Value,Test_Result" FileName = FilePath & "\" & DateAndTime.Year(Now) & "_" & DateAndTime.Month(Now) & "_" & DateAndTime.Day(Now) & "_HF.csv" Case formTypeList.prod_RF ItemList = "PV_SN,TestDate,TestTime,FW_Ver,RF_R1Vrms,RF_R1Freq,RF_R2Vrms,RF_R2Freq,RF_R3Vrms,RF_R3Freq,MC_R1Wave,MC_R1Vpp,MC_R1Freq,MC_R2Wave,MC_R2Vpp,MC_R2Freq,EP_R1Vpp,EP_R1Freq,EP_R1PWidth,EP_R1NWidth,EP_R2Vpp,EP_R2Freq,EP_R2PWidth,EP_R2NWidth,EP_R3Vpp,EP_R3Freq,EP_R3PWidth,EP_R3NWidth,Test_Result" FileName = FilePath & "\" & DateAndTime.Year(Now) & "_" & DateAndTime.Month(Now) & "_" & DateAndTime.Day(Now) & "_RF.csv" Case formTypeList.altoIQC ItemList = "TestDate,TestTime,FW_Ver,Div_Temp,RF_R1Vrms,RF_R1Freq,RF_R2Vrms,RF_R2Freq,RF_R3Vrms,RF_R3Freq,EP_R1Vpp,EP_R1Freq,EP_R1PWidth,EP_R1NWidth,EP_R2Vpp,EP_R2Freq,EP_R2PWidth,EP_R2NWidth,EP_R3Vpp,EP_R3Freq,EP_R3PWidth,EP_R3NWidth,Test_Result" FileName = FilePath & "\" & DateAndTime.Year(Now) & "_" & DateAndTime.Month(Now) & "_" & DateAndTime.Day(Now) & "_ALTOIQC.csv" Case formTypeList.altoPD ItemList = "PV_SN,TestDate,TestTime,FW_Ver,Div_Temp,Cart_Temp,Battery_Level,RF_R1Vrms,RF_R1Freq,RF_R2Vrms,RF_R2Freq,RF_R3Vrms,RF_R3Freq,EP_R1Vpp,EP_R1Freq,EP_R1PWidth,EP_R1NWidth,EP_R2Vpp,EP_R2Freq,EP_R2PWidth,EP_R2NWidth,EP_R3Vpp,EP_R3Freq,EP_R3PWidth,EP_R3NWidth,Test_Result" FileName = FilePath & "\" & DateAndTime.Year(Now) & "_" & DateAndTime.Month(Now) & "_" & DateAndTime.Day(Now) & "_ALTOPD.csv" Case formTypeList.iqc ItemList = "TestDate,TestTime,FW_Ver,Div_Temp,HF_R1Value,HF_R2Value,HF_R3Value,RF_R1Vrms,RF_R1Freq,RF_R2Vrms,RF_R2Freq,RF_R3Vrms,RF_R3Freq,EP_R1Vpp,EP_R1Freq,EP_R1PWidth,EP_R1NWidth,EP_R2Vpp,EP_R2Freq,EP_R2PWidth,EP_R2NWidth,EP_R3Vpp,EP_R3Freq,EP_R3PWidth,EP_R3NWidth,Test_Result" FileName = FilePath & "\" & DateAndTime.Year(Now) & "_" & DateAndTime.Month(Now) & "_" & DateAndTime.Day(Now) & "_IQC.csv" Case formTypeList.Company ItemList = "TestDate,TestTime,FW_Ver,Div_Temp,HF_R1Value,HF_R2Value,HF_R3Value,RF_R1Vrms,RF_R1Freq,RF_R2Vrms,RF_R2Freq,RF_R3Vrms,RF_R3Freq,EP_R1Vpp,EP_R1Freq,EP_R1PWidth,EP_R1NWidth,EP_R2Vpp,EP_R2Freq,EP_R2PWidth,EP_R2NWidth,EP_R3Vpp,EP_R3Freq,EP_R3PWidth,EP_R3NWidth,Test_Result" FileName = FilePath & "\" & DateAndTime.Year(Now) & "_" & DateAndTime.Month(Now) & "_" & DateAndTime.Day(Now) & "_COMPANY.csv" Case formTypeList.DS_IQC, formTypeList.DS_PD ItemList = "TestDate,TestTime,FW_Ver,BatteryLv,DivTemp,CtTemp,HF_R1Value,HF_R2Value,HF_R3Value,Test_Result" FileName = FilePath & "\" & DateAndTime.Year(Now) & "_" & DateAndTime.Month(Now) & "_" & DateAndTime.Day(Now) & "_DS_HF.csv" Case Else FileName = "Null" ItemList = "Null" End Select If File.Exists(FileName) = True Then objWriter = New StreamWriter(FileName, True) objWriter.WriteLine(SaveData) Else objWriter = New StreamWriter(FileName, True) objWriter.WriteLine(ItemList) objWriter.WriteLine(SaveData) End If objWriter.Close() TestRunningState(testRunningList.Success, Color.Green) Return False WR_File_Error: MsgBox("Logdata save fail!" & Err.Description) TestRunningState(testRunningList.Fail, Color.Red) Return True End Function Private Sub WebCamList(CamType As Boolean) Dim CamDevice As FilterInfoCollection = New FilterInfoCollection(FilterCategory.VideoInputDevice) Dim CamList As ComboBox If CamType = True Then CamList = cbbWebCam Else CamList = cbbOLEDCam End If CamList.Items.Clear() If CamDevice.Count <> 0 Then For i = 0 To CamDevice.Count - 1 CamList.Items.Add(CamDevice(i).Name) Next End If End Sub Private Sub btnWebCam_Click(sender As Object, e As EventArgs) Handles btnWebCam.Click If btnWebCam.Text = "스캔" Then WebCamList(True) btnWebCam.Text = "연결" Else If cbbWebCam.SelectedIndex = -1 Then btnWebCam.Text = "스캔" MsgBox("웹캠을 선택하여 주십시오.", vbExclamation) Exit Sub End If If cbbWebCam.SelectedItem = cbbOLEDCam.SelectedItem Then MsgBox("OLED 측정 카메라와 같습니다. 다른 카메라를 선택하여 주십시오.", vbCritical) Exit Sub End If WebCamNum = cbbWebCam.SelectedIndex btnWebCam.Text = "스캔" MsgBox("연결 완료", vbInformation) End If End Sub Private Sub btnOLEDCam_Click(sender As Object, e As EventArgs) Handles btnOLEDCam.Click If btnOLEDCam.Text = "스캔" Then WebCamList(False) btnOLEDCam.Text = "연결" Else If cbbOLEDCam.SelectedIndex = -1 Then btnOLEDCam.Text = "스캔" MsgBox("웹캠을 선택하여 주십시오.", vbExclamation) Exit Sub End If If cbbWebCam.SelectedItem = cbbOLEDCam.SelectedItem Then MsgBox("LED 측정 카메라와 같습니다. 다른 카메라를 선택하여 주십시오.", vbCritical) Exit Sub End If OLEDCamNum = cbbOLEDCam.SelectedIndex btnOLEDCam.Text = "스캔" MsgBox("연결 완료", vbInformation) End If End Sub Private Sub MainSetting() Me.Text = Program_Name & Program_Version Me.Size = New Drawing.Size(1920, 1080) Me.WindowState = FormWindowState.Maximized End Sub Private Sub TopPositonSet() pnMain.Location = New Drawing.Point(0, 0) pnMain.Size = New Drawing.Size(1920, 1080) gpbConfig.Location = New Drawing.Point(5, 5) gpbConfig.Size = New Drawing.Size(285, 85) gbMode.Location = New Drawing.Point(295, 5) gbMode.Size = New Drawing.Size(1090, 85) btnReStart.Location = New Drawing.Point(1395, 5) btnReStart.Size = New Drawing.Size(170, 85) btnSetup.Location = New Drawing.Point(1570, 5) btnSetup.Size = New Drawing.Size(170, 85) btnEnd.Location = New Drawing.Point(1745, 5) btnEnd.Size = New Drawing.Size(170, 85) End Sub Private Sub BarcPositionSet() txbBarcode.Location = New Drawing.Point(277, 25) txbBarcode.Size = New Drawing.Size(810, 102) lbBarcode.Location = New Drawing.Point(18, 28) pnTDSN.Location = New Drawing.Point(1110, 15) pnDate.Location = New Drawing.Point(1110, 55) pnFreq.Location = New Drawing.Point(1110, 95) pnGrade.Location = New Drawing.Point(1370, 15) pnVer.Location = New Drawing.Point(1370, 55) pnVolt.Location = New Drawing.Point(1370, 95) pnDevTmp.Location = New Drawing.Point(1630, 15) pnCartTmp.Location = New Drawing.Point(1630, 55) End Sub Private Sub rdbAll_CheckedChanged(sender As Object, e As EventArgs) Handles rdbAll.CheckedChanged If rdbAll.Checked = True Then gbHFTest.Visible = False gbStep.Visible = True gbRFMCEP.Visible = False gbIQC.Visible = False gbAltoIQC.Visible = False gbDSForm.Visible = False formType = formTypeList.full changeMode() typeDataSetting() modeConfigSave() End If End Sub Private Sub rdbHF_CheckedChanged(sender As Object, e As EventArgs) Handles rdbHF.CheckedChanged If rdbHF.Checked = True Then gbHFTest.Visible = True gbStep.Visible = False gbRFMCEP.Visible = False gbIQC.Visible = False gbAltoIQC.Visible = False gbDSForm.Visible = False formType = formTypeList.prod_HF changeMode() typeDataSetting() modeConfigSave() End If End Sub Private Sub rdbRFMCEP_CheckedChanged(sender As Object, e As EventArgs) Handles rdbRFMCEP.CheckedChanged If rdbRFMCEP.Checked = True Then gbHFTest.Visible = False gbStep.Visible = False gbRFMCEP.Visible = True gbIQC.Visible = False gbAltoIQC.Visible = False gbDSForm.Visible = False formType = formTypeList.prod_RF changeMode() typeDataSetting() modeConfigSave() End If End Sub Private Sub rdbIQC_CheckedChanged(sender As Object, e As EventArgs) Handles rdbIQC.CheckedChanged If rdbIQC.Checked = True Then gbHFTest.Visible = False gbStep.Visible = False gbRFMCEP.Visible = False gbIQC.Visible = True gbAltoIQC.Visible = False gbDSForm.Visible = False formType = formTypeList.iqc changeMode() typeDataSetting() modeConfigSave() End If End Sub Private Sub rdbAltoIqc_CheckedChanged(sender As Object, e As EventArgs) Handles rdbAltoIqc.CheckedChanged If rdbAltoIqc.Checked = True Then gbHFTest.Visible = False gbStep.Visible = False gbRFMCEP.Visible = False gbIQC.Visible = False gbAltoIQC.Visible = True gbDSForm.Visible = False formType = formTypeList.altoIQC changeMode() typeDataSetting() modeConfigSave() End If End Sub Private Sub rdbAltoPD_CheckedChanged(sender As Object, e As EventArgs) Handles rdbAltoPD.CheckedChanged If rdbAltoPD.Checked = True Then gbHFTest.Visible = False gbStep.Visible = False gbRFMCEP.Visible = False gbIQC.Visible = False gbAltoIQC.Visible = True gbDSForm.Visible = False formType = formTypeList.altoPD changeMode() typeDataSetting() modeConfigSave() End If End Sub Private Sub rdbCompany_CheckedChanged(sender As Object, e As EventArgs) Handles rdbCompany.CheckedChanged If rdbCompany.Checked = True Then gbHFTest.Visible = False gbStep.Visible = False gbRFMCEP.Visible = False gbIQC.Visible = False gbAltoIQC.Visible = True gbDSForm.Visible = False formType = formTypeList.Company changeMode() typeDataSetting() modeConfigSave() End If End Sub Private Sub rdbDsIQC_CheckedChanged(sender As Object, e As EventArgs) Handles rdbDsIQC.CheckedChanged If rdbDsIQC.Checked = True Then gbHFTest.Visible = False gbStep.Visible = False gbRFMCEP.Visible = False gbIQC.Visible = False gbAltoIQC.Visible = False gbDSForm.Visible = True formType = formTypeList.DS_IQC changeMode() typeDataSetting() modeConfigSave() End If End Sub Private Sub rdbDsPD_CheckedChanged(sender As Object, e As EventArgs) Handles rdbDsPD.CheckedChanged If rdbDsPD.Checked = True Then gbHFTest.Visible = False gbStep.Visible = False gbRFMCEP.Visible = False gbIQC.Visible = False gbAltoIQC.Visible = False gbDSForm.Visible = True formType = formTypeList.DS_PD changeMode() typeDataSetting() modeConfigSave() End If End Sub Private Sub changeMode() Dim ErrorSwitch As Boolean = False btnEnd.Enabled = False Select Case formType Case formTypeList.full, formTypeList.iqc EquipSetting() Case formTypeList.prod_HF, formTypeList.DS_IQC, formTypeList.DS_PD, formTypeList.EF_PD, formTypeList.EF_IQC If SpecSet() Then txbWindow.AppendText("Spectrum Setting Fail!!" & vbCrLf) ErrorSwitch = True Else txbWindow.AppendText("Spectrum Setting Success!!" & vbCrLf) End If If ErrorSwitch = False Then StartSwitch = True End If Case formTypeList.prod_RF, formTypeList.altoIQC, formTypeList.altoPD, formTypeList.Company If EquipSet() Then txbWindow.AppendText("Scope Setting Fail!!" & vbCrLf) ErrorSwitch = True Else txbWindow.AppendText("Scope Setting Success!!" & vbCrLf) End If If ErrorSwitch = False Then StartSwitch = True End If Case Else EquipSetting() End Select btnEnd.Enabled = True StartClear() txbBarcode.ReadOnly = False txbBarcode.Focus() End Sub Private Sub txbRFresult_gotFocus(sender As Object, e As EventArgs) Handles txbRFresult.GotFocus, txbRFtest1.GotFocus, txbRFtest2.GotFocus, txbRFtest3.GotFocus, txbMCresult.GotFocus, txbEPresult.GotFocus, txbEPtest1.GotFocus, txbEPtest2.GotFocus, txbEPtest3.GotFocus, txbBat.GotFocus, txbTemp.GotFocus, txbHFresult.GotFocus, txbHFtest1.GotFocus, txbHFtest2.GotFocus, txbHFtest3.GotFocus, txbDBreg.GotFocus, txbTDreg.GotFocus, txbCmdWindow.GotFocus, txbDayCount.GotFocus, txbOkCount.GotFocus, txbNgCount.GotFocus txbBarcode.Focus() End Sub Private Sub chkAdmin_CheckedChanged(sender As Object, e As EventArgs) Handles chkAdmin.CheckedChanged If chkAdmin.Checked = True Then Button1.Visible = True Else Button1.Visible = False End If End Sub Private Sub StatePosition() Dim StepPanel(TestCount - 1) As Panel gbStep.Location = New Drawing.Point(5, 240) pnStep1.Location = New Drawing.Point(13, 20) pnStep2.Location = New Drawing.Point(13, 165) pnStep3.Location = New Drawing.Point(13, 310) pnStep4.Location = New Drawing.Point(13, 455) pnStep5.Location = New Drawing.Point(13, 600) pnStep8.Location = New Drawing.Point(548, 20) pnStep9.Location = New Drawing.Point(548, 165) pnStep10.Location = New Drawing.Point(548, 310) pnStep6.Location = New Drawing.Point(548, 455) pnStep6.Enabled = False pnStep7.Location = New Drawing.Point(548, 600) pnStep7.Enabled = False End Sub Private Sub SituationPosition() txbCmdWindow.Location = New Drawing.Point(1100, 245) txbCmdWindow.Size = New Drawing.Size(810, 440) btnRun.Location = New Drawing.Point(1100, 850) btnRun.Size = New Drawing.Size(810, 135) End Sub Private Sub rdbEFPD_CheckedChanged(sender As Object, e As EventArgs) Handles rdbEFPD.CheckedChanged If rdbEFPD.Checked = True Then gbHFTest.Visible = True gbStep.Visible = False gbRFMCEP.Visible = False gbIQC.Visible = False gbAltoIQC.Visible = False gbDSForm.Visible = False formType = formTypeList.EF_PD changeMode() typeDataSetting() modeConfigSave() End If End Sub Private Sub rdbEFIQC_CheckedChanged(sender As Object, e As EventArgs) Handles rdbEFIQC.CheckedChanged End Sub Private Sub rdbStdMax_CheckedChanged(sender As Object, e As EventArgs) Handles rdbStdMax.CheckedChanged If rdbStdMax.Checked = True Then pnStandard_Max.Visible = True pnStandard_Al.Visible = False End If End Sub Private Sub rdbStdAl_CheckedChanged(sender As Object, e As EventArgs) Handles rdbStdAl.CheckedChanged If rdbStdAl.Checked = True Then pnStandard_Max.Visible = False pnStandard_Al.Visible = True End If End Sub End Class