Отправка SMS через GSM модем на мобильный телефон

Используя VB.NET, мне нужно отправить SMS с помощью GSM-модема на мобильный телефон.

В настоящее время у меня есть следующий код:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    If serialport.IsOpen Then
        serialport.Close()
    End If
    Try
        With serialport
            .PortName = ComboBox1.Text
            .BaudRate = 96000
            .Parity = Parity.None
            .DataBits = 8
            .StopBits = StopBits.One
            .Handshake = Handshake.RequestToSend
            .DtrEnable = True
            .RtsEnable = True
            .NewLine = vbCrLf
        End With
        serialport.Open()
    Catch ex As Exception
    End Try
    serialport.WriteLine("AT+CMGF=1" & vbCr)
    System.Threading.Thread.Sleep(200)
    serialport.WriteLine("AT+CMGS=" & Chr(34) & "destination" & Chr(34) & vbCr)
    System.Threading.Thread.Sleep(200)
    serialport.WriteLine("test message" & vbCrLf & Chr(26))
    System.Threading.Thread.Sleep(200)
End Sub

Дело в том, что этот код не работает.

Можете ли вы проверить, правильно это или нет. Или просто дайте мне несколько тем, которые могут помочь мне в этом.


person MakAdin    schedule 24.02.2013    source источник
comment
Не могу точно сказать, что не так с вашим кодом, но BaudRate не кажется правильным: .BaudRate = 96000. Должно быть 9600.   -  person dan radu    schedule 24.02.2013
comment
поменяю, спасибо   -  person MakAdin    schedule 24.02.2013
comment
Эй, @dan radu, можешь привести пример?   -  person MakAdin    schedule 24.02.2013
comment
Я не связывался напрямую с модемом GSM, но использовал библиотеку, которая хорошо работала с моим GSM Modem Wavecom Q2303A. Библиотека называется mCoreLib, а пробная версия добавляет рекламу в каждое отправленное сообщение. .   -  person dan radu    schedule 24.02.2013
comment
ох уж эта библиотека. Я думал, что это ничего, ну, я должен попробовать это. еще раз спасибо.   -  person MakAdin    schedule 24.02.2013
comment
Вы пробовали отправлять сообщения с этого модема через гипертерминал? Не все модемы GSM поддерживают текстовый режим.   -  person SubtleStu    schedule 24.02.2013
comment
Я думаю, что ваш "destination", вероятно, должен быть номером телефона, на который вы хотите отправить сообщение. Вы также должны проверить статус возврата от модема, а не просто делать паузу.   -  person Adam Zuckerman    schedule 16.04.2013


Ответы (1)


Этот код работает для меня и может отправить сообщение на ваш телефон:

{
    SerialPort1.WriteLine("AT")
    System.Threading.Thread.Sleep(300)
    SerialPort1.WriteLine("AT+CMGF=1" & vbCrLf)
    System.Threading.Thread.Sleep(300)
    SerialPort1.WriteLine("AT+CSCA=" & Chr(34) & MessageCenter & Chr(34) & vbCrLf)
    System.Threading.Thread.Sleep(300)
    SerialPort1.WriteLine("AT+CMGS=" & Chr(34) & PhoneNumber & Chr(34) & vbCrLf)
    System.Threading.Thread.Sleep(300)
    SerialPort1.WriteLine(Message & Chr(26))
    MsgBox("Send")
}

Примечание; этот код я попробовал и получил сообщение с моего телефона, как это; "?????#$??#????".

person Herdyawan Jaya    schedule 07.04.2016