コード例 #1
0
 /// <summary>
 /// When a schedule changes open or close gates
 /// </summary>
 /// <param name="schedule"></param>
 private void ScheduleHasChanged(AirplaneSchedule schedule)
 {
     if (schedule.Active)
     {
         OpenGate(schedule.GateId);
     }
     else
     {
         CloseGate(schedule.GateId);
     }
 }
コード例 #2
0
ファイル: ScheduleManager.cs プロジェクト: blackout1471/H2
        /// <summary>
        /// Get the schedule in string format
        /// </summary>
        /// <returns></returns>
        public override string ToString()
        {
            string s = "";

            for (int i = 0; i < Schedules.Length; i++)
            {
                AirplaneSchedule cur = Schedules[i];

                s += $"Destination: {cur.Destination} Gate: {cur.GateId} Opens: {cur.OpenGate.ToString("HH.mm")} Leaving: {cur.Leaving.ToString("HH.mm")} Is Open {cur.Active}\n";
            }

            return(s);
        }
コード例 #3
0
ファイル: ScheduleManager.cs プロジェクト: blackout1471/H2
        /// <summary>
        /// Get the current opens gates
        /// </summary>
        /// <returns></returns>
        public uint[] GetCurrentOpenGates()
        {
            List <uint> ids = new List <uint>();

            for (int i = 0; i < Schedules.Length; i++)
            {
                AirplaneSchedule cur = Schedules[i];

                if (cur.OpenGate <= DateTime.Now && cur.Leaving > DateTime.Now)
                {
                    ids.Add(cur.GateId);
                }
            }

            return(ids.ToArray());
        }
コード例 #4
0
ファイル: ScheduleManager.cs プロジェクト: blackout1471/H2
        /// <summary>
        /// Loads the air plane schedule
        /// </summary>
        /// <param name="path"></param>
        public void LoadAirPlaneSchedule()
        {
            string[] data;

            try
            {
                data = File.ReadAllLines(Path);
            }
            catch (Exception e)
            {
                throw e;
            }

            schedules = new AirplaneSchedule[data.Length];

            for (int i = 0; i < schedules.Length; i++)
            {
                schedules[i] = new AirplaneSchedule();
                schedules[i].ReadData(data[i]);
            }
        }
コード例 #5
0
ファイル: ScheduleManager.cs プロジェクト: blackout1471/H2
        /// <summary>
        /// Check whether the schedule is active or not
        /// </summary>
        protected override void ThreadWork()
        {
            while (true)
            {
                for (int i = 0; i < Schedules.Length; i++)
                {
                    AirplaneSchedule cur = Schedules[i];

                    if (cur.OpenGate <= DateTime.Now && cur.Leaving > DateTime.Now)
                    {
                        cur.Active = true;
                    }
                    else
                    {
                        cur.Active = false;
                    }
                }

                // Don't let the cpu spin
                Thread.Sleep(1000);
            }
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: blackout1471/H2
 /// <summary>
 /// Called when the schedule is changed
 /// </summary>
 /// <param name="schedule"></param>
 static void ShowChanges(AirplaneSchedule schedule)
 {
     CentralManager.Instance.ConsoleLogger.Write(CentralManager.Instance.ScheduleManager.ToString());
     CentralManager.Instance.ConsoleLogger.Append($"Press [0 - {CentralManager.Instance.ScheduleManager.Schedules.Length - 1}] to forcefully open/close schedules gates");
 }