Java 我想从串行通信中分离数据并将其传送到表中
我想用这种格式拆分串行数据Java 我想从串行通信中分离数据并将其传送到表中,java,database,split,serial-communication,Java,Database,Split,Serial Communication,我想用这种格式拆分串行数据 <STX> data1<FS> Data2<FS> Data3<FS> ...Data_n<FS>Checksum<ETX> 在哪里 STX是十六进制的0x02 FS是十六进制的0x1C ETX是十六进制的0x03 然后我需要将它发送到数据库表 我使用RXTX库并通过字节值获得结果 有人能帮助我并与我分享如何做到这一点吗?我用我认为丑陋的方式得到了结果,但真正的问题是我只想从数组[2]输入数据数
<STX> data1<FS> Data2<FS> Data3<FS> ...Data_n<FS>Checksum<ETX>
在哪里
STX是十六进制的0x02
FS是十六进制的0x1C
ETX是十六进制的0x03
然后我需要将它发送到数据库表
我使用RXTX库并通过字节值获得结果
有人能帮助我并与我分享如何做到这一点吗?我用我认为丑陋的方式得到了结果,但真正的问题是我只想从数组[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");
}
}
}
你已经试过什么代码了?请看,还有。你有密码吗,杜德?这是结果R No.0*No.1 SUKIMAN No.2 46/38 No.3 No.4 null No.5 No.6 363812270115 No.7 No.1 No.8 No.9 No.4 No.10 TGL No.11 197 No.12 mg/dl No.13 null No.14 ALDL No.15 179 No.16 mg/dl No.17 null No.18 URCA No.19 6.0No.20 mg/dl No.21 null No.22 GLUC No.23 179 No.24 mg/dl No.25 null No.26 87 No.27