2010-10-20 4 views
3

Je 5000 élément de données de configuration de définition que nous nous attendons à être conçus comme,domaine Lua configuration spécifique aide

-- Name of the device 
VARIABLE Name { 
    type=Float, 
    length=20, 
    <<few more definition here>> 
} 

-- The device running elapsed time since its last boot 
VARIABLE BootTime { 
    type=Integer,  
    <<few more definition here>> 
} 

Je vais lire la valeur de « Nom », « boottime » à partir d'un appareil à l'aide diffent protocole de communication où nous utilisons la propriété ci-dessus définie.

Je souhaite que la variable VARIABLE possède également des propriétés pour les fonctions pre_processor et post_processor.

  1. Comment définir la structure comme ceci dans Lua? Si cette strcuture est impossible, quelle est la structure de garde-robe possible dans Lua

  2. Je veux surcharger l'opérateur pour cette définition variable afin que je puisse faire,

    Je peux configurer boottime = 23456789 ou l'arithmétique comme boottime + 100 (millisecondes) Ou comparaison comme si boottime> 23456789 puis faire quelque chose

Répondre

2

Si vous pouvez fossé le mot-clé VARIABLE alors le code est Lua et vous avez seulement besoin d'un petit code de soutien (certains __index métaméthode la magie).

Integer="Integer" 
setmetatable(_G, 
     { __index = function(t,n) 
         return function (x) _G[n]=x.value end 
       end }) 
BootTime { 
     type=Integer, 
     value=10000 
} 
print(BootTime+2345) 

Si vous voulez garder le mot-clé VARIABLE alors la syntaxe que vous avez donné n'est plus Lua simple mais si vous pouvez vivre avec VARIABLE.BootTime ou VARIABLE"BootTime" ou VARIABLE[BootTime] il est Lua simple et peut être fait pour travailler avec métaméthodes appropriés .

+0

Merci pour la réponse. Si j'ai besoin d'utiliser la variable, quelle est la meilleure façon de la gérer? Comme VARIABLE, j'ai d'autres types de données spécialisées. –

+0

J'ai édité ma réponse pour vous donner quelques possibilités. – lhf

Questions connexes