[object Object]

← back to Corvette Dashboard Viewer

trip computer: live processing rate (SKUs/min) + ETA to finish color normalize on the console

0ca6eea00e379e85c8d77f4c68c4dc4a0206142c · 2026-07-28 14:12:51 -0700 · Steve Abrams

Files touched

Diff

commit 0ca6eea00e379e85c8d77f4c68c4dc4a0206142c
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Tue Jul 28 14:12:51 2026 -0700

    trip computer: live processing rate (SKUs/min) + ETA to finish color normalize on the console
---
 public/index.html | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/public/index.html b/public/index.html
index 5b7ed22..73e0ca2 100644
--- a/public/index.html
+++ b/public/index.html
@@ -119,6 +119,9 @@ svg .arc-red{stroke:var(--red); stroke-width:5; fill:none; opacity:.85}
 .sw.on .toggle{box-shadow:inset 0 0 10px rgba(255,179,0,.4)}
 .sw .lbl{font-size:9px; letter-spacing:1px; color:#9aa0aa}
 .sw.on .lbl{color:var(--amber)}
+.trip{margin-top:12px; text-align:center; font-family:'Share Tech Mono',monospace; font-size:11px;
+  letter-spacing:1px; color:var(--amber); background:#0a0a0b; border:1px solid #2b2b30; border-radius:8px;
+  padding:6px 8px; box-shadow:inset 0 0 8px rgba(255,179,0,.08); text-shadow:0 0 6px rgba(255,179,0,.3)}
 
 /* ===== glovebox feed ===== */
 .feed-head{display:flex; align-items:center; justify-content:space-between; margin:6px 2px 12px}
@@ -195,6 +198,7 @@ footer{text-align:center; margin-top:22px; font-size:10px; letter-spacing:3px; c
         <div class="cyl" id="cLab" style="--p:0"><div class="num" id="mAvg">–</div><div class="bore"><div class="piston"></div></div><div class="lbl">LABEL→BARE</div></div>
       </div>
       <div class="switches" id="switches"></div>
+      <div class="trip" id="trip">TRIP · — /min · ETA —</div>
     </div>
     <!-- RIGHT: speedo = SKUs -->
     <div class="gauge-wrap">
@@ -339,6 +343,20 @@ async function pollStats(){
     piston('cMat','mMat',s.material,24581);
     piston('cCol','mVen',s.collection,3891);
     piston('cLab','mAvg',s.label,7155);
+    // trip computer: processing RATE (SKUs/min) + ETA to finish the color normalize (81,102)
+    const now=Date.now();
+    if(pollStats._t){
+      const dt=(now-pollStats._t)/60000, dc=(s.color-pollStats._c);
+      if(dt>0 && dc>=0){
+        const rate=dc/dt; // could be 0 between writes
+        pollStats._r = pollStats._r ? pollStats._r*0.6 + rate*0.4 : rate; // smooth
+        const left=81102-s.color, mins=pollStats._r>0.5?left/pollStats._r:null;
+        const eta=mins==null?'—':(mins>90?(mins/60).toFixed(1)+'h':Math.round(mins)+'m');
+        const t=document.getElementById('trip');
+        if(t) t.textContent=`TRIP · ${Math.round(pollStats._r)}/min · ETA ${eta} · ${(100*s.color/81102).toFixed(1)}%`;
+      }
+    }
+    pollStats._t=now; pollStats._c=s.color;
   }catch(e){/* transient; next tick retries */}
 }
 

← 3d45dba auto-save: 2026-07-28T09:59:38 (1 files) — assets/dash-pisto  ·  back to Corvette Dashboard Viewer  ·  Add fleet-standard basic auth (admin/DW2024!) for public liv 0d3c544 →