AT команды на модем

QWER-MAS

Client
Регистрация
14.05.2015
Сообщения
96
Благодарностей
10
Баллы
18
Нужен снипет для отправки этой команды в модем на COM 4

Код:
AT+CNUM
И ответ положить в переменную.
 

dmitya

Client
Регистрация
10.08.2013
Сообщения
179
Благодарностей
78
Баллы
28
Актуально!

Через C# снипет пробую отправить АТ команду в порт, команда уходит, но такое ощущение, что поток не завершился, поэтому порт не дает ответ.
При повторной посылке команды, она добавляется к предыдущей строчке и опять тишина. Такое ощущение, что порту не хватает какого-то ПИНКА, чтобы НАЧАТЬ обработку АТ команды.
Каждая АТ команда завершается "\r\n".
Потоки на COM-порт перехватываю прогой Free Device Monitoring Studio.

При этом, если запустить родную "управляющую" программу для модема, то все AT команды уходят в порт как надо, доходят до модема и приходит ответ.

Что делать и как все починить?

Тестируемый код:
Код:
// Инициализируем COM порт по-умолчанию ----
SerialPort serial_port = new SerialPort();

serial_port.BaudRate =9600;
serial_port.DataBits = 8;
serial_port.StopBits = StopBits.One;
serial_port.Parity = Parity.None;
serial_port.Handshake = Handshake.None;
serial_port.RtsEnable = true;
serial_port.ReadTimeout = 500;
serial_port.WriteTimeout = 500;
// ----

string response = String.Empty;

serial_port.PortName = "COM14"; //назначаем конкретный COM порт
if (!serial_port.IsOpen) { //если порт НЕ открыт, то...
    try {
        serial_port.Open(); //... пробуем его открыть
    }
    catch (Exception e) {return "упс!";}
      
    if (serial_port.IsOpen) { //если всё окейно, то работаем
        System.Threading.Thread.Sleep(1000); //па-ааауза
        serial_port.Write("AT\r\n"); //отправляем простейшую AT команду
        System.Threading.Thread.Sleep(1000);
        try {
            response = serial_port.ReadExisting(); //пробуем читать ответ порта
        }
        catch (Exception e) {return "упс №2"; }
          
        if (response != String.Empty) {
            project.Variables["response"].Value = response; //если ответ не нулевой, то передаем его в проект
        }
        serial_port.Close(); //закрываем порт
    }
}
 
Последнее редактирование:

speaker

Client
Регистрация
13.10.2012
Сообщения
287
Благодарностей
44
Баллы
28
Привет, может кто подскажет код, для отсылки команды AT^RESET , com 10.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)