signalk-race-control 0.1.0 → 0.2.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 +51 -9
- package/index.js +802 -7
- package/package.json +1 -1
- package/public/app.js +204 -24
- package/public/index.html +12 -0
- package/public/style.css +35 -1
package/README.md
CHANGED
|
@@ -7,6 +7,21 @@ and a live projected finishing order — during and after the race.
|
|
|
7
7
|
- **Named, plannable races** — create races ahead of time, optionally with a
|
|
8
8
|
scheduled start; switch between past and upcoming races from a dropdown to
|
|
9
9
|
review results later. Nothing gets overwritten by starting the next race.
|
|
10
|
+
- **Overnight / multi-day races** — most races are same-day, so this is off by
|
|
11
|
+
default; a normal finish-time entry (like `21:14:07`) already rolls over to the
|
|
12
|
+
next calendar day on its own if it's earlier than the start, so an ordinary race
|
|
13
|
+
finishing just after midnight needs nothing special. Check **Overnight / multi-day
|
|
14
|
+
race** when creating one instead (fixed for that race, not changeable afterward)
|
|
15
|
+
only once a single automatic day-rollover isn't enough — a multi-day distance
|
|
16
|
+
race, say — and finish/start times are then entered with a full date, not just a
|
|
17
|
+
time-of-day. Elapsed/corrected time already display past 24 hours either way (e.g.
|
|
18
|
+
`30:00:00`).
|
|
19
|
+
- **Individual start times** — override the race's single start time for one boat at
|
|
20
|
+
a time (in its own **Start time** column, right next to Finish time): for a
|
|
21
|
+
staggered/pursuit start, or to correct a boat that didn't actually get away with
|
|
22
|
+
the fleet. Left blank, a boat just uses the race's own start time as before.
|
|
23
|
+
Starting or resetting the race clears every boat's override along with its finish
|
|
24
|
+
time, ready for a clean re-run.
|
|
10
25
|
- **Add/remove boats explicitly** — type a name (autocompletes against the VET
|
|
11
26
|
register, the cross-race boat registry, and any live AIS/self vessel — matching
|
|
12
27
|
anywhere in the name, not just the start) and click **Add Boat**. Boats aren't
|
|
@@ -70,11 +85,26 @@ and a live projected finishing order — during and after the race.
|
|
|
70
85
|
countdown to the moment self would tie them on corrected time if that boat has
|
|
71
86
|
already finished (going negative, in red, once self can no longer catch up even by
|
|
72
87
|
finishing instantly), or the current corrected-time gap if both are still racing or
|
|
73
|
-
both have finished.
|
|
88
|
+
both have finished. With no boat marked self, the column instead compares everyone
|
|
89
|
+
against the current **leader** (tagged accordingly), so it's never just blank.
|
|
74
90
|
- **Export to Excel** — a genuine `.xlsx` snapshot of the current standings (same
|
|
75
|
-
ranking, same rows as the on-screen table: rank, boat, MMSI, TCF,
|
|
76
|
-
corrected, finish time, status), with the
|
|
77
|
-
browser's own timezone rather than the server's
|
|
91
|
+
ranking, same rows as the on-screen table: rank, boat, MMSI, TCF, start time,
|
|
92
|
+
elapsed, corrected, finish time, status), with the time columns rendered in your
|
|
93
|
+
browser's own timezone rather than the server's (and with the date included, for a
|
|
94
|
+
multi-day race).
|
|
95
|
+
- **Download Offline Timer** — a single self-contained `.html` file, seeded with the
|
|
96
|
+
current race's boats, TCF, and multi-day setting, that runs the core of race timing
|
|
97
|
+
(start/stop/resume/reset, add/remove boats, edit TCF, individual start times,
|
|
98
|
+
record finishes, DNF, self-comparison) with no server and no internet connection at
|
|
99
|
+
all — including its own editable **Race start** field (Now/Clear, right under the
|
|
100
|
+
Start/Stop/Resume/Reset buttons) for backdating or correcting the race's start time
|
|
101
|
+
directly, without needing to click Start Race and lose already-recorded progress —
|
|
102
|
+
a backup for keeping a race running if
|
|
103
|
+
this plugin's server becomes unreachable mid-event. It saves everything to that
|
|
104
|
+
browser's own local storage, so closing and reopening the same downloaded file picks
|
|
105
|
+
up right where you left off. AIS boat names/positions, VET-tall lookup, and the
|
|
106
|
+
course/chart all need the live server and aren't included; TCF is entered by hand
|
|
107
|
+
instead. Also has its own "Download results as CSV" button.
|
|
78
108
|
|
|
79
109
|
## Install
|
|
80
110
|
|
|
@@ -93,8 +123,11 @@ Then restart the SignalK server, enable "Race Control" under
|
|
|
93
123
|
|
|
94
124
|
## Using it
|
|
95
125
|
|
|
96
|
-
1. Click **+ New Race**, give it a name (e.g. "Onsdagsseilas 3")
|
|
97
|
-
|
|
126
|
+
1. Click **+ New Race**, give it a name (e.g. "Onsdagsseilas 3"), and check
|
|
127
|
+
**Overnight / multi-day race** only if a single automatic day-rollover on finish
|
|
128
|
+
times won't be enough (can't be changed after creating the race) — leave it
|
|
129
|
+
unchecked for the usual same-day race, even one that finishes after midnight. It
|
|
130
|
+
becomes the active race, shared across every open browser tab/device.
|
|
98
131
|
2. Add boats by name. Each gets a default TCF of 1.0 — edit it directly, or use the
|
|
99
132
|
VET-alternatives dropdown once a matching register entry is found. Set an MMSI per
|
|
100
133
|
boat if you want its AIS position tracked for the chart/estimate.
|
|
@@ -102,8 +135,15 @@ Then restart the SignalK server, enable "Race Control" under
|
|
|
102
135
|
order — reorder with ↑/↓), and finish line, then **Save Course**.
|
|
103
136
|
4. Either click **Start Race** now, or set a date/time and click **Schedule Start** —
|
|
104
137
|
the race starts itself automatically at that moment (even across a server restart).
|
|
105
|
-
|
|
106
|
-
|
|
138
|
+
Clicked it a little late? Fix the recorded moment directly in the **Race start**
|
|
139
|
+
field next to the clock (Now/Clear) — unlike Reset, it never touches any boat's
|
|
140
|
+
finish time, DNF, or individual start override. If a particular boat actually
|
|
141
|
+
started at a different moment (a staggered/pursuit start, or a correction), set
|
|
142
|
+
its own time in the **Start time** column instead of leaving it to follow the
|
|
143
|
+
race's start.
|
|
144
|
+
5. As boats finish, click **Now** to stamp the current time, or type the exact time
|
|
145
|
+
(plus date, for a multi-day race) into the finish-time field. **Clear** undoes a
|
|
146
|
+
finish.
|
|
107
147
|
6. **Stop** calls the race off now (freezes the clock, DNFs whoever hasn't finished);
|
|
108
148
|
**Schedule Call-off** does the same at a future time instead. **Resume** discards
|
|
109
149
|
a stop and un-DNFs whoever it DNF'd. **Reset** (click once to arm, again to
|
|
@@ -112,7 +152,9 @@ Then restart the SignalK server, enable "Race Control" under
|
|
|
112
152
|
7. Click a boat's ☆ to mark it **self** and see the **vs Self** column fill in for
|
|
113
153
|
every other boat.
|
|
114
154
|
8. **Export to Excel** downloads the current standings as a `.xlsx` file at any time
|
|
115
|
-
— before, during, or after the race.
|
|
155
|
+
— before, during, or after the race. **Download Offline Timer** grabs a standalone
|
|
156
|
+
backup copy of the race instead — worth doing before the start if you want a safety
|
|
157
|
+
net in case the server drops out mid-race.
|
|
116
158
|
9. Switch races anytime via the dropdown at the top to review an earlier race's
|
|
117
159
|
results, or plan the next one. **Delete Race** (arm-then-confirm) removes one.
|
|
118
160
|
|