public override void Initialize(Dictionary <string, string> initParams) { try { TimeSeriesPlugin._Logger.InfoFormat("Initialize {0}", c_PluginName); LocalDB = initParams.ContainsKey("LocalDB") ? initParams["LocalDB"] : "Data Source=MeasuredValueDB.sdf;Password=;Persist Security Info=True"; RemoteDB = initParams.ContainsKey("RemoteDB") ? initParams["RemoteDB"] : @"Data Source=.;Initial Catalog=HomeAutomation;Integrated Security=True"; MessageQueuePaths = initParams.ContainsKey("MessageQueuePaths") ? initParams["MessageQueuePaths"] : @".\Private$\KostalValues"; CronJobText = initParams.ContainsKey("CronJob") ? initParams["CronJob"] : "0/30 * * * * ?"; _Logger.InfoFormat("LocalDB: {0}", LocalDB); _Logger.InfoFormat("RemoteDB: {0}", RemoteDB); _Logger.InfoFormat("MessageQueuePaths: {0}", MessageQueuePaths); _Logger.InfoFormat("CronJob: {0}", CronJobText); DataBaseConnection.InitSqlCeConnection(LocalDB); DataBaseConnection.InitSqlConnection(RemoteDB); string configFile = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + "\\CompressionConfigs.xml"; _Logger.InfoFormat("Load Config File: {0}", configFile); _CompressionConditionManager = CompressionConditionManager.LoadFromFile(configFile); _ErrorQueue = new SimpleMessageQueueWrapper <IDictionary <string, object> >(); _ErrorQueue.Initialize(".\\Private$\\ErrorQueue"); _ErrorQueue.MessageLabel = "Error"; //this._JobDetail.JobDataMap.Add("CompressionConditionManager", this._CompressionConditionManager); //this._JobDetail.JobDataMap.Add("MessageQueuePaths", this.MessageQueuePaths); _Scheduler.AddJob(CronJobText, Execute, null, false); } catch (Exception ex) { _Logger.Fatal("Cannot server initialization failed. Plugin will not start.", ex); } }
public void SaveCompressionConditionConfig() { TimeSpanConfig tsc1 = new TimeSpanConfig() { Hours = 1, Minutes = 2, Seconds = 3 }; TimeSpanConfig tsc2 = new TimeSpanConfig() { Hours = 0, Minutes = 1, Seconds = 2 }; CompressionConditionConfig ccc = new CompressionConditionConfig() { MeasuredValueName = "Test", RewriteValueAfter = tsc1, TimeDeadBand = tsc2, ValueDeadBandDelta = 0.12345 }; CompressionConditionConfigs configs = new CompressionConditionConfigs(); configs.Items = new CompressionConditionConfig[] { ccc, ccc }; XmlSerializer configSerializer = new XmlSerializer(typeof(CompressionConditionConfigs), "TimeSeries"); using (TextWriter writer = new StreamWriter("test.xml")) { configSerializer.Serialize(writer, configs); writer.Close(); } XmlSerializer test = new XmlSerializer(typeof(CompressionConditionConfigs), "TimeSeries"); using (TextReader reader = new StreamReader("test.xml")) { CompressionConditionConfigs configs2 = (CompressionConditionConfigs)test.Deserialize(reader); Assert.AreEqual(2, configs2.Items.Length); CompressionConditionManager manager = new CompressionConditionManager(configs2); var config = manager.GetConfigFor(""); } var configs10 = new CompressionConditionConfigs(); configs10.Items = new CompressionConditionConfig[] { new CompressionConditionConfig() { MeasuredValueName = "Tag1", RewriteValueAfter = new TimeSpanConfig() { Hours = 1, Minutes = 0, Seconds = 0 }, TimeDeadBand = new TimeSpanConfig() { Hours = 0, Minutes = 0, Seconds = 10 }, ValueDeadBandDelta = 1.2 }, new CompressionConditionConfig() { MeasuredValueName = "Tag2", RewriteValueAfter = new TimeSpanConfig() { Hours = 1, Minutes = 0, Seconds = 0 }, TimeDeadBand = new TimeSpanConfig() { Hours = 0, Minutes = 0, Seconds = 10 }, ValueDeadBandDelta = 1.2 } }; //XmlSerializer configSerializer = new XmlSerializer(typeof(CompressionConditionConfigs), "TimeSeries"); using (TextWriter writer = new StreamWriter("Thomas.xml")) { configSerializer.Serialize(writer, configs10); writer.Close(); } CompressionConditionManager manager2 = CompressionConditionManager.LoadFromFile("Thomas.xml"); }