2015-02-11 27 views
1

我想用這種格式我希望將數據從串行通訊分裂,並提供給表

<STX> data1<FS> Data2<FS> Data3<FS> ...Data_n<FS>Checksum<ETX> 

其中

  • STX是十六進制0×02分割數據串行
  • FS是爲0x1C以十六進制
  • ETX是十六進制0x03時

然後我需要把它發送到數據庫表

我使用RXTX庫,並得到字節值的結果。

有人可以幫助,並與我分享如何做到這一點?

+1

你已經試過了什麼代碼?請參閱[我可以在這裏詢問哪些主題?](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

+0

你有任何代碼,老兄? – 2015-02-11 04:26:26

回答

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"); 
        } 
      } 
     } 
+0

這裏的結果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