Porta paralela

COMO EU FAÇO PRA LER AS INFORMAÇÕES QUE ENTRAM NA PORTA PARALELA E GERAR UM GRÁFICO TIPO ONDA DISSO ??? :roll:

Fera, eu precisei de algo assim, mas era para gravar, houvi falar de uma api chamada javacomm, mas como eu tinha pressa e achei que fosse dar muito trabalho, fiz um objeto compartilhado em c que gravava na paralela e acessei o mesmo utilizando JNI(java native interface), de uma pesquisada nisso, é interessante.

Dá uma olhada na javacomm:
http://java.sun.com/products/javacomm/

ALGUÉM TEM UM EXEMPLO BEM SIMPLES DE USO DO JAVACOMM ???
UM CÓDIGO DE TESTE OU ALGO PARECIDO ? :lying:

Para gravar:

[code]import java.io.;
import java.util.
;
import javax.comm.*;

public class SimpleWrite {
static Enumeration portList;
static CommPortIdentifier portId;
static String messageString = "Hello, world!
";
static SerialPort serialPort;
static OutputStream outputStream;

public static void main(String[] args) {
    portList = CommPortIdentifier.getPortIdentifiers();

    while (portList.hasMoreElements()) {
        portId = (CommPortIdentifier) portList.nextElement();
        if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
            if (portId.getName().equals("COM1")) {
                try {
                    serialPort = (SerialPort)
                        portId.open("SimpleWriteApp", 2000);
                } catch (PortInUseException e) {}
                try {
                    outputStream = serialPort.getOutputStream();
                } catch (IOException e) {}
                try {
                    serialPort.setSerialPortParams(9600,
                        SerialPort.DATABITS_8,
                        SerialPort.STOPBITS_1,
                        SerialPort.PARITY_NONE);
                } catch (UnsupportedCommOperationException e) {}
                try {
                    outputStream.write(messageString.getBytes());
                } catch (IOException e) {}
            }
        }
    }
}

}[/code]

Para ler:

[code]import java.io.;
import java.util.
;
import javax.comm.*;

public class SimpleRead implements Runnable, SerialPortEventListener {
static CommPortIdentifier portId;
static Enumeration portList;

InputStream inputStream;
SerialPort serialPort;
Thread readThread;

public static void main(String[] args) {
    portList = CommPortIdentifier.getPortIdentifiers();

    while (portList.hasMoreElements()) {
        portId = (CommPortIdentifier) portList.nextElement();
        if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
           if (portId.getName().equals("COM1")) {
                SimpleRead reader = new SimpleRead();
            }
        }
    }
}

public SimpleRead() {
    try {
        serialPort = (SerialPort) portId.open("SimpleReadApp", 2000);
    } catch (PortInUseException e) {}
    try {
        inputStream = serialPort.getInputStream();
    } catch (IOException e) {}
try {
        serialPort.addEventListener(this);
} catch (TooManyListenersException e) {}
    serialPort.notifyOnDataAvailable(true);
    try {
        serialPort.setSerialPortParams(9600,
            SerialPort.DATABITS_8,
            SerialPort.STOPBITS_1,
            SerialPort.PARITY_NONE);
    } catch (UnsupportedCommOperationException e) {}
    readThread = new Thread(this);
    readThread.start();
}

public void run() {
    try {
        Thread.sleep(500);
    } 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[50];

        try {
            while (inputStream.available() > 0) {
                int numBytes = inputStream.read(readBuffer);
            }
            System.out.print(new String(readBuffer));
        } catch (IOException e) {}
        break;
    }
}

}[/code]

Valeu ,
vou testar isso tudo e ver …
muito obrigado :lying:

EStou tentando fazer algo parecido. Como fez isso? Pode me mandar uma explicação só pra eu ter uma noção? Se quiser mandar um exemplo também agradeço! Desde já agradeço a atenção!

Me envie seu email que eu lhe passo um tutorial que tenho de jni e o exemplo que fiz.
meu email é estudo.net@bol.com.br
abraços.

Não não não… por favor, não comecem com o famoso “hey, manda para mim também” :? . Kerleston, por favor, disponibilize o tal tutorial em um WWW e passe a URL para todos aqui no fórum. :slight_smile: