gpt4 book ai didi

java - 如何在java中使用RXTX通过RTS和CTS进行串行通信握手

转载 作者:行者123 更新时间:2023-12-01 08:53:07 25 4
gpt4 key购买 nike

// my configuration using RXTX library in java
SerialPortObj.setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_IN | SerialPort.FLOWCONTROL_RTSCTS_OUT);// Hardware flow control settings
SerialPortObj.setRTS(true);
SerialPortObj.notifyOnCTS(true);

我假设串行接口(interface)标准本身每次在发送和接收数据之前都使用RTS/CTS握手来维护硬件流控制。

我的问题陈述是,我希望在每次发送实际数据之前,必须将RTS信号发送到接收器,并且接收器用CTS信号进行确认。

最佳答案

流量控制有3种模式:

  • 硬件流控制 - 这是管理与连接器 (rs-232) 的 2 个引脚 (RTS/CTS) 的握手。这是最好的选择;
  • 软件流控制 - 这是管理当您想要初始化传输或想要结束传输时发送的 2 个字符 (XON/XOFF) 的握手;
  • 无流量控制 - 此模式很简单,但您可能会丢失数据。无法控制数据流。
    欲了解更多信息,请访问以下网站:
    http://www.tldp.org/HOWTO/Text-Terminal-HOWTO-11.html#ss11.7

如果您想使用 RTS/CTS 方法来管理 rs-232 上的流量控制,您必须为此模式配置串行端口:
serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_IN | )
串行端口.FLOWCONTROL_RTSCTS_OUT);
SerialPort.setDTR(true);

需要配置通知后:
serialPort.addEventListener(this);
串行端口.notifyOnCTS(true);
SerialPort.notifyOnDSR(true);
SerialPort.notifyOnOutputEmpty(true);

之后,硬件流控制将发挥作用。

完整代码请访问此处:
https://raw.githubusercontent.com/andrelup/GSM-gateway/master/GSMConnect

关于java - 如何在java中使用RXTX通过RTS和CTS进行串行通信握手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42247103/

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