Avatar billede thomasbomann Nybegynder
19. juli 2001 - 16:44 Der er 1 kommentar og
1 løsning

Kommunikation med en klients com-port gennem en Applet???

Hvordan laver man en Applet der kommunikerer med en klients com-port???
Avatar billede logical Nybegynder
19. juli 2001 - 17:41 #1
Du kan evt. bruge JAVACOMM

http://www.javasoft.com/products/javacomm/index.html

Men der er de sædvanlige problemer med at du skal signe din applet, men JCOMM er ideel til seriel kommunikation, så prøv at starte med det.
Avatar billede lsimony Nybegynder
20. juli 2001 - 09:18 #2
Jeg har en gang fundet dette på nette til kommunikation af en com-port. Jeg har dog ikke fået testet det endnu...

Hilsen Lars

import java.io.InputStream;
import java.io.OutputStream;
import java.io.IOException;
import java.util.Enumeration;
import javax.comm.*;

public class COMPort {

    public COMPort(String portname) throws Exception {
        init(portname, 2400, 100);
    }

    public COMPort(String portname, int rate) throws Exception {
        init(portname, rate, 100);
    }

    public COMPort(String portname, int rate, int timeout) throws Exception {
        init(portname, rate, timeout);
    }

    public void setHardwareFlowControlMode(boolean enable)  throws Exception {
        if (enable)
            sPort.setFlowControlMode(
                SerialPort.FLOWCONTROL_NONE
            );
        else
            sPort.setFlowControlMode(
                SerialPort.FLOWCONTROL_RTSCTS_IN |
                SerialPort.FLOWCONTROL_RTSCTS_OUT
            );

    }

    public InputStream getInputStream() {
        return inStream;
    }

    public OutputStream getOutputStream() {
        return outStream;
    }

    public SerialPort getSerialPort() {
        return sPort;
    }

    public void close() throws IOException {
        sPort.close();
    }



    private InputStream inStream=null;
    private OutputStream outStream=null;
    private SerialPort sPort=null;;

    private void init(String portname, int rate, int timeout) throws Exception {

        CommPortIdentifier portId=null;

        boolean  located=false;
        Enumeration portList = CommPortIdentifier.getPortIdentifiers();
        if (!portList.hasMoreElements()) throw new IOException(\"no com port found\");
        while (portList.hasMoreElements()) {
            portId = (CommPortIdentifier) portList.nextElement();
            // System.err.println(\"CHECKING: \"+portId.getName());
            if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
                if (portId.getName().equals(portname)) {
                    located=true; break;
                }
            }
        }
        if (!located) throw new IOException(\"port \"+portname+\" not found\");
        // System.err.println(\"FOUND: \"+portId.getName());

        sPort = (SerialPort) portId.open(\"Java Simplified COM Port Access\", timeout);
        sPort.setSerialPortParams(rate,
            SerialPort.DATABITS_8,
            SerialPort.STOPBITS_1,
            SerialPort.PARITY_NONE);
        outStream = sPort.getOutputStream();       
        inStream = sPort.getInputStream();
    }

}



Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester