2017-02-15 127 views
0
// 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); 

我假设的串行接口标准本身维护使用RTS/CTS发送和接收数据之前,每一次握手硬件流控制做串行通信握手。如何通过RTS和CTS使用RXTX Java中

我的问题说法是,我每次发送实际数据之前想,一个RTS信号必须被发送到接收器和接收器确认回来的CTS信号。

回答

1

有流量控制的3种模式:

  • 硬件流控制 - 这是管理与连接器高的2个引脚(RTS/CTS)的握手(RS-232)。这是最好的选择;
  • 软件流控制 - 这是管理与您想要初始化传输或当您想要结束时发送的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 | SerialPort.FLOWCONTROL_RTSCTS_OUT); serialPort.setDTR(true);

后,你需要配置通知:
serialPort.addEventListener(this); serialPort.notifyOnCTS(true); serialPort.notifyOnDSR(true); serialPort.notifyOnOutputEmpty(true);

在此之后,硬件流控制W ^像魅力的工作。

对于完整的代码访问这里:
https://raw.githubusercontent.com/andrelup/GSM-gateway/master/GSMConnect