我已經實現了JSSC API,所以我可以與Com端口進行通信。 我發送一個命令像 「N \ r \ n」 個閱讀完成行Java串行端口
和我收到一個正常的超級終端應該是這樣的:
0100071CA79215021803164442180000
0100071C9F5415021803164514520000
0100071CDF5115022106142956600000
NOK
但是,當我這樣做與JSS C API我收到此(僅第一代碼)
0071CA79
的問題是,我隨機收到位部件和在代碼的最後,我失去了一些部分。但那不重要,我只需要每個代碼的前12位數字。
問題是現在我怎麼得到的功能只接收完整的行,而不是bitparts?
這是類 類PortReader2實現SerialPortEventListener的接收部分{
@Override
public void serialEvent(SerialPortEvent event) {
if(event.isRXCHAR()&& event.getEventValue() > 2) {
try {
// получение ответа от порта
String receivedData = serialPort.readString();
System.out.println(receivedData.length() + ":" + receivedData);
}
catch (SerialPortException ex) {
System.out.println("Error in receiving response from port: " + ex);
}
}
}
}
這是發送部分
public void sendCodeCommand(SerialPort serialPort) {
// writing string to port
try {
Thread.sleep(3000);
serialPort.writeBytes("N\r\n".getBytes());
} catch (SerialPortException | InterruptedException ex) {
Logger.getLogger(ComPortSendReceive.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println("String wrote to port, waiting for response..");
}