Entwickler-Ecke
WinForms - Button reihenfolge
grisu2611 - Sa 06.10.07 15:35
Titel: Button reihenfolge
Hallo!
Habe eine Anwendung mit drei Buttons: "Spannung Ein" "Daten lesen" "Stop"
Wenn ich jetzt meine Anwendung starten möchte nur um die Spannung und Ströme zu messen und anschließend nur Stoppen will ohne Daten zu lesen geht das nicht!
Muss immer erst die Reihenfolge der Buttons nehmen wie sie oben steht!
Warum muss ich meine Anwendung immer wieder neu starten bevor ich wieder Spannung einschalten kann!
Bitte helft mir!
Danke!
Christian S. - Sa 06.10.07 15:58
Meine Kopie des Bundestrojaners scheint ein bisschen fehlerhaft zu sein und war daher nicht in der Lage, mir den relevanten Sourcecode von Deiner Festplatte zu liefern. Du wirst ihn also leider hier posten müssen :(
grisu2611 - Sa 06.10.07 16:10
Werd ich da hochgenommen? nicht böse sein aber was sprichst du mit mir?
Christian S. - Sa 06.10.07 16:14
grisu2611 hat folgendes geschrieben: |
| Werd ich da hochgenommen? |
Ein bisschen ;-)
grisu2611 hat folgendes geschrieben: |
| nicht böse sein aber was sprichst du mit mir? |
Lies Dir Dein Posting von oben mal durch. Wie soll man Dir helfen? Woher sollen wir wissen, wie Dein Programm arbeitet? Daher: Du musst uns die relevanten Teile Deines Quellcodes zeigen!
grisu2611 - Sa 06.10.07 16:29
naja is klar mit den greenhorns kann mans machen!!! :( :wink:
also hier der Code für die drei Buttons aus dem Programm herraus:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98:
| private void spannungEinButton_Click(object sender, EventArgs e) { kanal = 0; spannung = 4.4; ausgabeSpg(kanal, spannung); kanal = 1; spannung = 0; ausgabeSpg(kanal, spannung);
digitalAusgabe(digitalKanal); }
private void datenEinlesneButton_Click(object sender, EventArgs e) { BuffersCompleted = 0;
ainSS.BufferQueue.FreeAllQueuedBuffers();
daqBuffers = new OlBuffer[anzahlVonBuffern];
for (int i = 0; i < anzahlVonBuffern; ++i) { daqBuffers[i] = new OlBuffer(1250, ainSS); ainSS.BufferQueue.QueueBuffer(daqBuffers[i]); }
ainSS.DataFlow = DataFlow.Continuous;
ainSS.Clock.Frequency = 5000;
ainSS.ChannelList.Clear();
ainSS.ChannelList.Add(0); ainSS.ChannelList.Add(1); ainSS.ChannelList.Add(8);
ainSS.ChannelType = ChannelType.SingleEnded;
ainSS.Config();
for (int i = 0; i < anzahlVonBuffern; i++) { if ((daqBuffers[i].State == OlBuffer.BufferState.Idle) || (daqBuffers[i].State == OlBuffer.BufferState.Completed)) ainSS.BufferQueue.QueueBuffer(daqBuffers[i]); }
ainSS.Start();
kanal = 1; spannung = 0; ausgabeSpg(kanal, spannung); } private void stopButton_Click(object sender, EventArgs e) { try { ainSS.Stop();
digitalKanal = 0; digitalAusgabe(digitalKanal);
kanal = 0; spannung = 0; ausgabeSpg(kanal, spannung);
} catch (OlException ex) { string err = ex.Message; statusBarPanel.Text = err; return; } } |
Christian S. - Sa 06.10.07 16:39
In der Methode zum Lesen der Daten wird ja anscheinend ainSS.Config(); und ainSS.Start(); aufgerufen. Ich könnte mir vorstellen, der Aufruf von ainSS.Stop(); in der Methode zum Stoppen wird fehlschlagen, wenn das nicht geschehen ist.
Ist aber nur ins Blaue geraten, weil ich die Komponente nicht kenne.
Helfen würde noch, wenn Du schreibst, was für ein Fehler kommt (z.B. welche Exception ausgelöst wird).
grisu2611 - Mo 08.10.07 07:57
Ein Fehler taucht leider nicht auf, es wird halt nur den Prüfstand nicht abgeschaltet! Erst wenn ich die Reihenfolge der Buttons betätige wie sie im Programmablauf sind!
Ist denn irgendwo die Reihenfolge festgelegt?
Christian S. - Mo 08.10.07 10:24
Du hast doch bestimmt 'ne Doku zu der ainSS-Klasse bekommen, guck da doch mal rein.
mutterholzbein - Do 17.01.08 15:26
Christian S. hat folgendes geschrieben: |
| Meine Kopie des Bundestrojaners scheint ein bisschen fehlerhaft zu sein und war daher nicht in der Lage, mir den relevanten Sourcecode von Deiner Festplatte zu liefern. Du wirst ihn also leider hier posten müssen :( |
*fg*
Sehe das ähnlich,gruß mhb
mutterholzbein - Do 17.01.08 15:50
grisu2611 hat folgendes geschrieben: |
Ein Fehler taucht leider nicht auf, es wird halt nur den Prüfstand nicht abgeschaltet! Erst wenn ich die Reihenfolge der Buttons betätige wie sie im Programmablauf sind!
Ist denn irgendwo die Reihenfolge festgelegt? |
FALLS du immernoch nicht wissen solltest(bei dem alter des beitrags eher unwahrscheinlich ;) )
...ja die lässt sich festlegen:
->View[Anzeigen]->Aktivreihenfolge
dann nacheinander die str-elemente anklicken um die reihenfolge festlegen...
p.s. ich kann mir irgendwie auch nicht vorstellen das
ainSS.Stop() funktioniert(wo ist aniSS eigentlich definiert?!). vielleicht solltest du es
zusätzlich mit ner
break-anweisung versuchen... aber das beste wäre wirklich sich die doku zu der klasse durchzulesen.
mal nebenbei, dass sieht sehr nach automatisierung(technik) aus, warum machst du das nicht mit
Siemens-Step7? in der sprache gibt es vorgefertigte module die sich solcher probleme annehmen... :wink:
naja, trotzdem viel glück->greetz mhb
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!