コード例 #1
0
ファイル: Model_Editieren.cs プロジェクト: Blackdesert13/MoBS
 /// <summary>
 /// Setzt das Vorschau Element zurück (weist diesem NULL zu)
 /// </summary>
 public void NeuesElementVorschauReset()
 {
     if (this._neuesElement != null)
     {
         this._neuesElement = null;
         OnAnlageNeuZeichnen();
     }
 }
コード例 #2
0
ファイル: Model_Editieren.cs プロジェクト: Blackdesert13/MoBS
 public void BearbeitenSelektieren(AnlagenElement element)
 {
     BearbeitenSelektionLöschen();
     if (element == null)
     {
         OnAnlageNeuZeichnen();
         return;
     }
     this.AuswahlElemente.Add(element);
     element.Selektiert = true;
     OnAnlageNeuZeichnen();
 }
コード例 #3
0
ファイル: SteckerAnzeige.cs プロジェクト: Blackdesert13/MoBS
        private void elementEintragen(AnlagenElement Element, string Anschluss)
        {
            for (int i = 0; i < dataGridView1.RowCount; i++)
            {
                string z = Convert.ToString(dataGridView1[0, 1].Value);
                if (z == Anschluss)

                // if (string.Compare(z, Anschluss,true))

                {
                    dataGridView1[1, i].Value = dataGridView1[1, i].Value + " " + Element.Bezeichnung;
                }
            }
            // dataGridView1
        }
コード例 #4
0
 public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
 {
     if (value != null)
     {
         if (value is BefehlsListe)
         {
             AnlagenElement el = (AnlagenElement)context.Instance;
             if (el != null)
             {
                 return(el.Koppelung.ListenString);
             }
         }
         return(value.GetType().FullName);
     }
     return(null);
 }
コード例 #5
0
 public EditKommando(EditAction aktion, AnlagenElement element, AnlagenElemente anlagenElemente, object value)
 {
     if (element is Gleis)
     {
         _elementTyp = ElementTyp.Gleis;
     }
     else if (element is Knoten)
     {
         _elementTyp = ElementTyp.Knoten;
         _alterWert  = ((Knoten)element).PositionRaster;
     }
     else if (element is Signal)
     {
         _elementTyp = ElementTyp.Signal;
         _alterWert  = ((Signal)element).PositionRaster;
     }
     else if (element is Schalter)
     {
         _elementTyp = ElementTyp.Schalter;
         _alterWert  = ((Schalter)element).PositionRaster;
     }
     else if (element is Entkuppler)
     {
         _elementTyp = ElementTyp.Entkuppler;
         _alterWert  = ((Entkuppler)element).PositionRaster;
     }
     else if (element is FSS)
     {
         _elementTyp = ElementTyp.FSS;
         _alterWert  = ((FSS)element).PositionRaster;
     }
     else if (element is InfoFenster)
     {
         _elementTyp = ElementTyp.InfoElement;
         _alterWert  = ((InfoFenster)element).PositionRaster;
     }
     else if (element is EingangsSchalter)
     {
         _elementTyp = ElementTyp.EingangsSchalter;
         _alterWert  = ((EingangsSchalter)element).PositionRaster;
     }
     _aktion          = aktion;
     _element         = element;
     _neuerWert       = value;
     _anlagenElemente = anlagenElemente;
 }
コード例 #6
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);
 }
コード例 #7
0
ファイル: Model_Editieren.cs プロジェクト: Blackdesert13/MoBS
        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);
        }
コード例 #8
0
 public frmProperties(AnlagenElement AElement)
 {
     InitializeComponent();
     propertyGrid1.SelectedObject = AElement;
     this.Text = AElement.InfoString;
 }
コード例 #9
0
ファイル: Model_Schalten.cs プロジェクト: Blackdesert13/MoBS
        /// <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);
        }