prod-FreqConfigRegister/frm_Freq_Reg.vb

5128 lines
186 KiB
VB.net

Imports System.IO
Imports System.IO.Ports
Imports System.Threading
Imports System.Drawing.Printing
Imports System.Management
Public Class frm_Freq_Reg
Private cartridge As String = "jomtTesterDB.jomtCartridgeTbl"
Private test_cartridge As String = "jomtTesterServerDB.jomtCartridgeTbl"
Private MainNonTDDB As String = "jomtTesterDB.jomtNonTDTbl"
Private TestNonTDDB As String = "jomtTesterServerDB.jomtNonTDTbl"
Private cartridge_table As String = cartridge
Private NonCartridge_table As String = MainNonTDDB
Public Enum PD1_ENUM
STANDBY = 0
WAIT
WRITE
SAVE
COMPLETE
MAX_NUM
End Enum
Public PD1_STATUS As PD1_ENUM
Private Enum info_data
pv_date
pv_freq
pv_imp
pv_cap
pv_res
pv_c
pv_grade
pv_power
pv_depth
pv_all
End Enum
Private info_select(info_data.pv_all) As String
Private Enum check_list
TestStep
make_name
serial
model
type
abroad
agency
freq
power
shotcount
p1_motor
td_serial
p1_date
p1_time
P3_DateTime
Manufacture_Date
max_check
End Enum
Private Const ShotCheck As Int16 = 3
Private check_data(check_list.max_check) As String
Private DBCmd As String '' 데이터베이스 명령어 사용
Public ParaComport As String
Public tmpCmdMessage As String
Public cmdMessage As String
Public CmdTime As Long
Public EnableCmdTime As Boolean = False
Public rxMessage As String
Private CsvRegData As String
Private serial_switch As Boolean = False ''시리얼 포트 연결 유무
Public InputCnt As Long
Public Const InputCntVal As Integer = 10
Private reserve As Boolean = False
Private td_first_name As String = "DITI"
Private td_first_name2 As String = "J"
Private Const prod_text_count As Int16 = 12 '' 제품시리얼번호 자릿수
Private Const td_name_size As Int16 = 10 '' td 시리얼 자릿수
Private Const td_freq_size As Int16 = 4 '' 주파수 자릿수
Private ManagerTDUse As Boolean = False
Private td_data_switch As Boolean = False '' 제품을 꽂아 td시리얼 데이터를 읽어 왔는지
Private thr_run_switch As Boolean = False '' 제품선택 등록 완료 확인
Private option_reg_chk As Boolean = False '' 옵션 변경 사항 있는지 확인
Private option_print_chk As Boolean = False ''프린터 옵션 변경 사항 있는지 확인
Private comport_nothing As Boolean = False '' 컴포트 연결하지 않음/함
Private write_5_OkNg As Boolean = False
Private write_5_error As Boolean = False
Private rdb_type_num As String
Private Delegate Sub commDelegate()
Private commDelegateFunc As commDelegate
Public Structure Maximum_Data_list
Public td_serial As String
Public td_step As Int16
Public td_freq As Int16
Public td_power As Single
Public td_grade As String
Public td_Depth As String
Public td_textbox As TextBox
Public prod_code As String
Public prod_serial As String
End Structure
Public Maximum_Data As Maximum_Data_list
Delegate Sub delegate_text(ByRef str As String)
Private TH_thread As Thread
Private thread_type As Boolean
Private thread_restart As Boolean = False
Private info_search As Boolean = False
Private td_name As String
Private ItemList As String
'' 프린터 관련 변수
Private print_data(1, 1) As String
Delegate Sub delegate_print(ByRef str As String)
Private TH_print As Thread
Private thread_print As Boolean
Private print_OnOff As Boolean
''도트 관련
Private dotSerial As String
Private Sub frm_Freq_Reg_Load(sender As Object, e As EventArgs) Handles MyBase.Load
TH_thread = New Thread(AddressOf thread_func)
TH_print = New Thread(AddressOf print_th_play)
dgv_data.SelectionMode = DataGridViewSelectionMode.FullRowSelect
dgvPrinter.SelectionMode = DataGridViewSelectionMode.FullRowSelect
Me.Size = New Size(1040, 785)
LoadComportName()
load_comport("event")
load_comport("comport")
load_comport("print")
If ckbAllPnt.Checked = True Then
ckbBoxPnt.Checked = True
ckbWarPnt.Checked = True
Else
ckbBoxPnt.Checked = False
ckbWarPnt.Checked = False
End If
event_release()
cmdSerial.Text = "스캔"
gb_option.Visible = False
printOptionData()
mainOptionCkb()
control_page()
End Sub
Private Sub frm_Freq_Reg_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed
If TH_thread.IsAlive Then
TH_thread.Abort()
End If
If TH_print.IsAlive Then
TH_print.Abort()
End If
End Sub
Private Sub thread_func()
Do While thread_type
thread_play()
Thread.Sleep(3000)
Loop
End Sub
Private Sub thread_play()
Dim message_code, shot_ck As String
If rdb_freq_auto.Checked = True Then
If IsNumeric(shot_search()) Then
'message_code = read_info()
'If message_code <> "0" Then
' message_code = Mid(message_code, InStr(1, message_code, ",") + 1, message_code.Length)
' message_serial = Mid(message_code, 1, InStr(1, message_code, ",") - 1)
' message_code = Mid(message_code, InStr(1, message_code, ",") + 1, message_code.Length)
' message_code = Mid(message_code, 1, InStr(1, message_code, ",") - 1)
' message_code = message_code & message_serial
' td_name = td_name_load()
' If td_name.Length <> 10 Then
' td_name = Nothing
' End If
'Else
' message_code = ""
'End If
message_code = td_name_load()
If message_code = "1" Then
TH_thread.Abort()
MsgBox("제품과의 연결이 올바르지 않습니다. 다시 시도하여 주십시오.", vbCritical)
Exit Sub
ElseIf message_code = "0" Then
TH_thread.Abort()
MsgBox("TD 시리얼 번호가 존재하지 않습니다. TD 시리얼 번호를 등록하여 주십시오.", vbCritical)
Exit Sub
Else
Maximum_Data.td_serial = message_code
End If
If txbtdnum.InvokeRequired Then
txbtdnum.Invoke(New delegate_text(AddressOf thread_play), New Object() {message_code})
'txbresult.Text = "연결중..."
Else
txbtdnum.Text = message_code
td_data_switch = False
btnrun.PerformClick()
If td_data_switch = True Then
btnrun.PerformClick()
End If
TH_thread.Abort()
End If
Else
If info_search = True Then
message_code = "대기"
If txbtdnum.InvokeRequired Then
txbtdnum.Invoke(New delegate_text(AddressOf thread_play), New Object() {message_code})
Else
txbtdnum.Text = message_code
txbfreq.Text = message_code
txbpower.Text = message_code
txbgread.Text = message_code
td_data_switch = False
End If
End If
End If
ElseIf rdb_data_check.Checked = True Then
shot_ck = shot_search()
If IsNumeric(shot_ck) And shot_ck <> "-1" Then
message_code = "입력중.."
If txb_5_result.InvokeRequired Then
txb_5_result.Invoke(New delegate_text(AddressOf thread_play), New Object() {message_code})
Else
txb_5_result.Text = message_code
txb_5_result.BackColor = Color.Orange
btn_5_write.PerformClick()
TH_thread.Abort()
End If
Else
If comport_nothing = True Then
message_code = "통신 에러"
If txb_5_result.InvokeRequired Then
txb_5_result.Invoke(New delegate_text(AddressOf thread_play), New Object() {message_code})
Else
txb_5_result.Text = message_code
txb_5_result.BackColor = Color.Red
TH_thread.Abort()
End If
End If
End If
ElseIf rdb_c_mode.Checked = True Then
shot_ck = shot_search()
If IsNumeric(shot_ck) And shot_ck <> "-1" Then
message_code = "입력중.."
If txbPV_SN.InvokeRequired Then
txbPV_SN.Invoke(New delegate_text(AddressOf thread_play), New Object() {dotSerial})
Else
txbcState.Text = message_code
txbPV_SN.BackColor = Color.Orange
btnc_run.PerformClick()
TH_thread.Abort()
End If
Else
If comport_nothing = True Then
message_code = "통신 에러"
If txbPV_SN.InvokeRequired Then
txbPV_SN.Invoke(New delegate_text(AddressOf thread_play), New Object() {message_code})
Else
txbcState.Text = message_code
txbPV_SN.BackColor = Color.Red
TH_thread.Abort()
End If
End If
End If
Else
shot_ck = shot_search()
If IsNumeric(shot_ck) And shot_ck <> "-1" Then
message_code = "입력중.."
If txb_prod_state.InvokeRequired Then
txb_prod_state.Invoke(New delegate_text(AddressOf thread_play), New Object() {message_code})
Else
txb_prod_state.Text = message_code
txb_prod_state.BackColor = Color.Orange
btn_prod.PerformClick()
TH_thread.Abort()
End If
Else
If comport_nothing = True Then
message_code = "통신 에러"
If txb_prod_state.InvokeRequired Then
txb_prod_state.Invoke(New delegate_text(AddressOf thread_play), New Object() {message_code})
Else
txb_prod_state.Text = message_code
txb_prod_state.BackColor = Color.Red
TH_thread.Abort()
End If
End If
End If
End If
End Sub
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(300)
If retVal.Length = td_name_size Then
Return retVal
Else
Return "0"
End If
End Function
Private Sub InputTimer_Tick(sender As Object, e As EventArgs) Handles InputTimer.Tick
If InputCnt Then
InputCnt -= 1
Else
If rdb_prod.Checked = True Then
If txb_serial_num.Text <> "" Then
InputTimer.Enabled = False
If chbAutoMeasure.Checked Then
btn_prod_Click(sender, e)
Else
btn_prod.Focus()
btn_prod.Refresh()
End If
End If
ElseIf rdb_freq_auto.Checked = True Then
If txb_barcode.Text <> "" Then
InputTimer.Enabled = False
If chbAutoMeasure.Checked Then
btnrun_Click(sender, e)
Else
txb_barcode.Focus()
txb_barcode.Refresh()
End If
End If
ElseIf rdb_data_check.Checked = True Then
If txb_5_barcode.Text <> "" Then
InputTimer.Enabled = False
If chbAutoMeasure.Checked Then
btn_5_check_Click(sender, e)
If ckb_auto_write.Checked = True And write_5_error = False Then
txb_5_result.Text = "입력대기"
txb_5_result.BackColor = Color.Khaki
TH_thread = New Thread(AddressOf thread_func)
TH_thread.IsBackground = True
TH_thread.Start()
thread_type = True
ElseIf ckb_auto_delete.Checked = True And write_5_error = False Then
btn_5_delete_Click(sender, e)
End If
Else
txb_5_barcode.Focus()
txb_5_barcode.Refresh()
End If
End If
Else
InputTimer.Enabled = False
If chbAutoMeasure.Checked Then
reserve = False
btnRunPD1_Click(sender, e)
Else
btnRunPD1.Focus()
btnRunPD1.Refresh()
End If
End If
End If
End Sub
Private Sub OpenSerial()
Try
If ParaComport <> "" Then
If cmdSerialPort.IsOpen = False Then
With cmdSerialPort
.PortName = ParaComport
.BaudRate = 230400
.DataBits = 8
.Parity = IO.Ports.Parity.None
.StopBits = IO.Ports.StopBits.One
.Handshake = IO.Ports.Handshake.None
End With
cmdSerialPort.Open()
serial_switch = True
End If
Else
cart_timer.Enabled = False
MsgBox("시리얼포트를 설정해주세요!" & vbCrLf & "", vbCritical, "DUALSONIC T/D Selecter Tester Manager")
serial_switch = False
End If
Catch ex As Exception
cart_timer.Enabled = False
MsgBox("COM 포트 에러" & vbCrLf & "", vbOK + vbCritical, "DUALSONIC T/D Selecter Tester Manager")
serial_switch = False
End Try
End Sub
Private Sub txbPV_SN_TextChanged(sender As Object, e As EventArgs) Handles txbPV_SN.TextChanged
Dim tmpStr As String
btnc_run.Text = "검색"
If txbPV_SN.Text <> "" Then
cart_timer.Enabled = False
If InputCnt = 0 And chbUseBarcode.Checked = True Then
tmpStr = txbPV_SN.Text
If (Len(tmpStr) > 1) Then
tmpStr = Mid(tmpStr, Len(tmpStr), 1)
txbPV_SN.Clear()
txbPV_SN.AppendText(tmpStr)
End If
SetInputCnt()
End If
reserve = False
End If
End Sub
Sub SetInputCnt()
InputCnt = InputCntVal
InputTimer.Enabled = True
End Sub
Private Function dotRunning() As Boolean
Dim serial_number = txbPV_SN.Text
txb_grade.Text = "출력중"
txb_CValue.Text = "출력중"
nudPower.Value = 0
nudDeep.Text = 0
txb_grade.BackColor = Color.Yellow
txb_CValue.BackColor = Color.Yellow
If db_search(serial_number) Then
txbCapacitor.Text = info_select(info_data.pv_freq)
txbPV_Date.Text = info_select(info_data.pv_date)
txbPV_C.Text = info_select(info_data.pv_cap)
txbPV_R.Text = info_select(info_data.pv_res)
txbPV_Z.Text = info_select(info_data.pv_imp)
txb_grade.Text = info_select(info_data.pv_grade)
txb_CValue.Text = info_select(info_data.pv_c)
txb_grade.BackColor = Color.Khaki
txb_CValue.BackColor = Color.Khaki
Return False
Else
txb_grade.Text = "FAIL"
txb_CValue.Text = "번호없음"
txb_grade.BackColor = Color.Red
txb_CValue.BackColor = Color.Red
MsgBox("데이터베이스에 해당 데이터가 존재하지 않습니다.", vbCritical)
Return True
End If
End Function
Private Function dotDBSearch() As Boolean
If dotRunning() Then
Return False
End If
End Function
Private Sub btnRunPD1_Click(sender As Object, e As EventArgs) Handles btnRunPD1.Click, btnc_run.Click
cModeRun()
End Sub
Private Sub cModeRun()
If cmdSerialPort.IsOpen = True Then
If btnc_run.Text = "검색" Then
txb_grade.Text = "대기"
txb_CValue.Text = "출력중"
txb_grade.BackColor = Color.Yellow
txb_CValue.BackColor = Color.Yellow
'nudDeep.Value = 0
nudDeep.BackColor = Color.White
'nudPower.Value = 0
nudPower.BackColor = Color.White
If db_search(txbPV_SN.Text) Then
txbCapacitor.Text = info_select(info_data.pv_c)
txbPV_Date.Text = info_select(info_data.pv_date)
txbPV_C.Text = info_select(info_data.pv_cap)
txbPV_R.Text = info_select(info_data.pv_res)
txbPV_Z.Text = info_select(info_data.pv_imp)
txb_grade.Text = info_select(info_data.pv_grade)
txb_CValue.Text = info_select(info_data.pv_freq)
txb_grade.BackColor = Color.Khaki
txb_CValue.BackColor = Color.Khaki
dotSerial = txbPV_SN.Text
btnc_run.Text = "입력"
txbPV_SN.BackColor = Color.Moccasin
threadOn()
Else
txb_grade.Text = "FAIL"
txb_CValue.Text = "번호없음"
txb_grade.BackColor = Color.Red
txb_CValue.BackColor = Color.Red
MsgBox("데이터베이스에 해당 데이터가 존재하지 않습니다.", vbCritical)
End If
Else
Dim nowDate As String = Format(Now, "yy") & Format(Now, "MM")
If prod_reg_data("jomt", nowDate & "000000", "30", "0", "0") Then
If td_reg_data(dotSerial) Then
If sett_reg(txb_CValue.Text, "0") Then
If dbDotReg(txb_CValue.Text) Then
txbPV_SN.BackColor = Color.Green
btnc_run.Text = "검색"
Else
txbPV_SN.BackColor = Color.Red
MsgBox("데이터베이스 등록에 실패하였습니다.", vbCritical)
End If
Else
txbPV_SN.BackColor = Color.Red
MsgBox("주파수와 파워 입력에 실패하였습니다.", vbCritical)
End If
Else
txbPV_SN.BackColor = Color.Red
MsgBox("시리얼 번호 입력에 실패하였습니다.", vbCritical)
End If
Else
txbPV_SN.BackColor = Color.Red
MsgBox("기본 정보 입력에 실패하였습니다.", vbCritical)
End If
End If
Else
MsgBox("통신 포트가 연결되어 있지 않습니다!", vbExclamation)
End If
End Sub
Private Sub threadOff()
TH_thread = New Thread(AddressOf threadRunFunc)
If TH_thread.IsAlive = True Then
TH_thread.Abort()
End If
End Sub
Private Sub threadRunFunc()
Dim okNg As Boolean = False
Do Until okNg = True
Dim conCheck As String = shot_search()
If IsNumeric(conCheck) And conCheck <> "-1" Then
commDelegateFunc = New commDelegate(AddressOf cModeRun)
Me.Invoke(commDelegateFunc)
okNg = True
End If
Thread.Sleep(1000)
Loop
End Sub
Private Sub threadOn()
If cmdSerialPort.IsOpen = True Then
TH_thread = New Thread(AddressOf threadRunFunc)
If TH_thread.IsAlive = True Then
TH_thread.Abort()
End If
TH_thread.IsBackground = True
TH_thread.Start()
End If
End Sub
Private Function dbDotReg(freq As String) As Boolean
Dim p_date, p_time As String
p_date = DateTime.Now.ToString("yyyy-MM-dd")
p_time = DateTime.Now.ToString("HH:mm:ss")
DBCmd = "UPDATE " & cartridge_table & " SET TestStep = '21',Ct_Frequency = '" & freq & "',Ct_Power='0',Ct_Motor_Lv='0',P1_Date='" & p_date & "',P1_Time='" & p_time & "',P1_Model='MAXIMUM',P1_CartType='SET',P1_Frequency='" & freq & "' WHERE PV_SN = '" & dotSerial & "'"
If DBCommand(DBCmd) Then
DBCmd = "SELECT TestStep,Ct_Power,Ct_Motor_Lv FROM " & cartridge_table & " WHERE PV_SN = '" & dotSerial & "'"
If DBQueryReader(DBCmd) Then
If sqlDataQuery.Length = 3 Then
If sqlDataQuery(0) = "21" And sqlDataQuery(1) = "0" And sqlDataQuery(2) = "0" Then
Return True
End If
End If
End If
End If
Return False
End Function
Private Function db_info_search(serial_num As String) As Boolean
DBCmd = "SELECT Ct_Power,Ct_Motor_Lv,PV_Date,PV_Frequency,PV_Impedance,PV_Capacitance,PV_Resistance,QC_Capacitor,QC_Grade FROM " & cartridge_table & " WHERE PV_SN = '" & serial_num & "'"
If DBQueryReader(DBCmd) Then
info_select(info_data.pv_power) = sqlDataQuery(0)
info_select(info_data.pv_depth) = sqlDataQuery(1)
info_select(info_data.pv_date) = sqlDataQuery(2)
info_select(info_data.pv_freq) = sqlDataQuery(3)
info_select(info_data.pv_imp) = sqlDataQuery(4)
info_select(info_data.pv_cap) = sqlDataQuery(5)
info_select(info_data.pv_res) = sqlDataQuery(6)
info_select(info_data.pv_c) = sqlDataQuery(7)
info_select(info_data.pv_grade) = sqlDataQuery(8)
Return True
End If
Return False
End Function
Private Function db_search(serial_id As String) As Boolean
If reserve = False Then
If db_info_search(serial_id) Then
If rdb_freq_auto.Checked = True Then
reserve = True
cart_timer.Enabled = True
End If
Return True
Else
Return False
End If
Else
If info_select(info_data.pv_grade) = "LUX" Then
If sett_reg(info_select(info_data.pv_freq), 10) Then
If db_update() Then
cart_timer.Enabled = False
reserve = False
txbCartridgePD1.BackColor = Color.Green
txbCartridgePD1.Text = "성공"
Return True
Else
MsgBox("데이터베이스에 등록하지 못하였습니다. 연결 상태 및 데이터를 확인하여 주십시오.", vbCritical)
Return False
End If
Else
cart_timer.Enabled = False
reserve = False
txbCartridgePD1.BackColor = Color.Red
txbCartridgePD1.Text = "실패"
MsgBox("제품이 연결되지 않았습니다. 제품 전원을 켠 후 연결하여 주십시오.", vbCritical)
Return False
End If
Else
If freq_reg() Then
If db_update() Then
cart_timer.Enabled = False
reserve = False
txbCartridgePD1.BackColor = Color.Green
txbCartridgePD1.Text = "성공"
Return True
Else
MsgBox("데이터베이스에 등록하지 못하였습니다. 연결 상태 및 데이터를 확인하여 주십시오.", vbCritical)
Return False
End If
Else
cart_timer.Enabled = False
reserve = False
txbCartridgePD1.BackColor = Color.Red
txbCartridgePD1.Text = "실패"
Return False
End If
End If
End If
End Function
Private Function db_update() As Boolean
Dim p_date, p_time, p_freq, p_serial As String
p_date = DateTime.Now.ToString("yyyy-MM-dd")
p_time = DateTime.Now.ToString("HH:mm:ss")
p_freq = txbPV_FreqPD1.Text
p_serial = txbPV_SN.Text
DBCmd = "UPDATE " & cartridge_table & " SET P1_Date = '" & p_date & "', P1_Time = '" & p_time & "', P1_Model = 'MAXIMUM', P1_Frequency = '" & p_freq & "' WHERE PV_SN = '" & p_serial & "'"
If DBCommand(DBCmd) Then
Return True
End If
Return False
End Function
Private Function shot_search() As String
Dim retVal As String = "-1"
tmpCmdMessage = "shotconf"
cmdMessage = "[" & tmpCmdMessage & "]" + vbCrLf
If SendData(cmdMessage) Then
Return "-1"
End If
retVal = PollingReceiveData(1000)
CsvRegData = CsvRegData & retVal.Replace(",", "/").Replace(vbCrLf, "") & ","
Return retVal
End Function
Private Function shot_reg(shot As Integer) As String
Dim retval As String
tmpCmdMessage = "shotconf"
cmdMessage = "[" & tmpCmdMessage & " " & shot & "]" + vbCrLf
CsvRegData = CsvRegData & cmdMessage.Replace(",", "/").Replace(vbCrLf, "") & ","
If SendData(cmdMessage) Then
Return False
End If
retval = PollingReceiveData(500)
CsvRegData = CsvRegData & retval.Replace(",", "/").Replace(vbCrLf, "") & ","
If retval = shot Then
Return True
End If
Return False
End Function
Private Function freq_reg() As Boolean
Dim retVal As String
tmpCmdMessage = "FREQCONF"
cmdMessage = "[" & tmpCmdMessage & " " & info_select(info_data.pv_freq) & "]" + vbCrLf
If SendData(cmdMessage) Then
Return False
End If
retVal = PollingReceiveData(500)
If retVal <> txbPV_FreqPD1.Text Then
Return False
End If
Return True
End Function
Private Function sett_reg(freq As Int16, power As Int16) As Boolean
Dim retVal As String
tmpCmdMessage = "settdcnf"
cmdMessage = "[" & tmpCmdMessage & " " & freq & "," & power & "]" + vbCrLf
CsvRegData = CsvRegData & cmdMessage.Replace(",", "/").Replace(vbCrLf, "") & ","
If SendData(cmdMessage) Then
Return False
End If
retVal = PollingReceiveData(500)
CsvRegData = CsvRegData & retVal.Replace(",", "/").Replace(vbCrLf, "") & ","
If retVal <> freq & "," & power Then
Return False
End If
Return True
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 read_info() As String
Dim retval As String
tmpCmdMessage = "rdsconf1"
cmdMessage = "[" & tmpCmdMessage & "]" + vbCrLf
If SendData(cmdMessage) Then
Return "0"
End If
retval = PollingReceiveData(2000)
CsvRegData = CsvRegData & retval.Replace(",", "/").Replace(vbCrLf, "") & ","
If InStr(1, retval, ",") > 0 Then
Return retval
Else
Return "0"
End If
End Function
Private Function Depth_reg(level As Int16) As Boolean
Dim retval As String
tmpCmdMessage = "setdepth"
cmdMessage = "[" & tmpCmdMessage & " " & level & "]"
If SendData(cmdMessage) Then
Return False
End If
retval = PollingReceiveData(1000)
If retval = level Then
Return True
End If
Return False
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 False
End If
retval = PollingReceiveData(1000)
If retval = pulse & ",0,0,0,0" Then
Return True
End If
Return False
End Function
Private Function Motor_Read() As Int16
Dim retval As String
tmpCmdMessage = "setmotor"
cmdMessage = "[" & tmpCmdMessage & "]"
If SendData(cmdMessage) Then
Return False
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 SendData(SendMessage As String) As Boolean
Try
comport_nothing = False
If cmdSerialPort.IsOpen = True Then
cmdSerialPort.DiscardInBuffer()
cmdSerialPort.DiscardOutBuffer()
If cmdSerialPort.BytesToRead Then
cmdSerialPort.DiscardInBuffer()
End If
cmdSerialPort.WriteTimeout = -1
cmdSerialPort.WriteLine(SendMessage)
CmdTime = 0
EnableCmdTime = True
Else
cart_timer.Enabled = False
comport_nothing = True
MsgBox("통신 포트가 열리지 않았습니다.")
Return True
End If
Catch ex As Exception
Return True
End Try
Return False
End Function
Private Function PollingReceiveData(RdTimeout As Long) As String
Try
If cmdSerialPort.IsOpen = True Then
rxMessage = ""
cmdSerialPort.ReadTimeout = RdTimeout
rxMessage = cmdSerialPort.ReadLine()
Return ParsingData(False)
Else
cart_timer.Enabled = False
MsgBox("통신 포트가 열리지 않았습니다.")
Return True
End If
Catch ex As Exception
rxMessage = ""
Return Err.Description
End Try
End Function
Private Function ParsingData(CmdInclude As Boolean) As String
Dim cmdStr As String
Dim cmdVal(0 To 6) As String
Dim ReturnStr 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 = ""
If CmdInclude = True Then
ReturnStr = cmdStr & ","
End If
If InStr(1, cmdStr, "move") > 0 Then
cmdStr = "runmotor"
End If
Select Case cmdStr
Case "freqconf"
cmdStr = cmdVal(1)
Return cmdStr
Case "settdcnf"
cmdStr = (cmdVal(1) & "," & cmdVal(2))
Return cmdStr
Case "wrsconf1"
cmdStr = cmdVal(1) & "," & cmdVal(2) & "," & cmdVal(3) & "," & cmdVal(4) & "," & cmdVal(5)
Return cmdStr
Case "settdsn"
cmdStr = cmdVal(1)
Return cmdStr
Case "resetinf"
cmdStr = cmdVal(1)
Return cmdStr
Case "rdsconf1"
cmdStr = cmdVal(1) & "," & cmdVal(2) & "," & cmdVal(3) & "," & cmdVal(4) & "," & cmdVal(5)
Return cmdStr
Case "shotconf"
cmdStr = cmdVal(1)
Return cmdStr
Case "runmotor"
Return True
Case "setdepth"
cmdStr = cmdVal(1)
Return cmdStr
Case "setmotor"
cmdStr = cmdVal(1) & "," & cmdVal(2) & "," & cmdVal(3) & "," & cmdVal(4) & "," & cmdVal(5)
Return cmdStr
Case Else
Return "Else"
rxMessage = ""
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 Sub cmdSerial_Click(sender As Object, e As EventArgs) Handles cmdSerial.Click
If cmdSerial.Text = "스캔" Then
LoadComportName()
cmdSerial.Text = "연결"
Else
cmdSerialPort.Close()
ParaComport = cboComPort.SelectedItem
OpenSerial()
If serial_switch = True Then
cmdSerial.Text = "스캔"
save_comport("comport")
MsgBox("연결 완료", vbInformation)
Else
LoadComportName()
End If
End If
End Sub
Private Function save_comport(UseCtr As String) As Boolean
Dim filepath, comtext As String
Dim filename As String = ""
Dim reg_text As String = ""
Dim objwriter As System.IO.StreamWriter
On Error GoTo WR_File_Error
filepath = System.AppDomain.CurrentDomain.BaseDirectory() & "\config"
If Dir(filepath, vbDirectory) = "" Then
MkDir(filepath)
End If
Select Case UseCtr
Case "event"
filename = filepath & "\" & "event_config" & ".ini"
For i = 0 To dgv_data.Rows.Count - 2
comtext = dgv_data.Rows(i).Cells(0).Value.ToString & "" & dgv_data.Rows(i).Cells(1).Value.ToString & "" & dgv_data.Rows(i).Cells(2).Value.ToString & "" & dgv_data.Rows(i).Cells(3).Value.ToString & "☏§"
reg_text = reg_text + comtext
Next
reg_text = reg_text + txbOptBasic.Text
Case "comport"
filename = filepath & "\" & "config" & ".ini"
reg_text = cboComPort.Text & "/" & rdb_type_num & "/" & txb_code_front.Text & "/" & txb_prod1_code.Text & "/" & txb_output_6850.Text & "/" & txb_output_7000.Text
Case "print"
filename = filepath & "\" & "Printer_Config" & ".ini"
reg_text = ckbAllPnt.Checked & "" & ckbEachPnt.Checked & "" & txbName1.Text & "" & txbLabel1.Text & "" & txbCode1.Text & "" & txbText1.Text & "" & txbName2.Text & "" & txbLabel2.Text & "" & txbText2.Text & ""
End Select
System.IO.File.Delete(filename)
objwriter = New System.IO.StreamWriter(filename, True)
objwriter.Flush()
objwriter.WriteLine(reg_text)
objwriter.Close()
Return True
WR_File_Error:
MsgBox("Config Save Fail!")
Return False
End Function
Private Sub load_comport(LoadCtr As String)
Dim filepath, filename, configStr, Str, COMPORT_NAME, front_code, prod1_code, output_6850, output_7000 As String
Dim event_list() As String
Dim objReader As System.IO.StreamReader
filepath = System.AppDomain.CurrentDomain.BaseDirectory() & "\config"
If Dir(filepath, vbDirectory) = "" Then
MkDir(filepath)
End If
Select Case LoadCtr
Case "event"
dgv_data.Rows.Clear()
filename = filepath & "\event_config.ini"
If File.Exists(filename) = True Then
objReader = New System.IO.StreamReader(filename, True)
configStr = objReader.ReadLine
objReader.Close()
For count = UBound(Split(configStr, "§")) To 1 Step -1
Str = Mid(configStr, 1, InStr(configStr, "§") - 1)
ReDim event_list(UBound(Split(Str, "")))
configStr = Mid(configStr, InStr(configStr, "§") + 1, Len(configStr))
For i = 0 To UBound(Split(Str, "")) - 1
event_list(i) = Mid(Str, 1, InStr(Str, "") - 1)
Str = Mid(Str, InStr(Str, "") + 1, Len(Str))
Next
dgv_data.Rows.Add(event_list)
Next
txbOptBasic.Text = configStr
End If
Case "comport"
filename = filepath & "\config.ini"
If File.Exists(filename) = True Then
objReader = New System.IO.StreamReader(filename, True)
configStr = objReader.ReadLine
objReader.Close()
COMPORT_NAME = Mid(configStr, 1, InStr(1, configStr, "/") - 1)
configStr = Mid(configStr, InStr(1, configStr, "/") + 1, configStr.Length)
rdb_type_num = Mid(configStr, 1, InStr(1, configStr, "/") - 1)
configStr = Mid(configStr, InStr(1, configStr, "/") + 1, configStr.Length)
front_code = Mid(configStr, 1, InStr(1, configStr, "/") - 1)
configStr = Mid(configStr, InStr(1, configStr, "/") + 1, configStr.Length)
prod1_code = Mid(configStr, 1, InStr(1, configStr, "/") - 1)
configStr = Mid(configStr, InStr(1, configStr, "/") + 1, configStr.Length)
output_6850 = Mid(configStr, 1, InStr(1, configStr, "/") - 1)
output_7000 = Mid(configStr, InStr(1, configStr, "/") + 1, configStr.Length)
txb_code_front.Text = front_code
txb_prod1_code.Text = prod1_code
txb_output_6850.Text = output_6850
txb_output_7000.Text = output_7000
For i = 0 To cboComPort.Items.Count - 1
If COMPORT_NAME = cboComPort.Items(i) Then
cboComPort.SelectedIndex = i
ParaComport = cboComPort.SelectedItem
OpenSerial()
End If
Next
Select Case rdb_type_num
Case 1
' gbc_prod.Visible = True
' gpbSpec.Visible = True
' gpbProduct1.Visible = False
' 'gb_reg_freq.Visible = False
' gb_data_info.Visible = False
' gb_prod_info.Visible = False
' gbc_prod.Enabled = True
' gpbSpec.Enabled = True
' gpbProduct1.Enabled = False
' 'gb_reg_freq.Enabled = False
' gb_data_info.Enabled = False
' gb_prod_info.Enabled = False
' rdb_c_mode.Checked = True
' rdb_freq_auto.Checked = False
' rdb_prod.Checked = False
' rdb_freq_reg.Checked = False
rdb_c_mode.Checked = True
Case 2
' gbc_prod.Visible = False
' gpbSpec.Visible = True
' gpbProduct1.Visible = True
' 'gb_reg_freq.Visible = False
' gb_data_info.Visible = False
' gb_prod_info.Visible = False
' gbc_prod.Enabled = False
' gpbSpec.Enabled = True
' gpbProduct1.Enabled = True
' 'gb_reg_freq.Enabled = False
' gb_data_info.Enabled = False
' gb_prod_info.Enabled = False
' rdb_c_mode.Checked = False
' rdb_freq_auto.Checked = True
' rdb_prod.Checked = False
' rdb_freq_reg.Checked = False
rdb_freq_auto.Checked = True
Case 3
' gbc_prod.Visible = False
' gpbSpec.Visible = False
' gpbProduct1.Visible = False
' 'gb_reg_freq.Visible = False
' gb_data_info.Visible = False
' gb_prod_info.Visible = True
' gbc_prod.Enabled = False
' gpbSpec.Enabled = False
' gpbProduct1.Enabled = False
' 'gb_reg_freq.Enabled = False
' gb_data_info.Enabled = False
' gb_prod_info.Enabled = True
' rdb_c_mode.Checked = False
' rdb_freq_auto.Checked = False
' rdb_prod.Checked = True
' rdb_freq_reg.Checked = False
rdb_prod.Checked = True
Case 4
' gbc_prod.Visible = False
' gpbSpec.Visible = False
' gpbProduct1.Visible = False
' 'gb_reg_freq.Visible = False
' gb_data_info.Visible = True
' gb_prod_info.Visible = False
' gbc_prod.Enabled = False
' gpbSpec.Enabled = False
' gpbProduct1.Enabled = False
' 'gb_reg_freq.Enabled = False
' gb_data_info.Enabled = True
' gb_prod_info.Enabled = False
' rdb_c_mode.Checked = False
' rdb_freq_auto.Checked = False
' rdb_prod.Checked = False
' rdb_freq_reg.Checked = True
rdb_freq_reg.Checked = True
Case 5
rdb_data_check.Checked = True
End Select
End If
Case "print"
filename = filepath & "\" & "Printer_Config" & ".ini"
If File.Exists(filename) = True Then
objReader = New System.IO.StreamReader(filename, True)
configStr = objReader.ReadLine()
objReader.Close()
ckbAllPnt.Checked = Mid(configStr, 1, InStr(configStr, "") - 1)
configStr = Mid(configStr, InStr(configStr, "") + 1, configStr.Length)
ckbEachPnt.Checked = Mid(configStr, 1, InStr(configStr, "") - 1)
configStr = Mid(configStr, InStr(configStr, "") + 1, configStr.Length)
ckbprint_use()
txbName1.Text = Mid(configStr, 1, InStr(configStr, "") - 1)
configStr = Mid(configStr, InStr(configStr, "") + 1, configStr.Length)
txbLabel1.Text = Mid(configStr, 1, InStr(configStr, "") - 1)
configStr = Mid(configStr, InStr(configStr, "") + 1, configStr.Length)
txbCode1.Text = Mid(configStr, 1, InStr(configStr, "") - 1)
configStr = Mid(configStr, InStr(configStr, "") + 1, configStr.Length)
txbText1.Text = Mid(configStr, 1, InStr(configStr, "") - 1)
configStr = Mid(configStr, InStr(configStr, "") + 1, configStr.Length)
txbName2.Text = Mid(configStr, 1, InStr(configStr, "") - 1)
configStr = Mid(configStr, InStr(configStr, "") + 1, configStr.Length)
txbLabel2.Text = Mid(configStr, 1, InStr(configStr, "") - 1)
configStr = Mid(configStr, InStr(configStr, "") + 1, configStr.Length)
txbText2.Text = Mid(configStr, 1, InStr(configStr, "") - 1)
End If
End Select
End Sub
Private Sub ckbprint_use()
If ckbAllPnt.Checked = True Or ckbBoxPnt.Checked = True Or ckbWarPnt.Checked = True Then
ckbfrontprt.Checked = True
Else
ckbfrontprt.Checked = False
End If
End Sub
Private Sub LoadComportName()
Dim portname() As String
Dim i As Integer
Try
cboComPort.Items.Clear()
portname = SerialPort.GetPortNames
For i = 1 To portname.Length
cboComPort.Items.Add(portname(i - 1))
Next i
cboComPort.Text = "PRESS!"
Catch ex As Exception
MsgBox("COM 포트 에러" & vbCrLf & "", vbOK + vbCritical, "DUALSONIC T/D Selecter Tester Manager")
cart_timer.Enabled = False
End Try
End Sub
Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
End
End Sub
Private Sub txbPV_SN_Click(sender As Object, e As EventArgs) Handles txbPV_SN.Click
txbPV_SN.Text = ""
End Sub
Private Sub event_release()
cboselect.Items.Clear()
cboselect.Text = "사항을 선택해 주세요."
If dgv_data.Rows.Count <> 1 Then
For i = 0 To dgv_data.Rows.Count - 2
cboselect.Items.Add(dgv_data.Rows(i).Cells(0).Value)
Next
Else
cboselect.Text = "없음"
End If
End Sub
Private Sub btn_option_exit_Click(sender As Object, e As EventArgs) Handles btn_option_exit.Click
Dim ckb_num As Int16
If option_reg_chk = True Or option_print_chk = True Then
ckb_num = MsgBox("변경된 사항이 존재합니다. 저장하시겠습니까?", vbOKCancel + vbExclamation)
If ckb_num = 1 Then
If txb_code_front.Text.Replace(" ", "") = "" Then
txb_code_front.Text = "30"
End If
If txb_code_front.Text.Replace(" ", "") = "" Or txb_prod1_code.Text.Replace(" ", "") = "" Or txb_output_6850.Text.Replace(" ", "") = "" Or txb_output_7000.Text.Replace(" ", "") = "" Then
MsgBox("바코드 번호 중 비어있는 칸이 존재합니다. 모든 정보를 입력하여 주십시오.", vbExclamation)
Exit Sub
End If
If txbName1.Text.Replace(" ", "") = "" Or txbLabel1.Text.Replace(" ", "") = "" Or txbCode1.Text.Replace(" ", "") = "" Or txbText1.Text.Replace(" ", "") = "" Then
MsgBox("박스 바코드 인쇄 프린터 설정란에 빈 칸이 존재합니다. 빈 칸을 채워주십시오.", vbExclamation)
Exit Sub
End If
If txbName2.Text.Replace(" ", "") = "" Or txbLabel2.Text.Replace(" ", "") = "" Or txbText2.Text.Replace(" ", "") = "" Then
MsgBox("워런티 카드 텍스트 인쇄 프린터 설정란에 빈 칸이 존재합니다. 빈 칸을 채워주십시오.", vbExclamation)
Exit Sub
End If
If save_comport("event") Then
If save_comport("comport") Then
If save_comport("print") = False Then
MsgBox("데이터를 저장하는 도중 오류가 발생하였습니다.", vbCritical)
Exit Sub
End If
Else
MsgBox("데이터를 저장하는 도중 오류가 발생하였습니다.", vbCritical)
Exit Sub
End If
Else
MsgBox("데이터를 저장하는 도중 오류가 발생하였습니다.", vbCritical)
Exit Sub
End If
End If
End If
Me.Size = New Size(1040, 785)
gb_option.Visible = False
gpbSpec.Enabled = True
gbc_prod.Enabled = True
gbprodreg.Enabled = True
gb_prod_info.Enabled = True
gb_data_info.Enabled = True
gb_check_data.Enabled = True
gb_option.Location = New Point(1030, 1)
load_comport("event")
load_comport("comport")
event_release()
printOptionData()
mainOptionCkb()
control_page()
ckbprint_use()
End Sub
Private Sub mainOptionCkb()
If rdb_freq_auto.Checked = True Then
ckbfrontprt.Visible = True
ckbNonTD.Visible = False
ManagerTDUse = False
ckbfrontprt.Location = New Point(21, 48)
chbUseBarcode.Location = New Point(21, 20)
chbAutoMeasure.Location = New Point(156, 20)
ElseIf rdb_freq_reg.Checked = True Then
ckbfrontprt.Visible = False
ckbNonTD.Visible = True
ckbNonTD.Checked = True
ManagerTDUse = True
chbUseBarcode.Location = New Point(21, 20)
chbAutoMeasure.Location = New Point(156, 20)
ckbNonTD.Location = New Point(21, 48)
Else
ckbfrontprt.Visible = False
ckbNonTD.Visible = False
ManagerTDUse = False
chbUseBarcode.Location = New Point(21, 30)
chbAutoMeasure.Location = New Point(156, 30)
End If
End Sub
Private Sub control_page()
Select Case rdb_type_num
Case 1
gpbSpec.Visible = True
gbc_prod.Visible = True
gbprodreg.Visible = False
gb_data_info.Visible = False
gb_prod_info.Visible = False
gb_check_data.Visible = False
gbRecycle.Visible = False
gb_option.Location = New Point(5, 560)
'gbc_prod.Location = New Point(1, 221)
gbselect.Visible = False
gpbTime.Visible = True
gpbTime.Location = New Point(1, 2)
gbselect.Location = New Point(1, 2)
one_text_box()
one_text_refresh()
one_text_color()
one_vari_default()
txbPV_SN.Focus()
'lblCapacitor.Text = "주파수"
'lblCapacitor.Location = New Point(545, 58)
'InputCnt = 0
'InputTimer.Enabled = False
'cart_timer.Enabled = False
'reserve = False
Case 2
gpbSpec.Visible = False
gbc_prod.Visible = False
'gpbProduct1.Visible = True
gbprodreg.Visible = True
'gb_reg_freq.Visible = False
gb_data_info.Visible = False
gb_prod_info.Visible = False
gb_check_data.Visible = False
gbRecycle.Visible = False
'gb_option.Location = New Point(5, 560)
'gpbProduct1.Location = New Point(1, 221)
'lblCapacitor.Text = "C값"
'lblCapacitor.Location = New Point(565, 58)
gbselect.Visible = True
gpbTime.Visible = False
gpbTime.Location = New Point(1, 2)
gbselect.Location = New Point(1, 2)
ItemList = "TestDate,TestTime,ProdNo.,TDSerial.,Frequence,Power,TestStep,ProdReg(Send),ProdReg(Receive),ShotReg(Send),ShotReg(Receive),ShotCheck1(Receive),ShotCheck2(Receive),ShotCheck3(Receive),ShotCheck4(Receive)
"
TH_print = New Thread(AddressOf print_func)
If TH_print.IsAlive = False Then
TH_print.IsBackground = True
TH_print.Start()
thread_print = True
End If
'gb_reg_freq.Visible = False
'InputCnt = 0
'InputTimer.Enabled = False
'cart_timer.Enabled = False
'reserve = False
btnreset.PerformClick()
ckbselect.Checked = True
Case 3
gpbSpec.Visible = False
gbc_prod.Visible = False
'gpbProduct1.Visible = False
gbprodreg.Visible = False
gb_check_data.Visible = False
gb_data_info.Visible = False
gb_check_data.Visible = False
gbRecycle.Visible = False
gb_prod_info.Visible = True
'gb_option.Location = New Point(17, 609)
'gb_reg_freq.Location = New Point(1, 79)
gbselect.Visible = False
gpbTime.Visible = True
gpbTime.Location = New Point(1, 2)
gbselect.Location = New Point(1, 2)
btn_reset.PerformClick()
ItemList = "TestDate,TestTime,SerialNo.,Frequence,Power,TestStep,RegData(Send),RegData(Receive),RegSerial(Send),RegSerial(Receive),RegFreqPower(Send),RegFreqPower(Receive),ReadInfo(Receive)"
Case 4
gpbSpec.Visible = False
gbc_prod.Visible = False
'gpbProduct1.Visible = False
gbprodreg.Visible = False
'gb_reg_freq.Visible = True
gb_data_info.Visible = True
gb_prod_info.Visible = False
gb_check_data.Visible = False
gbRecycle.Visible = False
'gb_option.Location = New Point(5, 650)
'gb_reg_freq.Location = New Point(1, 79)
gbselect.Visible = False
gpbTime.Visible = True
gpbTime.Location = New Point(1, 2)
gbselect.Location = New Point(1, 2)
btn_text_reset.PerformClick()
Case 5
gpbSpec.Visible = False
gbc_prod.Visible = False
'gpbProduct1.Visible = False
gbprodreg.Visible = False
'gb_reg_freq.Visible = True
gb_data_info.Visible = False
gb_prod_info.Visible = False
gb_check_data.Visible = True
gbRecycle.Visible = False
'gb_option.Location = New Point(5, 650)
'gb_reg_freq.Location = New Point(1, 79)
gbselect.Visible = False
gpbTime.Visible = True
gpbTime.Location = New Point(1, 2)
gbselect.Location = New Point(1, 2)
btn_5_reset.PerformClick()
txb_5_barcode.Focus()
Case 6
gpbSpec.Visible = True
gbc_prod.Visible = False
gbprodreg.Visible = False
gb_data_info.Visible = False
gb_prod_info.Visible = False
gb_check_data.Visible = False
gb_option.Location = New Point(5, 560)
'gbc_prod.Location = New Point(1, 221)
gbselect.Visible = False
gbRecycle.Visible = True
gpbTime.Visible = True
gpbTime.Location = New Point(1, 2)
gbselect.Location = New Point(1, 2)
one_text_box()
one_text_refresh()
one_text_color()
one_vari_default()
txbPV_SN.Focus()
End Select
End Sub
Private Sub print_func()
Do While thread_print
print_th_play()
Loop
End Sub
Private Sub print_th_play()
If print_OnOff Then
print_on(txbpdnum.Text, txbCode1.Text, txbText1.Text, txbText2.Text)
End If
End Sub
Private Sub btnSetup_Click(sender As Object, e As EventArgs) Handles btnSetup.Click
Me.Location = New Point(0, 0)
ckbselect.Checked = False
reg_text_box()
reg_text_refresh()
reg_text_color()
reg_btn_refresh()
reg_txb_visible()
gb_option.Visible = True
gpbSpec.Enabled = False
gbc_prod.Enabled = False
gbprodreg.Enabled = False
gb_prod_info.Enabled = False
gb_data_info.Enabled = False
gb_check_data.Enabled = False
gb_option.Location = New Point(1, 1)
option_reg_chk = False
If TH_print.IsAlive Then
TH_print.Abort()
End If
'If btnSetup.Text = "설정" Then
' gb_option.Visible = True
' gpbSpec.Enabled = False
' gbc_prod.Enabled = False
' 'gpbProduct1.Enabled = False
' 'gb_reg_freq.Enabled = False
' gbprodreg.Enabled = False
' gb_prod_info.Enabled = False
' gb_data_info.Enabled = False
' If rdb_freq_reg.Checked = True Then
' gb_option.Location = New Point(5, 650)
' If thread_restart = True Then
' thread_type = False
' TH_thread.Abort()
' End If
' thread_restart = True
' ElseIf rdb_prod.Checked = True Then
' gb_option.Location = New Point(17, 609)
' Else
' gb_option.Location = New Point(5, 560)
' End If
' btnSetup.Text = "완료"
'Else
' gb_option.Visible = False
' gpbSpec.Enabled = True
' gbc_prod.Enabled = True
' 'gpbProduct1.Enabled = True
' gbprodreg.Enabled = True
' 'gb_reg_freq.Enabled = True
' gb_prod_info.Enabled = True
' gb_data_info.Enabled = True
' btnSetup.Text = "설정"
' 'save_comport()
' If rdb_prod.Checked = True Then
' If thread_restart = True Then
' TH_thread = New Thread(AddressOf thread_func)
' End If
' TH_thread.IsBackground = True
' TH_thread.Start()
' thread_type = True
' txb_serial_num.Focus()
' Else
' txbPV_SN.Focus()
' End If
'End If
Me.Size = New Size(1940, 785)
gb_option.Size = New Size(1910, 744)
btPrintref_Click(sender, e)
End Sub
Private Sub rdb_freq_auto_CheckedChanged(sender As Object, e As EventArgs) Handles rdb_freq_auto.CheckedChanged
rdb_type_num = 2
option_reg_chk = True
End Sub
Private Sub rdb_c_mode_CheckedChanged(sender As Object, e As EventArgs) Handles rdb_c_mode.CheckedChanged
rdb_type_num = 1
option_reg_chk = True
End Sub
Private Sub rdb_freq_reg_CheckedChanged(sender As Object, e As EventArgs) Handles rdb_freq_reg.CheckedChanged
rdb_type_num = 4
option_reg_chk = True
End Sub
Private Sub rdb_prod_CheckedChanged(sender As Object, e As EventArgs) Handles rdb_prod.CheckedChanged
rdb_type_num = 3
option_reg_chk = True
End Sub
Private Sub rdb_data_check_CheckedChanged(sender As Object, e As EventArgs) Handles rdb_data_check.CheckedChanged
rdb_type_num = 5
option_reg_chk = True
End Sub
Private Sub rdbTDRecycle_CheckedChanged(sender As Object, e As EventArgs) Handles rdbTDRecycle.CheckedChanged
rdb_type_num = 6
option_reg_chk = True
End Sub
'Private Sub btn_option_exit_Click(sender As Object, e As EventArgs)
' pn_option.Visible = False
' gpbTime.Visible = True
' gpbConfig.Visible = True
' btnExit.Visible = True
' gpbSpec.Visible = True
' If rdb_c_mode.Checked = True Then
' gbc_prod.Visible = True
' gpbProduct1.Visible = False
' gbc_prod.Location = New Point(1, 221)
' main_nothing()
' main_refresh()
' main_color()
' data_nothing_freq()
' data_refresh_freq()
' data_color_freq()
' data_nothing_c()
' data_refresh_c()
' data_color_c()
' lblCapacitor.Text = "주파수"
' lblCapacitor.Location = New Point(545, 58)
' cart_timer.Enabled = False
' reserve = False
' Else
' gbc_prod.Visible = False
' gpbProduct1.Visible = True
' gpbProduct1.Location = New Point(1, 221)
' main_nothing()
' main_refresh()
' main_color()
' data_nothing_freq()
' data_refresh_freq()
' data_color_freq()
' data_nothing_c()
' data_refresh_c()
' data_color_c()
' lblCapacitor.Text = "C값"
' lblCapacitor.Location = New Point(565, 58)
' cart_timer.Enabled = False
' reserve = False
' End If
' txbPV_SN.Focus()
'End Sub
Private Sub cart_timer_Tick(sender As Object, e As EventArgs) Handles cart_timer.Tick
'Dim message_code, message_serial As String
If rdb_prod.Checked = True Then
'If cmdSerialPort.IsOpen = True Then
' 'If check_connection() Then
' If cmdSerialPort.BytesToRead <> 0 Then
' cmdSerialPort.ReadTimeout = 0
' rxMessage = cmdSerialPort.ReadLine
' message_code = read_info()
' If message_code <> "0" Then
' message_code = Mid(message_code, InStr(1, message_code, ",") + 1, message_code.Length)
' message_serial = Mid(message_code, 1, InStr(1, message_code, ",") - 1)
' message_code = Mid(message_code, InStr(1, message_code, ",") + 1, message_code.Length)
' message_code = Mid(message_code, 1, InStr(1, message_code, ",") - 1)
' txb_prod_code.Text = message_code & message_serial
' End If
' Else
' txb_prod_code.Text = ""
' End If
'End If
If check_connection() Then
btn_prod_Click(sender, e)
End If
Else
If reserve = True Then
If check_connection() Then
btnRunPD1_Click(sender, e)
End If
End If
End If
End Sub
Private Function check_connection() As String
Dim retval As String
tmpCmdMessage = "FREQCONF"
cmdMessage = "[" & tmpCmdMessage & "]"
If SendData(cmdMessage) Then
Return False
End If
retval = PollingReceiveData(500)
If IsNumeric(retval) = True Then
Return True
Else
If rdb_prod.Checked = False Then
cart_timer.Enabled = False
MsgBox("제품이 연결되지 않았습니다. 제품을 연결해 주십시오.", vbCritical)
Return False
End If
Return False
End If
End Function
Private Sub time_timer_Tick(sender As Object, e As EventArgs) Handles time_timer.Tick
lblTime.Text = Now
End Sub
Private Sub txb_reg_freq_KeyPress(sender As Object, e As KeyPressEventArgs)
If Not Char.IsDigit(e.KeyChar) And Not Char.IsControl(e.KeyChar) And Not e.KeyChar = "." Then
e.Handled = True
End If
End Sub
Private Function freq_data(freq As Int16) As Int16
If freq >= 6700 And freq <= 7200 Then
Return freq
End If
Return 0
End Function
Private Function power_data(power As Single) As Int16
power = power * 100
If power >= -50 And power <= 50 Then
Return power
End If
Return 100
End Function
Private Sub txb_td_serial_GotFocus(sender As Object, e As EventArgs) Handles txb_td_serial.GotFocus, txb_prod_Depth.GotFocus, txb_prod_grade.GotFocus, txb_prod_power.GotFocus, txb_prod_state.GotFocus, txbStCheck.GotFocus, txbNdCheck.GotFocus, txbRdCheck.GotFocus
txb_serial_num.Focus()
End Sub
Private Sub btn_prod_Click(sender As Object, e As EventArgs) Handles btn_prod.Click
Dim output_code As String
Dim text_serial As String = txb_serial_num.Text
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")
CsvRegData = Nothing
If text_serial = txb_prod1_code.Text Or text_serial = txb_output_6850.Text Or text_serial = txb_output_7000.Text Then
output_code = text_serial
text_serial = txb_code_front.Text & Format(Now, "yy") & Format(Now, "MM") & text_serial
Else
output_code = String.Empty
End If
If InStr(1, text_serial, td_first_name) > 0 Or InStr(1, text_serial, td_first_name2) > 0 Then
If Maximum_Data.td_serial <> "" Or Maximum_Data.td_step <> Nothing Then
If MsgBox("작업하고 있는 내용이 존재합니다. 새로 측정하시겠습니까?", vbYesNo + vbExclamation) = MsgBoxResult.No Then
Exit Sub
End If
End If
thr_vari_reset()
reset_box()
txb_prod_state.Text = "대기"
txb_prod_state.BackColor = Color.Gold
If db_info_search(text_serial) Then
txb_td_serial.Text = text_serial
txb_td_serial.BackColor = Color.Green
txb_prod_grade.Text = info_select(info_data.pv_grade)
txb_prod_power.Text = Val(info_select(info_data.pv_power)) / 100
txb_prod_Depth.Text = info_select(info_data.pv_depth)
Maximum_Data.td_serial = text_serial ''확인 요망
Maximum_Data.td_power = info_select(info_data.pv_power)
Maximum_Data.td_Depth = info_select(info_data.pv_depth)
txb_prod_state.Text = "TD 정보등록"
txb_prod_state.BackColor = Color.Green
Else
txb_prod_state.Text = "TD 정보실패"
txb_prod_state.BackColor = Color.Red
MsgBox("데이터베이스에 해당 데이터가 존재하지 않습니다.", vbCritical)
Exit Sub
End If
Else
If Maximum_Data.td_serial = "" Then
txb_prod_state.Text = "TD 정보 누락"
txb_prod_state.BackColor = Color.Red
MsgBox("TD 정보를 알 수 없습니다. TD 바코드를 입력하여 주십시오.", vbExclamation)
Exit Sub
Else
If Maximum_Data.td_serial <> "" And Maximum_Data.prod_serial <> "" Then
If prod_reg_data("jomt", Maximum_Data.prod_serial, txb_code_front.Text, "82", "0") Then
If td_reg_data(Maximum_Data.td_serial) Then
If sett_reg(Maximum_Data.td_freq, Maximum_Data.td_power) Then
If Motor_reg(Maximum_Data.td_Depth) Then
If db_data_reg() Then
Maximum_Data.td_textbox.Text = "OK"
Maximum_Data.td_textbox.BackColor = Color.Green
If txbStCheck.Text = "OK" And txbNdCheck.Text = "OK" And txbRdCheck.Text = "OK" Or ckb_info.Checked = True Then
Dim ComSerial As String = read_info()
ComSerial = Mid(ComSerial, InStr(1, ComSerial, ",") + 1, ComSerial.Length)
ComSerial = Mid(ComSerial, 1, InStr(1, ComSerial, ",") - 1)
If Maximum_Data.prod_serial = ComSerial Then
Maximum_Data.prod_serial = Nothing
txb_prod_state.Text = "정보입력 완료"
txb_prod_state.BackColor = Color.Green
thr_vari_reset()
reset_box()
Else
MsgBox("정보입력한 데이터값과 다릅니다. 정보를 확인하여 주십시오.", vbCritical)
End If
txb_serial_num.Focus()
Else
Maximum_Data.prod_serial = Nothing
txb_prod_state.Text = Maximum_Data.td_freq & " 입력 완료"
txb_prod_state.BackColor = Color.Green
End If
Save_Csv(NowDate & "," & NowTime & "," & txb_td_serial.Text & "," & Maximum_Data.td_freq & "," & Maximum_Data.td_power & "," & Maximum_Data.td_step & "," & CsvRegData, True)
Else
Maximum_Data.td_textbox.Text = "FAIL"
Maximum_Data.td_textbox.BackColor = Color.Red
txb_prod_state.Text = "정보입력 실패"
txb_prod_state.BackColor = Color.Red
Save_Csv(NowDate & "," & NowTime & "," & text_serial & "," & Maximum_Data.td_freq & "," & Maximum_Data.td_power & "," & Maximum_Data.td_step & "," & CsvRegData, True)
MsgBox("정보 입력은 완료되었으나 데이터베이스에 등록하지 못하였습니다. 다시 시도하여 주십시오.", vbExclamation)
InputTimer.Enabled = False
End If
Else
fail_data(Maximum_Data.td_textbox)
InputTimer.Enabled = False
End If
Else
fail_data(Maximum_Data.td_textbox)
InputTimer.Enabled = False
End If
Else
fail_data(Maximum_Data.td_textbox)
InputTimer.Enabled = False
End If
Else
fail_data(Maximum_Data.td_textbox)
InputTimer.Enabled = False
End If
Else
If text_serial.Length = prod_text_count And output_code <> String.Empty Then
Maximum_Data.prod_code = Mid(text_serial, 1, 2)
Maximum_Data.prod_serial = Mid(text_serial, 3, text_serial.Length)
If output_code = txb_output_6850.Text Then
Maximum_Data.td_textbox = txbStCheck
Maximum_Data.td_step = 21
Maximum_Data.td_freq = 6850
ElseIf output_code = txb_output_7000.Text Then
Maximum_Data.td_textbox = txbNdCheck
Maximum_Data.td_step = 22
Maximum_Data.td_freq = 7000
Else
Maximum_Data.td_freq = info_select(info_data.pv_freq)
Maximum_Data.td_textbox = txbRdCheck
Maximum_Data.td_step = 23
End If
Maximum_Data.td_textbox.Text = "입력대기"
Maximum_Data.td_textbox.BackColor = Color.Yellow
If Maximum_Data.td_serial <> "" And Maximum_Data.prod_serial <> "" Then
txb_prod_state.Text = "제품 연결 대기.."
txb_prod_state.BackColor = Color.Orange
TH_thread = New Thread(AddressOf thread_func)
TH_thread.IsBackground = True
TH_thread.Start()
thread_type = True
End If
Else
txb_prod_state.Text = "잘못된 번호입력"
txb_prod_state.BackColor = Color.Red
MsgBox("잘못된 시리얼 번호를 입력하였습니다. 다시 확인하여 주십시오.", vbCritical)
Exit Sub
End If
End If
End If
End If
End Sub
'Private Sub btn_prod_Click(sender As Object, e As EventArgs) Handles btn_prod.Click
' Dim text_serial As String
' Dim output_code As String = ""
' text_serial = txb_serial_num.Text
' If text_serial = txb_prod1_code.Text Or text_serial = txb_output_6850.Text Or text_serial = txb_output_7000.Text Then
' output_code = text_serial
' text_serial = txb_code_front.Text & Format(Now, "yy") & Format(Now, "MM") & text_serial
' End If
' If Maximum_Data.td_serial = "" Or Maximum_Data.prod_serial = "" Then
' If InStr(1, text_serial, td_first_name) > 0 Then
' If db_info_search(text_serial) Then
' txb_td_serial.Text = text_serial
' txb_td_serial.BackColor = Color.Green
' txb_prod_freq.Text = info_select(info_data.pv_freq)
' txb_prod_grade.Text = info_select(info_data.pv_grade)
' If txb_prod_grade.Text = "LUX" Then
' txb_prod_power.Text = 0.1
' Else
' txb_prod_power.Text = 0
' End If
' Maximum_Data.td_serial = text_serial
' Maximum_Data.td_freq = info_select(info_data.pv_freq)
' Maximum_Data.td_power = txb_prod_power.Text * 100
' txb_prod_state.Text = "TD 정보등록"
' txb_prod_state.BackColor = Color.Green
' If Maximum_Data.td_serial <> "" And Maximum_Data.prod_serial <> "" Then
' txb_prod_state.Text = "제품 연결 대기.."
' txb_prod_state.BackColor = Color.Orange
' TH_thread = New Thread(AddressOf thread_func)
' TH_thread.IsBackground = True
' TH_thread.Start()
' thread_type = True
' End If
' Else
' txb_prod_state.Text = "TD 정보실패"
' txb_prod_state.BackColor = Color.Red
' MsgBox("데이터베이스에 해당 데이터가 존재하지 않습니다.", vbCritical)
' End If
' ElseIf text_serial.Length = prod_text_count Then
' txb_prod_serial.Text = text_serial
' txb_prod_serial.BackColor = Color.Green
' Maximum_Data.prod_code = Mid(text_serial, 1, 2)
' Maximum_Data.prod_serial = Mid(text_serial, 3, text_serial.Length)
' txb_prod_state.Text = "제품 정보등록"
' txb_prod_state.BackColor = Color.Green
' If Maximum_Data.td_serial <> "" And Maximum_Data.prod_serial <> "" Then
' txb_prod_state.Text = "제품 연결 대기.."
' txb_prod_state.BackColor = Color.Orange
' TH_thread = New Thread(AddressOf thread_func)
' TH_thread.IsBackground = True
' TH_thread.Start()
' thread_type = True
' End If
' Else
' txb_prod_state.Text = "잘못된 번호입력"
' txb_prod_state.BackColor = Color.Red
' MsgBox("잘못된 시리얼 번호를 입력하였습니다. 다시 확인하여 주십시오.", vbCritical)
' End If
' Else
' 'If data_reset() Then
' If output_code = txb_output_6850.Text Then
' Maximum_Data.td_step = 21
' Maximum_Data.td_freq = 6850
' Maximum_Data.td_power = 0
' ElseIf output_code = txb_output_7000.Text Then
' Maximum_Data.td_step = 22
' Maximum_Data.td_freq = 7000
' Maximum_Data.td_power = 0
' Else
' Maximum_Data.td_step = 23
' End If
' If prod_reg_data("jomt", Maximum_Data.prod_serial, txb_code_front.Text, "82", "0") Then
' If td_reg_data(Maximum_Data.td_serial) Then
' If sett_reg(Maximum_Data.td_freq, Maximum_Data.td_power) Then
' If db_data_reg() Then
' txb_td_serial.BackColor = Color.Green
' txb_prod_serial.BackColor = Color.Green
' txb_prod_state.Text = "정보입력 완료"
' txb_prod_state.BackColor = Color.Green
' thr_vari_reset()
' reset_box()
' txb_serial_num.Focus()
' Else
' txb_td_serial.BackColor = Color.Red
' txb_prod_serial.BackColor = Color.Red
' txb_prod_state.Text = "정보입력 실패"
' txb_prod_state.BackColor = Color.Red
' MsgBox("정보 입력은 완료되었으나 데이터베이스에 등록하지 못하였습니다. 다시 시도하여 주십시오.", vbExclamation)
' InputTimer.Enabled = False
' End If
' Else
' fail_data()
' InputTimer.Enabled = False
' End If
' Else
' fail_data()
' InputTimer.Enabled = False
' End If
' Else
' fail_data()
' InputTimer.Enabled = False
' End If
' 'Else
' ' fail_data()
' ' InputTimer.Enabled = False
' 'End If
' End If
'End Sub
Private Sub fail_data(txtBox As TextBox)
txb_td_serial.BackColor = Color.Red
txtBox.BackColor = Color.Red
txb_prod_state.Text = "정보입력 실패"
txb_prod_state.BackColor = Color.Red
MsgBox("제품과의 연결이 올바르지 않습니다. 연결 상태를 확인하여 주십시오.", vbCritical)
End Sub
Private Function data_reset() As Boolean
Dim retval As String
tmpCmdMessage = "resetinf"
cmdMessage = "[" & tmpCmdMessage & "]" + vbCrLf
If SendData(cmdMessage) Then
Return False
End If
retval = PollingReceiveData(1500)
If retval <> "ok" Then
Return False
End If
Return True
End Function
Private Function td_reg_data(td_reg_serial As String) As Boolean
Dim retval As String
tmpCmdMessage = "settdsn"
cmdMessage = "[" & tmpCmdMessage & " " & td_reg_serial & "]" + vbCrLf
CsvRegData = CsvRegData & cmdMessage.Replace(",", "/").Replace(vbCrLf, "") & ","
If SendData(cmdMessage) Then
Return False
End If
retval = PollingReceiveData(1500)
CsvRegData = CsvRegData & retval.Replace(",", "/").Replace(vbCrLf, "") & ","
If retval <> td_reg_serial.ToLower Then
Return False
End If
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
tmpCmdMessage = "wrsconf1"
cmdMessage = "[" & tmpCmdMessage & " " & factory & "," & prod_serial & "," & prod_code & "," & area & "," & abroad & "]" + vbCrLf
CsvRegData = CsvRegData & cmdMessage.Replace(",", "/").Replace(vbCrLf, "") & ","
If SendData(cmdMessage) Then
Return False
End If
retVal = PollingReceiveData(2000)
CsvRegData = CsvRegData & retVal.Replace(",", "/").Replace(vbCrLf, "") & ","
If retVal <> factory.ToLower & "," & prod_serial & "," & prod_code & "," & area & "," & abroad Then
Return False
End If
Return True
End Function
Private Sub reset_box()
txb_td_serial.Text = "대기"
txb_td_serial.BackColor = DefaultBackColor
txb_prod_Depth.Text = "대기"
txb_prod_Depth.BackColor = DefaultBackColor
txb_prod_grade.Text = "대기"
txb_prod_grade.BackColor = DefaultBackColor
txb_prod_power.Text = "대기"
txb_prod_power.BackColor = DefaultBackColor
txbStCheck.Text = "대기"
txbStCheck.BackColor = DefaultBackColor
txbNdCheck.Text = "대기"
txbNdCheck.BackColor = DefaultBackColor
txbRdCheck.Text = "대기"
txbRdCheck.BackColor = DefaultBackColor
End Sub
Private Sub btn_reset_Click(sender As Object, e As EventArgs) Handles btn_reset.Click
two_text_box()
two_text_refresh()
two_text_color()
two_btn_refresh()
thr_vari_reset()
txb_serial_num.Focus()
End Sub
Private Sub txb_serial_num_TextChanged(sender As Object, e As EventArgs) Handles txb_serial_num.TextChanged
Dim tmpStr As String
If InputCnt = 0 And chbUseBarcode.Checked = True Then
tmpStr = txb_serial_num.Text
If (Len(tmpStr) > 1) Then
tmpStr = Mid(tmpStr, Len(tmpStr), 1)
txb_serial_num.Clear()
txb_serial_num.AppendText(tmpStr)
End If
SetInputCnt()
End If
End Sub
Private Sub txb_serial_num_Click(sender As Object, e As EventArgs) Handles txb_serial_num.Click
txb_serial_num.Text = ""
End Sub
Private Function db_data_reg() As Boolean
Dim p_date, p_time As String
p_date = DateTime.Now.ToString("yyyy-MM-dd")
p_time = DateTime.Now.ToString("HH:mm:ss")
DBCmd = "UPDATE " & cartridge_table & " SET TestStep = '" & Maximum_Data.td_step & "', Ct_Manufacture_Name = 'JOMT', Ct_Manufacture_Year = '" & Format(Now, "yy") & "', Ct_Manufacture_Month = '" & Format(Now, "MM") & "', Ct_Model = 'MAXIMUM', Ct_Type = 'SET', Ct_Abroad = '82', Ct_Agency = '0' , Ct_Frequency = '" & Maximum_Data.td_freq & "', Ct_Power = '" & Maximum_Data.td_power & "', Ct_Motor_Lv = '" & Maximum_Data.td_Depth & "' , P1_Date = '" & p_date & "', P1_Time = '" & p_time & "', P1_Model = 'MAXIMUM',P1_CartType = 'SET', P1_Frequency = '" & Maximum_Data.td_freq & "' WHERE PV_SN = '" & Maximum_Data.td_serial & "'"
If DBCommand(DBCmd) Then
DBCmd = "SELECT TestStep FROM " & cartridge_table & " WHERE PV_SN = '" & Maximum_Data.td_serial & "' "
If Maximum_Data.td_step = DBQueryScalar(DBCmd) Then
Return True
Else
Return False
End If
End If
Return False
End Function
Private Sub btn_info_write_Click(sender As Object, e As EventArgs) Handles btn_info_write.Click
Dim tmpStrSN, fir_serial, sec_serial, area_code, abr_code, td_name As String
Dim i As Int16
Dim stageCnt As Integer
Dim db_reg_swt As Boolean = False
Try
If txbFactory.Text = "" Then txbFactory.Text = "jomt"
If txbFactory.Text = "" Or nudSN.Text = "" Or nudYear.Text = "" Or nudMonth.Text = "" Then
stageCnt = 0
MsgBox("정보가 부족합니다. 빈칸을 채워주세요.", vbExclamation)
GoTo FailExit
End If
txbInfoBox.Visible = True
txbInfoBox.Text = "RUNNING"
txbInfoBox.BackColor = Color.GreenYellow
txbInfoBox.Refresh()
If ManagerTDUse = True Then
If rdbV1.Checked = False And rdbV2.Checked = False Then
stageCnt = 0
MsgBox("타입을 설정하지 않으셨습니다.", vbExclamation)
GoTo FailExit
End If
End If
td_name = td_name_load()
If ckb_db_use.Checked = True And td_name = "1" Or td_name = "0" Then
stageCnt = 1
MsgBox("TD 시리얼 번호를 등록하지 않았습니다." & vbCrLf & "TD 시리얼 번호를 먼저 입력하여 주십시오.", vbExclamation)
GoTo FailExit
Else
If ckb_db_use.Checked = True And td_Serial_db(td_name) = 0 Then
stageCnt = 1
MsgBox("TD 시리얼 번호가 데이터베이스에 존재하지 않습니다." & vbCrLf & " TD 시리얼 번호를 확인하여 주십시오.", vbExclamation)
GoTo FailExit
End If
i = Len(nudSN.Text)
tmpStrSN = nudSN.Text
If tmpStrSN = "0" Then
db_reg_swt = True
End If
For cnt = i To 5
tmpStrSN = "0" + tmpStrSN
Next cnt
fir_serial = Mid(tmpStrSN, 1, 3)
sec_serial = Mid(tmpStrSN, 4, 6)
Dim ModeSet As String
If rdbV1.Checked = True Then
ModeSet = "0"
Else
ModeSet = "1"
End If
ModeSet = "3" & ModeSet
If Len(nudMonth.Text) = 2 Then
tmpStrSN = nudYear.Text & nudMonth.Text & tmpStrSN
txbBarcode.Text = ModeSet & nudYear.Text & nudMonth.Text & sec_serial & fir_serial
ElseIf Len(nudMonth.Text) = 1 Then
tmpStrSN = nudYear.Text & "0" & nudMonth.Text & tmpStrSN
txbBarcode.Text = ModeSet & nudYear.Text & "0" & nudMonth.Text & sec_serial & fir_serial
Else
stageCnt = 2
GoTo FailExit
End If
If ckb_db_use.Checked = True Then
If prod_info_dup_check(txbBarcode.Text, td_name) Then
MsgBox("데이터베이스에 같은 제품 시리얼 번호가 존재합니다.", vbCritical)
stageCnt = 3
GoTo FailExit
End If
End If
area_code = read_info()
If area_code <> "0" Then
abr_code = Mid(area_code, InStrRev(area_code, ",", area_code.Length) + 1, area_code.Length)
area_code = Mid(area_code, 1, InStrRev(area_code, ",", area_code.Length) - 1)
area_code = Mid(area_code, InStrRev(area_code, ",", area_code.Length) + 1, area_code.Length)
Else
area_code = "82"
abr_code = "0"
End If
If prod_reg_data(txbFactory.Text, tmpStrSN, ModeSet, area_code, abr_code) Then
If db_reg_swt = True Then
If prod_db_delete(td_name) Then
txbInfoBox.Text = "SUCCESS"
txbInfoBox.BackColor = Color.Green
GoTo SuccessExit
Else
stageCnt = 6
GoTo FailExit
End If
Else
If prod_serial_db(txbBarcode.Text, txbFactory.Text, nudYear.Text, nudMonth.Text, nudSN.Text, td_name) Then
txbInfoBox.Text = "SUCCESS"
txbInfoBox.BackColor = Color.Green
GoTo SuccessExit
Else
stageCnt = 5
GoTo FailExit
End If
End If
End If
stageCnt = 4
GoTo FailExit
End If
Catch ex As Exception
stageCnt = 7
GoTo FailExit
End Try
FailExit:
txbInfoBox.Text = "Timeout" + Str(stageCnt)
txbInfoBox.BackColor = Color.Red
SuccessExit:
txbInfoBox.Refresh()
End Sub
Private Function prod_dup_check(prod_id As String) As Int16
Dim prod_count As Int16
DBCmd = "SELECT COUNT(Product_SN) FROM " & cartridge_table & " WHERE Product_SN = '" & prod_id & "'"
prod_count = DBQueryScalar(DBCmd)
If prod_count = 0 Then
Return False
End If
Return True
End Function
Private Function prod_info_dup_check(prod_id As String, td_serial As String) As Int16
Dim prod_count As Int16
Dim td_sn As String
Dim UseData As String
If ManagerTDUse = True Then
UseData = cartridge_table
Else
UseData = NonCartridge_table
End If
DBCmd = "SELECT COUNT(Product_SN), PV_SN FROM " & UseData & " WHERE Product_SN = '" & prod_id & "'"
If DBQueryReader(DBCmd) Then
prod_count = sqlDataQuery(0)
td_sn = sqlDataQuery(1)
Else
Return True
End If
If td_sn <> td_serial.ToUpper And prod_count > 0 Then
Return True
End If
Return False
End Function
Private Function prod_serial_db(prod_seiral_data As String, factory_code As String, make_year As String, make_month As String, sn_code As String, td_Serial As String) As Boolean
If ckb_db_use.Checked = True Then
DBCmd = "UPDATE " & cartridge_table & " SET Product_SN = '" & prod_seiral_data & "', Ct_Manufacture_Name = '" & factory_code.ToUpper & "', Ct_Manufacture_Year = '" & make_year & "', Ct_Manufacture_Month = '" & make_month & "', Ct_SN = '" & sn_code & "', Ct_Model = 'MAXIMUM', Ct_Type = 'SET', Ct_Remain_ShotCnt = 0 WHERE PV_SN = '" & td_Serial & "'"
If DBCommand(DBCmd) Then
Return True
End If
Return False
Else
Return True
End If
End Function
Private Function prod_db_delete(prod_serial_data As String) As Boolean
If ckb_db_use.Checked = True Then
DBCmd = "UPDATE " & cartridge_table & " SET TestStep = '23', Product_SN=NULL, Ct_Manufacture_Name=NULL, Ct_Manufacture_Year = NULL, Ct_Manufacture_Month = NULL, Ct_SN = NULL, Ct_Abroad = NULL, Ct_Agency = NULL WHERE PV_SN = '" & prod_serial_data & "'"
If DBCommand(DBCmd) Then
Return True
End If
Return False
Else
Return True
End If
End Function
Private Sub btn_info_read_Click(sender As Object, e As EventArgs) Handles btn_info_read.Click
Dim data_serial, make_code, year, month, full_serial As String
Dim stageCnt As Int16
Try
txbInfoBox.Visible = True
txbInfoBox.Text = "RUNNING"
txbInfoBox.BackColor = Color.GreenYellow
txbInfoBox.Refresh()
data_serial = read_info()
If data_serial = "0" Then
stageCnt = 0
GoTo FailExit
Else
make_code = Mid(data_serial, 1, InStr(1, data_serial, ",") - 1)
full_serial = Mid(data_serial, InStr(1, data_serial, ",") + 1, data_serial.Length)
data_serial = Mid(full_serial, 1, InStr(1, full_serial, ",") - 1)
full_serial = Mid(full_serial, InStr(1, full_serial, ",") + 1, full_serial.Length)
full_serial = Mid(full_serial, 1, InStr(1, full_serial, ",") - 1)
year = Mid(data_serial, 1, 2)
data_serial = Mid(data_serial, 3, data_serial.Length)
month = Mid(data_serial, 1, 2)
data_serial = Mid(data_serial, 3, data_serial.Length)
If ckbNonTD.Checked = True Then
Dim ModeSet As String = Mid(full_serial, 2, 1)
If ModeSet = "0" Then
rdbV1.Checked = True
rdbV2.Checked = False
Else
rdbV1.Checked = False
rdbV2.Checked = True
End If
Else
rdbV1.Checked = False
rdbV2.Checked = False
End If
full_serial = full_serial & year & month & Mid(data_serial, 4, 3) & Mid(data_serial, 1, 3)
data_serial = data_serial
txbBarcode.Text = full_serial
txbFactory.Text = make_code
nudYear.Text = year
nudMonth.Text = month
nudSN.Text = data_serial
End If
GoTo SuccessExit
Catch ex As Exception
txbBarcode.Text = Nothing
txbFactory.Text = Nothing
nudSN.Text = Nothing
nudYear.Text = Nothing
nudMonth.Text = Nothing
stageCnt = 1
GoTo FailExit
End Try
FailExit:
txbInfoBox.Text = "Timeout" + Str(stageCnt)
txbInfoBox.BackColor = Color.Red
txbInfoBox.Refresh()
Exit Sub
SuccessExit:
txbInfoBox.Text = "SUCCESS"
txbInfoBox.BackColor = Color.Green
txbInfoBox.Refresh()
Exit Sub
End Sub
Private Sub btn_area_write_Click(sender As Object, e As EventArgs) Handles btn_area_write.Click
Dim data_list, make_code, data_serial, full_serial, td_name As String
Dim stageCnt As Int16
Try
If txb_area_code.Text = "" Or txb_abr_code.Text = "" Then
MsgBox("정보가 부족합니다. 빈칸을 채워주세요.", vbExclamation)
stageCnt = 0
GoTo FailExit
End If
txb_areabox.Visible = True
txb_areabox.Text = "RUNNING"
txb_areabox.BackColor = Color.GreenYellow
txb_areabox.Refresh()
td_name = td_name_load()
If ckb_db_use.Checked = True And td_name = "1" Or td_name = "0" Then
stageCnt = 1
MsgBox("TD 시리얼 번호를 등록하지 않았습니다." & vbCrLf & "TD 시리얼 번호를 먼저 입력하여 주십시오.", vbExclamation)
GoTo FailExit
End If
If ckb_db_use.Checked = True And td_Serial_db(td_name) = 0 Then
stageCnt = 1
MsgBox("TD 시리얼 번호가 데이터베이스에 존재하지 않습니다." & vbCrLf & " TD 시리얼 번호를 확인하여 주십시오.", vbExclamation)
GoTo FailExit
End If
data_list = read_info()
If data_list <> "0" Then
make_code = Mid(data_list, 1, InStr(1, data_list, ",") - 1)
If make_code = "" Then
MsgBox("제품 시리얼 번호를 등록하지 않았습니다." & vbCrLf & "시리얼 번호를 먼저 등록하여 주십시오.", vbExclamation)
stageCnt = 3
GoTo FailExit
Else
full_serial = Mid(data_list, InStr(1, data_list, ",") + 1, data_list.Length)
data_serial = Mid(full_serial, 1, InStr(1, full_serial, ",") - 1)
full_serial = Mid(full_serial, InStr(1, full_serial, ",") + 1, full_serial.Length)
full_serial = Mid(full_serial, 1, InStr(1, full_serial, ",") - 1)
If prod_reg_data(make_code, data_serial, full_serial, txb_area_code.Text, txb_abr_code.Text) Then
If area_num_db(txb_area_code.Text, txb_abr_code.Text, td_name) Then
GoTo SuccessExit
Else
stageCnt = 5
GoTo FailExit
End If
Else
stageCnt = 4
GoTo FailExit
End If
End If
Else
stageCnt = 2
GoTo FailExit
End If
Catch ex As Exception
stageCnt = 6
GoTo FailExit
End Try
FailExit:
txb_areabox.Text = "Timeout" + Str(stageCnt)
txb_areabox.BackColor = Color.Red
txb_areabox.Refresh()
Exit Sub
SuccessExit:
txb_areabox.Text = "SUCCESS"
txb_areabox.BackColor = Color.Green
txb_areabox.Refresh()
Exit Sub
End Sub
Private Function area_num_db(area_num As String, abr_num As String, td_serial As String) As Boolean
If ckb_db_use.Checked = True Then
DBCmd = "UPDATE " & cartridge_table & " SET Ct_Abroad = ' " & area_num & " ' , Ct_Agency = '" & abr_num & "' WHERE PV_SN = '" & td_serial & "'"
If DBCommand(DBCmd) Then
Return True
End If
Return False
Else
Return True
End If
End Function
Private Sub btn_area_read_Click(sender As Object, e As EventArgs) Handles btn_area_read.Click
Dim data_list, make_code, abr_code As String
Dim stageCnt As Int16
Try
txb_areabox.Visible = True
txb_areabox.Text = "RUNNING"
txb_areabox.BackColor = Color.GreenYellow
txb_areabox.Refresh()
data_list = read_info()
If data_list <> "0" Then
make_code = Mid(data_list, 1, InStr(1, data_list, ",") - 1)
If make_code = "" Then
MsgBox("제품 시리얼 번호를 등록하지 않았습니다." & vbCrLf & "시리얼 번호를 먼저 등록하여 주십시오.", vbExclamation)
stageCnt = 2
GoTo FailExit
Else
abr_code = Mid(data_list, InStrRev(data_list, ",", data_list.Length) + 1, data_list.Length)
data_list = Mid(data_list, 1, InStrRev(data_list, ",", data_list.Length) - 1)
data_list = Mid(data_list, InStrRev(data_list, ",", data_list.Length) + 1, data_list.Length)
txb_area_code.Text = data_list
txb_abr_code.Text = abr_code
GoTo SuccessExit
End If
Else
stageCnt = 1
GoTo FailExit
End If
Catch ex As Exception
stageCnt = 3
GoTo FailExit
End Try
FailExit:
txb_areabox.Text = "Timeout" + Str(stageCnt)
txb_areabox.BackColor = Color.Red
txb_areabox.Refresh()
Exit Sub
SuccessExit:
txb_areabox.Text = "SUCCESS"
txb_areabox.BackColor = Color.Green
txb_areabox.Refresh()
Exit Sub
End Sub
Private Sub btn_today_Click(sender As Object, e As EventArgs) Handles btn_today.Click
nudYear.Text = Format(Now, "yy")
nudMonth.Text = Format(Now, "MM")
End Sub
Private Function check_prod_code() As String
Dim prod_code As String
prod_code = read_info()
If prod_code = "0" Then
Return "0"
End If
prod_code = Mid(prod_code, InStr(1, prod_code, ",") + 1, prod_code.Length)
prod_code = Mid(prod_code, 1, InStr(1, prod_code, ",") - 1)
Return prod_code
End Function
Private Sub btn_td_write_Click(sender As Object, e As EventArgs) Handles btn_td_write.Click
Dim freq As Int16
Dim power As Single
Dim stageCnt As Int16
Dim serial_num As String
Try
txb_tdBox.Visible = True
txb_tdBox.Text = "RUNNING"
txb_tdBox.BackColor = Color.GreenYellow
txb_tdBox.Refresh()
If ManagerTDUse = True Then
If txb_tds.Text = "" Or txb_tdf.Text = "" Or txb_tdp.Text = "" Or txb_tds.Text.Length <> td_name_size Or txb_tdf.Text.Length <> td_freq_size Then
MsgBox("정보가 부족합니다. 빈칸을 채워주세요.", vbExclamation)
stageCnt = 0
GoTo FailExit
Else
If check_prod_code() = "0" Then
serial_num = Format(Now, "yy") & Format(Now, "MM") & "000000"
If prod_reg_data("jomt", serial_num, "30", "82", "0") = False Then
stageCnt = 1
GoTo FailExit
End If
End If
If td_Serial_db(txb_tds.Text) Then
freq = freq_data(txb_tdf.Text)
power = power_data(txb_tdp.Text)
If freq = 0 Or power = 100 Then
stageCnt = 3
GoTo FailExit
End If
Else
stageCnt = 2
MsgBox("TD 시리얼 번호가 데이터베이스에 존재하지 않습니다." & vbCrLf & " TD 시리얼 번호를 확인하여 주십시오.", vbExclamation)
GoTo FailExit
End If
End If
If sett_reg(freq, power) Then
If td_reg_data(txb_tds.Text) Then
If td_serial_update(freq, power, txb_tds.Text) Then
GoTo SuccessExit
Else
stageCnt = 6
GoTo FailExit
End If
Else
stageCnt = 5
GoTo FailExit
End If
Else
stageCnt = 4
GoTo FailExit
End If
Else
If txb_tds.Text = "" Or txb_tds.Text.Length <> td_name_size Then
MsgBox("정보가 부족합니다. 빈칸을 채워주세요.", vbExclamation)
stageCnt = 0
GoTo FailExit
Else
If check_prod_code() = "0" Then
serial_num = Format(Now, "yy") & Format(Now, "MM") & "000000"
If prod_reg_data("jomt", serial_num, "30", "82", "0") = False Then
stageCnt = 1
GoTo FailExit
End If
End If
If td_Serial_db(txb_tds.Text) Then
If td_reg_data(txb_tds.Text) Then
GoTo SuccessExit
Else
stageCnt = 5
GoTo FailExit
End If
Else
stageCnt = 2
MsgBox("TD 시리얼 번호가 데이터베이스에 존재하지 않습니다." & vbCrLf & " TD 시리얼 번호를 확인하여 주십시오.", vbExclamation)
GoTo FailExit
End If
End If
End If
Catch ex As Exception
stageCnt = 7
GoTo FailExit
End Try
FailExit:
txb_tdBox.Text = "Timeout" + Str(stageCnt)
txb_tdBox.BackColor = Color.Red
txb_tdBox.Refresh()
Exit Sub
SuccessExit:
txb_tdBox.Text = "SUCCESS"
txb_tdBox.BackColor = Color.Green
txb_tdBox.Refresh()
Exit Sub
End Sub
Private Function td_serial_update(freq As String, power As String, td_serial As String) As Boolean
If ckb_db_use.Checked = True Then
DBCmd = "UPDATE " & cartridge_table & " SET Ct_Frequency = '" & freq & "' , Ct_Power = '" & power & "' WHERE PV_SN = '" & td_serial & "'"
If DBCommand(DBCmd) Then
DBCmd = "SELECT Ct_Frequency,Ct_Power FROM " & cartridge_table & " WHERE PV_SN = '" & td_serial & "'"
If DBQueryReader(DBCmd) Then
If sqlDataQuery.Length = 2 Then
If sqlDataQuery(0) = freq And sqlDataQuery(1) = power Then
Return True
End If
End If
End If
End If
Else
Return True
End If
Return False
End Function
Private Function td_Serial_db(td_serial As String) As Int16
Dim sn_count As Int16
Dim UseDB As String
If ManagerTDUse = True Then
UseDB = cartridge_table
Else
UseDB = NonCartridge_table
End If
If ckb_db_use.Checked = True Then
DBCmd = "SELECT count(PV_SN) FROM " & UseDB & " WHERE PV_SN = '" & td_serial & "'"
sn_count = DBQueryScalar(DBCmd)
Return sn_count
Else
Return 1
End If
End Function
Private Sub btn_td_read_Click(sender As Object, e As EventArgs) Handles btn_td_read.Click
Dim td_name, freq, power As String
Dim stageCnt As Int16
Try
txb_tdBox.Visible = True
txb_tdBox.Text = "RUNNING"
txb_tdBox.BackColor = Color.GreenYellow
txb_tdBox.Refresh()
td_name = td_name_load()
If td_name = "1" Then
stageCnt = 0
GoTo FailExit
Else
If ckbNonTD.Checked = True Then
freq = sett_data()
If freq = "0" Then
stageCnt = 2
GoTo FailExit
Else
power = Mid(freq, InStrRev(freq, ",", freq.Length) + 1, freq.Length) / 100
freq = Mid(freq, 1, InStr(1, freq, ",") - 1)
txb_tds.Text = td_name
txb_tdf.Text = freq
txb_tdp.Text = power
GoTo SuccessExit
End If
Else
txb_tds.Text = td_name
txb_tdf.Text = "0"
txb_tdp.Text = "0"
GoTo SuccessExit
End If
End If
Catch ex As Exception
stageCnt = 3
GoTo FailExit
End Try
FailExit:
txb_tdBox.Text = "Timeout" + Str(stageCnt)
txb_tdBox.BackColor = Color.Red
txb_tdBox.Refresh()
Exit Sub
SuccessExit:
txb_tdBox.Text = "SUCCESS"
txb_tdBox.BackColor = Color.Green
txb_tdBox.Refresh()
Exit Sub
End Sub
Private Sub btn_shot_write_Click(sender As Object, e As EventArgs) Handles btn_shot_write.Click
Dim td_name As String
Dim stageCnt As Int16
Try
If nud_shot.Text = "" Then
MsgBox("정보가 부족합니다. 빈칸을 채워주세요.", vbExclamation)
stageCnt = 0
GoTo FailExit
End If
txb_shotbox.Visible = True
txb_shotbox.Text = "RUNNING"
txb_shotbox.BackColor = Color.GreenYellow
txb_shotbox.Refresh()
td_name = td_name_load()
If ckb_db_use.Checked = True And td_name = "1" Or td_name = "0" Then
stageCnt = 1
MsgBox("TD 시리얼 번호를 등록하지 않았습니다." & vbCrLf & "TD 시리얼 번호를 먼저 입력하여 주십시오.", vbExclamation)
GoTo FailExit
End If
If ckb_db_use.Checked = True And td_Serial_db(td_name) = 0 Then
stageCnt = 1
MsgBox("TD 시리얼 번호가 데이터베이스에 존재하지 않습니다." & vbCrLf & " TD 시리얼 번호를 확인하여 주십시오.", vbExclamation)
GoTo FailExit
End If
If shot_reg(nud_shot.Text) Then
If shot_data_db(nud_shot.Text, td_name) Then
GoTo SuccessExit
Else
stageCnt = 3
GoTo FailExit
End If
Else
stageCnt = 2
GoTo FailExit
End If
Catch ex As Exception
stageCnt = 4
GoTo FailExit
End Try
FailExit:
txb_shotbox.Text = "Timeout" + Str(stageCnt)
txb_shotbox.BackColor = Color.Red
txb_shotbox.Refresh()
Exit Sub
SuccessExit:
txb_shotbox.Text = "SUCCESS"
txb_shotbox.BackColor = Color.Green
txb_shotbox.Refresh()
Exit Sub
End Sub
Private Function shot_data_db(shot_num As String, td_serial As String)
If ckb_db_use.Checked = True Then
DBCmd = "UPDATE " & cartridge_table & " SET Ct_Max_ShotCnt = '" & shot_num & "' WHERE PV_SN = '" & td_serial & "'"
If DBCommand(DBCmd) Then
Return True
End If
Return False
Else
Return True
End If
End Function
Private Sub btn_shot_read_Click(sender As Object, e As EventArgs) Handles btn_shot_read.Click
Dim shot As Integer
Dim stageCnt As Int16
Try
txb_shotbox.Visible = True
txb_shotbox.Text = "RUNNING"
txb_shotbox.BackColor = Color.GreenYellow
txb_shotbox.Refresh()
shot = shot_search()
If shot = "-1" Then
stageCnt = 0
GoTo FailExit
End If
nud_shot.Text = shot
GoTo SuccessExit
Catch ex As Exception
stageCnt = 1
GoTo FailExit
End Try
FailExit:
txb_shotbox.Text = "Timeout" + Str(stageCnt)
txb_shotbox.BackColor = Color.Red
txb_shotbox.Refresh()
Exit Sub
SuccessExit:
txb_shotbox.Text = "SUCCESS"
txb_shotbox.BackColor = Color.Green
txb_shotbox.Refresh()
Exit Sub
End Sub
Private Sub btn_flashreset_Click(sender As Object, e As EventArgs) Handles btn_flashreset.Click
Dim td_name As String
Dim oksign, stageCnt As Int16
Try
txb_resetbox.Visible = True
txb_resetbox.Text = "RUNNING"
txb_resetbox.BackColor = Color.GreenYellow
txb_resetbox.Refresh()
oksign = MsgBox("플래쉬 데이터를 초기화 진행합니다. 진행하시겠습니까?", vbOKCancel + vbExclamation)
If oksign = 1 Then
td_name = td_name_load()
If td_name = "1" Or td_name = "0" Then
stageCnt = 1
MsgBox("TD 시리얼 번호를 등록하지 않았습니다." & vbCrLf & "TD 시리얼 번호를 먼저 입력하여 주십시오.", vbExclamation)
GoTo FailExit
End If
If data_reset() Then
If reset_db_update(td_name) Then
GoTo SuccessExit
Else
stageCnt = 3
GoTo FailExit
End If
Else
stageCnt = 2
GoTo FailExit
End If
Else
stageCnt = 0
GoTo FailExit
End If
Catch ex As Exception
stageCnt = 4
GoTo FailExit
End Try
FailExit:
txb_resetbox.Text = "Timeout" + Str(stageCnt)
txb_resetbox.BackColor = Color.Red
txb_resetbox.Refresh()
Exit Sub
SuccessExit:
txb_resetbox.Text = "SUCCESS"
txb_resetbox.BackColor = Color.Green
txb_resetbox.Refresh()
Exit Sub
End Sub
Private Function reset_db_update(td_serial As String) As Boolean
DBCmd = "UPDATE " & cartridge_table & " SET Product_SN = '', Ct_Manufacture_Name = '', Ct_Manufacture_Year = NULL, Ct_Manufacture_Month = NULL, Ct_SN = NULL, Ct_Model = '', Ct_Type = '', Ct_Abroad = NULL, Ct_Agency = NULL , Ct_Frequency = NULL, Ct_Power = NULL, Ct_Max_ShotCnt = NULL, Ct_Remain_ShotCnt = NULL WHERE PV_SN = '" & td_serial & "'"
If DBCommand(DBCmd) Then
Return True
End If
Return False
End Function
Private Sub lb_depth_DoubleClick(sender As Object, e As EventArgs)
MsgBox("Depth 높이 설정 - 샷 레디 후 사용할 것" & vbCrLf & "0-원점, 1-1.5mm, 2-2.0mm, 3-2.5mm," & vbCrLf & "4-3.0mm, 5-3.5mm, 6-4.0mm, 7-4.5mm", vbInformation)
End Sub
Private Sub btn_mtr_write_Click(sender As Object, e As EventArgs) Handles btn_mtr_write.Click
Dim stageCnt As Int16
Try
If nud_motor.Text = "" Then
MsgBox("정보가 부족합니다. 빈칸을 채워주세요.", vbExclamation)
stageCnt = 0
GoTo FailExit
End If
txb_motorBox.Visible = True
txb_motorBox.Text = "RUNNING"
txb_motorBox.BackColor = Color.GreenYellow
txb_motorBox.Refresh()
td_name = td_name_load()
If ckb_db_use.Checked = True And td_name = "1" Or td_name = "0" Then
stageCnt = 1
MsgBox("TD 시리얼 번호를 등록하지 않았습니다." & vbCrLf & "TD 시리얼 번호를 먼저 입력하여 주십시오.", vbExclamation)
GoTo FailExit
End If
If ckb_db_use.Checked = True And td_Serial_db(td_name) = 0 Then
stageCnt = 1
MsgBox("TD 시리얼 번호가 데이터베이스에 존재하지 않습니다." & vbCrLf & " TD 시리얼 번호를 확인하여 주십시오.", vbExclamation)
GoTo FailExit
End If
If Motor_reg(nud_motor.Text) Then
If motor_db_reg(nud_motor.Text, td_name) Then
GoTo SuccessExit
Else
stageCnt = 2
GoTo FailExit
End If
Else
stageCnt = 1
GoTo FailExit
End If
Catch ex As Exception
stageCnt = 3
GoTo FailExit
End Try
FailExit:
txb_motorBox.Text = "Timeout" + Str(stageCnt)
txb_motorBox.BackColor = Color.Red
txb_motorBox.Refresh()
Exit Sub
SuccessExit:
txb_motorBox.Text = "SUCCESS"
txb_motorBox.BackColor = Color.Green
txb_motorBox.Refresh()
Exit Sub
End Sub
Private Function motor_db_reg(motor_lv As Int16, pv_sn As String) As Boolean
DBCmd = "UPDATE " & cartridge_table & " SET Ct_Motor_Lv = '" & motor_lv & "' WHERE PV_SN = '" & pv_sn & "'"
If DBCommand(DBCmd) Then
Return True
Else
Return False
End If
End Function
Private Sub lb_motor_DoubleClick(sender As Object, e As EventArgs) Handles lb_motor.DoubleClick
MsgBox("Motor 이동 설정" & vbCrLf & "1280펄스 당 1mm 이동", vbInformation)
End Sub
Private Sub btn_all_read_Click(sender As Object, e As EventArgs) Handles btn_all_read.Click
btn_td_read_Click(sender, e)
btn_info_read_Click(sender, e)
btn_area_read_Click(sender, e)
btn_shot_read_Click(sender, e)
nud_motor.Text = "0"
End Sub
Private Sub btn_all_write_Click(sender As Object, e As EventArgs) Handles btn_all_write.Click
If txbFactory.Text = "" Then txbFactory.Text = "jomt"
If txbFactory.Text = "" Or nudSN.Text = "" Or nudYear.Text = "" Or nudMonth.Text = "" Or txb_area_code.Text = "" Or txb_abr_code.Text = "" Or txb_tds.Text = "" Or txb_tdf.Text = "" Or txb_tdp.Text = "" Or txb_tds.Text.Length <> td_name_size Or txb_tdf.Text.Length <> td_freq_size Then
MsgBox("정보가 부족합니다. 빈칸을 모두 채워주세요.", vbExclamation)
Exit Sub
End If
btn_td_write_Click(sender, e)
btn_info_write_Click(sender, e)
btn_area_write_Click(sender, e)
btn_shot_write_Click(sender, e)
End Sub
Private Sub btn_text_reset_Click(sender As Object, e As EventArgs) Handles btn_text_reset.Click
item_refresh()
four_text_box()
four_result_visible()
four_result_color()
four_btn_refresh()
vari_reset()
End Sub
Private Sub btnrun_Click(sender As Object, e As EventArgs) Handles btnrun.Click
Dim SucCheck As Boolean = False
Dim text_serial, freq, front_name, back_name, year_month As String
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")
CsvRegData = Nothing
If thr_run_switch = True Then
btnreset_Click(sender, e)
thr_run_switch = False
End If
text_serial = txb_barcode.Text
If txbmake.Text = "대기" Or txbarea.Text = "대기" Or txbagen.Text = "대기" Then
txbresult.Text = "선택항목 미선택"
txbresult.BackColor = Color.Red
MsgBox("선택항목을 선택하지 않았습니다. 선택항목을 선택하여 주십시오.", vbCritical)
Else
If Maximum_Data.prod_serial = "" Then
If td_data_switch = False Then
If text_serial.Length = prod_text_count Then
If prod_dup_check(text_serial) Then
txbresult.Text = "중복된 번호입력"
txbresult.BackColor = Color.Red
If MsgBox("데이터베이스에 중복된 시리얼 번호가 존재합니다. 허나 바코드는 재인쇄가 가능합니다." & vbCrLf & "바코드를 재인쇄 하시겠습니까?", vbExclamation + vbYesNo) = MsgBoxResult.Yes Then
txbpdnum.Text = text_serial
thr_run_switch = True
print_OnOff = True
txb_barcode.Focus()
thr_vari_reset()
reset_box()
txbresult.Text = "인쇄 완료"
txbresult.BackColor = Color.Green
End If
Exit Sub
End If
txbpdnum.Text = text_serial
txbpdnum.BackColor = Color.Green
Maximum_Data.prod_code = Mid(text_serial, 1, 2)
year_month = Mid(text_serial, 3, 4)
front_name = Mid(text_serial, 7, 3)
back_name = Mid(text_serial, 10, 3)
Maximum_Data.prod_serial = year_month & back_name & front_name
txbresult.Text = "제품 연결 대기.."
txbresult.BackColor = Color.Orange
TH_thread = New Thread(AddressOf thread_func)
TH_thread.IsBackground = True
TH_thread.Start()
thread_type = True
Else
txbresult.Text = "잘못된 번호입력"
txbresult.BackColor = Color.Red
txbpdnum.BackColor = Color.Red
MsgBox("잘못된 시리얼 번호를 입력하였습니다. 다시 확인하여 주십시오.", vbCritical)
thr_run_switch = True
txb_barcode.Focus()
Exit Sub
End If
Else
MsgBox("초기화 오류 발견")
thr_run_switch = True
txb_barcode.Focus()
End If
Else
If td_data_switch = False Then
'Maximum_Data.td_serial = td_name_load()
If Maximum_Data.td_serial = "0" Or Maximum_Data.td_serial = "1" Then
txbresult.Text = "잘못된 번호입력"
txbtdnum.BackColor = Color.Red
txbresult.BackColor = Color.Red
MsgBox("TD 시리얼 번호를 입력하지 않았습니다. TD 시리얼 번호를 입력하여 주십시오.", vbCritical)
txb_barcode.Focus()
Exit Sub
End If
freq = sett_data()
If freq = "0" Then
txbresult.Text = "연결 문제"
txbtdnum.BackColor = Color.Red
txbresult.BackColor = Color.Red
MsgBox("제품과의 연결이 올바르지 않습니다. 연결 상태를 확인하여 주십시오.", vbCritical)
td_data_switch = False
thr_run_switch = True
txb_barcode.Focus()
Else
Maximum_Data.td_power = Mid(freq, InStr(1, freq, ",") + 1, freq.Length)
Maximum_Data.td_freq = Mid(freq, 1, InStr(1, freq, ",") - 1)
If db_td_data(Maximum_Data.td_serial) Then
If Maximum_Data.td_step = 23 Or Maximum_Data.td_step = 27 Or Maximum_Data.td_step = 32 Then
txbtdnum.Text = Maximum_Data.td_serial
txbfreq.Text = Maximum_Data.td_freq
txbpower.Text = Maximum_Data.td_power
txbgread.Text = Maximum_Data.td_grade
If Maximum_Data.td_freq <> "0" Then
txbresult.Text = "TD 정보등록"
txbresult.BackColor = Color.Green
txbtdnum.BackColor = Color.Green
td_data_switch = True
Else
txbresult.Text = "주파수 없음"
txbresult.BackColor = Color.Red
txbfreq.BackColor = Color.Red
MsgBox("제품에 주파수를 입력하지 않았습니다." & vbCrLf & " 주파수를 입력하여 주십시오.", vbCritical)
td_data_switch = False
thr_run_switch = True
End If
txb_barcode.Focus()
Else
txbresult.Text = "공정 진행 오류"
txbresult.BackColor = Color.Red
txbtdnum.BackColor = Color.Red
MsgBox("이전 정보 입력 공정을 진행하지 않았습니다." & vbCrLf & " 이전 단계에서 데이터를 입력하여 주십시오.", vbCritical)
td_data_switch = False
thr_run_switch = True
txb_barcode.Focus()
End If
Else
txbresult.Text = "잘못된 데이터 존재"
txbresult.BackColor = Color.Red
txbtdnum.BackColor = Color.Red
MsgBox("데이터베이스에 데이터가 존재하지 않습니다." & vbCrLf & " 이전 단계에서 데이터를 입력하여 주십시오.", vbCritical)
td_data_switch = False
thr_run_switch = True
txb_barcode.Focus()
End If
End If
Else
If prod_reg_data(txbmake.Text, Maximum_Data.prod_serial, txb_code_front.Text, txbarea.Text, txbagen.Text) Then
If shot_reg(0) = True Then
If shot_search() = 0 Then
If db_prod_reg(txbpdnum.Text, txbmake.Text, txbarea.Text, txbagen.Text, Maximum_Data.td_serial, 0) Then
For i = 1 To ShotCheck
If shot_search() = 0 Then
SucCheck = True
Else
SucCheck = False
Exit For
End If
Next
If SucCheck = True Then
txbtdnum.BackColor = Color.Green
txbpdnum.BackColor = Color.Green
txbresult.Text = "정보입력 완료"
txbresult.BackColor = Color.Green
Save_Csv(NowDate & "," & NowTime & "," & Maximum_Data.prod_serial & "," & Maximum_Data.td_serial & "," & Maximum_Data.td_freq & "," & Maximum_Data.td_power & "," & Maximum_Data.td_step & "," & CsvRegData, False)
thr_vari_reset()
reset_box()
thr_run_switch = True
print_OnOff = True
txb_barcode.Focus()
Else
txbtdnum.BackColor = Color.Red
txbpdnum.BackColor = Color.Red
txbresult.Text = "정보입력 실패"
txbresult.BackColor = Color.Red
Save_Csv(NowDate & "," & NowTime & "," & text_serial & "," & Maximum_Data.prod_serial & Maximum_Data.td_freq & "," & Maximum_Data.td_power & "," & Maximum_Data.td_step & "," & CsvRegData, False)
thr_vari_reset()
reset_box()
MsgBox("제품과의 연결이 올바르지 않습니다. 연결 상태를 확인하여 주십시오.", vbCritical)
txb_barcode.Focus()
End If
Else
txbtdnum.BackColor = Color.Red
txbpdnum.BackColor = Color.Red
txbresult.Text = "정보입력 실패"
txbresult.BackColor = Color.Red
Save_Csv(NowDate & "," & NowTime & "," & text_serial & "," & Maximum_Data.prod_serial & Maximum_Data.td_freq & "," & Maximum_Data.td_power & "," & Maximum_Data.td_step & "," & CsvRegData, False)
thr_vari_reset()
reset_box()
MsgBox("정보 입력은 완료되었으나 데이터베이스에 등록하지 못하였습니다. 다시 시도하여 주십시오.", vbExclamation)
td_data_switch = False
thr_run_switch = True
txb_barcode.Focus()
End If
Else
txbtdnum.BackColor = Color.Red
txbpdnum.BackColor = Color.Red
txbresult.Text = "정보입력 실패"
txbresult.BackColor = Color.Red
Save_Csv(NowDate & "," & NowTime & "," & text_serial & "," & Maximum_Data.prod_serial & Maximum_Data.td_freq & "," & Maximum_Data.td_power & "," & Maximum_Data.td_step & "," & CsvRegData, False)
thr_vari_reset()
reset_box()
MsgBox("제품과의 연결이 올바르지 않습니다. 연결 상태를 확인하여 주십시오.", vbCritical)
txb_barcode.Focus()
End If
Else
txbtdnum.BackColor = Color.Red
txbpdnum.BackColor = Color.Red
txbresult.Text = "정보입력 실패"
txbresult.BackColor = Color.Red
Save_Csv(NowDate & "," & NowTime & "," & text_serial & "," & Maximum_Data.prod_serial & Maximum_Data.td_freq & "," & Maximum_Data.td_power & "," & Maximum_Data.td_step & "," & CsvRegData, False)
thr_vari_reset()
reset_box()
MsgBox("제품과의 연결이 올바르지 않습니다. 연결 상태를 확인하여 주십시오.", vbCritical)
txb_barcode.Focus()
End If
Else
txbtdnum.BackColor = Color.Red
txbpdnum.BackColor = Color.Red
txbresult.Text = "정보입력 실패"
txbresult.BackColor = Color.Red
Save_Csv(NowDate & "," & NowTime & "," & text_serial & "," & Maximum_Data.prod_serial & Maximum_Data.td_freq & "," & Maximum_Data.td_power & "," & Maximum_Data.td_step & "," & CsvRegData, False)
thr_vari_reset()
reset_box()
MsgBox("제품과의 연결이 올바르지 않습니다. 연결 상태를 확인하여 주십시오.", vbCritical)
txb_barcode.Focus()
End If
End If
End If
End If
End Sub
Private Function TDDBRoad() As Boolean
DBCmd = ""
End Function
Private Function db_prod_reg(prod_id As String, make_name As String, area_code As String, agency_code As String, td_id As String, shot As Int16) As Boolean
Dim serial_code, p_date, p_time As String
serial_code = Mid(Maximum_Data.prod_serial, 5, Maximum_Data.prod_serial.Length)
p_date = DateTime.Now.ToString("yyyy-MM-dd")
p_time = DateTime.Now.ToString("HH:mm:ss")
DBCmd = "UPDATE " & cartridge_table & " SET TestStep = '31', Product_SN = '" & prod_id & "', Ct_Manufacture_Name='" & make_name & "', Ct_Manufacture_Year='" & Format(Now, "yy") & "', Ct_Manufacture_Month='" & Format(Now, "MM") & "', Ct_SN='" & serial_code & "', Ct_Abroad='" & area_code & "', Ct_Agency='" & agency_code & "',Ct_Max_ShotCnt = '" & shot & "', Ct_Remain_ShotCnt = '" & shot & "', P3_DateTime = '" & p_date & " " & p_time & "' WHERE PV_SN = '" & td_id & "'"
If DBCommand(DBCmd) Then
DBCmd = "SELECT TestStep FROM " & cartridge_table & " Where Product_SN = '" & prod_id & "'"
If DBQueryScalar(DBCmd) = 31 Then
Return True
End If
End If
Return False
End Function
Private Function db_td_data(td_serial As String) As Boolean
DBCmd = "SELECT TestStep,QC_Grade FROM " & cartridge_table & " WHERE PV_SN = '" & td_serial & "'"
If DBQueryReader(DBCmd) Then
Maximum_Data.td_step = sqlDataQuery(0)
Maximum_Data.td_grade = sqlDataQuery(1)
Return True
Else
Maximum_Data.td_step = Nothing
Maximum_Data.td_grade = Nothing
Return False
End If
End Function
Private Sub btn_data_reg_Click(sender As Object, e As EventArgs) Handles btn_data_reg.Click
Dim StageNum As Int16
Try
txb_regresult.Visible = True
txb_regresult.BackColor = Color.GreenYellow
txb_regresult.Text = "RUNNING!"
txb_regresult.Refresh()
If txb_make_reg.Text.Replace(" ", "") = "" Then
txb_make_reg.Text = "jomt"
End If
If txb_name_reg.Text.Replace(" ", "") = "" Or txb_make_reg.Text.Replace(" ", "") = "" Or nudarea.Text.Replace(" ", "") = "" Or nudagency.Text.Replace(" ", "") = "" Then
StageNum = 0
MsgBox("작성하지 않은 항목이 존재합니다." & vbCrLf & "비어있는 부분을 작성하여 주십시오.", vbExclamation)
GoTo FAILDATA
End If
If name_reg_compare(txb_name_reg.Text) Then
dgv_data.Rows.Add(txb_name_reg.Text, txb_make_reg.Text, nudarea.Text, nudagency.Text)
txb_name_reg.Text = Nothing
txb_make_reg.Text = Nothing
nudarea.Text = 0
nudagency.Text = 0
txb_name_reg.Refresh()
txb_make_reg.Refresh()
nudarea.Refresh()
nudagency.Refresh()
txb_regresult.BackColor = Color.Green
txb_regresult.Text = "SUCCESS"
txb_regresult.Refresh()
option_reg_chk = True
Exit Sub
Else
StageNum = 1
MsgBox("중복된 이벤트명이 존재합니다." & vbCrLf & "이벤트명을 확인하여 주십시오.", vbCritical)
GoTo FAILDATA
End If
Catch ex As Exception
StageNum = 2
MsgBox(Err.Description, vbCritical)
GoTo FAILDATA
End Try
FAILDATA:
txb_regresult.BackColor = Color.Red
txb_regresult.Text = "FAIL" & StageNum
txb_regresult.Refresh()
Exit Sub
End Sub
Private Function name_reg_compare(text_name As String) As Boolean
Try
For i = 0 To dgv_data.Rows.Count - 2
If dgv_data.Rows(i).Cells(0).Value.ToString = text_name Then
Return False
End If
Next
Return True
Catch ex As Exception
Return False
End Try
End Function
Private Sub btn_save_Click(sender As Object, e As EventArgs) Handles btn_save.Click
txb_dgv_state.Visible = True
txb_dgv_state.Text = "RUNNING!"
txb_dgv_state.BackColor = Color.GreenYellow
txb_dgv_state.Refresh()
If save_comport("event") Then
If save_comport("comport") Then
txb_dgv_state.Text = "SUCCESS"
txb_dgv_state.BackColor = Color.Green
txb_dgv_state.Refresh()
option_reg_chk = False
Else
txb_dgv_state.Text = "ETC FAIL"
txb_dgv_state.BackColor = Color.Red
txb_dgv_state.Refresh()
End If
Else
txb_dgv_state.Text = "EVENT FAIL"
txb_dgv_state.BackColor = Color.Red
txb_dgv_state.Refresh()
End If
End Sub
Private Sub btn_row_delete_Click(sender As Object, e As EventArgs) Handles btn_row_delete.Click
Dim res As Integer
txb_dgv_state.Visible = True
txb_dgv_state.Text = "RUNNING!"
txb_dgv_state.BackColor = Color.GreenYellow
txb_dgv_state.Refresh()
For i = 0 To dgv_data.Rows.Count - 2
If dgv_data.Rows(i).Selected = True Then
res = MsgBox("해당 이벤트를 삭제하시겠습니까?", vbYesNo)
If res = 6 Then
dgv_data.Rows.Remove(dgv_data.Rows(i))
txb_dgv_state.Text = "SUCCESS"
txb_dgv_state.BackColor = Color.Green
txb_dgv_state.Refresh()
option_reg_chk = True
MsgBox("이벤트 삭제를 완료하였습니다.")
ElseIf res = 7 Then
txb_dgv_state.Text = "DELETE STOP"
txb_dgv_state.BackColor = Color.Red
txb_dgv_state.Refresh()
MsgBox("이벤트 삭제를 취소하였습니다.")
End If
End If
Next
End Sub
Private Sub btn_alldelete_Click(sender As Object, e As EventArgs) Handles btn_alldelete.Click
Dim res As Integer
txb_dgv_state.Visible = True
txb_dgv_state.Text = "RUNNING!"
txb_dgv_state.BackColor = Color.GreenYellow
txb_dgv_state.Refresh()
res = MsgBox(" 등록된 데이터를 모두 삭제하시겠습니까?", vbCritical + vbYesNo, "전체삭제")
If res = 6 Then
dgv_data.Rows.Clear()
txb_dgv_state.Text = "SUCCESS"
txb_dgv_state.BackColor = Color.Green
txb_dgv_state.Refresh()
option_reg_chk = True
MsgBox("등록된 데이터가 전부 삭제되었습니다.", vbCritical, "전체삭제 완료")
ElseIf res = 7 Then
txb_dgv_state.Text = "DELETE STOP"
txb_dgv_state.BackColor = Color.Red
txb_dgv_state.Refresh()
MsgBox("데이터 모두 삭제를 취소하였습니다.")
End If
End Sub
Private Sub cboselect_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboselect.SelectedIndexChanged
If cboselect.SelectedIndex <> -1 Then
txbmake.Text = dgv_data.Rows(cboselect.SelectedIndex).Cells(1).Value
txbarea.Text = dgv_data.Rows(cboselect.SelectedIndex).Cells(2).Value
txbagen.Text = dgv_data.Rows(cboselect.SelectedIndex).Cells(3).Value
End If
txb_barcode.Focus()
End Sub
Private Sub txb_barcode_TextChanged(sender As Object, e As EventArgs) Handles txb_barcode.TextChanged
Dim tmpStr As String
If InputCnt = 0 And chbUseBarcode.Checked = True Then
tmpStr = txb_barcode.Text
If (Len(tmpStr) > 1) Then
tmpStr = Mid(tmpStr, Len(tmpStr), 1)
txb_barcode.Clear()
txb_barcode.AppendText(tmpStr)
End If
SetInputCnt()
End If
End Sub
Private Sub btnreset_Click(sender As Object, e As EventArgs) Handles btnreset.Click
thr_text_box()
thr_text_refresh()
thr_text_color()
thr_btn_refresh()
thr_vari_reset()
If thr_run_switch = True Then
cboselect.SelectedIndex = -1
End If
txb_barcode.Focus()
End Sub
''1번 초기화
Private Sub one_text_box()
txbPV_SN.Text = Nothing
txbPV_Date.Text = "N/A"
txbCapacitor.Text = "N/A"
txbPV_Z.Text = "N/A"
txbPV_C.Text = "N/A"
txbPV_R.Text = "N/A"
txb_grade.Text = "대기"
txb_CValue.Text = "대기"
End Sub
Private Sub one_text_refresh()
txbPV_SN.Refresh()
txbPV_Date.Refresh()
txbCapacitor.Refresh()
txbPV_Z.Refresh()
txbPV_C.Refresh()
txbPV_R.Refresh()
txb_grade.Refresh()
txb_CValue.Refresh()
btnc_run.Refresh()
End Sub
Private Sub one_text_color()
txbPV_SN.BackColor = Color.White
txbPV_Date.BackColor = Color.White
txbCapacitor.BackColor = Color.White
txbPV_Z.BackColor = Color.White
txbPV_C.BackColor = Color.White
txbPV_R.BackColor = Color.White
txb_grade.BackColor = DefaultBackColor
txb_CValue.BackColor = DefaultBackColor
End Sub
Private Sub one_vari_default()
For i = 0 To info_data.pv_all
info_select(info_data.pv_all - i) = Nothing
Next
End Sub
''2번 초기화
Private Sub two_text_box()
txb_serial_num.Text = Nothing
txb_prod_state.Text = "대기"
txb_td_serial.Text = "대기"
txb_prod_Depth.Text = "대기"
txb_prod_grade.Text = "대기"
txb_prod_power.Text = "대기"
txbStCheck.Text = "대기"
txbNdCheck.Text = "대기"
txbRdCheck.Text = "대기"
End Sub
Private Sub two_text_refresh()
txb_serial_num.Refresh()
txb_prod_state.Refresh()
txb_td_serial.Refresh()
txb_prod_Depth.Refresh()
txb_prod_grade.Refresh()
txb_prod_power.Refresh()
txbStCheck.Refresh()
txbNdCheck.Refresh()
txbRdCheck.Refresh()
End Sub
Private Sub two_text_color()
txb_serial_num.BackColor = Color.White
txb_prod_state.BackColor = Color.Gold
txb_td_serial.BackColor = DefaultBackColor
txb_prod_Depth.BackColor = DefaultBackColor
txb_prod_grade.BackColor = DefaultBackColor
txb_prod_power.BackColor = DefaultBackColor
txbStCheck.BackColor = DefaultBackColor
txbNdCheck.BackColor = DefaultBackColor
txbRdCheck.BackColor = DefaultBackColor
End Sub
Private Sub two_btn_refresh()
btn_reset.Refresh()
btn_prod.Refresh()
End Sub
''3번 초기화
Private Sub thr_text_box()
'If thr_run_switch = False Then
' txb_barcode.Text = Nothing
' txbmake.Text = "대기"
' txbarea.Text = "대기"
' txbagen.Text = "대기"
'End If
txbresult.Text = "대기"
txbtdnum.Text = "대기"
txbfreq.Text = "대기"
txbgread.Text = "대기"
txbpower.Text = "대기"
txbpdnum.Text = "대기"
End Sub
Private Sub thr_text_refresh()
txb_barcode.Refresh()
txbresult.Refresh()
txbtdnum.Refresh()
txbfreq.Refresh()
txbgread.Refresh()
txbpower.Refresh()
txbpdnum.Refresh()
txbmake.Refresh()
txbarea.Refresh()
txbagen.Refresh()
End Sub
Private Sub thr_text_color()
txb_barcode.BackColor = Color.White
txbresult.BackColor = Color.Gold
txbtdnum.BackColor = DefaultBackColor
txbfreq.BackColor = DefaultBackColor
txbgread.BackColor = DefaultBackColor
txbpower.BackColor = DefaultBackColor
txbpdnum.BackColor = DefaultBackColor
txbmake.BackColor = DefaultBackColor
txbarea.BackColor = DefaultBackColor
txbagen.BackColor = DefaultBackColor
End Sub
Private Sub thr_btn_refresh()
btnreset.Refresh()
btnrun.Refresh()
End Sub
Private Sub thr_vari_reset()
Maximum_Data.prod_code = Nothing
Maximum_Data.prod_serial = Nothing
Maximum_Data.td_freq = Nothing
Maximum_Data.td_textbox = Nothing
Maximum_Data.td_step = Nothing
Maximum_Data.td_grade = Nothing
Maximum_Data.td_power = Nothing
Maximum_Data.td_serial = Nothing
td_data_switch = False
thr_run_switch = False
End Sub
'' 4번 화면 초기화
Private Sub four_text_box()
txb_tds.Text = "DITI"
txb_tdf.Text = "0"
txb_tdp.Text = "0.00"
txb_tdBox.Text = Nothing
txbBarcode.Text = Nothing
txbFactory.Text = "jomt"
nudYear.Text = Format(Now, "yy")
nudMonth.Text = Format(Now, "MM")
nudSN.Text = "0"
txbInfoBox.Text = Nothing
txb_area_code.Text = "82"
txb_abr_code.Text = "0"
txb_areabox.Text = Nothing
nud_shot.Text = "0"
txb_shotbox.Text = Nothing
nud_motor.Text = "0"
txb_motorBox.Text = Nothing
txb_resetbox.Text = Nothing
End Sub
Private Sub four_result_visible()
txb_tdBox.Visible = False
txbInfoBox.Visible = False
txb_areabox.Visible = False
txb_shotbox.Visible = False
txb_motorBox.Visible = False
txb_resetbox.Visible = False
End Sub
Private Sub four_result_color()
txb_tdBox.BackColor = Color.Green
txbInfoBox.BackColor = Color.Green
txb_areabox.BackColor = Color.Green
txb_shotbox.BackColor = Color.Green
txb_motorBox.BackColor = Color.Green
txb_resetbox.BackColor = Color.Green
End Sub
Private Sub four_btn_refresh()
btn_td_read.Refresh()
btn_td_write.Refresh()
btn_info_read.Refresh()
btn_info_write.Refresh()
btn_today.Refresh()
btn_area_read.Refresh()
btn_area_write.Refresh()
btn_shot_read.Refresh()
btn_shot_write.Refresh()
btn_mtr_write.Refresh()
btn_flashreset.Refresh()
btn_all_read.Refresh()
btn_all_write.Refresh()
btn_text_reset.Refresh()
End Sub
Private Sub item_refresh()
txbBarcode.Refresh()
txbFactory.Refresh()
btn_today.Refresh()
nudYear.Refresh()
nudMonth.Refresh()
nudSN.Refresh()
txbInfoBox.Refresh()
btn_info_read.Refresh()
btn_info_write.Refresh()
txb_area_code.Refresh()
txb_abr_code.Refresh()
txb_areabox.Refresh()
btn_area_read.Refresh()
btn_area_write.Refresh()
txb_tds.Refresh()
txb_tdf.Refresh()
txb_tdp.Refresh()
txb_tdBox.Refresh()
btn_td_read.Refresh()
btn_td_write.Refresh()
nud_shot.Refresh()
txb_shotbox.Refresh()
btn_shot_read.Refresh()
btn_shot_write.Refresh()
nud_motor.Refresh()
txb_motorBox.Refresh()
btn_mtr_write.Refresh()
txb_resetbox.Refresh()
btn_flashreset.Refresh()
btn_all_read.Refresh()
btn_all_write.Refresh()
btn_text_reset.Refresh()
lb_motor.Refresh()
End Sub
Private Sub vari_reset()
tmpCmdMessage = Nothing
cmdMessage = Nothing
rxMessage = Nothing
InputCnt = 0
reserve = False
DBCmd = Nothing
InputTimer.Enabled = False
End Sub
''5번창 리셋
Private Sub five_text_box()
txb_5_reg_date.Text = "-"
txb_5_make.Text = "-"
txb_5_model.Text = "-"
txb_5_serial.Text = "-"
txb_5_type.Text = "-"
txb_5_agency.Text = "-"
txb_5_area.Text = "-"
txb_5_date.Text = "-"
txb_5_prod_date.Text = "-"
txb_5_freq.Text = "-"
txb_5_prod_mod.Text = "0"
txb_5_power.Text = "-"
txb_5_prod_motor.Text = "-"
txb_5_td.Text = "-"
txb_5_result.Text = "대기"
End Sub
Private Sub five_text_refresh()
txb_5_reg_date.Refresh()
txb_5_make.Refresh()
txb_5_model.Refresh()
txb_5_serial.Refresh()
txb_5_type.Refresh()
txb_5_agency.Refresh()
txb_5_area.Refresh()
txb_5_date.Refresh()
txb_5_prod_date.Refresh()
txb_5_freq.Refresh()
txb_5_prod_mod.Refresh()
txb_5_power.Refresh()
txb_5_prod_motor.Refresh()
txb_5_td.Refresh()
txb_5_result.Refresh()
End Sub
Private Sub five_text_color()
txb_5_reg_date.BackColor = Color.White
txb_5_make.BackColor = Color.White
txb_5_model.BackColor = Color.White
txb_5_serial.BackColor = Color.White
txb_5_type.BackColor = Color.White
txb_5_agency.BackColor = Color.White
txb_5_area.BackColor = Color.White
txb_5_date.BackColor = Color.White
txb_5_prod_date.BackColor = Color.White
txb_5_freq.BackColor = Color.White
txb_5_prod_mod.BackColor = Color.White
txb_5_power.BackColor = Color.White
txb_5_prod_motor.BackColor = Color.White
txb_5_td.BackColor = Color.White
txb_5_result.BackColor = DefaultBackColor
End Sub
''등록창 리셋
Private Sub reg_text_box()
txb_name_reg.Text = Nothing
txb_make_reg.Text = Nothing
nudarea.Text = 0
nudagency.Text = 0
txb_regresult.Text = Nothing
txb_dgv_state.Text = Nothing
End Sub
Private Sub reg_text_refresh()
txb_name_reg.Refresh()
txb_make_reg.Refresh()
nudarea.Refresh()
nudagency.Refresh()
txb_regresult.Refresh()
txb_dgv_state.Refresh()
End Sub
Private Sub reg_text_color()
txb_name_reg.BackColor = Color.White
txb_make_reg.BackColor = Color.White
nudarea.BackColor = Color.White
nudagency.BackColor = Color.White
txb_regresult.BackColor = Color.Khaki
txb_dgv_state.BackColor = Color.Khaki
End Sub
Private Sub reg_btn_refresh()
btn_data_reg.Refresh()
btn_save.Refresh()
btn_row_delete.Refresh()
btn_alldelete.Refresh()
btn_option_exit.Refresh()
End Sub
Private Sub reg_txb_visible()
txb_dgv_state.Visible = False
txb_regresult.Visible = False
End Sub
Private Sub txbtdnum_gotfocus(sender As Object, e As EventArgs) Handles txbtdnum.GotFocus, txbfreq.GotFocus, txbpower.GotFocus, txbgread.GotFocus, txbpdnum.GotFocus, txbmake.GotFocus, txbarea.GotFocus, txbagen.GotFocus, txbresult.GotFocus
txb_barcode.Focus()
End Sub
Private Sub btn_code_reg_Click(sender As Object, e As EventArgs) Handles btn_code_reg.Click
If txb_code_front.Text.Replace(" ", "") = "" Then
txb_code_front.Text = "30"
End If
If txb_code_front.Text.Replace(" ", "") = "" Or txb_prod1_code.Text.Replace(" ", "") = "" Or txb_output_6850.Text.Replace(" ", "") = "" Or txb_output_7000.Text.Replace(" ", "") = "" Then
MsgBox("비어있는 칸이 존재합니다. 모든 정보를 입력하여 주십시오.", vbExclamation)
Exit Sub
End If
If save_comport("event") Then
If save_comport("comport") = False Then
MsgBox("데이터를 저장하는 도중 오류가 발생하였습니다.", vbCritical)
End If
Else
MsgBox("데이터를 저장하는 도중 오류가 발생하였습니다.", vbCritical)
End If
MsgBox("데이터 저장 완료", vbInformation)
option_reg_chk = False
End Sub
Private Sub txb_code_front_TextChanged(sender As Object, e As EventArgs) Handles txb_code_front.TextChanged, txb_output_6850.TextChanged, txb_output_7000.TextChanged, txb_prod1_code.TextChanged
option_reg_chk = True
End Sub
Private Sub btn_mtr_read_Click(sender As Object, e As EventArgs) Handles btn_mtr_read.Click
Dim stageCnt, motor_level As Int16
Try
txb_motorBox.Visible = True
txb_motorBox.Text = "RUNNING"
txb_motorBox.BackColor = Color.GreenYellow
txb_motorBox.Refresh()
motor_level = Motor_Read()
If motor_level = 6 Then
stageCnt = 0
GoTo FailExit
End If
nud_motor.Text = motor_level
GoTo SuccessExit
Catch ex As Exception
stageCnt = 1
GoTo FailExit
End Try
FailExit:
txb_motorBox.Text = "Timeout" + Str(stageCnt)
txb_motorBox.BackColor = Color.Red
txb_motorBox.Refresh()
Exit Sub
SuccessExit:
txb_motorBox.Text = "SUCCESS"
txb_motorBox.BackColor = Color.Green
txb_motorBox.Refresh()
Exit Sub
End Sub
Private Sub btn_5_reset_Click(sender As Object, e As EventArgs) Handles btn_5_reset.Click
write_5_error = False
TH_thread.Abort()
five_text_box()
five_text_color()
five_text_refresh()
txb_5_prod_mod.ReadOnly = True
txb_5_barcode.BackColor = Color.White
txb_5_barcode.Focus()
End Sub
Private Sub check_data_reset()
For i = 0 To check_list.max_check
check_data(i) = Nothing
Next
End Sub
Private Sub btn_5_check_Click(sender As Object, e As EventArgs) Handles btn_5_check.Click
Dim prd_code As String
Dim step_num As Int16
Dim TDUseCompare As Boolean = False
prd_code = txb_5_barcode.Text
write_5_error = False
five_text_box()
five_text_color()
five_text_refresh()
check_data_reset()
txb_5_barcode.BackColor = Color.White
If Mid(prd_code, 1, 1) = "5" Then
TDUseCompare = False
DBCmd = "SELECT count(Product_SN) FROM " & MainNonTDDB & " WHERE Product_SN = '" & prd_code & "'"
Else
TDUseCompare = True
DBCmd = "SELECT count(Product_SN) FROM " & cartridge_table & " WHERE Product_SN = '" & prd_code & "'"
End If
step_num = DBQueryScalar(DBCmd)
If step_num = 0 Then
txb_5_barcode.BackColor = Color.Red
MsgBox("해당 데이터가 데이터베이스에 존재하지 않습니다.", vbCritical)
Exit Sub
End If
If TDUseCompare = True Then
DBCmd = "SELECT TestStep,Ct_Manufacture_Name,Ct_SN,Ct_Model,Ct_Type,Ct_Abroad,Ct_Agency,Ct_Frequency,Ct_Power,Ct_Max_ShotCnt,Ct_Motor_Lv, PV_SN,P1_Date,P1_Time,P3_DateTime,IFNULL(Manufacture_Date,'') as Manufacture_Date FROM " & cartridge_table & " WHERE Product_SN = '" & prd_code & "'"
If DBQueryReader(DBCmd) Then
For i = 0 To check_list.max_check - 1
check_data(i) = sqlDataQuery(i).ToString
Next
Else
MsgBox("해당 데이터가 데이터베이스에 존재하지 않습니다.", vbCritical)
Exit Sub
End If
If check_data(check_list.P3_DateTime) = Nothing Or check_data(check_list.P3_DateTime) = "0" Then
txb_5_reg_date.Text = "-"
txb_5_reg_date.BackColor = Color.Red
'error_switch = True
Else
txb_5_reg_date.Text = check_data(check_list.P3_DateTime)
txb_5_reg_date.BackColor = Color.Green
End If
If check_data(check_list.Manufacture_Date) = Nothing Or check_data(check_list.Manufacture_Date) = "0" Then
txb_5_date.Text = "-"
txb_5_date.BackColor = Color.Red
'error_switch = True
Else
txb_5_date.Text = check_data(check_list.Manufacture_Date)
txb_5_date.BackColor = Color.Green
End If
If check_data(check_list.make_name) = Nothing Or check_data(check_list.make_name) = "0" Then
txb_5_make.Text = "-"
txb_5_make.BackColor = Color.Red
write_5_error = True
Else
txb_5_make.Text = check_data(check_list.make_name)
txb_5_make.BackColor = Color.Green
End If
If check_data(check_list.model) = Nothing Or check_data(check_list.model) = "0" Then
txb_5_model.Text = "-"
txb_5_model.BackColor = Color.Red
write_5_error = True
Else
txb_5_model.Text = check_data(check_list.model)
txb_5_model.BackColor = Color.Green
End If
If check_data(check_list.serial) = Nothing Or check_data(check_list.serial) = "0" Then
txb_5_serial.Text = "-"
txb_5_serial.BackColor = Color.Red
write_5_error = True
Else
txb_5_serial.Text = check_data(check_list.serial)
txb_5_serial.BackColor = Color.Green
End If
If check_data(check_list.type) = Nothing Or check_data(check_list.type) = "0" Then
txb_5_type.Text = "-"
txb_5_type.BackColor = Color.Red
write_5_error = True
Else
txb_5_type.Text = check_data(check_list.type)
txb_5_type.BackColor = Color.Green
End If
If check_data(check_list.agency) = Nothing Then
txb_5_agency.Text = "-"
txb_5_agency.BackColor = Color.Red
write_5_error = True
Else
txb_5_agency.Text = check_data(check_list.agency)
txb_5_agency.BackColor = Color.Green
End If
If check_data(check_list.abroad) = Nothing Then
txb_5_area.Text = "-"
txb_5_area.BackColor = Color.Red
write_5_error = True
Else
txb_5_area.Text = check_data(check_list.abroad)
txb_5_area.BackColor = Color.Green
End If
If check_data(check_list.td_serial) = Nothing Or check_data(check_list.td_serial) = "0" Then
txb_5_td.Text = "-"
txb_5_td.BackColor = Color.Red
write_5_error = True
Else
txb_5_td.Text = check_data(check_list.td_serial)
txb_5_td.BackColor = Color.Green
End If
If check_data(check_list.p1_date) = Nothing Or check_data(check_list.p1_time) = Nothing Or check_data(check_list.p1_date) = "0" Or check_data(check_list.p1_time) = "0" Then
txb_5_prod_date.Text = "-"
txb_5_prod_date.BackColor = Color.Red
write_5_error = True
Else
txb_5_prod_date.Text = Mid(check_data(check_list.p1_date), 1, InStr(1, check_data(check_list.p1_date), " ") - 1) & " " & check_data(check_list.p1_time)
txb_5_prod_date.BackColor = Color.Green
End If
If check_data(check_list.freq) = Nothing Or check_data(check_list.freq) = "0" Then
txb_5_freq.Text = "-"
txb_5_freq.BackColor = Color.Red
write_5_error = True
Else
txb_5_freq.Text = check_data(check_list.freq)
txb_5_freq.BackColor = Color.Green
End If
If check_data(check_list.power) = Nothing Then
txb_5_power.Text = "-"
txb_5_power.BackColor = Color.Red
write_5_error = True
Else
txb_5_power.Text = check_data(check_list.power) / 100
txb_5_power.BackColor = Color.Green
End If
If check_data(check_list.shotcount) = Nothing Or check_data(check_list.shotcount) = "-1" Then
txb_5_prod_mod.Text = "0"
txb_5_prod_mod.BackColor = Color.Red
write_5_error = True
Else
txb_5_prod_mod.Text = check_data(check_list.shotcount)
txb_5_prod_mod.BackColor = Color.Green
End If
txb_5_prod_mod.ReadOnly = True
If check_data(check_list.p1_motor) = Nothing Then
txb_5_prod_motor.Text = "-"
txb_5_prod_motor.BackColor = Color.Red
write_5_error = True
Else
txb_5_prod_motor.Text = check_data(check_list.p1_motor)
txb_5_prod_motor.BackColor = Color.Green
End If
If write_5_error = True Then
txb_5_barcode.BackColor = Color.Red
Else
txb_5_barcode.BackColor = Color.Green
End If
Else
DBCmd = "SELECT TestStep,Ct_Manufacture_Name,Ct_SN,Ct_Model,Ct_Type,Ct_Abroad,Ct_Agency,PV_SN,IFNULL(Manufacture_Date,'') as Manufacture_Date FROM " & MainNonTDDB & " WHERE Product_SN = '" & prd_code & "'"
If DBQueryReader(DBCmd) Then
For i = 0 To check_list.power - 1
check_data(i) = sqlDataQuery(i).ToString
Next
Else
MsgBox("해당 데이터가 데이터베이스에 존재하지 않습니다.", vbCritical)
Exit Sub
End If
If check_data(check_list.make_name) = Nothing Or check_data(check_list.make_name) = "0" Then
txb_5_make.Text = "-"
txb_5_make.BackColor = Color.Red
write_5_error = True
Else
txb_5_make.Text = check_data(check_list.make_name)
txb_5_make.BackColor = Color.Green
End If
If check_data(check_list.model) = Nothing Or check_data(check_list.model) = "0" Then
txb_5_model.Text = "-"
txb_5_model.BackColor = Color.Red
write_5_error = True
Else
txb_5_model.Text = check_data(check_list.model)
txb_5_model.BackColor = Color.Green
End If
If check_data(check_list.Manufacture_Date) = Nothing Or check_data(check_list.Manufacture_Date) = "0" Then
txb_5_date.Text = "-"
txb_5_date.BackColor = Color.Red
'error_switch = True
Else
txb_5_date.Text = check_data(check_list.Manufacture_Date)
txb_5_date.BackColor = Color.Green
End If
If check_data(check_list.serial) = Nothing Or check_data(check_list.serial) = "0" Then
txb_5_serial.Text = "-"
txb_5_serial.BackColor = Color.Red
write_5_error = True
Else
txb_5_serial.Text = check_data(check_list.serial)
txb_5_serial.BackColor = Color.Green
End If
If check_data(check_list.type) = Nothing Or check_data(check_list.type) = "0" Then
txb_5_type.Text = "-"
txb_5_type.BackColor = Color.Red
write_5_error = True
Else
txb_5_type.Text = check_data(check_list.type)
txb_5_type.BackColor = Color.Green
End If
If check_data(check_list.agency) = Nothing Then
txb_5_agency.Text = "-"
txb_5_agency.BackColor = Color.Red
write_5_error = True
Else
txb_5_agency.Text = check_data(check_list.agency)
txb_5_agency.BackColor = Color.Green
End If
If check_data(check_list.abroad) = Nothing Then
txb_5_area.Text = "-"
txb_5_area.BackColor = Color.Red
write_5_error = True
Else
txb_5_area.Text = check_data(check_list.abroad)
txb_5_area.BackColor = Color.Green
End If
If check_data(check_list.freq) = Nothing Or check_data(check_list.freq) = "0" Then
txb_5_td.Text = "-"
txb_5_td.BackColor = Color.Red
write_5_error = True
Else
txb_5_td.Text = check_data(check_list.freq)
txb_5_td.BackColor = Color.Green
End If
txb_5_prod_mod.ReadOnly = True
If write_5_error = True Then
txb_5_barcode.BackColor = Color.Red
Else
txb_5_barcode.BackColor = Color.Green
End If
End If
End Sub
Private Sub txb_5_reg_date_GotFocus(sender As Object, e As EventArgs) Handles txb_5_reg_date.GotFocus, txb_5_make.GotFocus, txb_5_model.GotFocus, txb_5_serial.GotFocus, txb_5_type.GotFocus, txb_5_agency.GotFocus, txb_5_area.GotFocus, txb_5_prod_date.GotFocus, txb_5_freq.GotFocus, txb_5_power.GotFocus, txb_5_prod_motor.GotFocus, txb_5_td.GotFocus
txb_5_barcode.Focus()
End Sub
Private Sub txb_5_barcode_Click(sender As Object, e As EventArgs) Handles txb_5_barcode.Click
txb_5_barcode.Text = ""
End Sub
Private Sub txb_5_barcode_TextChanged(sender As Object, e As EventArgs) Handles txb_5_barcode.TextChanged
Dim tmpStr As String
If InputCnt = 0 And chbUseBarcode.Checked = True Then
tmpStr = txb_5_barcode.Text
If (Len(tmpStr) > 1) Then
tmpStr = Mid(tmpStr, Len(tmpStr), 1)
txb_5_barcode.Clear()
txb_5_barcode.AppendText(tmpStr)
End If
SetInputCnt()
End If
End Sub
Private Sub ckb_db_use_CheckedChanged(sender As Object, e As EventArgs) Handles ckb_db_use.CheckedChanged
Dim msg_result As Int16 = 0
If ckb_db_use.Checked = False Then
msg_result = MsgBox("데이터베이스를 사용하지 않을 시 이후 데이터베이스를 사용할 때 문제가 발생할 수 있습니다." & vbCrLf & "계속 하시겠습니까?", vbExclamation + vbOKCancel)
If msg_result = 1 Then
ckb_db_use.Checked = False
Else
ckb_db_use.Checked = True
End If
End If
End Sub
Private Sub btn_5_write_Click(sender As Object, e As EventArgs) Handles btn_5_write.Click
Dim prod_code, prod_serial, serial_num As String
Dim TDUseCompare As Boolean = False
txb_5_result.Refresh()
txb_5_result.Text = "입력중.."
txb_5_result.BackColor = Color.Orange
If write_5_error = True Then
MsgBox("등록되지 않은 데이터가 존재합니다. 등록하지 않은 데이터를 등록하여 주십시오.", vbCritical)
txb_5_barcode.Focus()
Exit Sub
End If
prod_code = Mid(txb_5_barcode.Text, 1, 2)
prod_serial = Mid(txb_5_barcode.Text, 3, 4)
serial_num = Mid(txb_5_barcode.Text, 10, 3) & Mid(txb_5_barcode.Text, 7, 3)
prod_serial = prod_serial & serial_num
If Mid(prod_code, 1, 1) = "5" Then
If prod_reg_data(txb_5_make.Text, prod_serial, prod_code, txb_5_area.Text, txb_5_agency.Text) Then
If td_reg_data(txb_5_td.Text) Then
txb_5_result.Refresh()
txb_5_result.Text = "SUCCESS"
txb_5_result.BackColor = Color.Green
Else
txb_5_result.Refresh()
txb_5_result.Text = "FAIL 3"
txb_5_result.BackColor = Color.Red
MsgBox("TD 정보 입력을 하는데 오류가 발생하였습니다.", vbCritical)
End If
Else
txb_5_result.Refresh()
txb_5_result.Text = "FAIL 1"
txb_5_result.BackColor = Color.Red
MsgBox("제품 시리얼 정보 입력을 하는데 오류가 발생하였습니다.", vbCritical)
End If
Else
If prod_reg_data(txb_5_make.Text, prod_serial, prod_code, txb_5_area.Text, txb_5_agency.Text) Then
If sett_reg(txb_5_freq.Text, Val(txb_5_power.Text) * 100) Then
If td_reg_data(txb_5_td.Text) Then
If Motor_reg(txb_5_prod_motor.Text) Then
If shot_reg(txb_5_prod_mod.Text) Then
txb_5_result.Refresh()
txb_5_result.Text = "SUCCESS"
txb_5_result.BackColor = Color.Green
Else
txb_5_result.Refresh()
txb_5_result.Text = "FAIL 5"
txb_5_result.BackColor = Color.Red
MsgBox("샷 수 정보 입력을 하는데 오류가 발생하였습니다.", vbCritical)
End If
Else
txb_5_result.Refresh()
txb_5_result.Text = "FAIL 4"
txb_5_result.BackColor = Color.Red
MsgBox("모터 정보 입력을 하는데 오류가 발생하였습니다.", vbCritical)
End If
Else
txb_5_result.Refresh()
txb_5_result.Text = "FAIL 3"
txb_5_result.BackColor = Color.Red
MsgBox("TD 정보 입력을 하는데 오류가 발생하였습니다.", vbCritical)
End If
Else
txb_5_result.Refresh()
txb_5_result.Text = "FAIL 2"
txb_5_result.BackColor = Color.Red
MsgBox("제품 주파수 및 파워 정보 입력을 하는데 오류가 발생하였습니다.", vbCritical)
End If
Else
txb_5_result.Refresh()
txb_5_result.Text = "FAIL 1"
txb_5_result.BackColor = Color.Red
MsgBox("제품 시리얼 정보 입력을 하는데 오류가 발생하였습니다.", vbCritical)
End If
End If
txb_5_barcode.Focus()
End Sub
Private Sub ckb_auto_write_CheckedChanged(sender As Object, e As EventArgs) Handles ckb_auto_write.CheckedChanged
If ckb_auto_write.Checked Then
ckb_auto_delete.Checked = False
End If
txb_5_barcode.Focus()
End Sub
Private Sub txb_5_barcode_KeyDown(sender As Object, e As KeyEventArgs) Handles txb_5_barcode.KeyDown
If e.KeyCode = Keys.Return Then
btn_5_check_Click(sender, e)
End If
End Sub
Private Sub btPrintref_Click(sender As Object, e As EventArgs) Handles btPrintref.Click
Dim lvi(1) As String
Dim alList As System.Collections.ArrayList = New System.Collections.ArrayList(PrinterSettings.InstalledPrinters)
alList.Sort()
dgvPrinter.Rows.Clear()
For i = 0 To alList.Count - 1
lvi(0) = i + 1
lvi(1) = alList(i).ToString
dgvPrinter.Rows.Add(lvi)
Next
End Sub
Private Sub btnName1_Click(sender As Object, e As EventArgs) Handles btnName1.Click
Dim row As DataGridViewRow = dgvPrinter.SelectedRows(0)
Dim printname As String = row.Cells(1).Value.ToString
txbName1.Text = printname
End Sub
Private Sub btnName2_Click(sender As Object, e As EventArgs) Handles btnName2.Click
Dim row As DataGridViewRow = dgvPrinter.SelectedRows(0)
Dim printname As String = row.Cells(1).Value.ToString
txbName2.Text = printname
End Sub
Private Sub btnLabel1_Click(sender As Object, e As EventArgs) Handles btnLabel1.Click
Dim fileAddress As String = openfile()
If fileAddress <> "fail" Then
txbLabel1.Text = fileAddress
End If
End Sub
Private Sub btnLabel2_Click(sender As Object, e As EventArgs) Handles btnLabel2.Click
Dim fileAddress As String = openfile()
If fileAddress <> "fail" Then
txbLabel2.Text = fileAddress
End If
End Sub
Private Function openfile() As String
Dim ofd As OpenFileDialog = New OpenFileDialog
ofd.Title = "라벨 파일 주소 불러오기"
ofd.FileName = ""
ofd.Filter = "라벨 파일(*.lbx) | *.lbx"
Dim dr As DialogResult = ofd.ShowDialog
If dr = DialogResult.OK Then
Return ofd.FileName
End If
Return "fail"
End Function
Private Sub ckbAllPnt_CheckedChanged(sender As Object, e As EventArgs) Handles ckbAllPnt.CheckedChanged
If ckbAllPnt.Checked = True Then
ckbEachPnt.Enabled = False
gbPrintEach.Enabled = False
ckbEachPnt.Checked = False
ckbBoxPnt.Checked = True
ckbWarPnt.Checked = True
Else
ckbEachPnt.Enabled = True
ckbBoxPnt.Checked = False
ckbWarPnt.Checked = False
End If
option_print_chk = True
End Sub
Private Sub ckbEachPnt_CheckedChanged(sender As Object, e As EventArgs) Handles ckbEachPnt.CheckedChanged
If ckbEachPnt.Checked = True Then
gbPrintEach.Enabled = True
Else
gbPrintEach.Enabled = False
End If
ckbBoxPnt.Checked = False
ckbWarPnt.Checked = False
option_print_chk = True
End Sub
Private Sub print_on(printtext As String, code1 As String, text1 As String, text2 As String)
Try
print_OnOff = False
Dim doc As bpac.Document = New bpac.Document
For i = 0 To print_data.GetLength(1) - 1
If i = 0 Then
If ckbBoxPnt.Checked = True Then
If printer_state(print_data(i, 0)) Then
Dim print_address As String = print_data(i, 1)
doc.Open(print_address)
Dim print_name As Boolean = doc.SetPrinter(print_data(i, 0), True)
doc.GetObject(code1).Text = printtext
doc.GetObject(text1).Text = printtext
Else
MsgBox("프린터 연결이 잘못되었습니다. 전원이나 케이블을 확인하여 주십시오.", vbExclamation)
Exit Sub
End If
End If
Else
If ckbWarPnt.Checked = True Then
If printer_state(print_data(i, 0)) Then
Dim printt_address As String = print_data(i, 1)
doc.Open(printt_address)
Dim print_name As Boolean = doc.SetPrinter(print_data(i, 0), True)
doc.GetObject(text2).Text = printtext
Else
MsgBox("프린터 연결이 잘못되었습니다. 전원이나 케이블을 확인하여 주십시오.", vbExclamation)
Exit Sub
End If
End If
End If
doc.StartPrint("", bpac.PrintOptionConstants.bpoDefault)
doc.PrintOut(1, bpac.PrintOptionConstants.bpoDefault)
doc.EndPrint()
doc.Close()
Next
Catch ex As Exception
MsgBox("Print Error : " & ex.Message, vbCritical)
Exit Sub
End Try
End Sub
Private Function printer_state(printer As String) As Boolean
Dim scope As ManagementScope = New ManagementScope("\root\cimv2")
scope.Connect()
Dim searcher As ManagementObjectSearcher = New ManagementObjectSearcher("SELECT * FROM Win32_Printer")
Dim printName As String = ""
For Each printobj As ManagementObject In searcher.Get
printName = printobj("Name").ToString
If printName.Equals(printer) Then
If printobj("WorkOffline").ToString.ToLower.Equals("true") Then
Return False
Else
Return True
End If
End If
Next
Return False
End Function
Private Sub txbName1_TextChanged(sender As Object, e As EventArgs) Handles txbName1.TextChanged, txbLabel1.TextChanged, txbCode1.TextChanged, txbText1.TextChanged, txbName2.TextChanged, txbLabel2.TextChanged, txbText2.TextChanged
option_print_chk = True
End Sub
Private Sub btnPrintSave_Click(sender As Object, e As EventArgs) Handles btnPrintSave.Click
If txbName1.Text.Replace(" ", "") = "" Or txbLabel1.Text.Replace(" ", "") = "" Or txbCode1.Text.Replace(" ", "") = "" Or txbText1.Text.Replace(" ", "") = "" Then
MsgBox("박스 바코드 인쇄 프린터 설정란에 빈 칸이 존재합니다. 빈 칸을 채워주십시오.", vbExclamation)
Exit Sub
End If
If txbName2.Text.Replace(" ", "") = "" Or txbLabel2.Text.Replace(" ", "") = "" Or txbText2.Text.Replace(" ", "") = "" Then
MsgBox("워런티 카드 텍스트 인쇄 프린터 설정란에 빈 칸이 존재합니다. 빈 칸을 채워주십시오.", vbExclamation)
Exit Sub
End If
If save_comport("print") = False Then
MsgBox("저장하는 도중 오류가 발생하였습니다. 파일을 확인하여 주십시오.", vbCritical)
Exit Sub
End If
option_print_chk = False
printOptionData()
MsgBox("저장이 완료되었습니다.", vbInformation)
End Sub
Private Sub printOptionData()
print_data(0, 0) = txbName1.Text
print_data(0, 1) = txbLabel1.Text
print_data(1, 0) = txbName2.Text
print_data(1, 1) = txbLabel2.Text
End Sub
Private Sub txb_5_prod_mod_DoubleClick(sender As Object, e As EventArgs) Handles txb_5_prod_mod.DoubleClick
txb_5_prod_mod.BackColor = Color.White
txb_5_prod_mod.ReadOnly = False
End Sub
Private Sub txb_5_prod_mod_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txb_5_prod_mod.KeyPress
If Not Char.IsDigit(e.KeyChar) And Not Char.IsControl(e.KeyChar) Then
e.Handled = True
End If
End Sub
Private Sub ckbfrontprt_CheckedChanged(sender As Object, e As EventArgs) Handles ckbfrontprt.CheckedChanged
If ckbfrontprt.Checked = True Then
ckbAllPnt.Checked = True
Else
ckbAllPnt.Checked = False
End If
End Sub
Private Sub btnbasic_Click(sender As Object, e As EventArgs) Handles btnbasic.Click
txbOptBasic.Text = dgv_data.SelectedRows(0).Index
End Sub
Private Sub txbOptBasic_gotFocus(sender As Object, e As EventArgs) Handles txbOptBasic.GotFocus
btnbasic.Focus()
End Sub
Private Sub ckbselect_CheckedChanged(sender As Object, e As EventArgs) Handles ckbselect.CheckedChanged
If ckbselect.Checked = True Then
cboselect.SelectedIndex = txbOptBasic.Text
'boselect_SelectedIndexChanged(sender, e)
cboselect.Enabled = False
Else
cboselect.Enabled = True
End If
End Sub
Private Sub ckb_auto_delete_CheckedChanged(sender As Object, e As EventArgs) Handles ckb_auto_delete.CheckedChanged
If ckb_auto_delete.Checked Then
ckb_auto_write.Checked = False
End If
txb_5_barcode.Focus()
End Sub
Private Sub btn_5_delete_Click(sender As Object, e As EventArgs) Handles btn_5_delete.Click
DBCmd = "UPDATE " & cartridge_table & " SET TestStep = '32' ,Product_SN = NULL WHERE Product_SN = '" & txb_5_barcode.Text & "'"
If DBCommand(DBCmd) Then
txb_5_result.Refresh()
txb_5_result.Text = "SUCCESS"
txb_5_result.BackColor = Color.Green
Exit Sub
End If
txb_5_result.Refresh()
txb_5_result.Text = "FAIL 0"
txb_5_result.BackColor = Color.Red
MsgBox("데이터베이스를 설정하는데 오류가 발생하였습니다", vbCritical)
End Sub
Private Sub ckb_info_CheckedChanged(sender As Object, e As EventArgs) Handles ckb_info.CheckedChanged
txb_serial_num.Focus()
End Sub
Private Function Save_Csv(SaveData As String, SaveType As Boolean) As Boolean
On Error GoTo WR_File_Error
Dim objWriter As StreamWriter
Dim FileName As String
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
If SaveType = True Then
FileName = FilePath & "\" & DateAndTime.Year(Now) & "_" & DateAndTime.Month(Now) & "_" & DateAndTime.Day(Now) & "(FreqData).csv"
Else
FileName = FilePath & "\" & DateAndTime.Year(Now) & "_" & DateAndTime.Month(Now) & "_" & DateAndTime.Day(Now) & "(ProdData).csv"
End If
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()
Return False
WR_File_Error:
MsgBox("Logdata save fail!" & Err.Description)
Return True
End Function
Private Sub btnDeep_Click(sender As Object, e As EventArgs) Handles btnDeep.Click
Try
If dotSerial = Nothing Then
MsgBox("검사를 진행할 시리얼 번호를 입력하여 주십시오.", vbExclamation)
btnc_run.Focus()
GoTo FailExit
End If
If nudDeep.Text.Replace(" ", "") = "" Then
MsgBox("깊이 정보를 입력하지 않으셨습니다.", vbExclamation)
nudDeep.Focus()
GoTo FailExit
End If
nudDeep.BackColor = Color.Yellow
If Motor_reg(nudDeep.Value) Then
If motor_db_reg(nudDeep.Value, dotSerial) Then
GoTo SuccessExit
Else
MsgBox("데이터베이스에 등록하는 과정에서 오류가 발생하였습니다.", vbCritical)
GoTo FailExit
End If
Else
MsgBox("제품과의 연결이 올바르지 않습니다.")
GoTo FailExit
End If
Catch ex As Exception
MsgBox("오류가 발생하였습니다 : " & vbCrLf & ex.Message)
GoTo FailExit
End Try
FailExit:
nudDeep.BackColor = Color.Red
nudDeep.Refresh()
txbPV_SN.Focus()
Exit Sub
SuccessExit:
nudDeep.BackColor = Color.Green
nudDeep.Refresh()
txbPV_SN.Focus()
Exit Sub
End Sub
Private Sub btnPower_Click(sender As Object, e As EventArgs) Handles btnPower.Click
Try
If dotSerial = Nothing Then
MsgBox("검사를 진행할 시리얼 번호를 입력하여 주십시오.", vbExclamation)
btnc_run.Focus()
GoTo FailExit
End If
If nudPower.Text.Replace(" ", "") = "" Then
MsgBox("깊이 정보를 입력하지 않으셨습니다.", vbExclamation)
nudPower.Focus()
Exit Sub
End If
nudPower.BackColor = Color.Yellow
Dim freq As String = txb_CValue.Text
Dim power As String = nudPower.Value
If sett_reg(freq, power) Then
If td_serial_update(freq, power, dotSerial) Then
GoTo SuccessExit
Else
MsgBox("데이터 베이스에 저장하는데 오류가 발생하였습니다.", vbCritical)
GoTo FailExit
End If
Else
MsgBox("제품 데이터를 전송하는데 오류가 발생하였습니다.", vbCritical)
GoTo FailExit
End If
Catch ex As Exception
MsgBox("오류가 발생하였습니다 : " & vbCrLf & ex.Message)
GoTo FailExit
End Try
FailExit:
nudPower.BackColor = Color.Red
nudPower.Refresh()
txbPV_SN.Focus()
Exit Sub
SuccessExit:
nudPower.BackColor = Color.Green
nudPower.Refresh()
txbPV_SN.Focus()
Exit Sub
End Sub
Private Sub txb_tdp_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txb_tdp.KeyPress
If Not (Char.IsDigit(e.KeyChar) Or e.KeyChar = Convert.ToChar(Keys.Back) Or e.KeyChar = "." Or e.KeyChar = "-") Then
e.Handled = True
End If
If InStr(txb_tdp.Text, "-") = 1 Then
txb_tdp.MaxLength = 5
Else
txb_tdp.MaxLength = 4
End If
End Sub
Private Sub txb_tdp_KeyDown(sender As Object, e As KeyEventArgs) Handles txb_tdp.KeyDown, txb_tdf.KeyDown, txb_area_code.KeyDown, txb_abr_code.KeyDown
Dim useText As TextBox = DirectCast(sender, TextBox)
If e.Control Then
If e.KeyCode = Keys.A Then
useText.SelectAll()
End If
End If
End Sub
Private Sub txb_tdf_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txb_tdf.KeyPress, txb_area_code.KeyPress, txb_abr_code.KeyPress
If Not (Char.IsDigit(e.KeyChar) Or e.KeyChar = Convert.ToChar(Keys.Back)) Then
e.Handled = True
End If
End Sub
Private Sub ckbNonTD_CheckedChanged(sender As Object, e As EventArgs) Handles ckbNonTD.CheckedChanged
If ckbNonTD.Checked = True Then
lb_tdf.Enabled = True
txb_tdf.Enabled = True
lb_tdp.Enabled = True
txb_tdp.Enabled = True
gbShot.Enabled = True
gpbLocal.Enabled = True
lbMode.Enabled = True
rdbV1.Enabled = True
rdbV2.Enabled = True
ManagerTDUse = True
Else
lb_tdf.Enabled = False
txb_tdf.Enabled = False
lb_tdp.Enabled = False
txb_tdp.Enabled = False
gbShot.Enabled = False
gpbLocal.Enabled = False
lbMode.Enabled = False
rdbV1.Enabled = False
rdbV2.Enabled = False
ManagerTDUse = False
End If
End Sub
End Class