Пример #1
0
        private string AuslesenBefehlsliste(List <Befehl> list)
        {
            string spString = String.Empty;

            foreach (Befehl befehl in list)
            {
                spString += "\t";
                AnlagenElement el = befehl.Element;
                if (el is Gleis)
                {
                    spString += "Gl" + el.ID + ":" + (befehl.SchaltZustand ? "An" : "Aus");
                }
                else if (el is Signal)
                {
                    spString += "Sn" + el.ID + ":" + (befehl.SchaltZustand ? "An" : "Aus");
                }
                else if (el is Weiche)
                {
                    spString += "We" + el.ID + ":" + (befehl.SchaltZustand ? "An" : "Aus");
                }
                else if (el is FSS)
                {
                    spString += "Fss" + el.ID + ":" + (befehl.SchaltZustand ? "An" : "Aus");
                }
            }
            return(spString);
        }
Пример #2
0
        private bool EinlesenBefehlsliste(List <Befehl> list, string[] spString, bool all = false)
        {
            int i = 1;

            if (all = true)
            {
                i = 0;
            }

            for (; i < spString.Length; i++)
            {
                string[]       befehl = spString[i].Split(':');
                string[]       elName = Regex.Matches(befehl[0], @"[a-zA-Z]+|\d+").Cast <Match>().Select(m => m.Value).ToArray();
                AnlagenElement el     = null;
                if (elName.Length != 2 && befehl.Length != 2)
                {
                    continue;
                }
                switch (elName[0])
                {
                case "Gl":
                    el = this.Parent.GleisElemente.Element(Convert.ToInt16(elName[1]));
                    break;

                case "Sn":
                    el = this.Parent.SignalElemente.Element(Convert.ToInt16(elName[1]));
                    break;

                case "We":
                    el = this.Parent.WeicheElemente.Element(Convert.ToInt16(elName[1]));
                    break;

                case "Fss":
                    el = this.Parent.FssElemente.Element(Convert.ToInt16(elName[1]));
                    break;

                default:
                    break;
                }
                if (el != null)
                {
                    bool zustand = false;
                    if (befehl[1] == "An")
                    {
                        zustand = true;
                    }
                    else if (befehl[1] != "Aus")
                    {
                        return(false);
                    }
                    list.Add(new Befehl(el, zustand));
                }
            }
            return(true);
        }
Пример #3
0
        public Point GetRasterPosition(AnlagenElement element, int glPosition)
        {
            double abst = glPosition;

            if ((_direction % 2) == 1)
            {
                abst *= Math.Sqrt(2);
            }
            double winkelRad = _direction * Math.PI / 4;

            return(new Point(StartKn.PositionRaster.X + (int)Math.Round(abst * Math.Cos(winkelRad))
                             , StartKn.PositionRaster.Y - (int)Math.Round(abst * Math.Sin(winkelRad))
                             ));
        }
Пример #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="parent"></param>
        public void ListeAktivieren()        //(AnlagenElemente parent)
        {
            _liste = new List <Befehl>();
            //_aktiv = true;
            if (_listenString != "" && _listenString != null)
            {
                string[] stringArray = _listenString.Split(new char[] { ' ', ';' });
                for (int i = 0; i < stringArray.Length; i++)
                {
                    string[]       befehl = stringArray[i].Split(':');
                    string[]       elName = Regex.Matches(befehl[0], @"[a-zA-Z]+|\d+").Cast <Match>().Select(m => m.Value).ToArray();
                    AnlagenElement el     = null;
                    //Befehl nBefehl = new Befehl(,);

                    if (elName.Length > 0)
                    {
                        switch (elName[0])
                        {
                        case "Gl":
                            el = this._parent.GleisElemente.Element(Convert.ToInt16(elName[1]));
                            break;

                        case "Sn":
                            el = this._parent.SignalElemente.Element(Convert.ToInt16(elName[1]));
                            break;

                        case "We":
                            el = this._parent.WeicheElemente.Element(Convert.ToInt16(elName[1]));
                            break;

                        case "Fss":
                            el = this._parent.FssElemente.Element(Convert.ToInt16(elName[1]));
                            break;

                        default:
                            break;
                        }
                    }

                    if (el != null)
                    {
                        Befehl nBefehl = new Befehl();
                        nBefehl.Element = el;
                        switch (befehl[1])
                        {
                        case "An":
                            nBefehl.Attribut = Elementzustand.An;
                            break;

                        case "Aus":
                            nBefehl.Attribut = Elementzustand.Aus;
                            break;

                        case "Neg":
                            nBefehl.Attribut = Elementzustand.Neg;
                            break;

                        case "Gleich":
                            nBefehl.Attribut = Elementzustand.Gleich;
                            break;
                        }
                        _liste.Add(nBefehl);
                    }
                }
            }
        }
Пример #5
0
 public Befehl(AnlagenElement element, bool schaltZustand)
 {
     this.Element       = element;
     this.SchaltZustand = schaltZustand;
 }