2012-06-22 15 views
11

Mam modem USB D-Link DWM-156 3G, który chcę wysłać polecenia AT z mojej aplikacji (C# .NET 4.0 uruchomiony w systemie Windows XP SP3).Jak komunikować się z modemem USB 3G?

Po podłączyć i instalacji sterowników modemu przedstawia się następująco:

W Device Manager, dwa porty szeregowe w brzmieniu:

  • D-Link HSPADataCard Diagnostics Interface (COM4)
  • D-lINK HSPADataCard NMEA (COM5)

W panelu sterowania Opcje telefonu i modemu, nowy modem w brzmieniu:

  • D-Link HSPADataCard Proprietary USB Modem (w załączeniu do COM19)

PYTANIE: Który port COM powinienem używać do wysyłania komend AT i z jaką prędkością?


Próbowałem wszystkie trzy porty w różnym tempie, ale bez powodzenia w ogóle.

Aby dowiedzieć się, ja potem zainstalował „Free Serial Port Monitor” sniffer aplikację, chcąc być w stanie monitorować komunikację z ustility D-Link, jak otwiera i zamyka połączenia internetowego (który działa OK).

Na początku, aplikacja sniffer pyta mnie, który port do monitorowania i daje mi następujące nazwy portów do wyboru:

  • "Agere Systems HDA Modem",
  • „D-Link HSPADataCard Proprietary USB modem”,
  • "COM3"
  • "COM4"
  • "COM5"
  • ... i kilka innych, w tym "COM19".

Wybór „D-Link ...” nazwa działa OK, teraz mogę oglądać wszystkich komend AT używany, ponieważ stało, ale nie można ustalić, w którym szybkość transmisji służy port. Co więcej, ani COM4, ​​COM5, ani COM19 nie działają w ten sposób (w takich portach nic się nie dzieje).

Teraz chciałbym użyć SerialPort klasę w .NET otworzyć „D-Link ...” Port i rozmawiać z modemem USB, ale SerialPort klasa wymaga nazwę portu do zaczyna się od "COM", w przeciwnym razie zostanie zgłoszony wyjątek. Ale żaden ze zwykłych portów COM nie działa. I nadal nie wiem, której prędkości transmisji użyć.Jestem prawie zdezorientowany i zamknięty tutaj - co mogę zrobić, żeby dojść do sedna?

+0

Agere Systems Modem HDA to COM1 i D-Link HSPADataCard Własnym modemem USB jest prawdopodobnie COM2. Zawsze możesz skontaktować się z D-Link z tymi pytaniami, ponieważ nie zapewnimy Ci dokładnych rozwiązań, o ile nie będziemy własnymi urządzeniami. –

+1

+1: Muszę też zrobić coś podobnego z ZTE MF190. – menjaraz

Odpowiedz

7

Ok ludzie, dziękuję za wszystkie swoje myśli i reakcję. Zrobiłem trochę więcej badań i wreszcie zdałem sobie sprawę, że aby zrobić to, co chciałem, nie musiałem w ogóle zajmować się portami szeregowymi i komendami AT. Wystarczyło wykonać kilka wywołań RAS systemu Windows.

Gdybym był nieco bardziej szczegółowy w moim pytaniu o to, co chciałem zrobić z poleceniami AT, na pewno powiedziałbyś mi o RAS dawno temu!

Znalazłem ładną bibliotekę .Net (DotRas), która zawiera natywny system Windows RAS do użytku z kodu zarządzanego, i wydaje się, że robi to, czego potrzebuję (wybierz połączenie modemowe 3G z kodu, z dowolnym modemem 3G I dołączać).

Jeszcze raz dziękuję za poświęcony czas.

+1

+1: Niektóre fragmenty kodu robiącego to w sposób DotRas są mile widziane :-) – menjaraz

+0

czy możesz podać przykładowy kod wysyłania komend AT za pomocą DotRas? –

+0

DotRas nie odsłania warstwy szeregowej, Answer_42. Korzystanie z klas SerialPort .NET jest wystarczające. To, co jest warte 9600 bps, wydaje się być popularną "fałszywą" szybkością dla modemów komórkowych USB. –

Powiązane problemy