Vb.net 无法使用带有AT命令的gsm调制解调器发送英文文本
我试图发送一条短信“警报”,但它变成了“5w”,发送了其他类型的信息,它们最终都是一些奇怪的字符,比如=ìteèNñqètΔ6MŠΦReÅZΔfèfåP3TÅbVè/&pèo3∧+XKw6 ∑PψΓ8FwΘBΩ。我不确定我做错了什么,有人能帮我解决这个问题吗Vb.net 无法使用带有AT命令的gsm调制解调器发送英文文本,vb.net,serial-port,sms,gsm,at-command,Vb.net,Serial Port,Sms,Gsm,At Command,我试图发送一条短信“警报”,但它变成了“5w”,发送了其他类型的信息,它们最终都是一些奇怪的字符,比如=ìteèNñqètΔ6MŠΦReÅZΔfèfåP3TÅbVè/&pèo3∧+XKw6 ∑PψΓ8FwΘBΩ。我不确定我做错了什么,有人能帮我解决这个问题吗 Public Sub New(ByRef COMMPORT As String) 'initialize all values SMSPort = New SerialPort With SM
Public Sub New(ByRef COMMPORT As String)
'initialize all values
SMSPort = New SerialPort
With SMSPort
.PortName = COMMPORT
.BaudRate = 115200
.Parity = Parity.None
.DataBits = 8
.StopBits = StopBits.One
.Handshake = Handshake.RequestToSend
.DtrEnable = True
.RtsEnable = True
.NewLine = vbCrLf
End With
End Sub
Public Function SendSMS() As Boolean
If SMSPort.IsOpen = True Then
'sending AT commands
SMSPort.WriteLine("AT")
SMSPort.WriteLine("AT+CMGF=1" & vbCrLf) 'set command message format to text mode(1)
SMSPort.WriteLine("AT+CMGS= " & Chr(34) + phonenumber + Chr(34) & vbCrLf)
_ContSMS = False
SMSPort.WriteLine("alert" & vbCrLf & Chr(26)) 'SMS sending
SMSPort.Close()
End If
End Function
Public Sub Open()
If Not (SMSPort.IsOpen = True) Then
SMSPort.Open()
End If
End Sub
Public Sub Close()
If SMSPort.IsOpen = True Then
SMSPort.Close()
End If
End Sub
为什么COMPORT是通过ByRef传递的?您是否使用Tera Term或PuTTy等终端程序尝试过这些串行端口设置?串行连接上的垃圾通常是由于错误的设置造成的。@AndrewMorton是的,我试过putty,结果也是一样的characters@Mary这是用于声明组件/选择组件的函数我正在谈论的
Public Sub-New(ByRef COMMPORT As String)
为什么该字符串被ByRef传递?在那艘潜艇上没有改变。