MorseKeyer
Direct Subclass:
The Morse keyer tests for input on a timer, plays the appropriate tone and passes the data to a decoder.
Example:
var ditKey = 90; // Z
var dahKey = 88; // X
window.onkeyup = function(e) {
if (e.keyCode === ditKey) { dit = false; }
if (e.keyCode === dahKey) { dah = false; }
};
window.onkeydown = function(e) {
var wasMiddle = !dit & !dah;
if (e.keyCode === ditKey) { dit = true; }
if (e.keyCode === dahKey) { dah = true; }
if (wasMiddle & (dit | dah)) { keyer.start(); }
};
var keyCallback = function() {
return ((dit === true) * 1) + ((dah === true) * 2);
};
var messageCallback = function(d) {
console.log(d.message);
};
decoder = new MorseDecoder({wpm:20, messageCallback});
player = new MorsePlayerWAA({frequency:550});
keyer = new MorseKeyer({keyCallback, decoder, player});
Constructor Summary
Public Constructor | ||
public |
constructor(params: Object) |
Member Summary
Public Members | ||
public |
decoder: * |
|
public |
ditLen: * |
|
public |
fditLen: * |
|
public |
keyCallback: * |
|
public |
player: * |
|
public |
timer: * |
Private Members | ||
private |
_state: {"playing": *} |
Method Summary
Public Methods | ||
public |
start() Call this method when an initial key-press (or equivalent) is detected. |
|
public |
stop() This method can be called externally to stop the keyer but is also used internally when no key-press is detected. |
Private Methods | ||
private |
_check() |
|
private |
_ditOrDah(input: *): * Translate key input into whether to play nothing, dit, or dah |
|
private |
Play a dit or dah sidetone. |
Public Constructors
public constructor(params: Object) source
Params:
Name | Type | Attribute | Description |
params | Object | optional parameters. |
|
params.keyCallback | function(): number | A function which should return 0, 1, 2, or 3 from the vitual "paddle" depending if nothing, a dit, a dah or both is detected. This implementation will play dits if both keys are detected. |
|
params.decoder | MorseDecoder | Configured MorseDecoder. |
|
params.player | MorsePlayerWAA | Configured MorsePlayerWAA. |
Public Members
public decoder: * source
public ditLen: * source
public fditLen: * source
public keyCallback: * source
public player: * source
public timer: * source
Private Members
private _state: {"playing": *} source
Public Methods
public stop() source
This method can be called externally to stop the keyer but is also used internally when no key-press is detected.
Private Methods
private _check() source
private _ditOrDah(input: *): * source
Translate key input into whether to play nothing, dit, or dah
Params:
Name | Type | Attribute | Description |
input | * |
Return:
* | undefined, true or false for nothing, dit or dah |