Senden Und Empfangen von SMS Aus GSM-modem
Ich versuche zu senden-Nachricht von GSM-modem. Ich kann senden von AT-Befehlen die Antwort ist OK ohne FEHLER. Aber das problem ist ich kann keine Nachricht senden oder Lesen einer Nachricht.
Ich umgesetzt haben 3 Funktionen:
- Eine Verbindung zu port
- SMS Lesen
- SMS versenden
- Griffe
1. Eine Verbindung Zu Port:
Private Sub BtnConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnConnect.Click
If SerialPort1.IsOpen Then
SerialPort1.Close()
BtnConnect.Text = "Connect"
Else
Try
With SerialPort1
.PortName = Trim(Mid(ComboBox1.Text, 1, 5))
.BaudRate = 9600
.Parity = IO.Ports.Parity.None
.DataBits = 8
.StopBits = Ports.StopBits.One
.Handshake = Ports.Handshake.None
.RtsEnable = True
.DtrEnable = True
.Open()
.WriteLine("AT+CNMI=1,2,0,0,0" & vbCrLf) 'send whatever data that it receives to serial port
End With
BtnConnect.Text = "Disconnect"
Catch ex As Exception
BtnConnect.Text = "Connect"
MsgBox(ex.Message)
End Try
End If
End Sub
2. SMS Lesen
Private Sub btn_read_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_read.Click
Try
SerialPort1.WriteLine("AT" & vbCrLf) 'is modem okay?
Thread.Sleep(1000)
SerialPort1.WriteLine("AT+CMGF=1" & vbCrLf) 'To format SMS as a TEXT message
Thread.Sleep(1000)
SerialPort1.WriteLine("AT+CPMS=""SM""" & vbCrLf) ' Select SIM storage
Threading.Thread.Sleep(1000)
SerialPort1.WriteLine("AT+CMGL=""REC UNREAD""" & vbCrLf) 'read unread messages
Threading.Thread.Sleep(1000)
SerialPort1.WriteLine("AT+CMGL=""ALL""" & vbCrLf) 'print all message
Threading.Thread.Sleep(1000)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
3. Senden Sie SMS -
Private Sub btn_send_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_send.Click
Try
With SerialPort1
.WriteLine("AT" & vbCrLf)
Threading.Thread.Sleep(1000)
.WriteLine("AT+CMGF=1" & vbCrLf) 'Instruct the GSM /GPRS modem to operate in SMS text mode
Threading.Thread.Sleep(1000)
.WriteLine("AT+CMGS=""9802100355""" & vbCr) 'sender ko no. rakhne ho tyo txtnumber ma
Threading.Thread.Sleep(1000) 'thapeko
.WriteLine("This is test message" & vbCrLf & Chr(26)) 'txtmessage automatic huna parchha haina?
End With
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
4. Griffe für empfangene Daten in Serieller Port
Private Sub serialport1_datareceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
'Pause while all data is read
System.Threading.Thread.Sleep(300)
rcvdata = SerialPort1.ReadExisting()
MsgBox(rcvdata, , "Response From AT")
rcvdata = ""
End Sub
Wo hab ich was verpasst? Beim senden von SMS bekomme ich CMS-500-Fehler. Mit der software von dem modem bin ich in der Lage zu Lesen und senden von sms. Aber brauche ich zur Umsetzung meiner eigenen in meiner software.
- Prüfen Sie, ob das modem registriert ist, um das Netzwerk mit AT+CREG? Ich sehe in Ihr eine Verbindung zu port routine, die Sie nicht geben Sie eine PIN für Ihre SIM-Karte und nicht sicherzustellen, das modem ist bereit und registriert, bevor Sie fortfahren.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann es mehrere Ursache dieses Fehlers. Zuerst überprüfen Sie Ihr Netzwerk. Das zweite set-Message-service center Nummer über AT-Befehle und speichern Sie diese Einstellung. Hoffe, dies wird Ihnen helfen,
In Ihrer zweiten Funktion, können Sie versuchen, deklarieren eine string-variable um die Daten zu empfangen, wie diese:
Können Sie fügen Sie einen Ereignishandler zu datareceived zum Lesen der bytes:
Ihre Telefonnummer ist falsch, das ist, warum Sie immer Fehler 500, müssen Sie die vollständige Telefonnummer einschließlich
0
an der front.