我连接了USB调制解调器,它在端口COM1上使用putty工作正常。
调制解调器能够响应
之类的命令AT
OK
ATZ
OK
我尝试使用SerialPort类在.NET 2.0框架下执行相同的操作 但是没有收到“OK”。
代码已更新,以便进一步测试
初始化端口
Dim ModemPort As SerialPort
ModemPort.DtrEnable = True
ModemPort.Handshake = Handshake.XOnXOff
ModemPort.NewLine = "\r\n" '(Added but the problem still exist)
'ModemPort.ReadTimeout = 3000 (Removed for testing)
SendSerialData(ModemPort, "ATZ")
方法SendSerialData
Function SendSerialData(ByRef modemPort As SerialPort, ByVal data As String)
Dim returnStr As String = ""
If modemPort.IsOpen = False Then
modemPort.Open()
End If
'Updated
modemPort.WriteLine(data) 'ATZ
System.Threading.Thread.Sleep(1000)
Try
Do
Dim Incoming As String = modemPort.ReadExisting()
If Incoming = "OK" Then
Exit Do
End If
If Incoming = "" Then
modemPort.WriteLine(data)
System.Threading.Thread.Sleep(1000) 'Modem will send "Error" sometime
Else
returnStr &= Incoming
End If
Loop
Catch ex As Exception
End Try
Return returnStr
End Function
然而,我复活的只是回声
Dim Incoming As String = modemPort.ReadExisting()
是
ATZ ATZ ATZ ATZ ATZ ATZ ATZ ATZ ATZ ATZ ATZ ATZ ATZ ATZ ATZ ATZ ATZ ATZ ATZ ATZ 在 错误 ž ATZ
(按换行分组)
w̶h̶i̶c̶h̶̶i̶s̶̶j̶u̶s̶t̶̶w̶h̶a̶t̶̶I̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶
调制解调器能够回显我的命令,但调制解调器不会发送“OK”但有时会发出“ERROR”。
This is the modemPort variable at runtime just before ReadLine()
A local test done by PassMark shows the modem is functional
M̶a̶y̶b̶e̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶
是否需要进行任何配置?
我做了一些在线挖掘,但似乎没有人有类似的问题。
提前致谢。
答案 0 :(得分:0)
原来我只需要更加努力;)
I come across this page and find the solution
我做错了什么:
正确的方法
ModemPort.DtrEnable = True
ModemPort.Handshake = Handshake.XOnXOff
ModemPort.NewLine = Chr(13) + Chr(10)
ModemPort.Encoding = System.Text.Encoding.ASCII
调制解调器能够响应
ATZ
行
如果你不想要" ATZ"回声,使用" ATE0"用" AT"命令。 " ATZ"将重置ATE0。