/// <summary> /// Add a new Temperature measure value /// </summary> /// <param name="temperature">temperature</param> public void AddTemperature(Measure[] temperatures) { if (temperatures == null) { return; } foreach (Measure temperature in temperatures) { if (temperature.SensorId == Config.Instance.InnerTemperatureSensorId) { InnerCondition.Temperature = temperature; } if (temperature.SensorId == Config.Instance.OuterTemperatureSensorId) { OuterCondition.Temperature = temperature; } if (temperature.SensorId == Config.Instance.SoilTemperatureSensorId) { SoilCondition.Temperature = temperature; } } }
/// <summary> /// Create a new instance of <see cref="AirMeasure"/> /// </summary> public AirMeasure() { Temperature = new Measure(); Humidity = new Measure(); WindSpeed = new Measure(); Luminosity = new Measure(); }
/// <summary> /// Add a measures to the graph series and the text displays /// </summary> /// <param name="measures">Array of measures</param> public void AddMeasures(Measure[] measures) { if (measures.Length == 0) { this.ForegroundColor = FEZ_Components.FEZTouch.Color.Red; this.SetText("No data", 0); } else { this.ForegroundColor = FEZ_Components.FEZTouch.Color.Blue; for (int i = 0; i < measures.Length; i++) { Measure measure = measures[i]; string name = measure.SensorId; if (name.Length > 8) { name = name.Substring(0, 8); } string text = name + "= " + measure.value.ToString("N1"); text += "*C"; this.SetText(text, i); graph.AddData(measure.SensorId, measure.value); Debug.Print(measure.SensorId.ToString()); Debug.Print(measure.value.ToString()); } } }
/// <summary> /// Temperature conversion and display /// </summary> /// <param name="state">state objet required by the timer delegate</param> public static void TemperaturesCapture(object state) { Measure[] measures = temperatureBus.GetTemperature(); // No sensor = Demo mode if (measures.Length == 0) { Random rand = new Random(); measures = new Measure[1]; measures[0] = new Measure(); measures[0].SensorId = Config.Instance.InnerTemperatureSensorId; measures[0].value = (++demoTemperature % 48); measures[0].timestamp = DateTime.Now; } greenhouse.AddTemperature(measures); temperatureForm.AddMeasures(measures); temperatureForm.Paint(lcd); }
/// <summary> /// Perfom an conversion / reading cycle /// </summary> /// <returns>Array of value measured</returns> public Measure[] GetTemperature() { if (sensors == null) { return new Measure[0]; } Measure[] measures = new Measure[sensors.Length]; DateTime acquisitionDate = DateTime.Now; for (int i = 0; i < sensors.Length; i++) { IOneWireSensor sensor = sensors[i]; sensor.SendOrder(); sensor.ReadResult(); } for (int i = 0; i < sensors.Length; i++) { IOneWireSensor sensor = sensors[i]; ITemperatureSensor tempSensor = sensor as ITemperatureSensor; measures[i] = new Measure(); measures[i].SensorId = sensor.Address.ToString(); measures[i].timestamp = acquisitionDate; measures[i].value = tempSensor.Temperature; } return measures; }