Morse
um aplicativo simples feito para texto para conversão de morse
Baixar apk
Disponível na Play Store em breve!




Características
Morse é feito para converter qualquer texto em morse.
Saída
O usuário pode decidir usar as caixas de seleção de que maneira ele deseja enviar o Morse:
- Tom: uma boa onda senoidal de 440 Hz fica desbotada dentro e fora (se possível)
- Flash: o flash da câmera de dispositivo é usado para morar lento, mas brilhante e visível
- Antecedentes: o fundo do aplicativo também é capaz de piscar nas velocidades mais rápidas
Morsing
Morse está em conformidade com todas as 4 velocidades independentes:
- 60 ms
- 120 ms
- 240 ms
- 1200 ms
(MS por DIT)
Todo o alfabeto internacional de Morse é suportado, todas as letas não suportadas são tratadas como um espaço.
(Conforme listado nesta entrada da Wikipedia alemã: Morse Tabelle)
Interface do usuário
Morse apresenta uma interface de usuário bastante simplista.
- um campo de entrada para digitar o ClearText que será convertido
- 2 campos de texto mostrando status, letra atual e o código Morse de acordo
- uma barra de progresso mostrando o progresso de Morse em andamento
- um botão para iniciar e interromper o processo de lama
- 3 caixas de seleção para selecionar saídas:
- um controle deslizante para selecionar a velocidade
- e um pequeno campo de texto abaixo do controle deslizante para exibir a velocidade atualmente selecionada em MS
Morse também se adapta se o teclado soft for chamado, embora isso seja ajustado, porque em alguns dispositivos com grandes elementos da interface do usuário ou em uma tela pequena, isso resulta em componentes sobrepostos.
Estrutura de código
A maior parte do trabalho é realizada dentro da atividade principal, mas várias tarefas como a criação do som são gerenciadas por diferentes classes.
Bibliotecas de som:
Morse usa 2 bibliotecas de som diferentes no momento, devido ao melhor desempenho um do outro em velocidades diferentes.
- PerfectTune by Karlotoy é melhor em alta velocidade
- Uma versão própria combinada do PerfectTune e algum código de Stackoverflow apresenta um efeito desbotado e desbotado, mas quebra muito em alta velocidade.
- Um terceiro gerador da Stackoverflow apenas mantido como fonte para a própria versão, mas atualmente não utilizada
Variáveis estáticas:
- Tag de string: usado para fins de depuração e log
- Int Speedbar: velocidade atual selecionada pelo usuário
- Boolean Active: se um processo de lama estiver ativo atualmente
- Trabalhador de tópicos: Segundo tópico para Morsing para não bloquear a interface do usuário
- Boolean FlashAvailable: é definido em OnCreate (), define se o dispositivo tiver um flash disponível
- Boolean Boxflash: Se a caixa de seleção para o flash for verificada
- Boolean Boxtone: Se a caixa de seleção para o tom for verificada
- Boolean Boxbackground: se a caixa de seleção para o fundo for verificada
- Restantlayout restringlayout: referência estática à restrição de gerenciamento de segundos threads
- Contexto do contexto: Referência estática ao contexto da MainActivity
- Flash booleano: variável definindo se o flash deve estar ligado, usado durante o chão, processado por um terceiro thread
- Int permission_request_camera: static int para identificar durante o procedimento de solicitação de permissão
Funções importantes:
- OnCreate: configura coisas pela primeira vez
- EncodeButtonClick: inicia todo o processo de foder, incluindo um segundo tópico ou interrompe se houver um em execução
- Morse: Função geral para gerenciar o processo inteiro, retorna true se Morse terminou e falsa se Morse for cancelado
- UpdateInfo: Função Simples Beeing Chamado principalmente do processo de Morsing para atualizar a interface do usuário
Mapa de código morse
Todo o código Morse é salvo em um grande mapa. Isso facilita o gerenciamento e também permite solicitar o código Morse para uma carta usando o morse.get (caractere)
Função codeButtonClick:
Inicia todo o processo de foder, incluindo um segundo tópico ou o interrompe se houver um em execução

Esta função tem um plano de estrutura de programa disponível! Baixe Pap ou download/View PDF
Função morse
A função Morse faz tudo interessante e é muito importante, por isso recebe sua própria descrição
- O Thread CamWorker é criado para o Beeing, que gerenciará o Flash mais tarde, porque ligar e desligar aparentemente leva algum tempo e atravessaria o tempo preciso do Morse.
- Primeiro para o loop, geralmente emoldurando Tourgh todos os personagens do texto de entrada
- Se a declaração verificando se o próximo personagem precisa de ameaças especiais como espaços ou não
- Caso contrário, inicia um pequeno para o loop coletando os símbolos Morse para exibição
- Segundo para loops de loop em todos os segmentos do personagem
- Dependendo dos tipos de saída selecionados, as saídas são ativadas
- ou o tom é reproduzido por um tempo definido ou se a saída de tom for desativada, exatamente o mesmo comprimento está sendo esperado
- As saídas selecionadas são desligadas novamente
- O DIT vazio entre os sinais de mordida está sendo esperado
- O tempo entre as cartas é a Beeing esperou

Esta função tem um plano de estrutura de programa disponível! Baixe Pap ou download/View PDF
Permissões
Morse só precisa de permissão para a câmera para ativar o flash, mas é claro que funciona bem sem flash, se ainda não tiver a permissão. A permissão da câmera é solicitada no início do aplicativo. A caixa de seleção para Flash Grays Out se a permissão estiver ausente ou se o dispositivo não tiver um flash.
Arquivos XML
- strings.xml: o texto da mensagem padrão e a frequência sonora em Hz são definidos aqui
- Colors.xml: as cores padrão e as cores para o fundo e o texto invertidos são definidos aqui
- Activity_main.xml: arquivo de layout padrão para a atividade principal