Mira una vez trabajé con el puerto serial en un chat de la escuela, mas omenos lo que hacia era esto:
Código PHP:
//bandera para operacion despues de encontrar puerto
boolean bandPEncontrado = false;
String nomPuerto = "";
//Se guarda una lista de los puertos del PC y se determina un objeto que se usara para tratar el puerto
Enumeration puertosComm = CommPortIdentifier.getPortIdentifiers();
CommPortIdentifier puertoPCOM = null;
//Se recorre la lista de puertos
while(puertosComm.hasMoreElements()) {
//se crea un objeto puerto para almacenar el elemento actual de la lista
puertoPCOM = (CommPortIdentifier) puertosComm.nextElement();
//se averigua si el puerto actual es el serial que buscamos
nomPuerto = JOptionPane.showInputDialog("Inserta Nombre de Puerto COM1/COM2");
if(puertoPCOM.getName().equals(nomPuerto)) {
//encontro el puerto
bandPEncontrado = true;
break;
} else {
//No existe el puerto
bandPEncontrado = false;
JOptionPane.showMessageDialog(null, "No se encontró el puerto "+nomPuerto);
}
}
//si se encontro el puerto vamos a tratarlo
if(bandPEncontrado == true) {
try {
//abrimos el puerto
CommPort puertoOpen = puertoPCOM.open("Puerto Serial" + nomPuerto, 2000);
//obtenemos el puerto serial
puertoSerial = (SerialPort) puertoOpen;
} catch(PortInUseException ex) {
ex.printStackTrace();
}
}
No es la mejor lógica pero me sirvio, una vez que tengo el puerto, hago unos flujos para trabajar tanto envio de datos como lectura de datos, en tu caso solo debes de leer para obtener lo que el laser te de... algo asi
Código PHP:
private void iniciaFlujo() {
try {
ois = new ObjectInputStream(puertoSerial.getInputStream());
} catch(IOException ex) {
ex.printStackTrace();
this.cerrarTodo();
}
}
//Esto va en un thread
private void leerDatos() {
try {
while(true) {
Object aux = ois.readObject();
if(aux != null && aux instanceof String) {
String msgn = (String) aux;
objVentanaPrinc.getTxtChatA().append("El dice: " + msgn + "\n");
}
Thread.sleep(15);
}
} catch(Exception ex) {
ex.printStackTrace();
this.cerrarTodo();
}
}
En mi caso era un chat por serial asi que debia preguntar con el instance of si recibia una string, asi que depende de lo que te mande el lector de barras tu sabras que es lo que esperas, que puedes usar el object solamente y despues interpretar los datos...
espero y te sirva recodad el karma xD