recvByteCount += 1; showRecvLen(recvByteCount); //帧序号 int frameNumber =Integer.parseInt(bleDataArr[0]); int remainder = frameNumber % 10; //系统状态 byte systemState =(byte) Integer.parseInt(bleDataArr[1]); //寻北进度 byte northProgress =(byte) Integer.parseInt(bleDataArr[2]); //航向角 float headingAngle =Integer.parseInt(bleDataArr[3]); //航向角 float pitchAngle =Integer.parseInt(bleDataArr[4]); //俯仰角 float rollAngle = Integer.parseInt(bleDataArr[5]); //实时数据 public int getResult(int remainder) { switch (remainder) { case 0: return 0x00; case 1: return 0x01; case 2: return 0x02; default: return 0x03; } } ////todo:定义一个数组if判断 ProtocolData protocolData = new ProtocolData(frameNumber, systemState, northProgress, headingAngle, pitchAngle, rollAngle, remainder); String dataStr = protocolData.toString();改错对这段i代码
时间: 2024-02-10 15:18:02 浏览: 191
Java Integer.valueOf()和Integer.parseInt()的区别说明
5星 · 资源好评率100%
根据你提供的代码,我看到了一些问题:
1.在方法外部调用getResult方法。你不能在方法外部调用getResult方法。你需要将getResult方法放到方法内部,或者在方法外部单独定义一个getResult方法。
2.在定义ProtocolData时,需要将getResult方法的返回值作为数组下标。你需要使用获取到的remainder值来获取getResult方法的返回值,并将其作为数组下标。代码应该像这样:
```
int result = getResult(remainder);
ProtocolData protocolData = new ProtocolData(frameNumber, systemState, northProgress, headingAngle, pitchAngle, rollAngle, result);
```
3.你需要在方法外部定义一个数组,用于存储getResult方法的返回值。你可以使用如下代码在方法外部定义一个int类型的数组:
```
int[] resultArr = new int[]{0x00, 0x01, 0x02, 0x03};
```
4.你需要使用获取到的remainder值来获取数组中的值。你可以使用如下代码来获取数组中的值:
```
int result = resultArr[remainder];
```
根据上述修改,你的代码应该像这样:
```
recvByteCount += 1;
showRecvLen(recvByteCount);
//帧序号
int frameNumber = Integer.parseInt(bleDataArr[0]);
int remainder = frameNumber % 10;
//系统状态
byte systemState = (byte)Integer.parseInt(bleDataArr[1]);
//寻北进度
byte northProgress = (byte)Integer.parseInt(bleDataArr[2]);
//航向角
float headingAngle = Integer.parseInt(bleDataArr[3]);
//俯仰角
float pitchAngle = Integer.parseInt(bleDataArr[4]);
//横滚角
float rollAngle = Integer.parseInt(bleDataArr[5]);
//获取getResult方法的返回值
int[] resultArr = new int[]{0x00, 0x01, 0x02, 0x03};
int result = resultArr[remainder];
ProtocolData protocolData = new ProtocolData(frameNumber, systemState, northProgress, headingAngle, pitchAngle, rollAngle, result);
String dataStr = protocolData.toString();
```
阅读全文