예제 #1
0
    def on_device_disconnect(self, device):
        self.terminate_all_scripts(device['Address'])

        serial_services = [service for service in get_services(device) if service.group == 'serial']

        if not serial_services:
            return

        ports = rfcomm_list()

        def flt(dev):
            if dev["dst"] == device['Address'] and dev["state"] == "connected":
                return dev["id"]

        active_ports = map(flt, ports)

        for port in active_ports:
            if not port:
                continue

            name = "/dev/rfcomm%d" % port
            try:
                dprint("Disconnecting", name)
                serial_services[0].disconnect(port)
            except Exception as e:
                dprint("Failed to disconnect", name)
                dprint(e)
예제 #2
0
    def on_device_disconnect(self, device):
        self.terminate_all_scripts(device['Address'])

        serial_services = [service for service in get_services(device) if service.group == 'serial']

        if not serial_services:
            return

        ports = rfcomm_list()

        def flt(dev):
            if dev["dst"] == device['Address'] and dev["state"] == "connected":
                return dev["id"]

        active_ports = map(flt, ports)

        for port in active_ports:
            if port is None:
                continue

            name = "/dev/rfcomm%d" % port
            try:
                logging.info("Disconnecting %s" % name)
                serial_services[0].disconnect(port)
            except Exception:
                logging.error("Failed to disconnect %s" % name, exc_info=True)
예제 #3
0
    def on_device_disconnect(self, device):
        self.terminate_all_scripts(device['Address'])

        serial_services = [
            service for service in get_services(device)
            if service.group == 'serial'
        ]

        if not serial_services:
            return

        ports = rfcomm_list()

        def flt(dev):
            if dev["dst"] == device['Address'] and dev["state"] == "connected":
                return dev["id"]

        active_ports = map(flt, ports)

        for port in active_ports:
            if port is None:
                continue

            name = "/dev/rfcomm%d" % port
            try:
                logging.info("Disconnecting %s" % name)
                serial_services[0].disconnect(port)
            except Exception:
                logging.error("Failed to disconnect %s" % name, exc_info=True)
예제 #4
0
 def is_connected(self, device):
     for audio_service in [
             service for service in get_services(device)
             if service.group == 'audio'
     ]:
         if audio_service.connected:
             return True
     return False
예제 #5
0
    def on_device_disconnect(self, device):
        serial_services = [service for service in get_services(device) if service.group == 'serial']

        if not serial_services:
            return

        active_ports = [rfcomm['id'] for rfcomm in rfcomm_list() if rfcomm['dst'] == device['Address']]

        for port in active_ports:
            name = "/dev/rfcomm%d" % port
            try:
                logging.info("Disconnecting %s" % name)
                serial_services[0].disconnect(port)
            except GLib.Error:
                logging.error("Failed to disconnect %s" % name, exc_info=True)
예제 #6
0
    def on_device_disconnect(self, device):
        serial_services = [service for service in get_services(device) if isinstance(service, SerialService)]

        if not serial_services:
            return

        active_ports = [rfcomm['id'] for rfcomm in rfcomm_list() if rfcomm['dst'] == device['Address']]

        for port in active_ports:
            name = "/dev/rfcomm%d" % port
            try:
                logging.info(f"Disconnecting {name}")
                serial_services[0].disconnect(port)
            except GLib.Error:
                logging.error(f"Failed to disconnect {name}", exc_info=True)