.aleft { text-align: left; }
.acenter { text-align: center; }
.ajust { text-align: justify; }
+.atop { vertical-align: top; }
+.amiddle { vertical-align: middle; }
.big { font-size: 8em; }
.medium { font-size: 4em; }
.tiny { font-size: 1em; }
.tinyb { font-size: 1em; font-weight: bold; }
+.dim { color:#888; }
.warn1 { color:#fd0; }
.warn2 { color:#f20; }
.setval { color:#0af; }
.hilite { background-color: #ff0; }
.special { font-size:50%; color:#088; }
+#slimitoff {
+ margin-left: 2px;
+ width: 60px;
+ height: 60px;
+}
+#slimitsign {
+ width: 60px;
+ height: 60px;
+}
+#slimit {
+ display: table-cell;
+ width: 60px;
+ height: 60px;
+ vertical-align: middle;
+ text-align: center;
+ font-size: 32px;
+ color: #000;
+}
+
x-barmask {
display: block;
margin-left:auto;
<x-boxleft id="speedo" class="cont">
<table>
<tr><td colspan="2" class="aright"><span class="big" id="speed">--</span></td><td><span class="tinyb"> km/h</span></td></tr>
- <tr>
- <td class="small"><svg width="50" height="50">
- <circle cx="25" cy="25" r="22" stroke="red" stroke-width="6" fill="white" id="nav_slimitsign"/>
- <text fill="#000" font-size="24" font-family="sans-serif" font-weight="normal" x="10" y="34" id="nav_slimit"> –</text>
- </svg> </td>
- <td class="aright"><span class="medium setval" id="cctrl">-</span></td><td><span class="tinyb"> km/h</span></td>
+ <tr><td class="amiddle"><div id="slimitoff"><div id="slimitsign"><span id="slimit">--</span></div></div></td>
+ <td class="aright"><span class="medium setval" id="cctrl">-</span></td><td><span class="tinyb"> km/h</span></td>
</tr>
<tr><td><span class="small setval" id="gear">-</span></td>
<td class="aright"><span class="small" id="rpm">-</span></td><td><span class="tinyb"> rpm</span></td></tr>
<x-boxleft id="nav" class="cont">
<table>
+ <tr><td colspan="2" class="acenter" ><span class="smaller dim" id="nav_date">-</span></td></tr>
<tr><td class="tiny">Distance</td><td><span class="small" id="nav_dist">-</span><span class="tinyb"> km</span></td></tr>
<tr><td class="tiny">ETA</td><td><span class="small" id="nav_eta">-</span></td></tr>
- <tr><td class="tiny">Next rest</td><td><span class="small" id="next_rest">-</span></td></tr>
- <tr><td class="tiny">Deadline</td><td><span class="small" id="job_ttd">-</span></td></tr>
+ <tr><td class="tiny">Next rest</td><td><span class="smaller" id="next_rest">-</span></td></tr>
+ <tr><td class="tiny">Deadline</td><td><span class="smaller" id="job_ttd">-</span></td></tr>
</table>
</x-boxleft>
// Element references:
var speed = document.getElementById("speed");
-var nav_slimitsign = document.getElementById("nav_slimitsign");
+var slimitoff = document.getElementById("slimitoff");
+var slimitsign = document.getElementById("slimitsign");
+var slimit = document.getElementById("slimit");
var cctrl = document.getElementById("cctrl");
var gear = document.getElementById("gear");
var rpm = document.getElementById("rpm");
var rpmbar = document.getElementById("rpmbar");
var thrbar = document.getElementById("thrbar");
+
//
var fuel = document.getElementById("fuel");
var fuel_range = document.getElementById("fuel_range");
var fuel_avg = document.getElementById("fuel_avg");
var odometer = document.getElementById("odometer");
//
+var nav_date = document.getElementById("nav_date");
var nav_dist = document.getElementById("nav_dist");
var nav_eta = document.getElementById("nav_eta");
var nav_slimit = document.getElementById("nav_slimit");
var pausebar = document.getElementById("pausebar");
var nsbar = document.getElementById("nsbar");
+// Set speed limit sign background:
+var sloffSVG = '<svg xmlns="http://www.w3.org/2000/svg" width="60" height="60">'
+ + '<circle cx="30" cy="30" r="26" stroke="white" stroke-width="8" fill="white"/>'
+ + '<circle cx="30" cy="30" r="27" stroke="black" stroke-width="2" fill="none"/>'
+ + '<line x1="7" y1="45" x2="45" y2="7" stroke="black" stroke-width="2"/>'
+ + '<line x1="9" y1="47" x2="47" y2="9" stroke="black" stroke-width="2"/>'
+ + '<line x1="11" y1="49" x2="49" y2="11" stroke="black" stroke-width="2"/>'
+ + '<line x1="13" y1="51" x2="51" y2="13" stroke="black" stroke-width="2"/>'
+ + '</svg>';
+var slSVG = '<svg xmlns="http://www.w3.org/2000/svg" width="60" height="60">'
+ + '<circle cx="30" cy="30" r="26" stroke="red" stroke-width="8" fill="white"/></svg>';
+slimitoff.style.backgroundImage = 'url("data:image/svg+xml;base64,' + window.btoa(sloffSVG) + '")';
+slimitsign.style.backgroundImage = 'url("data:image/svg+xml;base64,' + window.btoa(slSVG) + '")';
+
+
// Helper functions:
function pad2( x ) {
+ pad2( Math.floor(s % 60) );
}
+function m2dhm(m) {
+ var d = [ 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun' ];
+ return d[ Math.floor(m / 1440 % 7) ] + ' ' + m2hm(m % 1440);
+}
+
function warn(elem, lvl) {
if ( lvl == 0 ) {
elem.classList.remove("warn1");
warn( speed, 0 );
// speed limit:
if ( tele.nav_slimit > 0 ) {
- nav_slimit.innerHTML = (tele.nav_slimit * 3.6).toFixed(0);
- nav_slimitsign.style.visibility = "visible";
+ slimit.innerHTML = (tele.nav_slimit * 3.6).toFixed(0);
+ slimitsign.style.visibility = "visible";
}
else
- nav_slimitsign.style.visibility = "hidden";
+ slimitsign.style.visibility = "hidden";
// cruise control:
cctrl.innerHTML = Math.round(tele.cctrl * 3.6);
// engine gear:
//// "nav" box
+ // current day and time:
+ nav_date.innerHTML = m2dhm(tele.game_time);
+
// remaining distance to destination:
nav_dist.innerHTML = (tele.nav_dist / 1000).toFixed(0);