signalk-pypilot-newui 3.2.0 → 3.4.0
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.
- package/CHANGELOG.md +113 -0
- package/README.md +224 -167
- package/dist/alarms.js +47 -5
- package/dist/autopilot-provider.js +160 -27
- package/dist/firefox-fix.js +137 -0
- package/dist/index.js +224 -17
- package/dist/session-recorder.js +38 -0
- package/dist/steer-watch.js +147 -0
- package/dist/virtual-tack.js +24 -1
- package/dist/visor-prefs.js +225 -0
- package/package.json +28 -22
- package/public/app.js +887 -222
- package/public/index.html +102 -16
- package/public/screenshots/01-control-rose.jpg +0 -0
- package/public/screenshots/02-chartplotter-embedded.jpg +0 -0
- package/public/screenshots/03-anchorwatch-in-rose.jpg +0 -0
- package/public/screenshots/04-tide-popup.jpg +0 -0
- package/public/screenshots/05-modes-head-to-wind-downwind.jpg +0 -0
- package/public/screenshots/06-tune-sliders.jpg +0 -0
- package/public/screenshots/07-logbook-trip-detail.jpg +0 -0
- package/public/screenshots/08-tack-history.jpg +0 -0
- package/public/style.css +79 -22
- package/dist/test/alarms-attitude.test.js +0 -110
- package/dist/test/alarms-trim.test.js +0 -177
- package/dist/test/config-backup.test.js +0 -137
- package/dist/test/episodes.test.js +0 -241
- package/dist/test/failsafe-bsp.test.js +0 -56
- package/dist/test/leeway.test.js +0 -91
- package/dist/test/mode-reanchor.test.js +0 -149
- package/dist/test/nav-bearing.test.js +0 -108
- package/dist/test/plugin.test.js +0 -70
- package/dist/test/profile-advisor.test.js +0 -190
- package/dist/test/profile-change-log.test.js +0 -147
- package/dist/test/profile-metadata.test.js +0 -130
- package/dist/test/roll-ff.test.js +0 -105
- package/dist/test/servo-error-log.test.js +0 -162
- package/dist/test/tack-catchup.test.js +0 -90
- package/dist/test/tuning-knobs.test.js +0 -205
- package/dist/test/virtual-tack.test.js +0 -436
- package/public/screenshots/01-control-rose.png +0 -0
- package/public/screenshots/02-chartplotter-embedded.png +0 -0
- package/public/screenshots/03-logbook-trip-detail.png +0 -0
- package/public/screenshots/04-tune-sliders.png +0 -0
- package/public/screenshots/05-race-timer.jpg +0 -0
- package/public/screenshots/06-info.jpg +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,118 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 3.4.0 — 2026-10-18 — The sailor always wins, and the pilot gets unstuck
|
|
4
|
+
|
|
5
|
+
Rolls up Rev506 → Rev508 on top of 3.3.0, from the strong-wind sea
|
|
6
|
+
trial of 2026-10-18 (26 kn TWS, 48° heel). Minor bump: new opt-in
|
|
7
|
+
recovery and alarms. No breaking changes; everything new is off until
|
|
8
|
+
enabled.
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- **Stuck pilot recovery** (Smart Pilot card, opt-in). With no rudder
|
|
12
|
+
sensor, pypilot treats an overcurrent as the end of rudder travel and
|
|
13
|
+
stops driving that way. If the AP is engaged, the heading error is
|
|
14
|
+
over 25° and growing and the servo is not pushing for 4 s, the plugin
|
|
15
|
+
turns the AP off and on (0.7 s, same mode and target), which clears
|
|
16
|
+
that fault in pypilot. At most 3 tries per minute. An order from the
|
|
17
|
+
sailor during the cycle wins, and a running virtual tack is kept.
|
|
18
|
+
- **New alarms** (opt-in, Setup > Alarms): `steer-stuck`,
|
|
19
|
+
`steer-gave-up` ("steer by hand") and `steer-dropped` (AP disengaged
|
|
20
|
+
from the remote or the TinyPilot keys while underway).
|
|
21
|
+
- **+-1 / +-10 during a virtual tack** move the tack's final heading
|
|
22
|
+
instead of being rejected.
|
|
23
|
+
- `servo.flags` is watched and saved in every session sample.
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
- **Taking the AP off now cancels a virtual tack**, whatever the source
|
|
27
|
+
(visor, KIP, remote, TinyPilot). Before, the tack kept running and
|
|
28
|
+
rejected the sailor's own headings until it finished. After a cancel
|
|
29
|
+
the boat holds its current wind angle.
|
|
30
|
+
- Repeated taps on the tack button within 1.5 s no longer chain
|
|
31
|
+
start / cancel / start (wind modes).
|
|
32
|
+
- `unable-to-steer` can fire again: it required servo duty, which the
|
|
33
|
+
TinyPilot never reports. It now also fires on a large error while the
|
|
34
|
+
servo is stopped by an overcurrent fault.
|
|
35
|
+
- Settings tab: unlocking a group no longer asks about the profile; the
|
|
36
|
+
question appears only for PROFILE settings. Open or unlocked groups
|
|
37
|
+
are no longer folded, relocked and reset to old values by the 10 s
|
|
38
|
+
background refresh.
|
|
39
|
+
|
|
40
|
+
## 3.3.0 — 2026-10-19 — Light on the Pi, AIS on the ring, settings shared by every device
|
|
41
|
+
|
|
42
|
+
Rolls up Rev483 → Rev505 on top of 3.2.0. Minor bump: new shared
|
|
43
|
+
visor settings in the backend, Raspberry Pi performance work, AIS rose
|
|
44
|
+
fixes from port and sea QA in Moaña, tide popup polish. No breaking
|
|
45
|
+
changes; the first visor that connects uploads its old per-device
|
|
46
|
+
settings, so nothing is lost.
|
|
47
|
+
|
|
48
|
+
### Added
|
|
49
|
+
|
|
50
|
+
- **Settings shared by every device.** AIS mode (harbour / at anchor /
|
|
51
|
+
sailing), AIS voice, harbour auto-silencer, gust ghost and the list
|
|
52
|
+
of silenced AIS targets now live in the plugin (`/visor-prefs`), not
|
|
53
|
+
in each browser. Silencing a target on the tablet silences it on the
|
|
54
|
+
phone and the laptop too; the harbour auto-silencer is decided once,
|
|
55
|
+
from the boat's SOG, instead of separately by each screen. (Rev498,
|
|
56
|
+
Rev499)
|
|
57
|
+
- **Light mode on the Raspberry Pi's own screen.** The visor detects
|
|
58
|
+
the Pi's browser and drops animations, blur and glow, and only
|
|
59
|
+
touches the page when a value really changes (291 → ~9 DOM writes
|
|
60
|
+
per second). Pi GPU with the visor open: Chromium 15 % → 3 %.
|
|
61
|
+
(Rev490 → Rev492)
|
|
62
|
+
- **Firefox on the Pi: one-tap fix.** Firefox's GPU renderer overloads
|
|
63
|
+
the Pi's graphics chip (GPU ~90 %, 64 % of video frames dropped). The
|
|
64
|
+
Info tab explains it and an **Apply now** button writes
|
|
65
|
+
`gfx.webrender.software` into that Firefox's profiles; a one-time
|
|
66
|
+
notice points there. Also in the README (Troubleshooting).
|
|
67
|
+
(Rev500 → Rev502)
|
|
68
|
+
- **Interactive tide curve** in the tide popup: hover / drag cursor
|
|
69
|
+
with time, height and trend, big trend arrow, collision-free labels;
|
|
70
|
+
tide button always shown, with an install prompt and App Store link
|
|
71
|
+
when AnchorWatch Pro is missing. (Rev483 → Rev489)
|
|
72
|
+
- **Info tab: companion plugins** with live installed / missing status
|
|
73
|
+
and App Store links. (Rev485)
|
|
74
|
+
|
|
75
|
+
### Fixed — AIS
|
|
76
|
+
|
|
77
|
+
- **Targets sit on the compass ring** at their real bearing, with a
|
|
78
|
+
distance label, instead of being parked on top of our own hull in a
|
|
79
|
+
marina (the log distance scale put every target under 50 m there).
|
|
80
|
+
(Rev494)
|
|
81
|
+
- **Moored boats no longer "move".** Class B boats report 0.3-1.6 kn of
|
|
82
|
+
GPS noise when tied up; a target counts as stopped when its AIS nav
|
|
83
|
+
status says moored / anchored / aground, or when two minutes of its
|
|
84
|
+
positions stay inside 30 m. No course line, no "moving" alarms.
|
|
85
|
+
(Rev503)
|
|
86
|
+
- **"Closing" speed in the infobox** was distance / TCPA (a moored boat
|
|
87
|
+
at 48 m showed 37 kn); now the real range rate. (Rev495)
|
|
88
|
+
- **Autopilot alarm banner always visible.** It was drawn below the
|
|
89
|
+
maximised chart, popups, the regatta HUD and the network banners:
|
|
90
|
+
the alarm beeped and spoke but could not be seen. (Rev497)
|
|
91
|
+
|
|
92
|
+
### Fixed — other
|
|
93
|
+
|
|
94
|
+
- **Recorded sessions / session tags / received advice dialogs could
|
|
95
|
+
trap you.** The only way out was the Close button at the end of the
|
|
96
|
+
content; with many sessions (224 on the test boat) it was pushed
|
|
97
|
+
off-screen. Now an X is always visible, the list scrolls inside the
|
|
98
|
+
dialog with title and Close fixed, and tapping outside or Escape
|
|
99
|
+
closes it. (Rev504)
|
|
100
|
+
- **Recorded sessions capped at the newest 50** (one is recorded per
|
|
101
|
+
engage; 224 had piled up). On top of the existing 200 MB budget.
|
|
102
|
+
(Rev505)
|
|
103
|
+
|
|
104
|
+
### Docs / package
|
|
105
|
+
|
|
106
|
+
- README rewritten against the code: license (AGPL-3.0-or-later), the
|
|
107
|
+
free-form SSH console described honestly, 14 alarm rules, polar
|
|
108
|
+
plugins named, Head-to-wind **and** Downwind pseudo-modes, every
|
|
109
|
+
integration (AnchorWatch Pro, chartplotter, AIS, polars) in the intro,
|
|
110
|
+
no invented plugins or path counts.
|
|
111
|
+
- New App Store / README screenshots (8): rose with AIS, embedded chart,
|
|
112
|
+
AnchorWatch Pro inside the rose, tide popup, head to wind / downwind
|
|
113
|
+
modes, tune, logbook trip, tack history. JPEG under 500 KB each; test
|
|
114
|
+
files no longer shipped (package 3.4 MB → 1.4 MB).
|
|
115
|
+
|
|
3
116
|
## 3.2.0 — 2026-10-15 — AIS rose rebuilt on real positions, tide popup, chart kept warm
|
|
4
117
|
|
|
5
118
|
Rolls up Rev470 → Rev482 on top of 3.1.4. Minor bump: new UI (tide
|