Найти - Пользователи
Полная версия: android, bluetooth, sl4a
Начало » Python для новичков » android, bluetooth, sl4a
1
astridsnus
Использую sl4a, android 4.4, python for android 3.3.2
Задача состоит в отправке некоторых команд с планшета на железку с блютус. Железка планшетом видится и сопряжение устанавливается.

Написал такой код:
import sl4a
import time
droid = sl4a.Android()
droid.toggleBluetoothState(True)
adr = '01:18:DA:00:E2:6B'
droid.bluetoothConnect(adr)
while True:
  
  ans = droid.bluetoothReadLine().result
  droid.dialogCreateAlert('+', ans)
  droid.dialogSetPositiveButtonText('OK')
  droid.dialogShow()
  droid.dialogGetResponse()
  
  result = droid.dialogGetInput().result
  droid.bluetoothWrite(result)
  time.sleep(0.5) 
        
В консоль пишется ошибка “java.io.IOException: Bluetooth not ready for this connID ”
То есть планшет не понимает как и куда слать данные, как я это понимаю. Что можно сделать?
helm2004
Попробуй try: droid.bluetoothConnect(adr) использовать.
astridsnus
К сожалению не помогает.
astridsnus
Изменил код вот так:
import sl4a
import time

droid = sl4a.Android()
uuid = '00001101-0000-1000-8000-00805F9B34FB'
droid.toggleBluetoothState(True)
adr = '6B:E2:00:DA:18:01'
droid.bluetoothConnect(uuid,adr)
time.sleep(1)

i = 0

while i < 3:

ans = droid.bluetoothRead(1024).result
droid.dialogCreateAlert("+", ans)
droid.dialogSetPositiveButtonText('OK')
droid.dialogShow()
droid.dialogGetResponse()

result = droid.dialogGetInput().result
rr = result + '/r'
droid.bluetoothWrite(rr)
time.sleep(1)
i += 1

Теперь происходит запрос на сопряжение, я ввожу код сопряжения, после чего наступает молчание. Причём если я ставлю вперёд запись, а затем чтение, то все равно все тихо.
astridsnus
Неужели никто не знает? Пробовал ввести проверку
if droid.bluetoothReadReady().result:
перед чтением.
Проверка эта возвращает false.
helm2004
У меня закралась мысль, что у вас пермишены не выставлены для роботы с Голубым Зубом.

<manifest ... >
  <uses-permission android:name="android.permission.BLUETOOTH" />
  ...
</manifest>
astridsnus
такого не может быть, т.к. если я запускаю на железке только вывод данных (он просто фигачит статистику в ком порт, затем на блютус), я эту статистику планшетом принимаю. кроме того и синхронизация между планшетом и железкой устанавливается.
проблема в том, что почему-то не читается буфер, в который приходит ответ от железки.
helm2004
Я дико извиняюсь, но пермишены раздаются каждой программе на Ведроиде. То есть, если вы читаете одной програмой, то это не означает что ваша программа будет работать с БлюПупом.
astridsnus
так это одна и та же программа. я просто могу закомментировать в коде строчки записи, поставить только чтение и бросать на планшет данные с железки (заранее попрошу ее кидать на свой блютус постоянно статистику) .
более того, я уверен, что команды с планшета уходят - смотрел осциллографом на приеме на железке.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB