Исправить ошибки в коде отправки SMS через GSM-модем - C#
Формулировка задачи:
Здравствуйте!
Недавно начал писать на c#. Поставили передо мной задачу отправки смс через gsm модем. Все бы ничего, но написанная простенькая программа не хочет работать, т.е. выполнять свою главную функцию - отправлять смс.
Ошибок в коде не показывает. Через hyper terminal работает.
Подскажите, что в этом коде не так? Почему не работает программа?
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();
Переписал немного код, проверил, вроде работает. Проверял не с помощью 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д