2016-03-31 4 views
0

Я пытаюсь отправить много или навальных смс с помощью команды AT. Я пытаюсь отправить все число внутри datagrid, но только первый номер отправляет.Несколько смс отправляют команды AT VB.NET

это мой код

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 

Я думаю, что зацикливание работает «Потому что это apppears успешного сообщения о том, сколько внутри в представлении DataGrid. Но он отправляет только первый номер.

ответ

0

Вам необходимо значительно улучшить работу с AT-командой. Прежде всего вам нужно прочитать и разобрать все, что модем отправит вам обратно после отправки командной строки AT (который, кстати, должен быть завершен только "\r", а не vbCrLf).

Вы не должны начинать отправку новой командной строки до того, как получите окончательный код результата. И для AT+CMGS конкретно вы никогда не должны отправлять полезную нагрузку sms, прежде чем вы получите префикс "\r\n >".

Эти вопросы касаются this и this Ответ. Но самое первое, что вы должны сделать, это прочитать весь текст в главе 5 в V.250 specification. При работе с командами AT это really important document.