示例#1
0
        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");
        }