云自无心水自闲

天平山上白云泉,云自无心水自闲。何必奔冲山下去,更添波浪向人间!
posts - 131, comments - 201, trackbacks - 0, articles - 6
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

2007年5月18日

 Java在传统上感觉和硬件打交道的比较少,这部分工作用C语言的比较多。
但并不是说Java不具备这样的能力。

Sun就发布了Java和串口以及并口的开发包。但是在正常的搜索中只能找到Linux和Solaris版本的类库。
下面这个链接是Win32平台下的包,找了很久才找到。
http://javashoplm.sun.com/ECom/docs/Welcome.jsp?StoreId=22&PartDetailId=7235-javacomm-2.0-spec-oth-JSpec&SiteId=JSC&TransactionId=noreg


下面简单说一下使用的步骤。

1. 把下载包中的win32com.dll放到windows\system32目录下,文档中说是放在jdk的bin目录下,但是会报错,我后来放在system32目录下解决此问题
2. 把comm.jar和javax.comm.properties这两个文件放在类路径中,注意要放在一起。文档上是要求放在jdk的lib目录中。
如果缺少javax.comm.properties文件,就找不到任何一个串口和并口

        portList = CommPortIdentifier.getPortIdentifiers();/*不带参数的getPortIdentifiers方法获得一个枚举对象,该对象又包含了系统中管理每个端口的CommPortIdentifier对象。注意这里的端口不仅仅是指串口,也包括并口。这个方法还可以带参数。getPortIdentifiers(CommPort)获得与已经被应用程序打开的端口相对应的CommPortIdentifier对象。 getPortIdentifier(String portName)获取指定端口名(比如“COM1”)的CommPortIdentifier对象。*/

        
while (portList.hasMoreElements()) {
            portId 
= (CommPortIdentifier) portList.nextElement();
            
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL)/*getPortType方法返回端口类型*/ {
                
if (portId.getName().equals("COM1"))/* 找Windows下的第一个串口*/ {
                    SimpleRead reader 
= new SimpleRead();
                }

            }

        }

最后向大家推荐一个工具:Virtual Serial Port Driver XP4
这个工具可以在机器上虚拟一对相连接的串口。
这样在一台机器上不需要其他设备,就可以进行串口程序的测试、调试工作了。

 

posted @ 2007-05-18 20:39 云自无心水自闲 阅读(2149) | 评论 (13)编辑 收藏