2092 lines
70 KiB
VB.net
2092 lines
70 KiB
VB.net
|
|
Imports System.IO
|
|
Imports System.IO.Ports
|
|
Imports System.Text
|
|
Imports System.Threading
|
|
Imports System.Windows.Forms.VisualStyles.VisualStyleElement.ProgressBar
|
|
Imports uPLibrary.Networking.M2Mqtt
|
|
|
|
Public Class Main_Form
|
|
Public Const programName As String = "DUALSONIC Cartridge Film Pressing JIG Program_"
|
|
Public Const programVer As String = "Ver 1.1.0"
|
|
|
|
Private Const ch20FullCount As Int16 = 20
|
|
Private Const ch10FullCount As Int16 = 10
|
|
'Private stateCount As Int32 = 1023
|
|
|
|
Private Enum chState
|
|
wait
|
|
start
|
|
play
|
|
middleStop
|
|
endStop
|
|
End Enum
|
|
Private runState(portCount) As Int16 ''각 채널 동작 상태
|
|
|
|
Private openStart As Boolean = False
|
|
Private portCount As Int16
|
|
Private defSecond As Integer
|
|
|
|
Private startTime(portCount) As Integer ''시작시간
|
|
Private nowTime(portCount) As Integer ''현재시간
|
|
Private runColor(portCount) As Boolean ''동작 시 색상 변화
|
|
|
|
|
|
Private playDate(portCount) As String '' 제조일자(mqtt)
|
|
Private playTime(portCount) As String '' 제조시간(mqtt)
|
|
Private playNumber(portCount) As String '' 카트리지 번호(mqtt)
|
|
Private playOKNG(portCount) As Boolean ''합불판정(mqtt)
|
|
Private runTime(portCount) As String '' 필름부착시간(mqtt)
|
|
|
|
Private makeCount As Integer = 0 '' 제작개수 (카트리지번호에 사용)
|
|
|
|
Private chTimeText(portCount) As TextBox
|
|
Private chTimePanel(portCount) As Panel
|
|
Private chTimeMin(portCount) As NumericUpDown
|
|
Private chTimeSec(portCount) As NumericUpDown
|
|
Private chTimebtn(portCount) As Button
|
|
Private chStartbtn(portCount) As Button
|
|
Private chResetbtn(portCount) As Button
|
|
Private chGroup(portCount) As GroupBox
|
|
|
|
Private Enum serialList
|
|
serial1
|
|
serial2
|
|
End Enum
|
|
Private chSerial(serialList.serial2) As SerialPort
|
|
Private chSerialCbb(serialList.serial2) As ComboBox
|
|
|
|
Private Enum saveList
|
|
min
|
|
sec
|
|
chCount
|
|
com1
|
|
com2
|
|
End Enum
|
|
|
|
Private Enum commandList
|
|
nowState
|
|
upState
|
|
downState
|
|
emoState
|
|
End Enum
|
|
Private commandSelect(commandList.emoState) As String
|
|
|
|
''thread
|
|
|
|
Private runCH1_Thread As Thread
|
|
Private runCH2_Thread As Thread
|
|
|
|
Private Delegate Sub uploadDelegate(serialNum As Int16, thName As String)
|
|
Private uploadDelegateFunc As uploadDelegate
|
|
|
|
Private rxMessage, cmdMessage, tmpCmdMessage As String
|
|
|
|
''MQTT
|
|
Public mqttBroker As String = String.Empty
|
|
Public mqttTopic As String = String.Empty
|
|
Private mqttSendData As String = String.Empty
|
|
|
|
Private MQTClient As MqttClient
|
|
|
|
''LocalFile 저장
|
|
Private filePath As String = System.AppDomain.CurrentDomain.BaseDirectory & "\TestCount"
|
|
Private Const csvSaveForm As String = "TestDate,RunCount"
|
|
|
|
|
|
Private Sub Main_Form_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
|
Me.Text = programName & programVer
|
|
formSetting()
|
|
|
|
ReDim chSerial(serialList.serial2)
|
|
chSerial(serialList.serial1) = Serial_1Port
|
|
chSerial(serialList.serial2) = Serial_2Port
|
|
|
|
loadConfig()
|
|
|
|
formLoad()
|
|
|
|
If mqttConnection() = False Then
|
|
MqttForm.txbMqttAd.Text = String.Empty
|
|
MqttForm.txbMqttTp.Text = String.Empty
|
|
mqttBroker = String.Empty
|
|
mqttTopic = String.Empty
|
|
End If
|
|
|
|
If loadLocalFile() = False Then
|
|
makeCount = 0
|
|
End If
|
|
|
|
txbToday.Text = makeCount
|
|
End Sub
|
|
|
|
Private Sub ch1_ThreadRun()
|
|
runCH1_Thread = New Thread(New ParameterizedThreadStart(AddressOf threadFunc))
|
|
|
|
If runCH1_Thread.IsAlive = True Then
|
|
runCH1_Thread.Abort()
|
|
End If
|
|
|
|
runCH1_Thread.Name = "TH1"
|
|
runCH1_Thread.IsBackground = True
|
|
runCH1_Thread.Start(runCH1_Thread.Name)
|
|
End Sub
|
|
|
|
Private Sub ch2_ThreadRun()
|
|
runCH2_Thread = New Thread(AddressOf threadFunc)
|
|
|
|
If runCH2_Thread.IsAlive = True Then
|
|
runCH2_Thread.Abort()
|
|
End If
|
|
|
|
runCH2_Thread.Name = "TH2"
|
|
runCH2_Thread.IsBackground = True
|
|
runCH2_Thread.Start(runCH2_Thread.Name)
|
|
End Sub
|
|
|
|
Private Sub threadFunc(name As String)
|
|
Dim serialNum As Int16
|
|
|
|
Do
|
|
If name = "TH1" Then
|
|
serialNum = serialList.serial1
|
|
Else
|
|
serialNum = serialList.serial2
|
|
End If
|
|
|
|
uploadDelegateFunc = New uploadDelegate(AddressOf ReceiveData)
|
|
Me.Invoke(uploadDelegateFunc, serialNum, name)
|
|
|
|
Thread.Sleep(500)
|
|
Loop
|
|
End Sub
|
|
|
|
Private Sub ReceiveData(serialNum As Int16, thName As String)
|
|
Try
|
|
Dim cmdVal() As String
|
|
|
|
If chSerial(serialNum).IsOpen = True Then
|
|
rxMessage = String.Empty
|
|
cmdMessage = String.Empty
|
|
rxMessage = chSerial(serialNum).ReadExisting
|
|
|
|
If rxMessage <> "" Then
|
|
ManagerForm.rtbState.AppendText(thName & ". " & rxMessage)
|
|
ManagerForm.rtbState.ScrollToCaret()
|
|
|
|
Dim commandCount As Integer = UBound(Split(rxMessage, vbCr)) - 1
|
|
|
|
For i = 0 To commandCount
|
|
Dim nowMessage As String = Mid(rxMessage, 1, InStr(rxMessage, vbCr) - 1)
|
|
|
|
If i <> commandCount Then
|
|
rxMessage = Mid(rxMessage, InStr(rxMessage, vbCr) + 1, rxMessage.Length)
|
|
End If
|
|
|
|
cmdMessage = Mid(rxMessage, 1, InStr(rxMessage, vbCr) + 1)
|
|
|
|
nowMessage = Mid(nowMessage, InStr(nowMessage, "[") + 1, nowMessage.Length)
|
|
|
|
Dim rsCommand As String = Mid(nowMessage, 1, InStr(nowMessage, " ") - 1)
|
|
nowMessage = Mid(nowMessage, InStr(nowMessage, " ") + 1, nowMessage.Length)
|
|
nowMessage = Mid(nowMessage, 1, InStr(nowMessage, "]") - 1)
|
|
|
|
Dim cmdCount As Int16 = UBound(Split(nowMessage, ","))
|
|
ReDim cmdVal(cmdCount)
|
|
|
|
For cnt = 0 To cmdCount
|
|
If cnt = cmdCount Then
|
|
cmdVal(cnt) = Mid(nowMessage, 1, nowMessage.Length)
|
|
Else
|
|
cmdVal(cnt) = Mid(nowMessage, 1, InStr(nowMessage, ",") - 1)
|
|
nowMessage = Mid(nowMessage, InStr(nowMessage, ",") + 1, nowMessage.Length)
|
|
End If
|
|
Next
|
|
|
|
Select Case rsCommand
|
|
Case commandSelect(commandList.nowState)
|
|
txbState.BackColor = Color.Green
|
|
'If cmdVal(1) = stateCount Then
|
|
' Dim stopBol As Boolean = False
|
|
|
|
' Dim runNum() As Int16 = chRunParsing(cmdVal(0))
|
|
|
|
' If runNum(0) = -1 Then
|
|
' Exit Sub
|
|
' End If
|
|
|
|
' Dim chRunNum As Int16 = 0
|
|
|
|
' For cnt = ch10FullCount To 1 Step -1
|
|
' stopBol = False
|
|
|
|
' For run = 0 To runNum.Length - 1
|
|
|
|
' If thName = "TH2" Then
|
|
' chRunNum = chRunNum + ch10FullCount
|
|
' End If
|
|
|
|
' If cnt = runNum(run) Then
|
|
' If runState(chRunNum) <> chState.wait Then
|
|
' runState(chRunNum) = chState.wait
|
|
' stopBol = True
|
|
' Exit For
|
|
' End If
|
|
' End If
|
|
' Next
|
|
|
|
' If stopBol = False Then
|
|
' If runState(chRunNum) <> chState.play Then
|
|
' runState(chRunNum) = chState.play
|
|
' End If
|
|
' End If
|
|
' Next
|
|
|
|
'End If
|
|
|
|
Case commandSelect(commandList.upState)
|
|
|
|
If cmdVal(0) > 0 Then
|
|
Dim runNum() As Int16 = chRunParsing(cmdVal(0))
|
|
|
|
If runNum(0) = -1 Then
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim chRunNum As Int16
|
|
|
|
For run = 0 To runNum.Length - 1
|
|
chRunNum = runNum(run)
|
|
|
|
If thName = "TH2" Then
|
|
chRunNum = chRunNum + ch10FullCount
|
|
End If
|
|
|
|
If runState(chRunNum) = chState.start Or runState(chRunNum) = chState.play Then
|
|
If nowTime(chRunNum) = 0 Then
|
|
runState(chRunNum) = chState.endStop
|
|
Else
|
|
runState(chRunNum) = chState.middleStop
|
|
End If
|
|
End If
|
|
|
|
Next
|
|
|
|
End If
|
|
|
|
Case commandSelect(commandList.downState)
|
|
If cmdVal(0) > 0 Then
|
|
|
|
Dim runNum() As Int16 = chRunParsing(cmdVal(0))
|
|
|
|
If runNum(0) = -1 Then
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim chRunNum As Int16
|
|
|
|
For run = 0 To runNum.Length - 1
|
|
chRunNum = runNum(run)
|
|
|
|
If thName = "TH2" Then
|
|
chRunNum = chRunNum + ch10FullCount
|
|
End If
|
|
|
|
If runState(chRunNum) = chState.wait Then
|
|
runState(chRunNum) = chState.start
|
|
End If
|
|
|
|
Next
|
|
|
|
End If
|
|
Case commandSelect(commandList.emoState)
|
|
Dim runNum As Int16
|
|
For emo = 1 To ch10FullCount
|
|
|
|
If thName = "TH2" Then
|
|
runNum = emo + ch10FullCount
|
|
Else
|
|
runNum = emo
|
|
End If
|
|
|
|
runState(runNum) = chState.middleStop
|
|
Next
|
|
|
|
End Select
|
|
Next
|
|
|
|
chSerial(serialNum).DiscardInBuffer()
|
|
chSerial(serialNum).DiscardOutBuffer()
|
|
rxMessage = String.Empty
|
|
cmdMessage = String.Empty
|
|
|
|
Else
|
|
txbState.BackColor = Color.Red
|
|
chSerial(serialNum).DiscardInBuffer()
|
|
chSerial(serialNum).DiscardOutBuffer()
|
|
End If
|
|
Else
|
|
txbState.BackColor = Color.Red
|
|
End If
|
|
Catch ex As Exception
|
|
MsgBox("데이터 불러오기 에러 발생 ::" & ex.Message, vbCritical)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Function chRunParsing(chBinary As Int16) As Int16()
|
|
Dim SetUpList(0) As Int16
|
|
Dim Count, ArrayCount As Int16
|
|
Dim ChCount As Int16 = 0
|
|
|
|
SetUpList(0) = -1
|
|
|
|
Dim chNum As String = Convert.ToString(chBinary, 2)
|
|
|
|
For i = Len(chNum) To 1 Step -1
|
|
ChCount += 1
|
|
|
|
Count = Mid(chNum, i, 1)
|
|
If Count = 1 Then
|
|
If SetUpList(0) = -1 Then
|
|
SetUpList(0) = ChCount
|
|
Else
|
|
ArrayCount = SetUpList.Length
|
|
ReDim Preserve SetUpList(SetUpList.Length)
|
|
SetUpList(ArrayCount) = ChCount
|
|
End If
|
|
End If
|
|
|
|
Next
|
|
|
|
Return SetUpList
|
|
|
|
End Function
|
|
|
|
Private Sub formLoad()
|
|
For i = 1 To portCount
|
|
chTimeText(i).Enabled = True
|
|
chTimeText(i).Visible = True
|
|
chTimePanel(i).Enabled = False
|
|
chTimePanel(i).Visible = False
|
|
chTimebtn(i).Enabled = True
|
|
chTimebtn(i).Text = "타이머 수정"
|
|
chStartbtn(i).Enabled = True
|
|
chResetbtn(i).Enabled = True
|
|
Next
|
|
End Sub
|
|
|
|
Private Sub formSetting()
|
|
Me.Size = New Size(1920, 1080)
|
|
Me.WindowState = WindowState.Maximized
|
|
End Sub
|
|
|
|
Private Function mqttConnection() As Boolean
|
|
If MqttForm.loadMqtt = False Then
|
|
Return False
|
|
Else
|
|
If mqttConnect() = False Then
|
|
Return False
|
|
End If
|
|
End If
|
|
Return True
|
|
End Function
|
|
|
|
Private Sub rdbPort_CheckedChanged(sender As Object, e As EventArgs) Handles rdbPort.CheckedChanged
|
|
If rdbPort.Checked = True Then
|
|
gbTimeSet.Visible = False
|
|
gb_comport.Visible = True
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub rdbTime_CheckedChanged(sender As Object, e As EventArgs) Handles rdbTime.CheckedChanged
|
|
If rdbTime.Checked = True Then
|
|
gbTimeSet.Visible = True
|
|
gb_comport.Visible = False
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub rdbport20_CheckedChanged(sender As Object, e As EventArgs) Handles rdbport20.CheckedChanged
|
|
If rdbport20.Checked = True Then
|
|
|
|
serialChange()
|
|
|
|
ReDim chSerial(serialList.serial2)
|
|
chSerial(serialList.serial1) = Serial_1Port
|
|
chSerial(serialList.serial2) = Serial_2Port
|
|
|
|
pn10Port.Visible = False
|
|
pn10Port.Enabled = False
|
|
pn10Port.Location = New Point(1930, 80)
|
|
|
|
pn20Port.Visible = True
|
|
pn20Port.Enabled = True
|
|
pn20Port.Location = New Point(5, 90)
|
|
|
|
gbPort2.Enabled = True
|
|
|
|
DataSetting()
|
|
|
|
Dim timeData As String = timeSetting(Val(nudMinute.Value), Val(nudSecond.Value))
|
|
|
|
If timeData = "FAIL" Then
|
|
Exit Sub
|
|
End If
|
|
|
|
For i = 1 To portCount
|
|
startTime(i) = defSecond
|
|
chTimeText(i).Text = timeData
|
|
Next
|
|
|
|
If openStart = True Then
|
|
saveConfig()
|
|
Else
|
|
openStart = True
|
|
End If
|
|
|
|
|
|
formLoad()
|
|
systemOnOff(False)
|
|
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub rdbport10_CheckedChanged(sender As Object, e As EventArgs) Handles rdbport10.CheckedChanged
|
|
If rdbport10.Checked = True Then
|
|
|
|
serialChange()
|
|
|
|
ReDim chSerial(serialList.serial1)
|
|
chSerial(serialList.serial1) = Serial_1Port
|
|
|
|
pn20Port.Visible = False
|
|
pn20Port.Enabled = False
|
|
pn20Port.Location = New Point(1930, 80)
|
|
|
|
pn10Port.Visible = True
|
|
pn10Port.Enabled = True
|
|
pn10Port.Location = New Point(5, 90)
|
|
|
|
gbPort2.Enabled = False
|
|
|
|
DataSetting()
|
|
|
|
Dim timeData As String = timeSetting(Val(nudMinute.Value), Val(nudSecond.Value))
|
|
|
|
If timeData = "FAIL" Then
|
|
Exit Sub
|
|
End If
|
|
|
|
For i = 1 To portCount
|
|
startTime(i) = defSecond
|
|
chTimeText(i).Text = timeData
|
|
Next
|
|
|
|
If openStart = True Then
|
|
saveConfig()
|
|
Else
|
|
openStart = True
|
|
End If
|
|
|
|
formLoad()
|
|
systemOnOff(False)
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub serialChange()
|
|
For i = 0 To chSerial.Length - 1
|
|
If chSerial(i).IsOpen = True Then
|
|
|
|
If i = serialList.serial1 Then
|
|
If runCH1_Thread.IsAlive = True Then
|
|
runCH1_Thread.Abort()
|
|
End If
|
|
Else
|
|
If runCH2_Thread.IsAlive = True Then
|
|
runCH2_Thread.Abort()
|
|
End If
|
|
End If
|
|
|
|
chSerial(i).Close()
|
|
chSerialCbb(i).SelectedIndex = -1
|
|
chSerialCbb(i).Text = "PRESS!"
|
|
|
|
End If
|
|
Next
|
|
|
|
btnComport.Text = "스캔"
|
|
End Sub
|
|
|
|
Private Sub btnTimeSet_Click(sender As Object, e As EventArgs) Handles btnTimeSet.Click
|
|
If nudMinute.Text.Replace(" ", "") = "" Or nudSecond.Text.Replace(" ", "") = "" Or nudMinute.Text.Replace(" ", "") = Nothing Or nudSecond.Text.Replace(" ", "") = Nothing Then
|
|
MsgBox("시간이 입력되지 않았습니다. 시간을 입력하여 주십시오.", vbExclamation)
|
|
Exit Sub
|
|
End If
|
|
|
|
If nudMinute.Text.Replace(" ", "") = 0 And nudSecond.Text.Replace(" ", "") = 0 Then
|
|
MsgBox("카운트 할 시간이 존재하지 않습니다. 시간을 지정하여 주십시오.", vbExclamation)
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim timeData As String = timeSetting(Val(nudMinute.Value), Val(nudSecond.Value))
|
|
|
|
If timeData = "FAIL" Then
|
|
Exit Sub
|
|
End If
|
|
|
|
For i = 1 To portCount
|
|
startTime(i) = defSecond
|
|
chTimeText(i).Text = timeData
|
|
chTimeText(i).BackColor = Color.FromArgb(255, 192, 128)
|
|
Next
|
|
|
|
saveConfig()
|
|
End Sub
|
|
|
|
Private Function timeSetting(minData As Int16, secData As Int16) As String
|
|
|
|
If minData = 0 And secData = 0 Then
|
|
defSecond = 0
|
|
Else
|
|
defSecond = secondFunc(minData, secData)
|
|
|
|
If defSecond = -1 Then
|
|
defSecond = 0
|
|
Return "FAIL"
|
|
End If
|
|
End If
|
|
|
|
Return TimeSpan.FromSeconds(defSecond).ToString("mm\:ss")
|
|
End Function
|
|
|
|
Private Function secondFunc(hour As Int16, second As Int16) As Int16
|
|
Try
|
|
Const hourSecond As Int16 = 60
|
|
Return (hour * hourSecond) + second
|
|
Catch ex As Exception
|
|
MsgBox("시간 변환 오류 :: " & ex.Message, vbCritical)
|
|
Return -1
|
|
End Try
|
|
End Function
|
|
|
|
Private Sub btnRunning(chNum As Int16)
|
|
Dim useSerial As SerialPort
|
|
Dim useCh As Int16
|
|
|
|
If chNum > ch10FullCount Then
|
|
useCh = chNum - ch10FullCount
|
|
useSerial = chSerial(serialList.serial2)
|
|
Else
|
|
useCh = chNum
|
|
useSerial = chSerial(serialList.serial1)
|
|
End If
|
|
|
|
If runState(chNum) = chState.wait Or runState(chNum) = chState.start Then
|
|
If state_updown(useCh, 0, useSerial) Then
|
|
processRun(chNum)
|
|
Else
|
|
runState(chNum) = chState.wait
|
|
MsgBox("데이터 통신 불량", vbCritical)
|
|
End If
|
|
ElseIf runState(chNum) = chState.play Or runState(chNum) = chState.middleStop Or runState(chNum) = chState.endStop Then
|
|
If state_updown(useCh, 1, useSerial) Then
|
|
processRun(chNum)
|
|
Else
|
|
runState(chNum) = chState.wait
|
|
MsgBox("데이터 통신 불량", vbCritical)
|
|
End If
|
|
Else
|
|
MsgBox("상태 오류 발생")
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub btn_updown_ch1_Click(sender As Object, e As EventArgs) Handles btn_updown_ch1.Click
|
|
Const chNum As Int16 = 1
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_updown_ch2_Click(sender As Object, e As EventArgs) Handles btn_updown_ch2.Click
|
|
Const chNum As Int16 = 2
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_updown_ch3_Click(sender As Object, e As EventArgs) Handles btn_updown_ch3.Click
|
|
Const chNum As Int16 = 3
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_updown_ch4_Click(sender As Object, e As EventArgs) Handles btn_updown_ch4.Click
|
|
Const chNum As Int16 = 4
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_updown_ch5_Click(sender As Object, e As EventArgs) Handles btn_updown_ch5.Click
|
|
Const chNum As Int16 = 5
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_updown_ch6_Click(sender As Object, e As EventArgs) Handles btn_updown_ch6.Click
|
|
Const chNum As Int16 = 6
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_updown_ch7_Click(sender As Object, e As EventArgs) Handles btn_updown_ch7.Click
|
|
Const chNum As Int16 = 7
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_updown_ch8_Click(sender As Object, e As EventArgs) Handles btn_updown_ch8.Click
|
|
Const chNum As Int16 = 8
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_updown_ch9_Click(sender As Object, e As EventArgs) Handles btn_updown_ch9.Click
|
|
Const chNum As Int16 = 9
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_updown_ch10_Click(sender As Object, e As EventArgs) Handles btn_updown_ch10.Click
|
|
Const chNum As Int16 = 10
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_updown_ch11_Click(sender As Object, e As EventArgs) Handles btn_updown_ch11.Click
|
|
Const chNum As Int16 = 11
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_updown_ch12_Click(sender As Object, e As EventArgs) Handles btn_updown_ch12.Click
|
|
Const chNum As Int16 = 12
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_updown_ch13_Click(sender As Object, e As EventArgs) Handles btn_updown_ch13.Click
|
|
Const chNum As Int16 = 13
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_updown_ch14_Click(sender As Object, e As EventArgs) Handles btn_updown_ch14.Click
|
|
Const chNum As Int16 = 14
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_updown_ch15_Click(sender As Object, e As EventArgs) Handles btn_updown_ch15.Click
|
|
Const chNum As Int16 = 15
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_updown_ch16_Click(sender As Object, e As EventArgs) Handles btn_updown_ch16.Click
|
|
Const chNum As Int16 = 16
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_updown_ch17_Click(sender As Object, e As EventArgs) Handles btn_updown_ch17.Click
|
|
Const chNum As Int16 = 17
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_updown_ch18_Click(sender As Object, e As EventArgs) Handles btn_updown_ch18.Click
|
|
Const chNum As Int16 = 18
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_updown_ch19_Click(sender As Object, e As EventArgs) Handles btn_updown_ch19.Click
|
|
Const chNum As Int16 = 19
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_updown_ch20_Click(sender As Object, e As EventArgs) Handles btn_updown_ch20.Click
|
|
Const chNum As Int16 = 20
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglStart1_Click(sender As Object, e As EventArgs) Handles btnSglStart1.Click
|
|
Const chNum As Int16 = 1
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglStart2_Click(sender As Object, e As EventArgs) Handles btnSglStart2.Click
|
|
Const chNum As Int16 = 2
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglStart3_Click(sender As Object, e As EventArgs) Handles btnSglStart3.Click
|
|
Const chNum As Int16 = 3
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglStart4_Click(sender As Object, e As EventArgs) Handles btnSglStart4.Click
|
|
Const chNum As Int16 = 4
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglStart5_Click(sender As Object, e As EventArgs) Handles btnSglStart5.Click
|
|
Const chNum As Int16 = 5
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglStart6_Click(sender As Object, e As EventArgs) Handles btnSglStart6.Click
|
|
Const chNum As Int16 = 6
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglStart7_Click(sender As Object, e As EventArgs) Handles btnSglStart7.Click
|
|
Const chNum As Int16 = 7
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglStart8_Click(sender As Object, e As EventArgs) Handles btnSglStart8.Click
|
|
Const chNum As Int16 = 8
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglStart9_Click(sender As Object, e As EventArgs) Handles btnSglStart9.Click
|
|
Const chNum As Int16 = 9
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglStart10_Click(sender As Object, e As EventArgs) Handles btnSglStart10.Click
|
|
Const chNum As Int16 = 10
|
|
btnRunning(chNum)
|
|
End Sub
|
|
|
|
Private Sub processRun(chNum As Int16)
|
|
If runState(chNum) = chState.wait Or runState(chNum) = chState.start Then
|
|
|
|
If runState(chNum) = chState.wait Then
|
|
runState(chNum) = chState.start
|
|
End If
|
|
|
|
runDataReset(chNum)
|
|
|
|
playDate(chNum) = Format(Now, "yyyy") & "-" & Format(Now, "MM") & "-" & Format(Now, "dd")
|
|
playTime(chNum) = Format(Now, "HH") & ":" & Format(Now, "mm") & ":" & Format(Now, "ss")
|
|
makeCount += 1
|
|
playNumber(chNum) = makeCount
|
|
|
|
chTimebtn(chNum).Enabled = False
|
|
chResetbtn(chNum).Enabled = False
|
|
chStartbtn(chNum).Text = "정 지"
|
|
chTimeText(chNum).Text = TimeSpan.FromSeconds(startTime(chNum)).ToString("mm\:ss")
|
|
chTimeText(chNum).BackColor = Color.Yellow
|
|
|
|
runColor(chNum) = False
|
|
nowTime(chNum) = startTime(chNum)
|
|
runState(chNum) = True
|
|
runSystemOnOff(True)
|
|
|
|
runState(chNum) = chState.play
|
|
|
|
Else
|
|
Dim OkNg As Boolean = False
|
|
If nowTime(chNum) = 0 Then
|
|
runState(chNum) = chState.endStop
|
|
OkNg = True
|
|
chTimeText(chNum).BackColor = Color.Green
|
|
Else
|
|
runState(chNum) = chState.middleStop
|
|
OkNg = False
|
|
chTimeText(chNum).BackColor = Color.Red
|
|
End If
|
|
|
|
chTimebtn(chNum).Enabled = True
|
|
chResetbtn(chNum).Enabled = True
|
|
chStartbtn(chNum).Text = "시 작"
|
|
|
|
runState(chNum) = False
|
|
runSystemOnOff(False)
|
|
|
|
saveLocalFile(chNum)
|
|
|
|
Dim chPlayTime As Integer = startTime(chNum) - nowTime(chNum)
|
|
mqttSendData = "[{""jigch"":""" & chNum & """},{""testdate"":""" & playDate(chNum) & """},{""testtime"":""" & playTime(chNum) & """},{""cartnum"":""" & playNumber(chNum) & """},{""test_result"":""" & OkNg & """},{""runtime"":""" & TimeSpan.FromSeconds(chPlayTime).ToString("mm\:ss") & """}]"
|
|
Mqtt_DataSend(mqttSendData)
|
|
|
|
finishRefresh(chNum)
|
|
txbToday.Text += 1
|
|
runState(chNum) = chState.wait
|
|
End If
|
|
End Sub
|
|
|
|
Private Function state_updown(ch_num As Int16, state_num As Int16, srlPort As SerialPort) As Boolean
|
|
tmpCmdMessage = "setsolch"
|
|
cmdMessage = "[" & tmpCmdMessage & " " & ch_num & "," & state_num & "]" + vbCrLf
|
|
|
|
If SendData(cmdMessage, srlPort) Then
|
|
Return False
|
|
End If
|
|
|
|
Return True
|
|
|
|
End Function
|
|
|
|
Private Function SendData(SendMessage As String, srl_name As SerialPort) As Boolean
|
|
Try
|
|
If srl_name.IsOpen = True Then
|
|
srl_name.DiscardInBuffer()
|
|
srl_name.DiscardOutBuffer()
|
|
If srl_name.BytesToRead Then
|
|
srl_name.DiscardInBuffer()
|
|
End If
|
|
srl_name.WriteTimeout = 10
|
|
srl_name.WriteLine(SendMessage)
|
|
Return False
|
|
Else
|
|
MsgBox("통신 포트가 열리지 않았습니다.", vbCritical)
|
|
Return True
|
|
End If
|
|
Catch ex As Exception
|
|
Return True
|
|
End Try
|
|
Return True
|
|
End Function
|
|
|
|
Private Sub runSystemOnOff(onOff As Boolean) '' true : 동작 시작 시 / false : 동작 종료 시
|
|
|
|
If onOff = True Then
|
|
If btnAllReset.Enabled = True Then
|
|
For i = 1 To portCount
|
|
If runState(i) = True Then
|
|
gbTimeSet.Enabled = False
|
|
btnAllReset.Enabled = False
|
|
End If
|
|
Next
|
|
End If
|
|
Else
|
|
For i = 1 To portCount
|
|
If runState(i) = True Then
|
|
Exit Sub
|
|
End If
|
|
Next
|
|
|
|
gbTimeSet.Enabled = True
|
|
btnAllReset.Enabled = True
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub playTimer_Tick(sender As Object, e As EventArgs) Handles playTimer.Tick
|
|
For i = 1 To portCount
|
|
If runState(i) = chState.play Then
|
|
nowTime(i) -= 1
|
|
chTimeText(i).Text = TimeSpan.FromSeconds(nowTime(i)).ToString("mm\:ss")
|
|
|
|
If runColor(i) = True Then
|
|
runColor(i) = False
|
|
chTimeText(i).BackColor = Color.Moccasin
|
|
Else
|
|
runColor(i) = True
|
|
chTimeText(i).BackColor = Color.Pink
|
|
End If
|
|
|
|
If nowTime(i) = 0 Then
|
|
btnRunning(i)
|
|
End If
|
|
|
|
ElseIf runState(i) = chState.middleStop Or runState(i) = chState.endStop Or runState(i) = chState.start Then
|
|
btnRunning(i)
|
|
End If
|
|
Next
|
|
End Sub
|
|
|
|
Private Sub runDataReset(chNum As Int16)
|
|
playDate(chNum) = String.Empty
|
|
playTime(chNum) = String.Empty
|
|
playNumber(chNum) = String.Empty
|
|
playOKNG(chNum) = False
|
|
runTime(chNum) = String.Empty
|
|
mqttSendData = String.Empty
|
|
End Sub
|
|
|
|
|
|
Private Sub btn_reg_ch1_Click(sender As Object, e As EventArgs) Handles btn_reg_ch1.Click
|
|
Const chNum As Int16 = 1
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reg_ch2_Click(sender As Object, e As EventArgs) Handles btn_reg_ch2.Click
|
|
Const chNum As Int16 = 2
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reg_ch3_Click(sender As Object, e As EventArgs) Handles btn_reg_ch3.Click
|
|
Const chNum As Int16 = 3
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reg_ch4_Click(sender As Object, e As EventArgs) Handles btn_reg_ch4.Click
|
|
Const chNum As Int16 = 4
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reg_ch5_Click(sender As Object, e As EventArgs) Handles btn_reg_ch5.Click
|
|
Const chNum As Int16 = 5
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reg_ch6_Click(sender As Object, e As EventArgs) Handles btn_reg_ch6.Click
|
|
Const chNum As Int16 = 6
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reg_ch7_Click(sender As Object, e As EventArgs) Handles btn_reg_ch7.Click
|
|
Const chNum As Int16 = 7
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reg_ch8_Click(sender As Object, e As EventArgs) Handles btn_reg_ch8.Click
|
|
Const chNum As Int16 = 8
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reg_ch9_Click(sender As Object, e As EventArgs) Handles btn_reg_ch9.Click
|
|
Const chNum As Int16 = 9
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reg_ch10_Click(sender As Object, e As EventArgs) Handles btn_reg_ch10.Click
|
|
Const chNum As Int16 = 10
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reg_ch11_Click(sender As Object, e As EventArgs) Handles btn_reg_ch11.Click
|
|
Const chNum As Int16 = 11
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reg_ch12_Click(sender As Object, e As EventArgs) Handles btn_reg_ch12.Click
|
|
Const chNum As Int16 = 12
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reg_ch13_Click(sender As Object, e As EventArgs) Handles btn_reg_ch13.Click
|
|
Const chNum As Int16 = 13
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reg_ch14_Click(sender As Object, e As EventArgs) Handles btn_reg_ch14.Click
|
|
Const chNum As Int16 = 14
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reg_ch15_Click(sender As Object, e As EventArgs) Handles btn_reg_ch15.Click
|
|
Const chNum As Int16 = 15
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reg_ch16_Click(sender As Object, e As EventArgs) Handles btn_reg_ch16.Click
|
|
Const chNum As Int16 = 16
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reg_ch17_Click(sender As Object, e As EventArgs) Handles btn_reg_ch17.Click
|
|
Const chNum As Int16 = 17
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reg_ch18_Click(sender As Object, e As EventArgs) Handles btn_reg_ch18.Click
|
|
Const chNum As Int16 = 18
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reg_ch19_Click(sender As Object, e As EventArgs) Handles btn_reg_ch19.Click
|
|
Const chNum As Int16 = 19
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reg_ch20_Click(sender As Object, e As EventArgs) Handles btn_reg_ch20.Click
|
|
Const chNum As Int16 = 20
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglEdit1_Click(sender As Object, e As EventArgs) Handles btnSglEdit1.Click
|
|
Const chNum As Int16 = 1
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglEdit2_Click(sender As Object, e As EventArgs) Handles btnSglEdit2.Click
|
|
Const chNum As Int16 = 2
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglEdit3_Click(sender As Object, e As EventArgs) Handles btnSglEdit3.Click
|
|
Const chNum As Int16 = 3
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglEdit4_Click(sender As Object, e As EventArgs) Handles btnSglEdit4.Click
|
|
Const chNum As Int16 = 4
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglEdit5_Click(sender As Object, e As EventArgs) Handles btnSglEdit5.Click
|
|
Const chNum As Int16 = 5
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglEdit6_Click(sender As Object, e As EventArgs) Handles btnSglEdit6.Click
|
|
Const chNum As Int16 = 6
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglEdit7_Click(sender As Object, e As EventArgs) Handles btnSglEdit7.Click
|
|
Const chNum As Int16 = 7
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglEdit8_Click(sender As Object, e As EventArgs) Handles btnSglEdit8.Click
|
|
Const chNum As Int16 = 8
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglEdit9_Click(sender As Object, e As EventArgs) Handles btnSglEdit9.Click
|
|
Const chNum As Int16 = 9
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglEdit10_Click(sender As Object, e As EventArgs) Handles btnSglEdit10.Click
|
|
Const chNum As Int16 = 10
|
|
timeChangeForm(chNum)
|
|
End Sub
|
|
|
|
Private Sub timeChangeForm(chNum As Int16)
|
|
If chTimePanel(chNum).Visible = True Then
|
|
Dim secondValue As Integer = secondFunc(Val(chTimeMin(chNum).Value), Val(chTimeSec(chNum).Value))
|
|
|
|
If secondValue = -1 Then
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim timeChange As String = TimeSpan.FromSeconds(secondValue).ToString("mm\:ss")
|
|
|
|
startTime(chNum) = secondValue
|
|
chTimeText(chNum).Text = timeChange
|
|
chTimeText(chNum).BackColor = Color.FromArgb(255, 192, 128)
|
|
|
|
chTimeText(chNum).Visible = True
|
|
chTimeText(chNum).Enabled = True
|
|
|
|
chTimePanel(chNum).Visible = False
|
|
chTimePanel(chNum).Enabled = False
|
|
|
|
chTimebtn(chNum).Text = "타이머 수정"
|
|
chStartbtn(chNum).Enabled = True
|
|
chResetbtn(chNum).Enabled = True
|
|
|
|
Else
|
|
|
|
chTimePanel(chNum).Visible = True
|
|
chTimePanel(chNum).Enabled = True
|
|
|
|
chTimeText(chNum).Visible = False
|
|
chTimeText(chNum).Enabled = False
|
|
|
|
chTimeMin(chNum).Value = startTime(chNum) \ 60
|
|
chTimeSec(chNum).Value = startTime(chNum) Mod 60
|
|
|
|
chTimebtn(chNum).Text = "완료"
|
|
chStartbtn(chNum).Enabled = False
|
|
chResetbtn(chNum).Enabled = False
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub btn_reset_ch1_Click(sender As Object, e As EventArgs) Handles btn_reset_ch1.Click
|
|
Const chNum As Int16 = 1
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reset_ch2_Click(sender As Object, e As EventArgs) Handles btn_reset_ch2.Click
|
|
Const chNum As Int16 = 2
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reset_ch3_Click(sender As Object, e As EventArgs) Handles btn_reset_ch3.Click
|
|
Const chNum As Int16 = 3
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reset_ch4_Click(sender As Object, e As EventArgs) Handles btn_reset_ch4.Click
|
|
Const chNum As Int16 = 4
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reset_ch5_Click(sender As Object, e As EventArgs) Handles btn_reset_ch5.Click
|
|
Const chNum As Int16 = 5
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reset_ch6_Click(sender As Object, e As EventArgs) Handles btn_reset_ch6.Click
|
|
Const chNum As Int16 = 6
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reset_ch7_Click(sender As Object, e As EventArgs) Handles btn_reset_ch7.Click
|
|
Const chNum As Int16 = 7
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reset_ch8_Click(sender As Object, e As EventArgs) Handles btn_reset_ch8.Click
|
|
Const chNum As Int16 = 8
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reset_ch9_Click(sender As Object, e As EventArgs) Handles btn_reset_ch9.Click
|
|
Const chNum As Int16 = 9
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reset_ch10_Click(sender As Object, e As EventArgs) Handles btn_reset_ch10.Click
|
|
Const chNum As Int16 = 10
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reset_ch11_Click(sender As Object, e As EventArgs) Handles btn_reset_ch11.Click
|
|
Const chNum As Int16 = 11
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reset_ch12_Click(sender As Object, e As EventArgs) Handles btn_reset_ch12.Click
|
|
Const chNum As Int16 = 12
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reset_ch13_Click(sender As Object, e As EventArgs) Handles btn_reset_ch13.Click
|
|
Const chNum As Int16 = 13
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reset_ch14_Click(sender As Object, e As EventArgs) Handles btn_reset_ch14.Click
|
|
Const chNum As Int16 = 14
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reset_ch15_Click(sender As Object, e As EventArgs) Handles btn_reset_ch15.Click
|
|
Const chNum As Int16 = 15
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reset_ch16_Click(sender As Object, e As EventArgs) Handles btn_reset_ch16.Click
|
|
Const chNum As Int16 = 16
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reset_ch17_Click(sender As Object, e As EventArgs) Handles btn_reset_ch17.Click
|
|
Const chNum As Int16 = 17
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reset_ch18_Click(sender As Object, e As EventArgs) Handles btn_reset_ch18.Click
|
|
Const chNum As Int16 = 18
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reset_ch19_Click(sender As Object, e As EventArgs) Handles btn_reset_ch19.Click
|
|
Const chNum As Int16 = 19
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btn_reset_ch20_Click(sender As Object, e As EventArgs) Handles btn_reset_ch20.Click
|
|
Const chNum As Int16 = 20
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglReset1_Click(sender As Object, e As EventArgs) Handles btnSglReset1.Click
|
|
Const chNum As Int16 = 1
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglReset2_Click(sender As Object, e As EventArgs) Handles btnSglReset2.Click
|
|
Const chNum As Int16 = 2
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglReset3_Click(sender As Object, e As EventArgs) Handles btnSglReset3.Click
|
|
Const chNum As Int16 = 3
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglReset4_Click(sender As Object, e As EventArgs) Handles btnSglReset4.Click
|
|
Const chNum As Int16 = 4
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglReset5_Click(sender As Object, e As EventArgs) Handles btnSglReset5.Click
|
|
Const chNum As Int16 = 5
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglReset6_Click(sender As Object, e As EventArgs) Handles btnSglReset6.Click
|
|
Const chNum As Int16 = 6
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglReset7_Click(sender As Object, e As EventArgs) Handles btnSglReset7.Click
|
|
Const chNum As Int16 = 7
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglReset8_Click(sender As Object, e As EventArgs) Handles btnSglReset8.Click
|
|
Const chNum As Int16 = 8
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglReset9_Click(sender As Object, e As EventArgs) Handles btnSglReset9.Click
|
|
Const chNum As Int16 = 9
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub btnSglReset10_Click(sender As Object, e As EventArgs) Handles btnSglReset10.Click
|
|
Const chNum As Int16 = 10
|
|
timeResetFunc(chNum)
|
|
End Sub
|
|
|
|
Private Sub timeResetFunc(chNum As Int16)
|
|
chTimeText(chNum).Text = TimeSpan.FromSeconds(startTime(chNum)).ToString("mm\:ss")
|
|
chTimeText(chNum).BackColor = Color.FromArgb(255, 192, 128)
|
|
End Sub
|
|
|
|
Private Sub btnManager_Click(sender As Object, e As EventArgs) Handles btnManager.Click
|
|
If ManagerLogin.ShowDialog = DialogResult.OK Then
|
|
ManagerForm.Show()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub btnAllReset_Click(sender As Object, e As EventArgs) Handles btnAllReset.Click
|
|
For i = 1 To portCount
|
|
chTimeText(i).Text = TimeSpan.FromSeconds(startTime(i)).ToString("mm\:ss")
|
|
chTimeText(i).BackColor = Color.FromArgb(255, 192, 128)
|
|
Next
|
|
End Sub
|
|
|
|
Private Sub btnComport_Click(sender As Object, e As EventArgs) Handles btnComport.Click
|
|
If btnComport.Text = "스캔" Then
|
|
|
|
serialSetting()
|
|
|
|
For i = 0 To chSerial.Length - 1
|
|
If LoadComportName(i) Then
|
|
btnComport.Text = "연결"
|
|
systemOnOff(False)
|
|
Else
|
|
Exit Sub
|
|
End If
|
|
Next
|
|
|
|
Else
|
|
For i = 0 To chSerial.Length - 1
|
|
If chSerial(i).IsOpen = True Then
|
|
chSerial(i).Close()
|
|
End If
|
|
|
|
If chSerialCbb(i).SelectedIndex = -1 Then
|
|
MsgBox("선택하지 않은 포트가 존재합니다. 확인하여 주십시오.", vbExclamation)
|
|
Exit Sub
|
|
Else
|
|
If chSerialCbb(serialList.serial1).SelectedItem = chSerialCbb(serialList.serial2).SelectedItem Then
|
|
MsgBox("같은 COM포트를 사용할 수 없습니다. 다시 설정하여 주십시오.", vbExclamation)
|
|
Exit Sub
|
|
End If
|
|
End If
|
|
Next
|
|
|
|
For i = 0 To chSerial.Length - 1
|
|
If OpenSerial(i) Then
|
|
systemOnOff(True)
|
|
saveConfig()
|
|
Else
|
|
systemOnOff(False)
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
rdbTime.Checked = True
|
|
rdbPort.Checked = False
|
|
|
|
btnComport.Text = "스캔"
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub serialSetting()
|
|
If rdbport10.Checked = True Then
|
|
ReDim chSerial(serialList.serial1)
|
|
chSerial(serialList.serial1) = Serial_1Port
|
|
Else
|
|
ReDim chSerial(serialList.serial2)
|
|
chSerial(serialList.serial1) = Serial_1Port
|
|
chSerial(serialList.serial2) = Serial_2Port
|
|
End If
|
|
End Sub
|
|
|
|
Private Function OpenSerial(serialNum As Int16) As Boolean
|
|
Try
|
|
Dim baudRateSet As Integer
|
|
If rdbport10.Checked = True Then
|
|
baudRateSet = 230400
|
|
Else
|
|
baudRateSet = 115200
|
|
End If
|
|
|
|
If chSerialCbb(serialNum).SelectedItem <> "" Then
|
|
If chSerial(serialNum).IsOpen = False Then
|
|
|
|
With chSerial(serialNum)
|
|
.PortName = chSerialCbb(serialNum).SelectedItem
|
|
.BaudRate = baudRateSet
|
|
.DataBits = 8
|
|
.Parity = Parity.None
|
|
.StopBits = StopBits.One
|
|
.Handshake = Handshake.None
|
|
.ReadTimeout = 50
|
|
.WriteTimeout = 1
|
|
End With
|
|
|
|
chSerial(serialNum).Open()
|
|
|
|
If serialNum = serialList.serial1 Then
|
|
ch1_ThreadRun()
|
|
Else
|
|
ch2_ThreadRun()
|
|
End If
|
|
|
|
Else
|
|
MsgBox("사용중인 포트가 존재합니다. 종료 후 다시 설정하여 주십시오.", vbCritical)
|
|
Return False
|
|
End If
|
|
Else
|
|
MsgBox("지정하지 않은 시리얼 포트가 존재합니다! 시리얼 포트를 지정하여 주십시오.", vbCritical)
|
|
Return False
|
|
End If
|
|
|
|
Return True
|
|
|
|
Catch ex As Exception
|
|
MsgBox("COM 포트 에러" & vbCrLf & "", vbOK + vbCritical, "DUALSONIC Cartridge Film Pressing")
|
|
Return False
|
|
End Try
|
|
|
|
Return False
|
|
End Function
|
|
|
|
Private Function LoadComportName(portNum As Int16) As Boolean
|
|
Dim portname() As String
|
|
Try
|
|
|
|
portname = SerialPort.GetPortNames
|
|
|
|
chSerialCbb(portNum).Items.Clear()
|
|
|
|
For cnt = 0 To portname.Length - 1
|
|
chSerialCbb(portNum).Items.Add(portname(cnt))
|
|
Next
|
|
|
|
chSerialCbb(portNum).Text = "PRESS!"
|
|
|
|
Return True
|
|
|
|
Catch ex As Exception
|
|
MsgBox("COM 포트 에러" & vbCrLf & "", vbOK + vbCritical, "DUALSONIC Cartridge Film Pressing")
|
|
Return False
|
|
End Try
|
|
End Function
|
|
|
|
Private Sub saveConfig()
|
|
|
|
On Error GoTo failConfig
|
|
|
|
Dim rdbCheck As Boolean = False
|
|
Dim filePath As String = System.AppDomain.CurrentDomain.BaseDirectory & "\Config"
|
|
If Dir(filePath, vbDirectory) = "" Then
|
|
MkDir(filePath)
|
|
End If
|
|
|
|
Dim fileName As String = filePath & "\Config.ini"
|
|
If rdbport10.Checked = True Then
|
|
rdbCheck = False
|
|
Else
|
|
rdbCheck = True
|
|
End If
|
|
|
|
Dim saveStr As String = nudMinute.Value & "^" & nudSecond.Value & "^" & rdbCheck & "^" & cbbPort1.SelectedItem & "^" & cbbPort2.SelectedItem
|
|
If File.Exists(fileName) Then
|
|
File.Delete(fileName)
|
|
End If
|
|
|
|
File.WriteAllText(fileName, saveStr, Encoding.UTF8)
|
|
Exit Sub
|
|
|
|
failConfig:
|
|
MsgBox("Config Save Fail!!")
|
|
End Sub
|
|
|
|
Private Sub loadConfig()
|
|
Const checkCount As Int16 = 4
|
|
On Error GoTo failConfig
|
|
|
|
Dim filePath As String = System.AppDomain.CurrentDomain.BaseDirectory & "\Config"
|
|
Dim minData, secData, secondValue As Integer
|
|
|
|
If Dir(filePath, vbDirectory) = "" Then
|
|
MkDir(filePath)
|
|
End If
|
|
|
|
Dim fileName As String = filePath & "\Config.ini"
|
|
|
|
If File.Exists(fileName) = True Then
|
|
Dim readData As String = File.ReadAllText(fileName, Encoding.UTF8)
|
|
|
|
If readData <> Nothing Then
|
|
Dim useData As Int16 = UBound(Split(readData, "^"))
|
|
If useData = checkCount Then
|
|
For i = 0 To useData
|
|
|
|
Dim dataStr As String
|
|
If i = useData Then
|
|
dataStr = readData
|
|
Else
|
|
dataStr = Mid(readData, 1, InStr(readData, "^") - 1)
|
|
readData = Mid(readData, InStr(readData, "^") + 1, readData.Length)
|
|
End If
|
|
|
|
Select Case i
|
|
Case saveList.min
|
|
|
|
If IsNumeric(dataStr) = True Then
|
|
minData = dataStr
|
|
Else
|
|
minData = 0
|
|
End If
|
|
|
|
nudMinute.Value = minData
|
|
|
|
Case saveList.sec
|
|
If IsNumeric(dataStr) = True Then
|
|
secData = dataStr
|
|
Else
|
|
secData = 0
|
|
End If
|
|
|
|
nudSecond.Value = secData
|
|
|
|
Case saveList.chCount
|
|
|
|
If dataStr = True Then
|
|
rdbport10.Checked = False
|
|
rdbport20.Checked = True
|
|
Else
|
|
rdbport10.Checked = True
|
|
rdbport20.Checked = False
|
|
End If
|
|
|
|
Case saveList.com1
|
|
|
|
If LoadComportName(serialList.serial1) = False Then
|
|
Exit Sub
|
|
End If
|
|
|
|
For cnt = 0 To chSerialCbb(serialList.serial1).Items.Count - 1
|
|
If dataStr = chSerialCbb(serialList.serial1).Items(cnt) Then
|
|
|
|
chSerialCbb(serialList.serial1).SelectedIndex = cnt
|
|
|
|
If OpenSerial(serialList.serial1) = False Then
|
|
Exit Sub
|
|
Else
|
|
Exit For
|
|
End If
|
|
End If
|
|
Next
|
|
|
|
|
|
Case saveList.com2
|
|
|
|
If LoadComportName(serialList.serial2) = False Then
|
|
Exit Sub
|
|
End If
|
|
|
|
For cnt = 0 To chSerialCbb(serialList.serial2).Items.Count - 1
|
|
If dataStr = chSerialCbb(serialList.serial2).Items(cnt) Then
|
|
|
|
chSerialCbb(serialList.serial2).SelectedIndex = cnt
|
|
|
|
If OpenSerial(serialList.serial2) = False Then
|
|
Exit Sub
|
|
Else
|
|
Exit For
|
|
End If
|
|
End If
|
|
Next
|
|
End Select
|
|
|
|
Next
|
|
Else
|
|
nudMinute.Value = 15
|
|
nudSecond.Value = 0
|
|
rdbport10.Checked = False
|
|
rdbport20.Checked = True
|
|
End If
|
|
|
|
Else
|
|
nudMinute.Value = 15
|
|
nudSecond.Value = 0
|
|
rdbport10.Checked = False
|
|
rdbport20.Checked = True
|
|
End If
|
|
Else
|
|
nudMinute.Value = 15
|
|
nudSecond.Value = 0
|
|
rdbport10.Checked = False
|
|
rdbport20.Checked = True
|
|
End If
|
|
|
|
If chSerial.Length = serialList.serial1 + 1 Then
|
|
If chSerial(serialList.serial1).IsOpen = True Then
|
|
systemOnOff(True)
|
|
rdbTime.Checked = True
|
|
rdbPort.Checked = False
|
|
Else
|
|
systemOnOff(False)
|
|
rdbTime.Checked = False
|
|
rdbPort.Checked = True
|
|
End If
|
|
Else
|
|
If chSerial(serialList.serial1).IsOpen = True And chSerial(serialList.serial2).IsOpen = True Then
|
|
systemOnOff(True)
|
|
rdbTime.Checked = True
|
|
rdbPort.Checked = False
|
|
Else
|
|
systemOnOff(False)
|
|
rdbTime.Checked = False
|
|
rdbPort.Checked = True
|
|
End If
|
|
End If
|
|
|
|
Exit Sub
|
|
|
|
failConfig:
|
|
MsgBox("Config Load Fail!!")
|
|
nudMinute.Value = 15
|
|
nudSecond.Value = 0
|
|
rdbport10.Checked = False
|
|
rdbport20.Checked = True
|
|
End Sub
|
|
|
|
Public Function mqttConnect() As Boolean
|
|
Try
|
|
If mqttBroker = String.Empty Or mqttTopic = String.Empty Then
|
|
MsgBox("MQTT 브로커 혹은 토픽을 알 수 없습니다." & vbCrLf & "설정하여 주십시오.", vbExclamation)
|
|
Return False
|
|
End If
|
|
|
|
MQTClient = New MqttClient(mqttBroker)
|
|
Dim ClientID As String = Guid.NewGuid.ToString
|
|
|
|
MQTClient.Connect(ClientID)
|
|
|
|
If MQTClient.IsConnected = True Then
|
|
Return True
|
|
Else
|
|
MsgBox("존재하지 않는 Broker 명입니다. 확인해 주십시오.", vbCritical)
|
|
Return False
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
MsgBox("오류 발생 :: " & ex.Message.ToString, vbCritical)
|
|
Return False
|
|
End Try
|
|
End Function
|
|
|
|
Public Function mqttNowConnect() As Boolean
|
|
Try
|
|
Return MQTClient.IsConnected.ToString
|
|
Catch null As NullReferenceException
|
|
Return False
|
|
Catch ex As Exception
|
|
Return False
|
|
End Try
|
|
End Function
|
|
|
|
Private Sub systemOnOff(onoff As Boolean) ''on : true / off : false
|
|
If onoff = True Then
|
|
For i = 1 To portCount
|
|
chGroup(i).Enabled = True
|
|
Next
|
|
Else
|
|
For i = 1 To portCount
|
|
chGroup(i).Enabled = False
|
|
Next
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub Main_Form_FormClosed(sender As Object, e As FormClosedEventArgs) Handles MyBase.FormClosed
|
|
exitProcess()
|
|
End Sub
|
|
|
|
Private Sub btn_exit_Click(sender As Object, e As EventArgs) Handles btn_exit.Click
|
|
exitProcess()
|
|
End
|
|
End Sub
|
|
|
|
Private Sub exitProcess()
|
|
If chSerial(serialList.serial1).IsOpen = True Then
|
|
If runCH1_Thread.IsAlive = True Then
|
|
runCH1_Thread.Abort()
|
|
End If
|
|
|
|
chSerial(serialList.serial1).Close()
|
|
End If
|
|
|
|
If chSerial(serialList.serial2).IsOpen = True Then
|
|
If runCH2_Thread.IsAlive = True Then
|
|
runCH2_Thread.Abort()
|
|
End If
|
|
|
|
chSerial(serialList.serial2).Close()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub txbState_gotFocus(sender As Object, e As EventArgs) Handles txbState.GotFocus
|
|
txbToday.Focus()
|
|
End Sub
|
|
|
|
Private Sub btnAllRun_Click(sender As Object, e As EventArgs) Handles btnAllRun.Click
|
|
If btnAllRun.Text = "전체" & vbCrLf & "내리기" Then
|
|
|
|
If playTimer.Enabled = False Then
|
|
playTimer.Enabled = True
|
|
End If
|
|
|
|
For i = 1 To portCount
|
|
If runState(i) = chState.wait Then
|
|
runState(i) = chState.start
|
|
End If
|
|
Next
|
|
|
|
btnAllRun.Text = "전체" & vbCrLf & "올리기"
|
|
Else
|
|
|
|
For i = 1 To portCount
|
|
If runState(i) <> chState.wait Then
|
|
runState(i) = chState.middleStop
|
|
End If
|
|
Next
|
|
|
|
btnAllRun.Text = "전체" & vbCrLf & "내리기"
|
|
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub saveLocalFile(chNum As Int16)
|
|
Try
|
|
Dim strData As String = String.Empty
|
|
Dim saveYear As String = Format(playDate(chNum), "yyyy")
|
|
Dim saveMonth As String = Format(playDate(chNum), "MM")
|
|
Dim saveDay As String = Format(playDate(chNum), "dd")
|
|
|
|
If Dir(filePath, vbDirectory) = "" Then
|
|
MkDir(filePath)
|
|
End If
|
|
|
|
Dim fileName As String = filePath & "\" & saveYear & "_" & saveMonth & ".csv"
|
|
Dim saveData As String = playDate(chNum) & "," & playNumber(chNum)
|
|
|
|
If File.Exists(fileName) = True Then
|
|
strData = File.ReadAllText(fileName, Encoding.UTF8)
|
|
|
|
If strData = "" Or strData = vbCrLf Or strData = Nothing Then
|
|
strData = csvSaveForm & vbCrLf & saveData & vbCrLf
|
|
Else
|
|
If UBound(Split(strData, playDate(chNum))) > 0 Then
|
|
strData = Mid(strData, 1, InStr(strData, playDate(chNum)) - 1)
|
|
strData = strData & saveData & vbCrLf
|
|
Else
|
|
strData = strData & saveData & vbCrLf
|
|
End If
|
|
End If
|
|
Else
|
|
strData = csvSaveForm & vbCrLf & saveData & vbCrLf
|
|
End If
|
|
|
|
File.WriteAllText(fileName, strData, Encoding.UTF8)
|
|
|
|
Catch ex As Exception
|
|
MsgBox("오류 발생 :: " & ex.Message, vbCritical)
|
|
End Try
|
|
End Sub
|
|
Private Function loadLocalFile() As Boolean
|
|
Try
|
|
Dim strData As String = String.Empty
|
|
Dim saveYear As String = Format(Now, "yyyy")
|
|
Dim saveMonth As String = Format(Now, "MM")
|
|
Dim saveDay As String = Format(Now, "dd")
|
|
Dim saveDate As String = saveYear & "-" & saveMonth & "-" & saveDay
|
|
|
|
If Dir(filePath, vbDirectory) = "" Then
|
|
MkDir(filePath)
|
|
End If
|
|
|
|
Dim fileName As String = filePath & "\" & saveYear & "_" & saveMonth & ".csv"
|
|
|
|
If File.Exists(fileName) Then
|
|
strData = File.ReadAllText(fileName)
|
|
|
|
If UBound(Split(strData, saveDate)) > 0 Then
|
|
makeCount = Val(Mid(strData, InStr(strData, saveDate), InStr(strData, vbCrLf) - 1))
|
|
Else
|
|
makeCount = 0
|
|
End If
|
|
Else
|
|
makeCount = 0
|
|
|
|
End If
|
|
|
|
Return True
|
|
Catch ex As Exception
|
|
MsgBox("오류 발생 :: " & ex.Message, vbCritical)
|
|
Return False
|
|
End Try
|
|
|
|
End Function
|
|
|
|
Private Sub Mqtt_DataSend(loadText As String)
|
|
Try
|
|
|
|
If loadText.Replace(" ", "") = "" Then
|
|
MsgBox("저장할 데이터가 존재하지 않습니다. 데이터를 확인하여 주십시오.", vbCritical)
|
|
Exit Sub
|
|
End If
|
|
If MQTClient IsNot Nothing AndAlso MQTClient.IsConnected Then
|
|
If mqttTopic.Length <> 0 Then
|
|
Try
|
|
Dim qos As Byte = 0
|
|
MQTClient.Publish(mqttTopic, System.Text.Encoding.Default.GetBytes(loadText), qos, False)
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
Else
|
|
MsgBox("토픽을 지정하지 않았습니다. 토픽을 지정하여 주십시오.", vbExclamation)
|
|
End If
|
|
Else
|
|
MsgBox("Broker 호스트와 연결되지 않았습니다. 호스트와 연결하여 주십시오.", vbExclamation)
|
|
End If
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub finishRefresh(chNum As Int16)
|
|
chTimeText(chNum).Refresh()
|
|
chTimePanel(chNum).Refresh()
|
|
chTimeMin(chNum).Refresh()
|
|
chTimeSec(chNum).Refresh()
|
|
chTimebtn(chNum).Refresh()
|
|
chStartbtn(chNum).Refresh()
|
|
chResetbtn(chNum).Refresh()
|
|
End Sub
|
|
|
|
Private Sub componentSetting(arrayLength As Int16)
|
|
ReDim startTime(arrayLength)
|
|
ReDim nowTime(arrayLength)
|
|
ReDim runState(arrayLength)
|
|
ReDim runColor(arrayLength)
|
|
|
|
ReDim playDate(arrayLength)
|
|
ReDim playTime(arrayLength)
|
|
ReDim playNumber(arrayLength)
|
|
ReDim playOKNG(arrayLength)
|
|
ReDim runTime(arrayLength)
|
|
|
|
ReDim chTimeText(arrayLength)
|
|
ReDim chTimePanel(arrayLength)
|
|
ReDim chTimeMin(arrayLength)
|
|
ReDim chTimeSec(arrayLength)
|
|
ReDim chTimebtn(arrayLength)
|
|
ReDim chStartbtn(arrayLength)
|
|
ReDim chResetbtn(arrayLength)
|
|
ReDim chGroup(arrayLength)
|
|
End Sub
|
|
|
|
Private Sub DataSetting()
|
|
|
|
If rdbport10.Checked = True Then
|
|
portCount = ch10FullCount
|
|
componentSetting(portCount)
|
|
|
|
chTimeText(1) = txbSglCH1
|
|
chTimeText(2) = txbSglCH2
|
|
chTimeText(3) = txbSglCH3
|
|
chTimeText(4) = txbSglCH4
|
|
chTimeText(5) = txbSglCH5
|
|
chTimeText(6) = txbSglCH6
|
|
chTimeText(7) = txbSglCH7
|
|
chTimeText(8) = txbSglCH8
|
|
chTimeText(9) = txbSglCH9
|
|
chTimeText(10) = txbSglCH10
|
|
|
|
chTimePanel(1) = pnSglEdit1
|
|
chTimePanel(2) = pnSglEdit2
|
|
chTimePanel(3) = pnSglEdit3
|
|
chTimePanel(4) = pnSglEdit4
|
|
chTimePanel(5) = pnSglEdit5
|
|
chTimePanel(6) = pnSglEdit6
|
|
chTimePanel(7) = pnSglEdit7
|
|
chTimePanel(8) = pnSglEdit8
|
|
chTimePanel(9) = pnSglEdit9
|
|
chTimePanel(10) = pnSglEdit10
|
|
|
|
chTimeMin(1) = nudSglMin1
|
|
chTimeMin(2) = nudSglMin2
|
|
chTimeMin(3) = nudSglMin3
|
|
chTimeMin(4) = nudSglMin4
|
|
chTimeMin(5) = nudSglMin5
|
|
chTimeMin(6) = nudSglMin6
|
|
chTimeMin(7) = nudSglMin7
|
|
chTimeMin(8) = nudSglMin8
|
|
chTimeMin(9) = nudSglMin9
|
|
chTimeMin(10) = nudSglMin10
|
|
|
|
chTimeSec(1) = nudSglSec1
|
|
chTimeSec(2) = nudSglSec2
|
|
chTimeSec(3) = nudSglSec3
|
|
chTimeSec(4) = nudSglSec4
|
|
chTimeSec(5) = nudSglSec5
|
|
chTimeSec(6) = nudSglSec6
|
|
chTimeSec(7) = nudSglSec7
|
|
chTimeSec(8) = nudSglSec8
|
|
chTimeSec(9) = nudSglSec9
|
|
chTimeSec(10) = nudSglSec10
|
|
|
|
chTimebtn(1) = btnSglEdit1
|
|
chTimebtn(2) = btnSglEdit2
|
|
chTimebtn(3) = btnSglEdit3
|
|
chTimebtn(4) = btnSglEdit4
|
|
chTimebtn(5) = btnSglEdit5
|
|
chTimebtn(6) = btnSglEdit6
|
|
chTimebtn(7) = btnSglEdit7
|
|
chTimebtn(8) = btnSglEdit8
|
|
chTimebtn(9) = btnSglEdit9
|
|
chTimebtn(10) = btnSglEdit10
|
|
|
|
chStartbtn(1) = btnSglStart1
|
|
chStartbtn(2) = btnSglStart2
|
|
chStartbtn(3) = btnSglStart3
|
|
chStartbtn(4) = btnSglStart4
|
|
chStartbtn(5) = btnSglStart5
|
|
chStartbtn(6) = btnSglStart6
|
|
chStartbtn(7) = btnSglStart7
|
|
chStartbtn(8) = btnSglStart8
|
|
chStartbtn(9) = btnSglStart9
|
|
chStartbtn(10) = btnSglStart10
|
|
|
|
chResetbtn(1) = btnSglReset1
|
|
chResetbtn(2) = btnSglReset2
|
|
chResetbtn(3) = btnSglReset3
|
|
chResetbtn(4) = btnSglReset4
|
|
chResetbtn(5) = btnSglReset5
|
|
chResetbtn(6) = btnSglReset6
|
|
chResetbtn(7) = btnSglReset7
|
|
chResetbtn(8) = btnSglReset8
|
|
chResetbtn(9) = btnSglReset9
|
|
chResetbtn(10) = btnSglReset10
|
|
|
|
chGroup(1) = gbSglCH1
|
|
chGroup(2) = gbSglCH2
|
|
chGroup(3) = gbSglCH3
|
|
chGroup(4) = gbSglCH4
|
|
chGroup(5) = gbSglCH5
|
|
chGroup(6) = gbSglCH6
|
|
chGroup(7) = gbSglCH7
|
|
chGroup(8) = gbSglCH8
|
|
chGroup(9) = gbSglCH9
|
|
chGroup(10) = gbSglCH10
|
|
|
|
Else
|
|
portCount = ch20FullCount
|
|
componentSetting(portCount)
|
|
|
|
chTimeText(1) = txb_timer_ch1
|
|
chTimeText(2) = txb_timer_ch2
|
|
chTimeText(3) = txb_timer_ch3
|
|
chTimeText(4) = txb_timer_ch4
|
|
chTimeText(5) = txb_timer_ch5
|
|
chTimeText(6) = txb_timer_ch6
|
|
chTimeText(7) = txb_timer_ch7
|
|
chTimeText(8) = txb_timer_ch8
|
|
chTimeText(9) = txb_timer_ch9
|
|
chTimeText(10) = txb_timer_ch10
|
|
chTimeText(11) = txb_timer_ch11
|
|
chTimeText(12) = txb_timer_ch12
|
|
chTimeText(13) = txb_timer_ch13
|
|
chTimeText(14) = txb_timer_ch14
|
|
chTimeText(15) = txb_timer_ch15
|
|
chTimeText(16) = txb_timer_ch16
|
|
chTimeText(17) = txb_timer_ch17
|
|
chTimeText(18) = txb_timer_ch18
|
|
chTimeText(19) = txb_timer_ch19
|
|
chTimeText(20) = txb_timer_ch20
|
|
|
|
chTimePanel(1) = pnReg1
|
|
chTimePanel(2) = pnReg2
|
|
chTimePanel(3) = pnReg3
|
|
chTimePanel(4) = pnReg4
|
|
chTimePanel(5) = pnReg5
|
|
chTimePanel(6) = pnReg6
|
|
chTimePanel(7) = pnReg7
|
|
chTimePanel(8) = pnReg8
|
|
chTimePanel(9) = pnReg9
|
|
chTimePanel(10) = pnReg10
|
|
chTimePanel(11) = pnReg11
|
|
chTimePanel(12) = pnReg12
|
|
chTimePanel(13) = pnReg13
|
|
chTimePanel(14) = pnReg14
|
|
chTimePanel(15) = pnReg15
|
|
chTimePanel(16) = pnReg16
|
|
chTimePanel(17) = pnReg17
|
|
chTimePanel(18) = pnReg18
|
|
chTimePanel(19) = pnReg19
|
|
chTimePanel(20) = pnReg20
|
|
|
|
chTimeMin(1) = nudMin1
|
|
chTimeMin(2) = nudMin2
|
|
chTimeMin(3) = nudMin3
|
|
chTimeMin(4) = nudMin4
|
|
chTimeMin(5) = nudMin5
|
|
chTimeMin(6) = nudMin6
|
|
chTimeMin(7) = nudMin7
|
|
chTimeMin(8) = nudMin8
|
|
chTimeMin(9) = nudMin9
|
|
chTimeMin(10) = nudMin10
|
|
chTimeMin(11) = nudMin11
|
|
chTimeMin(12) = nudMin12
|
|
chTimeMin(13) = nudMin13
|
|
chTimeMin(14) = nudMin14
|
|
chTimeMin(15) = nudMin15
|
|
chTimeMin(16) = nudMin16
|
|
chTimeMin(17) = nudMin17
|
|
chTimeMin(18) = nudMin18
|
|
chTimeMin(19) = nudMin19
|
|
chTimeMin(20) = nudMin20
|
|
|
|
chTimeSec(1) = nudSec1
|
|
chTimeSec(2) = nudSec2
|
|
chTimeSec(3) = nudSec3
|
|
chTimeSec(4) = nudSec4
|
|
chTimeSec(5) = nudSec5
|
|
chTimeSec(6) = nudSec6
|
|
chTimeSec(7) = nudSec7
|
|
chTimeSec(8) = nudSec8
|
|
chTimeSec(9) = nudSec9
|
|
chTimeSec(10) = nudSec10
|
|
chTimeSec(11) = nudSec11
|
|
chTimeSec(12) = nudSec12
|
|
chTimeSec(13) = nudSec13
|
|
chTimeSec(14) = nudSec14
|
|
chTimeSec(15) = nudSec15
|
|
chTimeSec(16) = nudSec16
|
|
chTimeSec(17) = nudSec17
|
|
chTimeSec(18) = nudSec18
|
|
chTimeSec(19) = nudSec19
|
|
chTimeSec(20) = nudSec20
|
|
|
|
chTimebtn(1) = btn_reg_ch1
|
|
chTimebtn(2) = btn_reg_ch2
|
|
chTimebtn(3) = btn_reg_ch3
|
|
chTimebtn(4) = btn_reg_ch4
|
|
chTimebtn(5) = btn_reg_ch5
|
|
chTimebtn(6) = btn_reg_ch6
|
|
chTimebtn(7) = btn_reg_ch7
|
|
chTimebtn(8) = btn_reg_ch8
|
|
chTimebtn(9) = btn_reg_ch9
|
|
chTimebtn(10) = btn_reg_ch10
|
|
chTimebtn(11) = btn_reg_ch11
|
|
chTimebtn(12) = btn_reg_ch12
|
|
chTimebtn(13) = btn_reg_ch13
|
|
chTimebtn(14) = btn_reg_ch14
|
|
chTimebtn(15) = btn_reg_ch15
|
|
chTimebtn(16) = btn_reg_ch16
|
|
chTimebtn(17) = btn_reg_ch17
|
|
chTimebtn(18) = btn_reg_ch18
|
|
chTimebtn(19) = btn_reg_ch19
|
|
chTimebtn(20) = btn_reg_ch20
|
|
|
|
chStartbtn(1) = btn_updown_ch1
|
|
chStartbtn(2) = btn_updown_ch2
|
|
chStartbtn(3) = btn_updown_ch3
|
|
chStartbtn(4) = btn_updown_ch4
|
|
chStartbtn(5) = btn_updown_ch5
|
|
chStartbtn(6) = btn_updown_ch6
|
|
chStartbtn(7) = btn_updown_ch7
|
|
chStartbtn(8) = btn_updown_ch8
|
|
chStartbtn(9) = btn_updown_ch9
|
|
chStartbtn(10) = btn_updown_ch10
|
|
chStartbtn(11) = btn_updown_ch11
|
|
chStartbtn(12) = btn_updown_ch12
|
|
chStartbtn(13) = btn_updown_ch13
|
|
chStartbtn(14) = btn_updown_ch14
|
|
chStartbtn(15) = btn_updown_ch15
|
|
chStartbtn(16) = btn_updown_ch16
|
|
chStartbtn(17) = btn_updown_ch17
|
|
chStartbtn(18) = btn_updown_ch18
|
|
chStartbtn(19) = btn_updown_ch19
|
|
chStartbtn(20) = btn_updown_ch20
|
|
|
|
chResetbtn(1) = btn_reset_ch1
|
|
chResetbtn(2) = btn_reset_ch2
|
|
chResetbtn(3) = btn_reset_ch3
|
|
chResetbtn(4) = btn_reset_ch4
|
|
chResetbtn(5) = btn_reset_ch5
|
|
chResetbtn(6) = btn_reset_ch6
|
|
chResetbtn(7) = btn_reset_ch7
|
|
chResetbtn(8) = btn_reset_ch8
|
|
chResetbtn(9) = btn_reset_ch9
|
|
chResetbtn(10) = btn_reset_ch10
|
|
chResetbtn(11) = btn_reset_ch11
|
|
chResetbtn(12) = btn_reset_ch12
|
|
chResetbtn(13) = btn_reset_ch13
|
|
chResetbtn(14) = btn_reset_ch14
|
|
chResetbtn(15) = btn_reset_ch15
|
|
chResetbtn(16) = btn_reset_ch16
|
|
chResetbtn(17) = btn_reset_ch17
|
|
chResetbtn(18) = btn_reset_ch18
|
|
chResetbtn(19) = btn_reset_ch19
|
|
chResetbtn(20) = btn_reset_ch20
|
|
|
|
chGroup(1) = gb_ch1
|
|
chGroup(2) = gb_ch2
|
|
chGroup(3) = gb_ch3
|
|
chGroup(4) = gb_ch4
|
|
chGroup(5) = gb_ch5
|
|
chGroup(6) = gb_ch6
|
|
chGroup(7) = gb_ch7
|
|
chGroup(8) = gb_ch8
|
|
chGroup(9) = gb_ch9
|
|
chGroup(10) = gb_ch10
|
|
chGroup(11) = gb_ch11
|
|
chGroup(12) = gb_ch12
|
|
chGroup(13) = gb_ch13
|
|
chGroup(14) = gb_ch14
|
|
chGroup(15) = gb_ch15
|
|
chGroup(16) = gb_ch16
|
|
chGroup(17) = gb_ch17
|
|
chGroup(18) = gb_ch18
|
|
chGroup(19) = gb_ch19
|
|
chGroup(20) = gb_ch20
|
|
|
|
|
|
|
|
End If
|
|
|
|
commandSelect(commandList.nowState) = "solState"
|
|
commandSelect(commandList.upState) = "getupsol"
|
|
commandSelect(commandList.downState) = "getdnsol"
|
|
commandSelect(commandList.emoState) = "getemo"
|
|
|
|
chSerialCbb(serialList.serial1) = cbbPort1
|
|
chSerialCbb(serialList.serial2) = cbbPort2
|
|
|
|
For i = 1 To portCount
|
|
runState(i) = False
|
|
Next
|
|
|
|
End Sub
|
|
|
|
End Class
|