Ejemplo n.º 1
0
            public void TrainMovementCreated(OBATP OBATP)
            {
                lock (OBATP)
                {
                    using (Message message = new Message())
                    {
                        message.DS   = (UInt32)Enums.Message.DS.DS;
                        message.Size = (UInt32)Enums.Message.Size.Size; //(40 + sourceMessageData.Length); //
                        message.ID   = (UInt32)Enums.Message.ID.OBATP_TO_WSATP;
                        message.DST  = 61001;
                        message.SRC  = (UInt32)OBATP.OBATP_ID;
                        message.RTC  = DateTimeExtensions.GetAllMiliSeconds();
                        message.NO   = 1;

                        message.CRC = 47851476196393100;
                        ////OBATP_TO_WSATP içerik oluşturma
                        using (OBATP_TO_WSATP OBATP_TO_WSATP = new OBATP_TO_WSATP()) // buradan çıkınca patlayabilir bakılacak
                        {
                            OBATP_TO_WSATP.EmergencyBrakeApplied        = Convert.ToByte(false);
                            OBATP_TO_WSATP.TrainAbsoluteZeroSpeed       = Convert.ToByte(false);
                            OBATP_TO_WSATP.AllTrainDoorsClosedAndLocked = Convert.ToByte(false);
                            OBATP_TO_WSATP.EnablePSD1 = Convert.ToByte(255);
                            OBATP_TO_WSATP.EnablePSD2 = Convert.ToByte(255);
                            //OBATP_TO_WSATP.ActiveATP = Convert.ToByte("\x02".Substring(2), NumberStyles.HexNumber); // Encoding.ASCII.GetBytes("\x02");
                            OBATP_TO_WSATP.ActiveATP      = Byte.Parse("0x02".Substring(2), NumberStyles.HexNumber); // Encoding.ASCII.GetBytes("\x02");
                            OBATP_TO_WSATP.ActiveCab      = Byte.Parse("0x03".Substring(2), NumberStyles.HexNumber); //Convert.ToByte("\x03");
                            OBATP_TO_WSATP.TrainDirection = Convert.ToByte(OBATP.Direction);
                            OBATP_TO_WSATP.TrainCoupled   = Byte.Parse("0x04".Substring(2), NumberStyles.HexNumber); //Convert.ToByte("\x04");
                            OBATP_TO_WSATP.TrainIntegrity = Convert.ToByte(false);
                            OBATP_TO_WSATP.TrainLocationDeterminationFault = Convert.ToByte(false);
                            OBATP_TO_WSATP.TrackDatabaseVersionMajor       = Convert.ToByte(1);
                            OBATP_TO_WSATP.TrackDatabaseVersionMinor       = Convert.ToByte(1);
                            OBATP_TO_WSATP.TrainDerailment = Convert.ToByte(false);

                            Array.Copy(OBATP.footPrintTracks, OBATP_TO_WSATP.FootPrintTrackSectionID, OBATP.footPrintTracks.Length);
                            Array.Copy(OBATP.virtualOccupationTracks, OBATP_TO_WSATP.VirtualOccupancyTrackSectionID, OBATP.virtualOccupationTracks.Length);

                            OBATP_TO_WSATP.BerthingOk  = Convert.ToByte(false);
                            OBATP_TO_WSATP.TrainNumber = Convert.ToByte((UInt32)OBATP.Vehicle.TrainID);

                            byte[] OBATP_TO_WSATP_ByteArray = OBATP_TO_WSATP.ToByte();
                            message.DATA = OBATP_TO_WSATP_ByteArray;
                        }

                        //send message to wsatp
                        SendMsgToServer(message.ToByte());
                    }
                }
            }
Ejemplo n.º 2
0
        public void TrainMovementCreated(OBATP OBATP)
        {
            //m_rect.Location = new Point(Convert.ToInt32(OBATP.FrontOfTrainLocationWithFootPrintInRoute   * RouteScaleRatio) - Convert.ToInt32(TrainLengthCMReScale) + offsetX, 100);


            m_rect.Location = new Point(Convert.ToInt32((OBATP.FrontOfTrainLocationWithFootPrintInRoute - TrainLengthCM) * RouteScaleRatio) + offsetX, 100);

            asdasd = OBATP.DoorStatus;

            //m_rect.Location = new Point(Convert.ToInt32(OBATP.RearOfTrainLocationWithFootPrintInRoute * RouteScaleRatio) + offsetX, 100);


            trainSpeedKMH = OBATP.Vehicle.CurrentTrainSpeedKMH.ToString("0.##");

            m_bitmapGraphics.DrawString(trainSpeedKMH + " km/sa", new Font("Arial", 8), new SolidBrush(Color.Black), new Point(m_rect.Location.X, m_rect.Location.Y));



            m_panel.Invalidate(Rectangle.Inflate(m_rect, 25, 25));
        }
Ejemplo n.º 3
0
        private void m_backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            m_settings = m_settings.DeSerialize(m_settings);
            //List<Track> route = Route.CreateNewRoute(10101, 10103, allTracks);


            Stopwatch sw = new Stopwatch();


            int counter = 0;


            OBATPPool <OBATP> pool = new OBATPPool <OBATP>(() => new OBATP());


            foreach (var item in m_settings.Trains)
            {
                counter++;


                int    trainIndex = item;
                string trainName  = "Train" + (trainIndex + 1).ToString();

                DataRow row2 = m_dataTable.NewRow();
                row2["ID"]         = counter;
                row2["Train_Name"] = trainName;
                m_dataTable.Rows.Add(row2);

                // DisplayManager.RichTextBoxInvoke(m_richTextBox, trainName + " is Created...", Color.Black);



                OBATP oBATP = new OBATP(Enums.Train_ID.Train1, trainName, m_settings.MaxTrainAcceleration, m_settings.MaxTrainDeceleration, m_settings.TrainSpeedLimit, m_settings.TrainLength, m_route);



                //pool.PutObject(oBATP);


                // //m_allOBATP.TryAdd(trainIndex, oBATP);
                // //m_allOBATP.AddOrUpdate(trainIndex, oBATP, (s, i) => oBATP);

                // oBATP.RequestStartProcess();


                // int sleepTime = Convert.ToInt32(m_settings.TrainFrequency);

                // sw.Start();



                // while (sw.Elapsed.TotalSeconds < (sleepTime))
                // {

                // }

                // sw.Reset();
            }


            //OBATP dsfregr = pool.GetObject();
        }
Ejemplo n.º 4
0
        public void TrainMovementCreated(OBATP OBATP)
        {
            lock (m_lolo)
            {
                List <int> listValuesVirtualOccupation     = m_listViewVirtualOccupation.Items.Cast <ListViewItem>().Select(item => Convert.ToInt32(item.Text)).ToList();
                bool       difflistValuesVirtualOccupation = OBATP.TrainOnTracks.VirtualOccupationTracks.Select(x => x.Track_ID).ToList().SequenceEqual(listValuesVirtualOccupation);


                if (!difflistValuesVirtualOccupation)
                {
                    m_listViewVirtualOccupation.Items.Clear();
                    OBATP.TrainOnTracks.VirtualOccupationTracks.ForEach(x => m_listViewVirtualOccupation.Items.Add(x.Track_ID.ToString()));
                }
                //new ListViewItem(new string[] { x.Track_ID.ToString(), x.Station_Name })

                List <int> listValuesFootPrintTracks     = m_listViewFootPrintTracks.Items.Cast <ListViewItem>().Select(item => Convert.ToInt32(item.Text)).ToList();
                bool       difflistValuesFootPrintTracks = OBATP.TrainOnTracks.FootPrintTracks.Select(x => x.Track_ID).ToList().SequenceEqual(listValuesFootPrintTracks);

                if (!difflistValuesFootPrintTracks)
                {
                    m_listViewFootPrintTracks.Items.Clear();
                    OBATP.TrainOnTracks.FootPrintTracks.ForEach(x => m_listViewFootPrintTracks.Items.Add(x.Track_ID.ToString()));
                }



                foreach (DataRow row in m_dataTable.Rows)
                {
                    if (row["Train_Name"].ToString() == OBATP.Vehicle.TrainName)
                    {
                        row.SetField("Speed", OBATP.Vehicle.CurrentTrainSpeedKMH.ToString());

                        row.SetField("Front_Track", OBATP.FrontOfTrainCurrentTrack.Track_ID.ToString());
                        row.SetField("Front_Track_Location", OBATP.ActualFrontOfTrainCurrentLocation.ToString("0.##"));
                        row.SetField("Front_Track_Length", OBATP.FrontOfTrainCurrentTrack.Track_Length.ToString());
                        row.SetField("Front_Track_Max_Speed", OBATP.FrontOfTrainCurrentTrack.MaxTrackSpeedKMH.ToString());


                        row.SetField("Rear_Track", OBATP.RearOfTrainCurrentTrack.Track_ID.ToString());
                        row.SetField("Rear_Track_Location", OBATP.ActualRearCurrentLocation.ToString("0.##"));
                        row.SetField("Rear_Track_Length", OBATP.RearOfTrainCurrentTrack.Track_Length.ToString());
                        row.SetField("Rear_Track_Max_Speed", OBATP.RearOfTrainCurrentTrack.MaxTrackSpeedKMH.ToString());

                        row.SetField("Total_Route_Distance", OBATP.TotalTrainDistance.ToString("0.##"));
                    }
                }


                foreach (ListViewItem li in m_listView.Items)
                {
                    int itemText = Convert.ToInt32(li.Text);


                    Track lolo = OBATP.TrainOnTracks.ActualLocationTracks.Find(x => x.Track_ID == itemText);

                    if (lolo != null)
                    {
                        //li.ForeColor = Color.Red;
                        li.BackColor = Color.Red;
                    }
                    else
                    {
                        li.BackColor = Color.White;
                    }
                }


                //foreach (Track item in OBATP.TrainOnTracks.ActualLocationTracks)
                //{
                //   ListViewItem sdffsd = m_listView.FindItemWithText(item.Track_ID.ToString());

                //    sdffsd.ForeColor = Color.Red;
                //}
                //foreach (Track item in OBATP.fdgkldfgkljdlfkgf)
                //{
                //    ListViewItem sdffsd = m_listView.FindItemWithText(item.Track_ID.ToString());

                //    sdffsd.ForeColor = Color.Red;
                //}



                if (m_comboBoxTrain.SelectedIndex == OBATP.Vehicle.TrainIndex - 1)
                {
                    //general train
                    DisplayManager.TextBoxInvoke(m_textBoxCurrentTrainSpeedKM, OBATP.Vehicle.CurrentTrainSpeedKMH.ToString());
                    DisplayManager.TextBoxInvoke(m_textBoxCurrentLocation, OBATP.ActualFrontOfTrainCurrentLocation.ToString("0.##"));
                    DisplayManager.TextBoxInvoke(m_textBoxRearCurrentLocation, OBATP.ActualRearCurrentLocation.ToString("0.##"));
                    DisplayManager.TextBoxInvoke(m_textBoxCurrentAcceleration, (OBATP.Vehicle.CurrentAcceleration / 100).ToString("0.##"));

                    if (OBATP.DoorStatus == Enums.DoorStatus.Open)
                    {
                        m_pictureBoxDoorStatus.Image = Properties.Resources.dooropen;
                    }
                    else
                    {
                        m_pictureBoxDoorStatus.Image = Properties.Resources.doorclose;
                    }



                    //DisplayManager.TextBoxInvoke(m_textBoxDoorTimerCounter, OBATP.DoorTimerCounter.ToString());

                    //if (OBATP.DoorStatus == Enums.DoorStatus.Open)
                    //    DisplayManager.TextBoxInvoke(m_textBoxDoorStatus, "Open");
                    //else
                    //    DisplayManager.TextBoxInvoke(m_textBoxDoorStatus, "Close");
                }
            }
        }
Ejemplo n.º 5
0
 public void TrainMovementCreated(OBATP OBATP)
 {
     this.m_OBATP = OBATP;
     InformWatcher();
 }