初始值
This commit is contained in:
590
Form1.vb
Normal file
590
Form1.vb
Normal file
@@ -0,0 +1,590 @@
|
||||
Imports System.IO.Ports
|
||||
Imports System.Text
|
||||
Imports System.Threading
|
||||
Imports SharedFunction
|
||||
Public Class Form1
|
||||
|
||||
#Region "窗体加载"
|
||||
|
||||
'富文本打印变量
|
||||
Public G_RichTextPrint As RichTextPrint
|
||||
Public G_CommunicationProtocol As CommunicationProtocol
|
||||
|
||||
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
Text = $"{Application.ProductName}_V{Application.ProductVersion}"
|
||||
G_RichTextPrint = New RichTextPrint(RichTextBox1)
|
||||
G_CommunicationProtocol = New CommunicationProtocol(G_RichTextPrint, SerialPort1)
|
||||
G_CommunicationProtocol.AddControlDic(&H18, Label4)
|
||||
G_CommunicationProtocol.AddControlDic(&H19, TextBox6)
|
||||
|
||||
recvBufferli = New List(Of Byte)()
|
||||
End Sub
|
||||
#End Region
|
||||
|
||||
|
||||
#Region "串口事务"
|
||||
|
||||
Public isread As Boolean = False '串口关闭标志
|
||||
Public isListen As Boolean = False '串口等待关闭标志
|
||||
Private Sub Btn_OpenPort_Click(sender As Object, e As EventArgs) Handles Btn_OpenPort.Click
|
||||
If Btn_OpenPort.Text = "关闭" Then
|
||||
Btn_OpenPort.Text = "打开"
|
||||
Btn_OpenPort.BackColor = Color.Transparent
|
||||
Cbo_Port.Enabled = True
|
||||
Cbo_Baud.Enabled = True
|
||||
G_CommunicationProtocol.setIsFlowList(False)
|
||||
G_CommunicationProtocol.ClearFlowNode(True)
|
||||
SharedFunction.CloseSerial(SerialPort1, isread, isListen)
|
||||
|
||||
|
||||
|
||||
Else
|
||||
|
||||
Cbo_Port.Enabled = False
|
||||
Cbo_Baud.Enabled = False
|
||||
Btn_OpenPort.Text = "关闭"
|
||||
Btn_OpenPort.BackColor = Color.OrangeRed
|
||||
Dim vmbaud As Integer = 0
|
||||
'判断端口号是否合法
|
||||
If String.IsNullOrEmpty(Cbo_Port.Text) Then
|
||||
MsgBox("请选择端口号!")
|
||||
Btn_OpenPort_Click(Nothing, Nothing)
|
||||
Return
|
||||
End If
|
||||
'判断波特率是否合法
|
||||
If String.IsNullOrEmpty(Cbo_Baud.Text) OrElse Not Integer.TryParse(Cbo_Baud.Text, vmbaud) Then
|
||||
MsgBox("请选择波特率!")
|
||||
Btn_OpenPort_Click(Nothing, Nothing)
|
||||
Return
|
||||
End If
|
||||
|
||||
'打开串口
|
||||
If SharedFunction.OpenSerial(SerialPort1, Cbo_Port.Text, vmbaud) Then
|
||||
Else
|
||||
MsgBox("串口打开失败!")
|
||||
Btn_OpenPort_Click(Nothing, Nothing)
|
||||
Return
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private _recvBuffer(4095) As Byte
|
||||
Public recvBufferli As List(Of Byte)
|
||||
Public recvBufferliindex As Integer = 0
|
||||
Private Sub SerialPort1_DataReceived(sender As Object, e As IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
|
||||
If isread Then Return
|
||||
|
||||
isListen = True
|
||||
Static bytes As Integer = 0
|
||||
Dim sp As SerialPort = DirectCast(sender, SerialPort)
|
||||
|
||||
Try
|
||||
|
||||
|
||||
Do
|
||||
bytes = sp.BytesToRead
|
||||
If bytes <= 0 Then Exit Sub
|
||||
|
||||
|
||||
Dim buf(bytes - 1) As Byte
|
||||
sp.Read(buf, 0, bytes)
|
||||
recvBufferli.AddRange(buf)
|
||||
|
||||
|
||||
Thread.Sleep(5)
|
||||
Loop While sp.BytesToRead > 0
|
||||
If recvBufferli.Count > 0 Then
|
||||
Dim buf(recvBufferli.Count - 1) As Byte
|
||||
Array.Copy(recvBufferli.ToArray, 0, buf, 0, buf.Length)
|
||||
recvBufferli.Clear()
|
||||
|
||||
G_RichTextPrint.AddQueue(RichTextBox1, New RichTextNodeConfig($"RX:", Color.Green, New Font("宋体", 8), buf), 1)
|
||||
|
||||
G_CommunicationProtocol.ProcessRecvData(buf)
|
||||
|
||||
|
||||
End If
|
||||
|
||||
isListen = False
|
||||
Catch ex As Exception
|
||||
isListen = False
|
||||
'AppendTipText($"串口接收数据失败,原因:{ex.Message}", Color.Red)
|
||||
G_RichTextPrint.AddQueue(RichTextBox1, New RichTextNodeConfig($"串口接收数据失败,原因:{ex.Message}", Color.Red), 1)
|
||||
'RichTextPrint.OutputLogsToTheControl(m_Control, New RuningLogConfig($"串口接收数据失败,原因:{ex.Message}", Color.Red), 1)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub Form1_FormClosed(sender As Object, e As FormClosedEventArgs) Handles MyBase.FormClosed
|
||||
Timer1.Enabled = False
|
||||
If Not IsNothing(G_RichTextPrint) Then
|
||||
G_RichTextPrint.Close()
|
||||
End If
|
||||
If SerialPort1.IsOpen Then
|
||||
SharedFunction.CloseSerial(SerialPort1, isread, isListen)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub Cbo_Port_DropDown(sender As Object, e As EventArgs) Handles Cbo_Port.DropDown
|
||||
Cbo_Port.Items.Clear()
|
||||
Cbo_Port.Items.AddRange(SerialPort.GetPortNames())
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
||||
If G_CommunicationProtocol.getIsFlowList Then
|
||||
MsgBox("正在通信中!")
|
||||
Return
|
||||
Else
|
||||
G_CommunicationProtocol.ClearFlowNode()
|
||||
G_CommunicationProtocol.setIsFlowList(True)
|
||||
End If
|
||||
Dim li As List(Of Byte) = New List(Of Byte)()
|
||||
Dim OSDstr As String = TextBox1.Text
|
||||
Dim OSDbuf As Byte() = Encoding.ASCII.GetBytes(OSDstr)
|
||||
If IsNothing(OSDbuf) OrElse OSDbuf.Length = 0 Then
|
||||
MsgBox("请输入正确的OSD内容!")
|
||||
Return
|
||||
End If
|
||||
li.Add(OSDbuf.Length)
|
||||
li.AddRange(OSDbuf)
|
||||
|
||||
OSDbuf = NT_CAM.PackData(&HA0, li.ToArray)
|
||||
Dim gSendNode As New SendNode(1)
|
||||
|
||||
gSendNode.SetSendData(OSDbuf)
|
||||
G_CommunicationProtocol.AddFlowNode("设置OSD内容", gSendNode)
|
||||
End Sub
|
||||
|
||||
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button7.Click, Button6.Click, Button5.Click, Button4.Click, Button3.Click, Button2.Click
|
||||
|
||||
If G_CommunicationProtocol.getIsFlowList Then
|
||||
MsgBox("正在通信中!")
|
||||
Return
|
||||
Else
|
||||
G_CommunicationProtocol.ClearFlowNode()
|
||||
G_CommunicationProtocol.setIsFlowList(True)
|
||||
End If
|
||||
'获取当前按钮
|
||||
Dim btn As Button = DirectCast(sender, Button)
|
||||
'获取当前按钮的+Tag值
|
||||
Dim ntag As Integer = CInt(btn.Tag)
|
||||
Dim OSDbuf As Byte() = {ntag}
|
||||
|
||||
G_CommunicationProtocol.ClearFlowNode()
|
||||
OSDbuf = NT_CAM.PackData(&HA1, OSDbuf)
|
||||
Dim gSendNode As New SendNode(1)
|
||||
G_CommunicationProtocol.setIsFlowList(True)
|
||||
gSendNode.SetSendData(OSDbuf)
|
||||
G_CommunicationProtocol.AddFlowNode("设置报警状态", gSendNode)
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click, Button8.Click
|
||||
If G_CommunicationProtocol.getIsFlowList Then
|
||||
MsgBox("正在通信中!")
|
||||
Return
|
||||
Else
|
||||
G_CommunicationProtocol.ClearFlowNode()
|
||||
G_CommunicationProtocol.setIsFlowList(True)
|
||||
End If
|
||||
|
||||
'获取当前按钮
|
||||
Dim btn As Button = DirectCast(sender, Button)
|
||||
'获取当前按钮的+Tag值
|
||||
Dim ntag As Integer = CInt(btn.Tag)
|
||||
Dim nComb, mComb As Integer
|
||||
'获取下拉框数值
|
||||
If Integer.TryParse(ComboBox1.Text.Trim, nComb) = False Then
|
||||
MsgBox("请输入正确的音乐序号!")
|
||||
Return
|
||||
End If
|
||||
|
||||
If Integer.TryParse(ComboBox3.Text.Trim, mComb) = False Then
|
||||
MsgBox("请输入正确的音乐序号!")
|
||||
Return
|
||||
End If
|
||||
|
||||
|
||||
Dim OSDbuf As Byte() = {mComb, nComb, 0, 1} '{ntag, nComb}
|
||||
|
||||
G_CommunicationProtocol.ClearFlowNode()
|
||||
OSDbuf = NT_CAM.PackData(&H21, OSDbuf)
|
||||
Dim gSendNode As New SendNode(1)
|
||||
G_CommunicationProtocol.setIsFlowList(True)
|
||||
gSendNode.SetSendData(OSDbuf)
|
||||
G_CommunicationProtocol.AddFlowNode("播放语音", gSendNode)
|
||||
End Sub
|
||||
|
||||
Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click
|
||||
'获取TextBox2文本
|
||||
Dim OSDstr As String = TextBox2.Text
|
||||
'将文本转HEX 数据
|
||||
If G_CommunicationProtocol.getIsFlowList Then
|
||||
MsgBox("正在通信中!")
|
||||
Return
|
||||
Else
|
||||
G_CommunicationProtocol.ClearFlowNode()
|
||||
G_CommunicationProtocol.setIsFlowList(True)
|
||||
End If
|
||||
G_CommunicationProtocol.ClearFlowNode()
|
||||
OSDstr = SharedFunction.StringToHexString(OSDstr)
|
||||
If IsNothing(OSDstr) OrElse OSDstr.Length = 0 Then
|
||||
MsgBox("请输入正确的透传数据!")
|
||||
Return
|
||||
End If
|
||||
Dim OSDbuf As Byte() = SharedFunction.HexStringToByte(OSDstr)
|
||||
OSDbuf = NT_CAM.PackData(&H17, OSDbuf)
|
||||
Dim gSendNode As New SendNode(1)
|
||||
gSendNode.SetSendData(OSDbuf)
|
||||
G_CommunicationProtocol.setIsFlowList(True)
|
||||
G_CommunicationProtocol.AddFlowNode("透传命令", gSendNode)
|
||||
'Console.WriteLine(OSDstr)
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub TextBox2_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox2.KeyPress, TextBox5.KeyPress
|
||||
e.Handled = Not $"0123456789ABCDEFabcdef{vbBack} ".Contains(e.KeyChar) '如果要只允许输入数字,
|
||||
End Sub
|
||||
|
||||
Private Sub SplitContainer2_Panel2_Click(sender As Object, e As EventArgs)
|
||||
Dim btn As Button = DirectCast(sender, Button)
|
||||
If G_CommunicationProtocol.getIsFlowList Then
|
||||
MsgBox("正在通信中!")
|
||||
Return
|
||||
Else
|
||||
G_CommunicationProtocol.ClearFlowNode()
|
||||
G_CommunicationProtocol.setIsFlowList(True)
|
||||
End If
|
||||
'获取当前按钮的+Tag值
|
||||
Dim nComb As Byte() = SharedFunction.HexStringToByte(ComboBox1.Text.Trim)
|
||||
If IsNothing(nComb) OrElse nComb.Length = 0 Then
|
||||
MsgBox("请输入正确的命令!")
|
||||
Return
|
||||
End If
|
||||
|
||||
Dim ntag As Integer = CInt(btn.Tag)
|
||||
Dim OSDbuf As Byte() = {ntag}
|
||||
|
||||
G_CommunicationProtocol.ClearFlowNode()
|
||||
OSDbuf = NT_CAM.PackData(nComb(0), OSDbuf)
|
||||
Dim gSendNode As New SendNode(1)
|
||||
gSendNode.SetSendData(OSDbuf)
|
||||
G_CommunicationProtocol.setIsFlowList(True)
|
||||
G_CommunicationProtocol.AddFlowNode("IPC请求回复", gSendNode)
|
||||
End Sub
|
||||
|
||||
Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
|
||||
'清空富文本
|
||||
RichTextBox1.Clear()
|
||||
End Sub
|
||||
|
||||
Private Sub ComboBox1_DropDown(sender As Object, e As EventArgs) Handles ComboBox1.DropDown, ComboBox3.DropDown
|
||||
'将sender 转换为ComboBox
|
||||
Dim mcomboBox As ComboBox = DirectCast(sender, ComboBox)
|
||||
|
||||
mcomboBox.Items.Clear()
|
||||
'添加1到255
|
||||
For i As Integer = 1 To 255
|
||||
mcomboBox.Items.Add(i)
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Private Sub Button13_Click(sender As Object, e As EventArgs) Handles Button13.Click
|
||||
Dim OSDstr As String = TextBox3.Text
|
||||
Dim OSDbuf As Byte() = Encoding.ASCII.GetBytes(OSDstr)
|
||||
If IsNothing(OSDbuf) OrElse OSDbuf.Length = 0 Then
|
||||
MsgBox("请输入正确的产品ID!")
|
||||
Return
|
||||
End If
|
||||
If G_CommunicationProtocol.getIsFlowList Then
|
||||
MsgBox("正在通信中!")
|
||||
Return
|
||||
Else
|
||||
G_CommunicationProtocol.ClearFlowNode()
|
||||
G_CommunicationProtocol.setIsFlowList(True)
|
||||
End If
|
||||
|
||||
OSDbuf = NT_CAM.PackData(&H9, OSDbuf)
|
||||
Dim gSendNode As New SendNode(1)
|
||||
G_CommunicationProtocol.setIsFlowList(True)
|
||||
gSendNode.SetSendData(OSDbuf)
|
||||
G_CommunicationProtocol.AddFlowNode("设置产品ID", gSendNode)
|
||||
End Sub
|
||||
|
||||
Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click
|
||||
'获取TextBox2文本
|
||||
Dim OSDstr As String = TextBox5.Text
|
||||
'将文本转HEX 数据
|
||||
If G_CommunicationProtocol.getIsFlowList Then
|
||||
MsgBox("正在通信中!")
|
||||
Return
|
||||
Else
|
||||
G_CommunicationProtocol.ClearFlowNode()
|
||||
G_CommunicationProtocol.setIsFlowList(True)
|
||||
End If
|
||||
G_CommunicationProtocol.ClearFlowNode()
|
||||
OSDstr = SharedFunction.StringToHexString(OSDstr)
|
||||
If IsNothing(OSDstr) OrElse OSDstr.Length = 0 Then
|
||||
MsgBox("请输入正确的透传数据!")
|
||||
Return
|
||||
End If
|
||||
Dim OSDbuf As Byte() = SharedFunction.HexStringToByte(OSDstr)
|
||||
OSDbuf = NT_CAM.PackData(&H20, OSDbuf)
|
||||
Dim gSendNode As New SendNode(1)
|
||||
gSendNode.SetSendData(OSDbuf)
|
||||
G_CommunicationProtocol.setIsFlowList(True)
|
||||
G_CommunicationProtocol.AddFlowNode("透传命令", gSendNode)
|
||||
End Sub
|
||||
|
||||
Private Sub Button14_Click(sender As Object, e As EventArgs) Handles Button14.Click
|
||||
Dim OSDstr As String = TextBox4.Text
|
||||
Dim OSDbuf As Byte() = Encoding.ASCII.GetBytes(OSDstr)
|
||||
If IsNothing(OSDbuf) OrElse OSDbuf.Length = 0 Then
|
||||
MsgBox("请输入正确的产品ID!")
|
||||
Return
|
||||
End If
|
||||
If G_CommunicationProtocol.getIsFlowList Then
|
||||
MsgBox("正在通信中!")
|
||||
Return
|
||||
Else
|
||||
G_CommunicationProtocol.ClearFlowNode()
|
||||
G_CommunicationProtocol.setIsFlowList(True)
|
||||
End If
|
||||
|
||||
OSDbuf = NT_CAM.PackData(&H17, OSDbuf)
|
||||
Dim gSendNode As New SendNode(1)
|
||||
G_CommunicationProtocol.setIsFlowList(True)
|
||||
gSendNode.SetSendData(OSDbuf)
|
||||
G_CommunicationProtocol.AddFlowNode("设置产品ID", gSendNode)
|
||||
End Sub
|
||||
|
||||
Private Sub TextBox7_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox7.KeyPress
|
||||
e.Handled = Not $"0123456789{vbBack} ".Contains(e.KeyChar) '如果要只允许输入数字,
|
||||
End Sub
|
||||
Public SendingInterval As Integer = 0
|
||||
Public SendingInterval1 As Integer = 0
|
||||
Public SendingDate As String = ""
|
||||
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
|
||||
If CheckBox1.Checked Then
|
||||
TextBox7.Enabled = False
|
||||
TextBox8.Enabled = False
|
||||
'获取TextBox7 代表的发生间隔
|
||||
SendingInterval = 30
|
||||
|
||||
Integer.TryParse(TextBox7.Text, SendingInterval)
|
||||
SendingDate = TextBox8.Text
|
||||
If SendingInterval < 1 AndAlso String.IsNullOrEmpty(SendingDate) Then
|
||||
MsgBox("请输入正确的发送间隔和发送内容!")
|
||||
CheckBox1.Checked = False
|
||||
Return
|
||||
End If
|
||||
'开启定时任务
|
||||
|
||||
Timer1.Enabled = True
|
||||
|
||||
Else
|
||||
Timer1.Enabled = False
|
||||
TextBox7.Enabled = True
|
||||
TextBox8.Enabled = True
|
||||
End If
|
||||
End Sub
|
||||
Public Timer1cnt As Integer = 0
|
||||
Public Timer2cnt As Integer = 0
|
||||
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
|
||||
If Timer1cnt = SendingInterval Then
|
||||
Timer1cnt = 1
|
||||
|
||||
Dim OSDstr As String = SendingDate
|
||||
'将文本转HEX 数据
|
||||
If G_CommunicationProtocol.getIsFlowList Then
|
||||
MsgBox("正在通信中!")
|
||||
Return
|
||||
Else
|
||||
G_CommunicationProtocol.ClearFlowNode()
|
||||
G_CommunicationProtocol.setIsFlowList(True)
|
||||
End If
|
||||
G_CommunicationProtocol.ClearFlowNode()
|
||||
OSDstr = SharedFunction.StringToHexString(OSDstr)
|
||||
If IsNothing(OSDstr) OrElse OSDstr.Length = 0 Then
|
||||
MsgBox("请输入正确的透传数据!")
|
||||
Return
|
||||
End If
|
||||
Dim OSDbuf As Byte() = SharedFunction.HexStringToByte(OSDstr)
|
||||
OSDbuf = NT_CAM.PackData(&H20, OSDbuf)
|
||||
Dim gSendNode As New SendNode(1, 1)
|
||||
gSendNode.SetSendData(OSDbuf)
|
||||
gSendNode.IsRecvData = False
|
||||
G_CommunicationProtocol.setIsFlowList(True)
|
||||
G_CommunicationProtocol.AddFlowNode("透传命令", gSendNode)
|
||||
|
||||
Else
|
||||
Timer1cnt += 1
|
||||
End If
|
||||
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub TextBox8_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox8.KeyPress
|
||||
e.Handled = Not $"0123456789ABCDEFabcdef{vbBack} ".Contains(e.KeyChar) '如果要只允许输入数字,
|
||||
End Sub
|
||||
|
||||
Private Sub Button16_Click(sender As Object, e As EventArgs) Handles Button16.Click
|
||||
'获取TextBox2文本 ‘55 AA 01 0B 00 00 0B
|
||||
'Dim OSDstr As String = TextBox5.Text
|
||||
'将文本转HEX 数据
|
||||
If G_CommunicationProtocol.getIsFlowList Then
|
||||
MsgBox("正在通信中!")
|
||||
Return
|
||||
Else
|
||||
G_CommunicationProtocol.ClearFlowNode()
|
||||
G_CommunicationProtocol.setIsFlowList(True)
|
||||
End If
|
||||
G_CommunicationProtocol.ClearFlowNode()
|
||||
'OSDstr = SharedFunction.StringToHexString(OSDstr)
|
||||
'If IsNothing(OSDstr) OrElse OSDstr.Length = 0 Then
|
||||
' MsgBox("请输入正确的透传数据!")
|
||||
' Return
|
||||
'End If
|
||||
Dim OSDbuf As Byte() '= SharedFunction.HexStringToByte(OSDstr)
|
||||
OSDbuf = {&H55, &HAA, &H1, &HB, &H0, &H0, &HB}
|
||||
Dim gSendNode As New SendNode(1)
|
||||
gSendNode.SetSendData(OSDbuf)
|
||||
G_CommunicationProtocol.setIsFlowList(True)
|
||||
G_CommunicationProtocol.AddFlowNode("透传命令", gSendNode)
|
||||
End Sub
|
||||
|
||||
Private Sub TextBox9_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox9.KeyPress
|
||||
e.Handled = Not $"0123456789ABCDEFabcdef{vbBack} ".Contains(e.KeyChar) '如果要只允许输入数字,
|
||||
End Sub
|
||||
Public OSDbufSN As Integer = 0
|
||||
Private Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox2.CheckedChanged
|
||||
|
||||
|
||||
|
||||
|
||||
If CheckBox2.Checked Then
|
||||
|
||||
'判断串口是否打开
|
||||
|
||||
|
||||
|
||||
TextBox9.Enabled = False
|
||||
|
||||
'获取TextBox7 代表的发生间隔
|
||||
SendingInterval1 = 500
|
||||
|
||||
Integer.TryParse(TextBox9.Text, SendingInterval1)
|
||||
'SendingDate = TextBox8.Text
|
||||
If SendingInterval1 < 1 Then
|
||||
MsgBox("请输入正确的发送间隔!")
|
||||
CheckBox2.Checked = False
|
||||
Return
|
||||
End If
|
||||
'开启定时任务
|
||||
OSDbufSN = 1
|
||||
Timer2.Interval = 10
|
||||
SendingInterval1 = SendingInterval1 / 10
|
||||
|
||||
Timer2.Start()
|
||||
|
||||
Else
|
||||
OSDbufSN = 1
|
||||
'Timer2.Enabled = False
|
||||
Timer2.Stop()
|
||||
TextBox9.Enabled = True
|
||||
|
||||
End If
|
||||
End Sub
|
||||
Public cntSendingInterval1 As Integer = 0
|
||||
Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
|
||||
' If Timer2cnt = SendingInterval1 Then
|
||||
' Timer2cnt = 1
|
||||
If cntSendingInterval1 < SendingInterval1 Then
|
||||
cntSendingInterval1 = cntSendingInterval1 + 1
|
||||
Else
|
||||
If G_CommunicationProtocol.getIsFlowList1 Then
|
||||
cntSendingInterval1 = SendingInterval1
|
||||
Return
|
||||
'MsgBox("正在通信中!")
|
||||
Else
|
||||
G_CommunicationProtocol.ClearFlowNode()
|
||||
G_CommunicationProtocol.setIsFlowList(True)
|
||||
End If
|
||||
Dim li As List(Of Byte) = New List(Of Byte)()
|
||||
Dim m_snsn As Integer = GetNewSNTimeDate(OSDbufSN)
|
||||
Dim snbuf As String = GetSnString(m_snsn)
|
||||
Dim OSDstr As String = $"R:{snbuf} B:{snbuf} D:{snbuf} TD:{snbuf} HD:{snbuf} S:{snbuf} HC:{snbuf} HR:{snbuf}"
|
||||
Dim OSDbuf As Byte() = Encoding.ASCII.GetBytes(OSDstr)
|
||||
|
||||
|
||||
|
||||
'If IsNothing(OSDbuf) OrElse OSDbuf.Length = 0 Then
|
||||
' MsgBox("请输入正确的OSD内容!")
|
||||
' Return
|
||||
'End If
|
||||
li.Add(OSDbuf.Length)
|
||||
li.AddRange(OSDbuf)
|
||||
|
||||
OSDbuf = NT_CAM.PackData(&HA0, li.ToArray)
|
||||
|
||||
OSDbuf(6) = 14
|
||||
OSDbuf(21) = 11
|
||||
OSDbuf(33) = 16
|
||||
OSDbuf(OSDbuf.Length - 1) = 0
|
||||
OSDbuf(OSDbuf.Length - 1) = SharedFunction.GetCheckSumMod2(OSDbuf)
|
||||
|
||||
Dim gSendNode As New SendNode(1)
|
||||
|
||||
gSendNode.SetSendData(OSDbuf, 800)
|
||||
G_CommunicationProtocol.ClearFlowNode()
|
||||
'G_CommunicationProtocol.setIsFlowList(True)
|
||||
G_CommunicationProtocol.AddFlowNode("设置OSD内容", gSendNode)
|
||||
Console.WriteLine("发送OSD内容")
|
||||
'Else
|
||||
' Timer2cnt += 1
|
||||
'End If
|
||||
cntSendingInterval1 = 0
|
||||
End If
|
||||
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
Public Function GetNewSNTimeDate(ByRef sn As Integer) As Integer
|
||||
Dim result As Integer = 1
|
||||
If sn > 9 Then
|
||||
result = 1
|
||||
sn = 1
|
||||
Else
|
||||
sn = sn + 1
|
||||
result = sn
|
||||
End If
|
||||
Return result
|
||||
End Function
|
||||
Public Function GetSnString(sn As Integer) As String
|
||||
'如果sn只有个位数则前面补0
|
||||
Dim snbuf As String
|
||||
'判断sn是否小于10 ,小于则前面补0
|
||||
If sn < 10 Then
|
||||
snbuf = $"0{sn}"
|
||||
Else
|
||||
snbuf = sn.ToString
|
||||
End If
|
||||
Return snbuf
|
||||
End Function
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
Reference in New Issue
Block a user