Hallo,
mein COM-Port läuft inzwischen soweit recht gut. Nur ein kleines Problemchen ist übrig geblieben:
Ich habe ja folgende Routine für meinen COM-Port am Laufen, udn die läuftauch herrlich:
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:
| procedure TForm1.ApdComPort1TriggerAvail(CP: TObject; Count: Word); var I : Word; C : Char; S : String;
begin RS232Activate := True; Timer1.enabled := False; Timer1.enabled := True; S := '';
for I := 1 to Count do begin C := ApdComPort1.GetChar; case C of #0..#31 : S := S + C ; else S := S + C; end; end; tempBuffer := tempBuffer + S; if tempBuffer = (#6+#48) then begin ApdComPort1.OutPut := #02 ; end; end; |
So, jetzt liest er wundervoll, es ist eine gar herrliche Komunikation geworden zwischen Computer und dem Gerät... solange ich nru etwas vom Gerät an Informationen will.
Lesen kann er einwandfrei, er konvertiert auch schön brav, also besser als ich es am Angfang des Projektes zu hoffen wagte.
Hehe, nur, ähm... jetzt will ich Ihn auch beschreiben, und er mekert... mein Computer. (Ich habe schon vermutet beim Lesevorgang hab sich der Computer in das Gerät verliebt, und will nicht, daß ich den Chip seines geliebten Gerätes überschreibe).
Ich denke mal, es könnte daran liegen, daß ich den Befehl nicht mehr im onclick des button selbst habe, sondern in einer eigenen Prozedur.
Diese sieht wie folgt aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure Daten_Schreiben(Daten: String); var ApdComPort1: TApdComPort; Befehl : String; begin tempBuffer := ''; Befehl := 'W0000' + Linksnuller(Daten); Befehl := Befehl + Exor(Befehl); ApdComPort1.OutPut := Befehl; if tempBuffer = (#6+#48) then begin sleep(50); ApdComPort1.OutPut := Daten + Exor(#2 + Daten); end; end; |
Er bringt vorher ein Warning:
[Warnung] Unit1.pas(891): Variable 'ApdComPort1' ist möglicherweise nicht initialisiert worden
Ich denke mal ,da liegt der Hund im Pfeffer begraben, weiter komm ich aber nicht.
Wenn ic hdas Program mausführe, brignt er genau an dieser Stelle einen Adressierungsfehler.
Wäre dankbar wenn mir jemand weiter helfen könnte
Herzlichen Gruß und vielen Dank
Smartie