No latency samples yet. The chart remains empty until the backend reports metrics.
+
Измерений пока нет. График появится после получения первых данных от K1.
)}
);
@@ -226,13 +235,13 @@ function FoxglovePanel({ state }: { state: ConsoleState | null }) {
- 3D WORKSPACE
-
Point cloud + trajectory
+ ШАГ 06 · 3D-ПРОСМОТР
+
Облако точек и траектория
- Foxglove renders the live topics. This console only reports transport state and never
- substitutes a simulated cloud when the scanner is silent.
+ Foxglove показывает реальные данные сканера. Если K1 ничего не передаёт, здесь не будет
+ подставного или сгенерированного облака.
-
+
/k1/points/k1/pose/k1/trajectory
@@ -240,7 +249,7 @@ function FoxglovePanel({ state }: { state: ConsoleState | null }) {
- Owner-controlled K1 transport, latency and Foxglove handoff on the local network.
- Blank values mean no measurement has arrived yet.
+ Интерфейс проведёт от включения сканера до живого облака точек. Пустые значения
+ означают, что реальные данные ещё не пришли.
{phaseLabel(state?.phase)}
- {state?.message || "Waiting for an authoritative backend state snapshot."}
+ {state?.message || "Ожидаем состояние локального сервера."}
- No devices reported. Confirm scanner power, then run the real BLE scan.
+ K1 пока не найден. Убедитесь, что он включён и горит ровно зелёным, затем
+ нажмите «Найти K1».
)}
@@ -501,41 +557,33 @@ export default function App() {
- The password is sent only in the POST body to the local API and is cleared from
- this form after a successful request.
+ Пароль передаётся только локальному серверу на этом MacBook, не записывается в
+ репозиторий и удаляется из формы после успешного подключения.
@@ -561,25 +609,25 @@ export default function App() {
+ {liveTargetReady
+ ? "Шаг 05: после запуска дважды нажмите физическую кнопку K1. Когда лидар зашумит и зелёный индикатор начнёт мигать, облако точек пойдёт в Foxglove."
+ : "Сначала выполните шаг 03: подключите K1 к Wi-Fi слева или укажите его локальный адрес."}
+
) : (
setReplayPath(event.target.value)}
spellCheck={false}
- placeholder="sessions/.../mqtt.raw.k1mqtt or capture.tsv"
+ placeholder="sessions/.../mqtt.raw.k1mqtt или capture.tsv"
/>
)}
- Source changes call the local API. The console never toggles its status before
- the backend acknowledges the request.
+ Статус меняется только после ответа локального сервера. Для реального потока
+ сначала подключите K1 к Wi‑Fi слева.