Beispiel #1
0
        private void listenFuellen()
        {
            _steckerName = textBoxStecker.Text;
            List <AnlagenElement> anlagenElemente = _model.ZeichnenElemente.Steckersuchen(_steckerName);

            foreach (AnlagenElement a in anlagenElemente)
            {
                string[] st = a.Stecker.Split(' ');
                foreach (string an in st)
                {
                    if (an.StartsWith(textBoxStecker.Text))
                    {
                        string[] ant = an.Split('_');
                        for (int i = 0; i < _listeAnschluss.Length; i++)
                        {
                            if (_listeAnschluss[i] == ant[1])
                            {
                                if (a.Ausgang.MCNr > 0)
                                {
                                    if (_listeRelaisRM[i] != null)
                                    {
                                        _listeRelaisRM[i] += " ";
                                    }
                                    _listeRelaisRM[i] = "Re" + a.Ausgang.SpeicherString;
                                }
                                if (a.GetType().Name == "Gleis")
                                {
                                    Gleis ag = (Gleis)a;
                                    if (ag.Eingang.MCNr > 0)
                                    {
                                        if (_listeRelaisRM[i] != null)
                                        {
                                            _listeRelaisRM[i] += " ";
                                        }
                                        _listeRelaisRM[i] += "RM" + ag.Eingang.SpeicherString;
                                    }
                                }
                                if (_listePCBez[i] != null)
                                {
                                    _listePCBez[i] += " ";
                                }
                                _listePCBez[i] += a.KurzBezeichnung;
                                if (_listeAnlagenBez[i] != null)
                                {
                                    _listeAnlagenBez[i] += " ";
                                }
                                _listeAnlagenBez[i] += a.Bezeichnung;
                            }
                        }
                    }
                }
            }
            for (int i = 0; i < _listeAnschluss.Length; i++)
            {
                _listeAnlagenBez[i] = _model.StringBereinigen(_listeAnlagenBez[i]);
                _listePCBez[i]      = _model.StringBereinigen(_listePCBez[i]);
                _listeRelaisRM[i]   = _model.StringBereinigen(_listeRelaisRM[i]);
            }
        }
Beispiel #2
0
 public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
 {
     if (value is String)
     {
         AnlagenElement adr = (AnlagenElement)context.Instance;
         if (context.PropertyDescriptor.DisplayName == "Ausgang")
         {
             adr.Ausgang.SpeicherString = (string)value;
             context.OnComponentChanged();
             return(adr.Ausgang);
         }
         else if ((adr is Gleis) && (context.PropertyDescriptor.DisplayName == "Eingang"))
         {
             Gleis gl = (Gleis)adr;
             gl.Eingang.SpeicherString = (string)value;
             return(gl.Eingang);
         }
     }
     return(null);
 }
Beispiel #3
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);
        }
Beispiel #4
0
        public bool BearbeitenNeuZeichnen(BearbeitungsModus bearbeitungsModus, MouseButtons button, Point rasterpunkt)
        {
            if (this._neuesElement != null)
            {
                EditKommando command;
                switch (bearbeitungsModus)
                {
                case BearbeitungsModus.Gleis:
                    if (this._neuesElement.GetType().Name == "Knoten")
                    {
                        Gleis gl = new Gleis(this._zeichnenElemente, this._neuesElement.Zoom, this._anzeigeTyp, (Knoten)this._neuesElement, (Knoten)this._neuesElement);
                        this._neuesElement = gl;
                    }
                    else
                    {
                        Gleis gl = (Gleis)this._neuesElement;
                        command = new EditKommando(EditAction.Neuzeichnen, ElementTyp.Gleis, this.ZeichnenElemente
                                                   , (object)new object[] { this._zeichnenElemente.GleisElemente.SucheFreieNummer()
                                                                            , gl.StartKn.PositionRaster, gl.EndKn.PositionRaster });
                        command.Ausfuehren();
                        NeuesElementVorschauReset();
                        return(true);
                    }
                    break;

                case BearbeitungsModus.Signal:
                    _neuesElement.GleisElementAustragen();
                    command = new EditKommando(EditAction.Neuzeichnen, ElementTyp.Signal, this.ZeichnenElemente
                                               , (object)new object[] { this._zeichnenElemente.SignalElemente.SucheFreieNummer()
                                                                        , ((RasterAnlagenElement)_neuesElement).PositionRaster, ((Signal)_neuesElement).InZeichenRichtung });
                    command.Ausfuehren();
                    NeuesElementVorschauReset();
                    return(true);

                case BearbeitungsModus.Entkuppler:
                    _neuesElement.GleisElementAustragen();
                    command = new EditKommando(EditAction.Neuzeichnen, ElementTyp.Entkuppler, this.ZeichnenElemente
                                               , (object)new object[] { this._zeichnenElemente.EntkupplerElemente.SucheFreieNummer()
                                                                        , ((RasterAnlagenElement)_neuesElement).PositionRaster });
                    command.Ausfuehren();
                    NeuesElementVorschauReset();
                    return(true);

                case BearbeitungsModus.Schalter:
                    _neuesElement.GleisElementAustragen();
                    command = new EditKommando(EditAction.Neuzeichnen, ElementTyp.Schalter, this.ZeichnenElemente
                                               , (object)new object[] { this._zeichnenElemente.SchalterElemente.SucheFreieNummer()
                                                                        , ((RasterAnlagenElement)_neuesElement).PositionRaster });
                    command.Ausfuehren();
                    NeuesElementVorschauReset();
                    return(true);

                case BearbeitungsModus.Fss:
                    _neuesElement.GleisElementAustragen();
                    command = new EditKommando(EditAction.Neuzeichnen, ElementTyp.FSS, this.ZeichnenElemente
                                               , (object)new object[] { this._zeichnenElemente.FssElemente.SucheFreieNummer()
                                                                        , ((RasterAnlagenElement)_neuesElement).PositionRaster });
                    command.Ausfuehren();
                    NeuesElementVorschauReset();
                    return(true);

                case BearbeitungsModus.InfoElement:
                    _neuesElement.GleisElementAustragen();
                    command = new EditKommando(EditAction.Neuzeichnen, ElementTyp.InfoElement, this.ZeichnenElemente
                                               , (object)new object[] { this._zeichnenElemente.InfoElemente.SucheFreieNummer()
                                                                        , ((RasterAnlagenElement)_neuesElement).PositionRaster });
                    command.Ausfuehren();
                    NeuesElementVorschauReset();
                    return(true);

                case BearbeitungsModus.EingangsSchalter:
                    _neuesElement.GleisElementAustragen();
                    command = new EditKommando(EditAction.Neuzeichnen, ElementTyp.EingangsSchalter, this.ZeichnenElemente
                                               , (object)new object[] { this._zeichnenElemente.EingSchalterElemente.SucheFreieNummer()
                                                                        , ((RasterAnlagenElement)_neuesElement).PositionRaster });
                    command.Ausfuehren();
                    NeuesElementVorschauReset();
                    return(true);
                }
            }
            return(false);
        }
Beispiel #5
0
        public bool NeuesElementVorschau(BearbeitungsModus bearbeitungsModus, Point letzterRasterpunkt, int zoom)
        {
            if (this._neuesElement == null)
            {
                switch (bearbeitungsModus)
                {
                case BearbeitungsModus.Gleis:
                    this._neuesElement = new Knoten(this._zeichnenElemente, zoom, this._anzeigeTyp, letzterRasterpunkt);
                    break;

                case BearbeitungsModus.Schalter:
                    this._neuesElement = new Schalter(this._zeichnenElemente, zoom, this._anzeigeTyp, letzterRasterpunkt);
                    break;

                case BearbeitungsModus.Signal:
                    this._neuesElement = new Signal(this._zeichnenElemente, zoom, this._anzeigeTyp, letzterRasterpunkt, false);
                    break;

                case BearbeitungsModus.Entkuppler:
                    this._neuesElement = new Entkuppler(this._zeichnenElemente, zoom, this._anzeigeTyp, letzterRasterpunkt);
                    break;

                case BearbeitungsModus.Fss:
                    this._neuesElement = new FSS(this._zeichnenElemente, zoom, this._anzeigeTyp, letzterRasterpunkt);
                    break;

                case BearbeitungsModus.InfoElement:
                    this._neuesElement = new InfoFenster(this._zeichnenElemente, zoom, this._anzeigeTyp, letzterRasterpunkt);
                    break;

                case BearbeitungsModus.EingangsSchalter:
                    this._neuesElement = new EingangsSchalter(this._zeichnenElemente, zoom, this._anzeigeTyp, letzterRasterpunkt);
                    break;
                }
            }
            else
            {
                switch (bearbeitungsModus)
                {
                case BearbeitungsModus.Gleis:
                    if (this._neuesElement.GetType().Name == "Knoten")
                    {
                        ((RasterAnlagenElement)this._neuesElement).PositionRaster = letzterRasterpunkt;
                        this._neuesElement.BearbeitenAktualisierenNeuZeichnen();
                    }
                    else
                    {
                        Gleis gl = (Gleis)this._neuesElement;
                        gl.EndKn = new Knoten(this._zeichnenElemente, zoom, this._anzeigeTyp, letzterRasterpunkt);
                        gl.BearbeitenAktualisierenNeuZeichnen();
                    }
                    break;

                case BearbeitungsModus.InfoElement:
                case BearbeitungsModus.Signal:
                case BearbeitungsModus.Entkuppler:
                case BearbeitungsModus.Schalter:
                case BearbeitungsModus.Fss:
                case BearbeitungsModus.EingangsSchalter:
                    ((RasterAnlagenElement)this._neuesElement).PositionRaster = letzterRasterpunkt;
                    this._neuesElement.BearbeitenAktualisierenNeuZeichnen();
                    break;
                }
            }
            return(true);
        }
Beispiel #6
0
        private void buttonArduinoExport_Click(object sender, EventArgs e)
        {
            StreamWriter arduinoStreamWriter = new StreamWriter("ArduinoDaten.txt", false, Encoding.UTF8);

            foreach (MCSpeicher ard in _model.ZeichnenElemente.ListeMCSpeicher.Elemente)
            {
                arduinoStreamWriter.WriteLine("Arduino " + ard.ID);
                for (int i = 0; i < 3; i++)
                {//Relaisplatine
                    arduinoStreamWriter.WriteLine("Relais-Platine " + ard.ID + "-" + i);
                    string[] kurzBezeichnungArray = new string[17];
                    kurzBezeichnungArray[0] = "PC-Bezeichnung";
                    string[] anlagenBezeichnungArray = new string[17];
                    anlagenBezeichnungArray[0] = "Anlagen-Bezeichnung";
                    string[] steckerArray = new string[17];
                    steckerArray[0] = "Stecker";
                    string[] rmArray = new string[17];
                    rmArray[0] = "Rückmeldung";
                    string[] reglerArray = new string[17];
                    reglerArray[0] = "Regler";
                    List <AnlagenElement> anlagenElemente = _model.ZeichnenElemente.RelaisAdresseSuchen(ard.ID, i);
                    foreach (AnlagenElement a in anlagenElemente)
                    {
                        int b = a.Ausgang.BitNr + 1;
                        kurzBezeichnungArray[b]    = kurzBezeichnungArray[b] + a.KurzBezeichnung + " ";
                        anlagenBezeichnungArray[b] = anlagenBezeichnungArray[b] + a.Bezeichnung + " ";
                        steckerArray[b]            = steckerArray[b] + a.Stecker + " ";
                        if (a.GetType().Name == "Gleis")
                        {
                            Gleis g = (Gleis)a;
                            rmArray[b] = rmArray[b] + "RM" + g.Eingang.SpeicherString + " ";
                        }
                        if (a.GetType().Name == "FSS")
                        {
                            FSS f = (FSS)a;
                            int r = f.ReglerNummer1;
                            if (r > 0)
                            {
                                rmArray[b] = rmArray[b] + "Regler" + r + " ";
                            }
                            if (r < 0)
                            {
                                FSS f1 = _model.ZeichnenElemente.FssElemente.Element(-r);
                                rmArray[b] = rmArray[b] + //f1.KurzBezeichnung + "_" +
                                             "Re" + f1.Ausgang.SpeicherString + " ";
                            }
                            r = f.ReglerNummer2;
                            if (r > 0)
                            {
                                reglerArray[b] = reglerArray[b] + "Regler" + r + " ";
                            }
                            if (r < 0)
                            {
                                FSS f2 = _model.ZeichnenElemente.FssElemente.Element(-r);
                                reglerArray[b] = reglerArray[b] + //f2.KurzBezeichnung + "_" +
                                                 "Re" + f2.Ausgang.SpeicherString + " ";
                            }
                        }
                    }

                    for (int a = 0; a < 17; a++)
                    {
                        arduinoStreamWriter.Write(StringBereinigen(kurzBezeichnungArray[a]) + "\t");
                    }
                    arduinoStreamWriter.WriteLine("");
                    for (int a = 0; a < 17; a++)
                    {
                        arduinoStreamWriter.Write(StringBereinigen(anlagenBezeichnungArray[a]) + "\t");
                    }
                    arduinoStreamWriter.WriteLine(" ");
                    for (int a = 0; a < 17; a++)
                    {
                        arduinoStreamWriter.Write(StringBereinigen(steckerArray[a]) + "\t");
                    }
                    arduinoStreamWriter.WriteLine("");
                    for (int a = 0; a < 17; a++)
                    {
                        arduinoStreamWriter.Write(StringBereinigen(rmArray[a]) + "\t");
                    }
                    arduinoStreamWriter.WriteLine("");
                    for (int a = 0; a < 17; a++)
                    {
                        arduinoStreamWriter.Write(StringBereinigen(reglerArray[a]) + "\t");
                    }
                    arduinoStreamWriter.WriteLine(" ");
                }

                for (int i = 0; i < 2; i++)
                {//Rückmelde-Platinen
                    arduinoStreamWriter.WriteLine("RM-Platine " + ard.ID + "-" + i);
                    string[] kurzBezeichnungArray = new string[17];
                    kurzBezeichnungArray[0] = "PC-Bezeichnung";
                    string[] anlagenBezeichnungArray = new string[17];
                    anlagenBezeichnungArray[0] = "Anlagen-Bezeichnung";
                    string[] steckerArray = new string[17];
                    steckerArray[0] = "Stecker";
                    string[] rmArray = new string[17];
                    rmArray[0] = "Rückmeldung";
                    string[] relaisArray = new string[17];
                    relaisArray[0] = "Relais";
                    List <Gleis> gleisElemente = _model.ZeichnenElemente.RMAdresseSuchen(ard.ID, i); //_model.ZeichnenElemente.RMSuchen(ard.ID, i);
                    foreach (Gleis g in gleisElemente)
                    {
                        int b = g.Eingang.BitNr + 1;
                        kurzBezeichnungArray[b]    = kurzBezeichnungArray[b] + g.KurzBezeichnung + " ";
                        anlagenBezeichnungArray[b] = anlagenBezeichnungArray[b] + g.Bezeichnung + " ";
                        steckerArray[b]            = steckerArray[b] + g.Stecker + " ";
                        relaisArray[b]             = relaisArray[b] + "Re"
                                                     + g.Ausgang.SpeicherString + " ";
                    }
                    for (int a = 0; a < kurzBezeichnungArray.Length; a++)
                    {
                        arduinoStreamWriter.Write(StringBereinigen(kurzBezeichnungArray[a]) + "\t");
                    }
                    arduinoStreamWriter.WriteLine("");
                    for (int a = 0; a < anlagenBezeichnungArray.Length; a++)
                    {
                        arduinoStreamWriter.Write(StringBereinigen(anlagenBezeichnungArray[a]) + "\t");
                    }
                    arduinoStreamWriter.WriteLine("");
                    for (int a = 0; a < steckerArray.Length; a++)
                    {
                        arduinoStreamWriter.Write(StringBereinigen(steckerArray[a]) + "\t");
                    }
                    arduinoStreamWriter.WriteLine("");
                    for (int a = 0; a < relaisArray.Length; a++)
                    {
                        arduinoStreamWriter.Write(StringBereinigen(relaisArray[a]) + "\t");
                    }
                    arduinoStreamWriter.WriteLine("");
                }
            }
            arduinoStreamWriter.Flush();
            arduinoStreamWriter.Dispose();
        }
Beispiel #7
0
 private void gleisLaden(int ID)
 {
     _gleis = _model.ZeichnenElemente.GleisElemente.Element(ID);
     _model.BearbeitenSelektieren(_gleis);
     gleisDatenLaden();
 }