Exemplo n.º 1
0
        public static void ReceiveData(string key, object value)
        {
            if (key.Equals("MonitoringData", StringComparison.OrdinalIgnoreCase))
            {
                var ledData = value as DataPoint;

                if (ledData == null)
                {
                    System.Diagnostics.Debug.WriteLine("监控数据格式错误!!");
                    return;
                }

                if (_strategyTable == null)
                {
                    return;
                }

                if (_strategyTable.Keys == null || !_strategyTable.Keys.Contains(ledData.Key))
                {
                    return;
                }

                List<DataPoint> temperatureDataList = new List<DataPoint>();
                List<DataPoint> brightnessDataList = new List<DataPoint>();
                List<DataPoint> smokeDataList = new List<DataPoint>();
                //if (key.Equals("MonitoringData", StringComparison.OrdinalIgnoreCase))
                //{

                List<DataPoint> dataPointCollection = new List<DataPoint>();
                if (typeof(List<DataPoint>) == ledData.Value.GetType())
                {
                    dataPointCollection = ledData.Value as List<DataPoint>;
                }
                else if (typeof(DataPoint) == ledData.Value.GetType())
                {
                    dataPointCollection = new List<DataPoint>() { ledData.Value as DataPoint };
                }

                temperatureDataList = dataPointCollection.FindAll(p => IsTemperatureToken(p.Key));
                brightnessDataList = dataPointCollection.FindAll(p => IsBrightnessToken(p.Key));
                smokeDataList = dataPointCollection.FindAll(p => IsSmokeToken(p.Key));

                var temperatureTaskArgObj = new TaskArgPackage { DataPoints = temperatureDataList, Key = ledData.Key };
                Task temperatureStrategyTask = Task.Factory.StartNew((obj) =>
                {
                    var taskArgObj = (TaskArgPackage)obj;
                    TemperatrueStrategyTask(taskArgObj.Key, taskArgObj.DataPoints);
                }, temperatureTaskArgObj);

                var smokeTaskArgObj = new TaskArgPackage { DataPoints = smokeDataList, Key = ledData.Key };
                Task smokeStrategyTask = Task.Factory.StartNew((obj) =>
                {
                    var taskArgObj = (TaskArgPackage)obj;
                    SmokeStrategyTask(taskArgObj.Key, taskArgObj.DataPoints);
                }, smokeTaskArgObj);

                //lock (_syncObj)
                //{
                //    temperatureDataList = dataPointCollection.FindAll(p => IsTemperatureToken(p.Key));
                //    brightnessDataList = dataPointCollection.FindAll(p => IsBrightnessToken(p.Key));
                //    smokeDataList = dataPointCollection.FindAll(p => IsSmokeToken(p.Key));

                //    TemperatrueStrategyTask(key, temperatureDataList);
                //    BrightnessStrategyTask(key, brightnessDataList);
                //    SmokeStrategyTask(key, smokeDataList);
                //}
            }
            //}
        }
Exemplo n.º 2
0
        public static void ReceiveData(string key, object value)
        {
            if (key.Equals("MonitoringData", StringComparison.OrdinalIgnoreCase))
            {
                var ledData = value as DataPoint;

                if (ledData == null)
                {
                    System.Diagnostics.Debug.WriteLine("监控数据格式错误!!");
                    return;
                }

                if (_strategyTable == null)
                {
                    return;
                }

                if (_strategyTable.Keys == null || !_strategyTable.Keys.Contains(ledData.Key))
                {
                    return;
                }

                List <DataPoint> temperatureDataList = new List <DataPoint>();
                List <DataPoint> brightnessDataList  = new List <DataPoint>();
                List <DataPoint> smokeDataList       = new List <DataPoint>();
                //if (key.Equals("MonitoringData", StringComparison.OrdinalIgnoreCase))
                //{



                List <DataPoint> dataPointCollection = new List <DataPoint>();
                if (typeof(List <DataPoint>) == ledData.Value.GetType())
                {
                    dataPointCollection = ledData.Value as List <DataPoint>;
                }
                else if (typeof(DataPoint) == ledData.Value.GetType())
                {
                    dataPointCollection = new List <DataPoint>()
                    {
                        ledData.Value as DataPoint
                    };
                }

                temperatureDataList = dataPointCollection.FindAll(p => IsTemperatureToken(p.Key));
                brightnessDataList  = dataPointCollection.FindAll(p => IsBrightnessToken(p.Key));
                smokeDataList       = dataPointCollection.FindAll(p => IsSmokeToken(p.Key));

                var temperatureTaskArgObj = new TaskArgPackage {
                    DataPoints = temperatureDataList, Key = ledData.Key
                };
                Task temperatureStrategyTask = Task.Factory.StartNew((obj) =>
                {
                    var taskArgObj = (TaskArgPackage)obj;
                    TemperatrueStrategyTask(taskArgObj.Key, taskArgObj.DataPoints);
                }, temperatureTaskArgObj);

                var smokeTaskArgObj = new TaskArgPackage {
                    DataPoints = smokeDataList, Key = ledData.Key
                };
                Task smokeStrategyTask = Task.Factory.StartNew((obj) =>
                {
                    var taskArgObj = (TaskArgPackage)obj;
                    SmokeStrategyTask(taskArgObj.Key, taskArgObj.DataPoints);
                }, smokeTaskArgObj);


                //lock (_syncObj)
                //{
                //    temperatureDataList = dataPointCollection.FindAll(p => IsTemperatureToken(p.Key));
                //    brightnessDataList = dataPointCollection.FindAll(p => IsBrightnessToken(p.Key));
                //    smokeDataList = dataPointCollection.FindAll(p => IsSmokeToken(p.Key));


                //    TemperatrueStrategyTask(key, temperatureDataList);
                //    BrightnessStrategyTask(key, brightnessDataList);
                //    SmokeStrategyTask(key, smokeDataList);
                //}
            }
            //}
        }