zoukankan      html  css  js  c++  java
  • java读写串口的简单示例

    /*
     * @(#)SimpleRead.java 1.12 98/06/25 SMI
     *
     * Copyright (c) 1998 Sun Microsystems, Inc. All Rights Reserved.
     *
     * Sun grants you ("Licensee") a non-exclusive, royalty free, license 
     * to use, modify and redistribute this software in source and binary
     * code form, provided that i) this copyright notice and license appear
     * on all copies of the software; and ii) Licensee does not utilize the
     * software in a manner which is disparaging to Sun.
     *
     * This software is provided "AS IS," without a warranty of any kind.
     * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
     * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
     * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND
     * ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY
     * LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE
     * SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS
     * BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
     * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES,
     * HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING
     * OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN
     * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
     *
     * This software is not designed or intended for use in on-line control
     * of aircraft, air traffic, aircraft navigation or aircraft
     * communications; or in the design, construction, operation or
     * maintenance of any nuclear facility. Licensee represents and
     * warrants that it will not use or redistribute the Software for such
     * purposes.
     */

    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")) {
                    if (portId.getName().equals("/dev/term/a")) {
                        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(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 (inputStream.available() > 0) {
                        int numBytes = inputStream.read(readBuffer);
                    }
                    System.out.print(new String(readBuffer));
                } catch (IOException e) {}
                break;
            }
        }
    }
    /***********************/

    /*
     * @(#)SimpleWrite.java 1.12 98/06/25 SMI
     *
     * Copyright (c) 1998 Sun Microsystems, Inc. All Rights Reserved.
     *
     * Sun grants you ("Licensee") a non-exclusive, royalty free, license 
     * to use, modify and redistribute this software in source and binary
     * code form, provided that i) this copyright notice and license appear
     * on all copies of the software; and ii) Licensee does not utilize the
     * software in a manner which is disparaging to Sun.
     *
     * This software is provided "AS IS," without a warranty of any kind.
     * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
     * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
     * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND
     * ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY
     * LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE
     * SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS
     * BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
     * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES,
     * HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING
     * OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN
     * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
     *
     * This software is not designed or intended for use in on-line control
     * of aircraft, air traffic, aircraft navigation or aircraft
     * communications; or in the design, construction, operation or
     * maintenance of any nuclear facility. Licensee represents and
     * warrants that it will not use or redistribute the Software for such
     * purposes. 重生之大文豪www.dwhao.com
     */

    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")) {
                    if (portId.getName().equals("/dev/term/a")) {
                        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) {}
                    }
                }
            }
        }
    }

     

  • 相关阅读:
    golang中将json转成go
    软件升级
    golang 各类型转换
    golang 基础知识6
    golang 基础知识5
    bash resource
    toy
    links
    android abd remove
    YCM
  • 原文地址:https://www.cnblogs.com/haichun/p/3496330.html
Copyright © 2011-2022 走看看