Sailwatch

Sailwatch is a simple tool for executing starts using rule 26 with 5-4-1-0 intervals and taking finish times. It takes the wall clock time as references. Moreover, it might not respond as fast as a hardware clock, since it is a web-app - but good enough for club races.
Jump to the topics:

Usage

Per default, it displays the registered events from today. The "earlier" button at the top allows the loading of previous events. All events are stored locally on the mobile device. They can be shared using "share" in the settings. The button table icon turns the separate entries into tables with headers.

Important note

This app is not intended to be used in an important race situation! The timing might be off by a few seconds. This is due to the app being a web application. Web browsers do not support alarms at fixed times. When the browser goes into the background, the correct timing is lost. This web application tries to keep the app awake until all future starts are signaled. Moreover, the mobile devices take their time from the network, while computers might get their from different sources.

Start

Registering a start

The icon start icon opens a dialog for registering a start. A few Suggestions for start times are shown, starting 330 seconds after now or the latest registered event. Similarly, fleets to start can be selected. New fleets can be added using the input field. It is possible to schedule starts many hours in advance.

Start procedure

About 30 seconds before the first signal (rule 26 warning signal), the current starts gets an orange frame and displays more information:
Start at wall time of planned start fleets
start in time left to start current time
flag in time left to next signal which signal
The following signals are displayed:
5 min before start Warning signal Class flag up beeps last 5 seconds
4 min before start Preparatory signal Flag P up beeps last 5 seconds
1 min before start one-minute signal Flag P down beeps last 5 seconds
at start Start signal Class flag down beeps last 15 seconds
During the start, the icon flag ap is shown below the table. Pressing the icon aborts the start and adds a note about it to the content. For 30 seconds after the start, the flags flag X and recall flag are shown. Pressing the flag X adds a note, while pressing the recall flag recalls the start, i.e. adds a note and removes the start.

Finish

The icon finish icon always hovers at the lower left corner. It can be pressed at any time and adds an entry for that finish, showing a table row:
clock time - sn - -fleet-
Clicking anywhere on that row opens a dialog, where one can enter the sailnumber and also add the fleet. That information is used at the end to display the sailed time.

Note

Pressing the note icon note icon adds an empty note. One can edit any note and it will be saved after a few seconds of inactivity. Moreover, removing the text will remove the note.

Settings

Pressing the icon sailwatch icon opens the setting dialog. On top is the link to this help page.

Share and import

The 2 fields are buttons and initiate the share/export of the displayed events or the import from file. Share creates a datafile from the content and opens the share dialog. Here, the user can send the content to others via bluetooth, email, social apps or similar. Import loads the content of a datafile into the app.

Notifications

Notifications should have the value "granted". If it says "requesting", but no request is shown, then one needs to go into system settings, apps and permission and then allow notifications. Notifications are used to get the app into foreground - a few seconds before each signal.

Latest ping

This app makes use of a service worker to cache files and also ensures that starts are carried out. The value indicates the time when the last message of the service worker was received. It should be quite recent.

Version

It presents the version of the app - the github commit hash as a hex string. Then the app can work in offline mode. Or it shows the text "bypass". In the latter case, all files are retrieved from the network - hence delays might occure.

Danger zone

Delete events

One can select a date and by tapping the right field, all events before that date are deleted.

Other information

At the lower end, the origin of the app and user agent are shown.

Browser limitations

About the App

I programmed the app as an exercise in Web frontend development. It is a progressive web application, which can be installed as an app and caches files to be served when offline. Moreover, all registered events like start, notes, finishes are stored locally on the mobile device using IndexedDB. It does not work with the DuckDuckGo browser, since it has limited support for the functions I am using.
Source code on github