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 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, elapsed,
76
- corrected, finish time, status), with the finish-time column rendered in your
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"). It becomes the
97
- active race, shared across every open browser tab/device.
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
- 5. As boats finish, click **Now** to stamp the current time, or type the exact
106
- `HH:MM:SS` into the finish-time field. **Clear** undoes a finish.
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