Программно привяжите устройство Bluetooth к RFCOMM через Python вPython

Программы на Python
Ответить
Anonymous
 Программно привяжите устройство Bluetooth к RFCOMM через Python в

Сообщение Anonymous »

Я написал скрипт на Python для последовательной связи между моим M5Stack Stick C (например, raduino) и Raspberry Pi.
все работает нормально. я могу отправить «X», «Y» или «Z» из Raspberry py на флешку, и он ответит значение (G-Force) обратно на raspi! пока все хорошо
Коды:
Python на raspy:

Код: Выделить всё

import serial
import time
import threading

ser = serial.Serial('/dev/rfcomm5') #init serial port
input_line = []#init input char array

def process_data(_data):
#called every time a sream is terminated by \n
#and the command string is ready to use
command = convert(_data)
print(command)

def convert(s):   #convert the char list in a string

new = "" #init string to append all chars from char array

for x in s:     # traverse in the string
new += str(x)

return new    # return string

def processIncomingByte(inByte):#adding incoming chars to input_line

global input_line# globalize the input_line

if(inByte == '\n'):#if \n is incoming, end the chararray and release process data method
process_data(input_line)
input_line = []#reset input_line for next incoming string
elif(inByte == '\r'):
pass

else:#put all incoming chars in input_line
input_line.append(inByte)

while True:
while(ser.in_waiting > 0):#while some data is waiting to read....
processIncomingByte(ser.read())#.... process bytes whit method
ser.write(b'X\n')
time.sleep(0.5)
перед работой скрипта мне нужно вручную привязать m5Stak Stick-C через Blueman
к /dev/Rfcomm5. он отлично работает через графический интерфейс или консоль....
но теперь я хотел бы подключить флешку через Python к rfcomm5 (просто зная MAC-адрес, он будет найден в файле конфигурации позже...)
Я начинаю немного исследовать, но чем больше я исследую, тем больше запутываюсь!
Я читаю кое-что о сокетах и ​​подходах сервер-клиент. через отдельный скрипт и так далее....
Я тестировал этот код:

Код: Выделить всё

from bluetooth import *

target_name = "M5-Stick-C"
target_address = None
nearby_devices = discover_devices()

for address in nearby_devices:
if (target_name == lookup_name( address )):
target_address = address
break
if (target_address is not None):
print ("found target bluetooth device with address ", target_address)
else:
print ("could not find target bluetooth device nearby")
и действительно он нашел устройство (только тестирование)!
но действительно ли мне нужно создать второй скрипт/процесс для подключения из моего скрипта?
является ли M5stack Stick-C сервером? (я так думаю)
я так запутался во всем этом. я много писал код, но никогда не использовал сокеты и вещи сервер-клиент.
в основном связь (сервер/клиент?) работает.
мне просто нужно подключить устройство, которое я нашел во втором скрипте, через macadress к rfcomm5 (или чему-то еще rfcomm).
нужен ли мне разъем Bluetooth? как в этом примере
https://gist.github.com/kevindoran/5428612
разве rfcomm не является сокетом или я ошибаюсь?

Подробнее здесь: https://stackoverflow.com/questions/633 ... -python-in
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»