簡體   English   中英

Java Com端口讀寫問題

[英]Java Com port read write issue

在我的應用程序中,我試圖寫入COM端口。 連接的設備是一個arduino,它返回我發送的消息(出於測試目的)。 但是,當我寫它時,沒有得到我期望的響應,但是當我在GUI中使用按鈕時,卻可以。

寫入方法:

public void write(String x) {
    try {
        outStream.write(x.getBytes());
        outStream.flush();
    } catch (IOException e) {
        logger.error(e.getMessage(), e);
    }
}

事件監聽器

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);
        }
    }
}

串行端口將通知數據是否可用,並在寫入數據后調用偵聽器,但是在我希望已發送的字符串的同時,我得到OUTPUT_BUFFER_EMPTY響應。

SerialPortHandler基於實例,因此我可以在應用程序中的任何地方使用相同的實例。

例:

SerialPortHandler handler = SerialPortHandler.getInstance();
handler.write("hello world");

預期:

DEBUG [SerialPortHandler.java] - listener called
hello world

實際:

DEBUG [SerialPortHandler.java] - listener called

問題是我在寫入和初始化serialportHandler的那一刻之間沒有延遲

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM