Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
 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);
     }
 }
Beispiel #3
0
        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");
            }
        }
Beispiel #4
0
 public double GetHistoryItemMaxValue(DataObjectCategory dObjcat)
 {
     if (!_Items.ContainsKey(dObjcat.Value))
     {
         return(0);
     }
     return(_Items[dObjcat.Value].MaxValue);
 }
Beispiel #5
0
        public int GetHistoryItemCount(DataObjectCategory dObjCat)
        {
            if (_HistoryData.Count < 1)
            {
                return(0);
            }

            return(_HistoryData.Count(i => i.Category.Value == dObjCat.Value));
        }
Beispiel #6
0
        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)));
        }
Beispiel #8
0
        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));
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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());
        }
Beispiel #11
0
        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());
        }
Beispiel #12
0
        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));
            }
        }
Beispiel #13
0
        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());
        }
Beispiel #14
0
 public LogItem(double Value, DateTime Timepoint, DataObjectCategory dobjCat)
 {
     this.Value         = Value;
     this.Timepoint     = Timepoint;
     this.DataObjectCat = dobjCat;
 }
Beispiel #15
0
 public bool ItemExists(DataObjectCategory dobjCat)
 {
     return(_Items.ContainsKey(dobjCat.Value));
 }
Beispiel #16
0
        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);
            }
        }
Beispiel #17
0
 public LogObject(double value, DataObjectCategory category, DateTime timepoint)
 {
     this.Value     = value;
     this.Category  = category;
     this.Timepoint = timepoint;
 }