Porta paralela

8 respostas
C

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

8 Respostas

K

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.

Ironlynx

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

C

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

G

Para gravar:

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) {}
                }
            }
        }
    }
}
Para ler:
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;
        }
    }
}
C

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

S

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!

K

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.

Daniel_Quirino_Olive

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:

Criado 10 de outubro de 2003
Ultima resposta 24 de out. de 2003
Respostas 8
Participantes 6