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); }
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); }
#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); }
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; }
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; }