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()); } } }
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)); }
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(); }
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"); } } }
public void TrainMovementCreated(OBATP OBATP) { this.m_OBATP = OBATP; InformWatcher(); }