2013-08-13 17 views
6

Pracuję nad oprogramowaniem układowym urządzenia, które ma być połączone z komputerami za pomocą Bluetooth w trybie emulacji portu szeregowego.Czy jest odpowiedź na AT + GCAP & co. powiedzieć "Nie jestem modemem, odejdź"?

Podczas testów dowiedziałem się, że modem-manager w Linuksie "pomocnie" próbuje wykryć go jako modem wysyłając polecenie AT+GCAP; na to obecnie moje urządzenie odpowiada czymś w rodzaju INVALIDCMD AT+GCAP. To jest poprawna odpowiedź dla mojego protokołu, ale oczywiście nie jest to odpowiedź AT, więc modem-manager nie jest usatysfakcjonowany i próbuje ponownie z AT+GCAP i innymi rzeczami związanymi z modemem.

Teraz znalazłem pewne obejścia modem-manager (patrz here a zatem here, w szczególności udev rule method), ale:

  • nie są one bardzo wytrzymałe (mam zrobić niestandardową regułę udev że może się zepsuć, jeśli zmienimy moduł Bluetooth);
  • Obawiam się, że nie tylko modem-manager, ale podobne funkcje oprogramowania/systemu operacyjnego (np. W systemie Windows lub OS X) mogą powodować podobne problemy.

Ponadto, mając pełną kontrolę nad oprogramowaniem, ja może dodać szczególny przypadek dla AT+GCAP i podobnych rzeczy; tak, przychodząc na moje pytanie:

Czy istnieje standardowa/bezpieczna odpowiedź na AT+GCAP i inne podobne zapytania do modemów, które mówią "Nie jestem modemem, odejdź i zostaw mnie w spokoju?"

+0

Właściwą odpowiedzią na polecenie modemu, jeśli nie jesteś modemem jest * nic *. Powinien się poddać po kilkukrotnej próbie. "BŁĄD" jest odpowiedzią na polecenie AT, którego nie implementujesz. –

+0

@HansPassant: więc, jeśli po prostu zignoruję wszystko, co zaczyna się od 'AT + ', powinienem być bezpieczny? Czy są inne wiadomości, które powinienem sprawdzać modem? –

+0

Powinieneś zignorować wszystko, co zaczyna się od AT, niektóre z nich nie mają + –

Odpowiedz

2

(making odpowiedź Spośród komentarzy)

W celu wskazania Nie rozumiem żadnych komend AT w ogóle (aka nie jestem modem) poprawne odpowiedzi na wszelkie wpłynęło polecenia powinny być cisza.


W celu wskazania Nie rozumiem tej konkretnej komendy AT prawidłowa odpowiedź powinna być ERROR.

Wszystko pomiędzy wyzwala określone zachowanie podmiotu wysyłającego polecenia AT. Niektórzy prawdopodobnie zrezygnują od razu, podczas gdy modem-menedżer najwyraźniej jest ustawiony na ponawianie wysyłania polecenia, dopóki nie uzyska "właściwej" odpowiedzi.

Powiązane problemy