283 lines
8.5 KiB
VB.net
283 lines
8.5 KiB
VB.net
|
|
Imports System.ComponentModel
|
|||
|
|
|
|||
|
|
Public Class FrmTest_C12_Dimming
|
|||
|
|
|
|||
|
|
Public FCsConfig As FrmCSeriesConfig
|
|||
|
|
Sub New(pathme As FrmCSeriesConfig, Optional frtile As String = "C12调光")
|
|||
|
|
Text = frtile
|
|||
|
|
' 此调用是设计器所必需的。
|
|||
|
|
InitializeComponent()
|
|||
|
|
FCsConfig = pathme
|
|||
|
|
' 在 InitializeComponent() 调用之后添加任何初始化。
|
|||
|
|
Text = frtile
|
|||
|
|
End Sub
|
|||
|
|
#Region "多语种信息"
|
|||
|
|
|
|||
|
|
|
|||
|
|
''' <summary>
|
|||
|
|
''' 初始化界面控件文本
|
|||
|
|
''' </summary>
|
|||
|
|
Private Sub MultiLanguageInfo()
|
|||
|
|
'控件.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.RelayControl)
|
|||
|
|
Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C12) & LanguageData.StringList(MultiLanguageDAL.StringEnum.Dimming)
|
|||
|
|
GroupBox1.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.Dimming)
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
#End Region
|
|||
|
|
|
|||
|
|
#Region "窗体"
|
|||
|
|
|
|||
|
|
''' <summary>
|
|||
|
|
''' 窗体加载
|
|||
|
|
''' </summary>
|
|||
|
|
''' <param name="sender"></param>
|
|||
|
|
''' <param name="e"></param>
|
|||
|
|
Private Sub FrmTest_C12_Dimming_Load(sender As Object, e As EventArgs) Handles Me.Load
|
|||
|
|
InitDimmingLoadInfo()
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
''' <summary>
|
|||
|
|
''' 发送函数
|
|||
|
|
''' </summary>
|
|||
|
|
''' <param name="sendPacket"></param>
|
|||
|
|
Public Sub SendData(sendPacket() As Byte)
|
|||
|
|
FCsConfig.SendTestData(sendPacket)
|
|||
|
|
FCsConfig.AppendTipText($"TX:{ByteToString(sendPacket)}{vbCrLf}", Color.Green)
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
#End Region
|
|||
|
|
|
|||
|
|
#Region "C12调光"
|
|||
|
|
|
|||
|
|
|
|||
|
|
''' <summary>
|
|||
|
|
''' 调光
|
|||
|
|
''' </summary>
|
|||
|
|
Private _Dimming As New Dictionary(Of Integer, C12Test_DimmingBLL)
|
|||
|
|
|
|||
|
|
|
|||
|
|
''' <summary>
|
|||
|
|
''' 初始化调光信息
|
|||
|
|
''' </summary>
|
|||
|
|
Private Sub InitDimmingLoadInfo()
|
|||
|
|
If _Dimming.Count > 0 Then Return
|
|||
|
|
'_Dimming.Clear()
|
|||
|
|
Dim number As Integer = 12
|
|||
|
|
If Text.Equals("C12调光") Then
|
|||
|
|
number = 12
|
|||
|
|
ElseIf Text.Equals("C8调光") Then
|
|||
|
|
number = 4
|
|||
|
|
C8_ComboBox.Visible = True
|
|||
|
|
C8_Label.Visible = True
|
|||
|
|
C8_TextBox1.Visible = True
|
|||
|
|
C8_ComboBox.SelectedIndex = 0
|
|||
|
|
ElseIf Text.Equals("V9调光") Then
|
|||
|
|
number = 8
|
|||
|
|
End If
|
|||
|
|
For index = 0 To number
|
|||
|
|
Dim a As New CheckBox
|
|||
|
|
a.Name = "LED_Tip" & index
|
|||
|
|
a.Parent = GroupBox1
|
|||
|
|
a.Size = New Size(40, 20)
|
|||
|
|
a.Location = New Point(26, 56 + index * (a.Height + 12))
|
|||
|
|
a.Font = New Font("Arial", 9, FontStyle.Bold)
|
|||
|
|
a.ForeColor = Color.Green
|
|||
|
|
If index = 0 Then
|
|||
|
|
a.Text = $"ALL"
|
|||
|
|
a.Visible = False
|
|||
|
|
Else
|
|||
|
|
a.Text = $"L{index}"
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
a.Tag = index
|
|||
|
|
'a.BringToFront()
|
|||
|
|
|
|||
|
|
Dim b As New HScrollBar
|
|||
|
|
If index = 0 Then
|
|||
|
|
b.Visible = False
|
|||
|
|
End If
|
|||
|
|
b.Name = "LED_Bar" & index
|
|||
|
|
b.Parent = GroupBox1
|
|||
|
|
b.Size = New Size(215, 20)
|
|||
|
|
b.Location = New Point(75, 56 + index * (a.Height + 12))
|
|||
|
|
b.Tag = index
|
|||
|
|
b.Maximum = 109
|
|||
|
|
AddHandler b.ValueChanged, AddressOf HScrollBar1_ValueChanged
|
|||
|
|
|
|||
|
|
Dim c As New NumericUpDown
|
|||
|
|
If index = 0 Then
|
|||
|
|
c.Visible = False
|
|||
|
|
End If
|
|||
|
|
c.Name = "LED_Num" & index
|
|||
|
|
c.Parent = GroupBox1
|
|||
|
|
c.Size = New Size(45, 21)
|
|||
|
|
c.Location = New Point(304, 58 + index * (a.Height + 12))
|
|||
|
|
c.Tag = index
|
|||
|
|
AddHandler c.ValueChanged, AddressOf NumericUpDown1_ValueChanged
|
|||
|
|
|
|||
|
|
_Dimming.Add(index, New C12Test_DimmingBLL With {.Dimming = a, .DimmingVal = b, .DimmingInputVal = c})
|
|||
|
|
Next
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
Private Sub NumericUpDown1_ValueChanged(sender As Object, e As EventArgs)
|
|||
|
|
Dim hsb As NumericUpDown = sender
|
|||
|
|
Dim index As Integer = sender.tag
|
|||
|
|
|
|||
|
|
If _Dimming.ContainsKey(index) = False Then Return
|
|||
|
|
_Dimming(index).DimmingVal.Value = hsb.Value
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
Private Sub HScrollBar1_ValueChanged(sender As Object, e As EventArgs)
|
|||
|
|
Dim hsb As HScrollBar = sender
|
|||
|
|
Dim index As Integer = sender.tag
|
|||
|
|
|
|||
|
|
If _Dimming.ContainsKey(index) = False Then Return
|
|||
|
|
_Dimming(index).DimmingInputVal.Value = hsb.Value
|
|||
|
|
|
|||
|
|
'Threading.ThreadPool.QueueUserWorkItem(AddressOf Demo, index)
|
|||
|
|
SendDimming(index)
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
''' <summary>
|
|||
|
|
''' 调光发送
|
|||
|
|
''' </summary>
|
|||
|
|
''' <param name="Index"></param>
|
|||
|
|
Private Sub SendDimming(Index As Integer)
|
|||
|
|
Static time As Date
|
|||
|
|
'If (Now - time).TotalMilliseconds < 200 Then
|
|||
|
|
' Return
|
|||
|
|
'End If
|
|||
|
|
|
|||
|
|
Threading.Thread.Sleep(200)
|
|||
|
|
|
|||
|
|
If _Dimming.ContainsKey(Index) = False Then Return
|
|||
|
|
DimmingDataBuff(Index)
|
|||
|
|
|
|||
|
|
'Console.WriteLine($"Text:{_Dimming(Index).Dimming.Text} Value:{_Dimming(Index).DimmingVal.Value}")
|
|||
|
|
time = Now
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
''' <summary>
|
|||
|
|
''' 调光数据
|
|||
|
|
''' </summary>
|
|||
|
|
''' <param name="Index"></param>
|
|||
|
|
Private Sub DimmingDataBuff(Index As Integer)
|
|||
|
|
Dim cmd As Byte
|
|||
|
|
Dim testState As Byte = &H2 '测试状态
|
|||
|
|
Dim devType As Byte = &H18 '设备类型
|
|||
|
|
Dim devAddr As Byte = &H0 '设备地址默认为0
|
|||
|
|
Dim devCmd As Byte = &H21 '测试Cmd
|
|||
|
|
Dim param() As Byte = DimmingParam(Index)
|
|||
|
|
Dim data() As Byte = FillTestDatabuff(testState, devType, devAddr, devCmd, param)
|
|||
|
|
Dim sendDatas() As Byte
|
|||
|
|
'组包
|
|||
|
|
If Text.Equals("C12调光") Then
|
|||
|
|
sendDatas = FCsConfig._blvC12TestForm.FillPacket(cmd, data)
|
|||
|
|
Console.WriteLine($"C12调光测试:{ByteToString(sendDatas)}")
|
|||
|
|
ElseIf Text.Equals("V9调光") Then
|
|||
|
|
sendDatas = FCsConfig._blvV9TestForm.FillPacket(cmd, data)
|
|||
|
|
Console.WriteLine($"C12调光测试:{ByteToString(sendDatas)}")
|
|||
|
|
ElseIf Text.Equals("C8调光") Then
|
|||
|
|
If C8_ComboBox.SelectedIndex = 0 AndAlso C8_TextBox1.Text.Equals("0") Then
|
|||
|
|
devType = &H30 '设备类型
|
|||
|
|
devAddr = &H1
|
|||
|
|
devCmd = Index
|
|||
|
|
param(0) = 0
|
|||
|
|
param(2) = param(1)
|
|||
|
|
param(1) = 1
|
|||
|
|
data = FillTestDatabuff(testState, devType, devAddr, devCmd, param)
|
|||
|
|
sendDatas = FCsConfig._blvC8TestForm.FillPacket(cmd, data)
|
|||
|
|
Console.WriteLine($"C12调光测试:{ByteToString(sendDatas)}")
|
|||
|
|
Else
|
|||
|
|
devType = &H32 '设备类型
|
|||
|
|
devAddr = 0
|
|||
|
|
Integer.TryParse(C8_TextBox1.Text, devAddr)
|
|||
|
|
devCmd = Index
|
|||
|
|
param(0) = 0
|
|||
|
|
param(2) = param(1)
|
|||
|
|
param(1) = 0
|
|||
|
|
If _Dimming(Index).Dimming.Checked Then
|
|||
|
|
param(1) = 1
|
|||
|
|
Else
|
|||
|
|
param(1) = 2
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
data = FillTestDatabuff(testState, devType, devAddr, devCmd, param)
|
|||
|
|
sendDatas = FCsConfig._blvC8TestForm.FillPacket(cmd, data)
|
|||
|
|
Console.WriteLine($"C12调光测试:{ByteToString(sendDatas)}")
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
Else
|
|||
|
|
sendDatas = FCsConfig._blvC8TestForm.FillPacket(cmd, data)
|
|||
|
|
Console.WriteLine($"C12调光测试:{ByteToString(sendDatas)}")
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
'发送
|
|||
|
|
SendData(sendDatas)
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
''' <summary>
|
|||
|
|
''' 调光参数
|
|||
|
|
''' </summary>
|
|||
|
|
''' <param name="Index"></param>
|
|||
|
|
''' <returns></returns>
|
|||
|
|
Private Function DimmingParam(Index As Integer) As Byte()
|
|||
|
|
Dim data(2) As Byte
|
|||
|
|
data(0) = Index
|
|||
|
|
data(1) = _Dimming(Index).DimmingInputVal.Value
|
|||
|
|
data(2) = &H1
|
|||
|
|
|
|||
|
|
Return data
|
|||
|
|
End Function
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
#End Region
|
|||
|
|
|
|||
|
|
#Region "窗体关闭"
|
|||
|
|
|
|||
|
|
''' <summary>
|
|||
|
|
''' 窗体关闭事件
|
|||
|
|
''' </summary>
|
|||
|
|
''' <param name="sender"></param>
|
|||
|
|
''' <param name="e"></param>
|
|||
|
|
Private Sub FrmTest_C12_Dimming_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
|
|||
|
|
'Close()
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles C8_TextBox1.KeyPress
|
|||
|
|
e.Handled = Not $"0123456789{vbBack}".Contains(e.KeyChar) '如果要只允许输入数字,就把上一行字符串中的字母删除
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
Private Sub C8_ComboBox_TextChanged(sender As Object, e As EventArgs) Handles C8_ComboBox.TextChanged
|
|||
|
|
If C8_ComboBox.SelectedIndex = 0 Then
|
|||
|
|
C8_TextBox1.Enabled = False
|
|||
|
|
C8_TextBox1.Text = 0
|
|||
|
|
Else
|
|||
|
|
C8_TextBox1.Enabled = True
|
|||
|
|
End If
|
|||
|
|
|
|||
|
|
End Sub
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
#End Region
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
End Class
|