Vous êtes sur la page 1sur 6

holas tambien jarmos...

tengo como ejemplo dos sistemas que me funcionaron muy bien con java en puerto paralelo. - Control de puerto paralelo remoto Este sistema era parte de mi proyecto final en electronica, utilizaba dos maquinas conectadas por cable de red y sus NICS, de tal manera que desde una maquina podia controlar el puerto LPT1 de la otra. Sus aplicaciones son inmensas, desde el control remoto de estaciones (temperatura, ventilacion)..como ejemplo. - Control de una camara visora. Este sistema la hice por algunos planes que tengo en mente, lo que hacia era controlar dos motores de paso por el puerto paraleo en java y asi controlar la posicion que la camara que ya no era esttica, sino era una camara OJO robotica en dos dimensiones. Bien aunque resultaron de forma excelente, tambien tengo limitaciones...por ejemplo...siempre he usado el concepto de enviar datos, pero nunca se me present un problema con recibir datos desde un circuito externo...alguien sabe como recibir datos para LPT en java?... no se si sirve de mucho enviarte el programa de java para elcontrolador de la camara...puesto que el sistema no es solo en java, tambien esta el uControlador 16F84, su programa, la arquitectura...etc...pero de todas maneras la pongo como ejemplo: import java.io.*; import java.net.*; import javax.comm.*; public class Send { //ret delay; //int PUERTO; //String portname;

//public boolean Byte(int a)throws Exception public static void main (String [] arg)throws Exception { int PUERTO=4000,i,c=0,a,a1;

String portname="LPT1"; CommPortIdentifier portId = CommPortIdentifier.getPortIdentifier (portname); CommPort port = portId.open ("Application Name",30000); OutputStream os = port.getOutputStream (); DataOutputStream bos = new DataOutputStream (os); while(true) { c=0; int b[]=new int[30]; System.out.println ("introdusca valor X:"); a = LeeInt.dato (); System.out.println ("introdusca valor Y:"); a1 = LeeInt.dato (); while(a!=0) { if(a%2==0) b[c]=0; else b[c]=1; a=a/2; c=c+1; } while(c<=7) { b[c]=0; c=c+1; } for(i=7;i>=0;i--) { if(b[i]==0) { System.out.println("0"); bos.writeByte (0x00); bos.writeByte (0x01); //bos.writeByte (0x02); } else { System.out.println("1"); bos.writeByte (0x00); bos.writeByte (0x02);

bos.writeByte (0x03); } } //OTRO c=0; while(a1!=0) { if(a1%2==0) b[c]=0; else b[c]=1; a1=a1/2; c=c+1; } while(c<=7) { b[c]=0; c=c+1; } for(i=7;i>=0;i--) { if(b[i]==0) { System.out.println("0"); bos.writeByte (0x00); bos.writeByte (0x01); //bos.writeByte (0x02); } else { System.out.println("1"); bos.writeByte (0x00); bos.writeByte (0x02); bos.writeByte (0x03); } } } } }

Hola, buen dia. Estoy desarrollando una aplicacion en java que requiere la recepcin y envio de datos a traves del puerto paralelo; ya he conseguido enviar datos usando la librelia parport.dll (codigo adjunto) y usando un circuito con lends para poder visualizarlo. Mi pregunta es, como implementar esta libreria para leer datos, ademas si es posible agregen un ejemplo facil para poder entender la lectura de datos, como por ejemplo si se requiere de un ciclo que continuamente verifique el estado de los pines o algo por el estilo. Espero cualquier ayuda posible ya que apenas estoy entrando en el mundo de la programacion en Java. Gracias de antemano por cualquier ayuda. Codigo implementado

//Primero use un paquete llamado parport con la clase llamanda ParallelPort

package parport; public class ParallelPort { private int portBase;

public ParallelPort (int portBase) { this.portBase = portBase; }

public int read ()

{ return ParallelPort.readOneByte (this.portBase+1); }

public void write (int oneByte) { ParallelPort.writeOneByte (this.portBase, oneByte); }

public static native int readOneByte (int address); public static native void writeOneByte (int address, int oneByte);

static { System.loadLibrary("parport"); } } Y aqui esta la aplicacion que mandar un 1 al puerto

Cdigo:

package leds; // Ahora se importa el paquete aterior import parport.ParallelPort; public class Aplicacion { private ParallelPort lpt1; public Aplicacion () { lpt1 = new ParallelPort(0x378); lpt1.write(1); } }

Y el main Cdigo:

package leds;

public class Led { public static void main(String[] args) { new Aplicacion(); } }

Vas a tener que usar el mtodo read, que te lee un byte desde el puerto de estado y te retorna el valor como un int, del cual solo valen los 8 bits menos significativos. Una vez ledo ese byte, donde no todos los bit son tiles, vas a tener que jugar un rato reacomodando e inviertiendo algunos bits hasta lograr un valor utilizable.

Saludos!
Hola, gracias por la ayuda. Ya he logrado saber como lee datos el pueto a traves del metodo read(), era muy sencillo. Ahora quisiera saber si existe un comando que me permita enviar un dato continuamente durante un tiempo determinado, del orden de los milisegundos si se puede. Las salidas del puerto paralelo tienen un latch, as que lo que enves ah...ah se queda hasta que lo cambies. Y no, esa biblioteca no tiene un mtodo para hacer lo que vos quieres (y que yo no entiendo), pero es muy simple escribir el cdigo para lograrlo. Saludos!

Vous aimerez peut-être aussi