This is an old revision of the document!


Bibliothèque des scripts LUA des membres

Quelques explications :

Les scripts sont utilisés dans CALAOS pour permettre de réaliser des actions plus complètes et gérer plus finement les éléments, ce qui n'est pas possible avec des règles “simples”.

Elles sont écrites en language LUA.

On peut utiliser un script LUA aussi bien dans une condition que dans une action. Dans une condition, le script doit retouner true ou false pour déterminer si la condition est valide ou non et lancer les actions.

Il faut aussi garder a l'esprit que le script n'est pas executé en continue. Il se lance seulement lorsque qu'une IO que l'on specifie dans la règles change.


Définition du LUA : (Rèférence : https://fr.wikipedia.org/wiki/Lua)

Le Lua est un langage de script libre, réflexif et impératif.

Créé en 1993, il est conçu de manière à pouvoir être embarqué au sein d'autres applications afin d'étendre celles-ci...
L'interpréteur Lua est écrit en langage C ANSI strict, et de ce fait est compilable sur une grande variété de systèmes. Il est également très compact... Il profite de la compatibilité que possède le langage C avec un grand nombre de langages pour s'intégrer facilement dans la plupart des projets.

Il est particulièrement apprécié pour le développement de jeux vidéo comme pour l'interface du jeu World of Warcraft... voire encore pour SimCity 4.
Lua a été porté dernièrement sur la console portable de Sony, la PSP. Une version PlayStation 2 est en cours de portage. Lua est aussi utilisé dans le mod ComputerCraft pour le jeu Minecraft qui permet de créer des petits systèmes informatiques à l'intérieur du jeu. Ce langage est également utilisé [réf. souhaitée] pour la programmation Roblox et récemment pour la TI-Nspire avec l'OS 3.0 ou ultérieur...


Documentations sur le LUA à lire :

Site officiel : http://www.lua.org/

Site de programmation sur DS (on trouve des infos exploitables pour CALAOS) : http://fr.openclassrooms.com/informatique/cours/programmez-sur-votre-ds-avec-microlua/les-bases-de-la-programmation-avec-lua

Autre site intéressant : http://www.luteus.biz/Download/LoriotPro_Doc/LUA/LUA_Training_FR/Introduction_Programmation.html


Lexique

Fonctions propres à CALAOS :

See source code https://github.com/calaos/calaos_base/blob/master/src/bin/calaos_server/LuaScript/ScriptBindings.cpp

calaos:getInputValue(“id”, str) : Permet de récupérer la valeur d'une entrée et la stocker dans str. (str est facultatif et peut s'appeler autrement)

calaos:getOutputValue(“id”, str) : Permet de récupérer la valeur d'une sortie et la stocker dans str.

calaos:setOutputValue(“id”, “valeur”) : Permet d'attribuer une valeur à une sortie.

calaos:requestUrl(“url”) : Permet d'appeler une URL

calaos:requestUrl(“url”, “POST DATA”) : Permet d'appler une URL avec des données en POST

Uniquement v3

calaos:getIOParam(“id”, “parametre”) : Permet de recuperer un parametre d'un IO (visible, enabled, …)

calaos:setIOParam(“id”, “parametre”, valeur) : Permet de d'attribuer une valeur a un parametre d'un IO (visible, enabled, …)

calaos:waitForIO(“id”) : Bloque le script et attend que l'IO passé en parametre change. Cela permet d'attendre qu'un IO fasse un trigger dans le script en le bloquant. A partir de calaos v3, les scripts peuvent etre bloquant indéfiniment contrairement a la v2 ou un script ne peut tourner que 2s max.

calaos:getEnv(“trigger_id”) : Permet de récupérer l'id du trigger qui a déclenché le script.


Fonctions “classiques” du LUA:

Print(“xxxx”) : Sert à afficher un message dans les logs, principalement pour débuguer

- - : Permet d’ajouter un commentaire dans le script (en vert dans les scripts pour plus de lisibilité)

str = : Permet de stocker une valeur (str est un exemple, on peut lui donner le nom qu'on veut)

(“input_4”) : Numéro d’entrée défini dans Calaos. (Il est possible de connaître les Numéros de toutes les entrées via Calaos Installer.)

local temp = calaos:getInputValue(“N° input”) : Permet de donner une valeur à une variable (ici la variable est appelée “temp” la valeur = l’entrée définie)

if xxxx then xxx : Le système vérifie une condition et lance l’action qui suit lorsqu’elle est remplie : Si (condition ok) alors (action)

elseif xxxx then xxx : Le système vérifie la condition suivante si la précédente n’est pas rempli : sinon (condition précédente non ok) si (condition ok) alors (action)

end : Mets fin au contrôle des conditions

return true : Met fin au script


Comment créer un script LUA dans CALAOS INSTALLER


En construction


Liste des scripts LUA