From 063ee973cc8c43ee37483e3a8ebd5ea154c88342 Mon Sep 17 00:00:00 2001 From: "santiago.freire" <santiago.freire@fing.edu.uy> Date: Fri, 18 Jun 2021 14:18:31 -0300 Subject: [PATCH] greatly revamped gui, added progress bar, added feedback sounds, changed logic in many parts and much more --- dash.wav | Bin 0 -> 33028 bytes dicts.py | 26 +++---- dot.wav | Bin 0 -> 11160 bytes principal.py | 187 ++++++++++++++++++++++++++++---------------------- settings.json | 2 +- tripleDot.wav | Bin 0 -> 53672 bytes 6 files changed, 120 insertions(+), 95 deletions(-) create mode 100644 dash.wav create mode 100644 dot.wav create mode 100644 tripleDot.wav diff --git a/dash.wav b/dash.wav new file mode 100644 index 0000000000000000000000000000000000000000..64fb48cf2a489496fa9311cc665a4db313a77c73 GIT binary patch literal 33028 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 literal 0 HcmV?d00001 diff --git a/dicts.py b/dicts.py index 8d2aa09..b99a9ca 100644 --- a/dicts.py +++ b/dicts.py @@ -95,37 +95,39 @@ morse = { #Comandos especiales del programa '.-.-': 'EOM', '---.': 'MAYUS', + '------' : 'SALIR', } texto = { #tiempo entre letra y letra en módulo teclado - 'keyboardBig' : """Módulo teclado. Aquà los caracteres se ingresan mediante código Morse, es decir, puntos y guiones. Un soplido equivale a un guión y un aspiro a un punto. + 'keyboardBig' : """Instrucciones para módulo Teclado: -Para ver la tabla de equivalencias secuencia Morse a caracteres, presione el botón "Guia Morse" ubicado en la parte inferior derecha del programa. +Aquà los caracteres se ingresan mediante código Morse, es decir, puntos y guiones. Un soplido equivale a un guión y un aspiro a un punto. Para ver la tabla de equivalencias secuencia Morse a caracteres, presione el botón "Guia Morse" ubicado en la parte inferior derecha del programa. -Cada %s segundos el programa traduce la secuencia ingresada a un caracter y lo ingresa. Si se equivocó y no quiere ingresarlo, puede introducir siete o más señales Morse para cancelarlo. Si no desea esperar los segundos para que su secuencia sea interpretada, puede pulsar el botón de cambio para saltear la espera. - -En futuras versiones este botón será reemplazado por otro elemento accesible. +Cada %s segundos el programa traduce la secuencia ingresada a un caracter y lo ingresa, indicado sonoramente por tres puntos Morse. El indicador de progreso en la parte superior derecha indica el tiempo que le queda para ingresar su caracter. Si se equivocó y no quiere ingresarlo, puede introducir siete o más señales Morse para cancelarlo. Por defecto está activado el bloqueo de mayúsculas. Para desactivarlo, ingrese ---. (guión guión guión punto); si desea activarlo de vuelta, ingrese la misma secuencia nuevamente. -Para volver al módulo Mouse, ingrese la secuencia EOM .-.- (punto guión punto guión) +Para volver al módulo Mouse, ingrese la secuencia EOM .-.- (punto guión punto guión). + +Para salir del programa, ingrese ------ (6 guiones). -Nota: Los botones Guardar, GuÃa Morse y Salir no tienen efecto en el modo teclado. Para utilizarlos, cambie al modo mouse.""" %keyTimeout, +Nota: Los botones Guardar, Cambiar a teclado, GuÃa Morse y Salir no tienen efecto en el modo teclado. Para utilizarlos, cambie al modo mouse.""" %keyTimeout, #el % está para sustituir ese valor por el contenido en los ajustes, al estilo printf de C - 'mouseBig' : """Módulo Mouse. + 'mouseBig' : """Instrucciones para módulo Mouse: -Sople para cambiar de etapa. Aspire para hacer click. -Aspire de forma seguida por %s segundos para salir. +Sople para cambiar de etapa. Aspire para hacer click. Aspire de forma seguida por %s segundos o presione "Cambiar a teclado" para utilizar el teclado. Presione 'Salir' para cerrar el programa. -Este módulo está dividido en tres etapas: +Este módulo está dividido en tres etapas. En todos los casos hacer click mediante aspirado hace que se regrese a la etapa 0. Etapa 0: Etapa inicial. El cursor se mantiene quieto. Etapa 1: El cursor se mueve hacia la derecha, y se puede detener pasando de etapa o haciendo click mediante aspirado. Etapa 2: El cursor se mueve hacia abajo, y se puede detener pasando de etapa o haciendo click mediante aspirado. -En todos los casos hacer click mediante aspirado hace que se regrese a la etapa 0.""" %sipTimeout, +Siempre que el cursor llegue a algún borde, seguirá su camino por el contrario. Por ejemplo, si el cursor se está moviendo hacia la derecha y llega al borde derecho, se moverá al borde izquierdo y continuará moviéndose a la derecha, manteniendo su posición vertical. + +Notar que el cuadro superior al de ajustes es de uso del módulo teclado, y no tiene ningún propósito al utilizar el mouse.""" %sipTimeout, } diff --git a/dot.wav b/dot.wav new file mode 100644 index 0000000000000000000000000000000000000000..132f8d184259456baac1be44f5c7f789dba9772c GIT binary patch literal 11160 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 literal 0 HcmV?d00001 diff --git a/principal.py b/principal.py index e3f60ee..0e65bb1 100755 --- a/principal.py +++ b/principal.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- #Implementación de teclado y mouse virtual controlado por un sensor Sip&Puff conectado a la placa USB4Butiá. -#Parte del proyecto Sip&Puff4Butiá. +#Parte del proyecto Sip&Puff4Butiá. Entrada de Wiki Butiá disponible en https://sipandpuff4butia.santiagofreire.com/. #Desarrollado por Santiago Freire <santiago.freire@fing.edu.uy> import sys @@ -30,15 +30,20 @@ robot = usb4butia.USB4Butia() #Para poder mover el cursor a los bordes de la pantalla pyautogui.FAILSAFE = False + #Chequeo inicial if robot.getButton(5) == -1: if robot.getButton(4) == -1: - print "Soplido y Aspirado no conectados." + sg.PopupAutoClose('Soplido y Aspirado no conectados. Saliendo.', keep_on_top=True) quit() else: - print "Soplido no conectado" + sg.PopupAutoClose('Soplido no conectado. Saliendo.', keep_on_top=True) quit() +elif robot.getButton(4) == -1: + sg.PopupAutoClose('Aspirado no conectado. Saliendo.', keep_on_top=True) + +###Función para guardar ajustes en settings.json def guardarAjustes(newSettings): #Los nuevos ajustes los recibo en formato JSON @@ -70,7 +75,9 @@ def guardarAjustes(newSettings): #Chequeo de rango #El chequeo de rango se hace para evitar que se ingresen valores erróneos que darÃan errores en el programa o harÃan imposible su uso. En el caso de que se considere necesario, se podrÃan cambiar estos lÃmites en este mismo archivo. - if keyTimeout >= 3 and keyTimeout <= 60: + #Es 5 porque es el mÃnimo de tiempo en que se puede ingresar un número. Por ejemplo, si el usuario accidentalmente ingresa un valor muy bajo en los ajustes del keyTimeout, puede hacer EOM (4 segundos mÃnimo), mover el mouse hasta el cuadro de ajustes y poner un número más alto (ej: 9, ----. , 5 segundos mÃnimo) + #Como cada guión o punto tiene una separación de poco menos de un segundo entre sÃ, es que esto es de esta forma. + if keyTimeout >= 5 and keyTimeout <= 60: saveKT = True else: saveKT = False @@ -118,14 +125,15 @@ def guardarAjustes(newSettings): with open('settings.json','w') as setDict: json.dump(resSettings,setDict) +###Módulo teclado def keyboard(window,salgo): cambiarTextoGUI('_OUTPUT_',window,dicts.texto.get('keyboardBig')) + cambiarTextoGUI('__ACTUAL__',window,'Programa actual: Teclado') #Guardo el módulo que se está ejecutando actualmente actual = 'keyboard' - print "Bloq Mayus activado. Para desactivar, ingrese ---." mayus = 1 #Tiempo entre secuencias Morse, obtenido del diccionario de ajustes @@ -135,18 +143,26 @@ def keyboard(window,salgo): while resCaracter != 'EOM' and resCaracter != 'eom' and salgo == False: - t_end = time.time() + tiempoChar + #Feedback sonoro de arranque de tiempo de interpretación + playsound('tripleDot.wav') + + t_inicial = time.time() + t_end = t_inicial + tiempoChar + + #Para contar los segundos transcurridos y mostrarlos en el progress bar + contador = 0 #string resultado resSecuencia = "" - final = robot.getButton(2) - #Armo la secuencia morse durante los tiempoChar segundos - while time.time() < t_end and final != 1: + while time.time() < t_end: soplido = robot.getButton(5) aspiro = robot.getButton(4) - final = robot.getButton(2) + + if time.time() >= t_inicial + contador: + window.Element('__PROGRESS__').UpdateBar(contador) + contador = contador + 1 #El soplido es un guión if soplido == 1: @@ -155,7 +171,7 @@ def keyboard(window,salgo): resSecuencia = (resSecuencia + '-') #Feedback sonoro - # playsound('dash.wav') + playsound('dash.wav') #Actualizo el feedback cambiarTextoGUI('_FEEDBACK_',window,resSecuencia) @@ -171,7 +187,7 @@ def keyboard(window,salgo): resSecuencia = (resSecuencia + '.') #Feedback sonoro - # playsound('dot.wav') + playsound('dot.wav') #Actualizo el feedback cambiarTextoGUI('_FEEDBACK_',window,resSecuencia) @@ -185,7 +201,6 @@ def keyboard(window,salgo): #Paso de código Morse a caracter utilizando el diccionario morse importado anteriormente incluido en el archivo de diccionarios resCaracter = dicts.morse.get(resSecuencia) - print resCaracter #Reseteo el feedback de la secuencia Morse cambiarTextoGUI('_FEEDBACK_',window,'') @@ -199,7 +214,7 @@ def keyboard(window,salgo): cambiarTextoGUI('_TRANSLATION_',window,resCaracter) #Si no recibà ningún caracter especial, presiono la tecla. - if resCaracter != None and resCaracter != 'EOM' and resCaracter != 'eom' and resCaracter != 'MAYUS' and resCaracter != 'mayus': + if resCaracter not in {None,'EOM','eom','MAYUS','mayus','SALIR','salir'}: #Si los caracteres están en los que puede insertar pyautogui, presiono la tecla. if resCaracter not in dicts.cEsp: @@ -214,36 +229,47 @@ def keyboard(window,salgo): #Si recibo una secuencia vacÃa o que no corresponde a ningún caracter elif resCaracter == None: cambiarTextoGUI('_TRANSLATION_',window,'Nada') + #Implementación de Bloq Mayus elif resCaracter == 'MAYUS': + sg.PopupAutoClose('Bloq Mayus desactivado.', keep_on_top=True) mayus = 0 - + resCaracter = None + elif resCaracter == 'mayus': + sg.PopupAutoClose('Bloq Mayus activado.', keep_on_top=True) mayus = 1 - - #Para dar estabilidad - if final == 1: - time.sleep(0.5) + resCaracter = None + + #Para salir del programa + elif resCaracter in {'SALIR','salir'}: + sg.PopupAutoClose('Saliendo del programa.', keep_on_top=True) + quit() #Para cancelar, en caso de error al ingresar el código y para no simular ningún caracter, ingresar una secuencia de 7 o más caracteres. else: cambiarTextoGUI('_TRANSLATION_',window,'Cancelado') + #Cuando se ingresa un EOM, vuelvo al módulo de mouse saliendo del subprograma. sg.PopupAutoClose('Cambiando a mouse.', keep_on_top=True) + + #Reseteo el indicador de progreso, para dejarlo en 0, siendo que no se usa en el módulo Mouse. + window.Element('__PROGRESS__').UpdateBar(0) + + #Hago verdadera mi variable para salir salgo = True +###Módulo mouse def mouse(window,salgo): -# print "entré." - - #El error en X está entre estos dos prints, pues con el debug vemos que no pasa de acá + #Actualizo las instrucciones y el programa actual cambiarTextoGUI('_OUTPUT_',window,dicts.texto.get('mouseBig')) + cambiarTextoGUI('__ACTUAL__',window,'Programa actual: Mouse') #Elimino el feedback de la parte de teclado cambiarTextoGUI('_FEEDBACK_',window,'') cambiarTextoGUI('_TRANSLATION_',window,'') -# print "cambié texto en gui." #Guardo el módulo que está ejecutándose actualmente actual = 'mouse' @@ -256,54 +282,48 @@ def mouse(window,salgo): #Tamaño total de la pantalla sizeX,sizeY = pyautogui.size() - #Muevo el cursor al centro de la pantalla - pyautogui.moveTo(sizeX/2,sizeY/2) - - #Inicializo las posiciones actuales del cursor - actX = sizeX/2 - actY = sizeY/2 - - #Para cambiar al módulo de teclado, presiono el botón. - cambio = robot.getButton(2) + #Inicializo las posiciones actuales del cursor en donde está al momento de llamada la función + actX, actY = pyautogui.position() #La etapa inicial es 0. etapa = 0 event, values = window.Read(timeout=10) -# print "volvà a leer events and values." #Mientras no reciba la orden de cambiar de módulo - while cambio != 1 and salgo == False: + while salgo == False: soplido = robot.getButton(5) aspiro = robot.getButton(4) - cambio = robot.getButton(2) - #Mantengo el cursor quieto a menos que reciba orden de moverlo o hacer click - while etapa == 0 and cambio == 0 and salgo == False: + #Mantengo el cursor quieto a menos que reciba orden de moverlo, hacer click o salir + while etapa == 0 and salgo == False: -# print "entré al while." - #Será acá el error del X Window System? #Si no recibo nada fuera de lo normal, no hago nada. - while aspiro == 0 and soplido == 0 and cambio == 0 and salgo == False and event != 'Guardar' and event != 'Ajustes' and event != 'Salir' and event != 'Guia Morse': + while aspiro == 0 and soplido == 0 and salgo == False and event not in {'Guardar','Ajustes','Salir','Guia Morse','Cambiar a teclado'}: event, values = window.Read(timeout=10) -# print "leà otra vez events and values." soplido = robot.getButton(5) aspiro = robot.getButton(4) - cambio = robot.getButton(2) + #Guardo los ajustes ingresados con la función guardarAjustes if event == 'Guardar': event = '' - #Tiene formato JSON guardarAjustes(values) sg.PopupAutoClose('Ajustes guardados. Reinicie el programa para que tengan efecto.', keep_on_top=True) + #Cambio al módulo teclado + if event == 'Cambiar a teclado': + event = '' + sg.PopupAutoClose('Cambiando a teclado.', keep_on_top=True) + salgo = True + + #Abro la guÃa almacenada en el archivo guide.jpg con el visor de imágenes predeterminado if event == 'Guia Morse': event = '' - #Abrir la guÃa almacenada en el archivo guide.jpg con el visor de imágenes predeterminado subprocess.call(['xdg-open', 'guide.jpg']) + #Salfo del programa if event == 'Salir': event = '' quit() @@ -330,11 +350,13 @@ def mouse(window,salgo): #tFinal-tInicial vendrÃa a ser una suerte de deltaT. if tFinal-tInicial >= constTimeout: - #Cambio de módulo - + #Hago un click extra para deseleccionar texto + pyautogui.click() + #Para no ingresar caracteres accidentalmente por seguir aspirando sg.PopupAutoClose('Puede dejar de aspirar.', keep_on_top=True) - # keyboard(textWindow) + + #Cambio de módulo salgo = True #Paso a la siguiente etapa @@ -348,12 +370,11 @@ def mouse(window,salgo): #Etapa 1: me muevo hacia la derecha #Si hago un click vuelvo a la etapa 0 - while etapa == 1 and cambio == 0: + while etapa == 1: - while aspiro == 0 and soplido == 0 and cambio == 0: + while aspiro == 0 and soplido == 0 : soplido = robot.getButton(5) aspiro = robot.getButton(4) - cambio = robot.getButton(2) #Si llegué al borde derecho de la pantalla, voy al izquierdo manteniendo mi posición en Y if actX >= sizeX-1: @@ -382,11 +403,10 @@ def mouse(window,salgo): #En la etapa 2, muevo el cursor hacia abajo mientras no reciba una orden de hacer click o de pasar de etapa. #Si hago click, vuelvo a la etapa 0. - while etapa == 2 and cambio == 0: - while aspiro == 0 and soplido == 0 and cambio == 0: + while etapa == 2: + while aspiro == 0 and soplido == 0: soplido = robot.getButton(5) aspiro = robot.getButton(4) - cambio = robot.getButton(2) #Si llegué al borde inferior de la pantalla voy al superior, manteniendo mi posición en X if actY >= sizeY-1: @@ -410,10 +430,7 @@ def mouse(window,salgo): time.sleep(0.5) soplido = robot.getButton(5) - #Cambio de módulo, de mouse a teclado. -# keyboard(textWindow) - -#Cambio el texto del elemento identificado por 'key' en la ventana 'window' por 'text' +#Función para cambiar el texto del elemento identificado por 'key' en la ventana 'window' por 'text' def cambiarTextoGUI(key,window,text): window.Element(key).Update(text) window.Refresh() @@ -427,62 +444,68 @@ sipTimeout = settings.get('sipTimeout') #Layout del GUI principal +#Tamaño de la ventana del programa en pÃxeles +wSizeX = 1200 +wSizeY = 510 + #Layout de la parte izquierda textHelp = [ - [sg.Multiline('', key='_OUTPUT_', font=('Helvetica',10),size=(None,20),enable_events=True) ], + [sg.Multiline('', key='_OUTPUT_', font=('Helvetica',10),size=(None,21),enable_events=True) ], ] #Layout de la parte derecha feedbackText = [ - #en esta lÃnea irÃa el progress bar para el keyTimeout - [sg.Text('This is a placeholder for the progress bar.')], - #Los espacios en blanco luego se cambian por puntos o guiones. Si los saco deja de funcionar. + [sg.Text('Tiempo:', justification='center', font=('Helvetica',10,'italic'))], + [sg.ProgressBar(keyTimeout,size=(200,15),key='__PROGRESS__')], [sg.Text('Secuencia Morse ingresada:', font=('Helvetica',10)), sg.Text(' ', key='_FEEDBACK_', font=('Helvetica',20), enable_events=True)], - #Tengo que ajustar el tamaño de este texto (con size=(a,b)) para que las palabras largas como backspace no aparezcan cortadas - [sg.Text('y equivale a: ',font=('Helvetica',10)), sg.Text(' ',key='_TRANSLATION_',font=('Helvetica',20), enable_events=True)], + [sg.Text('y equivale a: ',font=('Helvetica',10)), sg.Text('BACKSPACE',key='_TRANSLATION_',font=('Helvetica',20), size=(200,None), enable_events=True)], ] settingsLayout = [ - [sg.Text('Teclado', font=('Helvetica',10,'bold underline'))], - [sg.Text('Tiempo entre letra y letra (3-60)', size =(45, 1)), sg.InputText(keyTimeout, size=(20,1), key='__KTIMEOUT__')], - [sg.Text('Mouse', font=('Helvetica',10,'bold underline'))], + + [sg.Text('Ajustes', font=('Helvetica',10,'bold underline'))], + [sg.Text('Teclado:', font=('Helvetica',10,'underline'))], + [sg.Text('Tiempo entre letra y letra (5-60 segundos)', size =(45, 1)), sg.InputText(keyTimeout, size=(20,1), key='__KTIMEOUT__')], + [sg.Text('Mouse:', font=('Helvetica',10,'underline'))], [sg.Text('Velocidad del Mouse (1-250)', size =(45, 1)), sg.InputText(mouseSpeed, size=(20,1), key='__MSPEED__')], - [sg.Text('Tiempo de aspirado para cambiar a teclado (1-10)', size =(45, 1)), sg.InputText(sipTimeout, size=(20,1), key='__STIMEOUT__')], + [sg.Text('Tiempo de aspirado para cambiar a teclado (1-10 seg.)', size =(45, 1)), sg.InputText(sipTimeout, size=(20,1), key='__STIMEOUT__')], [sg.Button('Guardar', enable_events=True)], -# [sg.Text('Nota: Solo ingresar numeros en los rangos validos. Si se ingresa otra cosa, el cambio en ese campo no surtira efecto.', justification='center', font=('Helvetica',10,'italic'))], -# [sg.Text('Si se ingresa otra cosa, el cambio en ese campo no surtira efecto.', justification='center', font=('Helvetica',10,'italic'))], ] doubleLayout = [ [sg.Frame('',feedbackText, element_justification='c')], [sg.Frame('',settingsLayout, element_justification='c')], - [sg.Button('Guia Morse', enable_events=True), sg.Button('Salir', enable_events=True)], + [sg.Button('Cambiar a teclado', enable_events=True),sg.Button('Guia Morse', enable_events=True), sg.Button('Salir', enable_events=True)], ] #Layout combinada combinedLayout = [ - [sg.Text('Sip&Puff4Butia', size=(47, 1), justification='center', font=("Helvetica", 25))], - [sg.Column(textHelp, element_justification='c'), sg.Column(doubleLayout, element_justification='c')], + [sg.Text('Sip&Puff4Butia', size=(wSizeX, 1), justification='center', font=("Helvetica", 25))], + [sg.Text('', size=(wSizeX, 1), justification='center', font=("Helvetica", 15), key='__ACTUAL__')], + [sg.Column(textHelp, element_justification='center'), sg.Column(doubleLayout, element_justification='c')], ] - #Inicializo la GUI -textWindow = sg.Window('Sip&Puff4Butia', combinedLayout) - +textWindow = sg.Window('Sip&Puff4Butia', combinedLayout, size=(wSizeX,wSizeY)) event, values = textWindow.Read(timeout=10) -#Ejecuto una función otra tras otra -#Quizás pueda poner un solo salgo fuera del while, pues serÃa una variable global y no importarÃa qué pasase con ella dentro de los subprogramas. +#Tamaño total de la pantalla +sizeX,sizeY = pyautogui.size() + +#Muevo el cursor al centro de la pantalla +pyautogui.moveTo(sizeX/2,sizeY/2) + +#Variable para salir de los programas. Al volverse True dentro de ellos, se termina el subprograma y se cambia de módulo. +#Siendo que es global, fuera de ellos siempre será False, y al volver a llamarse los subprogramas dentro del while recibirán de parámetro esta variable como False. +salgo = False + +#Ejecuto una función otra tras otra, hasta que se llame quit() dentro de uno de los subprogramas. while True: - salgo = False mouse(textWindow,salgo) - salgo = False keyboard(textWindow,salgo) -#Cierro la ventana al finalizar -textWindow.Close() - +###Fin. diff --git a/settings.json b/settings.json index 7a098ee..a558aab 100644 --- a/settings.json +++ b/settings.json @@ -1 +1 @@ -{"mouseSpeed": 10, "sipTimeout": 3, "keyTimeout": 7} \ No newline at end of file +{"mouseSpeed": 10, "sipTimeout": 3, "keyTimeout": 10} \ No newline at end of file diff --git a/tripleDot.wav b/tripleDot.wav new file mode 100644 index 0000000000000000000000000000000000000000..a4473f2a65d5a8cf8ce68c14c25ff5215aba30f8 GIT binary patch literal 53672 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 literal 0 HcmV?d00001 -- GitLab