fix: auto-send continues when switching to Telemetry tab, uses random payload
This commit is contained in:
@@ -267,6 +267,7 @@ const S = {
|
|||||||
mqttConnecting: false,
|
mqttConnecting: false,
|
||||||
mqttLog: [],
|
mqttLog: [],
|
||||||
autoTimer: null,
|
autoTimer: null,
|
||||||
|
autoTopic: '', // топик сохраняется при старте авто — не зависит от DOM
|
||||||
|
|
||||||
// Телеметрия
|
// Телеметрия
|
||||||
telemetryRows: [], // загруженные строки [{id, device_id, ts, payload}]
|
telemetryRows: [], // загруженные строки [{id, device_id, ts, payload}]
|
||||||
@@ -841,12 +842,12 @@ function deviceLayout(d) {
|
|||||||
|
|
||||||
// switchTab — переключить вкладку без перезагрузки данных устройства
|
// switchTab — переключить вкладку без перезагрузки данных устройства
|
||||||
function switchTab(tab) {
|
function switchTab(tab) {
|
||||||
if (tab !== 'emulator') {
|
// Останавливаем авто-отправку только когда УХОДИМ с вкладки эмулятора
|
||||||
// Останавливаем авто-отправку при уходе с вкладки эмулятора
|
if (S.activeTab === 'emulator' && tab !== 'emulator') {
|
||||||
mqttStopAuto();
|
mqttStopAuto();
|
||||||
}
|
}
|
||||||
if (tab !== 'telemetry') {
|
// Останавливаем авто-рефреш только когда УХОДИМ с вкладки телеметрии
|
||||||
// Останавливаем авто-рефреш при уходе с вкладки телеметрии
|
if (S.activeTab === 'telemetry' && tab !== 'telemetry') {
|
||||||
clearInterval(S.telemetryRefreshTimer);
|
clearInterval(S.telemetryRefreshTimer);
|
||||||
S.telemetryRefreshTimer = null;
|
S.telemetryRefreshTimer = null;
|
||||||
S.telemetryAutoRefresh = false;
|
S.telemetryAutoRefresh = false;
|
||||||
@@ -1064,10 +1065,14 @@ function toggleAuto() {
|
|||||||
if (btn) btn.textContent = 'Запустить';
|
if (btn) btn.textContent = 'Запустить';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const sec = parseInt((document.getElementById('auto-sec') || {}).value) || 5;
|
const sec = parseInt((document.getElementById('auto-sec') || {}).value) || 5;
|
||||||
const topic = (document.getElementById('emu-topic') || {}).value || '';
|
// Топик читаем из DOM один раз при старте и сохраняем в S.autoTopic —
|
||||||
|
// чтобы авто-отправка продолжалась при переходе на вкладку Телеметрии
|
||||||
|
S.autoTopic = (document.getElementById('emu-topic') || {}).value || '';
|
||||||
|
if (!S.autoTopic) return;
|
||||||
if (btn) btn.textContent = 'Стоп';
|
if (btn) btn.textContent = 'Стоп';
|
||||||
mqttStartAuto(topic, () => (document.getElementById('emu-payload') || {value:'{}'}).value.trim(), sec);
|
// getPayload генерирует случайные данные каждый тик — не зависит от DOM
|
||||||
|
mqttStartAuto(S.autoTopic, generateSensorPayload, sec);
|
||||||
}
|
}
|
||||||
|
|
||||||
// =============================================================
|
// =============================================================
|
||||||
|
|||||||
Reference in New Issue
Block a user