все работает нормально. я могу отправить «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)
к /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
Мобильная версия