Skip to content

Commit 1a959d8

Browse files
committed
bad rpm values filter improvement
1 parent 4ed8afa commit 1a959d8

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

src/graph_spectrum_calc.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ GraphSpectrumCalc.initialize = function(flightLog, sysConfig) {
3333

3434
this._flightLog = flightLog;
3535
this._sysConfig = sysConfig;
36+
this._prevRPM = [];
37+
this._prevTime = undefined;
3638
this._motorPoles = flightLog.getSysConfig()['motor_poles'];
3739

3840
const gyroRate = (1000000 / this._sysConfig['looptime']).toFixed(0);
@@ -325,16 +327,23 @@ GraphSpectrumCalc._getFlightSamplesFreqVsX = function(vsFieldNames, minValue = I
325327
for (let i = 0; i < vsIndexes.length; i++) {
326328
const vsFieldIx = vsIndexes[i];
327329
let value = frame[vsFieldIx];
330+
//Drop wrong RPM values
328331
if (vsFieldNames == FIELD_RPM_NAMES) {
329332
if (this._prevRPM[i] != undefined && dT != undefined) {
330333
const veloRPM = (value - this._prevRPM[i]) / dT * 3.333 / this._motorPoles;
331334
const rpmHz = value * 3.333 / this._motorPoles;
332335
if (veloRPM > MAX_RPM_VELOCITY || veloRPM < -MAX_RPM_VELOCITY || rpmHz < 0 || rpmHz > MAX_RPM_VALUE) {
333336
value = this._prevRPM[i];
334337
}
338+
} else {
339+
if (value < 0) {
340+
value = 0;
341+
} else if (value > MAX_RPM_VALUE) {
342+
value = MAX_RPM_VALUE;
343+
}
335344
}
345+
this._prevRPM[i] = value;
336346
}
337-
this._prevRPM[i] = value;
338347
maxValue = Math.max(maxValue, value);
339348
minValue = Math.min(minValue, value);
340349
vsValues[i][samplesCount] = value;

0 commit comments

Comments
 (0)