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

Java串行端口技术协议(3)

阅读更多

2.监听方式(listening)

  Comm API支持标准的Java Bean型的事件模型。也就是说,你可以使用类似AddXXXListener这样的方法为一个串口注册自己的监听器,以监听方式进行数据读取。

  如要对端口监听,你必须先取得CommPortIdentifier类的一个实例,

  CommPort serialPort = portId.open("My App", 60);

  从而取得SerialPort,再调用它的addEventListener方法为它添加监听器,

  serialPort.addEventListener(new MyPortListener());

  SerialPort的监听器必须继承于SerialPortEventListener接口。当有任何SerialPort的事件发生时,将自动调用监听器中的serialEvent方法。Serial Event有以下几种类型:

  BI -通讯中断.

  CD -载波检测.

  CTS -清除发送.

  DATA_AVAILABLE -有数据到达.

  DSR -数据设备准备好.

  FE -帧错误.

  OE -溢位错误.

  OUTPUT_BUFFER_EMPTY -输出缓冲区已清空.

  PE -奇偶校验错.

  RI - 振铃指示.

  下面是一个监听器的示例:

  public void MyPortListener implements SerialPortEventListener

  {

   public void serialEvent(SerialPortEvent evt)

   {

  switch (evt.getEventType())

  {

   case SerialPortEvent.CTS :

    System.out.println("CTS event occured.");

    break;

   case SerialPortEvent.CD :

    System.out.println("CD event occured.");

    break;

   case SerialPortEvent.BI :

    System.out.println("BI event occured.");

    break;

   case SerialPortEvent.DSR :

    System.out.println("DSR event occured.");

    break;

   case SerialPortEvent.FE :

    System.out.println("FE event occured.");

    break;

   case SerialPortEvent.OE :

    System.out.println("OE event occured.");

    break;

   case SerialPortEvent.PE :

    System.out.println("PE event occured.");

    break;

   case SerialPortEvent.RI :

    System.out.println("RI event occured.");

    break;

   case SerialPortEvent.OUTPUT_BUFFER_EMPTY :

    System.out.println("OUTPUT_BUFFER_EMPTY event occured.");

    break;

   case SerialPortEvent.DATA_AVAILABLE :

    System.out.println("DATA_AVAILABLE event occured.");

    int ch;

    StringBuffer buf = new StringBuffer();

    InputStream input = serialPort.getInputStream

    try {

     while ( (ch=input.read()) > 0) {

      buf.append((char)ch);

     }

     System.out.print(buf);

    } catch (IOException e) {}

    break;

   }

  }


  这个监听器只是简单打印每个发生的事件名称。而对于大多数应用程序来说,通常关心是DATA_AVAILABLE事件,当数据从外部设备传送到端口上来时将触发此事件。此时就可以使用前面提到过的方法,serialPort.getInputStream()来从InputStream中读取数据了。

分享到:
评论

相关推荐

    浅谈Java串行端口技术协议

    浅谈Java串行端口技术协议 浅谈JAVA串行端口技术协议 1 一、串行通讯慨述 2 二、RS232通讯基础 2 三、常见的边线方式 2 四、小技巧:如何辨别TXD和RXD端口? 3 五、安装JAVA COMMUNICATIONS API 3 六、通讯前的准备...

    2022年Java串行端口技术协议Java教程.docx

    2022年Java串行端口技术协议Java教程.docx

    网络通讯更自由 谈Java串行端口技术协议.doc

    网络通讯更自由 谈Java串行端口技术协议.doc

    Javax.comm简介 Java串行端口技术协议 javacomm20 SMSLib串口通信 虚拟串口

    收集的comm串口通信调试的技术文档 Javax.comm简介.doc 浅谈Java串行端口技术协议.doc 关于java使用javacomm20.doc SMSLib串口通信.doc KEIL中如何用虚拟串口调试串口程序.doc

    java串口通讯 短信测试 comm编程 PDU编码 进制转换 AT命令

    13751069146 Saro Modem 短信测试.txt Java Comm API编程指南.doc Javax.comm简介.doc KEIL中如何用虚拟串口调试...浅谈Java串行端口技术协议.doc 短信 AT 命令参考.doc 短信PDU编码解码.doc 通过串口收发短消息.doc

    串行端口

    您将获得具有read() , write()和其他基本功能的原始串行端口,以与您自己的协议一起使用。 快速开始 1.将库添加到您的项目: 将jitpack.io存储库添加到您的根build.gradle中: allprojects { repositories { ....

    Java串口通信详解

    对常用的 RS232 串行端口和 IEEE1284 并行端口通讯的支持。 RS-232-C(又称 EIA RS-232-C,以下简称 RS232)是在 1970 年由美国电子工业协会(EIA)联合贝尔系统、调制解 调器厂家及计算机终端生产厂家共同制定的用于...

    NetLightServer:用于应用程序通信的轻量级 http 服务。 然后,服务器将以格式化的方式将数据发送到串行端口,在该端口上连接有带有适当读取软件的 LED 设备。 led设备控制led条纹

    然后,服务器将以格式化的方式将数据发送到串行端口,带有适当读取软件的 LED 设备连接到串行端口。 LED 设备控制 LED 条纹。协议该服务器的协议非常简单。 将使用这些常量: deviceAddress :the address for the ...

    串口监视软件

    CommMonitor 侦测、拦截、逆向分析串口通信协议, 是侦测RS232/422/485串行端口的专业工具软件,是软硬件工程师的最佳助手。CommMonitor 能侦听、拦截、记录、分析串行通信协议,让您对应用程序操作串行端口的过程和...

    TCP-IP详解卷1:协议

    第3章 IP:网际协议 24 3.1 引言 24 3.2 IP首部 24 3.3 IP路由选择 27 3.4 子网寻址 30 3.5 子网掩码 32 3.6 特殊情况的IP地址 33 3.7 一个子网的例子 33 3.8 ifconfig命令 35 3.9 netstat命令 36 3.10 IP的未来 36 ...

    matlab向串口发送指令代码-tsa-usb-adapter:该项目允许计算机使用通过USB端口发送的串行协议与MedocTSAII通信

    该项目允许计算机使用通过USB端口发送的串行协议与进行通信。 快速开始 您还应该阅读《 TSA II操作手册》(TSA2OperationManual.pdf),以了解如何构建发送和接收TTL信号的TSA程序。 设置 OSX和Linux 用USB线将...

    串口监视精灵

    CommMonitor 能侦听、拦截、记录、分析串行通信协议,让您对应用程序操作串行端口的过程和细节,让您及时的模拟被侦听程序或设备的数据、控制流,提高工作效率。 二次开发接口DEMO 详细调用方法请参看: Demo\ ...

    jsr80 java 访问 usb

    像串行端口一样,计算机上每一个 USB 端口都由 USB 控制器指定了一个惟一的标识数字(端口 ID)。当 USB 设备附加到 USB 端口上时,就将这个 惟一端口 ID 分配给这台设备,并且 USB 控制器会读取 设备描述符。设备描述...

    CSerialPort:基于C ++的轻量级开源跨平台串口类库基于C ++的轻量级跨平台串行端口库

    支持其他语言,如C,C#,Python,Java,Golang等 6.同步串口通信 7.全新的跨平台串口调试助手 8.增加一个类库的介绍和使用视频 9.串口侦听钩 短期目标 1.跨平台操作系统识别库 2.跨平台多线程类库 3.跨平台...

    jcctalk:cctalk协议的Java库-开源

    该项目实现了用于硬币接收器和其他接收器的cctalk协议。 当前,它具有非常基本的功能,并且大多数命令... 但是,可以识别硬币输入(通过仿真串行端口在EMP-800硬币接收器上测试)。 该库使用RXTXcomm库进行串行通信。

    TCP/IP技术大全

    17.3.1 串行线路接口协议(SLIP) 179 17.3.2 压缩的SLIP(CSLIP) 180 17.3.3 点到点协议(PPP) 180 17.4 隧道远程访问 184 17.4.1 点到点隧道协议(PPTP) 185 17.4.2 两层隧道协议(L2TP) 188 17.4.3 IPSec 192 17.5 小结...

    TCPIP协议详解(4-1)

    据报文 179 17.3.1 串行线路接口协议(SLIP) 179 17.3.2 压缩的SLIP(CSLIP) 180 17.3.3 点到点协议(PPP) 180 17.4 隧道远程访问 184 17.4.1 点到点隧道协议(PPTP) 185 17.4.2 两层隧道协议(L2TP) ...

    firmata4j:用Java编写的Firmata客户端

    通过串行端口,网络或自定义传输层进行通信 协议细节的抽象 提供一个UI组件,以可视化每个引脚的当前状态并允许更改其模式和状态 允许与I2C设备通信 安装 Maven 将以下依赖项添加到项目的pom.xml中: < groupId>...

    TCP-IP技术大全

    据报文 179 17.3.1 串行线路接口协议(SLIP) 179 17.3.2 压缩的SLIP(CSLIP) 180 17.3.3 点到点协议(PPP) 180 17.4 隧道远程访问 184 17.4.1 点到点隧道协议(PPTP) 185 17.4.2 两层隧道协议(L2TP) ...

    usb-serial-for-android:适用于CDC,FTDI,Arduino和其他设备的Android USB主机串行驱动程序库

    您将获得带有read() , write()和的原始串行端口,以与您自己的协议一起使用。 快速开始 1.将库添加到您的项目: 将jitpack.io存储库添加到您的根build.gradle中: allprojects { repositories { .. . maven {...

Global site tag (gtag.js) - Google Analytics