public Trend GetTrend(DataObjectCategory dobjCat) { List <double> lst = new List <double>(); foreach (LogObject logObj in _HistoryData) { if (logObj.Category.Value == dobjCat.Value) { lst.Add(logObj.Value); } } //Trend aus den letzten 'numEntriesConsider' Einträgen berechnen double calcTrend = Common.CalculateTrend(lst); //double stdAbw = Common.CalculateStdDev(lst); Console.WriteLine("getTrend::method calcTrend returned {0} for {1}", calcTrend, dobjCat.Value); if (calcTrend < 0) { return(Trend.DOWN); } else if (calcTrend > 0) { return(Trend.UP); } else { return(Trend.CONSTANT); } }
public static bool HasCapability(DataObjectCategory dobjCat, DataObjectProtocol dop) { if (dobjCat.Value == DataObjectCategory.Luftdruck.Value) { return(HasAirPressure(dop)); } else if (dobjCat.Value == DataObjectCategory.HeatIndex.Value) { return(HasHeatIndex(dop)); } else if (dobjCat.Value == DataObjectCategory.Luftfeuchtigkeit.Value) { return(HasHumidity(dop)); } else if (dobjCat.Value == DataObjectCategory.Lichtwert.Value) { return(HasLUX(dop)); } else if (dobjCat.Value == DataObjectCategory.Temperatur.Value) { return(HasTemperature(dop)); } else if (dobjCat.Value == DataObjectCategory.Taupunkt.Value) { return(CanCalcumateDewPoint(dop)); } else { return(false); } }
static public string GetSensorValueUnit(DataObjectCategory typ, bool leadingSpace = true) { string ret = (leadingSpace) ? " " : ""; if (typ.Value == DataObjectCategory.Luftdruck.Value) { return(ret + "mb"); } else if (typ.Value == DataObjectCategory.Temperatur.Value) { return(ret + "°C"); } else if (typ.Value == DataObjectCategory.HeatIndex.Value) { return(ret + "°C"); } else if (typ.Value == DataObjectCategory.Luftfeuchtigkeit.Value) { return(ret + "%"); } else if (typ.Value == DataObjectCategory.Lichtwert.Value) { return(ret + "lux"); } else if (typ.Value == DataObjectCategory.Taupunkt.Value) { return(ret + "°C"); } else { return("N/A"); } }
public double GetHistoryItemMaxValue(DataObjectCategory dObjcat) { if (!_Items.ContainsKey(dObjcat.Value)) { return(0); } return(_Items[dObjcat.Value].MaxValue); }
public int GetHistoryItemCount(DataObjectCategory dObjCat) { if (_HistoryData.Count < 1) { return(0); } return(_HistoryData.Count(i => i.Category.Value == dObjCat.Value)); }
public double GetItem(DataObjectCategory dobjCat) { if (!ItemExists(dobjCat)) { return(double.MinValue); } return(_Items[dobjCat.Value].Value); }
private static string GetData(DataObject dobjExt, string dobjCat) { double temp = dobjExt.GetItem(dobjCat); if (temp == double.MinValue) { return("Keine Daten"); } return(HttpUtility.HtmlEncode(temp.ToString("F") + " " + DataObjectCategory.GetSensorValueUnit(dobjCat))); }
public double GetLogItem(string timepoint, DataObjectCategory Category) { Dictionary <DataObjectCategory, LogItem> items = new Dictionary <DataObjectCategory, LogItem>(); foreach (LogObject logObj in _HistoryData) { if (logObj.Timepoint.ToString("dd.MM.yyyy HH:mm:ss") == timepoint && logObj.Category.Value == Category.Value) { return(logObj.Value); } } throw new MissingFieldException(string.Format("Es wurde kein Wert zum Zeitpunkt {0} und zur Kategorie {1} gefunden.", timepoint, Category.Value)); }
public List <LogItem> GetLogItems(DataObjectCategory dobj) { List <LogItem> lst = new List <LogItem>(); foreach (LogObject logObj in _HistoryData) { if (logObj.Category.Value == dobj.Value) { lst.Add(new LogItem(logObj.Value, logObj.Timepoint, logObj.Category)); } } return(lst); }
private static string GetHtmlData(DataObject dobj) { StringBuilder sb = new StringBuilder(); sb.Clear(); foreach (DataObjectCategory cat in DataObjectCategory.GetAvailableProtocols(dobj)) { double value = dobj.GetItem(cat); string name = cat.Value.ToString(); } return(sb.ToString()); }
private static string CreateHTMLTableString(DataObject dobj) { if (!XML.HtmlEnabled || !dobj.DataAvailable) { return(string.Empty); } StringBuilder sb = new StringBuilder(); sb.Clear(); List <string> capabaleItems = DataObjectCategory.GetCapableItems(dobj.Protocol); sb.AppendLine("</br><h3>" + HttpUtility.HtmlEncode(dobj.Name) + "</h3>"); sb.AppendLine(" <table> "); sb.AppendLine(" <tr>"); sb.AppendLine(" <th>" + HttpUtility.HtmlEncode("Datum und Uhrzeit") + "</th>"); foreach (string s in capabaleItems) { sb.AppendLine(" <th>" + HttpUtility.HtmlEncode(s) + "</th>"); } sb.AppendLine(" <th>" + HttpUtility.HtmlEncode("Zusatz-Info") + "</th>"); sb.AppendLine(" </tr>"); foreach (string dt in dobj.GetLogTimings()) { sb.AppendLine(" <tr>"); sb.AppendLine(" <td>" + dt + "</td>"); foreach (string s in capabaleItems) { sb.AppendLine(" <td>" + HttpUtility.HtmlEncode(dobj.GetLogItem(dt, s) + DataObjectCategory.GetSensorValueUnit(s)) + "</td>"); } sb.AppendLine(" <td>" + HttpUtility.HtmlEncode(dobj.AdditionalInformation) + "</td>"); sb.AppendLine(" </tr>"); } sb.AppendLine(" </table> "); sb.AppendLine("</br>"); return(sb.ToString()); }
public void AddDataItem(string name, double value, DataObjectCategory dObjCat) { DateTime timepoint = DateTime.Now; if (!_Items.ContainsKey(name)) { DetailsTimePoint dtp = new DetailsTimePoint { Value = value, MinValue = value, MaxValue = value, MinTimepoint = timepoint, MaxTimepoint = timepoint, DataObjCategory = dObjCat }; _Items.Add(name, dtp); } else { _Items[name].Value = value; _Items[name].DataObjCategory = dObjCat; if (_Items[name].MinValue > value) { _Items[name].MinValue = value; _Items[name].MinTimepoint = timepoint; } if (_Items[name].MaxValue < value) { _Items[name].MaxValue = value; _Items[name].MaxTimepoint = timepoint; } } if (EnableAddDataToHistory) { AddItemToHistory(new LogObject(value, dObjCat, timepoint)); } }
private static string CreateTopOfHtml(DataObject dobj) { if (!XML.HtmlEnabled || !dobj.DataAvailable) { return(string.Empty); } StringBuilder sb = new StringBuilder(); sb.Clear(); List <string> capabaleItems = DataObjectCategory.GetCapableItems(dobj.Protocol); sb.AppendLine("</br><h3>" + HttpUtility.HtmlEncode("Sensor: " + dobj.Name) + "</h3>"); sb.AppendLine("<table>"); sb.AppendLine(" <tr>"); sb.AppendLine(" <th>Bezeichnung</th>"); sb.AppendLine(" <th>Wert</th>"); sb.AppendLine(" </tr>"); foreach (string s in capabaleItems) { sb.AppendLine("<tr>"); sb.AppendLine("<td>" + HttpUtility.HtmlEncode(s) + "</td><td>" + GetData(dobj, s) + "</td>"); sb.AppendLine("</tr>"); } sb.AppendLine("</table>"); sb.AppendLine(HttpUtility.HtmlEncode("Zuletzt aktualisiert: " + dobj.GetLastUpdatedFormatted()) + "</br>"); return(sb.ToString()); }
public LogItem(double Value, DateTime Timepoint, DataObjectCategory dobjCat) { this.Value = Value; this.Timepoint = Timepoint; this.DataObjectCat = dobjCat; }
public bool ItemExists(DataObjectCategory dobjCat) { return(_Items.ContainsKey(dobjCat.Value)); }
public int InsertRow(DataObject dObj) { StatusChange(eSQLStatus.Running); if (null == _connection) { if (null == CreateSQLConnection()) { Status = eSQLStatus.Error; return(SQL_EXIT_FAILURE); } } if (_connection.State != ConnectionState.Open) { _connection.Open(); } if (_connection.State == ConnectionState.Open) { SqlCommand command = new SqlCommand { Connection = _connection, CommandType = CommandType.Text, CommandText = "insert into Datalog (SensorID, SensorName, Temperature, HeatIndex, Humidity, Pressure, LUX, LogTime) VALUES (@id, @name, @temp, @head, @hum, @press, @lux, getdate())" }; //@id, @name, @temp, @head, @hum, @press, @lux, getdate())"; command.Parameters.AddWithValue("@id", dObj.UniqueID); command.Parameters.AddWithValue("@name", dObj.Name); if (DataObjectCategory.HasTemperature(dObj.Protocol)) { command.Parameters.AddWithValue("@temp", dObj.GetItem(DataObjectCategory.Temperatur)); } else { command.Parameters.AddWithValue("@temp", ""); } if (DataObjectCategory.HasHeatIndex(dObj.Protocol)) { command.Parameters.AddWithValue("@head", dObj.GetItem(DataObjectCategory.HeatIndex)); } else { command.Parameters.AddWithValue("@head", ""); } if (DataObjectCategory.HasHumidity(dObj.Protocol)) { command.Parameters.AddWithValue("@hum", dObj.GetItem(DataObjectCategory.Luftfeuchtigkeit)); } else { command.Parameters.AddWithValue("@hum", ""); } if (DataObjectCategory.HasAirPressure(dObj.Protocol)) { command.Parameters.AddWithValue("@press", dObj.GetItem(DataObjectCategory.Luftdruck)); } else { command.Parameters.AddWithValue("@press", ""); } if (DataObjectCategory.HasLUX(dObj.Protocol)) { command.Parameters.AddWithValue("@lux", dObj.GetItem(DataObjectCategory.Lichtwert)); } else { command.Parameters.AddWithValue("@lux", ""); } int rowsAffacted = command.ExecuteNonQuery(); StatusChange(eSQLStatus.Idle); return(rowsAffacted); } else { StatusChange(eSQLStatus.Error); return(SQL_EXIT_FAILURE); } }
public LogObject(double value, DataObjectCategory category, DateTime timepoint) { this.Value = value; this.Category = category; this.Timepoint = timepoint; }