gpt4 book ai didi

java - 如何在 java 中运行 comport 代码而不在 linux 系统中物理运行它

转载 作者:太空宇宙 更新时间:2023-11-04 11:58:13 24 4
gpt4 key购买 nike

我有一个 java 项目,它使用 comport 进行通信。并使用 comport 1 和 2 号码。但是我的 linux 系统没有 com 端口。我想运行代码并收听在 comport 上发送的数据。但是当我运行代码时,它会抛出错误。我该如何追求。

我的 comport 实用程序代码是这样的

import com.fazecast.jSerialComm.SerialPort;

public class ComPortUtil {
private static SerialPort comPort;
private static SerialPort relayPort;

static {
SerialPort[] serialPorts = SerialPort.getCommPorts();
comPort = serialPorts[3];
comPort.setBaudRate(115200);
comPort.setParity(SerialPort.NO_PARITY);
comPort.setNumDataBits(8);
comPort.setNumStopBits(SerialPort.ONE_STOP_BIT);
relayPort = serialPorts[1];
relayPort.setBaudRate(115200);
relayPort.setParity(SerialPort.NO_PARITY);
relayPort.setNumDataBits(8);
relayPort.setNumStopBits(SerialPort.ONE_STOP_BIT);
}

public static SerialPort getPOSPort() {
return comPort;
}

public static SerialPort getRelayPort() {
return relayPort;
}

}

最佳答案

我遇到了类似的问题,开发一个需要读取串口的软件。

我的工作站没有串口(它是一个虚拟机)所以我求助于用 com0com 创建虚拟串口.

它可以创建 2 个交叉链接的虚拟 com 端口(一个的输入是另一个的输出)。

我配置了一个供我的应用使用,并使用另一个创建了一个小程序来发送输入以测试该应用。

这是在虚拟 COM 端口上进行测试写入的示例,而应用程序正在监听其交联的 COM。

static SerialPort commPort = null;

@BeforeClass
public static void setUpClass(){
commPort = SerialPort.getCommPort("CNCB0");
commPort.openPort();
}


@Test
public void showControl(){
shortWait();
send(commPort, "S421803171");
// ...
// A delay of few millis ...
shortWait();
String value = lookup("#fldFicheBarcode").queryAs(TextField.class).getText();
// ...
assertEquals("S421803171", value);
}

protected static void send(final SerialPort commPort, final String _txt) {
ForkJoinPool.commonPool().submit(()->{
final String txt = !_txt.endsWith(CRLF)?_txt+CRLF:_txt;
byte[] bytes = txt.getBytes();
int writeBytes = commPort.writeBytes(bytes, bytes.length);
logger.debug("Written bytes:"+writeBytes);
}).join();
}

关于java - 如何在 java 中运行 comport 代码而不在 linux 系统中物理运行它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53498513/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com