**Dies ist eine alte Version des Dokuments!** ----
====== Bones Milestone spezifische LUA Module ====== ===== Milestone ===== Das Milestone Modul enthält grundsätzliche Funktionen zur Milestone Hardware oder Konfigurationseinstellungen. Augenblicklich sind dies Folgende Funktionen: * [[module#respath|respath]] ==== respath ==== '' respath(pfad) '' ''respath'' liefert den plattformunabhängigen Pfad zu Unterverzeichnissen zurück und wird als Hilfsmittel zur Entwicklung von Milestone LUA Programmen auf dem PC eingesetzt. Mit hilfe dieser Funktion ist es möglich unter der Entwicklungsumgebeung den selben Programmcode bezüglich Pfade zu verwenden wie auf dem Gerät selbst. Beispiel: Öffnen einer Textdatei aus dem Unterverzeichnis ''.\save\'' <code lua> -- Get resource path local respath = Milestone.respath('save') local f = io.open(respath .. "highscore.txt", "w+") </code> ===== Language ===== Da Bones Milestone Geräte mehrsprachig ausgeliefert werden, sollten Ihre Programme optimaler weise auch Mehrsprachigkeit unterstützen. Um den Aufwand möglichst gering zu halten gibt es das Modul ''Language''. durch die Funktionen dieses Moduls können Sie Tabellen mit Zeichenketten in verschiedenen Sprachen verwalten. Der Zugriff erfolgt dabei über [[https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes|ISO 639-1 Sprachkürzel]] oder über den Index innerhalb der Tabelle. Reihenfolge der Sprachen innerhalb einer Übersetzungstabelle ist: <code lua> local ltable = { {"English", "EN"}, {"German", "DE"}, {"French", "FR"}, {"Italian", "IT"}, {"Spanish", "ES"}, {"Swedish", "SV"}, {"Dutch", "NL"}, {"Norwegian", "NO"}, {"Danish", "DA"}, {"Polish", "PL"}, {"Icelandic", "IS"}, {"Japanese", "JA"}, {"Portugese", "PT"}, {"Turkish", "TR"}, {"Arabic", "AR"}, {"Catalan", "CA"}, {"Czech", "CZ"}, {"Finnish", "FI"}, {"N/A", "NA"}, {"Greek", "EL"}, {"Russia", "RU"}, {"Portugese Brazil", "PT-BR"}, {"Chinese", "CH"}, } </code> Funktionen: * [[module#machid|machid]] * [[module#id|id]] * [[module#set|set]] * [[module#get|get]] * [[module#getlocal|getlocal]] ==== machid ==== ''machid()'' ''machid'' gibt die Spachkennnummer des entsprechenden Systems zurück. Diese Kennnummer entspricht dem Index der jeweiligen Sprache in folgender [[module#Language|Tabelle]]. ==== id ==== ''id(ISOlang)'' ''id'' gibt die Sprachkennnummer zu einem [[https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes|ISO 639-1 Sprachkürzel]] zurück. Siehe auch folgende [[module#Language|Tabelle]]. ==== set ==== ''set(ISOlang, text, texttable)'' ''set'' setzt in der Übersetzungstabelle ''texttable'' den angegeben Text als Sprache, welche durch das ISOlang Kürzel angegeben wurde. Rückgabewert ist die neue Tabelle. Beispiel: <code lua> local second second = language.set("EN","seconds") second = language.set("DE","Sekunden", introhigh) </code> Alternativ können die Texte auch beim erzeugen der Tabelle übergeben werden: <code lua> local second = {"seconds", "Sekunden"} </code> Bezüglich der Reihenfolge beachten Sie bitte hierbei folgende [[module#Language|Tabelle]]. ''set'' entspricht in etwa folgendem Aufruf: <code lua> texttable[id(ISOlang)] = text </code> ==== get ==== ''get(ISOlang, texttable)'' ''get'' gibt den Text der Übersetzungstabelle ''texttable'' zurück, welcher durch das ISOlang Kürzel angegeben wurde. Beispiel: <code lua> local second = {"seconds", "Sekunden"} print('50' .. language.get("DE", second)) </code> ''get'' entspricht in etwa folgendem Aufruf: <code lua> texttable[id(ISOlang)] </code> ==== getlocal ==== ''getlocal(texttable)'' ''getlocal'' gibt den Text aus ''texttable'' in der Sprache des aktuellen Systems zurück. Beispiel: <code lua> local second = {"seconds", "Sekunden"} print('50 .. language.getlocal(second)) </code> um die Verwendung noch etwas kürzer zu machen kann man ein entsprechendes kürzeln (z.B. ''_T'') setzen: <code lua> local _T = language.getlocal -- to get local text local second = {"seconds", "Sekunden"} print('50 .. _T(second)) </code> ===== Audio ===== Das Audio Modul umfasst folgende Funktionen: * [[module#play|play]] * [[module#stop|stop]] * [[module#pause|pause]] * [[module#resume|resume]] * [[module#tts|tts]] * [[module#status|status]] * [[module#record|record]] ==== play ==== ''play(dateiname)'' ''play'' startet das Abspielen der Audio-Datei mit dem Pfad ''dateiname''. Rückgabewert ist nil wenn die Datei abgespielt werden kann oder eine Fehlermeldung, falls nicht. Beispiel: <code lua> res = audio.play("test.mp3") if res then print("play file error:" .. res .. fname) end </code> ==== stop ==== ''stop()'' ''stop'' stoppt das laufende Abspielen/Aufnehmen. Rückgabewert ist nil, bzw. eine Fehlermeldung. ==== pause ==== ''pause()'' ''pause'' pausiert das laufende Abspielen/Aufnehmen. Rückgabewert ist nil, bzw. eine Fehlermeldung. ==== resume ==== ''resume()'' ''resume'' Wiederaufnahme des laufende Abspielen/Aufnehmen nach ''pause''. Rückgabewert ist nil, bzw. eine Fehlermeldung. ==== tts==== ''tts()'' ''tts'' Weist auf dem Milestone die 'Text To Speech' Synthese an den Text in gesprochene Sprache zu wandeln und auszugeben. Auf dem PC wird die Textzeile auf der Konsole ausgegeben. Entspricht der Anweisung ''print'' der jeweiligen Plattform. ==== status==== ''status()'' ''status'' Gibt den Status der Audio Engine als Table zurück: | status | play/pause/stop | | elapsed | Position in ms | | remaining | Verbleibend in ms | ==== record==== ''record(filename, optionen)'' ''record'' Startet eine Aufnahme. Die Datei wird entsprechend ''optionen'' in die Zieldatei ''dateiname'' geschrieben. Optionen sind: | source | mic/tuner | | headphones | 1/0 | | sound | signalton | | external | 1/0 | ===== Event ===== * count * clear * push * pop ===== RTC ===== * time * set ===== RTOS ===== * wait ===== Timer ===== * read * delay