Исправить ошибки в коде отправки SMS через GSM-модем - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Недавно начал писать на c#. Поставили передо мной задачу отправки смс через gsm модем. Все бы ничего, но написанная простенькая программа не хочет работать, т.е. выполнять свою главную функцию - отправлять смс.
serialPort1 = new SerialPort("COM11");
            string pN = "+380509343478";
            string mess = "qwerty123";
            serialPort1.Open();
            serialPort1.WriteLine("AT");
            System.Threading.Thread.Sleep(1000);
            serialPort1.WriteLine("AT+CMGF=1");
            System.Threading.Thread.Sleep(1000);
            serialPort1.Write(String.Format("AT+CMGS=\"" + pN + "\""));
            serialPort1.Write(String.Format(mess + "\x1A"));
            System.Threading.Thread.Sleep(1000);            
            textBox1.Text = serialPort1.ReadExisting();
            serialPort1.Close();
Ошибок в коде не показывает. Через hyper terminal работает. Подскажите, что в этом коде не так? Почему не работает программа?
Переписал немного код, проверил, вроде работает. Проверял не с помощью gsm модема, а подключал обычный телефон. Все работало. Принес потестить на gsm модеме, запускаю, АТ команды работают, в ответ получаю ОК, но смс не приходят адресату. В чем может быть проблема?
private void button1_Click(object sender, EventArgs e)
        {
            string phoneNum = "+3809********";
            string text = "test";
            
            serialPort1 = new SerialPort();
 
            SerialPort.GetPortNames();
            foreach (string s in SerialPort.GetPortNames())
            {
                comboBox1.Items.Add(s);
            }
            serialPort1.PortName = comboBox1.SelectedItem.ToString();
            serialPort1.Open();
 
            if (serialPort1.IsOpen)
            {
                serialPort1.WriteLine("AT \r\n");
                System.Threading.Thread.Sleep(1000);
                serialPort1.Write("AT+CMGF=1 \r\n");
                System.Threading.Thread.Sleep(1000);
                serialPort1.Write(String.Format("AT+CMGS=\"{0}\"" + (Char)13, phoneNum));
                serialPort1.Write(String.Format("{0}" + (Char)26 + (Char)13, text));
                serialPort1.Encoding = Encoding.GetEncoding("windows-1251");
                textBox1.Text = serialPort1.ReadExisting();
                serialPort1.Close();
            }
        }

Решение задачи: «Исправить ошибки в коде отправки SMS через GSM-модем»

textual
Листинг программы
System.Threading.Thread.Sleep(1000);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5
Похожие ответы