Example #1
0
        private List <SensorNode> GetSensors(SensorNodeBase tree)
        {
            List <SensorNode> result = new List <SensorNode>();

            if (tree == null || tree.children == null || tree.children.Count == 0)
            {
                return(result);
            }

            foreach (SensorNodeBase node in tree.children)
            {
                if (node.GetType() == typeof(SensorGroup))
                {
                    result.AddRange(GetSensors(node));
                }
                else
                {
                    SensorNode sens = node as SensorNode;
                    if (sens != null)
                    {
                        result.Add(sens);
                    }
                }
            }
            return(result);
        }
Example #2
0
        public SensorNode GetSensor(string source, string Identifier)
        {
            SensorNode result = null;

            if (source_id != source)
            {
                return(null);
            }
            foreach (SensorNodeBase node in children)
            {
                if (node.GetType() == typeof(SensorGroup))
                {
                    SensorGroup g = node as SensorGroup;
                    result = g.GetSensor(source, Identifier);
                }
                else
                {
                    SensorNode sens = node as SensorNode;
                    if (sens != null)
                    {
                        if (sens.identifier == Identifier)
                        {
                            result = sens;
                        }
                    }
                }
                if (result != null)
                {
                    break;
                }
            }
            return(result);
        }
Example #3
0
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member 'SensorNodeBase.GetSensor(string, string)'
        public SensorNode GetSensor(string source, string Identifier)
#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member 'SensorNodeBase.GetSensor(string, string)'
        {
            SensorNode result = null;

            if (source_id != source)
            {
                return(null);
            }
            foreach (SensorNodeBase node in children)
            {
                if (node.GetType() == typeof(SensorGroup))
                {
                    SensorGroup g = node as SensorGroup;
                    result = g.GetSensor(source, Identifier);
                }
                else
                {
                    SensorNode sens = node as SensorNode;
                    if (sens != null)
                    {
                        if (sens.identifier == Identifier)
                        {
                            result = sens;
                        }
                    }
                }
                if (result != null)
                {
                    break;
                }
            }
            return(result);
        }
Example #4
0
        public SensorGroup read_sensors()
        {
            SensorGroup main_group = new SensorGroup();
            main_group.source_id = source;
            main_group.name = source;

            SensorNode node;

            node = new SensorNode();
            node.source_id = source;
            node.idx = 0;
            node.identifier = "hdkasdk";
            node.is_sensor = true;
            node.name = "Dummy Sensor 1";
            node.unit = (int)SensorNodeBase.UnitType.Number;
            node.range = (int)SensorNodeBase.Range.None;
            node.time_scale = (int)SensorNodeBase.TimeScale.None;
            node.sensor_value = rnd_number.Next(2000, 10000) / 100.0;
            main_group.children.Add(node);

            node = new SensorNode();
            node.source_id = source;
            node.idx = 0;
            node.identifier = "loz9324zld";
            node.is_sensor = true;
            node.name = "Dummy Sensor 2";
            node.unit = (int)SensorNodeBase.UnitType.Temperature;
            node.range = (int)SensorNodeBase.Range.None;
            node.time_scale = (int)SensorNodeBase.TimeScale.None;
            node.sensor_value = rnd_number.Next(5000, 7000) / 100.0;
            main_group.children.Add(node);

            return main_group;
        }
Example #5
0
        private List<SensorNode> GetSensorsFromGroup(string Parent)
        {
            if (sensors == null || sensors.Length == 0)
                return null;
            List<SensorNode> result = new List<SensorNode>();
            foreach (OhmSensor s in sensors)
            {
                if (s != null && s.Parent == Parent)
                {
                    SensorNode sens = new SensorNode();
                    sens.name = s.Name;
                    sens.identifier = s.Identifier;
                    sens.unit = (int)SensorNode.UnitType.Number;
                    sens.time_scale = (int)SensorNode.TimeScale.None;
                    sens.range = (int)SensorNode.Range.None;
                    sens.is_sensor = true;
                    sens.source_id = source;
                    int round = 3;

                    if (!double.IsNaN(s.Value))
                        sens.sensor_value = s.Value;
                    else
                        sens.sensor_value = double.NaN;

                    switch (s.SensorType)
                    {
                        case "Temperature":
                            sens.unit = (int)SensorNode.UnitType.Temperature;
                            round = 2;
                            break;
                        case "Clock":
                            sens.unit = (int)SensorNode.UnitType.Frequency;
                            if (!Double.IsNaN(sens.sensor_value))
                                sens.sensor_value *= 1000000.0;
                            round = 1;
                            break;
                        case "Volt":
                            sens.unit = (int)SensorNode.UnitType.Voltage;
                            round = 2;
                            break;
                        case "Fan":
                            sens.unit = (int)SensorNode.UnitType.RotationSpeed;
                            sens.time_scale = (int)SensorNode.TimeScale.Minute;
                            round = 0;
                            break;
                        case "Flow":
                            sens.unit = (int)SensorNode.UnitType.Flow;
                            round = 2;
                            break;
                        case "Load":
                        case "Control":
                        case "Level":
                            sens.unit = (int)SensorNode.UnitType.Percent;
                            round = 2;
                            break;
                    }
                    if (!Double.IsNaN(sens.sensor_value))
                    {
                        sens.sensor_value = Math.Round(sens.sensor_value, round);
                        result.Add(sens);
                    }
                }
            }
            return result;
        }