From: Urban Wallasch Date: Sun, 28 Jul 2019 16:58:47 +0000 (+0200) Subject: * Added current fuel consumption display. X-Git-Tag: v0.1.0~55 X-Git-Url: https://git.packet-gain.de/?a=commitdiff_plain;h=fbc587f3755cbf5169ea63a65afbe4d2215ac943;p=ets2_tele.git * Added current fuel consumption display. * Fixed display of invalid delivery times for external (WoT) contracts. * Fixed(?) display of forward gear number, again. * Replaced several instances of Math.round() with .toFixed() method. * Removed spurious calls to Math.floor(). --- diff --git a/dash.html b/dash.html index 73c339f..38cd799 100644 --- a/dash.html +++ b/dash.html @@ -103,6 +103,7 @@ x-bar { +
Fuel- l
Range- km
Current- l/100km
Average- l/100km
Mileage-km
@@ -130,7 +131,7 @@ function dgear(x, f, m) { // We try to deduce the correct forward gear number to display from // the number of gears available. This likely just plain nonsense! if ( x > 0 ) - return ( m ? '' : 'A' ) + ( f>12 ? ( x<3 ? 'C'+x : x-2 ) : x ); + return ( m ? '' : 'A' ) + ( f==14 ? ( x<3 ? 'C'+x : x-2 ) : x ); if ( x < 0 ) return 'R' + -x; return 'N'; @@ -192,15 +193,20 @@ var job_ttd = document.getElementById("job_ttd"); var errbar = document.getElementById("errbar"); var pausebar = document.getElementById("pausebar"); +// Used to calculate current fuel consumption: +var last_fuel = -1; +var last_odometer = -1; + +// Update display, called periodically: function loadDoc() { xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { var tele = JSON.parse(this.responseText); - speed.innerHTML = Math.round( Math.abs(tele.speed * 3.6) ); - if ( tele.nav_slimit > 0 && Math.floor(tele.speed) > tele.nav_slimit * 1.075 ) + speed.innerHTML = Math.abs(tele.speed * 3.6).toFixed(0); + if ( tele.nav_slimit > 0 && tele.speed > tele.nav_slimit * 1.075 ) warn( speed, 2 ); - else if ( tele.nav_slimit > 0 && Math.floor(tele.speed) > tele.nav_slimit * 1.005 ) + else if ( tele.nav_slimit > 0 && tele.speed > tele.nav_slimit * 1.005 ) warn( speed, 1 ); else warn( speed, 0 ); @@ -213,27 +219,43 @@ function loadDoc() { else gear.classList.remove("hilite"); - rpm.innerHTML = Math.round(tele.rpm); - odometer.innerHTML = Math.round(tele.odometer); + rpm.innerHTML = tele.rpm.toFixed(0); + odometer.innerHTML = tele.odometer.toFixed(0); - fuel.innerHTML = Math.round(tele.fuel); + fuel.innerHTML = tele.fuel.toFixed(0); warn( fuel, tele.fuel_warn ? 1 : 0 ); - fuel_range.innerHTML = Math.round(tele.fuel_range); + fuel_range.innerHTML = tele.fuel_range.toFixed(0); + + if ( last_fuel != tele.fuel && last_odometer != tele.odometer ) { + var fcons; + if ( last_fuel > 0 && last_odometer > 0 ) + fcons = (last_fuel - tele.fuel) * 100 / (tele.odometer - last_odometer); + else + fcons = -1; + fuel_cons.innerHTML = fcons < 0 ? '-' : fcons.toFixed(1); + last_fuel = tele.fuel; + last_odometer = tele.odometer; + } - fuel_avg.innerHTML = Math.round(tele.fuel_avg * 1000) / 10; + fuel_avg.innerHTML = (tele.fuel_avg * 100).toFixed(1); - nav_dist.innerHTML = Math.round(tele.nav_dist / 1000); + nav_dist.innerHTML = (tele.nav_dist / 1000).toFixed(0); nav_eta.innerHTML = s2hm(tele.nav_eta); next_rest.innerHTML = m2hm(tele.next_rest); warn( next_rest, tele.next_rest < 1 ? 2 : tele.next_rest < 97 ? 1 : 0 ); - job_ttd.innerHTML = tele.job_isvalid ? m2hm(tele.job_deltime - tele.game_time) : "--:--"; + job_ttd.innerHTML = + tele.job_isvalid + ? tele.job_deltime != 4294967295 + ? m2hm(tele.job_deltime - tele.game_time) + : '[external]' + : '[none]'; if ( tele.nav_slimit > 0 ) { - nav_slimit.innerHTML = Math.round(tele.nav_slimit * 3.6); + nav_slimit.innerHTML = (tele.nav_slimit * 3.6).toFixed(0); nav_slimitsign.style.visibility = "visible"; } else