![]() |
TApdDatapacket dynamische Größe
Hallo Community,
ich nutze das Async Professional TApdComport und die TApdDatapackets , geladen von songbeamer.de und selbst kurz für XE5 angepasst. Während ich fast alle Aufgaben mit dieser großen Lib erschlagen kann komme ich an einer Sache nicht recht weiter. Über RS-232 wird mir ein Paket geschickt welches mit einem bestimmten Start-String anfängt, sagen wir mal (Ansi) "ABC". Das 4te Zeichen ist dann ein Bytewert Der Bytewert sagt aus wie viele Blöckte von je 30 Byte direkt danach gesendet werden. Wenn also ABC antrifft, schlägt mein TApdDatapacket zu. Ich habe ja den StartString gesetzt. Dann lese ich das Byte an der 4ten Stelle aus. Zum Beispiel eine 3. Jetzt weiß ich wie viele Byte ich entprechend lesen muss (ABC3 d.f. 3*30 = 90 Byte). Nun muss ich ja irgendwie dynamisch die Endbedingung für das Paket setzen können, sodass es bei 90 + die ursprünglichen 4 Byte triggert. Ist soetwas vorgesehen? Lieben Gruß. |
AW: TApdDatapacket dynamische Größe
Ohne das jetzt ausprobiert zu haben:
Datapacket1:
Delphi-Quellcode:
DataPacket2:
Enabled := true;
StartCond := scString; StartString := 'ABC'; EndCond := ecPacketSize; PacketSize := <1 oder 4, je nachdem ob StartString mitgezählt wird>
Delphi-Quellcode:
DataPachet1 OnPacket-Event:
Enabled := false;
StartCond := scAnyData; EndCond := exPacketSize; PacketSize := 0;
Delphi-Quellcode:
DataPachet2 OnPacket-Event:
DataPacket2.PacketSize := <was auch immer in dem Byte steht>
DataPacket2.Enabled := true; DataPacket1.Enabled := false;
Delphi-Quellcode:
<das Packet verarbeiten>
DataPacket2.Enabled := false; DataPacket1.Enabled := true; |
AW: TApdDatapacket dynamische Größe
Okay, schade das es dafür in den Datapackages keine Funktion gibt. Aber so klappt es :)
Ist auf jeden Fall eine tolle Sache, verwende über 20 Stück von den Paketen. Angenehmes Arbeiten! Ergänzung: Zitat:
Zitat:
Zitat:
Naja ich wurde jedenfalls auf groteske Art von der Schnittstellen Dokumentation angelogen. Durch dein Vorgehen bin ich jetzt weiter, auch wenn es eigentlich ganz anders Abläuft als beschrieben. Danke :) |
AW: TApdDatapacket dynamische Größe
Ist schon 'ne Weile her, daß ich damit gearbeitet habe. :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz