2016-03-31 17 views
0

Ich versuche, viele oder Bulk-SMS mit AT-Befehl zu senden. Ich versuche, alle Nummern innerhalb des Datagrids zu senden, aber nur die erste Nummer sendet.Mehrere SMS senden AT Befehle VB.NET

dies ist mein Code

Dim sql As New MySqlDataAdapter("select StudentID, StudentName,StudentContact, DueDate FROM issue inner join student on student.StudentID = issue.Student ", conn) 
    Dim ds As New DataSet 
    sql.Fill(ds, 0) 
    For i As Integer = 0 To ds.Tables(0).Rows.Count - 1 
     Dim wholenum As String 
     Dim wholesms As String 
     wholenum = ds.Tables(0).Rows(i).Item(2).ToString 
     wholesms = "Hello " & ds.Tables(0).Rows(i).Item(1).ToString & ", this is your Due Date " & ds.Tables(0).Rows(i).Item(3).ToString & " pls return it on your due date" 

     If SerialPort1.IsOpen Then 
      Try 
       With SerialPort1 
        .Write("AT" & vbCrLf) 
        .Write("AT+CMGF=1" & vbCrLf) 
        .Write("AT+CMGS=" & Chr(34) & wholenum & Chr(34) & vbCrLf) 
        .Write(wholesms & Chr(26)) 



        MsgBox("Success sa SEND") 


        'update one 

        'Call ConnectDatabase() 
        'com = New MySqlCommand("UPDATE issue SET Sent='1' ", conn) 
        'com.ExecuteNonQuery() 
        'Call DisconnectDatabase() 

       End With 

      Catch ex As Exception 
       MsgBox("Bad Signal or No load") 
      End Try 

     Else 
      MsgBox("Pls insert a modem") 
     End If 

Ich denke, der Looping arbeitet ‚Cuz es die erfolgreiche Botschaft, wie viele innen in der Datagrid Ansicht apppears. Aber es sendet nur die erste Nummer.

Antwort

0

Sie müssen Ihre AT-Befehlsverarbeitung erheblich beheben. Zuerst müssen Sie lesen und analysieren alles, was das Modem sendet nach dem Senden einer AT-Befehlszeile (die übrigens mit nur "\r" und nicht VbCrLf beendet werden sollte).

Sie sollten nie eine neue Befehlszeile senden, bevor Sie den endgültigen Ergebniscode erhalten haben. Und für AT+CMGS speziell sollten Sie die SMS-Payload nie senden, bevor Sie das "\r\n >" Präfix erhalten haben. Diese Fragen werden in this und this Antwort beantwortet. Aber die allererste Sache, die Sie sollten, ist zu lesen der gesamte Text in Kapitel 5 in der V.250 specification. Es ist ein really important document beim Arbeiten mit AT-Befehlen.