augusto0112

lab11.1

Oct 26th, 2016
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.71 KB | None | 0 0
  1. /*
  2. ********** Processing **********
  3.  * Laboratorio 11: Mensaje desde Processing a Matriz LED 8x8 a través de IC MAX7219.
  4.  * Autor: Cristian Augusto Restrepo
  5.  * Descripción:
  6.  *   Enviar desde una interfaz en Processing un mensaje a una matriz LED 8x8
  7.  *   (desplazándose de izquierda a derecha) a través de IC MAX7219.
  8. */
  9. import controlP5.*;
  10. import processing.serial.*;
  11.  
  12. Serial puerto;
  13. ControlP5 ventana;
  14. String alerta = "";
  15. //Array con los caracteres validos
  16. char caracteres [] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'ñ', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
  17.                       'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', ' '};
  18.  
  19. void setup(){
  20.   //variable que se usa para configurar el campo de texto
  21.   PFont fuente = createFont("arial", 25);
  22.   //se define el tamaño de la ventana
  23.   size(500, 300);
  24.   //se valida si es posible crear una instancia del puerto serial
  25.   //y configura la variable que controlara el puerto
  26.   try{
  27.     //String portName = Serial.list()[0];
  28.     String portName = Serial.list()[1];
  29.     puerto = new Serial(this, portName, 9600);
  30.   }
  31.   catch(Exception e){
  32.     //si hay un error se muestra una lista de los puertos disponibles
  33.    //println(Serial.list());
  34.    //printArray(Serial.list());
  35.   }
  36.   //se inicliza la variable acargo del contenido de la ventana
  37.   ventana = new ControlP5(this);
  38.   //se agrega un campo de texto
  39.   ventana.addTextfield("", 50, 25, 400, 40)
  40.          .setColor(color(255))
  41.          .setFont(fuente)
  42.          .setFocus(true);
  43.    //se define la fuente para los mensajes de la ventana
  44.   textFont(fuente);
  45. }
  46.  
  47. void draw(){
  48.   //se asigna un color de fondo negro
  49.   background(147);
  50.   //se muestra un texto de alerta (si hay alguna)
  51.   fill(255,0,4);
  52.   text(alerta, 50, 180);
  53.   fill(255);
  54.   text("Digite la palabra o la cadena de\npalabras sin espacios",50,100);
  55. }
  56.  
  57. void controlEvent(ControlEvent e){
  58.   //se obtiene el valor del campo de texto
  59.   String palabra = e.getStringValue();
  60.   //se valida que el evento se haya detonado por un elemento
  61.   //de la ventana
  62.   if(e.isController()){
  63.     //se verifica que la palabra no tenga ningun caracter invalido
  64.     if(validarPalabra(palabra)){
  65.       //se envia la palabra en minusculas por el puerto serial
  66.         puerto.write(palabra.toLowerCase());
  67.         //se borra el mensaje de alerta (si lo hay)
  68.         alerta = "Envió: '"+palabra+"'";
  69.     }
  70.     else{
  71.       //se muestra el mensaje de alerta con la palabra invalida
  72.       alerta = "'" + palabra + "' \nNo es un válido\nRevise si los caracteres son validos.";
  73.     }
  74.   }
  75. }
  76. //metodo que se encarga de validar la palabra digitada
  77. boolean validarPalabra(String palabra){
  78.   //variable que cuenta la cantidad de caracteres validos
  79.   int validacion = 0;
  80.   //se eliminan los espacios al inicio y al fin de la palabra Y se combierte a minuscula
  81.   palabra = palabra.trim().toLowerCase();
  82.  
  83.   //se recorre la palabra digitada caracter por caracter
  84.   for(int i = 0; i < palabra.length(); i++){
  85.     //se recorre el array de caracteres validos
  86.     for(int j = 0; j < caracteres.length; j++){
  87.       //se valida un caracter de la palabra digitada es igual a un caracter valido
  88.       if(palabra.charAt(i) == caracteres[j]){
  89.         //se cuenta un caracter valido
  90.           validacion++;
  91.       }
  92.       //se valida si hay espacios vacios dentro de la palabra digitada
  93.       if(palabra.charAt(i) == ' ')
  94.           validacion++;
  95.     }
  96.   }
  97.   print(validacion);
  98.   print("-");
  99.   println(palabra.length());
  100.   //se valida si la cantidad de caracteres validos es igual a la cantidad
  101.   //de caracteres de la palabra digitada
  102.   if(validacion != palabra.length())
  103.     return false;
  104.   else
  105.     return true;
  106. }
Add Comment
Please, Sign In to add comment