Files
Desktop_BLVStudio_EN/BLV_Studio/Control/FrmTest_BLV-V9.vb
2025-12-11 14:22:51 +08:00

392 lines
14 KiB
VB.net
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Public Class FrmTest_BLV_V9
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 = "V9" & LanguageData.StringList(MultiLanguageDAL.StringEnum.Dimming)
BtnDimming.Text = "V9" & LanguageData.StringList(MultiLanguageDAL.StringEnum.DimmingTest)
Label34.Text = "V9" & LanguageData.StringList(MultiLanguageDAL.StringEnum.RelayControl)
Label36.Text = "V9" & LanguageData.StringList(MultiLanguageDAL.StringEnum.IOOutput)
Label35.Text = "V9" & LanguageData.StringList(MultiLanguageDAL.StringEnum.IOInput)
Label40.Text = "V9" & LanguageData.StringList(MultiLanguageDAL.StringEnum.ItinerateTest)
Label37.Text = "V9" & 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, "V9调光")
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