作者poc7667 (poc)
看板java
标题Re: 关於 RS232 传输接收资料
时间Mon Sep 29 23:28:25 2008
※ 引述《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