欢迎来到天天文库
浏览记录
ID:34723799
大小:222.68 KB
页数:26页
时间:2019-03-10
《java串口通讯rs232》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、通过comm.jar等配置 如果用applet应用程序的话,下面这个函数是可以取到串口的,但是如果通过web应用程序(或者通过jsp调用)却取不到串口,而且也不会抛出异常,感觉很奇怪,特来请教! CommPortIdentifier.getPortIdentifiers();同时目标机器的java运行环境也需要把w32comm.dll, comm.jar xxx.proper等放到相应的目录就是用ibm的包而不用sun的comm包: ibm-javacomm-win32-x86.zip 只需要把comm驱动包这个类
2、的装载更新一下即http://www.gjwtech.com/serialcomm.htm利用Java实现串口全双工通讯一个嵌入式系统通常需要通过串口与其主控系统进行全双工通讯,譬如一个流水线控制系统需要不断的接受从主控系统发送来的查询和控制信息,并将执行结果或查询结果发送回主控系统。本文介绍了一个简单的通过串口实现全双工通讯的Java类库,该类库大大的简化了对串口进行操作的过程。 本类库主要包括:SerialBean.java(与其他应用程序的接口),SerialBuffer.java(用来保存从串口所接收数据的缓冲区
3、),ReadSerial.java(从串口读取数据的程序)。另外本类库还提供了一个例程SerialExample.java作为示范。在下面的内容中将逐一对这几个部分进行详细介绍。 1.SerialBean SerialBean是本类库与其他应用程序的接口。该类库中定义了SerialBean的构造方法以及初始化串口,从串口读取数据,往串口写入数据以及关闭串口的函数。具体介绍如下: publicSerialBean(intPortID) 本函数构造一个指向特定串口的SerialBean,该串口由参数PortID所指定。
4、PortID=1表示COM1,PortID=2表示COM2,由此类推。 publicintInitialize() 本函数初始化所指定的串口并返回初始化结果。如果初始化成功返回1,否则返回-1。初始化的结果是该串口被SerialBean独占性使用,其参数被设置为9600,N,8,1。如果串口被成功初始化,则打开一个进程读取从串口传入的数据并将其保存在缓冲区中。 publicStringReadPort(intLength) 本函数从串口(缓冲区)中读取指定长度的一个字符串。参数Length指定所返回字符串的长度。
5、 publicvoidWritePort(StringMsg) 本函数向串口发送一个字符串。参数Msg是需要发送的字符串。 publicvoidClosePort() 本函数停止串口检测进程并关闭串口。 SerialBean的源代码如下:packageserial;importjava.io.*;importjava.util.*;importjavax.comm.*;/****Thisbeanprovidessomebasicfunctionstoimplementfulldulplex*informatione
6、xchangethroughthesrialport.**/publicclassSerialBean{ staticStringPortName; CommPortIdentifierportId; SerialPortserialPort; staticOutputStreamout; staticInputStreamin; SerialBufferSB; ReadSerialRT; /** * *Constructor * *@paramPortIDtheIDoftheserialtobeused.1forCOM1
7、, *2forCOM2,etc. * */ publicSerialBean(intPortID) { PortName="COM"+PortID; } /** * *Thisfunctioninitializetheserialportforcommunication.Itstartsa *threadwhichconsistentlymonitorstheserialport.Anysignalcaptured *fromtheserialportisstoredintoabufferarea. * */ publi
8、cintInitialize() { intInitSuccess=1; intInitFail=-1; try { portId=CommPortIdentifier.getPortIdentifier(PortName); try { serialPort=(SerialP
此文档下载收益归作者所有