Re: 關於 RS232 傳輸接收資料
※ 引述《tkcn (小安)》之銘言:
: 你的 endian 觀念還是錯的很離譜,
恩。我連nibble都換了
: 還有我認為這隻程式根本不需要用到 endian 的轉換。
: ※ 引述《poc7667 (poc)》之銘言:
: : 意思是說int k=Integer.parseInt(sentBuf[i],16);
: : 之後就直接 outputStream.write(k);出去了嗎?
: : 這邊就算先把他轉成binaryString 再去parse他,直接丟出去,
: : 應該也不影響結果吧?
: : 16進位,2進位,最終出去都是signal
: : 只是給人看的而已!
: 對..16進位, 2進位是給人看的,
: 你要送出去的應該是真正的 value,
: 而不是那 XX 進位的字串。
: 建議你還是先釐清觀念吧,
我到了這邊,就不是在送字串了
int k=Integer.parseInt(sentBuf[i],16);
outputStream.write(k);
轉成binaryString 再去parse他 <-也沒有打算要送字串出去。
: 現在這樣亂槍打鳥不是辦法。
因為document 沒有說機器真正東西要怎麼吃,所以就是亂槍打鳥....
不過自己最大問題是,javadoc也沒去弄好資料型態
outputStream.write 他吃int 只吃 unsigned 會自動被mod 256
要送的話還是要送byte出去 (byte) Integer.parseInt(XX,16)
byte 會把value 轉成 2's complemnt... -128 ~ 127
要轉回int看的話,要再做一下mask 因為長度不同
這幾篇文章還是感謝你的指點 XD
終於弄好這個,原本不覺得問題的小東西了。
IO...感覺不是寫程式的重點不起眼,但是又十分的重要。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.198.188
※ 編輯: poc7667 來自: 140.113.198.57 (10/02 12:42)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 7 之 7 篇):