-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathmanual.html
721 lines (648 loc) · 30.4 KB
/
manual.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="Author" content="Michael Kappert">
<title>VR Dashboard manual</title>
<style>
body {
background-color: black;
color: white;
font-family: Arial, Helvetica, sans-serif;
font-size: 15px;
}
img {
max-width: 100%;
height: auto;
}
p, li {
max-width: 800px;
height: auto;
}
.code {
background-color: lightgrey;
border: 2px solid black;
border-radius: 6px;
padding: 6px 6px;
}
.container {
display: grid;
grid-template-columns: 2fr 8fr 2fr;
grid-gap: 0px;
}
.navigation {
background-color: black;
}
.aside {
background-color: black;
}
.main {
background-color: #FAFEFA;
color: #303020;
padding: 20px 40px;
}
</style>
</head>
<body>
<div class="container">
<div class="navigation"></div>
<div class="main">
<div id="contents">
<h2>Contents</h2>
<ul>
<li><a href="#installation">Installation</a></li>
<li><a href="#running">Running</a></li>
<li><a href="#reference">Reference</a>
<ul>
<li><a href="#top_bar">Top bar</a></li>
<li><a href="#race_log">Race log</a></li>
<li><a href="#fleet_tab">Fleet</a></li>
<li><a href="#map_tab">Map</a></li>
<li><a href="#raw_log">Raw log</a></li>
<li><a href="#nmea">NMEA output</a></li>
</ul>
</li>
<li><a href="#tips">Tips and tricks</a></li>
<li><a href="#faq">Frequenty Asked Questions</a></li>
<li><a href="#issues">Bugs and known issues</a></li>
<li><a href="#donate">Donate!</a></li>
<li><a href="#about">About</a></li>
</ul>
</div>
<div id="installation">
<h2>Installation</h2>
<p>
Find the extension in <a href="https://chrome.google.com/webstore/detail/vr-dashboard/amknkhejaogpekncjekiaolgldbejjan?hl=en">chrome web store</a> and press 'Add to Chrome'.
Confirm the popup by pressing 'Add extension'. Another popup will inform you that the extension was installed and a <img src="img/z_grey.png"> or <img src="img/z_active.png"> is added in the top right corner.
</p>
<p style="font-size:80%">VR Dashboard runs on Chrome, Chromium and Edge<sup>[<a href="#opera">1</a>]</sup> desktop browsers. Mobile browsers do not allow extensions.
Porting to other browser is difficult if not impossible, due to the lack of Websockets support.</p>
<div id="running">
<h2>Running</h2>
<p>
The extension can only be activated on browser tabs visiting <a href="https://virtualregatta.com">virtualregatta.com</a>. On other web pages, the extension icon remains greyed out.
To activate the extension,
<ul>
<li>
Go to <a href="https://virtualregatta.com">virtualregatta.com</a>
</li>
<li>
Activate the extension.
<p style="font-size:80%"><b>Note:</b><br>
VRDashboard will not start from the VR main page on some versions of Chrome.
If your version is affected, log in to Offshore first (see below). Alternatively you can use Chromium or Edge.
</p>
</li>
<li>
A warning banner will appear above the content pane of Chrome:
<img src="img/debugger_warning.png">
<p>Do <b>not</b> cancel or close the warning. This will disconnect VR Dashboard from the Debugger and it will not receive any game messages.</p>
<p style="font-size: 80%">You can suppress the debugger warning altogether by starting the browser with the <code>--silent-debugger-extension-api</code> command line switch.
The exact way to do this depends on you operating system. Please be aware that the switch affects all extensions.
While VR Dashboard will not harm your computer, other extensions might.</p>
</li>
<li>
Log in to VR Offshore.
<p style="font-size:80%">After a few seconds, your boat name should appear in the top left corner.</p>
</li>
<li>
Click on a race on the VR Offshore page.
<p>The <a href="http://zezo.org" target="_blank">zezo.org</a> router page will open in the background, with your boat position and options set.</p>
<p><b>If the router is not called, press F5 on the VR tab to reload the game.</b>
</li>
</ul>
</p>
<h3>Closing and Reloading</h3>
<p>
VR Dashboard is closed automatically if you close the VR browser tab, but it remains open if you simply navigate away from VR.
</p>
<p>
<b>Reloading</b> the VR Dashboard tab discards all data, but it does not close the tab. VR Dashboard keeps running.<br>
Log off from VR Offshore and log into each race again to re-populate the race list.
</p>
</div>
</div>
<div id="reference">
<h2>UI reference</h2>
<div id="top_bar">
<h3> Top bar</h3>
<img src="img/Topbar_3-14-0.png">
<ul>
<li><b>Boat</b><br>
Displays your boat name.
</li>
<li id="selection"><b>Select Race</b><br>
Switch races by selecting a race from the drop down list.<br>
The drop-down list contains all the races supported by Zezo. Entries are greyed out if you do not participate in that race.
</li>
<li><b>Go</b><br>
Calls the router with your current position and options for the selected race.
</li>
<li><b>Auto router window</b>[on]<br>
If switched on, the router will be called automatically when clicking on a race on the VR Offshore screen.
</li>
<li><b>Reuse tabs</b>[on]<br>
If switched on, routing requests for a race will reuse the previously opened tab. Different races always open in different tabs.
</li>
<li><b>Show track info</b>[off]<br>
If switched on, display infos on each track segment in tooltips on the boat tracks. See <a href="#map_tab">Map</a> section.<br>
Track infos are only displayed for followed boats.
<p><b>Warning:</b><br>Enabling this switch may cause VR Dashboard to become unresponsive or sluggish if you are following many boats.</p>
</li>
<li><b>Local times</b>[off]<br>
If switched on, timestamps are displayed in the browser's local timezone. If switched off, timestamps are displayed in the UTC timezone.
</li>
<li><b>NMEA</b>[off]<br>
If switched on, NMEA messages are send to the specifed port at localhost. Use the povided NMEA proxy to forward messages to your NMEA software.
See <a href="#nmea">NMEA output</a> on how to make the messages available to your NMEA softare.<br>
</li>
<li><b>Version</b><br>
Displays the installed version. If an update is available, it is installed automatically at the next browser restart.
</li>
</ul>
</div>
<div name="races_overview">
<h3>Race overview table</h3>
<p>This table displays the current boat status for each race you are participating.
Selecting a race by clicking the corresponding row switches the <a href="#selection">race selection</a> drop-down and the <a href="#tabs">tabs</a> to this race.</p>
<img src="img/raceoverview.png">
<p style="font-weight:bold">Explanation of columns</p>
<ul>
<li><b>RT</b><br/>Router. Request a routing for the corresponding race.
</li>
<li><b>PL</b><br/>Polars. Open toxcct's <a href="http://toxcct.free.fr/polars/" target="_blank">Polars page</a> for the corresponding race.
</li>
<li><b>WI</b><br/>Windy. Open <a href="http://windy.com" target="_blank">windy.com</a> with the corresponding boat position.
</li>
<li><b>Race</b><br/>Race name
</li>
<li><b>Rank</b><br/>One of several rankings reported by VR. Usually somewhat inconsistent.
</li>
<li><b>DTL</b><br/>Distance to leader
</li>
<li><b>DTF</b><br/>Distance to finish
</li>
<li><b>Position</b><br/>Boat position
</li>
<li><b>HDG</b><br/>Boat heading. Set in bold if the boat is in heading mode.
</li>
<li><b>TWA</b><br/>True wind angle. Set in bold if boat is in TWA<sup>[<a href="#twa">2</a>]</sup> mode. Green color if the boat is on starboard tack, red on port tack.
</li>
<li><b>TWS</b><br/>True wind speed at the boat position as reported by the server.<br>
The game UI uses its own source of wind information, which is sometimes out of sync with the game server.
</li>
<li><b>TWD</b><br/>True wind direction at the boat position as reported by the server.<br>
As for TWS, the game UI sometimes displays differing (incorrect) values.
</li>
<li><b>aSail</b><br/>Current sail and auto sail indication.<br>
Red background means the sail is not the best possible sail.<br>
Sail names are abbreviated:
<b>LJ</b>: Light Jib, <b>LG</b>: Light Gennaker,
<b>STAY</b>: Staysail, <b>HG</b>: Heavy Gennaker,
<b>C0</b>: Code Zero.<br>
</li>
<li><b>Speed</b><br/>Current boat speed in knots
</li>
<li><b>VMG</b><br/>Velocity Made Good (speed component directly towards or away from wind)
</li>
<li><b>Best VMG</b><br/>Best upwind and downwind VMG achievable at current wind speed
</li>
<li><b>Options</b><br/>Options your boat is equipped with in this race (light wind sails, foils etc.)
</li>
<li><b>Agnd</b><br/>Boat is aground
</li>
<li><b>Mnvr</b><br/>Boat is maneuvering
</li>
<li><b>Last Command</b><br/>Most recent command accepted by the server in this race.<br>
<p style="font-weight:bold">Examples:</p>
First row: two programmed TWA changes with scheduled execution times; second row: immediate sail change<br><img src="img/column_lastcommand_2.png">
</li>
</ul>
</div>
<div name="tabs_section" id="tabs">
<h3>Tabs</h3>
<p>The following tabs display more detailed information pertaining to the race selected in the race overview table. Select a tab by clicking on its name.</p>
<div id="race_log">
<h4>RACE LOG tab</h4>
<p>This table contains the boat status history for the race selected in the race overview, along with value computed by VR Dashboard (vC, vT, Foils - see below).</p>
<img src="img/tab_racelog.png">
The first column <b>Time</b> contains the timestamp of the server message.
Columns <b>Rank</b>, <b>DTL</b>, <b>DTF</b>, <b>Position</b>, <b>HDG</b>, <b>TWA</b>, <b>TWS</b>, <b>TWD</b> and <b>aSail</b> correspond to the Race Overview columns.
Column <b>vR (kn)</b> is <b>Speed</b> in the Race Overview (boat speed reported by the server).<br>
The remaining columns are:
<ul>
<li><b>vC (kn)</b><br/>Computed speed (in knots).
<p style="font-size:85%">VR Dashboard attempts to verify the boat speed reported by the server using the elapsed time, previous and current position which are also (directly or indirectly) reported by the server.
It attempts to take course changes into account. If this value differs from vR, it <em>may</em> mean that the server is doing something odd
(which it did in the past but usually, VR Dashboard is in error).</p>
<p>If the value differs from vR, it is displayed with a red background.</p>
</li>
<li><b>vT (kn)</b><br/>Theoretical speed (in knots).
<p>This is the speed your boat could achieve, using the best sail available. VR Dashboard computes it using the TWA, TWS, available sails and options reported by the server.
The best sail is indicated in parenthesis.
</p>
</li>
<li><b>Foils</b><br/>Percentage of foils efficiency
</li>
<li><b>Δd (nm)</b><br/>Distance sailed since last status message
<p>When not sailing with the best available sail this column displays the theoretical distance using the optimal sail:<br>
<img src="img/racelog_badsail.png"><br>
In the above case, Jib was better than the selected Light Jib. Code0 would probably be even faster, but the boat did not have the 'reach' option.
</p>
</li>
<li><b>Δt (s)</b><br/>Elapsed time since last status message
<p>The VR server usually sends status updates approximately every 5min.
</p>
<p style="font-size:85%">
The delta is sometimes zero or even negative. A zero delta often occurs if you switch back to the race in the game UI.<br>
Negative values <em>could</em> to be indication of messages from another server (assuming VR uses load balancing).
The effect may be related to lost commands, but there is no conclusive proof yet.
In any case, <b>be sure to check your course</b> if duplicate status messages occur!
</p>
</li>
<li><b>Sail</b>, <b>Gybe</b>, <b>Tack</b><br/> Sail change, tacking or gybing penalty in effect, with the remaining time indicated.
</li>
<li><b>Commands</b><br/>
<p>Each command issued by the user <em>and acknowledged by the server</em> is displayed in the race log.</p>
<p>There is no separate column in the race log table, but <b>Rank</b> and <b>Position</b> are used as shown below.</p>
<img src="img/tab_racelog_3.png">
<p>The <code>Command @</code>time is the time when the command was issued. The <b>Time</b> columns shows when the command will be executed.<br>
</p>
</li>
</ul>
</div>
<div id="fleet_tab">
<h4>FLEET tab</h4>
<p>This tab displays information about your followed players and players of various other categories as selected by VR.
Click on a category in the <code>Filters</code> box to toggle the displaying of boats in this category.<br>
Some information (like a player's start time in a record race) is only available on the player's 'UserCard'.
The UserCard is only transmitted on request, by clicking on the respective boat in the game UI.
</p>
<p>
The <b>FLEET</b> tab has three additional columns <b>Start Date</b>, <b>ERT</b> and <b>avgS</b> when displaying a record race.<br>
The table can by sorted by Skipper, Rank, DTF, DTU, Sail, State, HDG, TWA, TWS or Speed by clicking on the column header.
</p>
<p>
<b>Note:</b> If VR Dashboard is activated after opening the VR Offshore page, VR Dashboard has no information which races are record races
and the above columns will not be displayed. Re-enter VR Offshore to fix this.
</p>
<p>
<b>Note:</b> Your own boat is displayed in the table in red color.
However if you log on to VR Offshore before starting VR Dashboard, it does not know your user name. In this case 'me' is displayed instead of your user name.
</p>
<img src="img/tab_fleet_3.png">
<ul>
<li><b>RT</b><br/>Call router for this player
<p>Your own boat's options are used. Reuses the router tab if 'Reuse tabs' is checked.</p>
</li>
<li><b>Skipper</b><br/>Player name
</li>
<li><b>Start Date</b><br/>Only in record races.
</li>
<li><b>ERT</b><br/>Estimated race time. Only in record races.
<p>VRDashboard estimates the overall race time based on the average speed achieved since the start.
It uses the elapsed time, distance from start and distance to finish provided in the VR server 'UserCard' message.</p>
</li>
<li><b>avgS</b><br/>Average speed since the start. Only in record races.
</li>
<li><b>Last Update</b><br/>Time of last (periodic) update.
<p>Opponent data is updated from the server when you enter a race, or individually if you click on a boat.<br>
This timestamp refers to the time when the server last computed the current boat position.</p>
<p>Please note that <b>ERT</b> and <b>avgS</b> are only updated if you click on the boat in the game UI, as they depend on the UserCard message.</p>
</li>
<li><b>Rank</b><br/>Player's current rank
</li>
<li><b>DTF</b><br/>Distance to finish
<p>DTF is available from a player's User Card. If you did not request the User Card yet, VR Dashboard instead displays the great circle distance to the finish (in parenthesis).</p>
</li>
<li><b>DTU</b><br/>Distance to 'us'
</li>
<li><b>BRG</b><br/>Bearing from 'us'
<p>Negative bearing means the other boat is astern of yours.<br>
The bearing can used to tell if you are going to cross in front of an opponent when you are on opposite tacks:<br>
If the bearing diminishes, you are in front.
</p>
</li>
<li><b>Sail</b><br/>Sail used by opponent boat.
</li>
<li><b>State</b><br/>One of racing, waiting or finished.
</li>
<li><b>Position</b><br/>
</li>
<li><b>HGD</b>, <b>TWA</b>, <b>TWS</b>, <b>Speed</b><br/>
Heading, true wind angle, true wind speed and boat speed
</li>
<li><b>Factor</b><br/>
The boat's current speed factor over a no-options boat.
</li>
<li><b>Foils</b><br/>
Indicates boat's current the foil benefit.<br>
'no' is displayed if the boat is in foiling conditions but has no foils.<br>
'?' is displayed if the boat is not in foiling conditions (and therefor, VR Dashboard cannot determine if the boat has foils).
</li>
<li><b>Options</b><br/>
If the UserCard for the boat is available, displays the boat's options (sails, foils, hull etc.).<br>
Remember that the UserCard is retrieved by clicking on the boat in the game UI.
</li>
</ul>
<p><b>Note:</b>
VR Dashboard does not store UserCards or any other information about boats when terminated.
</p>
</div>
<div id="map_tab">
<h4>MAP tab</h4>
<p>The map displays all boats reported by VR, including your own. It also displays the race gates and the location of your waypoints. If present in the race, the ice limit is displayed as rhumb line segments.</p>
<p>For record races, the map displays the leader ghost track and the ghost track of your own best try.</p>
<p>
Hovering the mouse over a mark displays its position (latitude/longitude) and other mark properties.
</p>
<img src="img/Map_3-12-3.png">
<p><b>Please note:</b>
<ul>
<li>
The position of the waypoints w.r.t. land features <b>can not be relied upon</b>. Do not use the map to position waypoints close to land features. VR uses a different map than VR Dashboard.
</li>
<li>
However, waypoints are displayed correctly relative to the position of race marks.<br>
</li>
</ul>
</p>
<p>
<b>Gates</b></br>
Gates and buoys are called checkpoint in VR. A checkpoint may consist of one ore more gates.
All gates of a checkpoint are displayed in the same color (of the dashed line between the port and starboard mark).
You need to pass only one gate of a checkpoint.
<ul>
<li>Gate is displayed in bright color if not passed yet<br><img src="img/map_gate_not_passed.png"></li>
<li>Passed gate appears dimmed<br><img src="img/map_gate_passed.png"></li>
</ul>
</p>
<p>
<b>Gate/buoy tooltip</b><br>
The tooltip displays the checkpoint number followod by a '.' and a buoy counter, whether to leave to port or starboard, name (if any), position, and wether the mark was passed.
<ul>
<li>Example 1<br>
<img src="img/map_tooltip_checkpoint_port.png">
</li>
<li>Example 2<br>
<img src="img/map_tooltip_checkpoint_passed_1.png">
</li>
</ul>
</p>
<p>
<b>Boat tooltip</b><br>
Displays name, heading, TWA and speed. Displays elapsed race time of user if boat was clicked on the VR map (UserCard is available).
<ul>
<li>Example: Boat in normal race<br>
<img src="img/map_tooltip_boat_norecord.png">
</li>
<li>Example: Boat in record race, User Card not available<br>
<img src="img/map_tooltip_boat_record_1.png">
</li>
<li>Example Boat in record race, User Card available<br>
<img src="img/map_tooltip_boat_record_2.png">
</li>
</ul>
</p>
<p>
<b>Track tooltips</b>
If <code>Show track info</code> is enabled, tracks of followed boats are decorated with black dots.
The dots have tooltips with the following information:
<ul>
<li>boat name
</li>
<li>timestamp
</li>
<li>boat speed<br>
Calculated from the track point position and timestamp w.r.t. previous point.
</li>
<li>tag indicating the action performed at this point (as provided by the VR server).
<ul>
<li>t - no action</li>
<li>hdg - manual heading change</li>
<li>twa - manual TWA change</li>
<li>hdg-prg - programmed heading change</li>
<li>twa-prg - programmed TWA change</li>
<li>wp - waypoint</li>
</ul>
</li>
</ul>
</p>
</div>
<div id="raw_log">
<h4>RAW LOG tab</h4>
<img src="img/tab_rawlog.png">
<p>If <code>Log messages</code> is checked, all Websocket messages sent and received by the game UI are logged.<br> Messages are in JSON format.
Incoming messages are prefixed <code><<<</code>, outgoing messages are prefixed <code>>>></code><br>
</p>
<p><b>How to retrieve boat polars</b><br>
Boat polars are transmitted in the response to the "Meta_GetPolar" request. The game UI sends this request when you enter a race for the first time after logging on to VR Offshore.
<ul>
<li>Switch on message logging</li>
<li>Log on to VR Offshore</li>
<li>Enter the desired race</li>
<li>Locate the outgoing message starting with <code>{"@class":".LogEventRequest","eventKey":"Meta_GetPolar"</code> and note its <code>requestId</code>.</li>
<li>Locate the corresponding LogEventResponse (usually it is on the next line but sometimes may be found further down).</li>
<li>Mark whole line by triple-clicking it and press Ctrl-c to copy the line.</li>
</ul>
</div>
<div id="nmea">
<h4>NMEA output</h4>
<p>VRDashboard can generate NMEA output. A HTTP to telnet proxy is required because the Chrome extension itself can only use HTTP, while NMEA devices use Telnet.
The NMEA proxy is included in the VRDashboard source. It requires Python3 and can also be obtained <a href="http://bitweide.de/vrdashboard/nmea_proxy.py">here</a>
</p>
<p><b>Installation</b><br>
<ul>
<li>Install Python3
<ul>
<li>Windows<br> Please check the Microsoft App store or download the installer <a href="https://www.python.org/downloads/windows/">here</a>
</li>
<li>Linux<br>
Please follow the instructions for your distribution or download the tarball <a href="https://www.python.org/downloads/">here</a>
</li>
</ul>
</li>
<li>Either
<ul>
<li>Download <a href="http://bitweide.de/vrdashboard/nmea_proxy.py">nmea_proxy.py</a> and copy it to a directory of your choice (referred to as NMEA_PROXY below)
</li>
<li>Or use the VRDashboard source directory</li>
</ul>
</li>
</ul>
<p><b>Usage</b><br>
<ul>
<li>Start the NMEA proxy<br>
Open a command shell, change to the directory where the NMEA proxy is located and run it. The script should print the port it is listening on:<br>
<div class="code">
<code>
$ cd NMEA_PROXY<br>
$ python3 nmea_proxy.py --port 8081 --outport 10000<br>
INFO:root:Creating Server<br>
INFO:root:httpd listening on port 8081<br>
</code>
</div>
The proxy always listens on localhost. This is the only host the Chrome extension can use.<br>
Outbound TCP ports are created by adding the race number (e.g. 440) to the outport number. It defaults to 10000.
<p>
You can select the outgoing interface using the --bind parameter (0.0.0.0 for all interfaces):
<div class="code">
<code>
$ cd NMEA_PROXY<br>
$ python3 nmea_proxy.py --bind inteface_ip <br>
INFO:root:Creating Server<br>
INFO:root:httpd listening on port 8081<br>
</code>
</div>
</li>
<li>Start VRDashboard and switch on NMEA output.<br>
After a while, you should see messages like below:<br>
<div class="code">
<code>
Creating socket for race ID 461<br>
Creating socket for race ID 434<br>
</code>
</div>
where the numbers correspond to the active races listed in the race selector.
<p>Note: The sockets are created only when the first message is received. This may take up to 5min.</p>
</li>
<li>Connect your NMEA software to localhost, TCP port <code>10nnn</code> where <code>nnn</code> is there race ID.<br>
You should see connection messages like below:<br>
<div class="code">
<code>
Accepted connection on port 10434<br>
Connection lost on port 434, closing.<br>
Accepted connection on port 10461<br>
Accepted connection on port 10434<br>
</code>
</div>
</li>
<li>
VRDashboard sends a GNRMC and INMWV message once per second:
<div class="code">
<code>
$ telnet localhost 10434<br>
Trying 127.0.0.1...<br>
Connected to localhost.<br>
Escape character is '^]'.<br>
$GNRMC,192516,A,3343.3213,N,17709.3002,W,14.3,287.2,050620,,,A*41<br>
$INMWV,099.86,T,07.61,N,A*02<br>
...
</code>
</div>
</li>
</ul>
</div>
</div>
</div>
<div id="tips">
<h2>Tips and tricks</h2>
<h3>Fine-tuning TWA</h3>
The command log (in the <b>RACE LOG</b> table) can help you to fine-tune TWA.
<ol>
<li>Select the desired program step in game UI</li>
<li>Switch to heading mode, move the programmed time forward or backward and switch back to TWA mode</li>
<li>Observe the TWA value in the Dashboard</li>
<li>Repeat steps 2-3 until the desired fractional TWA is reached</li>
</ol>
To fine-tune heading instead of TWA, move the programmed time while switched to TWA mode.
<h3>Superseding commands</h3>
<p>Notice that commands are always executed on the full minute. This allows you sometimes to undo a command issued by mistake,
or to avoid double penalties by performing a gybe or tack and a sail change at the same minute.</p>
</div>
<div id="issues">
<h2>Bugs and known issues</h2>
<p>Please report bugs to [email protected] or submit as a 'Problem' in
the <a href="https://chrome.google.com/webstore/detail/vr-dashboard/amknkhejaogpekncjekiaolgldbejjan?hl=en">chrome web store</a>.
You can also submit questions and suggestions in the web store.</p>
<ol>
<li>The first entry in the race overview table only appears when the <em>second</em> message is received. </li>
<li>Reloading the Dashboard tab closes it and disconnects the Dashboard.</li>
<li>The map should resize automatically to fit the race course, but there is still a bug in the resizing logic. Click on the selected race again to force resizing.</li>
<li>'Elapsed time' display in boat tooltip is meaningless in normal race</li>
</ol>
</div>
<div id="faq">
<h2>Frequently asked questions</h2>
<ul>
<li>I have installed VR Dashboard but there is no Z icon?
<p>Click the plugin icon in the top right corner of your browser. You should see a VR Dashboard entry there. You can start it from there, or pin it to the task bar.</p>
</li>
<li>Race xxx is not available from the race selection drop-down?
<p>Cvetan may not have set up a router for the race yet. Please ask (politely) on the zezo.org <a href="http://zezo.org/forum.pl">forum</a>.</p>
</li>
<li>Race selection is empty?
<p>
<ul>
<li>Please check that you are not blocking <a href="http://zezo.org">zezo.org</a> (check your firewall/virus scanner/proxy, especially in a company network).</li>
</ul>
</p>
</li>
<li>VR Dashboard does not start from the VR main page. There is an error alert, or the Dashboard tab opens and closes immediately.
<p>This seems to be a Chrome bug. Either use Chromium, or try one of the following workarounds:
<ul>
<li>Start VR Dashboard <em>immediately</em> after navigating to the VR main page (while the page is still loading)</li>
<li>Log on to VR Offshore, and start VR Dashboard immediately</li>
</ul>
</p>
</li>
<li>VR Dashboard isn't working / has stopped working?<br>
Some table cells are empty/only display a '-'?<br>
My boat name is not displayed?<br>
No race are listed?
<p>
<ul>
<li>
Please be sure to activate the Dashbaord <em>before</em> you log on to VR Offshore as described <a href="#running">above</a>.
It is necessary to follow this sequence because VR sends some information that VR Dashboard requires immediately after you log in and after your first join a race.
</li>
<li>
Do not cancel or close the Debugger warning banner. VR Dashboard requires the debugger for intercepting the game messages.
</li>
</ul>
</p>
</li>
<li>The <img src="img/zicon.png" height="16" width="16"> button remains greyed out, I can't start VR Dashboard?<br>
<p>
VR Dashboard is only active on the game homepage <a href="https://virtualregatta.com">virtualregatta.com</a>. Some big regattas (like Vendee Globe, Ocean Race)
make the game available on their sites, but you can't activate the extension on these site. Head over to the VR Offshore homepage and join the race from there.
</p>
</li>
<li>Can you please add <your favorite feature> to VRDashboard?
<p>
Probably yes, but I only have limited time and I might reject your request if it's too much work,
and especially if it involves adding columns to one of the tables. The Dashboard UI looks quite crowded already.<br>
Btw, the VR Dashbaord source code is <a href="https://github.com/mak08/VRDashboard.git">available on Github</a>.
</p>
</li>
</ul>
</div>
<div id="donate">
<h2>Donate!</h2>
<p>
If you like VR Dashboard, feel free to make a small donation to the maintainer ([email protected]) to keep things going!
</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
<input type="hidden" name="cmd" value="_s-xclick" />
<input type="hidden" name="hosted_button_id" value="ZUPP95R3A3686" />
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif" border="0" name="submit" title="Donate to VR Dashboard" alt="Donate with PayPal button" />
<img alt="" border="0" src="https://www.paypal.com/en_DE/i/scr/pixel.gif" width="1" height="1" />
</form>
</div>
<div id="about">
<h2>About</h2>
VRDashboard was created by Cvetan Ivanov (Big Bird @ zezo.org) and Michael Kappert (Hardtack fka Raumzeit aka mak08).<br>
The map was contributed by Patrick Guelat (Xeelee).<br>
Further contributions were made by Romain Le Lamer (GeGaX), Nicolas Guittet (toxcct) and Guy Juy (mcmgj).
</div>
<div id="footnotes" style="font-size:85%">
<h2>Footnotes</h2>
<div id="opera">[1] There is a compatibility plugin for the Opera browser which allows Chrome extensions to run in Opera.</div>
<div id="twa">[2] TWA: True wind angle, the angle between boat heading and wind direction.</div>
</div>
</div>
<div class="aside">
</div>
</div>
</body>
</html>