Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import processing.serial.*;
- import controlP5.*;
- Serial puerto;
- ControlP5 ventana;
- String alerta = "", morse = "", palabra = "";
- //array con los caracteres validos
- char caracteres [] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'ñ', 'o', 'p', 'q','r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z','0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', ',', '?', '"', '!'};
- void setup(){
- //variable que se usa para configurar el campo de texto
- PFont fuente = createFont("arial", 25);
- //se define el tamaño de la ventana
- size(800, 300);
- //se valida si es posible crear una instancia del puerto serial
- //y configura la variable que controlara el puerto
- try{
- puerto = new Serial(this, Serial.list()[0], 9600);
- }
- catch(Exception e){
- //si hay un error se muestra una lista de los puertos disponibles
- println(Serial.list());
- }
- //se inicliza la variable acargo del contenido de la ventana
- ventana = new ControlP5(this);
- //se agrega un campo de texto
- ventana.addTextfield("Palabra", 50, 25, 400, 40)
- .setColor(color(255, 255, 255))
- .setFont(fuente)
- .setFocus(true);
- //se define la fuente para los mensajes de la ventana
- textFont(fuente);
- }
- void draw(){
- //se asigna un color de fondo negro
- background(0);
- //se muestra un texto de alerta (si hay alguna)
- text(alerta, 50, 100);
- text(morse, 50, 100);
- while(puerto.available() > 0){
- morse += puerto.readString();
- }
- }
- void controlEvent(ControlEvent e){
- //se obtiene el valor del campo de texto
- palabra = e.getStringValue();
- //se valida que el evento se haya detonado por un elemento
- //de la ventana
- if(e.isController()){
- //se verifica que la palabra no tenga ningun caracter invalido
- if(validarPalabra(palabra)){
- //se envia la palabra por el puerto serial
- try{
- puerto.write(palabra);
- }
- catch(Exception a){
- println(palabra.toLowerCase());
- }
- //se borra el mensaje de alerta (si lo hay)
- alerta = "";
- morse = "";
- morse = palabra + "\n";
- }
- else{
- //se muestra el mensaje de alerta con la palabra invalida
- alerta = "la palabra '" + palabra + "' \ncontiene un caracter no disponible";
- }
- }
- }
- void serialEvent(Serial puerto){
- }
- //metodo que se encarga de validar la palabra digitada
- boolean validarPalabra(String palabra){
- //variable que cuenta la cantidad de caracteres validos
- int validacion = 0;
- //se eliminan los espacios al inicio y al fin de la palabra
- palabra = palabra.trim().toLowerCase();
- print(palabra);
- //se recorre la palabra digitada caracter por caracter
- for(int i = 0; i < palabra.length(); i++){
- //se recorre el array de caracteres validos
- for(int j = 0; j < caracteres.length; j++){
- //se valida un caracter de la palabra digitada es igual a un caracter valido
- if(palabra.charAt(i) == caracteres[j]){
- //se cuenta un caracter valido
- validacion++;
- }
- //se valida si hay espacios vacios dentro de la palabra digitada
- }
- if(palabra.charAt(i) == ' ')
- validacion++;
- }
- print(validacion);
- print("-");
- println(palabra.length());
- //se valida si la cantidad de caracteres validos es igual a la cantidad
- //de caracteres de la palabra digitada
- if(validacion != palabra.length())
- return false;
- else
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement