/// <summary> /// prüft ob der Zug-Typ und die Zug-Länge an diesem Signal zulässig ist /// </summary> /// <param name="PruefZug">der zu prüfende Zug</param> /// <returns>gibt true wenn der Zug am Signal zugelässig ist</returns> public bool ZugPruefung(Zug PruefZug) { if (_zugLaengeMax > 0) { } if (_zugTyp.Count != 0) { foreach (string x in _zugTyp) { if (!x.Equals(PruefZug.ZugTyp)) { return(false); } } } return(true); }
private void button1_Click(object sender, EventArgs e) { List <Zug> liste = new List <Zug>(); Random ran = new Random(); for (int i = 0; i < 100; i++) { Zug zug = new Zug() { Nummer = $"ICE {i:0000}", Laenge = ran.NextDouble() * 400, AnzahlWagen = ran.Next(1, 13), Hoechstgeschwindingkeit = ran.Next(150, 300), Wlan = ran.Next() > int.MaxValue / 2, Baujahr = DateTime.Now.AddYears(-30).AddDays(i * 94) }; liste.Add(zug); } dataGridView1.DataSource = liste; }
/// <summary> /// erstellt aus dem Formolar eine neue Liste /// </summary> private void zugListeNeu() { _zugListe.Clear(); foreach (DataGridViewRow zeile in this.dataGridView1.Rows) { string[] elem = new string[10]; elem[0] = "Zug"; elem[1] = (string)zeile.Cells[0].Value; //ID elem[2] = (string)zeile.Cells[1].Value; //Signal elem[3] = (string)zeile.Cells[3].Value; //Lok elem[4] = (string)zeile.Cells[2].Value; //Typ elem[5] = (string)zeile.Cells[6].Value; //Geschwindigkeit elem[6] = (string)zeile.Cells[4].Value; //Bezeichnung elem[7] = "0"; //Länge elem[8] = (string)zeile.Cells[7].Value; //Digitale Addresse elem[9] = (string)zeile.Cells[5].Value; //Ankunftszeit if (elem[1] != null) { Zug zug = new Zug(_pa, 0, AnzeigeTyp.Bedienen, elem); } } _pa.ZugDateiSpeichern(); }
internal Zug Read(Zug p) { if (p != null) { foreach (Zug item in p_List) { if (((Convert.ToDateTime(item.Datum).ToShortDateString()) == (Convert.ToDateTime(p.Datum).ToShortDateString())) && p.Maschine.Replace("S", "").Replace(" ", "") == item.Maschine.Replace("S","").Replace(" ","") && item.D == p.D ) { return item; } } } return null; }
public CSV_Reader(string path) { this.path = path; using (TextFieldParser parser = new TextFieldParser(path)) { parser.TextFieldType = FieldType.Delimited; parser.SetDelimiters(";"); while (!parser.EndOfData) { //Processing row string[] fields = parser.ReadFields(); Zug p = new Zug(); try { //if (((DateTime.Parse(fields[0]).ToShortDateString()) == (Convert.ToDateTime(p.Produktionsdatum).ToShortDateString())) // && fields[1] == "WR" // && fields[2] == p.Charge // && fields[4] == p.Bundnummer // ) //{ p.Datum = DateTime.Parse(fields[0]); //1 unwichtig p.Maschine = fields[2]; p.Mattentyp = fields[3]; //4 Durchmesser p.H1m = Convert.ToDouble(fields[5]); p.H2m = Convert.ToDouble(fields[6]); p.H3m = Convert.ToDouble(fields[7]); //p.a4m = Convert.ToDouble(fields[9]); //10 Mittelwert p.H125 = Convert.ToDouble(fields[9]); p.H225 = Convert.ToDouble(fields[10]); p.H325 = Convert.ToDouble(fields[11]); //p.a4_025 = Convert.ToDouble(fields[14]); //15 Mittelwert p.H175 = Convert.ToDouble(fields[13]); p.H275 = Convert.ToDouble(fields[14]); p.H375 = Convert.ToDouble(fields[15]); //p.a4_075 = Convert.ToDouble(fields[19]); //20 Mittelwert p.c1 = Convert.ToDouble(fields[17]); p.c2 = Convert.ToDouble(fields[18]); p.c3 = Convert.ToDouble(fields[19]); //p.c4 = Convert.ToDouble(fields[24]); //25 Mittelwert p.se1 = Convert.ToDouble(fields[21]); p.se2 = Convert.ToDouble(fields[22]); p.se3 = Convert.ToDouble(fields[23]); //p.se4 = Convert.ToDouble(fields[29]); //30 Summe //p.Beta = Convert.ToDouble(fields[36]); //p.Alpha = Convert.ToDouble(fields[37]); p.fR = Convert.ToDouble(fields[32]); //} p_List.Add(p); } catch (Exception) { } } } }
/// <summary> /// Umschalten eines Elementes /// </summary> /// <param name="elementName">Elementtyp</param> /// <param name="nr">ID des Elementes, welches geschaltet werden soll</param> /// <returns></returns> private bool ElementToggelnAusfuehren(string elementName, int nr) { AnlagenElement el = null; switch (elementName) { case "StartSignalGruppe": //StartSignalGruppe ssg = _zeichnenElemente.SsgElemente.Element(nr); //int signalId = ssg.FSAuswahl(); //if (signalId != 0) { // Signal sn = _zeichnenElemente.SignalElemente.Element(signalId); // if (sn != null) { // return FahrstrassenSignalSchalten(sn); // } // FahrstrassenSignalSchalten(signalId); // //el = _zeichnenElemente.FahrstrassenElemente.Fahrstrasse(signalId); // //FahrstrasseSchalten((FahrstrasseN)el, FahrstrassenSignalTyp.StartSignal); // _zeichnenElemente.FSSAktualisieren(); // return true; //} return(false); case "FahrstrasseK": el = _zeichnenElemente.FahrstrassenKElemente.Element(nr); break; case "Servo": el = _zeichnenElemente.ServoElemente.Element(nr); break; case "Signal": el = _zeichnenElemente.SignalElemente.Element(nr); break; case "Gleis": //el = zeichnenElemente.GleisElemente.Element(nr); break; case "Schalter": el = _zeichnenElemente.SchalterElemente.Element(nr); break; case "FSS": el = _zeichnenElemente.FssElemente.Element(nr); break; case "Entkuppler": el = _zeichnenElemente.EntkupplerElemente.Element(nr); break; case "Weiche": el = _zeichnenElemente.WeicheElemente.Element(nr); break; case "FahrstrasseN_Ziel": el = _zeichnenElemente.FahrstrassenElemente.Fahrstrasse(nr); FahrstrasseN fs = (FahrstrasseN)el; FahrstrasseSchalten(fs, FahrstrassenSignalTyp.ZielSignal); if (fs.EndSignal.AutoStart) { if (fs.IsAktiv) { try { Zug zug = fs.StartSignal.Zug; if (zug == null) //suche nach startsignal { FahrstrasseN fsStart = (FahrstrasseN)el; bool startFound; do { startFound = false; foreach (AnlagenElement x in _zeichnenElemente.FahrstrassenElemente.AktiveFahrstrassen) { if (((FahrstrasseN)x).EndSignal == fsStart.StartSignal) { fsStart = (FahrstrasseN)x; startFound = true; break; } } } while (startFound && fsStart.StartSignal.Zug == null); //if (fsStart.StartSignal.Zug != null) { zug = fsStart.StartSignal.Zug; //} } if (zug != null) { fs.EndSignal.ZugNr = zug.ID; } List <AnlagenElement> fsListe = FahrstrassenSignalSchalten(fs.EndSignal, true); fs.EndSignal.ZugNr = 0; if (fsListe != null && fsListe.Count > 0) { FahrstrasseN autostartFs = null; foreach (AnlagenElement x in fsListe) { if (((FahrstrasseN)x).EndSignal.ZugTypString != string.Empty) { autostartFs = (FahrstrasseN)x; break; } } if (autostartFs == null) { autostartFs = (FahrstrasseN)fsListe[0]; } FahrstrasseSchalten(autostartFs, FahrstrassenSignalTyp.ZielSignal); } } catch (Exception e) { } } } try { _zeichnenElemente.FSSAktualisieren(); } catch (Exception e) { } return(true); case "FahrstrasseN_Start": el = _zeichnenElemente.FahrstrassenElemente.Fahrstrasse(nr); FahrstrasseSchalten((FahrstrasseN)el, FahrstrassenSignalTyp.StartSignal); _zeichnenElemente.FSSAktualisieren(); return(true); } if (el != null) { bool action = el.AusgangToggeln(); //if (elementName == "FSS") _zeichnenElemente.FSSAktualisieren(); if (elementName == "Entkuppler") { if (el.ElementZustand == Elementzustand.An && EntkupplerAbschaltAutoAktiv) { Thread entkupplerAbschalt = new Thread(this.EntkupplerAbschaltung); entkupplerAbschalt.Start(el); } } //if (action && _ardController.IsPortOpen()) // OnAnlagenzustandChanged(null); return(action); } return(false); }