Files
jsbsim-service/web-test/index.html
2026-04-28 17:24:58 +08:00

116 lines
4.4 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Cesium Reset Baseline</title>
</head>
<body>
<div id="app">
<div id="hud">
<div class="hud-title">Flight Sim Prototype</div>
<div class="hud-row">
<span>Service</span>
<strong id="serviceStatus">Checking</strong>
</div>
<div class="hud-row">
<span>Aircraft</span>
<strong id="aircraftStatus">-</strong>
</div>
<div class="hud-row">
<span>Simulation</span>
<strong id="simulationStatus">Waiting</strong>
</div>
<div class="hud-row">
<span>Playback</span>
<strong id="playbackStatus">Idle</strong>
</div>
<div class="control-grid">
<label>
<span>Maneuver</span>
<select id="maneuverType">
<option value="cobra">Cobra</option>
<option value="control-script">Control script</option>
<option value="level-turn">Level turn</option>
<option value="straight">Straight</option>
<option value="climb">Climb</option>
<option value="descent">Descent</option>
</select>
</label>
<label>
<span>Duration</span>
<input id="durationSec" type="number" min="1" max="120" step="1" value="5" />
</label>
<label>
<span>Speed</span>
<input id="speedMps" type="number" min="20" max="600" step="5" value="120" />
</label>
<label>
<span>Bank</span>
<input id="bankDeg" type="number" min="-80" max="80" step="5" value="0" />
</label>
</div>
<div id="cobraControls" class="cobra-controls">
<div class="panel-title">Cobra Controller</div>
<div class="control-grid">
<label>
<span>Target alpha</span>
<input id="targetAlphaDeg" type="number" min="45" max="130" step="5" value="80" />
</label>
<label>
<span>Pitch-rate cap</span>
<input id="pitchRateLimitDegS" type="number" min="20" max="220" step="5" value="80" />
</label>
<label>
<span>Pull time</span>
<input id="pullDurationSec" type="number" min="0.1" max="3" step="0.05" value="0.7" />
</label>
<label>
<span>Recovery time</span>
<input id="recoveryDurationSec" type="number" min="0.1" max="5" step="0.1" value="2.0" />
</label>
<label>
<span>Pull elevator</span>
<input id="maxElevatorCmd" type="number" min="-1" max="0" step="0.05" value="-0.45" />
</label>
<label>
<span>Recovery elevator</span>
<input id="recoveryElevatorCmd" type="number" min="0" max="1" step="0.05" value="0.65" />
</label>
<label>
<span>Pull TVC</span>
<input id="pullTvcCmd" type="number" min="-1" max="0" step="0.05" value="-0.05" />
</label>
<label>
<span>Recovery TVC</span>
<input id="recoveryTvcCmd" type="number" min="-1" max="1" step="0.05" value="0.85" />
</label>
</div>
</div>
<div class="button-row">
<button id="simulateButton" type="button">Simulate</button>
<button id="retryButton" type="button">Retry</button>
</div>
<div class="button-row">
<button id="playButton" type="button">Play</button>
<button id="pauseButton" type="button">Pause</button>
<button id="resetButton" type="button">Reset</button>
<select id="playbackSpeed">
<option value="0.25">0.25x</option>
<option value="1" selected>1x</option>
<option value="2">2x</option>
<option value="5">5x</option>
</select>
</div>
</div>
<div id="researchPanel">
<div class="panel-title">F-22 Cobra Telemetry</div>
<canvas id="telemetryCanvas" width="420" height="300"></canvas>
<div id="telemetrySummary" class="telemetry-summary">No simulation</div>
</div>
<div id="cesiumContainer"></div>
</div>
<script type="module" src="/src/main.js"></script>
</body>
</html>