Example #1
0
            public static void Run()
            {
                IExecutive exec = ExecFactory.Instance.CreateExecutive();

                #region Set up a metronome to fire once a second in sim time.

                DateTime         startAt     = DateTime.Parse("Fri, 15 Jul 2016 00:00:00");
                DateTime         finishAfter = DateTime.Parse("Fri, 15 Jul 2016 00:09:59");
                TimeSpan         period      = TimeSpan.FromSeconds(.005);
                Metronome_Simple metronome   = Metronome_Simple.CreateMetronome(exec, startAt, finishAfter, period);
                metronome.TickEvent += UpdateState;

                #endregion

                // Attach an ExecController so that it runs at 100 x of user time,
                // and issues 10 render events every second.
                double         scale          = 2.0; // 10^2, or 100 x real-time.
                int            frameRate      = 10;  // 10 render events per second.
                ExecController execController = new ExecController(exec, scale, frameRate, exec);

                execController.Render += Render;

                exec.Start();

                Console.WriteLine("{0} simulation events fired.", exec.EventCount);
            }
Example #2
0
            public static void Run()
            {
                IExecutive       exec        = ExecFactory.Instance.CreateExecutive();
                DateTime         startAt     = DateTime.Parse("Thu, 10 Jul 2003 03:51:21");
                DateTime         finishAfter = DateTime.Parse("Wed 15 Dec 2004 19:22:47");
                TimeSpan         period      = TimeSpan.FromMinutes(9000.0);
                Metronome_Simple metronome   = Metronome_Simple.CreateMetronome(exec, startAt, finishAfter, period);

                metronome.TickEvent += WriteIt;

                exec.Start();
            }
Example #3
0
            public static void Run()
            {
                IExecutive       exec        = ExecFactory.Instance.CreateExecutive();
                DateTime         startAt     = DateTime.Parse("Fri, 15 Jul 2016 00:00:00");
                DateTime         finishAfter = DateTime.Parse("Fri, 15 Jul 2016 23:59:59");
                TimeSpan         period      = TimeSpan.FromMinutes(60);
                Metronome_Simple metronome   = Metronome_Simple.CreateMetronome(exec, startAt, finishAfter, period);

                metronome.TickEvent += WriteIt;

                exec.Start();
            }
Example #4
0
 /// <summary>
 /// Initializes the executive.
 /// </summary>
 /// <param name="executionParameters">The execution parameters.</param>
 private void InitializeExecutive(ExecParameters executionParameters)
 {
     m_worldModel.Executive.SetStartTime(executionParameters.StartTime);
     m_worldModel.Executive.RequestEvent((exec, data) => exec.Stop(), executionParameters.EndTime);
     Metronome_Simple metronome = Metronome_Simple.CreateMetronome(
         m_worldModel.Executive,
         executionParameters.StartTime,
         executionParameters.EndTime,
         executionParameters.Increment);
     if (m_firstInitialization)
     {
         metronome.TickEvent += m_worldModel.Update;
     }
     m_firstInitialization = false;
 }