390 lines
14 KiB
VB.net
390 lines
14 KiB
VB.net
Public Class FrmTest_C12
|
||
Implements IFrmTest
|
||
Public FCsConfig As FrmCSeriesConfig
|
||
Sub New(pathme As FrmCSeriesConfig)
|
||
|
||
' 此调用是设计器所必需的。
|
||
InitializeComponent()
|
||
FCsConfig = pathme
|
||
' 在 InitializeComponent() 调用之后添加任何初始化。
|
||
|
||
End Sub
|
||
#Region "多语种信息"
|
||
|
||
|
||
|
||
''' <summary>
|
||
''' 初始化界面控件文本
|
||
''' </summary>
|
||
Private Sub MultiLanguageInfo()
|
||
'控件.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.RelayControl)
|
||
Label7.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C12) & LanguageData.StringList(MultiLanguageDAL.StringEnum.Dimming)
|
||
BtnDimming.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C12) & LanguageData.StringList(MultiLanguageDAL.StringEnum.DimmingTest)
|
||
Label34.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C12) & LanguageData.StringList(MultiLanguageDAL.StringEnum.RelayControl)
|
||
Label36.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C12) & LanguageData.StringList(MultiLanguageDAL.StringEnum.IOOutput)
|
||
Label35.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C12) & LanguageData.StringList(MultiLanguageDAL.StringEnum.IOInput)
|
||
Label40.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C12) & LanguageData.StringList(MultiLanguageDAL.StringEnum.ItinerateTest)
|
||
Label37.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.C12) & LanguageData.StringList(MultiLanguageDAL.StringEnum.Music)
|
||
BtnInputTest.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.TheInputTest)
|
||
Label38.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.PlayFolder)
|
||
Label39.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.PlayFileNumber)
|
||
Button21.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.Play)
|
||
Button23.Text = LanguageData.StringList(MultiLanguageDAL.StringEnum.ItinerateTest)
|
||
End Sub
|
||
|
||
|
||
#End Region
|
||
|
||
#Region "窗体"
|
||
|
||
''' <summary>
|
||
''' 窗体加载事件
|
||
''' </summary>
|
||
''' <param name="sender"></param>
|
||
''' <param name="e"></param>
|
||
Private Sub FrmTest_C5_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||
MultiLanguageInfo()
|
||
InitFolderItems()
|
||
End Sub
|
||
|
||
|
||
''' <summary>
|
||
''' 显示窗体事件
|
||
''' 实现接口
|
||
''' </summary>
|
||
''' <param name="parentControl"></param>
|
||
Public Sub ShowForm(parentControl As Control) Implements IFrmTest.ShowForm
|
||
FormBorderStyle = FormBorderStyle.None '无边框
|
||
TopLevel = False
|
||
Dock = DockStyle.Fill '填满大小
|
||
Parent = parentControl '父容器
|
||
|
||
Show()
|
||
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 relayNumber(4) As Byte
|
||
|
||
|
||
''' <summary>
|
||
''' 发送组包
|
||
''' </summary>
|
||
''' <param name="cmd"></param>
|
||
''' <param name="dataBuff"></param>
|
||
''' <returns></returns>
|
||
Public Function FillPacket(cmd As Byte, dataBuff() As Byte) As Byte()
|
||
If _connectStatus = True Then
|
||
cmd = &HD3 '网络测试Cmd
|
||
dataBuff = FCsConfig.FillSendData(cmd, dataBuff) '网络数据
|
||
Else
|
||
cmd = &H7 '串口测试Cmd
|
||
dataBuff = FillModelsSerialPortTest(cmd, dataBuff) '串口数据
|
||
End If
|
||
|
||
Return dataBuff
|
||
End Function
|
||
|
||
|
||
''' <summary>
|
||
''' 1-13路继电器
|
||
''' </summary>
|
||
''' <param name="sender"></param>
|
||
''' <param name="e"></param>
|
||
Private Sub BtnRelay13_Click(sender As Object, e As EventArgs) Handles BtnRelay9.Click, BtnRelay8.Click, BtnRelay7.Click, BtnRelay6.Click, BtnRelay5.Click, BtnRelay4.Click, BtnRelay3.Click, BtnRelay2.Click, BtnRelay13.Click, BtnRelay12.Click, BtnRelay11.Click, BtnRelay10.Click, BtnRelay1.Click
|
||
Dim cmd As Byte
|
||
Dim btn As Button = sender
|
||
Dim index As Integer = sender.tag
|
||
Dim flg As Boolean = Not GetRelayStatus(index)
|
||
Dim param() As Byte = GetRelayNumber(index, flg)
|
||
|
||
Dim testState As Byte = &H2
|
||
Dim devType As Byte = &HF1
|
||
Dim devAddr As Byte = &H0
|
||
Dim devCmd As Byte = &H21
|
||
|
||
'组包
|
||
Dim data() As Byte = FillTestDatabuff(testState, devType, devAddr, devCmd, param)
|
||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||
Console.WriteLine($"C12继电器测试:{ByteToString(sendDatas)}")
|
||
|
||
'发送
|
||
SendData(sendDatas)
|
||
|
||
If flg Then
|
||
btn.BackColor = Color.Green
|
||
Else
|
||
btn.BackColor = Color.Transparent
|
||
End If
|
||
End Sub
|
||
|
||
|
||
''' <summary>
|
||
''' 获取继电器状态
|
||
''' </summary>
|
||
''' <param name="index"></param>
|
||
''' <returns></returns>
|
||
Private Function GetRelayStatus(index As Integer) As Boolean
|
||
Dim bt As Byte = relayNumber(index \ 4) >> ((index Mod 4) * 2) And 3
|
||
|
||
If bt = 1 Then Return True
|
||
Return False
|
||
End Function
|
||
|
||
|
||
''' <summary>
|
||
''' 获取继电器序号
|
||
''' </summary>
|
||
''' <param name="number"></param>
|
||
''' <returns></returns>
|
||
Private Function GetRelayNumber(number As Integer, start As Boolean) As Byte()
|
||
If start Then '置位01
|
||
relayNumber(number \ 4) = (relayNumber(number \ 4) And (Not (3 << ((number Mod 4) * 2)))) Or (1 << ((number Mod 4) * 2))
|
||
Else
|
||
relayNumber(number \ 4) = (relayNumber(number \ 4) And (Not (3 << ((number Mod 4) * 2)))) Or (2 << ((number Mod 4) * 2))
|
||
End If
|
||
|
||
Return relayNumber
|
||
End Function
|
||
|
||
|
||
''' <summary>
|
||
''' 1-5路输出
|
||
''' </summary>
|
||
''' <param name="sender"></param>
|
||
''' <param name="e"></param>
|
||
Private Sub BtnOutput1_Click(sender As Object, e As EventArgs) Handles BtnOutput5.Click, BtnOutput4.Click, BtnOutput3.Click, BtnOutput2.Click, BtnOutput1.Click
|
||
Dim cmd As Byte
|
||
Dim btn As Button = sender
|
||
Dim index As Integer = sender.tag
|
||
Dim flg As Boolean = Not GetC12DOStatus(index)
|
||
Dim param() As Byte = GetC12DONumber(index, flg)
|
||
|
||
'组包
|
||
Dim testState As Byte = &H2 '测试状态
|
||
Dim devType As Byte = &HF1 '设备类型
|
||
Dim devAddr As Byte = &H0 '设备地址默认为0
|
||
Dim devCmd As Byte = &H23 '测试命令字
|
||
Dim data() As Byte = FillTestDatabuff(testState, devType, devAddr, devCmd, param)
|
||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||
Console.WriteLine($"C12输出测试:{ByteToString(sendDatas)}")
|
||
|
||
'发送
|
||
SendData(sendDatas)
|
||
|
||
If flg Then
|
||
btn.BackColor = Color.Green
|
||
Else
|
||
btn.BackColor = Color.Transparent
|
||
End If
|
||
End Sub
|
||
|
||
|
||
''' <summary>
|
||
''' 获取C12测试输出序号
|
||
''' </summary>
|
||
Private C12DONumber(1) As Byte
|
||
|
||
|
||
''' <summary>
|
||
''' 获取继电器状态
|
||
''' </summary>
|
||
''' <param name="index"></param>
|
||
''' <returns></returns>
|
||
Private Function GetC12DOStatus(index As Integer) As Boolean
|
||
Dim bt As Byte = C12DONumber(index \ 4) >> ((index Mod 4) * 2) And 3
|
||
If bt = 1 Then Return True
|
||
Return False
|
||
End Function
|
||
|
||
|
||
''' <summary>
|
||
''' 获取输入序号
|
||
''' </summary>
|
||
''' <param name="number"></param>
|
||
''' <returns></returns>
|
||
Private Function GetC12DONumber(number As Integer, start As Boolean) As Byte()
|
||
If start Then '置位01
|
||
C12DONumber(number \ 4) = (C12DONumber(number \ 4) And (Not (3 << ((number Mod 4) * 2)))) Or (1 << ((number Mod 4) * 2))
|
||
Else '置位10
|
||
C12DONumber(number \ 4) = (C12DONumber(number \ 4) And (Not (3 << ((number Mod 4) * 2)))) Or (2 << ((number Mod 4) * 2))
|
||
End If
|
||
|
||
Return C12DONumber
|
||
End Function
|
||
|
||
|
||
''' <summary>
|
||
''' C12输入测试
|
||
''' </summary>
|
||
''' <param name="sender"></param>
|
||
''' <param name="e"></param>
|
||
Private Sub BtnInputTest_Click(sender As Object, e As EventArgs) Handles BtnInputTest.Click
|
||
Dim cmd As Byte
|
||
Dim testState As Byte = &H1 '测试状态
|
||
Dim devType As Byte = &HF1 '设备类型
|
||
Dim devAddr As Byte = &H0 '设备地址默认为0
|
||
Dim devCmd As Byte = &H3 '测试时间——3分钟
|
||
Dim data() As Byte = FillTestDatabuff(testState, devType, devAddr, devCmd)
|
||
|
||
'组包
|
||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||
Console.WriteLine($"C12输入测试:{ByteToString(sendDatas)}")
|
||
|
||
'发送
|
||
SendData(sendDatas)
|
||
End Sub
|
||
|
||
|
||
''' <summary>
|
||
''' C12音乐测试
|
||
''' </summary>
|
||
''' <param name="sender"></param>
|
||
''' <param name="e"></param>
|
||
Private Sub Button21_Click(sender As Object, e As EventArgs) Handles Button21.Click
|
||
Dim cmd As Byte
|
||
'组包
|
||
Dim testState As Byte = &H2 '测试状态
|
||
Dim devType As Byte = &H15 '设备类型
|
||
Dim devAddr As Byte = &H1 '设备地址默认为0
|
||
Dim devCmd As Byte = &H22 '测试命令字
|
||
Dim param() As Byte = C5MusicTest()
|
||
Dim data() As Byte = FillTestDatabuff(testState, devType, devAddr, devCmd, param)
|
||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||
Console.WriteLine($"音频测试:{ByteToString(sendDatas)}")
|
||
|
||
'发送
|
||
SendData(sendDatas)
|
||
End Sub
|
||
|
||
|
||
''' <summary>
|
||
''' C5测试音频播放文件下
|
||
''' </summary>
|
||
Private _PlayFolder() As String = {$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.MusicFolder)}",
|
||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SoundPromptFolder)}",
|
||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepingFolder)}",
|
||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.DoorbellFolder)}",
|
||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.WelcomeMessageFolder)}",
|
||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder1Meditate)}",
|
||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder2SeaWave)}",
|
||
$"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder3Forest)}"}
|
||
|
||
|
||
''' <summary>
|
||
''' 初始化文件夹可选项
|
||
''' </summary>
|
||
Private Sub InitFolderItems()
|
||
ComboBox10.Items.Clear()
|
||
ComboBox10.Items.AddRange(_PlayFolder)
|
||
If ComboBox10.Items.Count > 4 Then ComboBox10.SelectedIndex = 4
|
||
|
||
End Sub
|
||
|
||
|
||
''' <summary>
|
||
''' C5音频测试
|
||
''' </summary>
|
||
''' <returns></returns>
|
||
Private Function C5MusicTest()
|
||
Dim playFolder As Byte = GetPlayFolder(ComboBox10.Text)
|
||
Dim playFile As Byte = $"&H{Hex(NumericUpDown1.Value)}"
|
||
|
||
Dim databuff As New List(Of Byte)
|
||
databuff.Add(&H7) '播放音乐状态
|
||
databuff.Add(playFolder) '播放音乐文件夹
|
||
databuff.Add(playFile) '播放音乐文件
|
||
|
||
Return databuff.ToArray
|
||
End Function
|
||
|
||
|
||
''' <summary>
|
||
''' 获取播放文件夹
|
||
''' </summary>
|
||
''' <param name="text"></param>
|
||
''' <returns></returns>
|
||
Private Function GetPlayFolder(text As String) As Byte
|
||
Dim palyFolder As Byte
|
||
Select Case text
|
||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.MusicFolder)}"
|
||
palyFolder = &H0
|
||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SoundPromptFolder)}"
|
||
palyFolder = &H1
|
||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepingFolder)}"
|
||
palyFolder = &H2
|
||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.DoorbellFolder)}"
|
||
palyFolder = &H3
|
||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.WelcomeMessageFolder)}"
|
||
palyFolder = &H4
|
||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder1Meditate)}"
|
||
palyFolder = &H5
|
||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder2SeaWave)}"
|
||
palyFolder = &H6
|
||
Case $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.SleepAidFolder3Forest)}"
|
||
palyFolder = &H7
|
||
End Select
|
||
|
||
Return palyFolder
|
||
End Function
|
||
|
||
|
||
''' <summary>
|
||
''' 巡回测试
|
||
''' </summary>
|
||
''' <param name="sender"></param>
|
||
''' <param name="e"></param>
|
||
Private Sub Button23_Click(sender As Object, e As EventArgs) Handles Button23.Click
|
||
Label48.ForeColor = Color.Black
|
||
Label48.Text = $"{LanguageData.StringList(MultiLanguageDAL.StringEnum.Test)}..."
|
||
Dim cmd As Byte
|
||
'组包
|
||
Dim data(0) As Byte
|
||
data(0) = &H3
|
||
Dim sendDatas() As Byte = FillPacket(cmd, data)
|
||
Console.WriteLine($"C12巡回测试:{ByteToString(sendDatas)}")
|
||
|
||
'发送
|
||
SendData(sendDatas)
|
||
End Sub
|
||
|
||
|
||
''' <summary>
|
||
''' C12调光
|
||
''' </summary>
|
||
''' <param name="sender"></param>
|
||
''' <param name="e"></param>
|
||
Private Sub BtnDimming_Click(sender As Object, e As EventArgs) Handles BtnDimming.Click
|
||
Dim frmtestc12diming As New FrmTest_C12_Dimming(FCsConfig)
|
||
|
||
frmtestc12diming.ShowDialog()
|
||
|
||
End Sub
|
||
|
||
Public Sub ShowForm1(parentControl As Control, ftext As String) Implements IFrmTest.ShowForm1
|
||
Throw New NotImplementedException()
|
||
End Sub
|
||
|
||
|
||
#End Region
|
||
|
||
|
||
|
||
End Class |