2016-03-31 2 views
0

J'essaye d'envoyer de nombreux sms en masse en utilisant la commande AT. J'essaye d'envoyer tout le nombre à l'intérieur de la grille de données, mais seul le premier nombre m'envoie.Plusieurs sms envoient dans les commandes AT VB.NET

ceci est mon 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 

Je pense que le looping travaille « cuz it apppears le message réussi de combien à l'intérieur de la vue DataGrid. Mais il n'envoie que le premier numéro.

Répondre

0

Vous devez corriger votre commande AT de manière significative. Tout d'abord, vous devez lire et analyser tout ce que le modem vous renvoie après l'envoi d'une ligne de commande AT (qui devrait d'ailleurs être terminée avec seulement "\r" et non vbCrLf).

Vous ne devriez jamais commencer à envoyer une nouvelle ligne de commande avant d'avoir reçu le code résultat final. Et pour AT+CMGS spécifiquement, vous ne devriez jamais envoyer la charge utile sms avant d'avoir reçu le préfixe "\r\n >". Ces problèmes sont couverts par les réponses this et this. Mais la toute première chose que vous devriez faire est de lire tout le texte dans le chapitre 5 dans le V.250 specification. C'est un really important document lorsque vous travaillez avec des commandes AT.