コード例 #1
0
        public NoiseGaugeCtrl(NoiseSensor sensor)
        {
            InitializeComponent();
            ToolTip          = sensor.Name;
            lbl_Name.Content = sensor.Name;
            this.sensor      = sensor;
            scale.Min        = (double)sensor.MinValue;
            scale.Max        = (double)sensor.MaxValue;

            try
            {
                model = HttpService.SensorList.First(item => item.Tag == sensor.Link);

                timer = new DispatcherTimer
                {
                    Interval = TimeSpan.FromSeconds(model.MinPollingIntervalInSeconds)
                };
                timer.Tick += Timer_Tick;
                timer.Start();
                FirstTick();
            }
            catch
            {
                numIndicator.Foreground = new SolidColorBrush(Colors.LightGray);
                label.Foreground        = new SolidColorBrush(Colors.LightGray);
                bar.Background          = new SolidColorBrush(Colors.LightGray);
            }
        }
コード例 #2
0
        private void Submit(object param)
        {
            Sensor sensor;

            CheckForBlanks();
            //check for errors
            if (ErrorCollection.Count == 0)
            {
                switch (SelectedItem)
                {
                case "Temperature":
                    sensor = new TemperatureSensor(Name, ToLinkWith.Tag, Description, Convert.ToDouble(Latitude),
                                                   Convert.ToDouble(Longitude), Tracking,
                                                   Convert.ToDecimal(MinValue), Convert.ToDecimal(MaxValue));
                    break;

                case "Humidity":
                    sensor = new HumiditySensor(Name, ToLinkWith.Tag, Description, Convert.ToDouble(Latitude),
                                                Convert.ToDouble(Longitude), Tracking,
                                                Convert.ToDecimal(MinValue), Convert.ToDecimal(MaxValue));
                    break;

                case "Electricity Consumption":
                    sensor = new PowerConsumptionSensor(Name, ToLinkWith.Tag, Description, Convert.ToDouble(Latitude),
                                                        Convert.ToDouble(Longitude), Tracking,
                                                        Convert.ToDecimal(MinValue), Convert.ToDecimal(MaxValue));
                    break;

                case "Noise":
                    sensor = new NoiseSensor(Name, ToLinkWith.Tag, Description, Convert.ToDouble(Latitude),
                                             Convert.ToDouble(Longitude), Tracking,
                                             Convert.ToDecimal(MinValue), Convert.ToDecimal(MaxValue));
                    break;

                case "Window/Door":
                    sensor = new WindowDoorSensor(Name, ToLinkWith.Tag, Description, Convert.ToDouble(Latitude),
                                                  Convert.ToDouble(Longitude), Tracking,
                                                  Open);
                    break;

                default:
                    sensor = null;
                    break;
                }

                sensors.List.Add(sensor);
                UpdateXml(sensors);
                Snackbar.Enqueue($"{sensor.Name} added");
                DialogHost.CloseDialogCommand.Execute(null, null);
            }
        }
コード例 #3
0
 /**
  * \brief Simple constructor of the task. Build all the hyper parameters of the model (Genetic algorithm + MLP). Define the shapes of the MLp and the size of an individual for the genetic part.
  */
 public DroneStabilization(SystemRandomSource rndGenerator, string fromTask) : base(rndGenerator)
 {
     float mean = 0.0f;
     float stdDev = 1.0f;
     float deltaT = 0.02f;
     noise = new NoiseSensor(mean, stdDev, stdDev, deltaT, rndGenerator);
     lowNoise = new NoiseSensor(mean, stdDev/5.0f, stdDev/5.0f, deltaT, rndGenerator);
     this.fromTask = "Stabilization";
     //Debug.Log(this.fromTask);
     rowIndex = 0;
     shapes = new List<int>() {9, 4};
     signal = new UCSignal(shapes[0]);
     individualSize = 0;
     for (int i = 0; i < shapes.Count - 1; i++)
     {
         individualSize += (shapes[i] + 1) * shapes[i + 1];
     }
 }
コード例 #4
0
        /// <summary>
        /// Adds sensor with the given "data" to the Sensors List
        /// </summary>
        /// <param name="data"></param>
        /// <param name="rangeBoundaries"></param>
        /// <returns>True if the sensor is added successfully, False otherwise</returns>
        public bool AddSensor(SensorData data, RangeBoundaries <string> rangeBoundaries)
        {
            bool   success = true;
            Sensor sensor  = null;

            try
            {
                switch (data.Type)
                {
                case "DoorSensor":
                    sensor = new DoorSensor(data);
                    break;

                case "ElPowerSensor":
                    sensor = new ElPowerSensor(data, new RangeBoundaries <int>(int.Parse(rangeBoundaries.Min), int.Parse(rangeBoundaries.Max)));
                    break;

                case "NoiseSensor":
                    sensor = new NoiseSensor(data, new RangeBoundaries <int>(int.Parse(rangeBoundaries.Min), int.Parse(rangeBoundaries.Max)));
                    break;

                case "HumiditySensor":
                    sensor = new HumiditySensor(data, new RangeBoundaries <float>(float.Parse(rangeBoundaries.Min), float.Parse(rangeBoundaries.Max)));
                    break;

                case "TemperatureSensor":
                    sensor = new TemperatureSensor(data, new RangeBoundaries <double>(double.Parse(rangeBoundaries.Min), double.Parse(rangeBoundaries.Max)));
                    break;

                default:
                    break;
                }
                Sensors.Add(sensor);
                SaveState();
            }
            catch (Exception)
            {
                MessageBox.Show("Failed to add the sensor!", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                success = false;
            }

            return(success);
        }
コード例 #5
0
 private void CreateCopy(Sensor sensor1, ref Sensor sensor2)
 {
     if (sensor1 is HumiditySensor)
     {
         sensor2 = new HumiditySensor((HumiditySensor)sensor1);
     }
     else if (sensor1 is NoiseSensor)
     {
         sensor2 = new NoiseSensor((NoiseSensor)sensor1);
     }
     else if (sensor1 is PowerConsumptionSensor)
     {
         sensor2 = new PowerConsumptionSensor((PowerConsumptionSensor)sensor1);
     }
     else if (sensor1 is TemperatureSensor)
     {
         sensor2 = new TemperatureSensor((TemperatureSensor)sensor1);
     }
     else
     {
         sensor2 = new WindowDoorSensor((WindowDoorSensor)sensor1);
     }
 }