示例#1
0
        public static ConcurrentDictionary <int, IHaltestelle> ReadFile(String filePath)
        {
            FileHelperEngine <HaltestelleRecord>     engine       = new FileHelperEngine <HaltestelleRecord>();
            ConcurrentDictionary <int, IHaltestelle> haltestellen = new ConcurrentDictionary <int, IHaltestelle>();

            try {
                engine.ErrorManager.ErrorMode = ErrorMode.SaveAndContinue;
                engine.Encoding = Encoding.UTF8;
                HaltestelleRecord[] res = engine.ReadFile(filePath);

                foreach (HaltestelleRecord haltestelle in res)
                {
                    //Übernehmen der eingelesenen Daten in das Programm-Model:
                    IHaltestelle transport = new Haltestelle();
                    Point        HsLoc     = new Point(haltestelle.XKoord, haltestelle.YKoord);

                    transport.Diva     = haltestelle.Diva;
                    transport.Id       = haltestelle.Id;
                    transport.Location = HsLoc;
                    transport.Name     = haltestelle.Name;

                    //Schreiben des Models in Collection für den Rückgabewert:
                    haltestellen.AddOrUpdate(transport.Id, transport, (key, oldValue) => transport);
                }
            } catch (Exception ex) {
                //Dokument konnte nicht geparst werden (Nicht vorhanden/geöffnet)
                throw new VtmParsingException("Beim Versuch die Haltestellen zu parsen ist ein Fehler aufgetreten!", filePath, ex);
            }
            return(haltestellen);
        }
示例#2
0
        /// <summary>
        /// Liest ankommende Befehle vom ArduinoController und verarbeitet diese weiters
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="a"></param>
        private void _ardController_BefehlReceived(object sender, BefehlEventArgs a)
        {
            byte[] befehl  = a.Befehl;
            string befehlS = String.Empty;

            foreach (byte b in befehl)
            {
                befehlS += b + " ";
            }
            Debug.Print("Befehl von Arduino: " + befehlS);

            if (befehl.Length == 5)
            {
                Arduino arduino = this._zeichnenElemente.AnlagenZustand.GetArduino(befehl[0]);
                if (arduino != null)
                {
                    switch (befehl[1])
                    {
                    case 10:
                        arduino.Rueckmeldung[0] = (ushort)(befehl[2] + befehl[3] * 256);
                        break;

                    case 11:
                        arduino.Rueckmeldung[1] = (ushort)(befehl[2] + befehl[3] * 256);
                        break;

                    case 19:
                        aktiveFSZielgleisPruefen();
                        OnArduinoRueckmeldungReceived();
                        //OnAnlageNeuZeichnen();//Todo: zeile entfernen oder auskommentieren
                        break;

                    case 40:
                        arduino.Ausgaenge[0] = (ushort)(befehl[2] + befehl[3] * 256);
                        OnArduinoRueckmeldungReceived();
                        break;

                    case 41:
                        arduino.Ausgaenge[1] = (ushort)(befehl[2] + befehl[3] * 256);
                        OnArduinoRueckmeldungReceived();
                        break;

                    case 42:
                        arduino.Ausgaenge[2] = (ushort)(befehl[2] + befehl[3] * 256);
                        OnArduinoRueckmeldungReceived();
                        break;

                    case 49:
                        AlleAusgaengeSenden();
                        break;

                    case 99:
                        InfoFenster sysZeit = this._zeichnenElemente.InfoElemente.Element(99);
                        int         zeit    = befehl[2] + befehl[3] * 256;
                        string      txt     = "Ard-Zeit: ";
                        txt = txt + zeit + "_";                                // Convert.ToString( zeit);
                        try {
                            if (sysZeit != null)
                            {
                                sysZeit.Text = txt;
                            }
                        }
                        catch (Exception e) {
                            Logging.Log.Schreibe(e.Message);
                        }
                        OnArduinoRueckmeldungReceived();
                        break;
                    }

                    if (befehl[1] > 99 && befehl[1] < 122)
                    {
                        int         id          = befehl[1] - 100;
                        Haltestelle haltestelle = this._zeichnenElemente.HaltestellenElemente.Element(id);
                        try {
                            if (haltestelle != null)
                            {
                                haltestelle.InfoBefehl(befehl);
                            }
                        }
                        catch (Exception e) {
                            Logging.Log.Schreibe(e.Message);
                        }
                        OnArduinoRueckmeldungReceived();
                    }
                }
            }
        }
示例#3
0
 public void TestInitialize()
 {
     point    = new Point(123.4, 432.1);
     halt     = new Haltestelle(1, 1234, "Test-Haltestelle", point);
     haltLeer = new Haltestelle();
 }