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 |