`
zontim
  • 浏览: 4815 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA对串口设备进行操作

阅读更多

转自:http://blog.csdn.net/kingvan/article/details/53843

 

做金融终端开发经常需要写一些设备的控制程序,提取出了一个串口操作的基本框架以防日后忘记,当然针对具体串口设备可能要作相关修改。

import java.io.*;
import javax.comm.*;

public class SomeSerial implements SerialPortEventListener {
  private byte[] readinfo;
  private InputStream in;
  private OutputStream out;
  private SerialPort serialPort = null;

  public SomeSerial(String port) throws Exception {
    CommPortIdentifier portId = CommPortIdentifier.getPortIdentifier(port);
    serialPort = (SerialPort)portId.open("Serial_Communication", 2000);
      serialPort.setSerialPortParams(9600,
                                     SerialPort.DATABITS_8,
                                     SerialPort.STOPBITS_1,
                                     SerialPort.PARITY_NONE);
  }


  public synchronized void serialEvent(SerialPortEvent event) {
    switch (event.getEventType()) {
      case SerialPortEvent.BI:
        break;
      case SerialPortEvent.OE:
        break;
      case SerialPortEvent.FE:
        break;
      case SerialPortEvent.PE:
        break;
      case SerialPortEvent.CD:
        break;
      case SerialPortEvent.CTS:
        break;
      case SerialPortEvent.DSR:
        break;
      case SerialPortEvent.RI:
        break;
      case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
        break;
      case SerialPortEvent.DATA_AVAILABLE:
        synchronized (this) {
          try {
            int count = in.available();
            readinfo = new byte[count];
            in.read(readinfo);
          }
          catch (Exception e) {
            e.printStackTrace();
          }
          this.notify();
        }
        break;
    }
  }

  public int nstop() throws Exception {
    in.close();
    out.close();
    serialPort.close();
    return 0;
  }

  private void getData() throws Exception {
    serialPort.removeEventListener();
    serialPort.addEventListener(this);
    serialPort.notifyOnDataAvailable(true);
    in = serialPort.getInputStream();
  }
 
  public synchronized int doSomething() throws Exception {
    try {
      synchronized (this) {
        out = serialPort.getOutputStream();
        //发送指令;
        out.write(new byte[] {...});
        out.flush();
        getData();
        wait();
        //可继续进行处理
        ...
      }
    }
    catch (Exception e) {
      e.printStackTrace();
      return 1;
    }
    return 0;
  }
}

分享到:
评论

相关推荐

    JAVA串口操作例子

    Java串口操作是Java编程中一个相对特殊但实用的领域,尤其在嵌入式系统、物联网设备通信或者工业自动化等领域中。本示例是通过RXTX库在Windows环境下进行串口读写的一个实例。RXTX是一个开源的Java库,它提供了与...

    java swing串口通信源码

    在Java Swing中实现串口通信可以帮助开发者创建能够与硬件设备交互的应用,例如读取或发送数据到通过串行端口连接的设备。本文将深入探讨如何使用Java Swing进行串口通信,以及涉及的相关技术。 首先,串口通信是一...

    Java实现串口通信

    串行端口,或称为串口,是一种用于设备间通信的接口,它以串行方式传输数据,一次传输一位。在Java中,通常使用javax.comm包来处理串口通信,这个包提供了SerialPort类以及其他相关类和接口,允许开发者读写串口数据...

    java实现串口通信demo(含串口通信jar包)

    Java串口通信是一种在计算机之间或计算机与其他设备(如PLC、Arduino等)进行低级数据传输的方法。在Java中实现串口通信通常需要依赖外部库,如本示例中的"RXTXcomm.jar"。这个jar包包含了32位和64位版本,适用于...

    java串口操作源码

    Java串口操作是Java编程中一个相对特殊但重要的领域,主要涉及到硬件通信和设备交互。在实际应用中,比如工业自动化、物联网设备控制等场景,Java串口编程扮演着关键角色。标题提到的问题是关于数据传输时遇到的一个...

    java串口操作类

    这个API提供了对串行端口进行读写操作的功能,使得Java程序能够与各种外部硬件设备,如打印机、扫描仪、GPS接收器等进行交互。 首先,`SerialPortDemo`可能是一个演示如何使用Java进行串口操作的示例程序。在这样的...

    java 虚拟串口模拟工具

    Java虚拟串口模拟工具是一种软件解决方案,用于在Java应用程序中模拟物理串行端口,以进行串口通信。这类工具通常被开发人员用来测试、调试或实现与硬件设备的通信,而无需实际的物理串口。VSPD(Virtual Serial ...

    java 串口通讯 rs232

    Java串口通信(Serial Communication)是通过RS-232标准接口进行设备间数据传输的一种技术。RS-232,全称为“电子工业协会标准232”,是一种广泛应用于计算机串行通信的接口标准。它允许计算机与其他设备,如打印机...

    Java串口通讯及串口调试助手

    Java串口通讯是Java编程领域中的一个重要组成部分,它允许程序通过串行端口与外部设备进行数据交换,如传感器、打印机、GPS等。串口调试助手则是开发过程中用于测试和诊断串口通信问题的工具,它能帮助开发者直观地...

    JAVA串口采集传感器数据

    `RxtxComm`是一个开源的Java库,它为Java提供了对串口通信的原生支持,使Java开发者能够像在C++或Python中那样方便地进行串口操作。 ### 三、RxtxComm库介绍 `RxtxComm`库提供了一个纯Java实现的API,用于访问操作...

    java_java串口操作_

    Java串口操作是Java开发中一个相对小众但重要的领域,尤其在嵌入式系统、自动化设备通信或者物联网应用中非常常见。Java提供了一个名为`javax.comm`的库来处理串口通信,不过这个库已经很久没有更新了,且在某些现代...

    JAVA rs232 串口 硬件com接口

    2. `comm.jar`:这是Java串口通信的API库,包含了Java串口通信所需的类和接口。比如`javax.comm.CommPortIdentifier`用于识别可用的串口,`javax.comm.ParallelPort`和`javax.comm.SerialPort`分别代表并行和串行...

    java连接串口驱动

    串口,也称为串行接口,是一种古老的计算机接口,用于设备间的慢速通信。常见的串口有RS-232、USB-to-Serial转换器等。在Java中,串口驱动允许程序与这些接口进行通信,例如连接到GPS设备、条形码扫描器、温度传感器...

    JAVA usb串口通讯(可用)

    在"JAVA usb串口通讯(可用)"这个主题中,我们主要探讨的是如何使用Java来实现与USB设备通过串行接口进行数据交换。USB串口通信在物联网(IoT)、自动化设备控制、工业应用等领域广泛应用。 首先,Java本身并不直接...

    JAVA串口程序源码

    Java串口程序源码是一种基于Java语言实现的通信程序,它允许通过计算机的串行端口(Serial Port)进行数据的发送和接收。在嵌入式系统、工业控制、物联网设备等场景中,串口通信扮演着重要的角色,因为它是简单、...

    Java串口通信操作的jar包

    Java串口通信是一种在Java应用程序之间或Java程序与硬件设备之间进行数据传输的技术。Rxtx是一个开源的Java库,专门用于实现串行通信,它为Java提供了串口(Serial Port)操作的能力,使得开发者无需深入理解底层...

    java_chuankou.rar_java串口通信_pc串口_串口_串口 java_串口通信JAVA

    Java串口通信是一种在两台计算机之间通过串行接口进行数据传输的技术,广泛应用于设备控制、数据采集、物联网等场景。在Java中实现串口通信,通常需要借助第三方库,如RXTX或JSSC(Java Simple Serial Connector)。...

    Java串口通信编程

    Java 语言作为一门跨平台的编程语言,能够在不同的操作系统上运行,能够与串口通信设备进行交互。 RXTX 是一个开源的 Java 类库,提供了串口和并口通信的功能。RXTX 主要是在 COMM 开源包中做扩张,以前的 COMM 包...

    利用java rxtx对串口进行通讯

    在标题和描述中提到的“利用Java RXTX对串口进行通讯”,是指使用这个库来开发Java程序,以便与硬件设备通过串行端口进行数据交换。这在物联网(IoT)、自动化设备控制、嵌入式系统等领域非常常见。 RXTX库提供了跨...

    java串口调试助手.zip

    Java串口调试助手是一款用于Java开发中的串口通信调试工具,它可以帮助开发者便捷地测试和调试串行端口(Serial Port)的通信功能。在Java编程中,串口通信是硬件设备之间数据交换的一种常见方式,例如打印机、GPS...

Global site tag (gtag.js) - Google Analytics