Files
ParkingRobot/Simulation/wwwroot/index.html
T

145 lines
5.6 KiB
HTML
Raw Normal View History

<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>停车机器人离线测试台</title>
<link rel="stylesheet" href="viewer.css">
</head>
<body>
<main class="app-shell">
<header class="topbar">
<div>
<p class="eyebrow">MY PARKING · OFFLINE LAB</p>
<h1>停车机器人离线测试台</h1>
</div>
<div class="connection">
<span id="connection-dot" class="dot"></span>
<span id="connection-text">正在连接仿真后端</span>
</div>
</header>
<section class="workspace">
<aside class="panel controls-panel">
<div class="panel-heading">
<span>控制台</span>
<button id="reset-all" class="text-button">全部复位</button>
</div>
<label class="field-label" for="vehicle-select">当前车辆</label>
<select id="vehicle-select">
<option value="1">车辆 1</option>
</select>
<section class="virtual-remote">
<div class="remote-heading">
<p class="group-label">虚拟遥控器</p>
<span id="remote-state">已松开</span>
</div>
<div class="remote-pad" aria-label="虚拟遥控方向面板">
<button data-throttle="1" data-steering="1"
aria-label="前进并左转"></button>
<button data-throttle="1" data-steering="0"
aria-label="前进"></button>
<button data-throttle="1" data-steering="-1"
aria-label="前进并右转"></button>
<button data-throttle="0" data-steering="1"
aria-label="原地向左转"></button>
<button id="remote-stop" class="remote-stop"
aria-label="停止">STOP</button>
<button data-throttle="0" data-steering="-1"
aria-label="原地向右转"></button>
<button data-throttle="-1" data-steering="1"
aria-label="后退并左转"></button>
<button data-throttle="-1" data-steering="0"
aria-label="后退"></button>
<button data-throttle="-1" data-steering="-1"
aria-label="后退并右转"></button>
</div>
<p class="remote-help">
按住操作;键盘 W/S 前后,A/D 转向,可组合按键。
</p>
<label class="remote-slider">
<span>线速度 <output id="speed-scale-value">60%</output></span>
<input id="speed-scale" type="range"
min="0" max="100" value="60">
</label>
<label class="remote-slider">
<span>转向强度 <output id="steering-scale-value">60%</output></span>
<input id="steering-scale" type="range"
min="0" max="100" value="60">
</label>
<p class="remote-mode-note">
遥控方向遵循当前舵轮模式;正常模式下可边走边转。
</p>
</section>
<div id="action-groups"></div>
<div id="command-message" class="message">
请选择车辆和模式。
</div>
<details class="configuration">
<summary>仿真布局配置</summary>
<label class="field-label" for="vehicle-count">车辆数量</label>
<select id="vehicle-count">
<option value="1">1 辆</option>
<option value="2">2 辆</option>
<option value="3">3 辆</option>
<option value="4">4 辆</option>
<option value="5">5 辆</option>
<option value="6">6 辆</option>
<option value="7">7 辆</option>
<option value="8">8 辆</option>
</select>
<p class="group-label">车队中心(世界系)</p>
<div class="numeric-grid">
<label>X / m<input id="fleet-x" type="number" step="0.1"></label>
<label>Y / m<input id="fleet-y" type="number" step="0.1"></label>
<label>Yaw / °<input id="fleet-yaw" type="number" step="1"></label>
</div>
<p class="group-label">单车相对车队中心位姿</p>
<div id="layout-rows" class="layout-rows"></div>
<button id="apply-configuration" class="primary-button">
应用布局并复位
</button>
</details>
<div class="legend">
<div><span class="axis-swatch x-axis"></span>车体 +X(车头)</div>
<div><span class="axis-swatch y-axis"></span>车体 +Y(左侧)</div>
<div><span class="legend-line zero"></span>舵轮机械 0°</div>
<div><span class="legend-line actual"></span>实际舵角</div>
<div><span class="legend-line target"></span>目标舵角</div>
<div><span class="legend-dot ready"></span>舵轮已到位</div>
<div><span class="legend-dot aligning"></span>舵轮转向中</div>
</div>
</aside>
<section class="panel viewport-panel">
<div class="panel-heading">
<span>世界视图</span>
<span class="coordinate-note">X 向右 · Y 向上 · 逆时针为正</span>
</div>
<canvas id="world-canvas"></canvas>
</section>
<aside class="panel status-panel">
<div class="panel-heading">
<span>车辆状态</span>
<span id="update-rate">-- Hz</span>
</div>
<div id="selected-vehicle-detail"></div>
<div id="vehicle-cards" class="vehicle-cards"></div>
</aside>
</section>
</main>
<script src="viewer.js"></script>
</body>
</html>