• 大小: 30KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: 其他
  • 标签: RXTX  

资源简介

RX485串口编程源码,实现了串口编程的监听和读写

资源截图

代码片段和文件信息





package com.rxtx;
import gnu.io.*;
import java.io.*; 
import java.util.*;  
 
 
public class SerialReader extends Observable implements RunnableSerialPortEventListener
    {
    static CommPortIdentifier portId;
    int delayRead = 100;
    int numBytes; // buffer中的实际数据字节数
    private static byte[] readBuffer = new byte[1024]; // 4k的buffer空间缓存串口读入的数据
    static Enumeration portList;
    InputStream inputStream;
    OutputStream outputStream;
    static SerialPort serialPort;
    HashMap serialParams;
    Thread readThread;//本来是static类型的
    //端口是否打开了
    boolean isOpen = false;
    // 端口读入数据事件触发后等待n毫秒后再读取以便让数据一次性读完
    public static final String PARAMS_DELAY = “delay read“; // 延时等待端口数据准备的时间
    public static final String PARAMS_TIMEOUT = “timeout“; // 超时时间
    public static final String PARAMS_PORT = “port name“; // 端口名称
    public static final String PARAMS_DATABITS = “data bits“; // 数据位
    public static final String PARAMS_STOPBITS = “stop bits“; // 停止位
    public static final String PARAMS_PARITY = “parity“; // 奇偶校验
    public static final String PARAMS_RATE = “rate“; // 波特率

    public boolean isOpen(){
     return isOpen;
    }
    /**
     * 初始化端口操作的参数.
     * @throws SerialPortException 
     * 
     * @see
     */
    public SerialReader()
    {
     isOpen = false;
    }

    public void open(HashMap params) 
    { 
     serialParams = params;
     if(isOpen){
     close();
     }
        try
        {
            // 参数初始化
            int timeout = Integer.parseInt( serialParams.get( PARAMS_TIMEOUT )
                .toString() );
            int rate = Integer.parseInt( serialParams.get( PARAMS_RATE )
                .toString() );
            int dataBits = Integer.parseInt( serialParams.get( PARAMS_DATABITS )
                .toString() );
            int stopBits = Integer.parseInt( serialParams.get( PARAMS_STOPBITS )
                .toString() );
            int parity = Integer.parseInt( serialParams.get( PARAMS_PARITY )
                .toString() );
            delayRead = Integer.parseInt( serialParams.get( PARAMS_DELAY )
                .toString() );
            String port = serialParams.get( PARAMS_PORT ).toString();
            // 打开端口
            portId = CommPortIdentifier.getPortIdentifier( port );
            serialPort = ( SerialPort ) portId.open( “SerialReader“ timeout );
            inputStream = serialPort.getInputStream();
            serialPort.addEventListener( this );
            serialPort.notifyondataavailable( true );
            serialPort.setSerialPortParams( rate dataBits stopBits parity );
            
            isOpen = true;
        }
        catch ( PortInUseException e )
        {
           // 端口“+serialParams.get( PARAMS_PORT ).toString()+“已经被占用“;
        }
        catch ( TooManyListenersException e )
        {
           //“端口“+serialParams.get( PARAMS_PORT ).toString()+“监听者过多“;
        }
     

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1064  2019-10-14 17:06  demo485\.classpath

     文件        559  2019-10-14 17:06  demo485\.project

     文件        119  2019-10-14 17:06  demo485\.settings\org.eclipse.core.resources.prefs

     文件        429  2019-10-14 17:06  demo485\.settings\org.eclipse.jdt.core.prefs

     文件         90  2019-10-14 17:04  demo485\.settings\org.eclipse.m2e.core.prefs

     文件        914  2019-10-14 17:09  demo485\pom.xml

     文件      13972  2019-10-15 11:01  demo485\src\main\java\com\rxtx\SerialReader.java

     文件       2608  2019-10-15 11:01  demo485\src\main\java\com\rxtx\Test.java

     文件        290  2019-10-14 18:10  demo485\src\main\java\com\shenlan\demo485\App.java

     文件       2304  2019-10-15 15:35  demo485\src\main\java\com\shenlan\demo485\Listener.java

     文件       3720  2019-10-14 19:05  demo485\src\main\java\com\shenlan\demo485\ListPort.java

     文件       4113  2019-10-14 18:38  demo485\src\main\java\com\shenlan\demo485\RxtxDemo.java

     文件       1992  2019-10-15 14:50  demo485\src\main\java\com\shenlan\demo485\RxtxDemo2.java

     文件       1569  2019-10-15 14:52  demo485\src\main\java\com\shenlan\demo485\Write.java

     文件        685  2019-10-14 17:04  demo485\src\test\java\com\shenlan\demo485\AppTest.java

     文件       7331  2019-10-23 17:46  demo485\target\classes\com\rxtx\SerialReader.class

     文件       3080  2019-10-23 17:46  demo485\target\classes\com\rxtx\Test.class

     文件        603  2019-10-23 17:46  demo485\target\classes\com\shenlan\demo485\App.class

     文件       1874  2019-10-23 17:46  demo485\target\classes\com\shenlan\demo485\Listener.class

     文件       3064  2019-10-23 17:46  demo485\target\classes\com\shenlan\demo485\ListPort.class

     文件       3883  2019-10-23 17:46  demo485\target\classes\com\shenlan\demo485\RxtxDemo.class

     文件       2039  2019-10-23 17:46  demo485\target\classes\com\shenlan\demo485\RxtxDemo2.class

     文件       1391  2019-10-23 17:46  demo485\target\classes\com\shenlan\demo485\Write.class

     文件        107  2019-10-23 17:46  demo485\target\classes\meta-INF\MANIFEST.MF

     文件        219  2019-10-23 17:46  demo485\target\classes\meta-INF\maven\com.shenlan\demo485\pom.properties

     文件        914  2019-10-23 17:46  demo485\target\classes\meta-INF\maven\com.shenlan\demo485\pom.xml

     文件        625  2019-10-23 17:46  demo485\target\test-classes\com\shenlan\demo485\AppTest.class

     目录          0  2019-10-15 14:51  demo485\src\main\java\com\shenlan\demo485

     目录          0  2019-10-14 17:04  demo485\src\test\java\com\shenlan\demo485

     目录          0  2019-10-23 17:46  demo485\target\classes\meta-INF\maven\com.shenlan\demo485

............此处省略28个文件信息

评论

共有 条评论