2013-08-13 2 views
6

Я работаю над прошивкой устройства, которое будет подключаться к ПК с использованием Bluetooth в режиме эмуляции последовательного порта.Есть ответ на AT + GCAP & co. сказать «Я не модем, уходи»?

Во время тестирования я узнал, что модем-менеджер на Linux «помогает» пытается обнаружить его как модем, отправив команду AT+GCAP; к этому, в настоящее время мое устройство отвечает чем-то вроде INVALIDCMD AT+GCAP. Это правильный ответ для моего протокола, но, очевидно, это не ответ AT, поэтому modem-manager не удовлетворен и снова пытается с AT+GCAP и другими материалами, связанными с модемом.

Теперь, я нашел некоторые обходные пути для модема-менеджера (см here и, таким образом, here, в частности udev rule method), но:

  • они не очень прочные (я должен сделать пользовательские правила Udev, что может сломаться, если мы изменим модуль Bluetooth);
  • Я боюсь, что не только модем-менеджер, но и подобные функции программного обеспечения/ОС (например, в Windows или OS X) могут дать мне подобные неприятности.

Кроме того, имея полный контроль над прошивкой, я может добавить специальный случай для AT+GCAP и аналогичного материала; поэтому, придя к моему вопросу:

Есть ли стандартный/безопасный ответ на AT+GCAP и другие подобные модем-зондирующие запросы, чтобы сказать «Я не модем, уходите и оставите меня в покое?»

+0

Правильный ответ на команду модема, если вы не являетесь модемом, - * ничего *. Он должен сдаться после попытки пару раз. «ERROR» - это ответ на команду AT, которую вы не реализуете. –

+0

@HansPassant: так, если я просто игнорирую все, что начинается с 'AT +', я должен быть в безопасности? Есть ли другие сообщения, связанные с модемным зондированием, о которых я должен знать? –

+0

Вы должны игнорировать все, что начинается с AT, некоторые из них не имеют + –

ответ

2

(сделав ответ из комментариев)

Для того, чтобы указать я не понимаю AT команд на всех (ака Я не модем) правильный ответ на все принятые AT команды должны быть тишины.


Для того, чтобы указать я не понимаю, именно этот AT команды правильный ответ должен быть ERROR.

Все, что между ними, приведет к реализации определенного поведения объекта, отправляющего AT-команды. Некоторые из них, возможно, сразу уйдут, в то время как диспетчер модема, по-видимому, настроен на повторную отправку команды, пока не получит «правильный» ответ.