def sendS2PathCommand( self, packet ):
        """
        Envia comando de trazado (path) al S2.

        @type packet: bytearray
        @param packet: comando de trazado a enviar
        """
        self.conn.write( packet )
        t = time.time()
        while( time.time() - t  < 3.5 ):
            try:
                b = self.conn.read( self.PACKET_LENGTH )
                if( packet != b ):
                    Utils.debug( "Packet Mismatch (path):" )
                    Utils.debug( packet )
                    Utils.debug( b )
                    raise self.conn.TimeoutException
                return
            except self.conn.TimeoutException as e:
                pass

        # necesitamos sincronizar las respuestas, lo hacemos con GetAll()
        packet = self.makeS2Packet( 65 )
        while( True ):
            self.conn.write( packet )
            try:
                self.conn.read( 11 ) # estos bytes quedaron sin ser recibidos
                self.conn.read( self.PACKET_LENGTH )
                break
            except self.conn.TimeoutException as e:
                pass

        # solicitamos el estado de los sensores
        self.sendS2Command( packet, 0 )
Esempio n. 2
0
    def sendS2PathCommand(self, packet):
        """
        Envia comando de trazado (path) al S2.

        @type packet: bytearray
        @param packet: comando de trazado a enviar
        """
        self.serial.write(packet)
        t = time.time()
        while (time.time() - t < 3.5):
            try:
                b = self.serial.read(self.PACKET_LENGTH)
                if (packet != b):
                    Utils.debug("Packet Mismatch (path):")
                    Utils.debug(packet)
                    Utils.debug(b)
                    raise serial.SerialTimeoutException
                return
            except serial.SerialTimeoutException as e:
                pass

        # necesitamos sincronizar las respuestas, lo hacemos con GetAll()
        packet = self.makeS2Packet(65)
        while (True):
            self.serial.write(packet)
            try:
                self.serial.read(11)  # estos bytes quedaron sin ser recibidos
                self.serial.read(self.PACKET_LENGTH)
                break
            except serial.SerialTimeoutException as e:
                pass

        # solicitamos el estado de los sensores
        self.sendS2Command(packet, 0)
    def sendS2Command( self, packet, pause ):
        """
        Envia un comando al S2.

        @type packet: bytearray
        @param packet: comando a enviar
        @type pause: integer
        @param pause: tiempo en ms a esperar por la respuesta luego de enviar el comando
        @rtype: bool
        @return: Verdadero si el ACK enviado por el S2 corresponde al esperado
        """
        self.conn.write( packet )
        if( pause > 0 ):
            Utils.pause( pause )
        if( packet[0] != 0x50 ):
            b = self.conn.read( self.PACKET_LENGTH )
            if( packet != b ):
                Utils.debug( "Packet Mismatch:" )
                Utils.debug( packet )
                Utils.debug( b )
                return False
        return True
Esempio n. 4
0
    def sendS2Command(self, packet, pause):
        """
        Envia un comando al S2.

        @type packet: bytearray
        @param packet: comando a enviar
        @type pause: integer
        @param pause: tiempo en ms a esperar por la respuesta luego de enviar el comando
        @rtype: bool
        @return: Verdadero si el ACK enviado por el S2 corresponde al esperado
        """
        self.serial.write(packet)
        if (pause > 0):
            Utils.pause(pause)
        if (packet[0] != 0x50):
            b = self.serial.read(self.PACKET_LENGTH)
            if (packet != b):
                Utils.debug("Packet Mismatch:")
                Utils.debug(packet)
                Utils.debug(b)
                return False
        return True