0
我有一個servlet上下文監聽器,其中有一個串口監聽器。在這個監聽我省從串口的字節是這樣的:將字節數組從servlet監聽器傳遞到控制器
public void contextInitialized(ServletContextEvent contextEvent){
context = contextEvent.getServletContext();
serial = SerialFactory.createInstance();
serial.open(Serial.DEFAULT_COM_PORT, 19200);
serial.addListener(new SerialDataListener(){
@Override
public void dataReceived(SerialDataEvent arg0) {
private byte[] serialDataByte;
serialDataByte = arg0.getData().getBytes();
context.setAttribute("serialData", serialDataByte);
seriale.write(serialDataByte); //the echo on serial port show me the right bytes
}
});
}
我控制器上我通過訪問串口數據:
private byte[] temp;
temp = (byte[]) getServletContext().getAttribute("serialData");
for(int i=0; i<temp.length;i++){
output.println(Integer.toHexString(temp[i] & 0x00FF));
}
我發送到串行端口此字節數組:
aa 7f 40 a 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 fe 1a
長度爲69 有時候在我的臨時數組我只有原來陣列的一小部分,有時是:
aa 7f 40 a 72 0 0 0 0 0 0 0 0 0 0
有時:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 fe 1a
有時的69個字節的右陣列。 如何將從串口取得的確切數據傳給我的控制器? 在此先感謝
謝謝你的回答。這樣,如果上下文屬性不爲空,如何在第一次之後保存串行數據?每秒一臺PC發送一個字節數組到這個串行端口,我需要在網頁中顯示這個數組的一些字節。 – user2108656 2013-02-26 22:53:08