Esempio n. 1
0
class Modulo(ModuloBase):
    """El modulo de mantenimiento del sistema."""
    @requiere_mesa_abierta
    def __init__(self, nombre):
        self.controlador = Controlador(self)
        self.web_template = MODULO_MANTENIMIENTO

        ModuloBase.__init__(self, nombre)
        levantar_locales()

        self._vaciar_impresora()
        self.ret_code = MODULO_MENU

        self.rampa = Rampa(self)
        self._start_audio()

    def _btn_presionado(self, boton):
        """ Evento al presionar sobre un módulo """
        # Obtengo el label del botón, lo busco en el diccionario de botones
        # y lo establezco como código de retorno
        self.salir_a_modulo(boton)

    def _vaciar_impresora(self):
        """Expulsa la boleta."""
        impresora = self.sesion.impresora
        if impresora is not None and impresora.tarjeta_ingresada():
            impresora.expulsar_boleta()

    def _inicio(self):
        """Inicio del modulo mantenimiento."""
        self.controlador.send_constants()
        GObject.timeout_add(200, self.controlador.inicio_mantenimiento)

    def quit(self, w=None):
        """Sale del modulo."""
        if hasattr(self.controlador, "timeout_bateria"):
            GObject.source_remove(self.controlador.timeout_bateria)
        if self.signal is not None:
            self.signal.remove()

        ModuloBase.quit(self, w)

    def _recheck_batteries(self):
        """Rechequea las baterias."""
        self.controlador.refresh_batteries()

    def _recheck_pir_detected(self):
        """Rechequea el estado presente del PIR."""
        self.controlador.pir_detection_status(True)

    def _recheck_pir_not_detected(self):
        """Rechequea la ausencia de deteccion del PIR."""
        self.controlador.pir_detection_status(False)

    def printer_begin_test(self):
        """Inicia el test de impresion."""
        if not self.rampa.tiene_papel:
            self.signal_paper = self.sesion.impresora.registrar_autofeed_end(
                self._printer_test)
            self.controlador.printer_begin_test()
        else:
            self._printer_test(estado=True)

    def printer_end_test(self):
        """Finaliza el test de impresion."""
        self.sesion.impresora.remover_autofeed_end()
        self.sesion.impresora.remover_insertando_papel()
        self.controlador.printer_end_test()
        self.rampa.tiene_papel = False

    def _printer_test(self, estado):
        """Inicia el test de impresion."""
        self.controlador.print_test()
        self.printer_end_test()

    def md5_checkfiles(self, path):
        """Chequea el md5 del DVD."""
        hashobj = popen(COMANDO_MD5 % path)
        md5num = hashobj.read()
        hashobj.close()
        return md5num

    def rfid_check(self, datos_tag):
        """chequea el estado del RFID."""
        try:
            self.controlador.rfid_check(datos_tag['tipo'])
        except:
            self.controlador.rfid_check(NO_TAG)
Esempio n. 2
0
class Modulo(ModuloBase):

    """El modulo de mantenimiento del sistema."""

    @requiere_mesa_abierta
    def __init__(self, nombre):
        self.controlador = Controlador(self)
        self.web_template = MODULO_MANTENIMIENTO

        ModuloBase.__init__(self, nombre)
        levantar_locales()

        self._vaciar_impresora()
        self.ret_code = MODULO_MENU

        self.rampa = Rampa(self)
        self._start_audio()

    def _btn_presionado(self, boton):
        """ Evento al presionar sobre un módulo """
        # Obtengo el label del botón, lo busco en el diccionario de botones
        # y lo establezco como código de retorno
        self.salir_a_modulo(boton)

    def _vaciar_impresora(self):
        """Expulsa la boleta."""
        impresora = self.sesion.impresora
        if impresora is not None and impresora.tarjeta_ingresada():
            impresora.expulsar_boleta()

    def _inicio(self):
        """Inicio del modulo mantenimiento."""
        self.controlador.send_constants()
        GObject.timeout_add(200, self.controlador.inicio_mantenimiento)

    def quit(self, w=None):
        """Sale del modulo."""
        if hasattr(self.controlador, "timeout_bateria"):
            GObject.source_remove(self.controlador.timeout_bateria)
        if self.signal is not None:
            self.signal.remove()

        ModuloBase.quit(self, w)

    def _recheck_batteries(self):
        """Rechequea las baterias."""
        self.controlador.refresh_batteries()

    def _recheck_pir_detected(self):
        """Rechequea el estado presente del PIR."""
        self.controlador.pir_detection_status(True)

    def _recheck_pir_not_detected(self):
        """Rechequea la ausencia de deteccion del PIR."""
        self.controlador.pir_detection_status(False)

    def printer_begin_test(self):
        """Inicia el test de impresion."""
        if not self.rampa.tiene_papel:
            self.signal_paper = self.sesion.impresora.registrar_autofeed_end(
                self._printer_test)
            self.controlador.printer_begin_test()
        else:
            self._printer_test(estado=True)

    def printer_end_test(self):
        """Finaliza el test de impresion."""
        self.sesion.impresora.remover_autofeed_end()
        self.sesion.impresora.remover_insertando_papel()
        self.controlador.printer_end_test()
        self.rampa.tiene_papel = False

    def _printer_test(self, estado):
        """Inicia el test de impresion."""
        self.controlador.print_test()
        self.printer_end_test()

    def md5_checkfiles(self, path):
        """Chequea el md5 del DVD."""
        hashobj = popen(COMANDO_MD5 % path)
        md5num = hashobj.read()
        hashobj.close()
        return md5num

    def rfid_check(self, datos_tag):
        """chequea el estado del RFID."""
        try:
            self.controlador.rfid_check(datos_tag['tipo'])
        except:
            self.controlador.rfid_check(NO_TAG)