2009-08-31 2 views
2

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

модель модема

GSM: MOD 9001 BENQ GSM/GPRS модем

Я не имею любую библиотеку, чтобы взаимодействовать с модемом

+0

Не могли бы вы предоставить немного более подробную информацию? В частности, какая модель GSM (make/model), какие интерфейсы у вас есть с помощью кода (библиотека .NET/COM Interop) и т. Д. –

ответ

1

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

1

Я вижу, что этот вопрос довольно старый, но воюет с моим собственным модемом по тем же причинам. Я использую C# 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(); 

Запись команд модема как Simples как:

port.write("some command"); 

И ответ пришедшего обратно:

String response = port.ReadExisting(); 

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

Смежные вопросы