Передача данных по Bluetooth между сопряженным Android и Raspberry PI

#android #mobile #bluetooth #transfer

#Android #Мобильный #bluetooth #передача

Вопрос:

Я работаю над проектом, в котором мне нужно передавать данные между Android и Raspberry pi через Bluetooth. Однако я новичок в этом, и у меня нет глубокого понимания того, что происходит при сопряжении двух устройств. Исходя из предположения, что два интересующих устройства уже сопряжены, где будет отправной точкой для программирования для такой задачи? Я читал о BluetoothSocket, но я все еще не уверен, с чего начать. Кто-нибудь может мне помочь, пожалуйста?

Заранее большое вам спасибо!

Ответ №1:

Я изучал эту же проблему, вот чтение, которое я нашел на своем конце. Я искал конкретный код на python, так что это угол первого, второй — C , но имеет действительно подробное введение.

https://people.csail.mit.edu/albert/bluez-intro/index.html

и это тоже действительно хорошо, вступление не слишком плотное:

http://beej.us/guide/bgnet/output/html/multipage/index.html

Конкретные детали, на которые следует обратить внимание, связаны с аспектом планирования. Во введении к руководству по программированию beej конкретно показано, что такое сокеты и как они вписываются в сетевой смысл. Это означает потоковые сокеты и сокеты дейтаграмм. Он также показывает, какие из сокетов используются, а какие доступны. Главы с 1 по 3 дали мне достаточно прочную основу для чтения, чтобы использовать второй документ для определения нескольких вещей.

В главе 2 документа MIT подробно описывается каждый из этапов, которые должны выполняться на структурном уровне, включая L2CAP UDT, RCOMM и независимо от того, что было потоковым. Прочитав это, я смог определить, что сеть, которую я хотел использовать, была L2CAP. Я надеюсь, что это поможет вам указать правильное направление, хотя в отношении того, какую сеть вы хотите настроить и на каком языке вы хотите программировать.

Комментарии:

1. Вы предоставили только ссылки на руководства по программированию для Bluetooth. Добавьте подробности о том, как OP может достичь того, что ему нужно. Я не хочу понижать голос, но ваш ответ неполон.

2. Подойдет. Извините за это.

Ответ №2:

Я работал над той же задачей некоторое время назад. Дело в том, что для того, чтобы начать отправлять и получать данные, вы должны сначала установить соединение. Существует два боковых устройства, которые подключаются (создают сокет), а другое принимающее соединение (сокет сервера Bluetooth) выдает соединение после завершения соединения. После установления соединения вы должны прекратить прием входящего соединения или попытки установления каких-либо соединений. С точки зрения реализации вам следует реализовать несколько потоков для управления всеми этими этапами — поток подключения, поток приема, поток общения. Есть отличный пример из Google: https://github.com/googlesamples/android-BluetoothChat . Он использует эту технологию. Единственным недостатком является то, что он использует обработчик (функция Android, позволяющая жучкам общаться) для информирования пользователя о событиях Bluetooth. Я немного изменил его, введя другой поток, получая обновления статуса и вызывая методы из интерфейса обратного вызова, не стесняйтесь использовать код из project: https://github.com/AlexShutov/LEDLights .

Комментарии:

1. Большое вам спасибо! Я попробую и сообщу вам, как это происходит.