Ver Mensaje Individual
  #4 (permalink)  
Antiguo 17/01/2012, 21:24
Avatar de zero0097
zero0097
 
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años
Puntos: 69
Respuesta: lector de codigo de barras...

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 = (CommPortIdentifierpuertosComm.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" nomPuerto2000);
        
        
//obtenemos el puerto serial
        
puertoSerial = (SerialPortpuertoOpen;
        
    } 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