Huawei komunikacja C#
Moderator: Moderatorzy
-
- Początkujący użytkownik forum
- Posty: 9
- Rejestracja: 2014-03-20, 12:39
- Lokalizacja: Warszawa
Huawei komunikacja C#
Witam,
z modemami, routerami nie mam do czynienia na co dzień, więc szukam tutaj pomocy.
Kupiłem sobie modem Huawei e173u-2.
Napisałem prosty program w C# consolowy i okienkowy, który łączy się z COM modemu, otwiera go i ciska w niego komendą AT. Program oczekuje na odpowiedź urządzenia, gdy ją otrzyma ma ją wyświetlić, odpowiednio w consoli lub w okienku. Problem w tym, że wysyłam różne komendy AT, jednak nie otrzymałem jeszcze żadnej odpowiedzi do mojego modemiku Szukam przyczyny czemu tak się dzieję.
Komendy AT wysyłam jako STRINGI poleceniem: port.Write("AT^CPBR=?"); .
Czy ktoś może podpowiedzieć gdzie szukać rozwiązania mojego problemu?
Pozdrawiam serdecznie
z modemami, routerami nie mam do czynienia na co dzień, więc szukam tutaj pomocy.
Kupiłem sobie modem Huawei e173u-2.
Napisałem prosty program w C# consolowy i okienkowy, który łączy się z COM modemu, otwiera go i ciska w niego komendą AT. Program oczekuje na odpowiedź urządzenia, gdy ją otrzyma ma ją wyświetlić, odpowiednio w consoli lub w okienku. Problem w tym, że wysyłam różne komendy AT, jednak nie otrzymałem jeszcze żadnej odpowiedzi do mojego modemiku Szukam przyczyny czemu tak się dzieję.
Komendy AT wysyłam jako STRINGI poleceniem: port.Write("AT^CPBR=?"); .
Czy ktoś może podpowiedzieć gdzie szukać rozwiązania mojego problemu?
Pozdrawiam serdecznie
Mikrokontrolery C,
Aplikacje Windows C#
Konstruowanie układów elektronicznych
Aplikacje Windows C#
Konstruowanie układów elektronicznych
- wojteks
- *** Administrator ***
- Posty: 26132
- Rejestracja: 2007-12-02, 11:51
- Lokalizacja: PL
Re: Huawei komunikacja C#
Może wysyłasz na zły port, odpowiedzi pojawiają się tylko na jednym z dostępnych portów (PC UI interface czy jakoś tak).bloniak91 pisze:Szukam przyczyny czemu tak się dzieję.
Sprawdź jakimś terminalem (putty przykładowo) na którym porcie COM dostaniesz odpowiedź z modemu.
Nie pomagam na PW!
-
- Początkujący użytkownik forum
- Posty: 9
- Rejestracja: 2014-03-20, 12:39
- Lokalizacja: Warszawa
Re: Huawei komunikacja C#
Dzięki za odpowiedź.
Po podłączeniu modemu pojawiają mi się 2 COMY, które widzę w menedżerze urządzeń.
Z kolei, gdy wyświetlę dostępne porty, które wyszukuję własnym programem, który napisałem żeby wyszukiwał mi własnie podłączone COM, wyświetla mi on, że po podłączeniu modemu dostępne są 3 nowe COMy!
Nie znam się na modemach, mało czytałem (przyznam się bez bicia), ale wydaję mi się, że właśnie ten 3, niewidoczny jest odpowiedzialny za połączenie z internetem.
Wracając do tematu, na tych 3 COMach, które udało mi się określić, że są od modemu nie zachodzi żadna rekcja po wysłaniu komendy. Dokładniej:
na 1 z pojawiających się COM, podobnie jak i na 3 program się zawiesza, ponieważ nie może doczekać się odpowiedzi, natomiast przy 2 COM, odpowiedź jakaś następuje, program działa dalej, ale wyświetla pustą linię w konsoli (w aplikacji okienkowej puste pole tekstowe).
Dzisiaj już mi się nie chce, ale jutro sprawdzę to za pomocą putty, oraz jakiegoś podglądacza COM, czy zachodzi jakaś wymiana danych.
Pozdrawiam
Po podłączeniu modemu pojawiają mi się 2 COMY, które widzę w menedżerze urządzeń.
Z kolei, gdy wyświetlę dostępne porty, które wyszukuję własnym programem, który napisałem żeby wyszukiwał mi własnie podłączone COM, wyświetla mi on, że po podłączeniu modemu dostępne są 3 nowe COMy!
Nie znam się na modemach, mało czytałem (przyznam się bez bicia), ale wydaję mi się, że właśnie ten 3, niewidoczny jest odpowiedzialny za połączenie z internetem.
Wracając do tematu, na tych 3 COMach, które udało mi się określić, że są od modemu nie zachodzi żadna rekcja po wysłaniu komendy. Dokładniej:
na 1 z pojawiających się COM, podobnie jak i na 3 program się zawiesza, ponieważ nie może doczekać się odpowiedzi, natomiast przy 2 COM, odpowiedź jakaś następuje, program działa dalej, ale wyświetla pustą linię w konsoli (w aplikacji okienkowej puste pole tekstowe).
Dzisiaj już mi się nie chce, ale jutro sprawdzę to za pomocą putty, oraz jakiegoś podglądacza COM, czy zachodzi jakaś wymiana danych.
Pozdrawiam
Mikrokontrolery C,
Aplikacje Windows C#
Konstruowanie układów elektronicznych
Aplikacje Windows C#
Konstruowanie układów elektronicznych
-
- *Mistrz bezprzewodowy*
- Posty: 22031
- Rejestracja: 2006-08-14, 17:59
- Lokalizacja: Polska
Re: Huawei komunikacja C#
Jakie nazwy mają poszczególne interfejsy COM w managerze urządzeń?
-
- Specjalista bezprzewodowy-senior
- Posty: 368
- Rejestracja: 2012-08-01, 23:52
- Lokalizacja: śląsk
Re: Huawei komunikacja C#
Wklej tu ten kod.
Nie cały - wystarczą fragmenty (linie) gdzie port jest otwierany, jest zapis do portu i odczyt z portu.
Jakiej biblioteki używasz ?
Czy w tej funkcji do otwierania podaje się parametry portu (prędkość parzystość bity stopu itp)?
Nie cały - wystarczą fragmenty (linie) gdzie port jest otwierany, jest zapis do portu i odczyt z portu.
Jakiej biblioteki używasz ?
Czy w tej funkcji do otwierania podaje się parametry portu (prędkość parzystość bity stopu itp)?
-
- Początkujący użytkownik forum
- Posty: 9
- Rejestracja: 2014-03-20, 12:39
- Lokalizacja: Warszawa
Re: Huawei komunikacja C#
Tak, ustawiam prędkość, bit stopu,parzystość. Próbowałem również z różnymi prędkościami.
Korzystam z biblioteki System.IO.Ports.
Kod
Oczywiście COMy, mają nazwę od 12 do 14 włącznie. Na wszystkich próbowałem.
[ Dodano: 2014-03-21, 07:24 ]
Przepraszam, nie widziałem postu kolegi ja.michał.
COMY nazywają się:
COM 12- Huawei Mobile Connect - 3G Application Interface,
COM 13- Huawei Mobile Connect - 3G PC UI Interface.
Tak jak wspomniałem wyżej, COM13 coś tam wysyłał na moje zapytanie, ale nie udało mi się tego odczytać.
Korzystam z biblioteki System.IO.Ports.
Kod
Kod: Zaznacz cały
SerialPort port = new SerialPort(
"COM13", 19200, Parity.None, 8, StopBits.One);
port.Open();
port.Write("AT^SPN=1\n");
var a = port.ReadLine();
[ Dodano: 2014-03-21, 07:24 ]
Przepraszam, nie widziałem postu kolegi ja.michał.
COMY nazywają się:
COM 12- Huawei Mobile Connect - 3G Application Interface,
COM 13- Huawei Mobile Connect - 3G PC UI Interface.
Tak jak wspomniałem wyżej, COM13 coś tam wysyłał na moje zapytanie, ale nie udało mi się tego odczytać.
Mikrokontrolery C,
Aplikacje Windows C#
Konstruowanie układów elektronicznych
Aplikacje Windows C#
Konstruowanie układów elektronicznych
- Jo_gurt
- Guru bezprzewodowy
- Posty: 16330
- Rejestracja: 2007-11-16, 21:49
- Lokalizacja: Lublin
Re: Huawei komunikacja C#
Próbujesz czytać synchronicznie i bez pętli. Istnieje spora szansa, że po prostu nie odczytujesz odpowiedzi w odpowiednim momencie.
-
- Początkujący użytkownik forum
- Posty: 9
- Rejestracja: 2014-03-20, 12:39
- Lokalizacja: Warszawa
Re: Huawei komunikacja C#
Dobra, wrzuciłem odczytywanie w nieelegancką, nieskończoną pętlę i coś tam łapie, ale nie za każdym razem.
Następne pytanie:
Czy to prawda, że każda komenda AT musi się kończyć znakiem nowej linii żeby byłą odebrana przez urządzenie?
Na komendę:
AT^SPN=1 - Wyświetlenie tekstu, który w telefonach pojawia się zamiast nazwy operatora sieci, np. "Orange" w niektórych starszych kartach, "PLAY" - również w zależności ok karty SIM, czy też "wpMobi", które pojawiało się na kartach tego operatora.
Jakiej odpowiedzi powinienem się spodziewać? Otrzymuję ^RSSI:17 lub ^RSSI:20.
Następne pytanie:
Czy to prawda, że każda komenda AT musi się kończyć znakiem nowej linii żeby byłą odebrana przez urządzenie?
Na komendę:
AT^SPN=1 - Wyświetlenie tekstu, który w telefonach pojawia się zamiast nazwy operatora sieci, np. "Orange" w niektórych starszych kartach, "PLAY" - również w zależności ok karty SIM, czy też "wpMobi", które pojawiało się na kartach tego operatora.
Jakiej odpowiedzi powinienem się spodziewać? Otrzymuję ^RSSI:17 lub ^RSSI:20.
Mikrokontrolery C,
Aplikacje Windows C#
Konstruowanie układów elektronicznych
Aplikacje Windows C#
Konstruowanie układów elektronicznych
- Jo_gurt
- Guru bezprzewodowy
- Posty: 16330
- Rejestracja: 2007-11-16, 21:49
- Lokalizacja: Lublin
Re: Huawei komunikacja C#
Zrób asynchronicznie, w osobnym wątku i będzie to działać poprawnie.bloniak91 pisze:Dobra, wrzuciłem odczytywanie w nieelegancką, nieskończoną pętlę i coś tam łapie, ale nie za każdym razem.
-
- Początkujący użytkownik forum
- Posty: 9
- Rejestracja: 2014-03-20, 12:39
- Lokalizacja: Warszawa
Re: Huawei komunikacja C#
A jeszcze z innej beczki.
Mój modem ma podstawowy program do obsługi- można w nim wybierać połączenia głosowe, wysyłać smsy, zapisywać numery itd.
Gdy podłączam urządzenie, z automatu ten program startuje i blokuje wejścia do COMów modemu. Jest pewien moment, po włączeniu modemu i przed odpaleniem się tego programu, że gdy uruchomię swój program, komendy "działają". Przykładowo:
wysyłam komendę: ATD 601123123; Program Mobile Partner włącza się i dopóki nie zamknę swojego, działającego programu to nie ma żadnej reakcji. Po zamknięciu mojej appki, dzięki uprzejmości "Mobile Partner" oczekiwane połączenie w końcu się nawiązuje.
Jeżeli odinstaluje Mobile Partner, system nie widzi COM modemu, więc co mam zrobić, żeby ten program nie blokował mojego? Czy do nawiązania połączenia wystarczy w/w komenda? Dlaczego dopiero Mobile Partner potrafi nawiązać to połączenie?
Czy istnieje jakaś komenda inicjująca modem?
[ Dodano: 2014-03-21, 14:06 ]
Ok, wszystko w miarę hula. Do każdej komendy należy dodać znak powrotu karetki \r.
Mój modem ma podstawowy program do obsługi- można w nim wybierać połączenia głosowe, wysyłać smsy, zapisywać numery itd.
Gdy podłączam urządzenie, z automatu ten program startuje i blokuje wejścia do COMów modemu. Jest pewien moment, po włączeniu modemu i przed odpaleniem się tego programu, że gdy uruchomię swój program, komendy "działają". Przykładowo:
wysyłam komendę: ATD 601123123; Program Mobile Partner włącza się i dopóki nie zamknę swojego, działającego programu to nie ma żadnej reakcji. Po zamknięciu mojej appki, dzięki uprzejmości "Mobile Partner" oczekiwane połączenie w końcu się nawiązuje.
Jeżeli odinstaluje Mobile Partner, system nie widzi COM modemu, więc co mam zrobić, żeby ten program nie blokował mojego? Czy do nawiązania połączenia wystarczy w/w komenda? Dlaczego dopiero Mobile Partner potrafi nawiązać to połączenie?
Co przez to rozumiesz?Zrób asynchronicznie, w osobnym wątku i będzie to działać poprawnie.
Czy istnieje jakaś komenda inicjująca modem?
[ Dodano: 2014-03-21, 14:06 ]
Ok, wszystko w miarę hula. Do każdej komendy należy dodać znak powrotu karetki \r.
Mikrokontrolery C,
Aplikacje Windows C#
Konstruowanie układów elektronicznych
Aplikacje Windows C#
Konstruowanie układów elektronicznych
-
- Specjalista bezprzewodowy-senior
- Posty: 368
- Rejestracja: 2012-08-01, 23:52
- Lokalizacja: śląsk
Re: Huawei komunikacja C#
Zapewne nikt ci nie powie, trzeba eksperymentować.bloniak91 pisze:Na komendę:
AT^SPN=1 - Wyświetlenie tekstu, który w telefonach pojawia się zamiast nazwy operatora sieci, np. "Orange" w niektórych starszych kartach, "PLAY" - również w zależności ok karty SIM, czy też "wpMobi", które pojawiało się na kartach tego operatora.
Jakiej odpowiedzi powinienem się spodziewać? Otrzymuję ^RSSI:17 lub ^RSSI:20.
U mnie to działa tak (karta z Orange, modem E3131).
Kod: Zaznacz cały
AT^SPN=0
Odpowiedź:
AT^SPN=0
^SPN:0,0,Orange
OK
AT^SPN=1
Odpowiedź:
AT^SPN=1
^SPN:0,0,Orange
OK
- YaHooo
- Guru bezprzewodowy
- Posty: 17761
- Rejestracja: 2008-01-02, 14:38
- Lokalizacja: Białystok
Re: Huawei komunikacja C#
To jest informacja wysyłana automatycznie przez modem. Informuje ona o aktualnej wartości siły sygnału jaką modem odbiera. Ogólnie to Huawei'e wysyłają jeszcze kilka innych takich poleceń, niektóre się pojawiają podczas nawiązanego połączenia z internetem.bloniak91 pisze: Jakiej odpowiedzi powinienem się spodziewać? Otrzymuję ^RSSI:17 lub ^RSSI:20.
Ogólnie to się konfiguruje za pomocą rejestru S3 jak wygląda znak kończący polecenie.bloniak91 pisze: Ok, wszystko w miarę hula. Do każdej komendy należy dodać znak powrotu karetki \r.
Nie, to jest sposób komunikacji z modemem. Synchronicznie, to jest tak, że wysyłasz dane funkcją Write(), po niej wywołujesz Read() i ona czeka aż modem odpowie i wtedy program idzie dalej. W przypadku tym jeśli wywołujesz komendę która trwa długo (np. wyszukiwanie operatorów może trwać 20s) to program zamarza i ma się wrażenie, że się zawiesił.bloniak91 pisze: Co przez to rozumiesz?
Czy istnieje jakaś komenda inicjująca modem?
Metoda asynchroniczna polega na tym, że piszesz do modemu metodą Write() i koniec. Masz dodatkowo jakiś mechanizm (np. zdarzenie czy drugi wątek) które jest wywoływane w przypadku gdy modem wyśle dane. Wtedy na czas oczekiwania na dane program nie zawiesza się, ale może robić inne rzeczy.
Pozdrawiam YaHooo
> FAQ < > Limitowanie TTL < > Filtrowanie MAC < > Limit - miniFAQ <
> Udostępnianie połączenia internetowego iPlus w trybie Ad-hoc < > Połączenie Ad-hoc <
(iPlus7GB-30%) + (Sierra Wireless AC881) + (HP Compaq nx7300) + (200m od BTS'a) = (600kB/s)
> FAQ < > Limitowanie TTL < > Filtrowanie MAC < > Limit - miniFAQ <
> Udostępnianie połączenia internetowego iPlus w trybie Ad-hoc < > Połączenie Ad-hoc <
(iPlus7GB-30%) + (Sierra Wireless AC881) + (HP Compaq nx7300) + (200m od BTS'a) = (600kB/s)
-
- *Mistrz bezprzewodowy*
- Posty: 22031
- Rejestracja: 2006-08-14, 17:59
- Lokalizacja: Polska
Re: Huawei komunikacja C#
To jest odpowiedzialne za komunikację AT.bloniak91 pisze: COM 12- Huawei Mobile Connect - 3G Application Interface,
-
- Początkujący użytkownik forum
- Posty: 9
- Rejestracja: 2014-03-20, 12:39
- Lokalizacja: Warszawa
Re: Huawei komunikacja C#
Dzięki za wszystkie odpowiedzi!
Mam jeszcze pytanie odnośnie ustawienia głośnika. Gdy wykonuje połączenie, nic nie słychać. Trzeba ustawić żeby dźwięk był przenoszony na głośniki podłączone do komputera. Szukam takiej komendy w opracowaniu p. J. Bogusza, ale nic konkretnego nie mogę znaleźć. Ktoś coś wie na ten temat, jak to się ustawia?
Mam jeszcze pytanie odnośnie ustawienia głośnika. Gdy wykonuje połączenie, nic nie słychać. Trzeba ustawić żeby dźwięk był przenoszony na głośniki podłączone do komputera. Szukam takiej komendy w opracowaniu p. J. Bogusza, ale nic konkretnego nie mogę znaleźć. Ktoś coś wie na ten temat, jak to się ustawia?
Mikrokontrolery C,
Aplikacje Windows C#
Konstruowanie układów elektronicznych
Aplikacje Windows C#
Konstruowanie układów elektronicznych
-
- Specjalista bezprzewodowy-senior
- Posty: 368
- Rejestracja: 2012-08-01, 23:52
- Lokalizacja: śląsk
Re: Huawei komunikacja C#
ATMx i ATLxbloniak91 pisze: Mam jeszcze pytanie odnośnie ustawienia głośnika.
http://leksykot.top.hell.pl/lx3/6/modem-hayes_at#ATMn
http://leksykot.top.hell.pl/lx3/6/modem-hayes_at#ATLn
Tylko że modem musi mieć wbudowany głośnik, tak jak stare fax/modemy łączące się po linii telefonicznej.
modemy GSM chyba głośników nie mają
Pamiętam te czasy jak się łączyło pod 0202122 z prędkością max 50 kB,
i modem wtedy dawał takie odgłosy:
http://www.youtube.com/watch?v=gsNaR6FR ... r_embedded
- YaHooo
- Guru bezprzewodowy
- Posty: 17761
- Rejestracja: 2008-01-02, 14:38
- Lokalizacja: Białystok
Re: Huawei komunikacja C#
A raczej na pewnokordirko pisze: modemy GSM chyba głośników nie mają
Pozdrawiam YaHooo
> FAQ < > Limitowanie TTL < > Filtrowanie MAC < > Limit - miniFAQ <
> Udostępnianie połączenia internetowego iPlus w trybie Ad-hoc < > Połączenie Ad-hoc <
(iPlus7GB-30%) + (Sierra Wireless AC881) + (HP Compaq nx7300) + (200m od BTS'a) = (600kB/s)
> FAQ < > Limitowanie TTL < > Filtrowanie MAC < > Limit - miniFAQ <
> Udostępnianie połączenia internetowego iPlus w trybie Ad-hoc < > Połączenie Ad-hoc <
(iPlus7GB-30%) + (Sierra Wireless AC881) + (HP Compaq nx7300) + (200m od BTS'a) = (600kB/s)
-
- Początkujący użytkownik forum
- Posty: 9
- Rejestracja: 2014-03-20, 12:39
- Lokalizacja: Warszawa
Re: Huawei komunikacja C#
Podane komendy nie działają. Wysyłam to w ten sposób:kordirko pisze: ATMx i ATLx
http://leksykot.top.hell.pl/lx3/6/modem-hayes_at#ATMn
http://leksykot.top.hell.pl/lx3/6/modem-hayes_at#ATLn
Tylko że modem musi mieć wbudowany głośnik, tak jak stare fax/modemy łączące się po linii telefonicznej.
modemy GSM chyba głośników nie mają
Kod: Zaznacz cały
port.Write("ATM0\r");
port.Write("ATL3\r");
port.Write("ATD 506064617;\r");
[ Dodano: 2014-03-27, 14:39 ]
Mam pytanko. Czy "dźwięk rozmowy" jest wysyłany przez modem jako strumienie audio? Rozwiązaniem mojej zagadki jest przechwycenie tych strumieni i ich odtworzenie? Ktoś coś na ten temat wie? są one wysyłane na port Huawei Mobile Connect - 3G Application Interface, przynajmniej tak mi się wydaję. Proszę o potwierdzenie moich domysłów.
btw. czuję, że ciężka przeprawa mnie z tym dźwiękiem czeka... Trzeba łapać strumienie, odtwarzać je na żywo. Ciekawy jestem opóźnień jakie z tego tytułu wystąpią. A tak sympatycznie było z komendami AT
Mikrokontrolery C,
Aplikacje Windows C#
Konstruowanie układów elektronicznych
Aplikacje Windows C#
Konstruowanie układów elektronicznych
- YaHooo
- Guru bezprzewodowy
- Posty: 17761
- Rejestracja: 2008-01-02, 14:38
- Lokalizacja: Białystok
Re: Huawei komunikacja C#
Bo nie mają prawa zadziałać. W modemach GSM są obsługiwane tylko dla zachowania wstecznej kompatybilności ze standardem.bloniak91 pisze:Podane komendy nie działają.
Nie, bo niby jak? Nie ma dodatkowych sterowników przecież. A komunikacja z modemem następuje tylko i wyłącznie po porcie COM.bloniak91 pisze:Czy "dźwięk rozmowy" jest wysyłany przez modem jako strumienie audio?
Ogólnie to co chcesz zrobić to trudna sprawa, bo zapewne dźwięki nie są wysyłane w sposób standardowy, ale za pomocą jakiegoś kodowania. Trzeba by było je najpierw rozpracować (czytaj złamać Mobile Partner jak on to przechwytuje) aby potem samemu obsłużyć komunikację z modemem.
Pozdrawiam YaHooo
> FAQ < > Limitowanie TTL < > Filtrowanie MAC < > Limit - miniFAQ <
> Udostępnianie połączenia internetowego iPlus w trybie Ad-hoc < > Połączenie Ad-hoc <
(iPlus7GB-30%) + (Sierra Wireless AC881) + (HP Compaq nx7300) + (200m od BTS'a) = (600kB/s)
> FAQ < > Limitowanie TTL < > Filtrowanie MAC < > Limit - miniFAQ <
> Udostępnianie połączenia internetowego iPlus w trybie Ad-hoc < > Połączenie Ad-hoc <
(iPlus7GB-30%) + (Sierra Wireless AC881) + (HP Compaq nx7300) + (200m od BTS'a) = (600kB/s)