Esempio n. 1
0
 /// <summary>
 /// Start
 /// </summary>
 /// <param name="collection">Components</param>
 /// <param name="timeUnit">Time unit</param>
 /// <param name="isAbsoluteTime">Components</param>
 /// <param name="realtimeStep">Realtime step</param>
 /// <param name="dataConsumer">Data consumer</param>
 public static IRealtime StartRealtime(this IComponentCollection collection,
                                       TimeType timeUnit, bool isAbsoluteTime, IAsynchronousCalculation realtimeStep,
                                       IDataConsumer dataConsumer, IEventLog log, string reason)
 {
     if (reason.Equals(StaticExtensionEventInterfaces.Realtime))
     {
         if (currentRuntime != null)
         {
             throw new Exception();
         }
         start(reason);
         currentRuntime = Runtime.Start(collection, timeUnit, isAbsoluteTime, realtimeStep,
                                        dataConsumer, log, reason);
         if (currentRuntime == null)
         {
             stop();
         }
     }
     else
     {
         start(reason);
         return(Runtime.Start(collection, timeUnit, isAbsoluteTime, realtimeStep,
                              dataConsumer, log, reason));
     }
     return(currentRuntime);
 }
 internal ReplacedMeasurementsBackup(Dictionary <IReplacedMeasurementParameter, string> dict,
                                     IRealtime realtime)
 {
     this.dict = dict;
     foreach (IReplacedMeasurementParameter m in dict.Keys)
     {
         string n = dict[m];
         m.Replace(
             () =>
         {
             if (output.Length == 0)
             {
                 return(null);
             }
             if (output[0] == null)
             {
                 return(null);
             }
             if (!output[0].ContainsKey(n))
             {
                 return(null);
             }
             return(output[0][n]);
         });
     }
     this.realtime = realtime;
 }
Esempio n. 3
0
        public override void Start()
        {
            base.Start();

            m_realTime = new Realtime();
            m_realTime.Start();
        }
Esempio n. 4
0
 void Start()
 {
     if (null == m_realTime)
     {
         m_realTime = new Realtime();
         m_realTime.Start();
     }
 }
Esempio n. 5
0
 /// <summary>
 /// Stops realtime
 /// </summary>
 public static void StopRealTime()
 {
     if (currentRuntime == null)
     {
         throw new Exception();
     }
     currentRuntime.Stop();
     currentRuntime = null;
     PostStop();
 }
Esempio n. 6
0
        /// <summary>
        /// Realtime analysis
        /// </summary>
        /// <param name="dataConsumer">Data consumer</param>
        /// <param name="input">Input</param>
        /// <param name="act">Action</param>
        /// <param name="reason">Reason</param>
        /// <param name="timeType">Time type</param>
        /// <param name="isAbsoluteTime">The absolute time "sign"</param>
        public static void RealtimeAnalysis(this IDataConsumer dataConsumer,
                                            IEnumerable <object> input, string reason, Action <object> act,
                                            TimeType timeType, bool isAbsoluteTime)
        {
            IDesktop             desktop    = (dataConsumer as IAssociatedObject).GetRootDesktop();
            IComponentCollection collection = dataConsumer.CreateCollection(
                reason);

            StaticExtensionEventInterfaces.NewLog = null;
            using (IDisposable disp = collection.StartRealtime(timeType,
                                                               isAbsoluteTime, null, dataConsumer, null,
                                                               reason) as IDisposable)
            {
                IRealtime        r = disp as IRealtime;
                RealtimeProvider p = r.TimeProvider as RealtimeProvider;
                Dictionary <IReplacedMeasurementParameter, string> d;
                IEnumerable <object> list = dataConsumer.CreateList(input,
                                                                    collection, out d);
                DateTime centuryBegin = new DateTime(2001, 1, 1);
                using (ReplacedMeasurementsBackup backup = new ReplacedMeasurementsBackup(d, r))
                {
                    Dictionary <string, object>[] dm = backup.Output;
                    foreach (object obj in list)
                    {
                        try
                        {
                            if (obj is Tuple <INativeReader, object[], DateTime> )
                            {
                                Tuple <INativeReader, object[], DateTime> t = obj as Tuple <INativeReader, object[], DateTime>;
                                p.DateTime = t.Item3;
                                t.Item1.Read(t.Item2);
                                act(t);
                                continue;
                            }
                        }
                        catch
                        {
                            continue;
                        }
                        Tuple <DateTime, INativeEvent, Dictionary <string, object> > tuple = obj as Tuple <DateTime, INativeEvent, Dictionary <string, object> >;
                        dm[0] = tuple.Item3;
                        DateTime dt = tuple.Item1;
                        p.DateTime = tuple.Item1;
                        tuple.Item2.Force();
                        act(tuple);
                    }
                }
            }
        }
Esempio n. 7
0
        /// <summary>
        /// Analysis of an iterator, modelled after the realtime analysis of log. Most dummy varibales will perhaps be erased
        /// </summary>
        /// <param name="dataConsumer"></param>
        /// <param name="input"></param>
        /// <param name="stop"></param>
        /// <param name="reason"></param>
        /// <param name="timeType"></param>
        /// <param name="isAbsoluteTime"></param>
        /// <returns></returns>
        public static bool RealTimeAnalysis(this IDataConsumer dataConsumer,
                                            IIterator input, Func <object, bool> stop, string reason,
                                            TimeType timeType, bool isAbsoluteTime)
        {
            return(false);

            IDesktop             desktop    = (dataConsumer as IAssociatedObject).GetRootDesktop();
            IComponentCollection collection = dataConsumer.CreateCollection(
                reason);

            StaticExtensionEventInterfaces.NewLog = null;
            using (IDisposable disp = collection.StartRealtime(timeType,
                                                               isAbsoluteTime, null, dataConsumer, null,
                                                               reason) as IDisposable)
            {
                IRealtime        r = disp as IRealtime;
                RealtimeProvider p = r.TimeProvider as RealtimeProvider;
                Dictionary <IReplacedMeasurementParameter, string> d;
            }
        }
Esempio n. 8
0
 /// <summary>
 /// Sets runtime
 /// </summary>
 /// <param name="runtime">Runtime</param>
 public static void Set(this IRealtime runtime)
 {
     Runtime = runtime;
 }