Yanndroid-SiriRemote-Linux/remote/bt.py

34 lines
936 B
Python

from bluepy.btle import Peripheral, DefaultDelegate
class Device(DefaultDelegate):
def __init__(self, mac):
super().__init__()
self.mac = mac
self.__peripheral = None
self.__listener = None
def connect(self):
self.__peripheral = Peripheral(self.mac)
self.__peripheral.withDelegate(self)
def loop(self):
while True:
self.__peripheral.waitForNotifications(0)
def set_listener(self, listener):
self.__listener = listener
def write_characteristic(self, handle, value):
self.__peripheral.writeCharacteristic(handle, value, True)
def enable_notifications(self, handle):
self.__peripheral.writeCharacteristic(handle, b'\x01\x00')
def set_mtu(self, value):
self.__peripheral.setMTU(value)
def handleNotification(self, handle, data):
if self.__listener:
self.__listener(handle, data)