public RuntimeMeasurementData(RuntimeMeasurement runtimeMeasurement) { this.DataType = runtimeMeasurement.DataType; this.DeviceId = runtimeMeasurement.DeviceId; this.Quality = runtimeMeasurement.Quality; this.SensorId = runtimeMeasurement.SensorId; this.Unit = runtimeMeasurement.Unit; this.Timestamp = runtimeMeasurement.Timestamp; this.Value = runtimeMeasurement.Value; }
/// <summary> /// Creates the measurement. /// </summary> /// <param name="measurement">The measurement.</param> /// <returns>The measurement element.</returns> private XmlElement CreateMeasurement(RuntimeMeasurement measurement) { var elem = this.CreateElement(CommonFormat.MeasurementElementName); this.AddAttribute(ref elem, CommonFormat.UnitAttributeName, measurement.Unit); this.AddAttribute(ref elem, CommonFormat.DataTypeAttributeName, measurement.DataType); this.AddAttribute(ref elem, CommonFormat.QualityAttributeName, measurement.Quality); this.AddAttribute(ref elem, CommonFormat.TimestampAttributeName, measurement.Timestamp); elem.InnerText = measurement.Value; return(elem); }
/// <summary> /// Initializes the runtime measurements. /// </summary> private void InitializeRuntimeMeasurements() { long index = 0; foreach (var item in this.ConfiguredMeasurements) { var measurement = new RuntimeMeasurement(true); // Sets the fields initially according to their mapping. InitializeRuntimeMeasurement(index, item, measurement); index++; // Adds to the list. this.RuntimeMeasurements.Add(measurement); } }
/// <summary> /// Inserts the measurement linq. /// </summary> /// <param name="runtimeMeasurement">The runtime measurement.</param> /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns> private bool InsertMeasurementLinq(RuntimeMeasurement runtimeMeasurement) { var retVal = false; var measurementQuery = from measurementItem in this.RuntimeMeasurements where (runtimeMeasurement.DeviceId == measurementItem.DeviceId) && (runtimeMeasurement.SensorId == measurementItem.SensorId) select measurementItem; var measurement = measurementQuery.FirstOrDefault(); if (measurement != null) { var index = this.RuntimeMeasurements.IndexOf(measurement); if (index != -1) { this.RuntimeMeasurements.RemoveAt(index); this.RuntimeMeasurements.Insert(index, new RuntimeMeasurementData(runtimeMeasurement)); retVal = true; } } return(retVal); }
/// <summary> /// Inserts the measurement. /// </summary> /// <param name="runtimeMeasurement">The runtime measurement.</param> /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns> private bool InsertMeasurement(RuntimeMeasurement runtimeMeasurement) { var retVal = false; foreach (var measurement in this.RuntimeMeasurements) { if (runtimeMeasurement.DeviceId == measurement.DeviceId && runtimeMeasurement.SensorId == measurement.SensorId) { var index = this.RuntimeMeasurements.IndexOf(measurement); if (index != -1) { this.RuntimeMeasurements.RemoveAt(index); this.RuntimeMeasurements.Insert(index, new RuntimeMeasurementData(runtimeMeasurement)); retVal = true; break; } } } return(retVal); }
/// <summary> /// Initializes runtime measurement. /// </summary> /// <param name="index">The index.</param> /// <param name="item">The item.</param> /// <param name="measurement">The measurement.</param> private static void InitializeRuntimeMeasurement(long index, ConfiguredMeasurement item, RuntimeMeasurement measurement) { // Initializes the request index. measurement.RequestIndex = index; // Initializes the fields. // The device id is always a static value, the mapping is ignored here. measurement.DeviceId = item.DeviceId.Value; // The sensor id is always a static value, the mapping is ignored here. measurement.SensorId = item.SensorId.Value; // Sets the unit. measurement.Unit = InitializeValue(item.Unit); // The data type of the configured item is an enumerated value. measurement.DataType = new DataTypeDisplayNames()[(int)item.DataType]; // Sets the timestamp. measurement.Timestamp = InitializeValue(item.Timestamp); // Sets the quality. measurement.Quality = InitializeValue(item.Quality); // Sets the value. measurement.Value = InitializeValue(item.Value); }