Re: 關於 RS232 傳輸接收資料

看板java作者 (poc)時間17年前 (2008/09/29 23:28), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/7 (看更多)
※ 引述《tkcn (小安)》之銘言: : ※ 引述《poc7667 (poc)》之銘言: : : 謝謝你的解答,現在我還在困惑,要怎麼解決! : : eg: "88 7F 00 00 07 82" : : 我把他中間的空白自動split : : String str= output.getText(); : : String sentBuf[] = str.split(" "); : : 理論上 sentBuf[0]="88".......sentBuf[5]="82" : : 因為中間有"7F" : : 我又做了這樣轉換 : : For(0 to last) : : int k=Integer.parseInt(sentBuf[i],16); : : sentBuf[i]=Integer.toString(k); : 這裡你又把他轉成十進位字串了 @@ : 實際上你該傳的就是 value,不是字串。 意思是說int k=Integer.parseInt(sentBuf[i],16); 之後就直接 outputStream.write(k);出去了嗎? 這邊就算先把他轉成binaryString 再去parse他,直接丟出去, 應該也不影響結果吧? 16進位,2進位,最終出去都是signal 只是給人看的而已! endian問題我自己是有寫一個程式 可以把字串 8D 00 00 00 01 81 0D轉成 D0 18 10 00 00 00 D8 後續的再加轉換成Int動作。 不過現在問題仍無法解決 http://tinyurl.com/3o7u54 麻煩板友提供點意見 3Q : : 經過這段code:sentBuf[1]= "7F" 應該會被轉換成 sentBuf[1]="127" : : 接著我就把split好且轉成的十進位丟進去給他吃。 : : tmp=sentBuf[i].getBytes(); : : outputStream.write(tmp); : : //EndFor : : 剛剛板友,您提到要做轉換以及 LowByte HighByte的Endian這點我不懂要如何做 : 我想這與 big-endian 無關, : : sentBuf[1]="7F" 想辦法把他回文成 "F7"字串存回去? : 完全不是這樣 Orz : 先 google 一下 endian 吧, : 不過我還是認為,你的問題與 endian 無關, : 把 16 進位字串轉成 value 之後,直接輸出就好了。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.199.27
文章代碼(AID): #18uFGRZH (java)
討論串 (同標題文章)
文章代碼(AID): #18uFGRZH (java)