Public Class FrmTest_BLV_V9 Implements IFrmTest Public FCsConfig As FrmCSeriesConfig Sub New(pathme As FrmCSeriesConfig) ' 此调用是设计器所必需的。 InitializeComponent() FCsConfig = pathme ' 在 InitializeComponent() 调用之后添加任何初始化。 End Sub #Region "多语种信息" ''' ''' 初始化界面控件文本 ''' 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 "窗体" ''' ''' 窗体加载事件 ''' ''' ''' Private Sub FrmTest_C5_Load(sender As Object, e As EventArgs) Handles Me.Load MultiLanguageInfo() InitFolderItems() End Sub ''' ''' 显示窗体事件 ''' 实现接口 ''' ''' Public Sub ShowForm(parentControl As Control) Implements IFrmTest.ShowForm FormBorderStyle = FormBorderStyle.None '无边框 TopLevel = False Dock = DockStyle.Fill '填满大小 Parent = parentControl '父容器 Show() End Sub ''' ''' 发送函数 ''' ''' Public Sub SendData(sendPacket() As Byte) FCsConfig.SendTestData(sendPacket) FCsConfig.AppendTipText($"TX:{ByteToString(sendPacket)}{vbCrLf}", Color.Green) End Sub #End Region #Region "C12测试" ''' ''' 获取继电器序号 ''' Private relayNumber(4) As Byte ''' ''' 发送组包 ''' ''' ''' ''' 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 ''' ''' 1-13路继电器 ''' ''' ''' 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 ''' ''' 获取继电器状态 ''' ''' ''' 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 ''' ''' 获取继电器序号 ''' ''' ''' 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 ''' ''' 1-5路输出 ''' ''' ''' 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 ''' ''' 获取C12测试输出序号 ''' Private C12DONumber(1) As Byte ''' ''' 获取继电器状态 ''' ''' ''' 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 ''' ''' 获取输入序号 ''' ''' ''' 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 ''' ''' C12输入测试 ''' ''' ''' 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 ''' ''' C12音乐测试 ''' ''' ''' 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 ''' ''' C5测试音频播放文件下 ''' 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)}"} ''' ''' 初始化文件夹可选项 ''' Private Sub InitFolderItems() ComboBox10.Items.Clear() ComboBox10.Items.AddRange(_PlayFolder) If ComboBox10.Items.Count > 4 Then ComboBox10.SelectedIndex = 4 End Sub ''' ''' C5音频测试 ''' ''' 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 ''' ''' 获取播放文件夹 ''' ''' ''' 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 ''' ''' 巡回测试 ''' ''' ''' 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 ''' ''' C12调光 ''' ''' ''' 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