Example #1
0
        /// <summary>
        /// Creates a time series for the chemical
        /// </summary>
        /// <param name="Chem"></param>
        /// <returns></returns>
        private TimestampSeries CreateChemicalSeries(Chemical Chem)
        {
            TimestampSeries ts = new TimestampSeries();

            ts.Name = Chem.Name;
            ts.Unit = UnitFactory.Instance.GetUnit(NamedUnits.molespercubicmeter);
            Items.Add(ts);
            ChemicalsToLog.Add(Chem, ts);
            return(ts);
        }
Example #2
0
        /// <summary>
        /// Logs chemical
        /// </summary>
        /// <param name="Water"></param>
        /// <param name="Start"></param>
        /// <param name="End"></param>
        public void Log(IWaterPacket Water, DateTime Start, DateTime End)
        {
            WaterPacket wc = Water as WaterPacket;

            //Log chemicals if the water is based on WaterPacket
            if (wc != null)
            {
                if (LogAllChemicals)
                {
                    foreach (var c in wc.Chemicals.Keys)
                    {
                        TimestampSeries ts;
                        if (!ChemicalsToLog.TryGetValue(c, out ts))
                        {
                            ts = CreateChemicalSeries(c);
                        }
                        ts.AddSiValue(End, wc.GetConcentration(c));
                    }
                }
                else
                {
                    foreach (KeyValuePair <Chemical, TimestampSeries> ct in ChemicalsToLog)
                    {
                        ct.Value.AddSiValue(End, ((WaterPacket)Water).GetConcentration(ct.Key));
                    }
                }
            }

            //Log the water composition
            if (LogComposition)
            {
                foreach (var id in Water.Composition)
                {
                    TimestampSeries ts;
                    if (!CompositionLog.TryGetValue(id.Key, out ts))
                    {
                        ts = CreateCompositionTimeSeries(id.Key);
                    }
                    ts.AddValue(End, id.Value);
                }
            }
        }