产品名称 TestComm
文档版本 串口测试程序设计说明V2.0

[J2ME]华禹工控串口测试程序设计说明

1 背景和功能

1.1. 串口测试程序的概念

一个可以下载到华禹手持设备(P1300、P1220、P1500 系列)上的串口通信测试程序, 用于测试华禹手持设备的串口通信功能,能够向串口发送数据并从串口接收数据。

1.2. 如何体验串口测试程序

下载 TestComm.jad 和 TestComm.jar 到华禹手持设备上,执行 JAVA 程序,可体验串口测试程序。

1.3. 串口测试程序界面

下面是 TestComm 程序的界面(从模拟器中抓取):

图1:
图2:

当打开 java 程序之后会进入到图1,点击进入测试后进入图2。
最上面的区域为数据接收区;通过receive options框可选择HEX接收方式和ASCII接收方式;

图3:

图3所示:提供了5个端口号:在华禹平台上显示端口号0和1,对应华禹平台上的串口0与串口1;在模拟器上显示端口号3、4、5,对应PC机上COM3、COM4、COM5。

图4:

提供了三种波特率供选择;

图5:

图5:菜单命令:
1:发送数据;
2:清除接收区;
3:打开串口;
4:关闭串口;

2 设计思路

2.1. 基于串口的应用

串口是计算机上一种非常通用的设备通信协议,Sun J2me库提供了对串口通信的支持。
华禹工控在此基础上,开发了基于串口的多种应用,如RFID/条码/GPS/打印等等,本程序是基于J2ME的串口调试程序,便于在手持设备上调试与测试。

2.2. J2ME对串口的支持

关键的两个包:

1 java.io
Java.io是Java程序使用外部资源的基础,这些外部资源包括 JAR 中的图片/本地磁盘文件/串口/网络/视频设备等。
在Java.io包中,接口DataInput和DataOutput 代表了抽象的输入输出操作;
2 javax.microedition.io
Javax.microedition.io包是对连接的抽象。
连接是一个抽象的概念,它可以是串口的连接,可以是网络上客户与服务器的连接,也可以是手机与手机间的连接。
在 javax.microedition.io包中,实现了对协议的封装,如串口/HTTP/Socket协议,它与外围设备的通信仍然是通过java.io实现的。

2.3串口程序示例

1 打开串口

打开串口前判定是否在手持机上使用,调用
System.getProperty("microedition.platform");
如果得到值为" Sun",判定其在模拟器上使用
s_commUrl = s_commUrlEmu;
当值不为" Sun",判定其在真机上使用
s_commUrl = s_commUrlDevice;
s_commUrlEmus_commUrlDevice赋值与说明:
s_commUrlDevice = "tckcomm:1;baudrate=9600;blocking=off;autocts=off;autorts=off";
s_commUrlEmu= "comm:COM3;baudrate=9600;blocking=off;autocts=off;autorts=off";
COM3 为实际使用的串口。

查看实际使用的串口的方法: 打开我的电脑属性选项,然后点开设备管理器,可看见实际使用的串口。
如图6。
图6

若在模拟器上打开串口失败,代表串口被占用。
如在真机上提示打开失败,参考《华禹串口问题分析及解决》

2 打开输入输出流

in = cc.openInputStream();
out = cc.openOutputStream();

3 读取数据

int len = in.available();
if(len != 0) {
    byte[] bData = new byte[len];
    int iRet = in.read(bData);
}

4 发送数据

byte[] bData = hexStringToBytes(str);
out.write(bData,0,bData.length);
out.flush();

5 关闭输入输出流,关闭串口

if(out != null) {
    out.close();
    out = null;
}
if(in != null) {
    in.close();
    in = null;
}
if(cc != null) {
    cc.close();
    cc = null;
}

3 资源

华禹工控资源:

1. 串口测试程序源码下载:TestComm

购买信息:

1. 创易电子淘宝店

编写者 日期 关键词
华禹工控 2010-07-28 Comm、J2ME、华禹手机模块、JNI
302 Found

302 Found


nginx/1.8.0