WEB开发网
开发学院WEB开发Jsp 利用Java实现串口全双工通讯 (转载) 阅读

利用Java实现串口全双工通讯 (转载)

 2008-01-05 09:31:02 来源:WEB开发网   
核心提示:利用java实现串口全双工通讯 (投稿)Qingye Jiang (John)SMTH ID: qyjohnE-mail : qjiang@tsinghua.edu一个嵌入式系统通常需要通过串口与其主控系统进行全双工通讯,譬如一个流水线控制系统需要不断的接受从主控系统发送来的查询和控制信息,利用Java实现串口全双工通

  利用java实现串口全双工通讯 (投稿)

Qingye Jiang (John)
SMTH ID: qyjohn
E-mail : qjiang@tsinghua.edu

一个嵌入式系统通常需要通过串口与其主控系统进行全双工通讯,譬如一个流水线
控制系统需要不断的接受从主控系统发送来的查询和控制信息,并将执行结果或查
询结果发送回主控系统。本文介绍了一个简单的通过串口实现全双工通讯的Java类
库,该类库大大的简化了对串口进行操作的过程。

本类库主要包括:SerialBean.java (与其他应用程序的接口), SerialBuffer.java
(用来保存从串口所接收数据的缓冲区), ReadSerial.java (从串口读取数据的程序)。
另外本类库还提供了一个例程SeriAlexample.java 作为示范。在下面的内容中将逐
一对这几个部分进行具体介绍。

1. SerialBean

SerialBean是本类库与其他应用程序的接口。该类库中定义了SerialBean的构造方
法以及初始化串口,从串口读取数据,往串口写入数据以及关闭串口的函数。具体
介绍如下:

public SerialBean(int PortID)

本函数构造一个指向特定串口的SerialBean,该串口由参数PortID所指定。
PortID = 1 表示COM1,PortID = 2 表示COM2,由此类推。

public int Initialize()

本函数初始化所指定的串口并返回初始化结果。假如初始化成功返回1,否
则返回-1。初始化的结果是该串口被SerialBean独占性使用,其参数被设置
为9600, N, 8, 1。假如串口被成功初始化,则打开一个进程读取从串口传
入的数据并将其保存在缓冲区中。

public String ReadPort(int Length)

本函数从串口(缓冲区)中读取指定长度的一个字符串。参数Length指定所返
回字符串的长度。

public void WritePort(String Msg)

本函数向串口发送一个字符串。参数Msg是需要发送的字符串。

public void ClosePort()

本函数停止串口检测进程并关闭串口。

SerialBean的源代码如下:

package serial;

import java.io.*;
import java.util.*;
import javax.comm.*;

/**
*
* This bean PRovides some basic functions to implement full dulplex
* information exchange through the srial port.
*
*/

public class SerialBean
{

static String PortName;
CommPortIdentifier portId;
SerialPort serialPort;
static OutputStream out;
static InputStream in;

SerialBuffer SB;
ReadSerial RT;

/**
*
* ConstrUCtor
*
* @param PortID the ID of the serial to be used. 1 for COM1,
* 2 for COM2, etc.
*
*/

public SerialBean(int PortID)
{
PortName = "COM" + PortID;
}

/**
*
* This function initialize the serial port for communication. It starts a
* thread which consistently monitors the serial port. Any signal captured
* from the serial port is stored into a buffer area.
*
*/

public int Initialize()
{

int InitSuccess = 1;
int InitFail = -1;

try
{

portId = CommPortIdentifier.getPortIdentifier(PortName);

try
{
serialPort = (SerialPort)
portId.open("Serial_Communication", 2000);

Tags:利用 Java 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接