Restore safety cutoff to 800F, faster PID loop timing, enhanced simple UI with stats/charts/flight controls, compact TTY display

This commit is contained in:
2026-03-13 00:36:10 +00:00
parent 2853fa3f8a
commit 24c57beda8
11 changed files with 486 additions and 133 deletions
+35 -7
View File
@@ -41,25 +41,56 @@
<div class="simple-temp"><span id="simple-temp-nail1">---</span>&deg;F</div>
<div class="simple-line">Mode: <span id="simple-mode-nail1">grounded</span></div>
<div class="simple-line">Target: <span id="simple-target-nail1">---</span>&deg;F</div>
<div class="simple-stats">
<span class="simple-stat">Relay <strong id="simple-relay-nail1">OFF</strong></span>
<span class="simple-stat">Output <strong id="simple-output-nail1">0</strong></span>
<span class="simple-stat">TC <strong id="simple-tc-nail1">--</strong></span>
<span class="simple-stat">Uptime <strong id="simple-uptime-nail1">--</strong></span>
</div>
<div class="simple-line">ETA: <span id="simple-eta-nail1">--</span></div>
<div class="simple-line">Next descent: <span id="simple-cutoff-nail1">--</span></div>
<div class="simple-alert" id="simple-alert-nail1">No active safety alerts.</div>
<div class="simple-controls">
<input type="number" id="simple-setpoint-nail1" value="530" min="0" max="800" step="5">
<button class="apply-btn" onclick="simpleApplySetpoint(1)">Set</button>
<button id="simple-power-nail1" class="power-mini off" onclick="simpleTogglePower(1)">OFF</button>
</div>
<div class="simple-flight-controls">
<button class="adj-btn" onclick="simpleSetFlightMode(1, 'takeoff')">Takeoff</button>
<button class="adj-btn" onclick="simpleSetFlightMode(1, 'descent')">Descent</button>
</div>
</div>
<div class="simple-card" id="simple-card-nail2">
<h3>Nail 2</h3>
<div class="simple-temp"><span id="simple-temp-nail2">---</span>&deg;F</div>
<div class="simple-line">Mode: <span id="simple-mode-nail2">grounded</span></div>
<div class="simple-line">Target: <span id="simple-target-nail2">---</span>&deg;F</div>
<div class="simple-stats">
<span class="simple-stat">Relay <strong id="simple-relay-nail2">OFF</strong></span>
<span class="simple-stat">Output <strong id="simple-output-nail2">0</strong></span>
<span class="simple-stat">TC <strong id="simple-tc-nail2">--</strong></span>
<span class="simple-stat">Uptime <strong id="simple-uptime-nail2">--</strong></span>
</div>
<div class="simple-line">ETA: <span id="simple-eta-nail2">--</span></div>
<div class="simple-line">Next descent: <span id="simple-cutoff-nail2">--</span></div>
<div class="simple-alert" id="simple-alert-nail2">No active safety alerts.</div>
<div class="simple-controls">
<input type="number" id="simple-setpoint-nail2" value="530" min="0" max="800" step="5">
<button class="apply-btn" onclick="simpleApplySetpoint(2)">Set</button>
<button id="simple-power-nail2" class="power-mini off" onclick="simpleTogglePower(2)">OFF</button>
</div>
<div class="simple-flight-controls">
<button class="adj-btn" onclick="simpleSetFlightMode(2, 'takeoff')">Takeoff</button>
<button class="adj-btn" onclick="simpleSetFlightMode(2, 'descent')">Descent</button>
</div>
</div>
</section>
<section class="simple-only simple-chart-wrap">
<h3>Combined Temperature View</h3>
<canvas id="simple-temp-chart"></canvas>
</section>
<section class="hero">
<div class="temp-display">
<div id="advanced-nail-label" class="wall-clock">Nail 1</div>
@@ -123,11 +154,11 @@
<div class="pid-controls">
<label>
Loop Size (ms)
<input type="number" id="control-loop-size" step="100" min="1500" max="5000" value="3000">
<input type="number" id="control-loop-size" step="100" min="1500" max="5000" value="1800">
</label>
<label>
Sleep (s)
<input type="number" id="control-sleep-time" step="0.01" min="0.15" max="0.6" value="0.4">
<input type="number" id="control-sleep-time" step="0.01" min="0.15" max="0.6" value="0.2">
</label>
<button class="apply-btn" onclick="applyControlTiming()">Apply Timing</button>
</div>
@@ -179,7 +210,7 @@
<div class="autotune-controls">
<button class="adj-btn" onclick="setFlightMode('takeoff')">Takeoff</button>
<button class="adj-btn" onclick="setFlightMode('descent')">Descent</button>
<span id="flight-mode-status" class="autotune-status idle">Use power button for Grounded/Cruise.</span>
<span id="flight-mode-status" class="autotune-status idle"></span>
</div>
<div class="pid-controls">
<label>
@@ -209,14 +240,11 @@
</label>
<label>
Add time (HH:MM)
<input type="text" id="sched-time-input" value="23:00" placeholder="HH:MM" inputmode="numeric" maxlength="5">
<input type="time" id="sched-time-input" value="23:00" step="60">
</label>
<button class="adj-btn" onclick="addSchedulerTime()">Add Time</button>
</div>
<div id="sched-time-list" class="sched-time-list"></div>
<div class="autotune-controls">
<span class="autotune-status idle">Scheduler only triggers descent -> grounded. No auto takeoff.</span>
</div>
</div>
</section>