Avatar billede the_connector Nybegynder
21. november 2005 - 11:05 Der er 1 kommentar og
1 løsning

Godt eksempel på seriel kommunikation i Java

Hej Experter

Jeg søger et rigtig godt eksempel på serielkommunikation i java. Jeg har været inde og se på simplereader og simplewriter, men jeg kunne godt tænke mig et eksempel, hvor write og send kører i seperate tråde. Videre nogle gode metoder til at starte og sende imformation. Jeg synes bare ikke man kan finde noget skide godt herinde, så kunne godt tænke mig at nogle kunne smide et link eller en kodestump som vidste et godt eksempel på ovenstående. Tror mange ville kunne få glæde af deet..
Avatar billede the_connector Nybegynder
06. december 2005 - 12:13 #1
Hej Experter...jeg fandt selv en løsning:

Klassen receiver skal også oprettet....
package Network;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.TooManyListenersException;

import javax.comm.CommPortIdentifier;
import javax.comm.PortInUseException;
import javax.comm.SerialPort;
import javax.comm.UnsupportedCommOperationException;

import Core.Domain;

public class Communication {

   
   
    static String tempString;
    private CommPortIdentifier portId;
    private Enumeration portList;

    public OutputStream outputStream;
    InputStream inputStream;
    SerialPort serialPort;

        public void initCommunication() {
       
            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("writereadobjectApp", 2000);
                    } catch (PortInUseException e) {
                        System.out.println(e);
                    }
                    try {
                       
                        serialPort.setSerialPortParams(38400,
                        SerialPort.DATABITS_8,
                        SerialPort.STOPBITS_1,
                        SerialPort.PARITY_NONE);
                    }
                    catch (UnsupportedCommOperationException e) {
                    System.out.println("UnsupportedCommOperationException, Could not set the port: " + e);
                    }
                    try {
                        outputStream = serialPort.getOutputStream();
                        inputStream = serialPort.getInputStream();
                    }
                    catch (IOException e) {
                        System.out.println(e);
                    }
               
                    try {
                        serialPort.addEventListener(Domain.receiveThread);
                    }
                    catch (TooManyListenersException e) {
                        System.out.println(e);
                    }
                    serialPort.notifyOnDataAvailable(true);
               
                    }
                }
            }
        }


        void closePort() {
            serialPort.close();
            System.out.println("Port closed successfully.");
        }
   
   
   
   
   
   
   
   
   
   
    public Communication(){
       
        /** Initialize the messagehandler */
        Domain.outgoingMessageHandler = new OutgoingMessageHandler();
                       
        /** Initialize the messagehandler */
        Domain.ingoingMessageHandler = new IngoingMessageHandler();
        Domain.ingoingMessageHandler.start();
               
       
       
   
       
        initCommunication();
    }
   
}
Avatar billede the_connector Nybegynder
06. december 2005 - 12:14 #2
svar
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