public ModuleMainForm() { string templateFolder; InitializeComponent(); try { // init mode settings Settings.Init(); Settings.Setting.LoadFromFile(Common.BuildPath(GenericTemplate.moduleParams.DataPath, GenericTemplate.constModuleDataFolder) + Settings.FILE_NAME); // init and load tagsStorage object TagsLoader tagsLoader = new TagsLoader(Common.BuildPath(GenericTemplate.moduleParams.DataPath, GenericTemplate.constModuleDataFolder) + GenericTemplate.constTagsXMLFileName); this.tagsStorage = tagsLoader.LoadTags(); // WindwosTools controls twtToolsWindowsTemplates = new ToolsWindowsTemplates(); twttoolsWindowsTags = new ToolsWindowsTags(this.tagsStorage); twttoolsWindowsTags.AddControl(tbtemplateHeader); twttoolsWindowsTags.AddControl(tbtemplateBody); twttoolsWindowsTags.AddControl(tbtemplateFooter); twttoolsWindowsTags.AddControl(tbTemplateVariables); twttoolsWindowsTags.AddControl(tbTemplateComment); twttoolsWindowsTags.AddControl(tbFileDestinationFolder); twttoolsWindowsTags.AddControl(tbFileDestinationFile); // general default settings cbDataDestination.SelectedIndex = 0; // set icon this.Icon = global::UberTools.Modules.GenericTemplate.Properties.Resources.WindowsTable; // create settings menager object and add all controls templateFolder = Common.BuildPath(GenericTemplate.moduleParams.DataPath, GenericTemplate.constModuleDataFolder, GenericTemplate.constTemplateFolder); settingsMenager = new SettingsMenager(); settingsMenager.Add(tbtemplateBody); settingsMenager.Add(tbtemplateHeader); settingsMenager.Add(tbtemplateFooter); settingsMenager.Add(tbTemplateVariables); settingsMenager.Add(tbTemplateComment); settingsMenager.Add(tbFileDestinationFolder); settingsMenager.Add(tbFileDestinationFile); settingsMenager.Add(chbDestinationFileAppend); settingsMenager.Add(cbDataDestination); settingsMenager.Add(cbEncoding); //// create settings menager version 2 object and add all controls settingsMenager2 = new SettingsMenager2(GenericTemplate.constModuleName, "UberToolsModule", "1.0.0.0"); //settingsMenager2.Items.Add(new SettingsMenagerStructure2(tbtemplateBody, "tbtemplateBody", SettingsMenager2.Type.Textbox)); settingsMenager2.Refresh += new EventHandler(settingsMenager2_Refresh); settingsMenager2.Update += new EventHandler(settingsMenager2_Update); // new instance template menager templatesMenager = new TemplatesManager(twtToolsWindowsTemplates.TreeViewControl, templateFolder, settingsMenager, settingsMenager2); this.twtToolsWindowsTemplates.ImageListControl = this.ilGeneral; templatesMenager.LoadAll(); // set templateMenager to templateControl twtToolsWindowsTemplates.TemplatesMenager = templatesMenager; this.twtToolsWindowsTemplates.ImageListControl = this.ilGeneral; // Create new rowCollection object and bound it to container rowCollectionMenager = new RowCollectionMenager(panel1, this.settingsMenager2); foreach (EncodingMenager encoding in EncodingMenager.GetEnumerator()) { cbEncoding.Items.Add(encoding); } cbEncoding.SelectedIndex = cbEncoding.Items.Count - 2; // new instance of hoveringwindows autoComplete = new AutoComplete(this, this.tagsStorage); autoComplete.AddControl(tbtemplateHeader); autoComplete.AddControl(tbtemplateBody); autoComplete.AddControl(tbtemplateFooter); autoComplete.AddControl(tbTemplateVariables); autoComplete.AddControl(tbTemplateComment); autoComplete.AddControl(tbFileDestinationFolder); autoComplete.AddControl(tbFileDestinationFile); //// syntax color init //colorMenager = new ColorMenager_old(); //colorMenager.Controls.Add(tbTemplateVariables); // SyntaxHighlightingMenager settings syntaxHighlightingMenager = new SyntaxHighlightingMenager(tagsStorage); syntaxHighlightingMenager.Controls.Add(tbTemplateVariables); syntaxHighlightingMenager.Controls.Add(tbtemplateBody); syntaxHighlightingMenager.Controls.Add(tbtemplateHeader); syntaxHighlightingMenager.Controls.Add(tbtemplateFooter); syntaxHighlightingMenager.Controls.Add(tbFileDestinationFolder); syntaxHighlightingMenager.Controls.Add(tbFileDestinationFile); // load last loadet template if (Settings.Setting.LoadSetting(Settings.SettingName.ActiveTemplateName.ToString(), "") != "") { templatesMenager.Load(Settings.Setting.LoadSetting(Settings.SettingName.ActiveTemplateName.ToString(), "")); } } catch (Exception ex) { ModuleLog.Write(ex, this, "ModuleMainForm", ModuleLog.LogType.ERROR); } }
private static void Main(string[] args) { PIConnection piConnection; var _logger = LogManager.GetLogger(typeof(Program)); try { var options = new CommandLineOptions(); if (Parser.Default.ParseArguments(args, options)) { ValidateSettings(options); var readerSettings = new DataReaderSettings(); if (options.Server.Length == 1) { piConnection = new PIConnection(options.Server[0]); } else { piConnection = new PIConnection(options.Server[0], options.Server[1]); } if (options.testTagSearch != null && options.testTagSearch.Length > 0) { _logger.Info("Search test started..."); piConnection.Connect(); var search = new TagsLoader(piConnection.GetPiServer()); foreach (var s in options.testTagSearch) { var tags = search.Search(s).ToList(); _logger.WarnFormat("Found {0} tags with query {1}", tags.Count, s); if (options.testTagSearchPrintAllTags) { tags.ForEach(t => _logger.InfoFormat("Tag: {0}, PointClass: {1}", t.Name, t.PointClass)); } } } if (options.TagQueries != null && options.TagQueries.Length > 0) { _logger.Info("Data reader starting..."); piConnection.Connect(); if (options.EventsPerDay > 0 && options.TagsCount > 0) { // var type = options.UseParallel? DataReaderSettings.ReadingType.Parallel: DataReaderSettings.ReadingType.Bulk; var type = DataReaderSettings.ReadingType.Bulk; readerSettings.AutoTune(type, options.EventsPerDay, options.TagsCount, options.EventsPerRead); } // starts the data writer // settings data filters to filter out the data if option is specified var filtersFactory = new FiltersFactory(); if (options.RemoveDuplicates) { filtersFactory.AddFilter(new DuplicateValuesFilter()); } if (options.FilterDigitalStates) { filtersFactory.AddFilter(new SystemStatesFilter()); } _logger.Info("Creating worker objects..."); var dataWriter = new DataWriter(options.OutfileName, options.EventsPerFile, options.WritersCount, filtersFactory); var dataReader = new DataReaderBulk(readerSettings, dataWriter, options.EnableWrite); //dataReader = options.UseParallel // ? (IDataReader) new DataReaderParallel(readerSettings, dataWriter) // : new DataReaderBulk(readerSettings, dataWriter); var orchestrator = new Orchestrator(options.StartTime, options.EndTime, readerSettings.TimeIntervalPerDataRequest, dataReader); var tagsLoader = new TagsLoader(piConnection.GetPiServer(), options.TagQueries, readerSettings.TagGroupSize, orchestrator); var statistics = new Statistics(); // starts the orchestrator _logger.Info("Starting workers..."); var tagsLoaderTask = tagsLoader.Run(); var writerTask = dataWriter.Run(); // var processorTask = dataProcessor.Run(); -- not using this after determining this was not bringing much performance gain. var orchestratorTask = orchestrator.Run(); var dataReaderTask = dataReader.Run(); var statsTask = statistics.Run(); // starts the data reader Task.WaitAll(orchestratorTask, writerTask, dataReaderTask, tagsLoaderTask); statistics.Stop(); Task.WaitAll(statsTask); _logger.Info("All tasks completed successfully"); } // DEBUG // Console.ReadKey(); // exit ok Environment.Exit(0); } else { // exit with error Environment.Exit(1); } } catch (Exception ex) { _logger.Error(ex); } }