Forum: PC-Programmierung C# SerialPort bei Event 1 initialisieren und bei Event 2 benutzen


von planloser Gast (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Community,

ich möchte meine Serielle Schnittstelle beim Click auf einen Button 
initialisieren und öffnen und dann beim timer_click Event Daten senden.
nun bekomme ich immer eine Ausnahme: der Objektverweis wurde nicht auf 
eine Objektinstanz festgelegt. Kann mit das aber nicht erklären.
Kann mir da bitte jemand weiterhelfen?
Code ist im Anhang.

Danke und Grüße

von Dave (Gast)


Lesenswert?

Hi planloser Gast
Wo genau bekommst du die Exception?
Grüße Dave

von planloser Gast (Gast)


Lesenswert?

Hallo Dave,

Problem gelöst.

Ich muss die Variableninitialisierung des COM-Ports mit in die 
if(!openCOM) Schleife nehmen, sonst versucht der Rechner beim zweiten 
Drücken auf den OK-Button eine weitere Initialisierung und dann kommt 
die Exeption.

Danke Dir trotzdem für die Mühe.

Grüße

von Severino R. (severino)


Lesenswert?

planloser Gast schrieb:

> if(!openCOM) Schleife nehmen, sonst versucht der Rechner beim zweiten

if ist eine Verzweigung, keine Schleife.

von planloser Gast (Gast)


Lesenswert?

'tschuldigung. Hatte mich schlecht (falsch) ausgedrückt, aber schon das 
Richtige gemeint. Aber wo Du Recht hast, hast Du Recht.

Grüße

von Mario G. (suicided)


Lesenswert?

Du legst in btnOK_Click eine neue Instanz von myPort an, deren 
Gültigkeitsbereich auf btnOK_Click begrenzt ist. Das globale myPort ist 
somit nicht instanziert und führt in  timer1_Tick zu der von dir 
genannten Exception. Den Fehler hast du wahrscheinlich durch Zufall mit 
beseitigt. Außerdem werden nur Nullen gesendet, außer beim ersten mal.

Mach mal aus:
1
SerialPort myPort = new SerialPort((listBox1.SelectedItem.ToString()), 9600, Parity.None, 8, StopBits.One);
das hier:
1
myPort = new SerialPort((listBox1.SelectedItem.ToString()), 9600, Parity.None, 8, StopBits.One);

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.