[英]Java Com port read write issue
In my application I am trying to write to a COM port. 在我的应用程序中,我试图写入COM端口。 The connected device is an arduino that returns the message I send (for testing purposes).
连接的设备是一个arduino,它返回我发送的消息(出于测试目的)。 However when I write to it I don't get the response I expect but when I use a button in a GUI I do.
但是,当我写它时,没有得到我期望的响应,但是当我在GUI中使用按钮时,却可以。
The write method: 写入方法:
public void write(String x) {
try {
outStream.write(x.getBytes());
outStream.flush();
} catch (IOException e) {
logger.error(e.getMessage(), e);
}
}
The event listener 事件监听器
public void serialEvent(SerialPortEvent event) {
logger.debug("listener called");
if (event.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
BufferedReader portReader = new BufferedReader(new InputStreamReader(inStream));
try {
String line = portReader.readLine();
test(line);
} catch (IOException e) {
logger.error(e.getMessage(), e);
}
}
}
The serialport will notify if data is available and the listener is called after I write the data however I get an OUTPUT_BUFFER_EMPTY response while I expect the string I have sent. 串行端口将通知数据是否可用,并在写入数据后调用侦听器,但是在我希望已发送的字符串的同时,我得到OUTPUT_BUFFER_EMPTY响应。
The SerialPortHandler is based on instances so I can use the same one everywhere in my application. SerialPortHandler基于实例,因此我可以在应用程序中的任何地方使用相同的实例。
example: 例:
SerialPortHandler handler = SerialPortHandler.getInstance();
handler.write("hello world");
expected: 预期:
DEBUG [SerialPortHandler.java] - listener called
hello world
actual: 实际:
DEBUG [SerialPortHandler.java] - listener called
问题是我在写入和初始化serialportHandler的那一刻之间没有延迟
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.