Files
Desktop_BLVStudio_EN/BLV_Studio/Control/FrmTest_C8.vb

390 lines
14 KiB
VB.net
Raw Normal View History

2025-12-11 14:22:51 +08:00
Public Class FrmTest_C8
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, "C8调光")
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