Buenas, tengo una duda tremenda que le he dado vueltas por un buen tiempo.
Estoy creando una interfaz grafica la cual debe conectarse a un dispositivo a través de un BLE presionando un boton.
He creado la interfaz con qtdesigner yse pudo comunicar el bluetooth con codigo, pero de una manera que se que no es correcta.
class funciones_asincronas():
def __init__(self):
async def run(self):
print("iniciando busqueda")
devices = await discover()
i=0
direccion=[]
time.sleep(1)
print("Dispositivos encontrados:")
for d in devices:
if d.name!="HMSoft":
i=i
print("nada")
else:
await direccion.append(d.address)
print(i,")",direccion)
i+=1
loop = asyncio.get_event_loop()
loop.run_until_complete(run(self))
Como pueden ver, logre comunicar pero colocando la funcion dentro del init y con esta imposibilita que pueda hacer manejo de esta funcion y menos adquirir las variables de la otra clase.
self.btnReconectar.clicked.connect(funciones_asincronas)
Con esta funciion genero la llamada desde la clase principal a la clase de la comunicacion asincrona.
resulta que si coloco la funcion asyncrona fue del initcomo una funcion intependiente, arroja el error de que run(self) no esta definica (el que esta dentro del loop para cerrar el proceso asincrono)