peakCentering version 1.6.1: fix bugs and add frmae lastSync
This commit is contained in:
parent
9d4db3772f
commit
f7ebcdb77e
@ -113,7 +113,7 @@ void peakCentering(
|
|||||||
if(0 == linePk.len)
|
if(0 == linePk.len)
|
||||||
{
|
{
|
||||||
if(linePk.value >= 240)
|
if(linePk.value >= 240)
|
||||||
pkCenter = RGN_DATA_WIN_SIZE/2;
|
pkCenter = RGN_DATA_WIN_SIZE;
|
||||||
else
|
else
|
||||||
pkCenter = 0;
|
pkCenter = 0;
|
||||||
}
|
}
|
||||||
@ -147,6 +147,7 @@ void peakCentering(
|
|||||||
else//for(int i = 0; i < 8; i ++)
|
else//for(int i = 0; i < 8; i ++)
|
||||||
{
|
{
|
||||||
ap_uint<8> wrPos_0 = i * 2 - 2 + RGN_DATA_WIN_SIZE/2;
|
ap_uint<8> wrPos_0 = i * 2 - 2 + RGN_DATA_WIN_SIZE/2;
|
||||||
|
ap_uint<8> lastPos = wrPos_0 -1;
|
||||||
ap_uint<8> wrPos_1 = i * 2 - 1 + RGN_DATA_WIN_SIZE/2;
|
ap_uint<8> wrPos_1 = i * 2 - 1 + RGN_DATA_WIN_SIZE/2;
|
||||||
ap_uint<8> rdPos_0 = pkCenter - RGN_DATA_WIN_SIZE/2 + i* 2 -2;
|
ap_uint<8> rdPos_0 = pkCenter - RGN_DATA_WIN_SIZE/2 + i* 2 -2;
|
||||||
ap_uint<8> rdPos_1 = pkCenter - RGN_DATA_WIN_SIZE/2 + i* 2 -1;
|
ap_uint<8> rdPos_1 = pkCenter - RGN_DATA_WIN_SIZE/2 + i* 2 -1;
|
||||||
@ -191,24 +192,24 @@ void peakCentering(
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
currPeak.start = wrPos_1;
|
currPeak.start = wrPos_0;
|
||||||
currPeak.len = 1;
|
currPeak.len = 2;
|
||||||
currPeak.value = data_1;
|
currPeak.value = data_0;
|
||||||
SM = 0b11;
|
SM = 0b11;
|
||||||
linePk.value = data_0; //record initial value
|
linePk.value = data_0; //record initial value
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 0b11: //wait state
|
case 0b11: //horizontal state
|
||||||
if(lastData < data_0)
|
if(lastData < data_0) //rising
|
||||||
{
|
{
|
||||||
if(data_0 < data_1) //rising
|
if(data_0 < data_1) //rising - rising. if i==8, data_1 is invalid peak,
|
||||||
{
|
{
|
||||||
currPeak.start = wrPos_1;
|
currPeak.start = wrPos_1;
|
||||||
currPeak.len = 1;
|
currPeak.len = 1;
|
||||||
currPeak.value = data_1;
|
currPeak.value = data_1;
|
||||||
SM = 0b01;
|
SM = 0b01;
|
||||||
}
|
}
|
||||||
else if(data_0 > data_1) //falling
|
else if(data_0 > data_1) //rising - falling, data_0 is peak
|
||||||
{
|
{
|
||||||
if( (wrPos_0 >= pkRng_S) && (wrPos_0 <= pkRng_E) )
|
if( (wrPos_0 >= pkRng_S) && (wrPos_0 <= pkRng_E) )
|
||||||
{
|
{
|
||||||
@ -218,7 +219,7 @@ void peakCentering(
|
|||||||
}
|
}
|
||||||
SM = 0b10;
|
SM = 0b10;
|
||||||
}
|
}
|
||||||
else //data_0 == data_1
|
else //data_0 == data_1, if i==8, data_0 and data_1 is invalid peak,
|
||||||
{
|
{
|
||||||
currPeak.start = wrPos_0;
|
currPeak.start = wrPos_0;
|
||||||
currPeak.len = 2;
|
currPeak.len = 2;
|
||||||
@ -226,24 +227,21 @@ void peakCentering(
|
|||||||
SM = 0b01;
|
SM = 0b01;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(lastData > data_0)
|
else if(lastData > data_0) //falling
|
||||||
{
|
|
||||||
if(data_0 < data_1) //peak is at edge (pos:0,1,2...), invalid
|
|
||||||
{
|
|
||||||
if( (lastData > data_0)&& (wrPos_0 > pkRng_S))
|
|
||||||
{
|
{
|
||||||
|
if((currPeak.start >= pkRng_S) && (lastPos <= pkRng_E))
|
||||||
linePk = currPeak;
|
linePk = currPeak;
|
||||||
}
|
|
||||||
|
if(data_0 < data_1) //falling - rising, peak is at lastData (pos:0,1,2...), invalid
|
||||||
|
{
|
||||||
currPeak.start = wrPos_1;
|
currPeak.start = wrPos_1;
|
||||||
currPeak.len = 1;
|
currPeak.len = 1;
|
||||||
currPeak.value = data_1;
|
currPeak.value = data_1;
|
||||||
SM = 0b01;
|
SM = 0b01;
|
||||||
}
|
}
|
||||||
else if(data_0 >= data_1)//falling
|
else// if(data_0 >= data_1)//falling, peak is at lastData
|
||||||
{
|
|
||||||
SM = 0b10;
|
SM = 0b10;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else //lastData == data_0
|
else //lastData == data_0
|
||||||
{
|
{
|
||||||
if(data_0 < data_1) //rising
|
if(data_0 < data_1) //rising
|
||||||
@ -256,6 +254,12 @@ void peakCentering(
|
|||||||
}
|
}
|
||||||
else if(data_0 > data_1) //falling
|
else if(data_0 > data_1) //falling
|
||||||
{
|
{
|
||||||
|
if( (currPeak.start >= pkRng_S) && (wrPos_0 >= pkRng_S))
|
||||||
|
{
|
||||||
|
linePk.start = currPeak.start;
|
||||||
|
linePk.len = currPeak.len + 1;
|
||||||
|
linePk.value = currPeak.value;
|
||||||
|
}
|
||||||
SM = 0b10;
|
SM = 0b10;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -265,13 +269,13 @@ void peakCentering(
|
|||||||
case 0b01: //rising
|
case 0b01: //rising
|
||||||
if(lastData < data_0)
|
if(lastData < data_0)
|
||||||
{
|
{
|
||||||
if(data_0 <= data_1)
|
if(data_0 < data_1)
|
||||||
{
|
{
|
||||||
currPeak.start = wrPos_1;
|
currPeak.start = wrPos_1;
|
||||||
currPeak.len = 1;
|
currPeak.len = 1;
|
||||||
currPeak.value = data_1;
|
currPeak.value = data_1;
|
||||||
}
|
}
|
||||||
else if(data_0 > data_1) //change to falling
|
else if(data_0 > data_1) //change to falling, compare with exist
|
||||||
{
|
{
|
||||||
if( (wrPos_0 >= pkRng_S) && (wrPos_0 <= pkRng_E) && (data_0 >linePk.value ))
|
if( (wrPos_0 >= pkRng_S) && (wrPos_0 <= pkRng_E) && (data_0 >linePk.value ))
|
||||||
{
|
{
|
||||||
@ -291,7 +295,7 @@ void peakCentering(
|
|||||||
else if(lastData > data_0)
|
else if(lastData > data_0)
|
||||||
{
|
{
|
||||||
//compare with exist
|
//compare with exist
|
||||||
if( (preCenter >= pkRng_S) && (preCenter <= pkRng_E) && (currPeak.value > linePk.value))
|
if( (currPeak.start >= pkRng_S) && (lastPos <= pkRng_E) && (currPeak.value > linePk.value))
|
||||||
{
|
{
|
||||||
linePk = currPeak;
|
linePk = currPeak;
|
||||||
}
|
}
|
||||||
@ -314,7 +318,7 @@ void peakCentering(
|
|||||||
}
|
}
|
||||||
else if(data_0 > data_1)
|
else if(data_0 > data_1)
|
||||||
{
|
{
|
||||||
if( (preCenter_1 >= pkRng_S) && (preCenter_1 <= pkRng_E) && (currPeak.value > linePk.value))
|
if( (currPeak.start >= pkRng_S) && (wrPos_0 = pkRng_E) && (currPeak.value > linePk.value))
|
||||||
{
|
{
|
||||||
linePk.start = currPeak.start;
|
linePk.start = currPeak.start;
|
||||||
linePk.value = currPeak.value;
|
linePk.value = currPeak.value;
|
||||||
@ -327,7 +331,7 @@ void peakCentering(
|
|||||||
currPeak.len += 2;
|
currPeak.len += 2;
|
||||||
if(i == 8) //last one
|
if(i == 8) //last one
|
||||||
{
|
{
|
||||||
if( (currPeak.start <= pkRng_E) && (currPeak.value > linePk.value))
|
if( (currPeak.start >= pkRng_S) && (wrPos_1 <= pkRng_E) && (currPeak.value > linePk.value))
|
||||||
{
|
{
|
||||||
linePk = currPeak;
|
linePk = currPeak;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user