Dead_Scanner

Tenho q fazer um applet para pegar o numero de codigos de barra
mas a scanner( ja tentei com varios modelos de scanner) num consegue se conectar direito e nem passa nada para o applet
ja tentei todos o tipos de parity e flowcontrol
alguem sabe alguma coisa ou ja fez algo assim e possa me ajuda
OBS:ultima esperança hauhauha.

[code]package Scan;

import java.io.OutputStream;
import gnu.io.*;
import java.io.IOException;
import java.io.InputStream;
import java.util.TooManyListenersException;
import javax.swing.JApplet;

public class NewScan extends JApplet implements Runnable, SerialPortEventListener {
public boolean IDPortaOK;
private boolean PortaOK;
public int nodeBytes;
private int baudrate=9600;
private int timeout=0;
private CommPortIdentifier cp;
private SerialPort porta;
private String Porta=“COM1”;
private InputStream is;
private OutputStream os;
Thread readThread;

     public void ObterIdDaPorta(){
            try {
                cp = CommPortIdentifier.getPortIdentifier(Porta);
                if ( cp == null ) {
                    System.out.println("Erro na porta");
                    IDPortaOK = false;
                    System.exit(1);
                }
                IDPortaOK = true;
                System.out.println(cp.getName());
            } catch (Exception e) {
                System.out.println("Erro obtendo ID da porta: " + e);
                IDPortaOK = false;
                System.exit(1);
            }
            AbrirPorta();
        }

public void AbrirPorta() {
try {
porta = (SerialPort)cp.open(“COM1”, timeout);
PortaOK = true;
} catch (PortInUseException e) {}

try {
    is = porta.getInputStream();
} catch (IOException e) {}

try {
    porta.addEventListener(this);
} catch (TooManyListenersException e) {}

porta.notifyOnDataAvailable(true);

try {
   porta.setSerialPortParams(9600, SerialPort.DATABITS_8, 
				   SerialPort.STOPBITS_1, 
				   SerialPort.PARITY_ODD);
       
                porta.setFlowControlMode(SerialPort.FLOWCONTROL_XONXOFF_IN);
} catch (UnsupportedCommOperationException e) {}

readThread = new Thread(this);

readThread.start();
}

 
 public void run() {
try {
    Thread.sleep(20000);
} catch (InterruptedException e) {}
} 
    
          public void serialEvent(SerialPortEvent event) {
switch (event.getEventType()) {

case SerialPortEvent.BI:

case SerialPortEvent.OE:

case SerialPortEvent.FE:

case SerialPortEvent.PE:

case SerialPortEvent.CD:

case SerialPortEvent.CTS:

case SerialPortEvent.DSR:

case SerialPortEvent.RI:

case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
    break;

case SerialPortEvent.DATA_AVAILABLE:
    byte[] readBuffer = new byte[20];

    try {
	while (is.available() > 0) {
	    int numBytes = is.read(readBuffer);
	} 

	System.out.print(new String(readBuffer));
    } catch (IOException e) {}

    break;
}
}         

}[/code]

Se seu applet não estiver assinado, ele não conseguirá carregar a biblioteca (no seu caso parece a RXTX).
Além disso, de alguma forma a biblioteca (.DLL) deve estar copiada em algum diretório no PATH, e o jar do RXTX deve estar, por exemplo, em um diretório jre/lib/ext; não pode simplesmente ser baixada do site ou estar no .jar.
Dica: se puder, não use applets e sim aplicações normais, ou Java Web Start. Fazer funcionar uma applet com comunicação serial é algo que não é trivial e dá bastantes problemas se você não puder criar um “instalador” para as bibliotecas que essa applet precisa.

vlwww kra pelas dicas
voltei do almoço mudei a flowcontrol e adicionei umas coisas novas e agora ta funcionando
passei 3 dias tentando fazer e agora nem sei oq eu fiz pra ta funcionando agora hauahuahuahu
mas ta tudo certinho o RXTX e a assinatura
e infelizmente precisa ser em applet ¬¬ ordens do chefe ahuahuhau

mas de qualquer jeitoo vlwww