From 00cdf79b3587627fedb37289d440d54223a77af8 Mon Sep 17 00:00:00 2001 From: juliangaal Date: Wed, 24 Apr 2019 16:00:48 +0200 Subject: [PATCH] steps struct to calrify filte size --- example/src/main.rs | 16 ++++++++-------- src/lib.rs | 25 ++++++++++++------------- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/example/src/main.rs b/example/src/main.rs index b6bc259..ae4386a 100644 --- a/example/src/main.rs +++ b/example/src/main.rs @@ -21,32 +21,32 @@ fn main() -> Result<(), Mpu6050Error> { let acc = mpu.get_acc_angles()?; println!("r/p: {:?}", acc); - // get roll and pitch estimate - averaged accross n readings (mask) - let acc = mpu.get_acc_angles_avg(Mask(5))?; + // get roll and pitch estimate - averaged accross n readings (steps) + let acc = mpu.get_acc_angles_avg(Steps(5))?; println!("r/p avg: {:?}", acc); // get temp let temp = mpu.get_temp()?; println!("temp: {}c", temp); - // get temp - averages across n readings (mask) - let temp = mpu.get_temp_avg(Mask(5))?; + // get temp - averages across n readings (steps) + let temp = mpu.get_temp_avg(Steps(5))?; println!("temp avg: {}c", temp); // get gyro data, scaled with sensitivity let gyro = mpu.get_gyro()?; println!("gyro: {:?}", gyro); - // get gyro data, scaled with sensitivity - averaged across n readings (mask) - let gyro = mpu.get_gyro_avg(Mask(5))?; + // get gyro data, scaled with sensitivity - averaged across n readings (steps) + let gyro = mpu.get_gyro_avg(Steps(5))?; println!("gyro avg: {:?}", gyro); // get accelerometer data, scaled with sensitivity let acc = mpu.get_acc()?; println!("acc: {:?}", acc); - // get accelerometer data, scaled with sensitivity - averages across n readings (mask) - let acc = mpu.get_acc_avg(Mask(5))?; + // get accelerometer data, scaled with sensitivity - averages across n readings (steps) + let acc = mpu.get_acc_avg(Steps(5))?; println!("acc avg: {:?}", acc); } } diff --git a/src/lib.rs b/src/lib.rs index ed663cf..9d48f6d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -141,7 +141,6 @@ impl MutOps for RPReading { /// Helper struct used as number of steps for filtering pub struct Steps(pub u8); -pub type Mask = Steps; // Helper struct to convert Sensor measurement range to appropriate values defined in datasheet struct Sensitivity(f32); @@ -329,12 +328,12 @@ where } /// Roll and pitch estimation from raw accelerometer - averaged across window readings - pub fn get_acc_angles_avg(&mut self, mask: Mask) -> Result> { + pub fn get_acc_angles_avg(&mut self, steps: Steps) -> Result> { let mut acc = self.get_acc_angles()?; - for _ in 0..mask.0-1 { + for _ in 0..steps.0-1 { acc.add(&self.get_acc_angles()?); } - acc.scale(mask.0); + acc.scale(steps.0); Ok(acc) } @@ -382,12 +381,12 @@ where } /// Accelerometer readings in m/s^2 - averaged - pub fn get_acc_avg(&mut self, mask: Mask) -> Result> { + pub fn get_acc_avg(&mut self, steps: Steps) -> Result> { let mut acc = self.get_acc()?; - for _ in 0..mask.0-1 { + for _ in 0..steps.0-1 { acc.add(&self.get_acc()?); } - acc.scale(mask.0); + acc.scale(steps.0); Ok(acc) } @@ -409,12 +408,12 @@ where } /// Gyro readings in rad/s - pub fn get_gyro_avg(&mut self, mask: Mask) -> Result> { + pub fn get_gyro_avg(&mut self, steps: Steps) -> Result> { let mut gyro = self.get_gyro()?; - for _ in 0..mask.0-1 { + for _ in 0..steps.0-1 { gyro.add(&self.get_gyro()?); } - gyro.scale(mask.0); + gyro.scale(steps.0); Ok(gyro) } @@ -427,12 +426,12 @@ where Ok((raw_temp / 340.) + 36.53) } - pub fn get_temp_avg(&mut self, mask: Mask) -> Result> { + pub fn get_temp_avg(&mut self, steps: Steps) -> Result> { let mut temp = self.get_temp()?; - for _ in 0..mask.0-1 { + for _ in 0..steps.0-1 { temp += self.get_temp()?; } - temp /= mask.0 as f32; + temp /= steps.0 as f32; Ok(temp) }