private void listenFuellen() { _steckerName = textBoxStecker.Text; List <AnlagenElement> anlagenElemente = _model.ZeichnenElemente.Steckersuchen(_steckerName); foreach (AnlagenElement a in anlagenElemente) { string[] st = a.Stecker.Split(' '); foreach (string an in st) { if (an.StartsWith(textBoxStecker.Text)) { string[] ant = an.Split('_'); for (int i = 0; i < _listeAnschluss.Length; i++) { if (_listeAnschluss[i] == ant[1]) { if (a.Ausgang.MCNr > 0) { if (_listeRelaisRM[i] != null) { _listeRelaisRM[i] += " "; } _listeRelaisRM[i] = "Re" + a.Ausgang.SpeicherString; } if (a.GetType().Name == "Gleis") { Gleis ag = (Gleis)a; if (ag.Eingang.MCNr > 0) { if (_listeRelaisRM[i] != null) { _listeRelaisRM[i] += " "; } _listeRelaisRM[i] += "RM" + ag.Eingang.SpeicherString; } } if (_listePCBez[i] != null) { _listePCBez[i] += " "; } _listePCBez[i] += a.KurzBezeichnung; if (_listeAnlagenBez[i] != null) { _listeAnlagenBez[i] += " "; } _listeAnlagenBez[i] += a.Bezeichnung; } } } } } for (int i = 0; i < _listeAnschluss.Length; i++) { _listeAnlagenBez[i] = _model.StringBereinigen(_listeAnlagenBez[i]); _listePCBez[i] = _model.StringBereinigen(_listePCBez[i]); _listeRelaisRM[i] = _model.StringBereinigen(_listeRelaisRM[i]); } }
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); }
private bool Ausfuehren_Loeschen() { switch (_elementTyp) { case ElementTyp.Gleis: Gleis gleis = (Gleis)_element; foreach (Signal el in gleis.Signale) { _anlagenElemente.SignalElemente.Löschen(el); } foreach (Entkuppler el in gleis.Entkuppler) { _anlagenElemente.EntkupplerElemente.Löschen(el); } if (gleis.Fss != null) { _anlagenElemente.FssElemente.Löschen(gleis.Fss); } if (gleis.Schalter != null) { _anlagenElemente.SchalterElemente.Löschen(gleis.Schalter); } _anlagenElemente.GleisElemente.Löschen(gleis); int index = gleis.StartKn.GetGleisAnschlussNr(gleis); gleis.StartKn.Gleise[index] = null; if (index < 2) { if (gleis.StartKn.Weichen[0] != null) { _anlagenElemente.WeicheElemente.Löschen(gleis.StartKn.Weichen[0]); gleis.StartKn.Weichen[0] = null; } } else { if (gleis.StartKn.Weichen[1] != null) { _anlagenElemente.WeicheElemente.Löschen(gleis.StartKn.Weichen[1]); gleis.StartKn.Weichen[1] = null; } } int count = 0; foreach (Gleis gl in gleis.StartKn.Gleise) { if (gl != null) { count++; } } if (count == 0) { _anlagenElemente.KnotenElemente.Löschen(gleis.StartKn); } index = gleis.EndKn.GetGleisAnschlussNr(gleis); gleis.EndKn.Gleise[index] = null; if (index < 2) { if (gleis.EndKn.Weichen[0] != null) { gleis.EndKn.Weichen[0] = null; _anlagenElemente.WeicheElemente.Löschen(gleis.EndKn.Weichen[0]); } } else { if (gleis.EndKn.Weichen[1] != null) { gleis.EndKn.Weichen[1] = null; _anlagenElemente.WeicheElemente.Löschen(gleis.EndKn.Weichen[1]); } } count = 0; foreach (Gleis gl in gleis.EndKn.Gleise) { if (gl != null) { count++; } } if (count == 0) { _anlagenElemente.KnotenElemente.Löschen(gleis.EndKn); } break; case ElementTyp.Signal: Signal sig = (Signal)_element; _anlagenElemente.SignalElemente.Löschen(sig); sig.AnschlussGleis.GleisElementAustragen(sig); break; case ElementTyp.Entkuppler: Entkuppler entkuppler = (Entkuppler)_element; _anlagenElemente.EntkupplerElemente.Löschen(entkuppler); entkuppler.AnschlussGleis.GleisElementAustragen(entkuppler); break; case ElementTyp.FSS: FSS fss = (FSS)_element; _anlagenElemente.FssElemente.Löschen(fss); fss.AnschlussGleis.GleisElementAustragen(fss); break; case ElementTyp.Schalter: Schalter schalter = (Schalter)_element; _anlagenElemente.SchalterElemente.Löschen(schalter); schalter.AnschlussGleis.GleisElementAustragen(schalter); break; case ElementTyp.InfoElement: InfoFenster infoFenster = (InfoFenster)_element; _anlagenElemente.InfoElemente.Löschen(infoFenster); infoFenster.AnschlussGleis.GleisElementAustragen(infoFenster); break; case ElementTyp.Knoten: break; } return(true); }
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); }
public bool NeuesElementVorschau(BearbeitungsModus bearbeitungsModus, Point letzterRasterpunkt, int zoom) { if (this._neuesElement == null) { switch (bearbeitungsModus) { case BearbeitungsModus.Gleis: this._neuesElement = new Knoten(this._zeichnenElemente, zoom, this._anzeigeTyp, letzterRasterpunkt); break; case BearbeitungsModus.Schalter: this._neuesElement = new Schalter(this._zeichnenElemente, zoom, this._anzeigeTyp, letzterRasterpunkt); break; case BearbeitungsModus.Signal: this._neuesElement = new Signal(this._zeichnenElemente, zoom, this._anzeigeTyp, letzterRasterpunkt, false); break; case BearbeitungsModus.Entkuppler: this._neuesElement = new Entkuppler(this._zeichnenElemente, zoom, this._anzeigeTyp, letzterRasterpunkt); break; case BearbeitungsModus.Fss: this._neuesElement = new FSS(this._zeichnenElemente, zoom, this._anzeigeTyp, letzterRasterpunkt); break; case BearbeitungsModus.InfoElement: this._neuesElement = new InfoFenster(this._zeichnenElemente, zoom, this._anzeigeTyp, letzterRasterpunkt); break; case BearbeitungsModus.EingangsSchalter: this._neuesElement = new EingangsSchalter(this._zeichnenElemente, zoom, this._anzeigeTyp, letzterRasterpunkt); break; } } else { switch (bearbeitungsModus) { case BearbeitungsModus.Gleis: if (this._neuesElement.GetType().Name == "Knoten") { ((RasterAnlagenElement)this._neuesElement).PositionRaster = letzterRasterpunkt; this._neuesElement.BearbeitenAktualisierenNeuZeichnen(); } else { Gleis gl = (Gleis)this._neuesElement; gl.EndKn = new Knoten(this._zeichnenElemente, zoom, this._anzeigeTyp, letzterRasterpunkt); gl.BearbeitenAktualisierenNeuZeichnen(); } break; case BearbeitungsModus.InfoElement: case BearbeitungsModus.Signal: case BearbeitungsModus.Entkuppler: case BearbeitungsModus.Schalter: case BearbeitungsModus.Fss: case BearbeitungsModus.EingangsSchalter: ((RasterAnlagenElement)this._neuesElement).PositionRaster = letzterRasterpunkt; this._neuesElement.BearbeitenAktualisierenNeuZeichnen(); break; } } return(true); }
private void buttonArduinoExport_Click(object sender, EventArgs e) { StreamWriter arduinoStreamWriter = new StreamWriter("ArduinoDaten.txt", false, Encoding.UTF8); foreach (MCSpeicher ard in _model.ZeichnenElemente.ListeMCSpeicher.Elemente) { arduinoStreamWriter.WriteLine("Arduino " + ard.ID); for (int i = 0; i < 3; i++) {//Relaisplatine arduinoStreamWriter.WriteLine("Relais-Platine " + ard.ID + "-" + i); string[] kurzBezeichnungArray = new string[17]; kurzBezeichnungArray[0] = "PC-Bezeichnung"; string[] anlagenBezeichnungArray = new string[17]; anlagenBezeichnungArray[0] = "Anlagen-Bezeichnung"; string[] steckerArray = new string[17]; steckerArray[0] = "Stecker"; string[] rmArray = new string[17]; rmArray[0] = "Rückmeldung"; string[] reglerArray = new string[17]; reglerArray[0] = "Regler"; List <AnlagenElement> anlagenElemente = _model.ZeichnenElemente.RelaisAdresseSuchen(ard.ID, i); foreach (AnlagenElement a in anlagenElemente) { int b = a.Ausgang.BitNr + 1; kurzBezeichnungArray[b] = kurzBezeichnungArray[b] + a.KurzBezeichnung + " "; anlagenBezeichnungArray[b] = anlagenBezeichnungArray[b] + a.Bezeichnung + " "; steckerArray[b] = steckerArray[b] + a.Stecker + " "; if (a.GetType().Name == "Gleis") { Gleis g = (Gleis)a; rmArray[b] = rmArray[b] + "RM" + g.Eingang.SpeicherString + " "; } if (a.GetType().Name == "FSS") { FSS f = (FSS)a; int r = f.ReglerNummer1; if (r > 0) { rmArray[b] = rmArray[b] + "Regler" + r + " "; } if (r < 0) { FSS f1 = _model.ZeichnenElemente.FssElemente.Element(-r); rmArray[b] = rmArray[b] + //f1.KurzBezeichnung + "_" + "Re" + f1.Ausgang.SpeicherString + " "; } r = f.ReglerNummer2; if (r > 0) { reglerArray[b] = reglerArray[b] + "Regler" + r + " "; } if (r < 0) { FSS f2 = _model.ZeichnenElemente.FssElemente.Element(-r); reglerArray[b] = reglerArray[b] + //f2.KurzBezeichnung + "_" + "Re" + f2.Ausgang.SpeicherString + " "; } } } for (int a = 0; a < 17; a++) { arduinoStreamWriter.Write(StringBereinigen(kurzBezeichnungArray[a]) + "\t"); } arduinoStreamWriter.WriteLine(""); for (int a = 0; a < 17; a++) { arduinoStreamWriter.Write(StringBereinigen(anlagenBezeichnungArray[a]) + "\t"); } arduinoStreamWriter.WriteLine(" "); for (int a = 0; a < 17; a++) { arduinoStreamWriter.Write(StringBereinigen(steckerArray[a]) + "\t"); } arduinoStreamWriter.WriteLine(""); for (int a = 0; a < 17; a++) { arduinoStreamWriter.Write(StringBereinigen(rmArray[a]) + "\t"); } arduinoStreamWriter.WriteLine(""); for (int a = 0; a < 17; a++) { arduinoStreamWriter.Write(StringBereinigen(reglerArray[a]) + "\t"); } arduinoStreamWriter.WriteLine(" "); } for (int i = 0; i < 2; i++) {//Rückmelde-Platinen arduinoStreamWriter.WriteLine("RM-Platine " + ard.ID + "-" + i); string[] kurzBezeichnungArray = new string[17]; kurzBezeichnungArray[0] = "PC-Bezeichnung"; string[] anlagenBezeichnungArray = new string[17]; anlagenBezeichnungArray[0] = "Anlagen-Bezeichnung"; string[] steckerArray = new string[17]; steckerArray[0] = "Stecker"; string[] rmArray = new string[17]; rmArray[0] = "Rückmeldung"; string[] relaisArray = new string[17]; relaisArray[0] = "Relais"; List <Gleis> gleisElemente = _model.ZeichnenElemente.RMAdresseSuchen(ard.ID, i); //_model.ZeichnenElemente.RMSuchen(ard.ID, i); foreach (Gleis g in gleisElemente) { int b = g.Eingang.BitNr + 1; kurzBezeichnungArray[b] = kurzBezeichnungArray[b] + g.KurzBezeichnung + " "; anlagenBezeichnungArray[b] = anlagenBezeichnungArray[b] + g.Bezeichnung + " "; steckerArray[b] = steckerArray[b] + g.Stecker + " "; relaisArray[b] = relaisArray[b] + "Re" + g.Ausgang.SpeicherString + " "; } for (int a = 0; a < kurzBezeichnungArray.Length; a++) { arduinoStreamWriter.Write(StringBereinigen(kurzBezeichnungArray[a]) + "\t"); } arduinoStreamWriter.WriteLine(""); for (int a = 0; a < anlagenBezeichnungArray.Length; a++) { arduinoStreamWriter.Write(StringBereinigen(anlagenBezeichnungArray[a]) + "\t"); } arduinoStreamWriter.WriteLine(""); for (int a = 0; a < steckerArray.Length; a++) { arduinoStreamWriter.Write(StringBereinigen(steckerArray[a]) + "\t"); } arduinoStreamWriter.WriteLine(""); for (int a = 0; a < relaisArray.Length; a++) { arduinoStreamWriter.Write(StringBereinigen(relaisArray[a]) + "\t"); } arduinoStreamWriter.WriteLine(""); } } arduinoStreamWriter.Flush(); arduinoStreamWriter.Dispose(); }
private void gleisLaden(int ID) { _gleis = _model.ZeichnenElemente.GleisElemente.Element(ID); _model.BearbeitenSelektieren(_gleis); gleisDatenLaden(); }