From 61d5e46e868ea08a35cb5f9daab3e03d4d76fc18 Mon Sep 17 00:00:00 2001 From: frederic wagner Date: Sat, 23 Jul 2022 16:25:38 +0200 Subject: [PATCH] avg speed --- apps/gipy/ChangeLog | 1 + apps/gipy/TODO | 3 +-- apps/gipy/app.js | 17 +++++++++++++++-- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/apps/gipy/ChangeLog b/apps/gipy/ChangeLog index 4a49e98ea..f3a355f3a 100644 --- a/apps/gipy/ChangeLog +++ b/apps/gipy/ChangeLog @@ -36,3 +36,4 @@ 0.11: * Better fonts (more free space, still readable). * Display direction to nearest point when lost. + * Display average speed. diff --git a/apps/gipy/TODO b/apps/gipy/TODO index 599e1196a..be499a869 100644 --- a/apps/gipy/TODO +++ b/apps/gipy/TODO @@ -8,8 +8,7 @@ - turn off gps when moving to next waypoint - display distance to next water/toilet -- display distance to next waypoint -- display average speed + - dynamic map rescale - display scale (100m) - get waypoints from osm diff --git a/apps/gipy/app.js b/apps/gipy/app.js index 8ece4aee4..7e94dd6c6 100644 --- a/apps/gipy/app.js +++ b/apps/gipy/app.js @@ -1,4 +1,4 @@ -let simulated = false; +let simulated = true; let file_version = 3; let code_key = 47490; @@ -44,6 +44,7 @@ class Status { previous_point = point; } this.remaining_distances = r; // how much distance remains at start of each segment + this.starting_time = getTime(); } update_position(new_position, direction) { if ( @@ -173,8 +174,20 @@ class Status { } let hours = now.getHours().toString(); g.setFont("6x8:2") + .setFontAlign(1, -1, 0) .setColor(g.theme.fg) - .drawString(hours + ":" + minutes, g.getWidth() - 50, g.getHeight() - 15); + .drawString(hours + ":" + minutes, g.getWidth(), g.getHeight() - 15); + + let done_distance = + this.remaining_distances[0] - + this.remaining_distances[this.current_segment + 1] - + this.distance_to_next_point; + let done_in = getTime() - this.starting_time; + let approximate_speed = Math.round(done_distance / done_in); + g.setFont("6x15") + .setFontAlign(-1, -1, 0) + .drawString("s." + approximate_speed + "km/h", 0, g.getHeight() - 49); + g.setFont("6x15").drawString( "d. " + rounded_distance + "/" + total, 0,