Masse
Une application simple faite pour la conversion de texte à Morse
Télécharger l'apk
Disponible sur Play Store bientôt!




Caractéristiques
Morse est fait pour convertir un texte donné en Morse.
Sortir
L'utilisateur est en mesure de décider d'utiliser des cases à cocher sur quel sens il souhaite envoyer le Morse:
- Tone: un joli sinwave de 440 Hz se décolore (s'il est possible de temps)
- Flash: Le flash de l'appareil photo de l'appareil est utilisé pour Morse lent mais brillant et visible
- Contexte: L'arrière-plan de l'application est également capable de flasher dans les vitesses plus rapides
Morsation
Morse est conforme aux 4 vitesses autonomes:
- 60 ms
- 120 ms
- 240 ms
- 1200 ms
(MS par DIT)
L'ensemble de l'alphabet international Morse est soutenu, chaque lettre non soutenue est traitée comme un espace.
(comme indiqué dans cette entrée de Wikipedia allemande: Morse Tabelle)
Interface utilisateur
Morse propose une interface utilisateur plutôt simpliste.
- un champ de saisie pour taper ClearText qui sera converti
- 2 champs de texte indiquant l'état, la lettre actuelle et le code Morse selon
- une barre de progression montrant les progrès de Morse en cours
- un bouton pour démarrer et arrêter le processus de morsion
- 3 cases à cocher pour sélectionner les sorties:
- un curseur pour sélectionner la vitesse
- et un petit champ de texte sous le curseur pour afficher la vitesse actuellement sélectionnée dans MS
Morse s'adapte également si le clavier souple est invoqué, bien que cela soit ajusté, car sur certains appareils avec de grands éléments d'interface utilisateur ou un petit écran, cela se traduit par des composants qui se chevauchent.
Structure de code
La plupart des travaux se font dans la mainactivité, mais plusieurs tâches telles que la création du son sont gérées par différentes classes.
Bibliothèques sonores:
Morse utilise 2 bibliothèques sonores différentes pour le moment, en raison des meilleures performances de l'autre à différentes vitesses.
- PerfectTune de Karlotoy est meilleur à grande vitesse
- Une propre version combinée à partir de PerfectTune et un code Stackoverflow présente un effet de décoloration et de décolorer, mais réchappe beaucoup à grande vitesse.
- Un troisième générateur de Stackoverflow est resté comme source pour la propre version, mais actuellement inutilisé
Variables statiques:
- Tag de chaîne: utilisé à des fins de débogage et de journalisation
- Int Speedbar: vitesse actuelle sélectionnée par l'utilisateur
- Booléen actif: si un processus de lunette est actuellement actif
- Travailleur de thread: deuxième fil pour la façon de ne pas verrouiller l'interface utilisateur
- Booléen flashavailable: se déroule dans onCreate (), définit si l'appareil a un flash disponible
- Boolean BoxFlash: Si la case à cocher du flash est cochée
- Boolean boxtone: si la case à cocher du ton est cochée
- Boolean BoxBackground: Si la case à cocher pour l'arrière-plan est cochée
- CONSTRAINTLAYOUT CONSTRAINELAYOUT: Référence statique à CONSTRAINTLAYOut pour la gérer à partir du deuxième thread
- Contexte de contexte: référence statique au contexte mainactivité
- Flash booléen: variable définissant si le flash doit être allumé, utilisé pendant la morsation, traité par un troisième fil
- Int permission_request_camera: static int pour s'identifier pendant la procédure de demande d'autorisation
Fonctions importantes:
- OnCreate: installe des trucs pour la première fois
- EncodeButtonClick: démarre l'ensemble du processus de lune
- MORSE: fonction générale pour gérer le processus de morsation entier, revient vrai si Morse est terminé et faux si Morse a été annulé
- UpdateInfo: une fonction simple Being appelée principalement du processus de morsing pour mettre à jour l'interface utilisateur
Carte de code Morse
L'ensemble du code Morse est enregistré dans une grande carte. Cela facilite la gestion et permet également de demander le code Morse pour une lettre en utilisant Morse.get (caractère)
Fonction encodebuttonclick:
démarre l'ensemble du processus de morsation, y compris un deuxième fil ou l'arrête s'il y a un

Cette fonction a un plan de structure de programme disponible! Télécharger PAP ou télécharger / voir PDF
Fonction Morse
La fonction Morse fait tout ce qui est intéressant et est assez important, donc il obtient sa propre description
- Le fil Camworker est créé, qui gérera l'activation de Flash plus tard, car allumer et éteindre le flash prend apparemment un certain temps et gâcherait le timing précis du Morse.
- Premier pour la boucle en boucle en boucle de chaque caractère du texte d'entrée
- Si une déclaration vérifie si le personnage suivant a besoin d'une menace spéciale comme des espaces ou non
- Sinon, il démarre un petit pour la boucle collectant les symboles Morse pour l'affichage
- Deuxième pour les boucles de boucle à travers chaque segment de lunette du personnage
- Selon les types de sortie sélectionnés, les sorties sont activées
- Soit le ton est joué pendant une période définie, soit si la sortie du ton est désactivée, la même longueur est attendue
- Les sorties sélectionnées sont à nouveau désactivées
- Le DIT vide entre les signaux de morsing est attendu
- Le temps entre les lettres est attendu

Cette fonction a un plan de structure de programme disponible! Télécharger PAP ou télécharger / voir PDF
Autorisation
Morse n'a besoin que de la permission de l'appareil photo pour activer le flash, mais cela fonctionne bien sûr bien sans flash s'il n'a pas encore obtenu l'autorisation. L'autorisation de la caméra est demandée au début de l'application. La boîte de sélection pour Flash Grays Out si l'autorisation est manquante ou si l'appareil n'a pas de flash.
Fichiers XML
- Strings.xml: Le texte du message par défaut et la fréquence sonore en Hz sont définis ici
- couleurs.xml: les couleurs standard et les couleurs pour l'arrière-plan et le texte inversés sont définis ici
- activité_main.xml: fichier de mise en page standard pour l'activité principale