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

            _tank = new Tank(exec, 1000.0, 100.0);

            DateTime when = DateTime.Parse("Fri, 15 Jul 2016 00:00:00");

            exec.SetStartTime(when); // Must do this, or the initial level is computed at time zero, rather than Fri, 15 Jul 2016 00:00:00.
            exec.RequestEvent(delegate { _tank.OpenFillValve(); }, when, 1.0);
            exec.RequestEvent(delegate { _tank.CloseFillValve(); }, when + TimeSpan.FromMinutes(15.0));
            exec.RequestEvent(delegate { _tank.OpenFillValve(40); }, when + TimeSpan.FromMinutes(30.0));
            for (int i = 0; i < 8; i++)
            {
                exec.RequestEvent(ReportTankLevel, when, 0.0);
                when += TimeSpan.FromMinutes(6.0);
            }

            exec.Start();
        }