Я пытаюсь отправить SMS со своего мобильного телефона Nokia (C1-01) с помощью AT-команд, и я могу успешно отправить SMS с этим кодом vb.net.
Button_Send_Click:
Dim SMSPort = New SerialPort
With SMSPort
.PortName = "COM2"
.BaudRate = 9600
.Parity = Parity.None
.DataBits = 8
.StopBits = StopBits.One
.Handshake = Handshake.None
.DtrEnable = True
.RtsEnable = True
.NewLine = vbCrLf
End With
SMSPort.Open()
SMSPort.Write("AT+CMGF=1" & vbCrLf)
Threading.Thread.Sleep(200)
SMSPort.Write("AT+CMGS=" & Chr(34) & TextBox1.Text & Chr(34) & vbCrLf) 'TextBox1.text = Recipient mobile number and chr(34) = "
Threading.Thread.Sleep(200)
SMSPort.Write("TEST MESSAGE" & Chr(26)) 'chr(26) = →
Threading.Thread.Sleep(200)
MsgBox(SMSPort.ReadExisting())
SMSPort.Close()
Это работает нормально в первый раз, после активации этого кода я получил SMS на свой мобильный телефон TEST MESSAGE
(блестяще), НО когда я нажимаю кнопку отправки во второй раз, я получил SMS на свой мобильный телефон, который содержит: AT+CMGF=1
AT+CMGS=+92XXYYYYYY
TEST MESSAGE
Почему во второй раз он включает «AT-команды, т.е. AT+CMGF и т. д.» в SMS? Как я могу удалить ненужный текст из этого? Я также попробовал свойства SMSPort.DiscardInBuffer()
и SMSPort.DiscardOutBuffer()
после открытия и перед закрытием моего последовательного порта (SMSPort), но моя проблема не решается. Я много гуглил, но все тщетно, пожалуйста, помогите мне решить эту проблему.
Платформа: Microsoft Visual Basic 2010 с .NET 2.0.