在C#中通过GSM调制解调器接收短信

时间:2014-01-25 10:22:07

标签: c# serial-port sms at-command sms-gateway

我正在开发一个项目,我必须使用AT命令通过C#中的GSM调制解调器发送和接收短信。我完成了发送部分,但无法从SIM卡读取短信。 我尝试了以下代码并获得以下响应: 确定 好 ERROR。 阅读短信的代码是:-`

    public bool ReadSms()
    {



        //string buffer = string.Empty;
        if (this.serialPort.IsOpen == true)
        {
            try
            {
                this.serialPort.WriteLine("AT");
                 Thread.Sleep(2000);
                 this.serialPort.WriteLine("AT+CMGF=1" + (char)(13)); 
                Thread.Sleep(3000);
                this.serialPort.WriteLine("AT + CMGL = ALL" + (char)(26));
                Thread.Sleep(5000);
                string a = this.serialPort.ReadExisting();
                MessageBox.Show(a);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Source);
            }
           return true;
        }
        else
            return false;

    }
    public void Opens()
    {
        if(this.serialPort.IsOpen == false)
        {
            this.serialPort.Open();
        }
    }
    public void Closes()
    {
        if (this.serialPort.IsOpen == true)
        {
            this.serialPort.Close();
        }
    }

`

2 个答案:

答案 0 :(得分:0)

将此行替换为“this.serialPort.WriteLine(”AT + CMGL = ALL“+(char)(26));”

用这个this.serialPort.WriteLine(“AT + CMGL = \”ALL \“”+(char)(13));

我希望你不会收到错误。

答案 1 :(得分:0)

替换

this.serialPort.WriteLine("AT");

this.serialPort.WriteLine("AT" + (char)(13));

并将26更改为13