我想用這種格式我希望將數據從串行通訊分裂,並提供給表
<STX> data1<FS> Data2<FS> Data3<FS> ...Data_n<FS>Checksum<ETX>
其中
- STX是十六進制0×02分割數據串行
- FS是爲0x1C以十六進制
- ETX是十六進制0x03時
然後我需要把它發送到數據庫表
我使用RXTX庫,並得到字節值的結果。
有人可以幫助,並與我分享如何做到這一點?
我想用這種格式我希望將數據從串行通訊分裂,並提供給表
<STX> data1<FS> Data2<FS> Data3<FS> ...Data_n<FS>Checksum<ETX>
其中
然後我需要把它發送到數據庫表
我使用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 0號 * 1號 SUKIMAN二 三十八分之四十六3號 1四號 空五號 0六號 363812270115七號 1 8號 1 9號 4 10號 TGL 11號 197 12號 毫克/分升13號 空14號 ALDL 15號 179 16號 毫克/分升17號 null No.18 URCA No.19 6.0 No.20 mg/dl No.21 nu 11 No.22 GLUC No.23 179 No.24 mg/dl No.25 null No.26 87 No.27 – 2015-02-13 00:31:27
你已經試過了什麼代碼?請參閱[我可以在這裏詢問哪些主題?](http://stackoverflow.com/help/on-topic),[我如何提出一個好問題?](http://stackoverflow.com/help/how -to-ask)和[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 – Makyen 2015-02-11 04:19:49
你有任何代碼,老兄? – 2015-02-11 04:26:26