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); }
/// <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(); } } } }
public void TestInitialize() { point = new Point(123.4, 432.1); halt = new Haltestelle(1, 1234, "Test-Haltestelle", point); haltLeer = new Haltestelle(); }