SerialPort не принимает входные данные. Это бросает это назад в меня! - PullRequest
1 голос
/ 07 мая 2010

Когда я пытаюсь записать AT-команду на мой GSM-модем, она, похоже, не принимает команду Я использовал PuTTY, чтобы проверить, что слова команды, это делает. Я проверил, открывается ли порт, он делает.

Что я мог делать не так?

ПРИМЕЧАНИЕ: часть "lol" предназначена для отладки. ; 3

SerialPort sp = new SerialPort("COM3");
sp.BaudRate = 9600;
sp.DataBits = 8;
sp.StopBits = StopBits.One;
sp.Parity = Parity.None;
sp.Open();
if (sp.IsOpen == false)
{
    sp.Open();
}
Thread.Sleep(1000);
sp.WriteLine("AT+CMGF=1");
Thread.Sleep(1000);
string lol = sp.ReadExisting();
sp.Close();
return lol;

Ответы [ 2 ]

1 голос
/ 08 мая 2010

бросает обратно? ATE0 отключит его, повторяя то, что вы отправили.

Возможно, вам также следует ввести ATQ0, чтобы сообщить устройству, что вы хотите получить ответы, в противном случае оно не будет выдавать OK s. (последующие ATV1 сделают их многословными) также выдают AT+CMEE=1 для активации ответов об ошибках.

Существуют также существующие библиотеки , предназначенные для работы с GSM-модемами, которые избавят вас от хлопот, если вы захотите сделать это самостоятельно, монитор порта избавит вас от лишних усилий ваши волосы, показывая вам, что именно отправлено / получено.

1 голос
/ 07 мая 2010

Некоторые вещи для проверки ...

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

Как насчет значений RtsEnable и DtrEnable ?

Правильно ли свойство Рукопожатие ?

...