Add static assets
This commit is contained in:
156
static/index.html
Normal file
156
static/index.html
Normal file
@@ -0,0 +1,156 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>H11 RTK BLE Console</title>
|
||||
<link rel="stylesheet" href="/static/styles.css" />
|
||||
</head>
|
||||
<body>
|
||||
<main class="shell">
|
||||
<header class="topbar">
|
||||
<div>
|
||||
<h1>H11 RTK BLE Console</h1>
|
||||
<p id="statusText">Disconnected</p>
|
||||
</div>
|
||||
<div class="status-pill" id="statusPill">Offline</div>
|
||||
</header>
|
||||
|
||||
<section class="layout">
|
||||
<aside class="panel side">
|
||||
<div class="panel-head">
|
||||
<h2>Device</h2>
|
||||
<button id="scanBtn">Scan</button>
|
||||
</div>
|
||||
<div class="scan-row">
|
||||
<select id="deviceSelect"></select>
|
||||
<button id="connectBtn">Connect</button>
|
||||
</div>
|
||||
<button class="secondary full" id="disconnectBtn">Disconnect</button>
|
||||
|
||||
<div class="divider"></div>
|
||||
<h3>Characteristics</h3>
|
||||
<label>TX Write</label>
|
||||
<select id="txChar"></select>
|
||||
<label>RX Notify</label>
|
||||
<select id="rxChar"></select>
|
||||
<button class="secondary full" id="applyCharsBtn">Apply Characteristics</button>
|
||||
|
||||
<div class="divider"></div>
|
||||
<h3>Quick Actions</h3>
|
||||
<button class="secondary full quick" data-command="AT+BT_OUT=SET,1,0,1,1,0,0,0,0,0,0">Enable GNPOS/GNDEV</button>
|
||||
<button class="secondary full quick" data-command="AT+BT_OUT=GET">Get BT Output</button>
|
||||
<button class="secondary full quick" data-command="AT+GNSS_MODE=GET">Get GNSS Mode</button>
|
||||
<button class="secondary full quick" data-command="AT+DEV_INIT_STA=GET">Get Init Status</button>
|
||||
<button class="secondary full quick" data-command="AT+NEMATIME=GET">Get NMEA Frequency</button>
|
||||
<button class="secondary full quick" data-command="AT+RTCMBASEPOS=GET">Get RTCM Base</button>
|
||||
<button class="secondary full quick" data-command="AT+UPLOADDATA_PARM=GET">Get Upload Server</button>
|
||||
<button class="secondary full quick" data-command="AT+UPLOADDATA_TYPE=GET">Get Upload Protocol</button>
|
||||
</aside>
|
||||
|
||||
<section class="main-stack">
|
||||
<section class="panel dashboard">
|
||||
<div class="metric">
|
||||
<span>Fix</span>
|
||||
<strong id="fixStatus">--</strong>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<span>Accuracy</span>
|
||||
<strong id="accuracy">--</strong>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<span>Satellites</span>
|
||||
<strong id="satellites">--</strong>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<span>Battery</span>
|
||||
<strong id="battery">--</strong>
|
||||
</div>
|
||||
<div class="metric wide">
|
||||
<span>Position</span>
|
||||
<strong id="position">--</strong>
|
||||
</div>
|
||||
<div class="metric">
|
||||
<span>NTRIP</span>
|
||||
<strong id="ntrip">--</strong>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="panel precision-panel">
|
||||
<div class="panel-head">
|
||||
<h2>Precision</h2>
|
||||
<div class="precision-actions">
|
||||
<button id="startLogBtn">Start Log</button>
|
||||
<button class="secondary" id="stopLogBtn">Stop</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="log-row">
|
||||
<select id="logSelect"></select>
|
||||
<button class="secondary" id="openLogBtn">Open Log</button>
|
||||
<button class="secondary" id="refreshLogsBtn">Refresh</button>
|
||||
</div>
|
||||
<label class="inline-check">
|
||||
<input id="fixedOnlyToggle" type="checkbox" />
|
||||
<span>Use RTK Fixed points only after 5 fixed readings</span>
|
||||
</label>
|
||||
<label for="sessionNotes">Session Notes</label>
|
||||
<textarea id="sessionNotes" rows="3" spellcheck="true"></textarea>
|
||||
<div class="precision-layout">
|
||||
<div class="plot-wrap">
|
||||
<canvas id="precisionPlot"></canvas>
|
||||
</div>
|
||||
<div>
|
||||
<div class="log-status" id="logStatus">No active log</div>
|
||||
<div class="stats-grid" id="precisionStats"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="trend-controls">
|
||||
<div>
|
||||
<label for="trendMetric">Trend Metric</label>
|
||||
<select id="trendMetric"></select>
|
||||
</div>
|
||||
<div>
|
||||
<label for="trendWindow">Window Minutes</label>
|
||||
<input id="trendWindow" type="number" min="0.1" step="0.1" value="5" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="trend-wrap">
|
||||
<canvas id="metricTrendPlot"></canvas>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="panel">
|
||||
<div class="panel-head">
|
||||
<h2>Commands</h2>
|
||||
<div class="segmented">
|
||||
<button id="getBtn" class="active">GET</button>
|
||||
<button id="setBtn">SET</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="command-grid">
|
||||
<div>
|
||||
<label>Command</label>
|
||||
<select id="commandSelect"></select>
|
||||
</div>
|
||||
<div id="commandFields" class="fields"></div>
|
||||
</div>
|
||||
<div class="send-row">
|
||||
<input id="commandInput" spellcheck="false" placeholder="AT+GNSS_MODE=GET" />
|
||||
<button id="sendBtn">Send</button>
|
||||
</div>
|
||||
<p class="hint" id="commandHint"></p>
|
||||
</section>
|
||||
|
||||
<section class="panel terminal-panel">
|
||||
<div class="panel-head">
|
||||
<h2>Terminal</h2>
|
||||
<button class="secondary" id="clearBtn">Clear</button>
|
||||
</div>
|
||||
<pre id="terminal"></pre>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
</main>
|
||||
<script src="/static/app.js?v=20260611-fixed-streak-client"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user