private void UpdateButton_Fahrstr_GL3_links()
 {
     if (Gleis1_nach_links.GetGesetztStatus() ||
         Gleis2_nach_links.GetGesetztStatus() ||
         Gleis4_nach_links.GetGesetztStatus() ||
         Gleis5_nach_links.GetGesetztStatus() ||
         Gleis6_nach_links.GetGesetztStatus() ||
         Block2_nach_Gleis1.GetGesetztStatus() ||
         Block2_nach_Gleis2.GetGesetztStatus() ||
         Block2_nach_Gleis3.GetGesetztStatus() ||
         Block2_nach_Gleis4.GetGesetztStatus() ||
         Block2_nach_Gleis5.GetGesetztStatus() ||
         Block2_nach_Gleis6.GetGesetztStatus())
     {
         Fahrstr_GL3_links.Enabled         = false;
         Fahrstr_GL3_links.BackgroundImage = Properties.Resources.Fahrstrasse_links_deakt;
         int ListID = Signalliste.IndexOf(new Signal()
         {
             Name = "Signal_Ausfahrt_L3"
         });
         if (ListID != -1)
         {
             if (Signalliste[ListID].Zustand != 0)
             {
                 Signalliste[ListID].Schalten(0, z21Start);
             }
         }
     }
     else
     {
         Fahrstr_GL3_links.Enabled         = true;
         Fahrstr_GL3_links.BackgroundImage = Properties.Resources.Fahrstrasse_links;
     }
 }
Exemplo n.º 2
0
        private void UpdateWeiche(int Adresse, int Status)
        {
            int index = Weichenliste.FindIndex(x => x.Adresse == Adresse); //Finde Weiche mit dieser Adresse

            if (index != -1)                                               //Weiche gefunden in der Liste
            {
                Weichenliste[index].Schalten(Status);
                UpdateWeicheImGleisplan(Weichenliste[index]);
            }
            else
            {
                index = Signalliste.FindIndex(x => x.Adresse == Adresse);
                if (index != -1)//Signal gefunden in der 1. Adressen
                {
                    if (!Signalliste[index].Letzte_Adresswahl)
                    {
                        Signalliste[index].MaskenSetzen(Status);
                        UpdateSignalImGleisplan(Signalliste[index]);
                    }
                }
                else
                {
                    index = Signalliste.FindIndex(x => x.Adresse2 == Adresse);
                    if (index != -1)//Signal gefunden in der 2. Adressen
                    {
                        if (Signalliste[index].Letzte_Adresswahl)
                        {
                            Signalliste[index].MaskenSetzen(Status + 4);
                            UpdateSignalImGleisplan(Signalliste[index]);
                        }
                    }
                }
            }
        }
Exemplo n.º 3
0
        private void GetSignalStatus(string Signalname)
        {
            int ListID = Signalliste.IndexOf(new Signal()
            {
                Name = Signalname
            });                                                                   //Weiche mit diesem Namen in der Liste suchen

            if (ListID == -1)
            {
                return;                                                         //Weiche nicht vorhanden, Funktion abbrechen
            }
            int Adresse = Signalliste[ListID].Adresse;                          //Adresse der Weiche übernehmen

            z21Start.Z21_GET_WEICHE(Adresse);                                   //paket senden "GET Weiche"
            Adresse = Signalliste[ListID].Adresse2;                             //Adresse der Weiche übernehmen
            z21Start.Z21_GET_WEICHE(Adresse);                                   //paket senden "GET Weiche"
        }
 private void UpdateButton_Fahrstr_Block2_Einfahrt()
 {
     if (Gleis1_nach_links.GetGesetztStatus() ||
         Gleis2_nach_links.GetGesetztStatus())
     {
         Block2_Einfaht_GL1.Enabled = false;
         Block2_Einfaht_GL2.Enabled = false;
     }
     else
     {
         Block2_Einfaht_GL1.Enabled = true;
         Block2_Einfaht_GL2.Enabled = true;
     }
     if (Gleis3_nach_links.GetGesetztStatus() ||
         Gleis4_nach_links.GetGesetztStatus() ||
         Gleis5_nach_links.GetGesetztStatus() ||
         Gleis6_nach_links.GetGesetztStatus())
     {
         Block2_Einfahrt.Enabled         = false;
         Block2_Einfahrt.BackgroundImage = Properties.Resources.Fahrstrasse_rechts_deakt;
         int ListID = Signalliste.IndexOf(new Signal()
         {
             Name = "Signal_Einfahrt_L"
         });
         if (ListID != -1)
         {
             if (Signalliste[ListID].Zustand != 0)
             {
                 Signalliste[ListID].Schalten(0, z21Start);
             }
         }
     }
     else
     {
         Block2_Einfahrt.Enabled         = true;
         Block2_Einfahrt.BackgroundImage = Properties.Resources.Fahrstrasse_rechts;
     }
 }
Exemplo n.º 5
0
        public void SetupSignalListe()
        {
            XElement XMLFile = XElement.Load("Signalliste.xml");             //XML-Datei öffnen
            var      list    = XMLFile.Elements("Signal").ToList();          //Alle Elemente des Types Weiche in eine Liste Umwandeln

            foreach (XElement signal in list)                                //Alle Elemente der Liste einzeln durchlaufen
            {
                int SAdresse = Int16.Parse(signal.Element("Adresse").Value); //Signaladresse des Elements auslesen
                int SAdresse2;
                if (signal.Element("Adresse2") == null)
                {
                    SAdresse2 = 0;                                    //Nicht vorhanden - 2.Adresse 0 eintragen
                }
                else
                {
                    SAdresse2 = Int16.Parse(signal.Element("Adresse2").Value);     //2. Signaladresse des Elements auslesen
                }
                string SName  = signal.Element("Name").Value;                      //Signal Name des Elements auslesen
                string STyp   = signal.Element("Typ").Value;                       //Typ des Signals auslesen
                int    SAdr11 = Int16.Parse(signal.Element("Adr1Zustand1").Value); //Zustand bei Signaladresse Schaltung auf 0
                int    SAdr12 = Int16.Parse(signal.Element("Adr1Zustand2").Value); //Zustand bei Signaladresse Schaltung auf 1
                int    SAdr21 = Int16.Parse(signal.Element("Adr2Zustand1").Value); //Zustand bei 2. Signaladresse Schaltung auf 0
                int    SAdr22 = Int16.Parse(signal.Element("Adr2Zustand2").Value); //Zustand bei 2. Signaladresse Schaltung auf 1

                Signalliste.Add(new Signal()
                {
                    Name     = SName,
                    Adresse  = SAdresse,
                    Adresse2 = SAdresse2,
                    Typ      = STyp,
                    Adr1_1   = SAdr11,
                    Adr1_2   = SAdr12,
                    Adr2_1   = SAdr21,
                    Adr2_2   = SAdr22
                });   //Mit den Werten eine neue Weiche zur Fahrstr_Weichenliste hinzufügen
            }
        }