Hallo, ich habe ein Programm geschrieben, über das ich ich mit COM-Ports und virtuellen COM-Ports Bytes sende und empfange. Aber nun passiert es doch mal, das ein Gerät nicht angeschlossen ist oder ein falscher COM-Port ausgewählt wurde. Dann kackt das ganze Programm ab. Gibt es eine Möglichkeit den COM-Port vor dem öffnen zu prüfen. Und wenn man z.B einen falschen ausgewählt hat, das dann eine Fehlermeldung kommt und ned das ganze Programm abkackt?
Christian schrieb: > Dann kackt das ganze Programm ab. Fehlerbehandlung ist das Stichwort. Wenn man einen Schnittstelle öffnet die nicht da ist, gibt es einen fehler und um diesem sollte man sich kümmern.
das man die falsche ausgewählt hat kriegt man aber nicht raus, es sei denn es gibt ein bekanntes Protokoll, mit dem ich das Gerät überprüfen kann. Wenn es aber die Falsche war, ist es auch schon zu spät, dann hab ich entweder Daten ins Nirvana gesendet, oder schlimmer, an ein anderes Gerät. um zu schauen, welche Schnittstellen existieren, kannst du hier mal reinschauen: Beitrag "PortableSerialLib - Portable Serial Port Library"
HI, ich arbeite mit C++/CLI. Ich muss also praktisch die Fehlermeldungen während der Laufzeit auffangen und dann darauf reagieren ?
Christian schrieb: > Ich muss also praktisch die Fehlermeldungen während der Laufzeit > auffangen und dann darauf reagieren ? ja, wenn es cli ist dann kommt eine exception diese musst du mit try catch abfangen.
Habt ihr vielleicht ein paar Links mit Beispielen, wie man das anstellt?
1 | try
|
2 | {
|
3 | serialPort1->Open(); |
4 | .....
|
5 | }
|
6 | catch(TimeoutException ^e) |
7 | { } |
8 | catch(IO::IOException ^e) |
9 | { } |
10 | catch(UnauthorizedAccessException ^e) |
11 | { } |
12 | catch(InvalidOperationException ^e) |
13 | { } |
14 | catch(Exception ^e) |
15 | { } |
Hier sind die Ausnahmen aufgelistet: http://msdn.microsoft.com/de-de/library/system.io.ports.serialport.open%28v=vs.80%29.aspx Wenn Du noch nicht mit der Ausnahmebehandlung vertraut bist, solltest Du Dich unbedingt damit beschäftigen!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.