Я вижу, что этот вопрос довольно старый, но борется с моим собственным модемом по тем же причинам. Я использую 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();
Запись команд в модем так же проста, как:
port.write("some command");
И ответ возвращается:
String response = port.ReadExisting();
.. Просто не забудьте добавить "\r"
в конец всех команд модема. Мне потребовался день, чтобы узнать, почему мой модем не отвечает на мою команду ...: -)