private void EntkupplerAbschaltung(object entkuppler) { Entkuppler el = (Entkuppler)entkuppler; Thread.Sleep(this.EntkupplerAbschaltAutoWert * 1000); if (el.ElementZustand == Elementzustand.An) { el.AusgangToggeln(); this.OnAnlageNeuZeichnen(); this.OnAnlagenzustandChanged(el.Ausgang); } }
private bool Ausfuehren_Loeschen() { switch (_elementTyp) { case ElementTyp.Gleis: Gleis gleis = (Gleis)_element; foreach (Signal el in gleis.Signale) { _anlagenElemente.SignalElemente.Löschen(el); } foreach (Entkuppler el in gleis.Entkuppler) { _anlagenElemente.EntkupplerElemente.Löschen(el); } if (gleis.Fss != null) { _anlagenElemente.FssElemente.Löschen(gleis.Fss); } if (gleis.Schalter != null) { _anlagenElemente.SchalterElemente.Löschen(gleis.Schalter); } _anlagenElemente.GleisElemente.Löschen(gleis); int index = gleis.StartKn.GetGleisAnschlussNr(gleis); gleis.StartKn.Gleise[index] = null; if (index < 2) { if (gleis.StartKn.Weichen[0] != null) { _anlagenElemente.WeicheElemente.Löschen(gleis.StartKn.Weichen[0]); gleis.StartKn.Weichen[0] = null; } } else { if (gleis.StartKn.Weichen[1] != null) { _anlagenElemente.WeicheElemente.Löschen(gleis.StartKn.Weichen[1]); gleis.StartKn.Weichen[1] = null; } } int count = 0; foreach (Gleis gl in gleis.StartKn.Gleise) { if (gl != null) { count++; } } if (count == 0) { _anlagenElemente.KnotenElemente.Löschen(gleis.StartKn); } index = gleis.EndKn.GetGleisAnschlussNr(gleis); gleis.EndKn.Gleise[index] = null; if (index < 2) { if (gleis.EndKn.Weichen[0] != null) { gleis.EndKn.Weichen[0] = null; _anlagenElemente.WeicheElemente.Löschen(gleis.EndKn.Weichen[0]); } } else { if (gleis.EndKn.Weichen[1] != null) { gleis.EndKn.Weichen[1] = null; _anlagenElemente.WeicheElemente.Löschen(gleis.EndKn.Weichen[1]); } } count = 0; foreach (Gleis gl in gleis.EndKn.Gleise) { if (gl != null) { count++; } } if (count == 0) { _anlagenElemente.KnotenElemente.Löschen(gleis.EndKn); } break; case ElementTyp.Signal: Signal sig = (Signal)_element; _anlagenElemente.SignalElemente.Löschen(sig); sig.AnschlussGleis.GleisElementAustragen(sig); break; case ElementTyp.Entkuppler: Entkuppler entkuppler = (Entkuppler)_element; _anlagenElemente.EntkupplerElemente.Löschen(entkuppler); entkuppler.AnschlussGleis.GleisElementAustragen(entkuppler); break; case ElementTyp.FSS: FSS fss = (FSS)_element; _anlagenElemente.FssElemente.Löschen(fss); fss.AnschlussGleis.GleisElementAustragen(fss); break; case ElementTyp.Schalter: Schalter schalter = (Schalter)_element; _anlagenElemente.SchalterElemente.Löschen(schalter); schalter.AnschlussGleis.GleisElementAustragen(schalter); break; case ElementTyp.InfoElement: InfoFenster infoFenster = (InfoFenster)_element; _anlagenElemente.InfoElemente.Löschen(infoFenster); infoFenster.AnschlussGleis.GleisElementAustragen(infoFenster); break; case ElementTyp.Knoten: break; } return(true); }