* Indicate clutch state by highliting gear display in dash.html.
* Indicate paused state by dimming default font color in dash.html.
color: white;
}
+x-content {
+ display: block;
+ width: 100%;
+}
+
x-boxleft, x-boxright {
display: block;
padding: 0.2em;
.warn1 { color:#fd0; }
.warn2 { color:#f20; }
.setval { color:#0af; }
+.grey { color: #444 !important; }
+.hilite { background-color: #ff0; }
</style>
</head>
<body>
+<x-page id="page">
+
<x-boxleft id="speedo" class="cont">
<x-boxright class="clear"><span class="big" id="speed">--</span><span class="tiny"> km/h</span></x-boxright>
<x-boxright class="clear"><span class="medium setval" id="cctrl">-</span><span class="tiny"> km/h</span></x-boxright>
<x-boxleft class="clear"><span class="small setval" id="gear">x</span><span class="tiny"> </span></x-boxleft>
+ <!--<x-boxleft><span class="small" id="clutch">x</span><span class="tiny"> </span></x-boxleft>-->
<x-boxright><span class="small" id="rpm">0</span><span class="tiny"> rpm</span></x-boxright>
<x-boxright class="clear"><span class="small" id="odometer">-</span><span class="tiny"> km</span></x-boxright>
</x-boxleft>
<x-boxright class="clear"><span class="small" id="nav_slimit">-</span><span class="tiny"> km/h</span></x-boxright>
</x-boxleft>
+</x-page>
+
<script>
function dgear(x) {
e.classList.remove("warn2");
}
document.getElementById("cctrl").innerHTML = Math.round(tele.cctrl * 3.6);
- document.getElementById("gear").innerHTML = dgear(tele.gear_disp);
+
+ e = document.getElementById("gear");
+ e.innerHTML = dgear(tele.gear_disp);
+ if ( tele.clutch_eff > 0 )
+ e.classList.add("hilite");
+ else
+ e.classList.remove("hilite");
+
document.getElementById("rpm").innerHTML = Math.round(tele.rpm);
document.getElementById("odometer").innerHTML = Math.round(tele.odometer);
document.getElementById("nav_eta").innerHTML = s2hm(tele.nav_eta);
document.getElementById("nav_slimit").innerHTML = Math.round(tele.nav_slimit * 3.6);
+ e = document.getElementById("page");
+ if ( tele.paused )
+ e.classList.add("grey");
+ else
+ e.classList.remove("grey");
}
};
xhttp.open("GET", "/json", true);
}
var xhttp = new XMLHttpRequest();
loadDoc();
-window.setInterval(loadDoc, 500);
+window.setInterval(loadDoc, 333);
</script>
</body>
write(fd, buf, sprintf( buf, " \"rpm\": %f,\n", telemetry->rpm ) );
write(fd, buf, sprintf( buf, " \"gear\": %d,\n", telemetry->gear ) );
write(fd, buf, sprintf( buf, " \"gear_disp\": %d,\n", telemetry->gear_disp ) );
+ write(fd, buf, sprintf( buf, " \"clutch_eff\": %f,\n", telemetry->clutch_eff ) );
write(fd, buf, sprintf( buf, " \"fuel\": %f,\n", telemetry->fuel ) );
write(fd, buf, sprintf( buf, " \"fuel_warn\": %d,\n", (int)telemetry->fuel_warn ) );
printf( "rpm: %.0f /min\n", telemetry->rpm );
printf( "gear: %d\n", telemetry->gear );
printf( "gear d: %d\n", telemetry->gear_disp );
+ printf( "clutch eff: %.1f\n", telemetry->clutch_eff );
printf( "fuel: %.1f l\n", telemetry->fuel );
printf( "fuel warn: %s\n", telemetry->fuel_warn ? "yes" : "no" );
version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_engine_rpm, SCS_U32_NIL, SCS_VALUE_TYPE_float, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_float, &telemetry->rpm);
version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_engine_gear, SCS_U32_NIL, SCS_VALUE_TYPE_s32, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_s32, &telemetry->gear);
version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_displayed_gear, SCS_U32_NIL, SCS_VALUE_TYPE_s32, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_s32, &telemetry->gear_disp);
+ version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_effective_clutch, SCS_U32_NIL, SCS_VALUE_TYPE_float, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_float, &telemetry->clutch_eff);
version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_fuel, SCS_U32_NIL, SCS_VALUE_TYPE_float, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_float, &telemetry->fuel);
version_params->register_for_channel(SCS_TELEMETRY_TRUCK_CHANNEL_fuel_warning, SCS_U32_NIL, SCS_VALUE_TYPE_bool, SCS_TELEMETRY_CHANNEL_FLAG_none, telemetry_store_bool, &telemetry->fuel_warn);
float rpm; // engine rpm
int gear; // engine gear
int gear_disp; // displayed gear
+ float clutch_eff; // effective clutch
float fuel; // fuel amount in l
bool fuel_warn; // fuel low warning