public TrainController(ISimulationEnvironment env, ITrainModel tm)
 {
     _environment       = env;
     _environment.Tick += _environment_Tick;
     _tcGUI             = null;
     Train              = tm;
     _log           = "";
     _announcements = new Dictionary <int, string>();
     _announcements.Add(8, "Arrived at Shadyside Station\r\n");
     _announcements.Add(16, "Arrived at Herron Station\r\n");
     _announcements.Add(21, "Arrived at Swissville Station\r\n");
     _announcements.Add(25, "Arrived at Penn Station\r\n");
     _announcements.Add(35, "Arrived at Steel Plaza Station\r\n");
     _announcements.Add(45, "Arrived at First Avenue Station\r\n");
     _announcements.Add(60, "Arrived at South Hills Junction\r\n");
     _announcements.Add(2, "Arrived at Pioneer Station\r\n");
     _announcements.Add(9, "Arrived at Edgebrook Station\r\n");
     _announcements.Add(22, "Arrived at Whited Station\r\n");
     _announcements.Add(31, "Arrived at South Bank Station\r\n");
     _announcements.Add(39, "Arrived at Central Station\r\n");
     _announcements.Add(48, "Arrived at Inglewood Station\r\n");
     _announcements.Add(57, "Arrived at Overbrook Station\r\n");
     _announcements.Add(65, "Arrived at Glenbury Junction\r\n");
     _announcements.Add(73, "Arrived at Dormont Station\r\n");
     _announcements.Add(77, "Arrived at Mt. Lebanon Station\r\n");
     _announcements.Add(96, "Arrived at Castle Shannon Station\r\n");
     _announcements.Add(105, "Arrived at Dormont Station\r\n");
     _announcements.Add(114, "Arrived at Glenbury Junction\r\n");
     _announcements.Add(123, "Arrived at Overbrook Station\r\n");
     _announcements.Add(132, "Arrived at Inglewood Station\r\n");
     _announcements.Add(141, "Arrived at Central Station\r\n");
 }
 public TrainController(ISimulationEnvironment env, ITrainModel tm)
 {
     _environment = env;
     _environment.Tick += _environment_Tick;
     _tcGUI = null;
     Train = tm;
     _log = "";
     _announcements = new Dictionary<int, string>();
     _announcements.Add(8, "Arrived at Shadyside Station\r\n");
     _announcements.Add(16, "Arrived at Herron Station\r\n");
     _announcements.Add(21, "Arrived at Swissville Station\r\n");
     _announcements.Add(25, "Arrived at Penn Station\r\n");
     _announcements.Add(35, "Arrived at Steel Plaza Station\r\n");
     _announcements.Add(45, "Arrived at First Avenue Station\r\n");
     _announcements.Add(60, "Arrived at South Hills Junction\r\n");
     _announcements.Add(2, "Arrived at Pioneer Station\r\n");
     _announcements.Add(9, "Arrived at Edgebrook Station\r\n");
     _announcements.Add(22, "Arrived at Whited Station\r\n");
     _announcements.Add(31, "Arrived at South Bank Station\r\n");
     _announcements.Add(39, "Arrived at Central Station\r\n");
     _announcements.Add(48, "Arrived at Inglewood Station\r\n");
     _announcements.Add(57, "Arrived at Overbrook Station\r\n");
     _announcements.Add(65, "Arrived at Glenbury Junction\r\n");
     _announcements.Add(73, "Arrived at Dormont Station\r\n");
     _announcements.Add(77, "Arrived at Mt. Lebanon Station\r\n");
     _announcements.Add(96, "Arrived at Castle Shannon Station\r\n");
     _announcements.Add(105, "Arrived at Dormont Station\r\n");
     _announcements.Add(114, "Arrived at Glenbury Junction\r\n");
     _announcements.Add(123, "Arrived at Overbrook Station\r\n");
     _announcements.Add(132, "Arrived at Inglewood Station\r\n");
     _announcements.Add(141, "Arrived at Central Station\r\n");
 }
        public ITrainModel RemoveTrian(ITrainModel train)
        {
            ITrainModel toRemove = null;

            foreach (ITrainModel t in _trains)
            {
                //check if train ID's match.. need ITrain class to implement
                if (train.TrainID == t.TrainID)
                {
                    toRemove = t;
                    break;
                }
            }

            return(toRemove);
        }
 public void RemoveTrain(ITrainModel train)
 {
     _allTrains.Remove(train);
 }
 public void AddTrain(ITrainModel train)
 {
     _allTrains.Add(train);
 }
Пример #6
0
        public ITrainModel RemoveTrian(ITrainModel train)
        {
            ITrainModel toRemove = null;

            foreach (ITrainModel t in _trains)
            {
                //check if train ID's match.. need ITrain class to implement
                if (train.TrainID == t.TrainID)
                {
                    toRemove = t;
                    break;
                }
            }

            return toRemove;
        }
Пример #7
0
 public void AddTrain(ITrainModel train)
 {
     _trains.Add(train);
 }
 public TrainAndBlock()
 {
     _train = null;
     _block = null;
 }
Пример #9
0
        /// <summary>
        /// Manages Trains on Track
        /// </summary>
        public void PopulateTrack()
        {
            _populateTrackMutex.WaitOne();
            //_env.stopTick();
            //_env.Tick -= _env_Tick;
            //clear current trains
            //foreach(IBlock b in _containedBlocks)
            for (int i = 0; i < _containedTrainAndBlock.Count; i++)
            {
                IBlock b = _containedTrainAndBlock[i].Block;
                if (b.Line.CompareTo("Red") == 0)
                {
                    if (!(b.SpeedLimit == 500 || b.SpeedLimit == -1))
                    {
                        LayoutCellDataContainer c = _redLineData.TriangulateContainer(b);
                        c.Tile  = _redLineData.GetBlockType(b);
                        c.Train = null;
                        if (c.Panel != null)
                        {
                            c.Panel.ReDrawMe();
                        }
                    }
                }//end if
                else
                {
                    if (!(b.SpeedLimit == 500 || b.SpeedLimit == -1))
                    {
                        LayoutCellDataContainer c = _greenLineData.TriangulateContainer(b);
                        c.Tile  = _greenLineData.GetBlockType(b);
                        c.Train = null;
                        if (c.Panel != null)
                        {
                            c.Panel.ReDrawMe();
                        }
                    }
                } //end if
            }     //end foreach

            //make list of new trains
            _containedTrainAndBlock.Clear();
            //foreach (ITrainModel t in _env.AllTrains)
            for (int i = 0; i < _env.AllTrains.Count; i++)
            {
                ITrainModel   t  = _env.AllTrains[i];
                TrainAndBlock tb = new TrainAndBlock();
                tb.Train = t;
                tb.Block = t.CurrentBlock;
                _containedTrainAndBlock.Add(tb);
            }//end foreach

            //update graphics
            //foreach (IBlock b in _containedBlocks)
            for (int i = 0; i < _containedTrainAndBlock.Count; i++)
            {
                TrainAndBlock tb = _containedTrainAndBlock[i];
                if (tb.Block.Line.CompareTo("Red") == 0)
                {
                    if (!(tb.Block.SpeedLimit == 500 || tb.Block.SpeedLimit == -1))
                    {
                        LayoutCellDataContainer c = _redLineData.TriangulateContainer(tb.Block);
                        c.Tile  = _res.Train;
                        c.Train = tb.Train;

                        if (c.Panel != null)
                        {
                            string msg = "Red Line: Train ID: " + c.Train.TrainID + " is now on Block: " + c.Block.BlockID + ".";
                            _messages.Add(msg);
                            _env.SendLogEntry("CTC Office: " + msg);
                            c.Panel.ReDrawMe();
                        }
                    }
                }//end if
                else
                {
                    if (!(tb.Block.SpeedLimit == 500 || tb.Block.SpeedLimit == -1))
                    {
                        LayoutCellDataContainer c = _greenLineData.TriangulateContainer(tb.Block);
                        c.Tile  = _res.Train;
                        c.Train = tb.Train;
                        if (c.Panel != null)
                        {
                            string msg = "Green Line: Train ID: " + c.Train.TrainID + " is now on Block: " + c.Block.BlockID + ".";
                            _messages.Add(msg);
                            _env.SendLogEntry("CTC Office: " + msg);
                            c.Panel.ReDrawMe();
                        }
                    }
                } //end if
            }     //end for each

            _populateTrackMutex.ReleaseMutex();
            //_env.Tick += _env_Tick;
            //_env.startTick();
        }//End Populate Track
 public ShowTrainEventArgs(ITrainModel train)
 {
     _train = train;
 }
 public TrainAndBlock()
 {
     _train = null;
     _block = null;
 }
 public void RemoveTrain(ITrainModel train)
 {
     _allTrains.Remove(train);
 }
 public ShowTrainEventArgs(ITrainModel train)
 {
     _train = train;
 }