예제 #1
0
    def efectuar_medicion(self, metodo):

        fs = 48000
        try:

            respuesta_impulsional = self.medir_respuesta_impulsional_action.execute(
                metodo, fs)
            try:

                medicion = self.obtener_medicion_completa(
                    respuesta_impulsional, fs)
                mensaje = Mensaje(destinatario="VistaPrincipal",
                                  mensaje="MedicionCompleta",
                                  paquete=medicion)
                self.queue.put(mensaje)
                return None

            except LundebyException:

                mensaje = Mensaje(destinatario="VistaPrincipal",
                                  mensaje="LundebyException")
                self.queue.put(mensaje)
                return None

        except DispositivoInaccesibleException:

            mensaje = Mensaje(destinatario="VistaPrincipal",
                              mensaje="DispositivoInaccesible")
            self.queue.put(mensaje)
예제 #2
0
 def efectuar_calculo(self, respuesta_impulsional, fs):
     try:
         medicion = self.obtener_medicion_completa(respuesta_impulsional,
                                                   fs)
         mensaje = Mensaje(destinatario="VistaDetallada",
                           mensaje="CalculoCompleto",
                           paquete=medicion)
         self.queue.put(mensaje)
         return None
     except LundebyException:
         mensaje = Mensaje(destinatario="VistaDetallada",
                           mensaje="LundebyException")
         self.queue.put(mensaje)
         return None
 def escribir_book(self, book, path):
     from src.core.domain.coordinador_de_vistas import CoordinadorDeVistas
     CoordinadorDeVistas.mostrar_vista("VistaPantallaEsperaExportar")
     book.save_as(path)
     self.queue.put(
         Mensaje(destinatario="VistaPrincipal",
                 mensaje="ExportacionCompleta"))
    def guardar_archivo(self, medicion):

        dialogo = DialogoExportarMedicion()
        try:
            with self.abrir_dialogo(dialogo) as archivo:

                ri = medicion.get_respuesta_impulsional()
                cd = medicion.get_curva_decaimiento()
                edt = medicion.get_edt()
                t20 = medicion.get_t20()
                t30 = medicion.get_t30()
                curvatura = medicion.get_curvatura()
                book = OrderedDict()
                book["Respuesta impulsional"] = self.generar_sheet_senal(ri)
                book["Curva de decaimiento"] = self.generar_sheet_senal(cd)
                book["Tiempos de reverberación"] = self.generar_sheet_rts(
                    edt, t20, t30, curvatura)
                book_excel = pyexcel.get_book(bookdict=book)

                thread_exportar = Thread(target=self.escribir_book,
                                         args=(
                                             book_excel,
                                             archivo.name,
                                         ),
                                         daemon=False)
                thread_exportar.start()

        except IOException:
            print("Archivo inaccesible o dialogo cancelado")
            self.pantalla_principal_subject.on_next(
                Mensaje(destinatario="VistaPrincipal",
                        mensaje="ExportacionCancelada"))
예제 #5
0
    def parsear_datos(self, datos_string):
        datos_separados = datos_string.split("$")
        datos_separados.pop(0)
        fs = int(datos_separados[0])
        valores_ri = self.parsear_lista_flotantes(datos_separados[1])
        valores_cd = self.parsear_lista_flotantes(datos_separados[2])
        valores_edt = self.parsear_lista_flotantes(datos_separados[3])
        valores_t20 = self.parsear_lista_flotantes(datos_separados[4])
        valores_t30 = self.parsear_lista_flotantes(datos_separados[5])
        curvatura = float(datos_separados[6])

        ri = SenalAudio(fs, valores_ri)
        cd = SenalAudio(fs, valores_cd)
        edt = self.constrruir_rt(valores_edt)
        t20 = self.constrruir_rt(valores_t20)
        t30 = self.constrruir_rt(valores_t30)

        medicion = Medicion(ri, cd, edt, t20, t30, curvatura, nivel=True)
        self.queue.put(Mensaje(destinatario="VistaPrincipal", mensaje="CargaCompleta", paquete=medicion))
 def cerrar_pantalla_espera(self):
     mensaje_cerrar_pantalla_espera = Mensaje("VistaPantallaEsperaMedir",
                                              "Cerrar")
     self.pantalla_espera_subject.on_next(mensaje_cerrar_pantalla_espera)
     self.desbloquear_controles()
 def on_cerrar_ventana(self):
     mensaje_activar_boton = Mensaje(destinatario="VistaPrincipal", mensaje="ActivarBotonVistaDetallada")
     self.pantalla_principal_subject.on_next(mensaje_activar_boton)
     self.view.ocultar_vista()
 def on_cerrar_ventana(self):
     mensaje_activar_boton = Mensaje(destinatario="VistaDetallada",
                                     mensaje="ActivarBotonInstrucciones")
     self.vista_detallada_subject.on_next(mensaje_activar_boton)
     self.view.ocultar_vista()