Поддержание последовательного порта Bluetooth в Windows Mobile 6.0 после выключения / приостановки - PullRequest
0 голосов
/ 15 октября 2010

Я столкнулся с неожиданным поведением во время отладки программы WinMo 6 прошлой ночью, и мне интересно, видел ли я сон.Но сначала немного контекста.

Программа связывается через последовательный порт с устройством GPS.Он использует либо физический порт с кабелем, а также пытается через Bluetooth.После приостановки или отключения питания мне не нужно закрывать и снова открывать порт, если он использовал физическое соединение.Однако, если используется Bluetooth, мне нужно переподключиться: никакие байты не передаются со старым дескриптором.Повторное открытие занимает около 6 или 7 секунд, поэтому приложение не может быть использовано сразу после приостановки по Bluetooth.

Однако я помню одну серию отладки, в которой мой последовательный порт Bluetooth был бы действующим и работающим после несколькихциклы выключения / включения, и это меня приятно удивило.Я не могу воспроизвести поведение сейчас.Была ли это ошибка в драйвере BT?

Любые намеки, которые у вас есть о конфигурациях или API, которые можно попробовать, были бы хороши, если вы когда-нибудь заставили это работать.

1 Ответ

1 голос
/ 15 октября 2010

Протокол Bluetooth разработан таким образом, что между устройством GPD и устройством Windows должна быть связь не реже одного раза в несколько секунд.Если связь отсутствует, связь истекает по времени и должна быть установлена ​​заново с нуля.

И, во-вторых, существует способ, которым вы выполняете цикл питания.Правильно реализованный стек Bluetooth явно закроет все открытые соединения, если он перейдет в состояние отключения питания обычным способом.

Короче говоря, соединение Bluetooth не предназначено для выживания в течение цикла питания, поэтомуВаша программа должна быть готова восстановить соединение с удаленным устройством Bluetooth после отключения питания.

...