0
votes

I am working on a project in which I have to send and recieve SMS via GSM modem in C# using AT commands. I am done with the sending part but having trouble reading sms from the sim card. I have tried the following code and get the following response: OK OK ERROR. The code for reading the SMS is :-`

    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

2 Answers

0
votes

replace your this line "this.serialPort.WriteLine("AT + CMGL = ALL" + (char)(26));"

with this one this.serialPort.WriteLine("AT+CMGL=\"ALL\"" + (char)(13));

i hope you will not get the error.

0
votes

replace the line

this.serialPort.WriteLine("AT");

with

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

and change 26 to 13