-1

私は Teltonika G10 GSM モデムを使用しており、SMS を送信するための基本的なプログラムを作成しました。各 AT コマンドの間に 1.5 秒のタイマーを入れて、モデムがモデムからの「OK」の待機をシミュレートできるようにしました。これは今のところ機能しますが、タイマーを使用するよりも、「OK」や「ERROR」などの実際の応答を待つ分岐ステートメントを使用したいと思います。

        SerialPort1.Write("AT+CMGD=1,4" & vbCrLf)
        Thread.Sleep(1250)
        SerialPort1.Write("AT+CMGF=1" & vbCrLf)
        Thread.Sleep(1250)
        SerialPort1.Write("AT+CMGS=" & Chr(34) & "3475558223" & Chr(34) & vbCrLf)
        Thread.Sleep(1250)
        SerialPort1.Write(":|" & Chr(26))
4

1 に答える 1

0

私はATコマンドを使用したプログラミングに不慣れで、Puttyを理解するためにかなりの時間を費やしていました。Hans Passantは.ReadLine()を使用することを提案し、それはうまく機能しました。

以下は、うまく機能したコードのサンプルです。基本的にはモデムにコマンドを送信し、モデムが「OK」で応答した場合にのみ続行します。

 If modem.IsOpen() Then
        modem.Write("AT+CMGD=" & Chr(34) & "ALL" & Chr(34) & vbCrLf)   'deletes last received message
        'Sets Modem to Text
        While (modem.ReadLine().ToString <> "OK")
            modem.Write("AT+CMGF=1" & vbCrLf)
        End While
        While (modem.ReadLine().ToString <> "OK")
            modem.Write("AT+CSMP=17,167,0,0" & vbCrLf)
        End While

        While (modem.ReadLine().ToString <> "OK")
            modem.Write("AT+CNMI=1,1,0,0,0" & vbCrLf)
        End While
    End If
于 2012-11-23T17:43:50.800 に答える