Когда я пытаюсь записать команду 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;
Отбросить обратно? ATE0
отключит отображение того, что вы отправляете.
Вероятно, вам также следует ввести ATQ0
, чтобы сообщить устройству, что вы хотите получить ответы, иначе оно не выдаст OK
s. (последующий ATV1
сделает их подробными) также выдайте AT + CMEE = 1
, чтобы активировать ответы об ошибках.
Существуют также существующие библиотеки , предназначенные для работы с модемами GSM, которые избавят вас от неприятностей, если вы хотите сделать это самостоятельно, монитор порта избавит вас от необходимости вытаскивать ваши волосы, показывая вам, что именно отправлено / получено.
Некоторые вещи, которые нужно проверить...
Правильно ли свойство NewLine для вашего модема? По умолчанию используется перевод строки.
Как насчет значений RtsEnable и DtrEnable?
Правильно ли свойство Handshake?