我想用这种格式分割数据串行
<STX> data1<FS> Data2<FS> Data3<FS> ...Data_n<FS>Checksum<ETX>
其中
然后我需要将它发送到数据库表
我使用RXTX库并按字节值获取结果。
有人可以帮助并与我分享如何做到这一点吗?
答案 0 :(得分:0)
我用丑陋的方式得到结果我认为但真正的问题是我只想从数组[2]输入数据数组直到长度-2。现在(我做了60个静态数组长度),但数据总是数组中的动态长度。有没有办法解决这个问题。我听说过列表数据类型,但我认为它更难。
public Constructor(GUI window)
{
this.dump = new String[60];
this.window = window;
}
int i = 0; String[] dump; boolean begin = false,first=true;
public void serialEvent(SerialPortEvent evt) {
if (evt.getEventType() == SerialPortEvent.DATA_AVAILABLE)
{
try
{
byte singleData = (byte)input.read();
if (singleData == 2){
begin =true; i=0;
}
if (singleData == 3){
begin = false; writeData();
}
if (begin == true){
if (singleData != 28 && singleData!=2 ){
if(dump[i]!=null && first==false){
dump[i]=dump[i]+ new String(new byte[] {singleData});
}
if(dump[i]==null){
dump[i]=new String(new byte[] {singleData});
first=false;
}
}
if (singleData==28){
System.out.println(dump[i] + " No." + i );
first=true;
i++;
}
}
}
catch (Exception e)
{
logText = "Failed to read data. (" + e.toString() + ")";
window.txtLog.setForeground(Color.red);
window.txtLog.append(logText + "\n");
}
}
}