2

そこで、AT コマンドを使用して gsm モデムと通信しようとしています。AT コマンドを送信して OK を受信することにより、モデムが正常であることを確認するための基本的なテストを実行しようとしています。問題は、「AT 空行 OK」を受け取っているのですが、AT を送信したときに、OK としか読み取れないようにする方法はありますか?

Imports System.IO.Ports

Public Class GUI
Dim Device As New System.IO.Ports.SerialPort()
Private Sub GUI_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)         Handles MyBase.Load
    Port.Text = "Select Port"
    For Each item As String In IO.Ports.SerialPort.GetPortNames
        Port.Items.Add(item)
    Next
    Device.BaudRate = 9600
    Device.Parity = Parity.None
    Device.StopBits = StopBits.One
    Device.DataBits = 8
    Device.Handshake = Handshake.RequestToSend
    Device.DtrEnable = True
    Device.RtsEnable = True
    Device.NewLine = vbCrLf
    Device.WriteTimeout = 5000
End Sub

Private Sub Port_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Port.SelectedIndexChanged
    Device.PortName = Port.SelectedItem.ToString
End Sub

Private Sub Send_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Send.Click
    Try
        Device.Open()
        Dim msg As String
        msg = Message.Text
        Device.DiscardInBuffer()
        Device.DiscardOutBuffer()
        Device.Write("AT" & vbCrLf)
        MsgBox(Device.ReadExisting())
    Catch ex As Exception
        MsgBox("Error!")
    End Try
    Device.Close()
End Sub
End Class
4

1 に答える 1

4

モデムが Echo コマンドに設定されているようです。これをオフにするには、E0最初に送信してみてください。

詳細はこちら

于 2012-08-30T21:08:46.597 に答える