Создание bluetooth-соединения Kivy

#arduino #bluetooth #kivy

#arduino #bluetooth #kivy

Вопрос:

Это скорее базовый вопрос ООП, чем вопрос Kivy. У меня есть приложение с 4 кнопками. Когда я нажимаю один, я хочу инициализировать соединение Bluetooth с моего ноутбука на arduino uno, а также запланировать функцию, которая отправляет информацию Bluetooth каждую секунду.

Я использую следующий код:

 class HomeScreen(Screen):
    def OnConnect(self):
        print('Start')
        port = "COM7"
        #connect to bluetooth
        bluetooth = serial.Serial(port, 9600)
        print("Connected to HC-06")
        bluetooth.flushInput()

        #schedule a function that sends tester present to arduino
        Clock.schedule_interval(self.SendData, 1)

    def SendData(self,*args):
        bluetooth.write(b"Boop")
  

Очевидно, что «bluetooth» не отображается за пределами fct «OnConnect». Я хочу, чтобы Bluetooth был виден как для OnConnect, так и для sendData, но я хочу подключаться к arudino только при вызове OnConnect. Любая помощь приветствуется.

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

1. Это не код Arduino.

Ответ №1:

Я просмотрел документацию по адресу:

https://kivy.org/doc/stable/api-kivy.clock.html

В нем говорится:

Если вы хотите запланировать вызов функции с аргументами по умолчанию, вы можете использовать модуль functools.partial python:

Поэтому я думаю, что что-то подобное должно сработать:

 
        #schedule a function that sends tester present to arduino
        Clock.schedule_interval(partial(self.SendData, bluetooth), 1)

    def SendData(self, bt):
        bt.write(b"Boop")