diff --git a/docs/DJ5IL_rt007.pdf b/docs/DJ5IL_rt007.pdf new file mode 100644 index 0000000..b753c41 Binary files /dev/null and b/docs/DJ5IL_rt007.pdf differ diff --git a/static/scripts/keyers.mjs b/static/scripts/keyers.mjs index 69ef0e1..4bdc7af 100644 --- a/static/scripts/keyers.mjs +++ b/static/scripts/keyers.mjs @@ -391,6 +391,17 @@ class IambicAKeyer extends IambicKeyer { } } +/** + * "Iambic B" + * + * I have gotten a lot of helpful feedback on this one! + * + * Quoting DJ5IL: + * + * > if anytime during generation of an element the + * > opposite lever was pressed, generate one extra + * > alternate element. + */ class IambicBKeyer extends IambicKeyer { Reset() { super.Reset() @@ -398,7 +409,7 @@ class IambicBKeyer extends IambicKeyer { } Key(key, pressed) { - if (pressed) { + if (pressed && (this.sending != key)) { this.queue.add(key) } super.Key(key, pressed) @@ -411,6 +422,7 @@ class IambicBKeyer extends IambicKeyer { } } let next = this.queue.shift() + this.sending = next if (next == null) { return -1 }