J2ME串口通讯.docVIP

  • 1
  • 0
  • 约5.37千字
  • 约 5页
  • 2017-12-17 发布于河南
  • 举报
J2ME串口通讯

J2ME 串口编程 文章分类:移动开发 关键字: 串口 j2me Jm是Sun公司提供的,用于开发平台独立的通讯应用程序的扩展API。(ps:这里javax的x很准确地表明了它是一个扩展包,而不是核心包(core package),但由于历史原因,javax下的并不都是扩展包,比如swing包已经是Java核心架构的一部分了,不过为了与Java1.1编码兼容,仍使用javax.swing。)m可以访问RS232接口(串口)及有限制地访问IEEE-1284(并口)。 下载 需要到其官方主页/products/javacomm/下载这个API,目前的最新版本是3.0。不过可惜的是,Sun目前没有推出此API在Windows平台下的3.0版本,主页上列出的三个版本,分别是运行在x86和Sparc结构下的Solaris系统,以及x86下的Linux系统。要下载Windows版本只能去寻找较老的版本了。我所找到的2个网址是/projects/cricket/software/javaSerial.zip(两个文件夹里面有所需的3个文件),/Jolt/javacomm20-win32.zip和(完整的2.0版本,还有examples)。 安装 这里的所谓安装就是把三个重要的文件放到指定的目录下。 将下载的文件解压缩后,在\javacomm20-win32\commapi目录下有必需的三个文件comm.jar,m. properties和win32comm.dll。将文件comm.jar拷贝到%JAVA_HOME%\jre\lib\ext;文件m. properties拷贝到%JAVA_HOME%\jre\lib; 文件win32comm.dll拷贝到%JAVA_HOME%\bin。注意%JAVA_HOME%是jdk的路径,而非jre。 API 在m下有13个类和接口,分别是 4个接口 CommDriver 可负载设备(the loadable device)驱动程序接口的一部分 CommPortOwnershipListener 传递各种通讯端口的所有权事件 ParallelPortEventListener 传递并行端口事件 SerialPortEventListener 传递串行端口事件 6个类 CommPort 通讯端口 CommPortIdentifier通讯端口管理 ParallelPort 并行通讯端口 ParallelPortEvent 并行端口事件 SerialPort RS-232串行通讯端口 SerialPortEvent 串行端口事件 3个异常类 NoSuchPortException 当驱动程序不能找到指定端口时抛出 PortInUseException 当碰到指定端口正在使用中时抛出 UnsupportedCommOperationException 驱动程序不允许指定操作时抛出 实例 同API一起下载的还有一个examples文件,里面有6个程序。首先看最简单的读、写程序。 读串口的例程 import java.io.*; import java.util.*; import m.*; 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();/*不带参数的getPortIdentifiers方 法获得一个枚举对象,该对象又包含了系统中管理每个端口的CommPortIdentifier对象。注意这里的端口 不仅仅是指串口,也包括并口。这个方法还可以带参数。getPortIdentifiers(CommPort)获得与已经被应 用程序打开的端口相对应的CommPortIdentifier对象。getPortIdentifier(String portName)获取指定端 口名(比如“COM1”)的CommPortIdentifier对象。*/ while (portList.hasMoreElements()) { portId = (CommPortIdentifier) portList.nextElement(); if (portId.getPortType()

文档评论(0)

1亿VIP精品文档

相关文档