|
|
@@ -29,7 +29,7 @@ impl Point {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-#[derive(Default)]
|
|
|
+#[derive(Default, Debug)]
|
|
|
struct Track {
|
|
|
name: String,
|
|
|
points: Vec<Point>,
|
|
|
@@ -68,22 +68,27 @@ impl Track {
|
|
|
}
|
|
|
|
|
|
fn truncate_by_length(&mut self, length_km: f64) {
|
|
|
- let mut sum = 0.0;
|
|
|
- let mut prev_point = &self.points[0];
|
|
|
+ // let mut sum = 0.0;
|
|
|
+ // let mut prev_point = &self.points[0];
|
|
|
+
|
|
|
+ let maxpts = 1;
|
|
|
+
|
|
|
+ for i in 0..self.points.len() {
|
|
|
+ println!("len {:?}", self.len());
|
|
|
+ // let d = dist(prev_point, &self.points[i]);
|
|
|
+ // sum += d;
|
|
|
+ // prev_point = &self.points[i];
|
|
|
+
|
|
|
+ if self.len() > length_km {
|
|
|
+ self.points.remove(0);
|
|
|
+ }
|
|
|
|
|
|
- for i in self.points.len()..0 {
|
|
|
- println!("{:?}", self.points[i]);
|
|
|
- let d = dist(prev_point, &self.points[i]);
|
|
|
- sum += d;
|
|
|
- prev_point = &self.points[i];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
fn parse(&mut self) {
|
|
|
- let mut sum_time = Duration::from_std(stdDuration::new(0, 0)).unwrap();
|
|
|
- let mut sum_dist = 0.0;
|
|
|
- let mut prev_point = &self.points[0];
|
|
|
- let mut prev_time = &self.points[0].time;
|
|
|
+ // let mut prev_point = &self.points[0];
|
|
|
+ // let mut prev_time = &self.points[0].time;
|
|
|
|
|
|
let mut fifo_track = Track {
|
|
|
..Default::default()
|
|
|
@@ -92,19 +97,14 @@ impl Track {
|
|
|
let mut i = 0;
|
|
|
|
|
|
for pt in &self.points {
|
|
|
- i = i + 1;
|
|
|
- if i > 10 {
|
|
|
- break;
|
|
|
- }
|
|
|
- let timespan = prev_time.signed_duration_since(pt.time);
|
|
|
- sum_time = sum_time.checked_sub(×pan).unwrap();
|
|
|
- prev_time = &pt.time;
|
|
|
- let d = dist(prev_point, pt);
|
|
|
- sum_dist += d;
|
|
|
- prev_point = pt;
|
|
|
+ i = i + 1; if i > 109 {break};
|
|
|
+
|
|
|
|
|
|
fifo_track.points.push(pt.clone());
|
|
|
+ fifo_track.truncate_by_length(0.1);
|
|
|
+
|
|
|
println!("fifo len {:?}", fifo_track.points.len());
|
|
|
+ // println!("fifo trk {:?}", fifo_track.points.len());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -209,5 +209,5 @@ fn main() {
|
|
|
println!("Distance: {:?} km", trk.len());
|
|
|
println!("Duration: {:?} h", trk.time().num_minutes() as f32 / 60.0);
|
|
|
println!("Speed: {:?} Km/h", trk.speed());
|
|
|
- // trk.parse();
|
|
|
+ trk.parse();
|
|
|
}
|