Hallöchen,
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| function TSW.IstGeraetAn: Boolean; begin // Result := False; GetAdressValue(12039, Value); if ((Value and 32) <> 0) then Result := True else Result := False; end; |
folgendes Problem, nach Programmstart, klicke ich auf einen Button, wodurch ich diese Funktion aufrufe. Das ganze geht im prinzip.
Ich überprfüe dabei ob ein Gerät an der seriellen Schnittstelle angeschlossen ist. Dabei schicke ich ein Byte und empfange eins. Dann schau ich ob in dem empfangenem Byte, ein Bit 1 ist, wenn ja, dann soll halt eben True, wenn nicht dann False geliefert werden.
Das Problem, wenn ich beim ersten Anklicken des Buttons klicke und das Gerät ist nicht dran, dann wird mir False geliefert. Und zwar auch wenn ich dann das Gerät anshcliesse und dann wieder den Button drücke! Daher kann ich auch nicht mit dem restlichen Code weiter machen.
Wenn aber beim ersten klick das Gerät da ist, dann funktionierts.
Hoffe dass das verständlcih war, ist ein bisschen blöd zum erklären.
Achja, das else habe ich reingemacht, nachdem ich die eine Zeile auskommentiert habe. War nur ein Versuch.
Bis dannn... TheD!