去旅行吧 2014年01月16日
java 将接收的数据存到数组 再从数组里取出来判断
我从串口里读取数据 ,38位一读取,正常时候是没问题的 收到38位,但我的串口发送有时不是38位一发 所以造成我了收到数据不是38位格式的数据,而且分成几次才收到完整的数据。现在我想将这些不完整的数据放到byte[]里 ,然后从byte里取出来这些数据再判断是否是38位合格的数据。
我的代码 :


byte[] readBuffer = new byte[38];

byte[] temp = new byte[500];

int size = 0;

boolean flag = false;
try{

while (true){

size = inputStream.read(readBuffer);

//判断读取到的数据是否38位
if(size==38){

//判断数据的开头和结尾是否是规定的格式
if(readBuffer[0]==-88&&readBuffer[37]==26){
for (int i = 0; i < size; i++) {
System.out.print(Integer.toHexString(unsignedByteToInt(readBuffer[i]))+" ");
}
System.out.println();
}else{
//是38位数据但是 不是以a8 开头和1a结尾
for (int i = 0; i < size; i++) {

System.out.print(Integer.toHexString(unsignedByteToInt(readBuffer[i]))+",");
//将数据是38位 但是不是符合格式的数据存到byte里
//temp[i] = readBuffer[i];

}
System.out.println();
flag = true;
}

}else{//如果读取的数据不满38位

for (int i = 0; i < size; i++) {
//将不满的数据放到临时数组里
//temp[i] = readBuffer[i];
System.out.print(Integer.toHexString(unsignedByteToInt(readBuffer[i]))+",");
}
flag = true;
System.out.println();

}

...全文
1411 点赞 收藏 7
写回复
7 条回复

还没有回复,快来抢沙发~

发动态
发帖子
Java SE
创建于2007-09-28

3.4w+

社区成员

30.7w+

社区内容

Java 2 Standard Edition
社区公告
暂无公告