2020-04-09 23:09:33 -06:00
|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html>
|
2020-05-01 15:07:09 -06:00
|
|
|
|
<head>
|
|
|
|
|
<title>Vail</title>
|
|
|
|
|
<meta charset="utf-8">
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
|
|
|
|
|
|
|
<!-- Material Design Lite -->
|
|
|
|
|
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
|
|
|
|
|
<link rel="stylesheet" href="https://code.getmdl.io/1.3.0/material.teal-purple.min.css">
|
|
|
|
|
<script defer src="https://code.getmdl.io/1.3.0/material.min.js"></script>
|
|
|
|
|
|
|
|
|
|
<!-- Vail stuff -->
|
2020-05-26 20:52:48 -06:00
|
|
|
|
<link rel="manifest" href="manifest.json">
|
|
|
|
|
<link rel="icon" href="vail.png" sizes="256x256" type="image/png">
|
|
|
|
|
<link rel="icon" href="vail.svg" sizes="any" type="image/svg+xml">
|
2021-04-26 16:09:03 -06:00
|
|
|
|
<script type="module" src="vail.mjs"></script>
|
2020-05-01 15:07:09 -06:00
|
|
|
|
<link rel="stylesheet" href="vail.css">
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
<div class="mdl-layout mdl-js-layout">
|
|
|
|
|
<header class="mdl-layout__header mdl-layout__header--scroll">
|
|
|
|
|
<div class="mdl-layout__header-row">
|
|
|
|
|
<!-- Title -->
|
|
|
|
|
<span class="mdl-layout-title">Vail</span>
|
|
|
|
|
<!-- Add spacer, to align navigation to the right -->
|
|
|
|
|
<div class="mdl-layout-spacer"></div>
|
|
|
|
|
<!-- Navigation -->
|
|
|
|
|
<nav class="mdl-navigation">
|
2021-10-21 20:50:53 -06:00
|
|
|
|
<a class="mdl-navigation__link" href="https://github.com/nealey/vail">Source Code</a>
|
2020-05-01 15:07:09 -06:00
|
|
|
|
</nav>
|
|
|
|
|
</div>
|
|
|
|
|
</header>
|
|
|
|
|
|
|
|
|
|
<div class="mdl-layout__drawer">
|
|
|
|
|
<span class="mdl-layout-title">Repeaters</span>
|
|
|
|
|
<nav class="mdl-navigation">
|
2022-04-21 21:26:19 -06:00
|
|
|
|
<a class="mdl-navigation__link" href="#">General</a>
|
2022-04-19 22:45:31 -06:00
|
|
|
|
<a class="mdl-navigation__link" href="#1">Channel 1</a>
|
|
|
|
|
<a class="mdl-navigation__link" href="#2">Channel 2</a>
|
|
|
|
|
<a class="mdl-navigation__link" href="#3">Channel 3</a>
|
2020-05-01 15:07:09 -06:00
|
|
|
|
</nav>
|
|
|
|
|
<hr>
|
2021-04-27 18:37:25 -06:00
|
|
|
|
<span class="mdl-layout-title">Local Practice</span>
|
|
|
|
|
<nav class="mdl-navigation">
|
2021-04-28 14:28:59 -06:00
|
|
|
|
<a class="mdl-navigation__link" href="#Echo">Echo</a>
|
|
|
|
|
<a class="mdl-navigation__link" href="#Fortunes">Fortunes</a>
|
|
|
|
|
<a class="mdl-navigation__link" href="#Fortunes: Pauses ×2">Fortunes (slow)</a>
|
|
|
|
|
<a class="mdl-navigation__link" href="#Fortunes: Pauses ×4">Fortunes (very slow)</a>
|
|
|
|
|
<a class="mdl-navigation__link" href="#Fortunes: Pauses ×6">Fortunes (very very slow)</a>
|
|
|
|
|
<a class="mdl-navigation__link" href="#Fortunes: Pauses ×10">Fortunes (crazy slow)</a>
|
2021-04-27 18:37:25 -06:00
|
|
|
|
</nav>
|
2021-04-28 14:28:59 -06:00
|
|
|
|
<hr>
|
2022-04-24 17:13:56 -06:00
|
|
|
|
<span class="mdl-layout-title">Resources</span>
|
2021-04-27 12:42:06 -06:00
|
|
|
|
<nav class="mdl-navigation">
|
2022-04-30 08:49:03 -06:00
|
|
|
|
<a class="mdl-navigation__link" href="https://github.com/nealey/vail/wiki" target="_blank">Wiki</a>
|
|
|
|
|
<a class="mdl-navigation__link" href="https://discord.gg/GBzj8cBat7" target="_blank">Discord</a>
|
2020-05-01 15:07:09 -06:00
|
|
|
|
</nav>
|
|
|
|
|
</div>
|
2020-05-17 12:52:25 -06:00
|
|
|
|
|
|
|
|
|
<div id="snackbar" class="mdl-js-snackbar mdl-snackbar">
|
|
|
|
|
<div class="mdl-snackbar__text"></div>
|
|
|
|
|
<button class="mdl-snackbar__action" type="button"></button>
|
|
|
|
|
</div>
|
2020-05-01 15:07:09 -06:00
|
|
|
|
|
|
|
|
|
<main class="mdl-layout__content">
|
|
|
|
|
<div class="flex">
|
2022-04-26 11:55:43 -06:00
|
|
|
|
<div class="mdl-card mdl-shadow--4dp input-methods mashable-area">
|
2021-04-27 12:42:06 -06:00
|
|
|
|
<div id="recv">
|
|
|
|
|
<!-- This div appears as a little light that turns on when someone's sending -->
|
|
|
|
|
<i class="material-icons" id="muted">volume_off</i>
|
|
|
|
|
</div>
|
2020-05-01 15:07:09 -06:00
|
|
|
|
<div class="mdl-card__title">
|
2020-06-01 19:55:28 -06:00
|
|
|
|
<h2 class="mdl-card__title-text">
|
2021-04-27 12:42:06 -06:00
|
|
|
|
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
|
|
|
|
|
<input class="mdl-textfield__input" type="text" id="repeater" list="repeater-list">
|
|
|
|
|
<datalist id="repeater-list">
|
2022-04-21 21:26:19 -06:00
|
|
|
|
<option value="">General</option>
|
2022-04-19 22:45:31 -06:00
|
|
|
|
<option value="1">Channel 1</option>
|
|
|
|
|
<option value="2">Channel 2</option>
|
|
|
|
|
<option value="3">Channel 3</option>
|
|
|
|
|
<option value="Null">Null (dummy load)</option>
|
2021-04-28 14:28:59 -06:00
|
|
|
|
<option>Echo</option>
|
|
|
|
|
<option>Echo 5s</option>
|
|
|
|
|
<option>Echo 10s</option>
|
2021-04-27 18:37:25 -06:00
|
|
|
|
<option>Fortunes</option>
|
2021-04-28 14:28:59 -06:00
|
|
|
|
<option>Fortunes: Pauses ×2</option>
|
|
|
|
|
<option>Fortunes: Pauses ×4</option>
|
|
|
|
|
<option>Fortunes: Pauses ×8</option>
|
2021-04-27 12:42:06 -06:00
|
|
|
|
</datalist>
|
|
|
|
|
<label class="mdl-textfield__label" for="repeater">Repeater</label>
|
|
|
|
|
</div>
|
2020-06-01 19:55:28 -06:00
|
|
|
|
</h2>
|
2020-05-01 15:07:09 -06:00
|
|
|
|
</div>
|
2021-04-28 10:17:23 -06:00
|
|
|
|
<output id="note"></output>
|
2022-04-24 17:13:56 -06:00
|
|
|
|
|
|
|
|
|
<div id="charts">
|
2022-04-24 19:42:57 -06:00
|
|
|
|
<canvas class="chart" id="rxChart" data-color="orange"></canvas>
|
|
|
|
|
<canvas class="chart" id="txChart" data-color="teal"></canvas>
|
2022-04-24 19:24:56 -06:00
|
|
|
|
<canvas class="chart" id="ditChart" data-color="olive"></canvas>
|
|
|
|
|
<canvas class="chart" id="dahChart" data-color="purple"></canvas>
|
2022-04-24 17:13:56 -06:00
|
|
|
|
</div>
|
|
|
|
|
|
2020-05-01 15:07:09 -06:00
|
|
|
|
<div class="mdl-tabs mdl-js-tabs mdl-js-ripple-effect">
|
|
|
|
|
<div class="mdl-tabs__tab-bar">
|
2022-03-31 12:40:45 -06:00
|
|
|
|
<a href="#straight" class="mdl-tabs__tab is-active" data-singlekey="straight">Straight Key</a>
|
|
|
|
|
<a href="#iambic" class="mdl-tabs__tab" data-singlekey="iambic">Iambic</a>
|
2020-05-01 15:07:09 -06:00
|
|
|
|
<a href="#tools" class="mdl-tabs__tab">Tools</a>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="mdl-tabs__panel is-active" id="straight">
|
|
|
|
|
<table class="center wide">
|
|
|
|
|
<tr>
|
2020-05-20 22:56:22 -06:00
|
|
|
|
<td colspan="2">
|
2020-05-01 15:07:09 -06:00
|
|
|
|
<button id="key" class="key mdl-button mdl-js-button mdl-button--raised mdl-button--colored">
|
|
|
|
|
Key
|
|
|
|
|
</button>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2020-05-20 22:56:22 -06:00
|
|
|
|
<td>
|
|
|
|
|
<i class="material-icons" role="presentation">keyboard</i>
|
|
|
|
|
</td>
|
2020-05-01 15:07:09 -06:00
|
|
|
|
<td>
|
2020-05-19 08:21:33 -06:00
|
|
|
|
<kbd>c</kbd>
|
|
|
|
|
<kbd>,</kbd>
|
|
|
|
|
<kbd>Enter</kbd>
|
2020-05-20 22:56:22 -06:00
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>
|
|
|
|
|
<i class="material-icons" role="presentation">gamepad</i>
|
|
|
|
|
</td>
|
|
|
|
|
<td>
|
2021-04-26 16:09:03 -06:00
|
|
|
|
<img class="gamepad b0" title="Gamepad Bottom Button" src="b0.svg" alt="Bottom button">
|
|
|
|
|
<img class="gamepad b1" title="Gamepad Right Button" src="b1.svg" alt="Right button">
|
2020-05-01 15:07:09 -06:00
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="mdl-tabs__panel" id="iambic">
|
|
|
|
|
<table class="center wide">
|
|
|
|
|
<tr>
|
2020-05-20 22:56:22 -06:00
|
|
|
|
<td colspan="2">
|
2020-05-01 15:07:09 -06:00
|
|
|
|
<button id="dit" class="key mdl-button mdl-js-button mdl-button--raised mdl-button--colored">
|
|
|
|
|
Dit
|
|
|
|
|
</button>
|
|
|
|
|
</td>
|
2020-05-20 22:56:22 -06:00
|
|
|
|
<td colspan="2">
|
2020-05-01 15:07:09 -06:00
|
|
|
|
<button id="dah" class="key mdl-button mdl-js-button mdl-button--raised mdl-button--colored">
|
|
|
|
|
Dah
|
|
|
|
|
</button>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2020-05-20 22:56:22 -06:00
|
|
|
|
<td>
|
|
|
|
|
<i class="material-icons" role="presentation">keyboard</i>
|
|
|
|
|
</td>
|
2020-05-01 15:07:09 -06:00
|
|
|
|
<td>
|
2020-05-19 08:21:33 -06:00
|
|
|
|
<kbd>.</kbd>
|
2020-05-21 20:38:44 -06:00
|
|
|
|
<kbd>x</kbd>
|
2020-05-20 22:56:22 -06:00
|
|
|
|
</td>
|
|
|
|
|
<td>
|
|
|
|
|
<i class="material-icons" role="presentation">keyboard</i>
|
2020-05-01 15:07:09 -06:00
|
|
|
|
</td>
|
|
|
|
|
<td>
|
2020-05-19 08:21:33 -06:00
|
|
|
|
<kbd>/</kbd>
|
2020-05-21 20:38:44 -06:00
|
|
|
|
<kbd>z</kbd>
|
2020-05-20 22:56:22 -06:00
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>
|
|
|
|
|
<i class="material-icons" role="presentation">gamepad</i>
|
|
|
|
|
</td>
|
|
|
|
|
<td>
|
2021-04-26 16:09:03 -06:00
|
|
|
|
<img class="gamepad b2" title="Gamepad Left Button" src="b2.svg" alt="Left Button">
|
2022-05-04 18:50:24 -06:00
|
|
|
|
<kbd class="gamepad" title="Gamepad Left Shoulder Button">L1</kbd>
|
2020-05-20 22:56:22 -06:00
|
|
|
|
</td>
|
|
|
|
|
<td>
|
|
|
|
|
<i class="material-icons" role="presentation">gamepad</i>
|
|
|
|
|
</td>
|
|
|
|
|
<td>
|
2021-04-26 16:09:03 -06:00
|
|
|
|
<img class="gamepad b3" title="Gamepad Top Button" src="b3.svg" alt="Top Button">
|
2022-05-04 18:50:24 -06:00
|
|
|
|
<kbd class="gamepad" title="Gamepad Right Shoulder Button">R1</kbd>
|
2020-05-01 15:07:09 -06:00
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
2020-05-20 22:56:22 -06:00
|
|
|
|
<tr>
|
|
|
|
|
<td colspan="4" class="mdl-card__supporting-text" style="text-align: center;">
|
2022-05-04 18:50:24 -06:00
|
|
|
|
Second mouse button switches dah and dit
|
2020-05-20 22:56:22 -06:00
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
2020-05-01 15:07:09 -06:00
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="mdl-tabs__panel" id="tools">
|
2021-04-27 17:30:16 -06:00
|
|
|
|
<div class="flex mdl-card__supporting-text">
|
|
|
|
|
<button id="ck" class="mdl-button mdl-js-button mdl-button--raised mdl-button--colored">
|
|
|
|
|
CK
|
|
|
|
|
</button>
|
|
|
|
|
<p>
|
|
|
|
|
Send <code>CK</code> (check) to the repeater, and play when it comes back.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
2022-04-22 18:14:55 -06:00
|
|
|
|
<div class="flex mdl-card__supporting-text">
|
|
|
|
|
<button id="reset" class="mdl-button mdl-js-button mdl-button--raised mdl-button--colored">
|
|
|
|
|
Reset
|
|
|
|
|
</button>
|
|
|
|
|
<p>
|
|
|
|
|
Reset all Vail preferences to default.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
2020-05-01 15:07:09 -06:00
|
|
|
|
</div>
|
2020-05-17 15:34:09 -06:00
|
|
|
|
<div class="mdl-card__actions">
|
|
|
|
|
<button class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored maximize" title="maximize">
|
|
|
|
|
<i class="material-icons mdl-color-text--white" role="presentation">aspect_ratio</i>
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
2020-05-01 15:07:09 -06:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
2021-07-16 10:10:50 -06:00
|
|
|
|
<div class="mdl-card mdl-shadow--4dp">
|
|
|
|
|
<div class="mdl-card__title">
|
|
|
|
|
<h2 class="mdl-card__title-text">Notes</h2>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="mdl-card__supporting-text">
|
|
|
|
|
<textarea class="notes" placeholder="Enter your own notes here"></textarea>
|
2022-04-30 08:49:03 -06:00
|
|
|
|
<a href="https://github.com/nealey/vail/wiki" target="_blank">Vail Wiki</a>
|
2021-07-16 10:10:50 -06:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
2021-07-31 09:17:27 -06:00
|
|
|
|
<div class="mdl-card mdl-shadow--4dp">
|
|
|
|
|
<div class="mdl-card__title">
|
|
|
|
|
<h2 class="mdl-card__title-text">Knobs</h2>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="mdl-card__supporting-text">
|
|
|
|
|
<p>
|
2022-04-19 22:41:09 -06:00
|
|
|
|
Iambic Dit length:
|
2021-07-31 09:17:27 -06:00
|
|
|
|
<output id="iambic-duration-value"></output>ms
|
2022-04-18 15:37:17 -06:00
|
|
|
|
/
|
|
|
|
|
<output id="iambic-duration-wpm"></output> WPM
|
2021-07-31 09:17:27 -06:00
|
|
|
|
<input
|
|
|
|
|
id="iambic-duration"
|
|
|
|
|
class="mdl-slider mdl-js-slider"
|
|
|
|
|
type="range"
|
|
|
|
|
min="40"
|
|
|
|
|
max="255"
|
|
|
|
|
value="100">
|
|
|
|
|
</p>
|
2022-04-19 22:41:09 -06:00
|
|
|
|
<p>
|
|
|
|
|
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="iambic-mode-b">
|
2022-04-22 18:14:55 -06:00
|
|
|
|
<input type="checkbox" id="iambic-mode-b" class="mdl-switch__input">
|
2022-04-19 22:41:09 -06:00
|
|
|
|
<span class="mdl-switch__label">Iambic mode B</span>
|
|
|
|
|
</label>
|
|
|
|
|
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="iambic-typeahead">
|
2022-04-21 14:36:08 -06:00
|
|
|
|
<input type="checkbox" id="iambic-typeahead" class="mdl-switch__input">
|
2022-04-19 22:41:09 -06:00
|
|
|
|
<span class="mdl-switch__label">Iambic typeahead</span>
|
|
|
|
|
</label>
|
|
|
|
|
</p>
|
2021-07-31 09:17:27 -06:00
|
|
|
|
<p>
|
|
|
|
|
Receive delay:
|
|
|
|
|
<output id="rx-delay-value"></output>ms
|
|
|
|
|
<input
|
|
|
|
|
id="rx-delay"
|
|
|
|
|
class="mdl-slider mdl-js-slider"
|
|
|
|
|
type="range"
|
|
|
|
|
min="0"
|
|
|
|
|
max="9999"
|
|
|
|
|
value="4000">
|
|
|
|
|
</p>
|
2022-04-21 18:31:33 -06:00
|
|
|
|
<p>
|
|
|
|
|
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="telegraph-buzzer">
|
|
|
|
|
<input type="checkbox" id="telegraph-buzzer" class="mdl-switch__input">
|
|
|
|
|
<span class="mdl-switch__label">Telegraph sounds</span>
|
|
|
|
|
</label>
|
|
|
|
|
</p>
|
2022-04-24 17:13:56 -06:00
|
|
|
|
<p>
|
|
|
|
|
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="timing-chart">
|
|
|
|
|
<input type="checkbox" id="timing-chart" class="mdl-switch__input">
|
|
|
|
|
<span class="mdl-switch__label">Timing chart</span>
|
|
|
|
|
</label>
|
|
|
|
|
</p>
|
2022-04-21 18:31:33 -06:00
|
|
|
|
<hr>
|
2021-07-31 09:17:27 -06:00
|
|
|
|
<table>
|
|
|
|
|
<tbody>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>
|
|
|
|
|
Suggested receive delay:
|
|
|
|
|
</td>
|
|
|
|
|
<td>
|
|
|
|
|
<output id="suggested-delay-value">0</output>ms
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>
|
|
|
|
|
Average round-trip time:
|
|
|
|
|
</td>
|
|
|
|
|
<td>
|
|
|
|
|
<output id="lag-value">0</output>ms
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>
|
|
|
|
|
Longest recent transmission:
|
|
|
|
|
</td>
|
|
|
|
|
<td>
|
|
|
|
|
<output id="longest-rx-value">0</output>ms
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<td>
|
|
|
|
|
Your clock is off by:
|
|
|
|
|
</td>
|
|
|
|
|
<td>
|
|
|
|
|
<output id="clock-off-value">??</output>ms
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
2020-05-01 15:07:09 -06:00
|
|
|
|
</div>
|
|
|
|
|
</main>
|
|
|
|
|
</div>
|
|
|
|
|
</body>
|
2020-04-10 10:23:40 -06:00
|
|
|
|
</html>
|
2020-05-20 22:56:22 -06:00
|
|
|
|
<!-- vim: set noet ts=2 sw=2 : -->
|