01-01 08:14:24.115: I/System.out(3655): -1 85 0 0 0 0 5 16 27 -26 -51 3 0 75 18 0 0 0 0 0 0 0 0 0 -43 -2 -86 zigBee 输出
01-01 08:14:24.115: W/dalvikvm(3655): threadid=11: thread exiting with uncaught exception (group=0x4182a930)
01-01 08:14:24.115: E/AndroidRuntime(3655): FATAL EXCEPTION: Thread-102
01-01 08:14:24.115: E/AndroidRuntime(3655): java.lang.ArrayIndexOutOfBoundsException: length=27; index=27
01-01 08:14:24.115: E/AndroidRuntime(3655): at com.xunfang.utils.ParseRecieveSensorMessage.parseZigBee(ParseRecieveSensorMessage.java:40)
01-01 08:14:24.115: E/AndroidRuntime(3655): at com.xunfang.thread.ZigBeeThread.run(ZigBeeThread.java:81)
上面是报错信息
同事说在下面添加一个判断节点信息就可以了,当节点判断为0,1,2时的状态
可我不晓得怎么写啊 ,求助,有意的可以私聊我帮忙谢谢了
public class ParseRecieveSensorMessage {
public static RecieveData parseZigBee(byte[] message){
RecieveData data = new RecieveData();
int length = message.length;
if(message[message.length-1]==-86&&message[message.length-2]==-2)
//当上传的信息包含信息头,并且信息长度包含一条完整的信息
for(int i = 0;i<length&&length-11>=0;i++){
//检测到数据头
if(message[i++]==-1&&message[i++]==85){
data.setRecieveMsg(message);
data.setEquimentType(message[i++]);
data.setSensorType(message[i++]);
byte[] sensorid = { message[i++], message[i++],message[i++], message[i++],message[i++], message[i++],message[i++], message[i++]};
data.setSensorID(sensorid);
data.setOrder(message[i++]);
data.setDataLength(message[i++]);
byte[] msg = new byte[data.getDataLength()];
for(int j = 0;j<data.getDataLength();j++){
msg[j] = message[i++];
}
data.setData(msg);
i+=3;
}
}
return data;
}
}
01-01 08:14:24.115: W/dalvikvm(3655): threadid=11: thread exiting with uncaught exception (group=0x4182a930)
01-01 08:14:24.115: E/AndroidRuntime(3655): FATAL EXCEPTION: Thread-102
01-01 08:14:24.115: E/AndroidRuntime(3655): java.lang.ArrayIndexOutOfBoundsException: length=27; index=27
01-01 08:14:24.115: E/AndroidRuntime(3655): at com.xunfang.utils.ParseRecieveSensorMessage.parseZigBee(ParseRecieveSensorMessage.java:40)
01-01 08:14:24.115: E/AndroidRuntime(3655): at com.xunfang.thread.ZigBeeThread.run(ZigBeeThread.java:81)
上面是报错信息
同事说在下面添加一个判断节点信息就可以了,当节点判断为0,1,2时的状态
可我不晓得怎么写啊 ,求助,有意的可以私聊我帮忙谢谢了
public class ParseRecieveSensorMessage {
public static RecieveData parseZigBee(byte[] message){
RecieveData data = new RecieveData();
int length = message.length;
if(message[message.length-1]==-86&&message[message.length-2]==-2)
//当上传的信息包含信息头,并且信息长度包含一条完整的信息
for(int i = 0;i<length&&length-11>=0;i++){
//检测到数据头
if(message[i++]==-1&&message[i++]==85){
data.setRecieveMsg(message);
data.setEquimentType(message[i++]);
data.setSensorType(message[i++]);
byte[] sensorid = { message[i++], message[i++],message[i++], message[i++],message[i++], message[i++],message[i++], message[i++]};
data.setSensorID(sensorid);
data.setOrder(message[i++]);
data.setDataLength(message[i++]);
byte[] msg = new byte[data.getDataLength()];
for(int j = 0;j<data.getDataLength();j++){
msg[j] = message[i++];
}
data.setData(msg);
i+=3;
}
}
return data;
}
}