Example #1
0
        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);
            }
        }
Example #2
0
        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);
        }