signalk-race-control 0.6.0 → 0.8.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/README.md +34 -13
- package/index.js +301 -68
- package/package.json +1 -1
- package/public/app.js +203 -74
- package/public/index.html +4 -1
- package/public/style.css +34 -2
- package/public/vendor/leaflet/LICENSE +26 -0
- package/public/vendor/leaflet/images/layers-2x.png +0 -0
- package/public/vendor/leaflet/images/layers.png +0 -0
- package/public/vendor/leaflet/images/marker-icon-2x.png +0 -0
- package/public/vendor/leaflet/images/marker-icon.png +0 -0
- package/public/vendor/leaflet/images/marker-shadow.png +0 -0
- package/public/vendor/leaflet/leaflet.css +661 -0
- package/public/vendor/leaflet/leaflet.js +6 -0
package/README.md
CHANGED
|
@@ -87,7 +87,10 @@ and a live projected finishing order — during and after the race.
|
|
|
87
87
|
ended up as the name.
|
|
88
88
|
- **Editable finish times** — click **Now** to record a finish as it happens, type a
|
|
89
89
|
specific `HH:MM:SS` into the finish-time field to correct a mistimed click, or
|
|
90
|
-
**Clear** to undo. Handles races that cross midnight.
|
|
90
|
+
**Clear** to undo. Handles races that cross midnight. **DNS** marks a boat as never
|
|
91
|
+
having started at all, distinct from **DNF** (started but didn't finish) — both show
|
|
92
|
+
up as their own status in the Excel export and rank last, and either one can be
|
|
93
|
+
undone the same way. Recording a real finish time clears either.
|
|
91
94
|
- **Start timer** — once a start line is set and a start is scheduled, an expandable
|
|
92
95
|
**Start timer** panel shows a countdown to the gun alongside three live numbers for
|
|
93
96
|
this vessel specifically (from its own SignalK GPS/speed, not any other tracked
|
|
@@ -99,9 +102,15 @@ and a live projected finishing order — during and after the race.
|
|
|
99
102
|
- **Course & chart** — enter lat/lon for the start line, an ordered list of rounding
|
|
100
103
|
marks, and the finish line (or click **Use my position** if you're sitting at that
|
|
101
104
|
spot, or type a name to autocomplete against existing SignalK waypoints — e.g. ones
|
|
102
|
-
already placed from a chart plotter — and pick one to fill in its position
|
|
103
|
-
|
|
104
|
-
|
|
105
|
+
already placed from a chart plotter — and pick one to fill in its position; typing
|
|
106
|
+
lat/lon directly works just as well). Every other known waypoint (not part of this
|
|
107
|
+
race's own course) shows on the chart too, as a small dim pin with its name, so it's
|
|
108
|
+
there to reference — or type into a mark's name field — even before it's used.
|
|
109
|
+
The chart itself is a real background map, like freeboard-sk's: it uses whatever
|
|
110
|
+
tile-based chart resource this SignalK server has registered, or falls back to public
|
|
111
|
+
OpenStreetMap + OpenSeaMap tiles when none is configured (same fallback freeboard-sk
|
|
112
|
+
itself uses). Overlaid on it is each AIS-tracked boat's recorded track for the current
|
|
113
|
+
race — drag the **replay** slider to step back
|
|
105
114
|
through it, or leave it on **Live**. Click **Play** to have it step through on its own
|
|
106
115
|
instead, at whatever speed the adjoining slider is set to (1x-60x); it starts over
|
|
107
116
|
from the earliest recorded position when played from Live (there's nothing to play
|
|
@@ -115,7 +124,10 @@ and a live projected finishing order — during and after the race.
|
|
|
115
124
|
back to just the last real position (no ring) instead of interpolating across a gap
|
|
116
125
|
longer than 5 minutes — AIS dropping out, or a mark rounding recorded far from any
|
|
117
126
|
real fix — since a straight line across a gap that long would be a guess, not an
|
|
118
|
-
estimate.
|
|
127
|
+
estimate. A notable pickup in speed between two consecutive samples (a gust, better
|
|
128
|
+
trim, planing) is marked right on the track as a ring in that boat's own colour, sized
|
|
129
|
+
a bit larger for a bigger jump — hover it for the exact speed reached. The course is
|
|
130
|
+
also published as SignalK
|
|
119
131
|
waypoint/route resources for any chart plotter (e.g. freeboard-sk) that reads the
|
|
120
132
|
standard resources API — both directions (reading existing waypoints for the
|
|
121
133
|
autocomplete, and publishing the saved course) only do anything if your server has a
|
|
@@ -140,13 +152,17 @@ and a live projected finishing order — during and after the race.
|
|
|
140
152
|
rounding.
|
|
141
153
|
- **Stop / call off the race** — freezes elapsed/corrected time for everyone without
|
|
142
154
|
touching boats, finish times, or the course (unlike Reset, which clears the race
|
|
143
|
-
back to not-started), and marks every boat that hadn't finished
|
|
144
|
-
capturing its last known AIS position if one's available. You
|
|
145
|
-
call-off for a future time (mirrors Schedule Start), and mark or
|
|
146
|
-
individual boat DNF by hand at any point, independent of the whole
|
|
155
|
+
back to not-started), and marks every boat that hadn't finished or already been
|
|
156
|
+
marked DNS as **DNF**, capturing its last known AIS position if one's available. You
|
|
157
|
+
can also schedule a call-off for a future time (mirrors Schedule Start), and mark or
|
|
158
|
+
un-mark an individual boat DNF or DNS by hand at any point, independent of the whole
|
|
159
|
+
race. There's no
|
|
147
160
|
true pause: **Resume** discards the stop, un-DNFs everyone it DNF'd, and the clock
|
|
148
161
|
jumps straight back to real elapsed time — the time spent stopped isn't excluded
|
|
149
162
|
from anyone's result. Recording a real finish time on a DNF'd boat clears its DNF.
|
|
163
|
+
Also happens automatically the moment every boat has either finished or been marked
|
|
164
|
+
DNF — nothing left to time, so the race calls itself off rather than sitting there
|
|
165
|
+
with an idle clock until someone remembers to click Stop.
|
|
150
166
|
- **Compare to a "self" boat** — click the star next to a boat's name to mark it as
|
|
151
167
|
self. Every other boat then shows, in the **vs Self** column: a live-ticking
|
|
152
168
|
countdown to the moment self would tie them on corrected time if that boat has
|
|
@@ -155,10 +171,15 @@ and a live projected finishing order — during and after the race.
|
|
|
155
171
|
both have finished. With no boat marked self, the column instead compares everyone
|
|
156
172
|
against the current **leader** (tagged accordingly), so it's never just blank.
|
|
157
173
|
- **Export to Excel** — a genuine `.xlsx` snapshot of the current standings (same
|
|
158
|
-
ranking, same rows as the on-screen table: rank, boat, sail number, MMSI, TCF,
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
174
|
+
ranking, same rows as the on-screen table: rank, boat, sail number, MMSI, TCF, start
|
|
175
|
+
time, finish time, elapsed, corrected, status), with the time columns rendered in
|
|
176
|
+
your browser's own timezone rather than the server's (and with the date included,
|
|
177
|
+
for a multi-day race). Start/finish are real date-time cells, and Elapsed/Corrected
|
|
178
|
+
are live formulas from them (elapsed × TCF), not numbers baked in at export time —
|
|
179
|
+
correct a start or finish time directly in the spreadsheet afterward and the rest
|
|
180
|
+
recalculates. Left blank for a boat with no finish time (DNF, DNS, or still racing)
|
|
181
|
+
rather than a snapshot of elapsed-so-far that would go stale the moment the file is
|
|
182
|
+
reopened later.
|
|
162
183
|
- **Download Offline Timer** — a single self-contained `.html` file, seeded with the
|
|
163
184
|
current race's boats, TCF, and multi-day setting, that runs the core of race timing
|
|
164
185
|
(start/stop/resume/reset, add/remove boats, edit TCF, individual start times,
|