我有int数组的问题。我在循环中放入了数组测量值,当数组已满时,index设置为0并递增1。 但是在第二个循环数组中没有填充新值。 我尝试用这个来清除数据:
RedData=new int[1001];
但没有任何反应。程序在所有循环中都可以,但我只对这个数组有问题。
你能推荐我什么吗?
答案 0 :(得分:0)
它是Android的应用程序 在主要活动中我调用方法解析(数据)
int[] RedData = new int[1001];
int peak1=0,peak2=0,peak3=0,index1=0,index2=0,index3=0,pr1,pr2;
double pulseRate=0;
private int i =0;
private OxiParams mOxiParams;
private OnDataChangeListener mOnDataChangeListener;
public void parse(int[] packageDat) {
int red,ir;
red= 256*256*packageDat[1]+256*packageDat[2]+packageDat[3];
ir = 256*256*packageDat[4]+256*packageDat[5]+packageDat[6];
RedData[i] = red;
if(i>20) {
if (RedData[i - 10] >= RedData[i - 20] && RedData[i - 10] > RedData[i] && peak1 == 0) {
peak1 = RedData[i - 10];
index1 = i - 10;
}
if (peak1 > 0 && i > (index1 + 25) && peak2 == 0) {
if (RedData[i - 10] >= RedData[i - 20] && RedData[i - 10] > RedData[i]) {
peak2 = RedData[i - 10];
index2 = i - 10;
}
}
if (peak2 > 0 && i > (index1 + 25) && peak3 == 0) {
if (RedData[i - 10] >= RedData[i - 20] && RedData[i - 10] > RedData[i]) {
peak3 = RedData[i - 10];
index3 = i - 10;
}
}
pr1 = (index2 - index1) * 10;
pr2 = (index3 - index2) * 10;
if (pr1 > 0 && Math.abs(pr1 - pr2) < 100) {
pulseRate = 60000 / (pr1 + pr2);
}
}
if((int)pulseRate != mOxiParams.pulseRate )
{
mOxiParams.update((int)pulseRate);
mOnDataChangeListener.onSpO2ParamsChanged();
}
if(i<1000)
{
i++;
}
else
{
i=0;
RedData=new int[1001];
}
}
这里是代码文件Github SPO2 Android