/// <summary>
        /// Execute a lua script, given the
        /// path to the LUA script containing the message template definitions. After
        /// using this function, use <see cref="TemplateExists"/>,
        /// <see cref="GetTemplate"/>, and <see cref="GetAllTemplates"/> to
        /// examine initialized template structures.
        /// </summary>
        /// <param name="templateDefinitionScriptPath">LUA script file path</param>
        ///
        public bool ExecuteTemplate(string templateDefinitionScriptPath)
        {
            bool result = false;

            try
            {
                lastError = "no error.";
                LuaPluginLoader loader = new LuaPluginLoader();

                LuaPredefMgrPlugin predef = new LuaPredefMgrPlugin();
                loader.RegisterPlugin(predef);

                LuaDictionaryPlugin dic = new LuaDictionaryPlugin();
                loader.RegisterPlugin(dic);

                LuaUtilPlugin util = new LuaUtilPlugin();
                loader.RegisterPlugin(util);

                LuaTimerPlugin timer = new LuaTimerPlugin();
                loader.RegisterPlugin(timer);

                LuaBaseConstantsPlugin constants1 = new LuaBaseConstantsPlugin();
                loader.RegisterPlugin(constants1);

                LuaMissionConstantsPlugin constants2 = new LuaMissionConstantsPlugin();
                loader.RegisterPlugin(constants2);

                LuaInfotainmentConstantsPlugin constants3 = new LuaInfotainmentConstantsPlugin();
                loader.RegisterPlugin(constants3);

                LuaLanguageConstantsPlugin constants4 = new LuaLanguageConstantsPlugin();
                loader.RegisterPlugin(constants4);

                using (Lua lua = new Lua())
                {
                    loader.LoadPlugins(lua);

                    lua.DoString("function dofile(...) end;");

                    lua.DoFile(templateDefinitionScriptPath);

                    lua.GetFunction("_Initialization").Call(new object[0]);

                    this.templates = predef.Templates;

                    result = true;
                }
            }
            catch (Exception ex)
            {
                LogManager.WriteLog(
                    TraceType.ERROR,
                    "ExecuteTemplate error : Predefined message template file not valid  [" + templateDefinitionScriptPath + "]",
                    "PIS.Ground.InstantMessage.TemplateListAccessorClass",
                    ex,
                    EventIdEnum.InstantMessage);
                lastError = ex.Message;
            }
            return(result);
        }
Пример #2
0
        /// <summary>
        /// Execute a lua script, given the
        /// path to the LUA script containing the message template definitions. After
        /// using this function, use <see cref="TemplateExists"/>,
        /// <see cref="GetTemplate"/>, and <see cref="GetAllTemplates"/> to
        /// examine initialized template structures.
        /// </summary>
        /// <param name="templateDefinitionScriptPath">LUA script file path</param>
        ///
        public bool ExecuteTemplate(string templateDefinitionScriptPath, List <string> scriptsList)
        {
            bool result = false;

            try
            {
                lastError = "no error.";
                LuaPluginLoader loader = new LuaPluginLoader();

                LuaPredefMgrPlugin predef = new LuaPredefMgrPlugin();
                loader.RegisterPlugin(predef);

                LuaEventMgrPlugin evtmgr = new LuaEventMgrPlugin();
                loader.RegisterPlugin(evtmgr);

                LuaTagConstantsPlugin tag = new LuaTagConstantsPlugin();
                loader.RegisterPlugin(tag);

                LuaDictionaryPlugin dic = new LuaDictionaryPlugin();
                loader.RegisterPlugin(dic);

                LuaUtilPlugin util = new LuaUtilPlugin();
                loader.RegisterPlugin(util);

                LuaReportPlugin report = new LuaReportPlugin();
                loader.RegisterPlugin(report);

                LuaDataplugPlugin dataplug = new LuaDataplugPlugin();
                loader.RegisterPlugin(dataplug);

                LuaTimerPlugin timer = new LuaTimerPlugin();
                loader.RegisterPlugin(timer);

                LuaAVStreamMgrPlugin avstreammgr = new LuaAVStreamMgrPlugin();
                loader.RegisterPlugin(avstreammgr);

                LuaDecisionMatrixPlugin matrix = new LuaDecisionMatrixPlugin();
                loader.RegisterPlugin(matrix);

                LuaDm400TPlugin player400t = new LuaDm400TPlugin();
                loader.RegisterPlugin(player400t);

                Lua100TPlugin player100t = new Lua100TPlugin();
                loader.RegisterPlugin(player100t);

                Lua150TPlugin player150t = new Lua150TPlugin();
                loader.RegisterPlugin(player150t);

                Lua180TPlugin player180t = new Lua180TPlugin();
                loader.RegisterPlugin(player180t);

                LuaPlaylistPlugin playlist = new LuaPlaylistPlugin();
                loader.RegisterPlugin(playlist);

                LuaPlayerPldPlugin playerPld = new LuaPlayerPldPlugin();
                loader.RegisterPlugin(playerPld);

                LuaPlayerVVPlugin playerVV = new LuaPlayerVVPlugin();
                loader.RegisterPlugin(playerVV);

                LuaEventSchedulerPlugin eventScheduler = new LuaEventSchedulerPlugin();
                loader.RegisterPlugin(eventScheduler);

                LuaLmtDbPlugin lmtDb = new LuaLmtDbPlugin();
                loader.RegisterPlugin(lmtDb);

                LuaSpeechPlugin speech = new LuaSpeechPlugin();
                loader.RegisterPlugin(speech);

                LuaPlayerMp3Plugin playerMp3 = new LuaPlayerMp3Plugin();
                loader.RegisterPlugin(playerMp3);

                LuaSonoDbPlugin sonoDb = new LuaSonoDbPlugin();
                loader.RegisterPlugin(sonoDb);

                LuaTaskSchedulerPlugin taskScheduler = new LuaTaskSchedulerPlugin();
                loader.RegisterPlugin(taskScheduler);

                LuaPlayerWavPlugin playerWav = new LuaPlayerWavPlugin();
                loader.RegisterPlugin(playerWav);

                LuaMissionDataClientPlugin mission_data = new LuaMissionDataClientPlugin();
                loader.RegisterPlugin(mission_data);

                LuaBaseConstantsPlugin constants1 = new LuaBaseConstantsPlugin();
                loader.RegisterPlugin(constants1);

                LuaMissionConstantsPlugin constants2 = new LuaMissionConstantsPlugin();
                loader.RegisterPlugin(constants2);

                LuaInfotainmentConstantsPlugin constants3 = new LuaInfotainmentConstantsPlugin();
                loader.RegisterPlugin(constants3);

                LuaLanguageConstantsPlugin constants4 = new LuaLanguageConstantsPlugin();
                loader.RegisterPlugin(constants4);

                LuaPisConstantsPlugin constants5 = new LuaPisConstantsPlugin();
                loader.RegisterPlugin(constants5);

                LuaConfigConstantsPlugin constants6 = new LuaConfigConstantsPlugin();
                loader.RegisterPlugin(constants6);

                LuaTrainConstantsPlugin constants7 = new LuaTrainConstantsPlugin();
                loader.RegisterPlugin(constants7);

                using (Lua lua = new Lua())
                {
                    loader.LoadPlugins(lua);

                    lua.DoString("function dofile(...) end;");

                    foreach (string script in scriptsList)
                    {
                        lua.DoFile(script);
                    }

                    lua.DoFile(templateDefinitionScriptPath);

                    lua.GetFunction("_Initialization").Call(new object[0]);

                    this.templates = predef.Templates;
                }

                result = true;
            }
            catch (Exception ex)
            {
                LogManager.WriteLog(
                    TraceType.ERROR,
                    "ExecuteTemplate error : Predefined message template file not valid  [" + templateDefinitionScriptPath + "]",
                    "PIS.Ground.InstantMessage.TemplateListAccessorClass",
                    ex,
                    EventIdEnum.InstantMessage);
                lastError = ex.Message;
            }
            return(result);
        }