Exemplo n.º 1
0
 def connect(self):
   print('connecting to', self.device.address)
   addr = QtBluetooth.QBluetoothAddress(self.device.address)
   self.dev = QtBluetooth.QBluetoothSocket(QtBluetooth.QBluetoothServiceInfo.RfcommProtocol, self)
   self.dev.connected.connect(self.onConnected)
   self.dev.disconnected.connect(self.onDisconnected)
   self.dev.error.connect(self.onError)
   self.dev.connectToService(addr, QtBluetooth.QBluetoothUuid.SerialPort)
Exemplo n.º 2
0
    def connectToRobot(self):
        self.sock = QtBluetooth.QBluetoothSocket(
            QtBluetooth.QBluetoothServiceInfo.RfcommProtocol)

        self.sock.connected.connect(self.connectedToBluetooth)
        self.sock.readyRead.connect(self.receivedBluetoothMessage)
        self.sock.disconnected.connect(self.disconnectedFromBluetooth)
        self.sock.error.connect(self.socketError)
        port = 1
        self.sock.connectToService(
            QtBluetooth.QBluetoothAddress("98:D3:C1:FD:2C:46"), port)
Exemplo n.º 3
0
def PluginConnection(param=""):
    from msgtools.server.BluetoothRFCOMMQt import BluetoothRFCOMMQtConnection
    from PyQt5 import QtBluetooth
    btArgs = param.split(",")
    btHost = btArgs[0]
    if len(btArgs) > 1:
        btPort = int(btArgs[1])
    else:
        btPort = 8
    btSocket = QtBluetooth.QBluetoothSocket(
        QtBluetooth.QBluetoothServiceInfo.RfcommProtocol)
    btSocket.connectToService(QtBluetooth.QBluetoothAddress(btHost), btPort)
    return BluetoothRFCOMMQtConnection(btSocket)
Exemplo n.º 4
0
	def detailsDiscovered(self, state):
		if state == QtBluetooth.QLowEnergyService.ServiceDiscovered:
			self.positionChrc = self.service.characteristic(QtBluetooth.QBluetoothUuid('{00000125-0000-1000-8000-00805f9b34fb}'))
			self.buttonsPressChrc = self.service.characteristic(QtBluetooth.QBluetoothUuid('{00000225-0000-1000-8000-00805f9b34fb}'))

			des = self.positionChrc.descriptor( QtBluetooth.QBluetoothUuid(QtBluetooth.QBluetoothUuid.ClientCharacteristicConfiguration) )
			self.service.writeDescriptor(des, bytes.fromhex('0100'))

			des = self.buttonsPressChrc.descriptor( QtBluetooth.QBluetoothUuid(QtBluetooth.QBluetoothUuid.ClientCharacteristicConfiguration) )
			self.service.writeDescriptor(des, bytes.fromhex('0100'))

			pos = self.positionChrc.value()
			self.x, self.y = struct.unpack("<ff", pos)
Exemplo n.º 5
0
    def __init__(self):
        self.local_device = QtBt.QBluetoothLocalDevice()
        self.local_device.deviceConnected.connect(self.notify_connect)
        self.local_device.deviceDisconnected.connect(self.notify_disconnect)

        self.agent = QtBt.QBluetoothDeviceDiscoveryAgent()
        self.agent.deviceDiscovered.connect(self.notify_discovered)
        self.agent.finished.connect(self.notify_finished)
        self.agent.error.connect(self.notify_error)
        self.agent.setLowEnergyDiscoveryTimeout(60000)

        self.scan_loop_timer = QTimer()
        self.scan_loop_timer.timeout.connect(self.scan_loop)

        self.bluetooth_speaker_cb = object()
Exemplo n.º 6
0
 def connect(self):
     addr = QtBluetooth.QBluetoothAddress(self.device.address)
     print('connecting to', addr)
     self.dev.connected.connect(self.connected)
     self.dev.disconnected.connect(self.disconnected)
     self.dev.error.connect(self.onError)
     self.dev.connectToService(addr, QtBluetooth.QBluetoothUuid.SerialPort)
Exemplo n.º 7
0
 def searchCharacteristic(self):
     #        print("searchCharacteristic")
     if self.m_service:
         for c in self.m_service.characteristics():
             if c.isValid():
                 if c.properties(
                 ) & QtBluetooth.QLowEnergyCharacteristic.WriteNoResponse or c.properties(
                 ) & QtBluetooth.QLowEnergyCharacteristic.Write:
                     self.m_writeCharacteristic = c
                     self.update_connected(True)
                     if c.properties(
                     ) & QtBluetooth.QLowEnergyCharacteristic.WriteNoResponse:
                         self.m_writemode = QtBluetooth.QLowEnergyService.WriteWithoutResponse
                     else:
                         self.m_writemode = QtBluetooth.QLowEnergyService.WriteWithResponse
                 if c.properties(
                 ) & QtBluetooth.QLowEnergyCharacteristic.Read:
                     self.m_readCharacteristic = c
                     if not self.m_readTimer:
                         self.m_readTimer = QtCore.QTimer()
                         self.m_readTimer.timeout.connect(self.read)
                         self.m_readTimer.start(3000)
                 self.m_notificationDesc = c.descriptor(
                     QtBluetooth.QBluetoothUuid(0x2902))
                 #print(QtBluetooth.QBluetoothUuid(0x2902).toString())
                 if self.m_notificationDesc.isValid():
                     #print("notificationCharacteristic")
                     #print(bytearray([1,0]))
                     self.m_service.writeDescriptor(self.m_notificationDesc,
                                                    bytearray([1, 0]))
                     self.heartbeat()
Exemplo n.º 8
0
	def __init__(self, parent):
		super().__init__()
		self.parent = parent

		self.discoverer = QtBluetooth.QBluetoothDeviceDiscoveryAgent(self)
		self.discoverer.setLowEnergyDiscoveryTimeout(0)
		self.discoverer.deviceDiscovered.connect(self.checkDevice)
		self.discoverer.start(QtBluetooth.QBluetoothDeviceDiscoveryAgent.DiscoveryMethod(2))

		self.central = None
		self.service = None
		self.positionChrc = None
		self.buttonsPressChrc = None

		self.x = 0.5
		self.y = 0.5

		self.descriptCount = 0

		self.setupDone.connect(parent.start)

		self.button1.connect(parent.changeMode)
		self.button2.connect(parent.leftClick)
		self.button3.connect(parent.rightClick)
		self.button4.connect(parent.changeVisibility)
		self.button5.connect(parent.quit)
		self.pos.connect(parent.move)
Exemplo n.º 9
0
    def __init__(self, parent=None):
        super().__init__(parent)

        # instance variables. Er is maar 1 instance?
        self.currentDevice = DeviceInfo()  # type: DeviceInfo
        self.devices = []  # type: List[DeviceInfo]
        self.m_services = []  # type: List[QObject]
        self.currentService = None
        self.currentCharacteristic = None
        self.m_characteristics = []  # type: List[QObject]
        self.m_previousAddress = ''
        self.m_message = ''
        self.connected = False
        self.m_deviceScanState = False
        self.randomAddress = False

        self.blcomm = ''
        self.blresult = QByteArray()

        self.discoveryAgent = QtBt.QBluetoothDeviceDiscoveryAgent()
        self.discoveryAgent.setLowEnergyDiscoveryTimeout(5000)

        self.discoveryAgent.deviceDiscovered.connect(self.addDevice)
        self.discoveryAgent.error.connect(self.deviceScanError)
        self.discoveryAgent.finished.connect(self.deviceScanFinished)

        self.controller = None
        self.setUpdate('Search')
Exemplo n.º 10
0
    def addDevice(self, device):
        if self.m_device is None and device.coreConfigurations() & QtBluetooth.QBluetoothDeviceInfo.LowEnergyCoreConfiguration:
#            print("Discovered LE Device name: {name} ,Address: {address} ".format(name=device.name(),address=device.address().toString()))
            m_device = QtBluetooth.QBluetoothDeviceInfo(device)
            if self.deviceHasService(m_device,self.SERVICE_UUID):
                self.m_device = m_device
                # we found our device and stop scanning
                self.m_deviceDiscoveryAgent.stop()
Exemplo n.º 11
0
 def addDevice(self, device):
     if device.coreConfigurations(
     ) & QtBluetooth.QBluetoothDeviceInfo.LowEnergyCoreConfiguration:
         self.m_devices.append(QtBluetooth.QBluetoothDeviceInfo(device))
         print("Discovered LE Device name: {name} ,Address: {address} ".
               format(name=device.name(),
                      address=device.address().toString()))
         print("Low Energy device found. Scanning more...")
Exemplo n.º 12
0
 def connectCurrentDevice(self):
     if self.m_device is not None:
         self.m_control = QtBluetooth.QLowEnergyController(self.m_device)
         self.m_control.discoveryFinished.connect(self.onServiceScanDone)
         self.m_control.connected.connect(self.onDeviceConnected)
         self.m_control.disconnected.connect(self.onDeviceDisconnected)
         self.m_control.connectToDevice()
     else:
         self.deviceDisconnected.emit()
Exemplo n.º 13
0
    def bluetoothTest(self):
        self.agent = QtBt.QBluetoothDeviceDiscoveryAgent(self)
        self.agent.deviceDiscovered.connect(self.foo)
        self.agent.finished.connect(self.foo)
        self.agent.error.connect(self.foo)
        self.agent.setLowEnergyDiscoveryTimeout(1000)

        timer = QTimer(self.agent)
        timer.start(500)
        timer.timeout.connect(self.display_status)
Exemplo n.º 14
0
    def __init__(self, device, postman, parent=None):
        super(BluetoothSearch, self).__init__(parent)
        uic.loadUi('GUI/bluetoothSearch.ui', self)

        self.device = device
        self.postman = postman
        self.agent = QtBluetooth.QBluetoothDeviceDiscoveryAgent(self)
        self.agent.error.connect(self.error)
        self.agent.deviceDiscovered.connect(self.discovered)
        self.agent.finished.connect(self.stop)

        self.bScan.clicked.connect(self.scan)
        self.buttonBox.accepted.connect(self.save)
        self.localDevice = QtBluetooth.QBluetoothLocalDevice()
        if self.localDevice.isValid():
            self.localDevice.powerOn()
        self.postman.Post.emit("Bluetooth_" + self.device.getName(),
                               self.device.getName(),
                               'Connect to: ' + self.localDevice.name())
Exemplo n.º 15
0
    def scan_for_devices(self):
        self.agent = QtBt.QBluetoothDeviceDiscoveryAgent(self)
        self.agent.deviceDiscovered.connect(self.device_discovered)
        self.agent.finished.connect(self.finished)
        self.agent.error.connect(self.error)
        self.agent.setLowEnergyDiscoveryTimeout(1000)

        timer = QtCore.QTimer(self.agent)
        timer.start(2000)
        timer.timeout.connect(self.display_status)

        self.agent.start()
Exemplo n.º 16
0
 def __init__(self, device, postman, parent=None):
     super(MetawatchThread, self).__init__(parent)
     self.postman = postman
     self.device = device
     self.dev = QtBluetooth.QBluetoothSocket(
         QtBluetooth.QBluetoothServiceInfo.RfcommProtocol)
     self.dev.readyRead.connect(self.readyRead.emit)
     self.CRC = CRC_CCITT()
     self.loop = QtCore.QEventLoop()
     self.timer = QtCore.QTimer()
     self.timer.setSingleShot(True)
     self.timer.timeout.connect(self.loop.quit)
Exemplo n.º 17
0
    def __init__(self, service_uuid, char_uuid, processData, sendHeartbeat,
                 reset):
        super().__init__()
        self.SERVICE_UUID = QtBluetooth.QBluetoothUuid(service_uuid)
        self.CHAR_UUID = QtBluetooth.QBluetoothUuid(char_uuid)
        self.processData = processData
        self.sendHeartbeat = sendHeartbeat
        self.reset = reset

        self.m_deviceDiscoveryAgent = QtBluetooth.QBluetoothDeviceDiscoveryAgent(
        )
        self.m_notificationDesc = QtBluetooth.QLowEnergyDescriptor()
        self.m_control = None
        #self.m_servicesUuid = QtBluetooth.QBluetoothUuid()
        self.m_servicesUuid = []
        self.m_service = QtBluetooth.QLowEnergyService
        self.m_readCharacteristic = QtBluetooth.QLowEnergyCharacteristic()
        self.m_writeCharacteristic = QtBluetooth.QLowEnergyCharacteristic()
        self.m_writemode = QtBluetooth.QLowEnergyService.WriteMode()

        self.m_device = None  # bound to the device if discovered
        self.m_services = []
        self.m_currentService = None
        self.m_connected = False
        self.m_readTimer = None

        self.m_deviceDiscoveryAgent.setLowEnergyDiscoveryTimeout(500)
        self.m_deviceDiscoveryAgent.deviceDiscovered.connect(self.addDevice)
        self.m_deviceDiscoveryAgent.error.connect(self.onDeviceScanError)
        self.m_deviceDiscoveryAgent.finished.connect(self.onScanFinished)
        self.m_deviceDiscoveryAgent.canceled.connect(self.onScanFinished)
        self.dataReceived.connect(self.printDataReceived)
Exemplo n.º 18
0
    def __init__(self, service_uuid, char_uuid, processData, sendHeartbeat,
                 sendStop, reset):
        super().__init__()

        self.SERVICE_UUID = QtBluetooth.QBluetoothUuid(service_uuid)
        self.CHAR_UUID = QtBluetooth.QBluetoothUuid(char_uuid)
        self.processData = processData
        self.sendHeartbeat = sendHeartbeat
        self.sendStop = sendStop
        self.reset = reset

        self.QBluetoothDeviceDiscoveryAgent_LowEnergyMethod = 2
        self.ENABLE_NOTIFICATION_VALUE = QtCore.QByteArray.fromHex(b"0100")
        self.DISABLE_NOTIFICATION_VALUE = QtCore.QByteArray.fromHex(b"0000")

        self.m_deviceDiscoveryAgent = QtBluetooth.QBluetoothDeviceDiscoveryAgent(
        )
        self.m_deviceDiscoveryAgent.setLowEnergyDiscoveryTimeout(500)
        self.m_deviceDiscoveryAgent.deviceDiscovered.connect(self.addDevice)
        self.m_deviceDiscoveryAgent.finished.connect(self.onScanFinished)
        self.m_deviceDiscoveryAgent.canceled.connect(self.onScanFinished)

        self.m_device = None
        self.m_control = None
        self.m_service = None

        self.m_notificationDesc = QtBluetooth.QLowEnergyDescriptor()
        self.m_readCharacteristic = QtBluetooth.QLowEnergyCharacteristic()
        self.m_writeCharacteristic = QtBluetooth.QLowEnergyCharacteristic()
        self.m_writemode = QtBluetooth.QLowEnergyService.WriteMode()

        self.m_connected = False
        self.m_readTimer = None

        self.dataReceived.connect(self.printDataReceived)
Exemplo n.º 19
0
 def foo(self, *args, **kwargs):
     # print('foo', args, kwargs)
     if len(args):
         if args[0].name() == 'NIST0002':
             print(args[0].name())
             self.controller = QtBt.QLowEnergyController(
                 args[0]).createCentral(args[0])
             self.controller.connected.connect(self.c)
             self.controller.serviceDiscovered.connect(self.service)
             self.controller.discoveryFinished.connect(
                 self.discoveryFinished)
             self.controller.connectToDevice()
             print(self.controller)
Exemplo n.º 20
0
 def connectCurrentDevice(self):
     if self.m_device is None:
         self.deviceDisconnected.emit()
         return
     if self.m_control:
         self.m_control.disconnectFromDevice()
         self.m_control = None
     self.m_control = QtBluetooth.QLowEnergyController(self.m_device)
     self.m_control.serviceDiscovered.connect(self.onServiceDiscovered)
     self.m_control.discoveryFinished.connect(self.onServiceScanDone)
     self.m_control.error.connect(self.onControllerError)
     self.m_control.connected.connect(self.onDeviceConnected)
     self.m_control.disconnected.connect(self.onDeviceDisconnected)
     self.m_control.connectToDevice()
Exemplo n.º 21
0
    def __init__(self):
        super().__init__()
        self.m_deviceDiscoveryAgent = QtBluetooth.QBluetoothDeviceDiscoveryAgent(
        )
        self.m_notificationDesc = QtBluetooth.QLowEnergyDescriptor()
        self.m_control = None
        #self.m_servicesUuid = QtBluetooth.QBluetoothUuid()
        self.m_servicesUuid = []  #用于存放设备的服务的UUID
        self.m_service = QtBluetooth.QLowEnergyService  #用于存放设备具体使用的服务
        self.m_readCharacteristic = QtBluetooth.QLowEnergyCharacteristic(
        )  #用于存放读取的服务的特性内容
        self.m_writeCharacteristic = QtBluetooth.QLowEnergyCharacteristic(
        )  #用于存放写入的服务的特性内容
        self.m_devices = []  #用于存放获取的设备列表
        self.m_writemode = QtBluetooth.QLowEnergyService.WriteMode()
        self.m_readTimer = QtCore.QTimer()

        self.m_connected = bool
        self.m_devicesNames = []
        self.m_services = []
        self.m_currentDevice = None
        self.m_currentService = None

        #初始化相关变量
        self.m_connected(False)
        #self.m_control(None)
        self.m_readTimer = None
        #self.m_currentService(None)
        #self.m_currentDevice(None)

        #绑定设备发现相关信号函数
        self.m_deviceDiscoveryAgent.setLowEnergyDiscoveryTimeout(500)
        self.m_deviceDiscoveryAgent.deviceDiscovered.connect(self.addDevice)
        self.m_deviceDiscoveryAgent.error.connect(self.onDeviceScanError)
        self.m_deviceDiscoveryAgent.finished.connect(self.onScanFinished)
        self.m_deviceDiscoveryAgent.canceled.connect(self.onScanFinished)
        self.dataReceived.connect(self.printDataReceived)
Exemplo n.º 22
0
 def searchCharacteristic(self):
     if self.m_service:
         for c in self.m_service.characteristics():
             if c.isValid():
                 if c.properties() & QtBluetooth.QLowEnergyCharacteristic.WriteNoResponse or c.properties() & QtBluetooth.QLowEnergyCharacteristic.Write:
                     self.m_writeCharacteristic = c
                     self.update_connected(True)
                     if c.properties() & QtBluetooth.QLowEnergyCharacteristic.WriteNoResponse:
                         self.m_writemode=QtBluetooth.QLowEnergyService.WriteWithoutResponse
                     else:
                         self.m_writemode=QtBluetooth.QLowEnergyService.WriteWithResponse
                 self.m_notificationDesc = c.descriptor(QtBluetooth.QBluetoothUuid(QtBluetooth.QBluetoothUuid.ClientCharacteristicConfiguration))
                 if self.m_notificationDesc.isValid():
                     self.m_service.descriptorWritten.connect(self.descriptorWrittenSlot)
                     self.m_service.writeDescriptor(self.m_notificationDesc,self.ENABLE_NOTIFICATION_VALUE)
Exemplo n.º 23
0
	def servicesScanned(self):
		self.service = self.central.createServiceObject(QtBluetooth.QBluetoothUuid('{00003125-0000-1000-8000-00805f9b34fb}'), self.central)
		self.service.stateChanged.connect(self.detailsDiscovered)
		self.service.descriptorWritten.connect(self.countDescript)
		self.service.discoverDetails()
Exemplo n.º 24
0
 def onServiceDiscovered(self, _=QtBluetooth.QBluetoothUuid()):
     self.statusInfoChanged.emit(
         "Service discovered. Waiting for service scan to be done...", True)
Exemplo n.º 25
0
 def setDevice(self, dev):
     self.device = QtBt.QBluetoothDeviceInfo(dev)
     self.deviceChanged.emit()
Exemplo n.º 26
0
 def onServiceDiscovered(self, gatt=QtBluetooth.QBluetoothUuid()):
     self.statusInfoChanged.emit(
         "Service discovered. Waiting for service scan to be done...", True)
     print(
         "Service discovered. Waiting for service scan to be done... GATT: {gatt} "
         .format(gatt=gatt))
Exemplo n.º 27
0
 def __init__(self, app):
     self.local_device = QtBt.QBluetoothLocalDevice()
     self.agent = QtBt.QBluetoothDeviceDiscoveryAgent()
     self.timer = QTimer()
     self.ben = object
     self.app = app
Exemplo n.º 28
0
import signal
import sys
import os

from PyQt5 import QtBluetooth as QtBt
from PyQt5 import QtCore, QtWidgets

service_uuid = '7b183224-9168-443e-a927-7aeea07e8105'
count_uuid = '292bd3d2-14ff-45ed-9343-55d125edb721'
rw_uuid = '56cd7757-5f47-4dcd-a787-07d648956068'
data_uuid = 'fec26ec4-6d71-4442-9f81-55bc21d658d6'
print(QtBt.QBluetoothUuid(rw_uuid))
data_uuid = QtBt.QBluetoothUuid(data_uuid)
service_uuid = QtBt.QBluetoothUuid(service_uuid)
if sys.platform == 'darwin':
    os.environ['QT_EVENT_DISPATCHER_CORE_FOUNDATION'] = '1'


class Application(QtWidgets.QApplication):
    # class Application(QtCore.QCoreApplication):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # self.le_controller = QLowEnergyController

        self.scan_for_devices()
        print("before exec")
        self.exec()
        print("after exec")

    def display_status(self):
        print(self.agent.isActive(), self.agent.discoveredDevices())