private List <AdaptEvent> GetPoints(string root, DateTime start, DateTime end)
        {
            List <AdaptEvent> results = new List <AdaptEvent>();

            byte[]       data = File.ReadAllBytes(root);
            EventSummary pt   = new EventSummary(data);

            if (pt.Tmin > end)
            {
                return(new List <AdaptEvent>());
            }
            if (pt.Tmax < start)
            {
                return(new List <AdaptEvent>());
            }

            int index = EventSummary.NSize;


            while (index < data.Length)
            {
                long     ts         = BitConverter.ToInt64(data, index);
                double   value      = BitConverter.ToDouble(data, index + 8);
                double[] parameters = new double[m_parameters.Count()];

                for (int i = 0; i < parameters.Count(); i++)
                {
                    parameters[i] = BitConverter.ToDouble(data, index + 8 + 8 + i * 8);
                }

                Gemstone.Ticks ticks = new Gemstone.Ticks(ts);

                index = index + 8 + 8 + parameters.Count() * 8;

                if (ticks.Value < start.Ticks || ticks.Value > end.Ticks)
                {
                    continue;
                }

                AdaptEvent point = new AdaptEvent(m_guid, ticks, value, m_parameters.Select((key, i) => new KeyValuePair <string, double>(key, parameters[i])).ToArray());
                point.Parameters = parameters;

                results.Add(point);
            }

            return(results);
        }
예제 #2
0
 private ITimeSeriesValue AdjustSignal(ITimeSeriesValue original, string key)
 {
     if (original.IsEvent)
     {
         try
         {
             AdaptEvent originalEvt = (AdaptEvent)original;
             return(new AdaptEvent(key, original.Timestamp, originalEvt.Value,
                                   originalEvt.ParameterNames
                                   .Select(item => new KeyValuePair <string, double>(item, originalEvt[item])).ToArray()
                                   ));
         }
         catch
         {
             return(new AdaptValue(key, original.Value, original.Timestamp));
         }
     }
     return(new AdaptValue(key, original.Value, original.Timestamp));
 }
예제 #3
0
        private void CleanupEvent(ITimeSeriesValue Value)
        {
            m_isEvent         = false;
            m_eventParameters = new List <string>();
            if (!Value.IsEvent)
            {
                return;
            }
            try
            {
                m_isEvent = true;
                AdaptEvent evt = (AdaptEvent)Value;
                m_eventParameters = evt.ParameterNames;

                if (File.Exists($"{m_rootFolder}{Path.DirectorySeparatorChar}Root.config"))
                {
                    File.Delete($"{m_rootFolder}{Path.DirectorySeparatorChar}Root.config");
                }
            }
            catch (Exception ex)
            {
                m_isEvent = false;
            }
        }