Vb.net 使用串行端口
一段时间以来,我一直在学习如何编写VB.NET。在这个页面和互联网的帮助下,我成功地创建了一个程序,将一些十六进制值发送到一个接口盒,并从中获得一个常规响应 这里的问题是通信是TCP/IP。但是现在我有了一个带有USB接口的新盒子,现在我一点也不知道如何使用串行端口发送和接收相同的十六进制值 下面是代码。我不知道是否有人可以帮我设置一个名为COM13的串行端口,或者至少向我解释一下该怎么做 这就是程序所做的Vb.net 使用串行端口,vb.net,Vb.net,一段时间以来,我一直在学习如何编写VB.NET。在这个页面和互联网的帮助下,我成功地创建了一个程序,将一些十六进制值发送到一个接口盒,并从中获得一个常规响应 这里的问题是通信是TCP/IP。但是现在我有了一个带有USB接口的新盒子,现在我一点也不知道如何使用串行端口发送和接收相同的十六进制值 下面是代码。我不知道是否有人可以帮我设置一个名为COM13的串行端口,或者至少向我解释一下该怎么做 这就是程序所做的 推扫 连接到机箱的TCP/IP(10.2.12.65) 发送激活协议e133 发送get
Imports System.Net.Sockets
Imports System.Threading
Imports System.IO
Public Class Form1
Dim client As New TcpClient
Dim transmit As NetworkStream
Dim protocol As Byte()
Dim data As Byte()
Dim ByteArrayToHexStr As String = String.Empty
Dim message As String
Dim datos_byte As Byte()
Dim respuesta As [String] = [String].Empty
Dim transision As [String] = [String].Empty
Dim Date_full As [String] = [String].Empty
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox1.Clear()
client = New TcpClient("10.2.12.65", 10001)
transmit = client.GetStream()
protocol = {225, 51} ' E1 33 in hex value
transmit.Write(protocol, 0, protocol.Length)
Thread.Sleep(45)
data = {5, 108, 41, 241, 60, 129} ' 05 6c 29 f1 3c 81 in hex value
transmit.Write(data, 0, data.Length)
data = New Byte(66) {}
Thread.Sleep(45)
Dim bytes As Int32 = transmit.Read(data, 0, data.Length)
Dim Date1 As String = String.Empty
Dim Date2 As String = String.Empty
Dim Date_temp As Integer = 0
For i As Integer = 0 To UBound(data)
Date1 = data(i)
If Date1 = "129" Then
Date_temp = i + 1
i = 1000
For k As Integer = 0 To 5
If k = 0 Then
Date1 = data(Date_temp + k)
Date_full = Chr(Date1)
Else
Date1 = data(Date_temp + k)
Date2 = Chr(Date1)
Date_full = Date_full & Date2
End If
Next
Else
End If
Next
Thread.Sleep(45)
transmit.Close()
client.Close()
TextBox1.Text = TextBox1.Text & Date_full
End Sub
End Class
请看一下Microsoft的SerialPort类示例:
如果返回垃圾,则可能表明波特率配置不正确。我不知道“box”是什么意思,但这个设备应该有一个指定的波特率,您应该可以在它的数据表或产品信息中找到它。就像您声明了一个新的TcpClient一样,您应该声明一个Ports.SerialPort对象(给定您当前的Imports语句)。然后设置端口的属性(名称、波特率等)。然后打开它。使用Write方法。关上它。然后处理端口的DataReceived事件以缓冲响应并相应地采取行动。非常感谢,你是对的,它与tcp相同,我只需要配置端口。