morse
Una aplicación simple hecha para la conversión de texto a Morse
Descargar APK
Disponible en Play Store pronto!




Características
Morse está hecho para convertir cualquier texto dado en Morse.
Producción
El usuario puede decidir usar casillas de verificación de qué manera quiere enviar el Morse:
- Tono: una bonita onda sinusoidal de 440 Hz se desvanece dentro y fuera (si es posible, por tiempo posible)
- Flash: la cámara del dispositivo se usa para morse lento pero brillante y visible
- Antecedentes: el fondo de la aplicación también puede parpadear en las velocidades más rápidas
Bocina
Morse cumple con las 4 velocidades estándar:
- 60 ms
- 120 ms
- 240 ms
- 1200 ms
(MS por dit)
Se apoya todo el alfabeto internacional de Morse, cada carta no compatible se trata como un espacio.
(Como se enumera en esta entrada alemana de Wikipedia: Morse Tabelle)
Interfaz de usuario
Morse presenta una interfaz de usuario bastante simplista.
- un campo de entrada para escribir ClearText que se convertirá
- 2 campos de texto que muestran el estado, la letra actual y el código Morse según
- una barra de progreso que muestra el progreso de Morse en curso
- un botón para comenzar y detener el proceso de Morsing
- 3 casillas de verificación para seleccionar salidas:
- un control deslizante para seleccionar la velocidad
- y un pequeño campo de texto debajo del control deslizante para mostrar la velocidad seleccionada actualmente en MS
Morse también se adapta si se invoca el teclado suave, aunque esto se ajustará, porque en algunos dispositivos con grandes elementos de interfaz de usuario o una pequeña pantalla esto da como resultado componentes superpuestos.
Estructura de código
La mayor parte del trabajo se realiza dentro de la MainActivity, pero varias tareas, como crear el sonido, son manejadas por diferentes clases.
Bibliotecas de sonido:
Morse usa 2 bibliotecas de sonido diferentes en este momento, debido a un mejor rendimiento en diferentes velocidades.
- PerfectTune de Karlotoy es mejor en altas velocidades
- Una versión propia combinada de PerfectTune y algún código StackOverflow presenta un efecto desvanecimiento y desvanecido, pero cree mucho en altas velocidades.
- Un tercer generador de StackOverflow se mantuvo como fuente de la propia versión, pero actualmente no se usa
Variables estáticas:
- Etiqueta de cadena: utilizado para fines de depuración y registro
- Int speedbar: velocidad actual seleccionada por el usuario
- Boolean Active: si un proceso de Morsing está actualmente activo
- Work Worker: Segundo hilo para que Morsing no bloquee la interfaz de usuario
- Boolean FlashVailable: se establece en OnCreate (), define si el dispositivo tiene un flash disponible
- Boolean Boxflash: si se verifica la casilla de verificación para el flash
- Boolean boxtone: si se verifica la casilla de verificación para el tono
- Boolean BoxBackground: si la casilla de verificación para el fondo está marcada
- RestrictionLayout restringlaut: referencia estática al RestraintLayout para administrarlo desde el segundo hilo
- Contexto contexto: referencia estática al contexto de MainActividad
- Flash booleano: definición de variable si el flash debe estar encendido, utilizado durante la frazamiento, procesado por un tercer hilo
- Int permission_request_camera: static int para identificar durante el procedimiento de solicitud de permiso
Funciones importantes:
- OnCreate: establece cosas por primera vez
- EncodeButtonClick: inicia todo el proceso de Morsing, incluido un segundo hilo o lo detiene si hay uno en ejecución
- Morse: Función general para gestionar el proceso de Morsing completo, devuelve verdadero si Morse termina y falso si Morse ha sido cancelado
- UpdateInfo: Beeing de función simple llamada principalmente desde el proceso de Morsing para actualizar la interfaz de usuario
Mapa de código Morse
Todo el código Morse se guarda dentro de un gran mapa. Esto facilita la administración y también permite solicitar el código Morse para una carta usando Morse.get (carácter)
Función encodeButtonClick:
inicia todo el proceso de frazamiento, incluido un segundo hilo o lo detiene si hay uno en ejecución

¡Esta función tiene un plan de estructura de programa disponible! Descargar PAP o descargar/ver PDF
Función morse
La función Morse hace todo lo interesante y es bastante importante, por lo que obtiene su propia descripción
- El subprocesador de subprocesos está creado Beeing, que manejará encender el flash más adelante, porque encender y apagar aparentemente lleva bastante tiempo y arruinaría el momento preciso de la Morse.
- Primero para el bucle generalmente bucle en el bucle de cada carácter del texto de entrada
- Si la declaración verifica si el próximo personaje necesita una amenaza especial como espacios o no
- Si no, inicia un pequeño bucle para recolectar los símbolos de Morse para la pantalla
- Segundo para bucles de bucle a través de cada segmento de Morsing del personaje
- Dependiendo de los tipos de salida seleccionados, las salidas se activan
- O el tono se reproduce durante un tiempo definido o si la salida del tono se desactiva exactamente la misma longitud es la esperanza de ser esperada
- Las salidas seleccionadas se apagan nuevamente
- El dit vacío entre las señales de la madera está esperada
- El tiempo entre las letras es Beeing esperado

¡Esta función tiene un plan de estructura de programa disponible! Descargar PAP o descargar/ver PDF
Permisos
Morse solo necesita permiso para la cámara para activar el flash, pero por supuesto funciona bien sin flash si aún no ha obtenido el permiso. El permiso de la cámara se solicita al inicio de la aplicación. El cuadro de selección para Flash Grays, si falta el permiso o si el dispositivo carece de un flash.
Archivos XML
- Strings.xml: el texto del mensaje predeterminado y la frecuencia de sonido en HZ se define aquí
- Colors.xml: los colores estándar y los colores para el fondo invertido y el texto se definen aquí
- Activity_main.xml: archivo de diseño estándar para la actividad principal