在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、简介 Lua是一个小巧的脚本语言,由标准C语言编写而成,几乎可在所有操作系统和平台上编译,运行。Lua不适合作为开发独立应用程序的语言。 Lua可以很容易被C/C++代码调用,也可以反过来调用C/C++的函数,由此可以作为扩展脚本与普通的配置文件,代替XML,ini等文件格式。 二、特性 轻量级:5.0.2版的Lua内核小于120KB 可扩展:借助宿主语言(C/C++)的扩展接口和机制 面向过程与函数式编程 自动内存管理等 例如,通过Lua构建cli命令操作scalar与table: 1 --get scalar and table 2 3 local function MymodShow() 4 local myModuleSettings = GetEntry('myModuleSettings') 5 util.Print("111111\n"); 6 util.Print("MyModStateEnable: %s\n", util.State(tonumber(myModuleSettings['myModStateEnable']))); 7 8 local myModCtrlEntry = GetEntry('myModCtrlEntry') 9 local RowStatus = {"active", "notInService","notReady","createAndGo","createAndWait","destroy"}; 10 11 util.Print("\n"); 12 util.Print(" This is my module table: \n"); 13 14 for k, v in pairs(myModCtrlEntry) do 15 util.Print("index :%d\n",v['myModIndex']); 16 util.Print("Name :%s\n",v['myModName']); --ascii 17 util.Print("Val :%d\n",v['myModValue']); 18 util.Print("Rowstatus :%s\n",RowStatus[tonumber(v['myMODRowstatus'])]); 19 util.Print("\n"); 20 end 21 util.Print("\n"); 22 return Success(); 23 end 24 25 --set table 26 local function MymodTableSet(params) 27 local oSeq = {}; 28 local ret = {code = 0}; 29 30 oSeq = { 31 {myModIndex = params['myModIndex']}, 32 {myMODRowstatus = 5}, 33 {myModValue= params['myModValue']}, 34 {myMODRowstatus = 1} 35 }; 36 37 ret=Post('myModCtrlEntry',oSeq); 38 return util.Result(ret); 39 end 40 41 --set scalar 42 local function MymodScalarSet(params) 43 44 local oSeq = {}; 45 local ret = {code = 0}; 46 47 oSeq = { 48 {myModStateEnable= params['myModStateEnable']} 49 }; 50 51 ret=Post('myModuleSettings',oSeq); 52 return util.Result(ret); 53 end 54 55 -- Function declaration 56 Fun.Add('MymodShow', MymodShow) 57 Fun.Add('MymodTableSet', MymodTableSet) 58 Fun.Add('MymodScalarSet', MymodScalarSet) 1 DEFINE GROUP : CAMEO_MYMOD_CMDS 2 3 /*show mymodinfo */ 4 COMMAND : show mymodinfo 5 ACTION : 6 { 7 CLI_CALL("MymodShow"); 8 } 9 SYNTAX : show mymodinfo 10 PRVID : CAMEO_USERACC_USER_PRIVILEGE 11 HELP : This command is used to show mymodule infomation. 12 13 /*config mymodscalar */ 14 COMMAND : config mymodscalar <integer(1-2)> 15 ACTION : 16 { 17 CLI_ADDN("myModStateEnable",(UINT4 *)$2); 18 CLI_CALL("MymodScalarSet"); 19 } 20 SYNTAX : config mymodscalar 21 PRVID : CAMEO_USERACC_USER_PRIVILEGE 22 HELP : This command is used to config mymodscalar. 23 24 /*config mymodtable */ 25 COMMAND : config mymodtable <integer(1-2)> <integer(1-100)> 26 ACTION : 27 { 28 CLI_ADDN("myModIndex",$2); 29 CLI_ADDN("myModValue",$3); 30 CLI_CALL("MymodTableSet"); 31 } 32 SYNTAX : config mymodtable <index> <value> 33 PRVID : CAMEO_USERACC_USER_PRIVILEGE 34 HELP : This command is used to config mymodtable. 35 36 END GROUP
|
请发表评论