Wikipedia:Lua/Modul/Morse
Vorlagenprogrammierung | Diskussionen | Lua | Unterseiten | |||
Modul | Deutsch | English
|
Modul: | Dokumentation |
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 | ▄▄▄▄▄▄▄▄▄▄▄  | →▄▄▄▄▄▄▄▄▄▄▄ ← |
Allgemeine Hinweise zur Einbindung von Modulen
Eine Einbindung erfolgt jeweils im Format
{{#invoke: Morse |
Funktionsname | Wert1 | Wert2 | NameX=Wert … }}
Die Parameter können wie bei Vorlagen benannt oder unbenannt sein; deren Regeln gelten analog.
Wenn unbekannte Zeichenketten von außen kommen (als Vorlagenparameter), sollte immer mit der Form 1=
Wert gearbeitet werden.
Zu allgemeinen Problemen beachte die Abhilfen wie bei Vorlagen.
Wenn in einer Vorlage ein Modul verwendet wird, sollte auch immer die Vorlage:Dokumentation/Lua in der Dokumentationsseite eingebunden werden.
- Das gibt einem Programmierer Aufschluss, dass ein Lua-Modul benutzt wird, welche/s und ggf. welche Einzelfunktion daraus, und verlinkt auf die Dokumentation.
- Die Modul-Dokumentationen bekommen ein Link, in welchen Vorlagen sie eingesetzt werden, und wo bei eventuellen Funktionsänderungen Anpassungen erforderlich werden.
- Die Vorlage wird zur Übersicht kategorisiert in Kategorie:Vorlage:mit Lua-Programmierung.
Zu weiteren Informationen siehe Hilfe:Lua.
Bei Problemen wende dich bitte an die Vorlagen-Werkstatt, in schweren Fällen hilft auch die Lua-Werkstatt.