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?"
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. –
@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? –
Powinieneś zignorować wszystko, co zaczyna się od AT, niektóre z nich nie mają + –