2013-08-13 7 views
6

Sto lavorando al firmware di un dispositivo che verrà collegato ai PC tramite Bluetooth in modalità emulazione porta seriale.C'è una risposta a AT + GCAP & co. per dire "Non sono un modem, vai via"?

Durante il test, ho scoperto che il modem-manager su Linux "utilmente" prova a rilevarlo come modem, inviando il comando AT+GCAP; a questo, al momento il mio dispositivo risponde con qualcosa come INVALIDCMD AT+GCAP. Questa è la risposta corretta per il mio protocollo, ma ovviamente non è una risposta AT, quindi modem-manager non è soddisfatto e ci riprova con AT+GCAP e altre cose relative al modem.

Ora, ho trovato alcune soluzioni per modem-manager (vedi here e quindi here, in particolare la udev rule method), ma:

  • non sono estremamente robusti (devo fare una regola udev personalizzata che potrebbe rompersi se cambiamo il modulo Bluetooth);
  • Temo che non solo il gestore del modem, ma le funzionalità del software/sistema operativo simili (ad esempio su Windows o OS X) possano darmi fastidi simili.

Inoltre, avere il pieno controllo del firmware, io posso aggiungere un caso speciale per AT+GCAP e cose simili; così, venendo alla mia domanda: "Io non sono un modem, andare via e lasciami in pace"

C'è uno standard/risposta sicura a AT+GCAP e altre simili domande modem-sondaggio per dire

+0

La risposta corretta a un comando modem se non si è un modem è * niente *. Dovrebbe arrendersi dopo aver provato un paio di volte. "ERRORE" è una risposta a un comando AT che non implementa. –

+0

@HansPassant: quindi, se ignoro tutto ciò che inizia con 'AT +', dovrei essere al sicuro? Ci sono altri messaggi di verifica del modem di cui dovrei essere a conoscenza? –

+0

Dovresti ignorare tutto ciò che inizia con AT, alcuni di loro non hanno un + –

risposta

2

(facendo una risposta fuori delle osservazioni)

Al fine di indicare Non capisco comandi AT affatto (aka io non sono un modem) la risposta corretta ad ogni ricevuta AT i comandi dovrebbero essere il silenzio.


Al fine di indicare Non capisco questo particolare comando AT la risposta corretta dovrebbe essere ERROR.

Qualsiasi operazione tra di esse attiverà il comportamento definito dall'implementazione dell'entità che invia comandi AT. Alcuni si arrenderanno immediatamente mentre il modem-manager apparentemente è impostato per riprovare a inviare il comando fino a quando non ottiene una risposta "corretta".

Problemi correlati