Dead_Scanner

2 respostas
A

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.

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;
	}
    }         
}

2 Respostas

T

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.

A

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

Criado 24 de julho de 2008
Ultima resposta 24 de jul. de 2008
Respostas 2
Participantes 2