我正在使用java“comm.jar& java.net”库制作收发器。
在这个项目中,我将使用COM端口连续发送数据。但现在我不会使用物理端口,所以我安装了一个虚拟串口“虚拟串口驱动7.2”。当然我已经使用超级终端及其工作进行了测试。
现在我使用了许多站点中存在的java代码来串行发送字符串,这里是代码:
“” “” “” “” “” “” “” “”
import java.awt.event.*;
import java.util.*;
import java.awt.*;
import javax.swing.*;
import javax.comm.*;
import java.io.*;
import java.net.*;
public class serial_port {
static Enumeration portList;
static CommPortIdentifier portId;
static String messageString = "Hello, world!\n";
static SerialPort serialPort;
static OutputStream outputStream;
public static void main(String[] args)
{
portList = CommPortIdentifier.getPortIdentifiers();
System.out.println(portList);
while (portList.hasMoreElements()) {
System.out.println("sss");
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
if (portId.getName().equals("COM1")) {
//if (portId.getName().equals("/dev/term/a")) {
try {
outputStream = serialPort.getOutputStream();
} catch (IOException e) {}
try {
serialPort.setSerialPortParams(9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
} catch (UnsupportedCommOperationException e) {}
try {
outputStream.write(messageString.getBytes());
} catch (IOException e) {}
}
}
}
}
}
“” “” “” “” “” “” “” “” “” “” “” “” “” “”
首先,这行代码(portList = CommPortIdentifier.getPortIdentifiers();) 我没有端口。我认为这是因为我使用了虚拟串口。但是我连接了物理串口,也没有端口可供查找。
我的问题是:如果我使用虚拟或物理端口有什么区别吗?为什么这段代码不适用于任何类型的端口-serial ports-?