Доступ к GSM модему в C #

2

У меня есть GSM-модем, у которого есть определенный набор команд, связанный с ним. Я хочу вызвать эти команды, используя мой код С#. Можно ли это сделать?

Модель модема GSM: MOD 9001 Модем BENQ GSM/GPRS

У меня нет библиотеки для взаимодействия с этим модемом

  • 0
    Не могли бы вы предоставить немного больше деталей? В частности, какая модель GSM (производитель / модель), какие интерфейсы у вас есть к ней через код (библиотека .NET / COM Interop) и т. Д.
Теги:
gsm

3 ответа

1

Я вижу, что этот вопрос довольно старый, но он по-прежнему борется с моим модемом. Я использую С# atm для доступа к своему модему.

То, как я подключился к модему, был как указано выше System.IO.Ports.SerialPort. Вы должны сказать, с каким COM-портом подключиться.

Предполагая, что у вас установлены стандартные драйверы для установленного модема, и он подключен к компьютеру, вы можете получить список открытых COM-портов, используя:

string[] com_ports = SerialPort.GetPortNames();

Предполагая, что вы хотите подключиться к первому COM-порту из вышеприведенного массива. Открытие порта прост как:

SerialPort port = new SerialPort();
port.portname = com_ports[0];
// ... Insert other port parameters
port.Open();

Написание команд модему выполняется так же, как:

port.write("some command");

И ответ возвращается:

String response = port.ReadExisting();

.. Не забудьте добавить "\r" в конец всех команд модему. Принял мне день, чтобы узнать, почему-то, почему мой модем не ответил на мою команду...: -)

1

Не зная подробностей конкретного модема, о котором вы говорите, общий подход к общению с модемами заключается в том, чтобы открыть соединение с последовательным портом и поговорить с модемом в виде обычного текста. Обычно используется некоторый вариант набор команд Hayes. Для .NET вы можете обратиться к System.IO.Ports.SerialPort (см. MSDN). Параметры подключения (скорость передачи, бит данных, стоп-биты, четность, управление потоком) зависят от модема, но хорошим началом является попытка 57600, 8 бит данных, 1 стоповый бит, контроль четности и аппаратного потока; это типичные параметры. Имя порта сильно зависит от того, как оно связано с вашей системой, но хорошее место для поиска, если вы не знаете, является диспетчером устройств Windows в COM-портах.

0
    serialPort1 = new EnhancedSerialPort();
    serialPort1.PortName ="COM 11";  // check it in your case
    serialPort1.BaudRate = 115200; //suggested
    recievingBuffer = "";
    serialPort1.ReadTimeout = 400;
    serialPort1.WriteTimeout = 400;

для уведомления о входящих звонках: -

recievingBuffer + = serialPort1.ReadExisting();

чтобы активировать вашу GSM-отправку следующей команды: -

serialPort1.Write( "AT\г\п" );

Ещё вопросы

Сообщество Overcoder
Наверх
Меню