private void dataGridView1_SelectionChanged(object sender, EventArgs e) { DataGridViewRow row = dataGridView1.CurrentRow; if (row != null) { int id = (int)row.Cells[0].Value; if (id != _ausgewählteFahrstrasse) { _ausgewählteFahrstrasse = id; foreach (FahrstrasseN el in _model.ZeichnenElemente.FahrstrassenElemente.AuswahlFahrstrassen) { el.Selektiert = false; } _model.ZeichnenElemente.FahrstrassenElemente.AuswahlFahrstrassen.Clear(); FahrstrasseN fahrstrasse = _model.ZeichnenElemente.FahrstrassenElemente.Fahrstrasse(_ausgewählteFahrstrasse); if (fahrstrasse != null) { fahrstrasse.Selektiert = true; _model.ZeichnenElemente.FahrstrassenElemente.AuswahlFahrstrassen.Add(fahrstrasse); _model.OnAnlageNeuZeichnen(); } } } else { } }
private void dataGridView1_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) { int column = e.ColumnIndex; if (column > 2) { DataGridViewRow row = ((DataGridView)sender).Rows[e.RowIndex]; DataGridViewCell idCell = row.Cells[0]; int id = (int)idCell.Value; FahrstrasseN fs = null; foreach (FahrstrasseN el in _fahrstrassenAnzeige.Fahrstrassen) { if (el.ID == id) { fs = el; break; } } if (fs != null) { BefehlsListe bListe = null; Form frm = null; if (column == 3) { bListe = new BefehlsListe(_model.ZeichnenElemente, false, (string)row.Cells[3].Value); frm = new FrmBefehlsliste(bListe, "Start Befehle"); } else if (column == 4) { bListe = new BefehlsListe(_model.ZeichnenElemente, false, (string)row.Cells[4].Value); frm = new FrmBefehlsliste(bListe, "End Befehle"); } if (bListe != null && frm != null) { FahrstrasseK fskAlt = _model.ZeichnenElemente.FahrstrassenKElemente.Element(_ausgewählteKombiFahrstrasse); if (fskAlt != null) { fskAlt.Selektiert = false; } //this.dataGridView2_SelectionChanged(this.dataGridView2, null); _model.OnAnlageNeuZeichnen(); frm.ShowDialog(); string newValue = bListe.ListenString.Trim().Replace(";", ""); if (column == 3) { row.Cells[3].Value = newValue.Replace(" ", "; "); } else if (column == 4) { row.Cells[4].Value = newValue.Replace(" ", "; ");; } } } } }
private void FahrstraßeStarten(object fahrstraße) { FahrstrasseN fs = (FahrstrasseN)fahrstraße; //Adresse adrStartGleis = fs.adrStartGleis; Thread.Sleep(this.FahrstraßenStartVerzögerung); if (/*adrStartGleis != null && */ fs.IsAktiv) { fs.StartGleisEinschalten(); //adrStartGleis.IsLocked = true; this.OnAnlageNeuZeichnen(); this.OnAnlagenzustandChanged(null); } }
public bool FahrstrasseSchalten(FahrstrasseN el, FahrstrassenSignalTyp signal, bool verlaengern) { bool action = false; if (this.AppTyp == AppTyp.Master) { _model.ElementToggeln( signal == FahrstrassenSignalTyp.StartSignal ? "FahrstrasseN_Start" : "FahrstrasseN_Ziel", el.ID ); //action = _model.FahrstrasseSchalten(el, signal); //if (master != null) { // master.SendeAnlageZustandsDatenAnAlle(this._model.AnlagenZustandsDatenAuslesen()); //} } if (this.AppTyp == AppTyp.Slave) { if (signal == FahrstrassenSignalTyp.ZielSignal) { if (slave != null) { try { slave.SlaveAnMasterMouseClick(el.GetType().Name + "_Ziel", el.ID); } catch (Exception e) { } } } else { if (slave != null) { try { slave.SlaveAnMasterMouseClick(el.GetType().Name + "_Start", el.ID); } catch (Exception e) { } } } return(true); } return(action); }
public bool FahrstrasseSchalten(FahrstrasseN el, FahrstrassenSignalTyp signalTyp) { if (el != null) { bool verlaengern = el.StartSignal.IsLocked; if (!el.IsAktiv && !verlaengern) { Thread fahrstraßenStartThread = new Thread(this.FahrstraßeStarten); fahrstraßenStartThread.Start(el); } bool action = el.AusgangToggeln(signalTyp, verlaengern && !el.StartSignal.AutoStart); //if (action && _ardController.IsPortOpen()) // OnAnlagenzustandChanged(el.Ausgang); if (signalTyp == FahrstrassenSignalTyp.ZielSignal) { this.ZeichnenElemente.ZugDateiSpeichern(); OnZugListeChanged(); } return(action); } return(false); }
private void fahrstraßenSpeichernToolStripMenuItem_Click(object sender, EventArgs e) { List <int> ids = new List <int>(); foreach (DataRow row in _tabelle.Rows) { FahrstrasseN fs = null; int id = (int)row[0]; //Convert.ToInt32(row[0]); ids.Add(id); foreach (FahrstrasseN el in _fahrstrassenAnzeige.Fahrstrassen) { if (el.ID == id) { fs = el; break; } } fs.StartBefehleString = (string)row[3]; fs.EndBefehleString = (string)row[4]; } for (int i = 0; i < _fahrstrassenAnzeige.Fahrstrassen.Count;) { if (ids.Contains(_fahrstrassenAnzeige.Fahrstrassen[i].ID)) { i++; } else { _fahrstrassenAnzeige.Fahrstrassen.RemoveAt(i); } } List <int> kIds = new List <int>(); foreach (DataRow row in _tabelleK.Rows) { FahrstrasseK fs = null; if ((string)row[3] == "") { continue; } if (row[0].ToString() != "") { int id = (int)row[0]; //Convert.ToInt32(row[0]); kIds.Add(id); foreach (FahrstrasseK el in _fahrstrassenKAnzeige.Fahrstrassen) { if (el.ID == id) { fs = el; break; } } fs.FahrstrassenString = " FahrstrassenListe\t" + (string)row[3]; fs.BefehleString = (string)row[4]; } else { int id = _model.ZeichnenElemente.FahrstrassenKElemente.SucheFreieNummer(); fs = new FahrstrasseK( _model.ZeichnenElemente, _model.ZeichnenElemente.Zoom, MoBaSteuerung.Anlagenkomponenten.Enum.AnzeigeTyp.Bearbeiten, new string[] { "", id.ToString() }, " FahrstrassenListe\t" + ((string)row[3]).Trim().Replace(";", "\t"), " Befehle\t" + ((string)row[3]).Trim().Replace(";", "\t") ); if (fs.StartSignal != null) { row[0] = id; row[1] = fs.StartSignal.ID; row[2] = fs.EndSignal.ID; kIds.Add(id); } } } for (int i = 0; i < _fahrstrassenKAnzeige.Fahrstrassen.Count;) { if (kIds.Contains(_fahrstrassenKAnzeige.Fahrstrassen[i].ID)) { i++; } else { _fahrstrassenKAnzeige.Fahrstrassen.RemoveAt(i); } } }
/// <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); }