Download - Creando Una Aplicacion JAVA

Transcript
  • 8/3/2019 Creando Una Aplicacion JAVA

    1/12

    Creando una aplicacion JAVA + JPICUSB

    Herramientas:

    JPICUSB 1.0http://divideandconquer.com.ar/dyq/2009/01/jpicusb-comunicacion-pic-usb-usando-java/

    NetBeans IDE 6.5http://www.netbeans.org/downloads/start.html?platform=windows&lang=en&option=javase&version=6.5

    A tener en cuenta:

    -Todo archivo Java debe contener una clase cuyo nombre sea identico al nombre delarchivo

    -La clase que contenga el metodo estatico publico "public static void main(String[]args)", puede ser usada comoMain Class (equivalente al main de C)

    -Todos los metodos de la inerfaz jpicusb son estaticos, por lo que no es necesariocrear una instancia de la clase para utilizarlos.

    Pasos a Seguir:

    1_ Creamos una carpeta donde alojaremos nuestra aplicacion, en mi casoD:\jPicUSB_Test\

    2_ Instalamos y Ejecutamos NetBeans IDE 6.5 3_ Creamos un nuevo Proyecto

    o 3_1_ File -> New Projecto 3_2_ Choose Project

    Esto nos presenta una ventana donde la IDE nos presenta que tipo de

    proyectos puede crear.Despues de Leer la descripcion de los posibles proyectos, nos inclinamos

    sobre "Java Application" de la categoria "Java"o 3_2_ Name and Location

    Aca proporcionamos la ubicacion y nombre de nuestro proyectoProject Name: yo eleji JavaUSB

    Project Location: D:\jPicUSB_Test\ la carpeta que creamos para alojarnuestro proyecto en el paso 1_

    Nota: La IDE creara una carpeta D:\jPicUSB_Test\JavaUSB para alojar lasfuentes de la aplicacion.

    o 3_3_ Presionamos en Finish asi NetBeans crea el esqueleto para nuestroproyecto

    4_ Extraemos jpicusb1.0.rar en nuestra carpeta D:\jPicUSB_Test\Asi obtenemos el directorio D:\jPicUSB_Test\jpicusb1.0\ que contiene todas las

    librerias e interfaz para poder comunicarnos con nuestro PIC 5_ Agregamos la libreria jpicusb a nuestro proyecto

    http://divideandconquer.com.ar/dyq/2009/01/jpicusb-comunicacion-pic-usb-usando-java/http://divideandconquer.com.ar/dyq/2009/01/jpicusb-comunicacion-pic-usb-usando-java/http://divideandconquer.com.ar/dyq/2009/01/jpicusb-comunicacion-pic-usb-usando-java/http://divideandconquer.com.ar/dyq/2009/01/jpicusb-comunicacion-pic-usb-usando-java/http://www.netbeans.org/downloads/start.html?platform=windows&lang=en&option=javase&version=6.5http://www.netbeans.org/downloads/start.html?platform=windows&lang=en&option=javase&version=6.5http://www.netbeans.org/downloads/start.html?platform=windows&lang=en&option=javase&version=6.5http://www.netbeans.org/downloads/start.html?platform=windows&lang=en&option=javase&version=6.5http://www.netbeans.org/downloads/start.html?platform=windows&lang=en&option=javase&version=6.5http://divideandconquer.com.ar/dyq/2009/01/jpicusb-comunicacion-pic-usb-usando-java/http://divideandconquer.com.ar/dyq/2009/01/jpicusb-comunicacion-pic-usb-usando-java/
  • 8/3/2019 Creando Una Aplicacion JAVA

    2/12

    o 5_1_ En el arbol de nuestro Proyecto, presionamos con el boton derechosobre Libraries y elejimos la opcion Add JAR/Folder.

    o 5_2_ Elejimos el archivo jpicusb.jar ubicado en la carpeta que acabamos deextraer, en mi caso D:\jPicUSB_Test\jpicusb1.0\jpicusb.jar

  • 8/3/2019 Creando Una Aplicacion JAVA

    3/12

    o 5_3_ Ahora podemos corroborar que la libreria esta ubicada en arbol denuestro proyecto bajo el nodo Libraries

    Ahora nuestra aplicacion puede tomar 2 caminos diferentes.Podemos escribir una aplicacion sin interfaz grafica (consola) o con interfaz

    grafica.Si quisieramos hacer una aplicacion sin interfaz, hubieramos usado C, asi

    que nos decantamos en la 2da.

    6_ Borramos el archivo Main.java porque no nos sirve.o 6_1_ Boton derecho sobre Main.java -> Delete

    7_ Creamos una interfaz con la JFC Swingo 7_1_ Boton derecho sobre el paquete javausb que esta en "Source Packages"

    y nos dirijimos a New -> Other...

  • 8/3/2019 Creando Una Aplicacion JAVA

    4/12

    o7_2_ Nos dirijimos a la categoria "Swing GUI Forms"

    o 7_3_ Y despues de leer las descripciones nos inclinamos sobre "JFrameForm"

  • 8/3/2019 Creando Una Aplicacion JAVA

    5/12

    o 7_4_ Rellenamos la informacion sobre el JFrameClass Name: Principal

    o 7_5_ Y listo, le damos en finish, y vemos como nos creo un nuevo archivoPrincipal.java

    8_ Importamos la clase de la interfaz jpicusb. Esto lo hacemos en cada clase en laque vallamos a utilizar la interfaz jpicusb.

    o 8_1_ Editamos el archivo Principal.java dirijiendonos a la pestaa "Source"o 8_2_ Debajo del texto "package javausb;" agregamos nuestro import (como

    un include de C) "import jPicUsb.*;"

  • 8/3/2019 Creando Una Aplicacion JAVA

    6/12

    o 8_3_ Cambiamos la carpeta donde nuestro proyecto se ejecutara cuandoprobemos nuestra aplicacion usando el IDE. Esto lo hacemos asi nuestra

    aplicacion encuentre el archivo jpicusb.dll 8_3_1_ Boton derecho sobre la raiz de nuestro proyecto "JavaUSB"

    y elejimos la opcion Properties. 8_3_2_ Nos vamos a la seccion "Run" y en "Working Directory"

    elejimos la carpeta jpicusb1.0, en mi casoD:\jPicUSB_Test\jpicusb1.0\

  • 8/3/2019 Creando Una Aplicacion JAVA

    7/12

    9_ Iniciamos el vinculo con la interfaz llamando su metodo load(), lo que noshabilitara llamar a cualquier otro metodo. La llamada al metodo debe ser realizada

    solo una vez. Y puede ser llamada en cualquier lugar del codigo.o 9_1_ Buscamos el constructor de nuestra clase "public Principal()" y

    agregamos la linea "iface.load();"En versiones de jpicusb mayores a 1.0, se debe capturar la excepcion

    lanzada por load, es decir que en vez de la linea "iface.load();" se debenagregar las siguientes lineas:

    try{iface.load();

    }catch(Exception e){System.out.println("Error al cargar jpicusb.dll.");

    System.out.println(e.getMessage());return;

    }

  • 8/3/2019 Creando Una Aplicacion JAVA

    8/12

    10_ Agregamos un Boton y un TextBox (por fin esto da frutos)o 10_1_ Nos dirijimos a la pestaa Design de Principal.java y en la paleta de

    componentes, elejimos "Button" de la categoria "Swing Controls" y loagregamos a nuestro JFrame

    o 10_2_ Repetimos el paso anterior solo que ahora agregamos un Text Area.Luego de agregarlo, podemos cambiarle el tamao.

    o 10_3_ Cambiamos el texto de los componentes y la variable que losidentifica.

    Texto del Boton: Elejimos el boton, presionamos F2 y escribimos su Label,yo puse "Comando FirmWare Version" a pesar de lo que se vea en la

  • 8/3/2019 Creando Una Aplicacion JAVA

    9/12

    imagen (Boton) =P.

    Variable: Apretamos con el boton derecho sobre el boton y elejimos"Change Variable Name"

  • 8/3/2019 Creando Una Aplicacion JAVA

    10/12

    Hacemos lo mismo para cambiar el nombre de la variable del "jTextArea1"

    a "texto".No le cambiamos el texto que contiene porque es al vicio.

    11_ Agregamos codigo el codigo que se ejecutara al presionar el boton.Lo que haremos sera enviar el comando 99 al pic y el nos respondera con una adenade 6 bytes indicando la version de su firmware.

    o 11_1_ Hacemos doble click sobre el boton para que nos lleve a la porcion decodigo que se ejecutara al hacerle click

    o 11_2_ Agregamos el codigo necesario para que la respuesta del pic seescriba en el Cuadro de Texto llamado "texto"

    private void botonActionPerformed(java.awt.event.ActionEvent evt) {//Creamos un arreglo de bytes de tamao 64

    byte[] out = new byte[64];//agregamos el comando 99 en el primer byte del arreglo

    out[0] = 99;//configuramos el vid_pid del dispositivo asi podemos usar las

    funciones "rapidas" de la interfaziface.set_vidpid("vid_04d8&pid_000b");

    //configuramos la instancia del dispositivo asi podemos usar lasfunciones "rapidas" de la interfaz

    iface.set_instance(0);try {

    //iface.WriteRead(byte[] salida, int writeout, int readin, longtimeoutmsec)

    //Parametro 1: arreglo de bytes con los datos a enviar (out)//Parametro 2: cantidad de bytes del arreglo que se enviaran via usb

    (1)//Parametro 3: cantidad de bytes que se esperan de respuesta via usb

    (6)//Parametro 4: tiempo maximo que se esperara al dispositivo en el

    envio y la recepcion (1 segundo)//Retorna: arreglo de bytes con la respuesta del dispositivo usb

    byte[] respuesta = iface.QWriteRead(out, 1, 6, 1000);//convertimos el arreglo de bytes recibido en una cadena con

    codificacion utf-8String data_in = new String(respuesta, "utf-8");

    //verificamos que se hallan recibido datosif (data_in.length() == 0) {

    texto.setText(texto.getText() + "No se recibieron datos\n");} else {

    texto.setText(texto.getText() + "Datos recibidos:" + data_in +"\n");

    }} catch (Exception ex) {

    System.out.println("ERROR:" + ex.getMessage());

  • 8/3/2019 Creando Una Aplicacion JAVA

    11/12

    }

    }

    12_ Ejecutamos y probamos el codigo.o 12_1_ Presionamos en el boton que tiene un Martillo, o presionamos F11

    para compilar nuestro codigo.

    o 12_2_ presionamos en el boton de Play, o presionamos F6 para ejecutarnuestro codigo recien compilado.

    Pero ahora, NetBeans nos avisa que no puede encontrar la Main Class quenuestro proyecto tenia, pues en el paso 6 borramos el archivo Main.java que

    contienia el metodo estatico "public static void main()", pero que no cundael panico, porque NetBeans nos avisa que encontro otra clase que tiene

    dicho metodo, y que puede ser usada como Main Class de la aplicacion, asique le damos a OK para que la configure como Main Class y listo.

    13_ Tenemos nuestro proyecto corriendo...Y vemos algunas screens.

    o 13_1_ Si presionamos el boton cuando el usb no esta conectado:

  • 8/3/2019 Creando Una Aplicacion JAVA

    12/12

    o 13_2_ Si presionamos el boton luego de conectar el usb: