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,
|
||||
mqttLog: [],
|
||||
autoTimer: null,
|
||||
autoTopic: '', // топик сохраняется при старте авто — не зависит от DOM
|
||||
|
||||
// Телеметрия
|
||||
telemetryRows: [], // загруженные строки [{id, device_id, ts, payload}]
|
||||
@@ -841,12 +842,12 @@ function deviceLayout(d) {
|
||||
|
||||
// switchTab — переключить вкладку без перезагрузки данных устройства
|
||||
function switchTab(tab) {
|
||||
if (tab !== 'emulator') {
|
||||
// Останавливаем авто-отправку при уходе с вкладки эмулятора
|
||||
// Останавливаем авто-отправку только когда УХОДИМ с вкладки эмулятора
|
||||
if (S.activeTab === 'emulator' && tab !== 'emulator') {
|
||||
mqttStopAuto();
|
||||
}
|
||||
if (tab !== 'telemetry') {
|
||||
// Останавливаем авто-рефреш при уходе с вкладки телеметрии
|
||||
// Останавливаем авто-рефреш только когда УХОДИМ с вкладки телеметрии
|
||||
if (S.activeTab === 'telemetry' && tab !== 'telemetry') {
|
||||
clearInterval(S.telemetryRefreshTimer);
|
||||
S.telemetryRefreshTimer = null;
|
||||
S.telemetryAutoRefresh = false;
|
||||
@@ -1064,10 +1065,14 @@ function toggleAuto() {
|
||||
if (btn) btn.textContent = 'Запустить';
|
||||
return;
|
||||
}
|
||||
const sec = parseInt((document.getElementById('auto-sec') || {}).value) || 5;
|
||||
const topic = (document.getElementById('emu-topic') || {}).value || '';
|
||||
const sec = parseInt((document.getElementById('auto-sec') || {}).value) || 5;
|
||||
// Топик читаем из DOM один раз при старте и сохраняем в S.autoTopic —
|
||||
// чтобы авто-отправка продолжалась при переходе на вкладку Телеметрии
|
||||
S.autoTopic = (document.getElementById('emu-topic') || {}).value || '';
|
||||
if (!S.autoTopic) return;
|
||||
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