Топология Bluetooth + Android + Scatternet - PullRequest
5 голосов
/ 26 июля 2011

У меня есть некоторые концептуальные проблемы с Bluetooth и Android. Как я уже исследовал, Bluetooth позволяет подключать до 7 ведомых устройств друг к другу к одному главному устройству, создавая сеть пикосети. Кроме того, BT позволяет ведущему устройству выступать в качестве ведомого устройства для другой пикосети, создавая сеть scatternet, в которой все устройства могут быть соединены между собой с использованием протокола верхнего уровня.

Мои вопросы касаются поведения Bluetooth и Android.

1) Как вы можете узнать в Android, что ваше устройство выступает в роли ведущего или подчиненного, или оно является подчиненным для другой пикосети, или подчиненное устройство подключено к двум мастерам, образующим интернет Scatternet?

2) Bluetooth позволяет только 7 активных подчиненных устройств на мастер, ранее выбранных во время сканирования запроса, и до 255 подчиненных устройств в режиме «парковки» (синхронизированное прослушивание мастера, но не активное). Как можно подключить к этому «парку» устройства? Только если один из активных отключится из-за разрыва связи, например, из-за чего может подключиться один «парк»?

3) Можно ли настроить на Android (или BlueZ через Android) устройство для работы в различных режимах, таких как «прослушивание» или «удержание» в целях энергопотребления?

4) Предоставляет ли Android API возможность вещания всем рабам одной и той же пикосети? Если это произойдет, я надеюсь, что это даст возможность отправлять пользовательские данные.

Большое спасибо за то, что уделили мне время.

Ответы [ 2 ]

4 голосов
/ 27 июля 2011

Для добавления - есть еще одна возможность для scatternet - устройство, выступающее в качестве подчиненного в более чем одной пикосети.

1) Как вы можете знать в Android, что ваше устройство выступает в качестве ведущего или подчиненного, или является ведущим, действующим в качестве подчиненного для другой пикосети, или подчинено, подключено к двум мастерам, образуяscatternet?

вы не можете - я не думаю, что существует публичный API - и идея в том, что для приложений это не должно иметь значения.

2) Только Bluetoothпозволяет 7 активных подчиненных устройств на ведущее устройство, ранее выбранных во время сканирования запроса, и до 255 ведомых устройств в режиме «парковка» (синхронизированное прослушивание ведущего, но не активное).Как можно подключить к этому «парку» устройства?Только если один из активных отключается, потому что, например, нарушена связь, например, один «парк»?

В основном - Bluetooth может подключаться и быть в активном соединении с до 7 устройствами, активное устройство можетзатем переведите его в режим парковки, и он может иметь большое количество устройств (более 255) в режимах парковки, поэтому устройство переходит в режим парковки из подключенного активного состояния и наоборот.Но опять же, в любой момент вы можете иметь только 7 активных устройств, поэтому ведущее устройство может управлять большим количеством устройств, оставляя (до 7) активным, оставаясь в покое и переключая их между активным и припаркованным режимами.

Сказав все это - больше не используйте режим парковки - он устарел в спецификации Bluetooth, а также подвержен множеству проблем взаимодействия.

3) Можно ли настроить на Android (или BlueZ через Android)устройство для работы в различных режимах, таких как «прослушивание» или «удержание» для целей энергопотребления?

Ничего в API приложения для этого не существует - но обычно устройства переключаются на прослушивание при неактивности (управляетсяосновной алгоритм управления политикой стека Bluetooth).Опять удержание используется редко - Sinff - лучший режим, обычно используемый для энергосбережения в Bluetooth.

4) Предоставляет ли API-интерфейс Android возможность вещания всем ведомым устройствам одной и той же пикосети?Если это произойдет, я надеюсь, что это даст возможность отправлять пользовательские данные.

Опять нет API для широковещания - но да, с Bluetooth можно транслировать на все активные и даже припаркованные устройства.Да, он также может отправлять пользовательские данные.

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

2 голосов
/ 20 августа 2013

Beddernet для Android , платформа с открытым исходным кодом, позволяющая общаться с большим количеством устройств.

Взгляните на это, может быть, может быть полезно в вашей ситуации.

https://code.google.com/p/beddernet/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...