@sailingrotevista/rotevista-dash 7.0.17 → 7.0.18

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 (3) hide show
  1. package/app.js +14 -5
  2. package/package.json +1 -1
  3. package/style.css +9 -0
package/app.js CHANGED
@@ -744,11 +744,20 @@ function startDisplayLoop() {
744
744
  }
745
745
 
746
746
  if (lastAvgUIUpdate % 3 === 0) {
747
- let hObj = getCircularAverageFromBuffer(store.longBuf.hdg, CONFIG.averaging.longWindow * 2, false);
748
- let cObj = getCircularAverageFromBuffer(store.longBuf.cog, CONFIG.averaging.longWindow, false);
749
- let awObj = getCircularAverageFromBuffer(store.longBuf.awa, CONFIG.averaging.longWindow, true);
750
- let twObj = getCircularAverageFromBuffer(store.longBuf.twa, CONFIG.averaging.longWindow, true);
751
- let twdObj = getCircularAverageFromBuffer(store.longBuf.twd, CONFIG.averaging.longWindow, false);
747
+ const baseThreshold = CONFIG.averaging.stabilityThreshold || 0.95;
748
+ const breakout = CONFIG.averaging.stabilityBreakout || 15;
749
+
750
+ // CALCOLO DIFFERENZIALE: Tolleranza del vento proporzionale alla sensibilità di base.
751
+ // Rilassiamo la soglia del vento di 0.13 rispetto alla prua (es. se la prua richiede 0.95, il vento richiede 0.82)
752
+ const windThreshold = Math.max(0.60, baseThreshold - 0.13);
753
+
754
+ let hObj = getCircularAverageFromBuffer(store.longBuf.hdg, CONFIG.averaging.longWindow * 2, false, now, baseThreshold, breakout);
755
+ let cObj = getCircularAverageFromBuffer(store.longBuf.cog, CONFIG.averaging.longWindow, false, now, baseThreshold, breakout);
756
+
757
+ // Applichiamo la soglia differenziale ottimizzata per i tre dati legati al vento
758
+ let awObj = getCircularAverageFromBuffer(store.longBuf.awa, CONFIG.averaging.longWindow, true, now, windThreshold, breakout);
759
+ let twObj = getCircularAverageFromBuffer(store.longBuf.twa, CONFIG.averaging.longWindow, true, now, windThreshold, breakout);
760
+ let twdObj = getCircularAverageFromBuffer(store.longBuf.twd, CONFIG.averaging.longWindow, false, now, windThreshold, breakout);
752
761
 
753
762
  // --- GESTIONE DINAMICA ETICHETTA TACK/GYBE CON ISTERESI DI 10 GRADI ---
754
763
  if (ui.tackLabel) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sailingrotevista/rotevista-dash",
3
- "version": "7.0.17",
3
+ "version": "7.0.18",
4
4
  "description": "Wind Dashboard with navigation and course aids",
5
5
  "main": "index.js",
6
6
  "publishConfig": {
package/style.css CHANGED
@@ -601,3 +601,12 @@ body.night-mode {
601
601
  .night-mode #wind-radar circle[stroke="#b0bec5"] {
602
602
  stroke: #440000 !important;
603
603
  }
604
+
605
+ /* ==========================================================================
606
+ 13. SMORZAMENTO FLUIDO AGHI A 60FPS (DAMPING HARDWARE)
607
+ ========================================================================== */
608
+
609
+ /* Applichiamo la transizione fluida a tutti i puntatori mantenendo i perni nativi dell'SVG */
610
+ #awa-pointer, #twa-pointer, #track-pointer, #twd-arrow, #twd-boat-wrap {
611
+ transition: transform 0.9s cubic-bezier(0.25, 0.8, 0.25, 1);
612
+ }