Posteado por: [p3ll3] | Marzo 6, 2008

Puerto Paralelo , programacion en Java

Bueno este tutorial seria como la parte 3 de lo del Control del puerto paralelo, ya la teoria se explico ,resumidamente, pero se hizo.

Ahora para poder hacer una interfaz programada en Java se necesita lo siguiente:

  • Biblioteca jnpout32.dll
  • Tres archivos .java que son: uno para hacer el link con la biblioteca,
  • otro para declarar metodos y el ultimo para el codigo de la interfaz
  • y metodos del programa.

Aqui les dejo la descarga de los 4 archivos:

Aqui descarga rapidshare

Tambien les dejo una imagen del programa

Explico extracto del codigo,este es para encender todos los leds:

private void EncenderTodoMouseClicked(java.awt.event.MouseEvent evt) {

dos.setSelected(true);
tres.setSelected(true);
cuatro.setSelected(true);
cinco.setSelected(true);
seis.setSelected(true);
siete.setSelected(true);
ocho.setSelected(true);
nueve.setSelected(true);
dos.setBackground(new java.awt.Color(0,255,0));
tres.setBackground(new java.awt.Color(0,255,0));
cuatro.setBackground(new java.awt.Color(0,255,0));
cinco.setBackground(new java.awt.Color(0,255,0));
seis.setBackground(new java.awt.Color(0,255,0));
siete.setBackground(new java.awt.Color(0,255,0));
ocho.setBackground(new java.awt.Color(0,255,0));
nueve.setBackground(new java.awt.Color(0,255,0));

short datum = (short) 255; //esto es lo
// mas importante mando el dato maximo
// que soporta el puerto y esto hace que todos
// los leds se enciendan

short Addr = 0×378; // lo envio a los pines de datos

escribir(Addr,datum); // llamo al metodo

}

Aqui envio los datos desde el textfield:

private void EnviarMouseClicked(java.awt.event.MouseEvent evt) {

short datum = (short) Integer.parseInt(TF_Datos.getText());
short Addr =0×378;

lpt.output(Addr,datum);

//aqui pasa lo mismo que en el de arriba,
// lo que cambia es que obtengo el dato
// desde el JTF (java text field).
}

Bueno hasta aqui llega este tutorial del puerto paralelo, cualquier duda
o mejora que quieran compartir del programa no duden en dejar su opinion.


Respuestas

  1. PUES EL PROGRAMA ESTE MUY BIEN… SOLO TENGO UNA DUDA, DONDE TENGO QUE PONER EL .dll

  2. El dll se tiene que poner en la carpeta System32 de windows xp o en la carpeta WinNT para windows 2000.

    Proximamente estare dejando una actualizacion de ese programa…

  3. Que tal no puedo descargar los archivos que expones en este blog…

    gracias desde ya

  4. Yo si pude descargarlos , algo estas haciendo mal …

    Agregue otros dos mirrors de descarga.

  5. Muchas gracias por la ayuda. Mi pregunta es ¿Necesariamente hay que compilar el programa con Netbeans?

  6. Cuando trato de compilar me sale

    E:\JavaProjects\PruebaLed\src\Interfaz1.java:738: package org.netbeans.examples.lib.timerbean does not exist
    public static org.netbeans.examples.lib.timerbean.Timer Tiempo;

    ¿Qué debo hacer para solucionar este probelma?

  7. “Muchas gracias por la ayuda. Mi pregunta es ¿Necesariamente hay que compilar el programa con Netbeans?”

    No necesariamente , si se compila con Netbeans sale de una, si se utiliza otra IDE , hay que corregir los posibles errores de sintaxis.

  8. “Cuando trato de compilar me sale
    E:\JavaProjects\PruebaLed\src\Interfaz1.java:738: package org.netbeans.examples.lib.timerbean does not exist
    public static org.netbeans.examples.lib.timerbean.Timer Tiempo;
    ¿Qué debo hacer para solucionar este problema? “

    Actualizado el pack del codigo fuente, fijense si ese les sirve.

    Saludos……8)

  9. No se si esta pregunta es un poco tonta, pero al compilar el programa me dice que no encuentra la clase main.¿qué debo hacer para correr el programa?

  10. Se compilan todos los .java pero el que se tiene que ejecutar es el que llama Interfaz1.

    Saludos…8)

  11. hola amigo esta muy interesante tu programa pero no puedo descargar los archivos jeje no se si podrian ayudarme grasias por su atencion

  12. Corregido lo de los links , gracias por la observacion , cualquier duda me haces saber.

    Saludos 8)

  13. gracias por el aporte men. esta muy bueno…. mi pregunta es que cuando lo compilo me sale una exepcion .
    Exception in thread “AWT-EventQueue-0″ java.lang.NullPointerException
    at javax.swing.ImageIcon.(ImageIcon.java:138)
    at Interfaz1.initComponents(Interfaz1.java:53)
    at Interfaz1.(Interfaz1.java:15)
    no se que este haciendo mal ^^ gracias por tu ayuda…suerte..

  14. Si compilas en Windows debes tener la dll jnpout32 en la carpeta de system32, el error que esta dando parece ser por alguna imagen en el fuente , eso pasaba en las versiones mas viejas del software, fijate las rutas de las imagenes en la clase de interfaz.java y corrijelas , puede que ese sea tu problema.

    Mas adelante voy a estar renovando los contenidos que ahora ando con muy poco tiempo para la pagina y no la he visitado a como he querido.

    Saludos.

  15. p3lle , muchas gracias por subir todo el codigo, ya con eso mis posibles dudas lo mas seguro es que queden resueltas, una vez mas muchas gracias.
    para lo que le sali errores que tenian que ver con:
    Exception in thread “AWT-EventQueue-0″ en efecto es cosa de las imagenes, acomoden las rutas o bien quitenlas. una preguntota p3lle, yo trabajo en eclipse, a mi me parece muy comodo, pero como todavia no tengo el cable para echar a andar todo(el de la impresora xD) entonces no tengo forma de probarlo, mañana conseguire el cable, ahora bien habiendo quitado las imagenesdel programa me salen estas excepciones:
    Exception in thread “AWT-EventQueue-0″ java.lang.UnsatisfiedLinkError: puerto.IoPort.Out32(SS)V
    at puerto.IoPort.Out32(Native Method)
    at puerto.PPort.setAllDataBits(PPort.java:49)
    at puerto.PPort.(PPort.java:17)
    at puerto.Interfaz1$18.run(Interfaz1.java:698)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

    bien aun con estas excepciones el programa corre, pero como ya lo dije no tengo el cable asi es que no tengo forma de probarlo, entonces me gustaria saber si a ti te salen estas exepciones o algo asi. por cierto ya he copiado la dll en el sytem32,desde ya gracias, muchas gracias

  16. Saludos amigo… no puedo bajar los archivos por que ya expiraron… sera q los puedes subir de nuevo? y si puedes x fa subelos a mediafire.com

  17. hola amigo no sirven los links sera q los puedes volver a subir… prueba subirlos a mediafire.com para que no expiren

  18. Esta muy bien pero porque no vuelves a poner el archivo para poderlo descargar.

    PD: URGENTE…

  19. Ya estan los links corregidos , lean todos los post anteriores para ver si les resuelve la duda algunos , saludos !

  20. [...] Aqui esta la tercera parte del tutorial del puerto paralelo: Tercera parte y final [...]

  21. Saludos, muchas gracias por aportar el codigo.
    Solo que tengo el mismo proble de tomeragain, el programa corre, pero en el constructor de la clase pPort cuando llama al metodo setAllDataBits((short)0); se cae mostrando el siguiente error:
    Exception in thread “AWT-EventQueue-0″ java.lang.UnsatisfiedLinkError: Out32
    at lpt.ioPort.Out32(Native Method)
    at lpt.pPort.setAllDataBits(pPort.java:59)
    at lpt.pPort.(pPort.java:25)
    at lpt.NewJFrame.jButton1ActionPerformed(NewJFrame.java:64)
    at lpt.NewJFrame.access$000(NewJFrame.java:14)
    at lpt.NewJFrame$1.actionPerformed(NewJFrame.java:37)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    at java.awt.Component.processMouseEvent(Component.java:5517)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
    at java.awt.Component.processEvent(Component.java:5282)
    at java.awt.Container.processEvent(Container.java:1966)
    at java.awt.Component.dispatchEventImpl(Component.java:3984)
    at java.awt.Container.dispatchEventImpl(Container.java:2024)
    at java.awt.Component.dispatchEvent(Component.java:3819)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
    at java.awt.Container.dispatchEventImpl(Container.java:2010)
    at java.awt.Window.dispatchEventImpl(Window.java:1791)
    at java.awt.Component.dispatchEvent(Component.java:3819)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
    Seria de gran ayuda si supieras que significa este error, saludos

  22. Saludos, muchas gracias por aportar el codigo.
    Solo que tengo el mismo proble de tomeragain, el programa corre, pero en el constructor de la clase pPort cuando llama al metodo setAllDataBits((short)0); se cae mostrando el siguiente error:
    Exception in thread “AWT-EventQueue-0″ java.lang.UnsatisfiedLinkError: Out32
    at lpt.ioPort.Out32(Native Method) …

    Dejeme ver porque ya hace un rato que no lo toco , pero me suena a que ese metodo no esta siendo bien utilizado en alguna parte del programa que talvez ud modifico, voy a ver y dentro de poco te pongo la respuesta…

    Para todos los demas subi a rapidshare el codigo fuente con la libreria jnpout32.dll incluida que no se porque se me habia olvidado incluirla , recuerden que esta dll hay que copiarla a la carpeta de system32 de Windows XP.

    Para modificar el programa , si estan seguros de lo que hacen pueden cambiarlo todo no hay problema , pero si tienen dudas mejor solo cambian el archivo Interfaz1.java.

    Saludos y suerte !!!

  23. Ya revise el asunto y no le encuentro problema en la clase Interfaz1 , simplemente agregue un boton al form y en el evento de ese boton llame a un metodo que hace lo siguiente:

    static void todosAcero(){

    lpt.setAllDataBits((short)0);
    }
    Y listo eso es todo …
    No se que estaras haciendo , me gustaria ver el codigo para saber que es lo que ha cambiado y poder ayudarle.
    Recuerden que se compilan todas las clases pero la que se ejecuta es solamente la de Interfaz1

    Saludos !!!

  24. el programa funcina bien y esta muy bueno, solo tengo una duda, a ver si me pueden ayudar: ¿como hago para mandar datos por los pines de control adicionalmente a los que ya se están mandando por los de datos??? por fa, si alguien sabe necesito ese dato urgente para no reprobar en la U
    gracias de antemano y felicitaciones por el codigo y su explicacion

  25. De nada , si necesita algo mas dirijase a la pagina:
    foro.red-code.org y con gusto ahi le ayudo en lo que pueda.

  26. Hola [p3ll3], creo que llegue tarde, pero el link de descarga ya no esta activa, si pudieras volverlo a subir seria excelente.
    Gracias

  27. Gracias por esta información! Le cuento que el link de descarga no está disponible, exactamente el archivo ha llegado a su tope máximo de descargas. Hasta pronto!


Dejar una respuesta

Su respuesta:

Categorías