예제 #1
0
        IEnumerable <byte[]> Transform(IIterator iterator, Func <bool> stop)
        {
            string reason = StaticExtensionEventInterfaces.RealtimeLogAnalysis;

            using (TimeProviderBackup backup = new TimeProviderBackup(consumer, iterator as ITimeMeasureProvider, null, reason, 0))
            {
                IDataRuntime runtime = backup.Runtime;
                IStep        st      = null;
                IMeasurement time    = (iterator as ITimeMeasureProvider).TimeMeasurement;
                if (runtime is IStep)
                {
                    st      = runtime as IStep;
                    st.Step = 0;
                }
                iterator.Reset();
                double t    = (double)time.Parameter();
                double last = t;
                Action <double, double, long> act = runtime.Step(null,
                                                                 (double timer) =>
                {
                }, reason, null);
                int i = 0;
                while (iterator.Next()) //!!! Unifinished?
                {
                    t = (double)time.Parameter();
                    act(last, t, i);
                    ++i;
                    DateTime dt = new DateTime();
                    dt += TimeSpan.FromSeconds(t);
                    object tuple =
                        new Tuple <DateTime, Dictionary <string, object> >(dt,
                                                                           measurementsWrite.WriteParameters());
                    yield return(objectToBytes(tuple));

                    if (stop())
                    {
                        break;
                    }
                }
            }
        }
        public static IEnumerable <object> PerformIteratorEnumerable(this IDataConsumer consumer, IIterator iterator,
                                                                     ITimeMeasureProvider timeProvider, string reason, Func <bool> stop)
        {
            try
            {
                using (TimeProviderBackup backup = new TimeProviderBackup(consumer, timeProvider, null, reason, 0))
                {
                    IDataRuntime runtime = backup.Runtime;
                    IStep        st      = null;
                    IMeasurement time    = timeProvider.TimeMeasurement;
                    if (runtime is IStep)
                    {
                        st      = runtime as IStep;
                        st.Step = 0;
                    }
                    iterator.Reset();
                    double t    = (double)time.Parameter();
                    double last = t;
                    Action <double, double, long> act = runtime.Step(null,
                                                                     (double timer) => { }, reason, null);
                    int i = 0;
                    IEnumerable <object> enu = runtime.AllComponents;


                    while (iterator.Next())
                    {
                    }
                }
            }
            catch (Exception ex)
            {
                ex.ShowError(10);
            }

            yield return(null);
        }