Das Modul:Morse setzt via Vorlage:Morse einen beliebigen Text in darstellbaren Morsecode um. Die ‚Textgröße‘ (Morsecode) ist auf 40 % eingestellt, kann aber mit dem 2. Parameter umgestellt werden (Siehe Dokumentation). Eine Erweiterung des umsetzbaren Zeichensatzes (z.B. arabisch, chinesisch usw.) ist generell möglich und ist bei Bedarf nachzutragen.
Die für den US-Railroadcode und Gerke-Code abweichende Zeichen/Pausenlängen werden umgesetzt.
Der gesamte Aufbau des Moduls ist nicht 100 % optimiert, um die Lesbarkeit zu erhalten. Es gibt ein paar ‚Umwege‘, die nicht unbedingt nötig sind, aber der Verständlichkeit dienen. Bis auf wenige Aufrufe von mw-Erweiterungen ist das Modul in einer Standard-Lua-Umgebung, z.B. mit „ZeroBrane Studio“) lauffähig. Das vereinfacht die Wartung spürbar. Jedoch verarbeitet Lua nicht UTF-8-Zeichen korrekt, das wird daher mit „mw.ustring“ verarbeitet.
Da das Modul auch in anderen Sprachräumen eingesetzt wird, sind sprachabhängig definierte Ergänzungen, Verfahren und Vorlagen unerwünscht, um einheitliche Wartung zu gewährleisten.
Die in Morsecode umzusetzenden Zeichen sind in Lua-Tabellen-Dateien ausgelagert, um auch unerfahrenen Anwendern eine leichte Bearbeitung zu ermöglichen.
- Da die Tabellen teilweise temporär überschrieben werden, ist mw.loadData(...) nicht geeignet (readonly).
Aufruf | Aufgabe | Parameter |
---|---|---|
p.f(frame) | Einstiegsfunktion:
|
frame = Wertereübergabe als Tabelle aus der Vorlage:Morse |
usout(frame) | nur zur Kompatibilität mit Template:morse | |
tu(a,z) | wandelt a in Versalien und extrahiert erstes Zeichen oder Anzahl z Nur lateinisches Alpabet |
a: Text, z: Zahl(default 1); -1 = kompletter String |
colore(c,bg) | farbige Darstellung des Codes und/oder Hintergrunds | c: Farbe (Name oder beliebige Dezimalangabe), bg: Hintergrundfärrbung |
los(t, tbl) | Hauptverarbeitung, setzt Text gemäß Tabelle um | t= text, tbl = Codiertabelle |
monochange(txt) | Setzt Zeichen nach Eintrag in Tabelle Monographs um | |
gerk() | Übersetzt Gerke-Code, da abweichend von ITU | |
arr() | Übersetzt US-Railroad-Code, da abweichend von ITU | |
sound(L,txt,sz) | für Audioeinbindung (ogg-Dateien) | L=Zeichen (letter), txt: Text, sz = Darstellungsgröße des Steuerzeichens |
laststep(txt,version) | Endverarbeitung:
|
Variable | Datei | Inhalt/Zweck |
---|---|---|
PROS{} | Modul:Morse/Prosigns | Von ITU festgelegte Zeichenfolgen, die mit verkürztem Code ausgegeben werden. Beispiel: SOS = ▄ ▄ ▄ ▄▄▄ ▄▄▄ ▄▄▄ ▄ ▄ ▄ statt ▄ ▄ ▄ ▄▄▄ ▄▄▄ ▄▄▄ ▄ ▄ ▄ |
DIGR{} | Modul:Morse/Digraphs | Kurze Buchstabenfolgen, meist für Sonderzeichen, die in einen Code umgesetzt bzw in verkürztem Code ausgegeben werden. Beispiel SX = $= ▄ ▄ ▄ ▄▄▄ ▄ ▄ ▄▄▄ statt ▄ ▄ ▄ ▄▄▄ ▄ ▄ ▄▄▄ |
MOGR{} | Modul:Morse/Monographs | Einzelzeichen aller Art, auch nichtlateinische Zeichensätze. Jedem Buchstaben ist ein Code zugeeordnet. A–Z nur als Versalien, da die Minuskeln als steuerzeichen eingesetzt werden (siehe Variable TMP{}) |
Variable | Werte | Bedeutung, Versendung |
---|---|---|
TMP{} | Zeichen &#;0–9 |
wären im Programmablauf mit der dezimalen Darstellung der UTF-8-Codes für die Punkt-, /Strich- und Leerzeichen verwechselbar Beispiel: ▄ = ▄
|
Die korrekten Zeiten für Zeichen und Pausen hat die http ITU festgelegt. Bis auf die nichtamtliche Kurzversion worden diese Vorgaben berücksichtigt.
Um während der Verarbeitung Code eindeutig zuzuordnen und Endlosschleifen zu vermeiden, werden temporär lateinische Kleinbuchstaben eingesetzt. Diese werden in der Endverarbeitung zum Code umgeschrieben. Punkte (▄) und geschützte Leerzeichen werden entsprechend der vorgegebenen Signallänge zum Ausgabecode zusammengefügt.
temporär | wird zu Zeichenfolge | Darstellung | ||
---|---|---|---|---|
& | x | plpppt | #9604; ▄▄▄ ▄ ▄ ▄    | ▄ ▄▄▄ ▄ ▄ ▄ |
# | y | lpllt | #9604;▄▄ ▄ ▄▄▄ ▄▄▄    | ▄▄▄ ▄ ▄▄▄ ▄▄▄ |
; | z | lplplpt | #9604;▄▄ ▄ ▄▄▄ ▄ ▄▄▄ ▄    | ▄▄▄ ▄ ▄▄▄ ▄ ▄▄▄ ▄ |
0 | o | lllllt | #9604;▄▄ ▄▄▄ ▄▄▄ ▄▄▄ ▄▄▄    | ▄▄▄ ▄▄▄ ▄▄▄ ▄▄▄ ▄▄▄ |
1 | b | pllllt | #9604; ▄▄▄ ▄▄▄ ▄▄▄ ▄▄▄    | ▄ ▄▄▄ ▄▄▄ ▄▄▄ ▄▄▄ |
2 | c | pplllt | #9604; ▄ ▄▄▄ ▄▄▄ ▄▄▄    | ▄ ▄ ▄▄▄ ▄▄▄ ▄▄▄ |
3 | d | pppllt | #9604; ▄ ▄ ▄▄▄ ▄▄▄    | ▄ ▄ ▄ ▄▄▄ ▄▄▄ |
4 | e | pppplt | #9604; ▄ ▄ ▄ ▄▄▄    | ▄ ▄ ▄ ▄ ▄▄▄ |
5 | f | pppppt | #9604; ▄ ▄ ▄ ▄    | ▄ ▄ ▄ ▄ ▄ |
6 | g | lppppt | #9604;▄▄ ▄ ▄ ▄ ▄    | ▄▄▄ ▄ ▄ ▄ ▄ |
7 | h | llpppt | #9604;▄▄ ▄▄▄ ▄ ▄ ▄    | ▄▄▄ ▄▄▄ ▄ ▄ ▄ |
8 | i | lllppt | #9604;▄▄ ▄▄▄ ▄▄▄ ▄ ▄    | ▄▄▄ ▄▄▄ ▄▄▄ ▄ ▄ |
9 | j | llllpt | #9604;▄▄ ▄▄▄ ▄▄▄ ▄▄▄ ▄    | ▄▄▄ ▄▄▄ ▄▄▄ ▄▄▄ ▄ |
temporär | wird zu Zeichenfolge | Ausgabe |
---|---|---|
r |      | → ← |
p | ▄  | →▄ ← |
l | ▄▄▄  | →▄▄▄ ← |
t |    | → ← |
q |   | → ← |
l | ▄▄▄▄  | →▄▄▄▄ ← |
n | ▄▄▄▄▄▄▄▄▄▄▄  | →▄▄▄▄▄▄▄▄▄▄▄ ← |