作者poc7667 (poc)
看板java
标题关於 RS232 传输接收资料
时间Wed Jul 30 22:06:21 2008
再写有关这类的程式
我输入的资料是从Java Text Area读取 "86 00 00 00 01 82 05 "
类似这样的字串
然後就直接给他写入
outputStream.write(output.getText().getBytes());
在Java Text Area资料格式应该是字串,RS232应该是吃"16进位数值资料"
这样直接丢过去会不会有错呢?or应该如何做个转换才好。
而我接收资料程式是这样写
readBuffer = new byte[1024];
try {
int numBytes = 0;
StringBuffer readBuffer = new StringBuffer();
int c;
while (inputStream.available()>0){
c=inputStream.read();
readBuffer.append((char) c);
input.append(Integer.toHexString(c));
}
input.append("\n");
} catch (ArrayIndexOutOfBoundsException g) {}
我测试的机器有附一个软体(当然是正确的)
输出资料:86 00 00 00 01 82 05
从RS232得到资料:C6 00 00 00 02 82 00 46
而我自己写的程式
输出资料(写在TextArea): 86 00 00 00 01 82 05
得到资料:c00002ff13c
不知道哪里出问题了 烦请解惑
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.198.118
1F:推 TonyQ:endian问题? 07/30 22:35