Beispiel #1
0
    def iniciar(self, conf_inicial,traducir=None,volcar_datos=None ):
        """Despliega el recopilador y comunica las configuración de las mediciones
        al arduino"""

        #Envia la configuracion inicial al arduino
        self.enviar_mensaje(conf_inicial)
        dic_params = { "traducir" : traducir, "volcar_datos" : volcar_datos }

        self.recop = Recopilador(self.socket,self.lista, **dic_params)
        
        #Iniciamos el recopilador
        self.recop.start()
Beispiel #2
0
class Comunicador():
    """Esta es la clase que maneja la comunicacion con el Arduino"""

    def __init__(self, mac,puerto,separador=";" ):
        self.bt_direcc = mac
        self.port = puerto
        self.crear_socket()
        self.lista = Queue.Queue()

    def crear_socket(self):
        """Crea, o vuelve a crear, el socket de conexión"""
        self.socket = bt.BluetoothSocket(bt.RFCOMM)

    def conectar(self):
        """Conecta el socket
        En caso de error, reintenta la conexión 5 veces. Luego, se rinde"""
        destino = ( self.bt_direcc , self.port )
        print("Intentando conexion")
        #Reintenta la conexion 5 veces
        for i in range(0,5):
            try:
                self.socket.connect( destino )
            except:
                print("Error al intentar conexion, reintentando")
                time.sleep(2)
                self.crear_socket()
            else:
                print("Conexion exitosa!")
                return
        print("Imposible conectarse al destino")


    def enviar_mensaje(self,mensaje):
        """Manda una cadena al arduino"""
        for i in range(0,5):
            try:
                self.socket.send(mensaje)
            except:
                print("Error al enviar mensaje, reintentando")
                time.sleep(2)
            else:
                return
        print("Imposible enviar mensaje al destino.")


    def iniciar(self, conf_inicial,traducir=None,volcar_datos=None ):
        """Despliega el recopilador y comunica las configuración de las mediciones
        al arduino"""

        #Envia la configuracion inicial al arduino
        self.enviar_mensaje(conf_inicial)
        dic_params = { "traducir" : traducir, "volcar_datos" : volcar_datos }

        self.recop = Recopilador(self.socket,self.lista, **dic_params)
        
        #Iniciamos el recopilador
        self.recop.start()

    def terminar(self):
        self.recop.terminar()
        while self.recop.is_alive():
            time.sleep(0.2)
        self.socket.close()