Как получить порт от GSM модема с помощью AT Command - PullRequest
0 голосов
/ 18 марта 2019

Я пытаюсь создать приложение для SMS с помощью AT Command.Что я хочу знать, так это то, как я могу получить порт GSM-модема вместо жесткого его кодирования?

Ниже приведен пример моего кода.

private void SendSMSTo(string cnum)
    {
        SerialPort _serialPort;

        _serialPort = new SerialPort("COM9", 115200);
        //instead of hard coding the port COM9 I want to get the port from GSM Modem

        Thread.Sleep(1000);

        _serialPort.Open();

        Thread.Sleep(1000);

        _serialPort.Write("AT+CMGF=1\r");

        Thread.Sleep(1000);

        _serialPort.Write("AT+CMGS=\"" + cnum + "\"\r\n");

        Thread.Sleep(1000);

        _serialPort.Write(computation() + "\x1A");

        Thread.Sleep(1000);

        _serialPort.Close();
    }

1 Ответ

0 голосов
/ 20 марта 2019

Я не парень по Windows, но я не думаю, что ваш вопрос действительно связан с Windows.

Как сказал @Hessam, вы не можете попросить модем сообщить вам порт, к которому он подключенк тому, что вы не можете обсудить с модемом, потому что вы не знаете порт ...

Я бы попробовал протестировать все возможные порты, чтобы определить правильный, и только потом отправлять ваши SMS.Для этого вы можете выполнить цикл от COM1 до COMXXX (я не знаю ограничения, но достаточно большой) ... и попытаться отправить команду AT, для которой вы знаете ответ.Если вы получили ожидаемый ответ, вы получили правильный порт;если нет, попробуйте следующий.Если я хорошо помню, команда AT AT просто отвечает OK.Это был бы самый простой вариант.В противном случае вы можете выбрать ATI, который предоставляет полную информацию о модеме, или один из AT+GMI, AT+GMM или AT+GMR и т. Д., Которые предоставляют частичную информацию.

Таким образом, у вас будет две функции:

  • detectModemPort(), которые будут отвечать с номером порта (или именем порта), если он найден, или с ошибкой
  • SendSMSTo(string port, string cnum), который сначала откроет последовательное соединение через порт port (который существует, потому что мы его только что обнаружили), а затем отправит SMS на cnum.

Вы также можете посмотретьна этот вопрос / ответ на SuperUser.Похоже, что есть команда devcon.exe для обнаружения устройств, подключенных к компьютеру, но у меня нет Windows bon, чтобы попробовать это.

...