Files
MultiRoombaRover/server/public/index.html
T
2025-11-13 13:54:14 -05:00

72 lines
2.8 KiB
HTML

<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Multi Roomba Rover</title>
<style>
body { font-family: sans-serif; margin: 16px; }
#layout { display: flex; gap: 16px; }
#roverList { width: 240px; }
#sensorOutput { font-family: monospace; height: 320px; overflow: auto; border: 1px solid #999; padding: 8px; }
button { margin: 4px; }
.row { margin-bottom: 8px; }
#alerts { margin-top: 12px; max-width: 600px; }
.alert { background: #fff1d2; border: 1px solid #f0b651; padding: 6px 8px; margin-bottom: 6px; font-size: 0.9rem; }
#authPanel { margin: 12px 0; display: flex; gap: 8px; align-items: center; }
#authPanel input { padding: 4px; }
#activeDriver { margin-bottom: 8px; font-weight: bold; }
</style>
</head>
<body>
<h1>Multi Roomba Rover</h1>
<div id="status">Connecting…</div>
<div id="authPanel">
<input id="username" placeholder="Username" />
<input id="password" type="password" placeholder="Password" />
<button id="loginBtn">Admin Login</button>
<button id="spectatorBtn">Spectate</button>
<span id="roleStatus">Role: user</span>
</div>
<div id="layout">
<div id="roverList">
<label for="roverSelect">Rovers</label>
<select id="roverSelect" size="10" style="width: 100%"></select>
<div class="row">
<button id="requestControl">Request Control</button>
<button id="lockToggle">Lock/Unlock</button>
</div>
<div class="row">
<button data-oi="start">Start OI</button>
<button data-oi="safe">Safe</button>
<button data-oi="full">Full</button>
<button data-oi="passive">Passive</button>
<button data-oi="dock">Dock</button>
</div>
<div class="row">
<button id="sensorToggle">Enable Sensor Stream</button>
</div>
<div class="row">
<button id="motorsStop">Stop Motors</button>
</div>
</div>
<div style="flex: 1">
<h3>Sensor Frames</h3>
<div id="activeDriver">Active driver: --</div>
<pre id="sensorOutput"></pre>
<p>Use WASD keys to drive the selected rover. Shift increases speed.</p>
<div id="alerts"></div>
</div>
</div>
<script src="/socket.io/socket.io.js"></script>
<script src="loader.js"></script>
<script src="src/globals/socket.js"></script>
<script src="src/helpers/formatters.js"></script>
<script src="src/services/state.js"></script>
<script src="src/services/alertFeed.js"></script>
<script src="src/services/authControls.js"></script>
<script src="src/services/roverUI.js"></script>
<script src="src/services/driveControls.js"></script>
<script src="src/main.js"></script>
</body>
</html>