2016-01-20 32 views
0

我正嘗試使用jssc庫將數據發送到Java串口的Xbee天線。無法使用jssc在沒有關閉端口的情況下在串行端口上發送數據?

我希望能夠在同一連接上發送和接收多個數據包。

我的問題是我的代碼只有在關閉端口後才發送我的第一個數據包,或者我結束了程序。

我根據我的教程代碼在此鏈接:http://www.codeproject.com/Tips/801262/Sending-and-receiving-strings-from-COM-port-via-jS

這裏是我的代碼:

serialPort = new SerialPort("COM4"); 
    try { 
     // opening port 
     serialPort.openPort(); 

     serialPort.setParams(SerialPort.BAUDRATE_38400, 
          SerialPort.DATABITS_8, 
          SerialPort.STOPBITS_1, 
          SerialPort.PARITY_NONE); 

     serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_IN | 
             SerialPort.FLOWCONTROL_RTSCTS_OUT); 

     serialPort.addEventListener(new PortReader(), SerialPort.MASK_RXCHAR); 

     byte[] fifo = new byte[13]; 
     fifo[0] = 0x7E; 
     fifo[1] = 0x00; 
     fifo[2] = 0x09; 
     fifo[3] = 0x01; 
     fifo[4] = 0x01; 
     fifo[5] = 0x00; 
     fifo[6] = 0x01; 
     fifo[7] = 0x00; 
     fifo[8] = 0x54; 
     fifo[9] = 0x65; 
     fifo[10] = 0x73; 
     fifo[11] = 0x74; 
     fifo[12] = 0x5C; 
     result = serialPort.writeBytes(fifo); 

用於數據的接收工作的情況下,我唯一的問題是在發送。我已經檢查過我的Xbee正在與之通話的其他設備的波特率。

編輯

當我我的XBee連接到FT232的UART(http://www.seeedstudio.com/depot/UartSBee-V5-p-1752.html),出現這種情況。

當我直接將RS-232連接到XBee時,傳輸立即發送。

回答

0

在關閉/退出之前等待字節消失多長時間?您可能需要進入FTDI驅動程序屬性並更新打包和延遲設置。在通過USB連接發送到FT232之前,它可能會在PC上等待驅動程序中的更多數據。

如果你有你的程序等幾秒鐘,你應該會發現消息最終不需要關閉串口或退出程序(它也關閉了串口)。

+0

感謝您的回覆!在關閉港口之前,我等了將近一分鐘。我會檢查一下。 – Flyingmath

0

將數據寫入串口後,嘗試將其從串口中清除出去,使其實際上從串口發出。還可以考慮串行通信管理器等串行端口通信的其他串口庫。

相關問題