@sailingrotevista/rotevista-dash 7.0.34 → 7.0.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/app.js +19 -12
  2. package/package.json +1 -1
package/app.js CHANGED
@@ -373,17 +373,18 @@ function processIncomingData(path, val, source, timeMs) {
373
373
  }
374
374
  }
375
375
 
376
- // Aggiorna sempre lo stato raw istantaneo all'ultimo millisecondo per massimizzare la precisione digitale
377
- store.timestamps[path] = now;
376
+ // Aggiorna lo stato raw e sincronizza il timestamp del watchdog sull'orologio locale (Date.now()) per evitare falsi timeout
377
+ const localNow = Date.now();
378
+ store.timestamps[path] = localNow;
378
379
  store.raw[path] = val;
379
380
 
380
- // Converte e aggiorna istantaneamente store.raw["navigation.headingTrue"] prima del rate limiter per evitare ritardi UI
381
+ // Converte e aggiorna istantaneamente store.raw["navigation.headingTrue"] per la UI prima del rate limiter
381
382
  if (path === "navigation.headingMagnetic") {
382
- const hasNativeTrueHdg = store.timestamps["navigation.headingTrueNative"] && (now - store.timestamps["navigation.headingTrueNative"] < 5000);
383
+ const hasNativeTrueHdg = store.timestamps["navigation.headingTrueNative"] && (localNow - store.timestamps["navigation.headingTrueNative"] < 5000);
383
384
  if (!hasNativeTrueHdg) {
384
385
  const variation = store.raw["navigation.magneticVariation"] || 0;
385
386
  store.raw["navigation.headingTrue"] = (val + variation + 2 * Math.PI) % (2 * Math.PI);
386
- store.timestamps["navigation.headingTrue"] = now;
387
+ store.timestamps["navigation.headingTrue"] = localNow;
387
388
  }
388
389
  }
389
390
 
@@ -628,21 +629,27 @@ function updateWindTrend() {
628
629
  // ==========================================================================
629
630
 
630
631
  /**
631
- * upUI: Aggiornamento valori digitali
632
+ * upUI: Aggiornamento valori digitali con tolleranza d'emergenza sul dato istantaneo
632
633
  */
633
634
  const upUI = (el, obj, instantRaw, isCompass = false) => {
634
- if (!obj || obj.val === null || isNaN(obj.val) || instantRaw === undefined) {
635
+ // Se la media obj non è momentaneamente disponibile, usa il dato istantaneo raw come paracadute
636
+ const displayRad = (obj && obj.val !== null && !isNaN(obj.val)) ? obj.val : instantRaw;
637
+
638
+ if (displayRad === undefined || displayRad === null || isNaN(displayRad)) {
635
639
  el.innerHTML = "---&deg;";
636
640
  el.classList.remove('unstable-data');
637
641
  } else {
638
- let valDeg = Math.round(radToDeg(obj.val));
642
+ let valDeg = Math.round(radToDeg(displayRad));
639
643
  let mainVal = (isCompass ? ((valDeg + 360) % 360).toString().padStart(3, '0') : valDeg) + "&deg;";
640
- let dev = (obj.dev > 1 && obj.dev < 90) ? `<span style="font-size: 0.8em; opacity: 0.4; margin-left: 6px;">&plusmn;${obj.dev}</span>` : "";
644
+ let dev = (obj && obj.dev > 1 && obj.dev < 90) ? `<span style="font-size: 0.8em; opacity: 0.4; margin-left: 6px;">&plusmn;${obj.dev}</span>` : "";
641
645
  el.innerHTML = mainVal + dev;
642
646
 
643
- let diff = Math.abs((radToDeg(instantRaw) - radToDeg(obj.val) + 540) % 360 - 180);
644
- if (isNavigating && (!obj.stable || obj.dev > CONFIG.averaging.stabilityBreakout || diff > CONFIG.averaging.stabilityBreakout)) el.classList.add('unstable-data');
645
- else el.classList.remove('unstable-data');
647
+ let diff = (obj && instantRaw !== undefined) ? Math.abs((radToDeg(instantRaw) - radToDeg(obj.val) + 540) % 360 - 180) : 0;
648
+ if (isNavigating && (obj && (!obj.stable || obj.dev > CONFIG.averaging.stabilityBreakout || diff > CONFIG.averaging.stabilityBreakout))) {
649
+ el.classList.add('unstable-data');
650
+ } else {
651
+ el.classList.remove('unstable-data');
652
+ }
646
653
  }
647
654
  };
648
655
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sailingrotevista/rotevista-dash",
3
- "version": "7.0.34",
3
+ "version": "7.0.36",
4
4
  "description": "Wind Dashboard with navigation and course aids",
5
5
  "main": "index.js",
6
6
  "publishConfig": {