![]() |
1024 Bytes per AsyncPro
Hallo Forum,
Ich habe mir schon ca. 2 Stunden die Finger wundgesucht, aber noch nichts wirklich passendes gefunden. Ich will mit der AsyncPro Componente 1024 Bytes Daten empfangen, speichern, manipulieren und dann später auch wieder senden. Wenn ich das ganze über den OnTriggerAvail mache, bekomme ich je nach laune des Programms zwischen 150 und 300 Bytes empfangen. Danach ist schluss. Ich habe auch mal versucht im TriggerAvail nur zu gucken wie viele Bytes im Buffer sind und nach 1024 Bytes den Buffer auszulesen. Funktioniert aber auch nicht wirklich zuverlässig. Danach habe ich dann mal ein wenig mit TriggerStatus und TriggerTimer rumprobiert, um die Pause nach dem Dateneingang zu finden. Der TriggerStatus (stLine, lsBreak) löste manchmal mitten in der Übertragung aus. Habt ihr vielleicht noch eine Idee, wie ich genau die 1024 Bytes empfangen kann? Allerdings sollte er natürlich auch abbrechen wenn nur 1000 Bytes ankommen und er nix mehr empfängt. Ich hoffe ihr könnt mir helfen, bin am verzweifeln. Gruß Michael |
AW: 1024 Bytes per AsyncPro
Hallo Lee500,
vom welchem Gerät werden die Bytes den übertrage? Bis bald Chemiker |
AW: 1024 Bytes per AsyncPro
Hallo Chemiker,
Die Daten kommen von der MC-22. Einer Steuerung aus dem Modellbaubereich. Auf die Daten kann ich also keinen Einfluss nehmen und muss Sie so auslesen, wie sie kommen. Allerdings weiß ich nicht so recht, was diese Information jetzt bringt :) Gruß Michael |
AW: 1024 Bytes per AsyncPro
AsyncPro ist für serielle Kommunikation? Stimmen Baudrate, Daten/Stopbits usw.? Wie sieht das Protokoll aus? Dir ist klar, das die Daten nicht en block kommen, sondern happenweise und du warten musst, bis alles da ist?
|
AW: 1024 Bytes per AsyncPro
Wie wäre es, stattdessen mit der AsyncPro TApdDataPacket Komponente zu arbeiten? Dort kann man Datenpakte definieren ( z.b. Länge= 1024 ). Dort gibt es auch ein TimeOut Event, falls nach einer bestimmten Zeit wirklich mal nichts ankommt.
|
AW: 1024 Bytes per AsyncPro
Hallo,
@Alien_F: Das TApdDataPacket ist nicht auf Delphi 2010 umgestellt. Das bedeutet, dass man es selber anpassen muss. Das Problem sollte auch nicht die Byte-Anzahl sein sondern es muss ja irgendwie ein Protokoll vorhanden sein, wie soll sonst festgestellt werden, wann die Daten komplett übertragen worden sind und das Programm nicht während der Übertragung erst die Daten von der Schnittstelle bekommt. Bis bald Chemiker |
AW: 1024 Bytes per AsyncPro
Zitat:
Zitat:
Das Protokoll in dem Sinne ist eigentlich nur das die Steuerung immer exakt 1024 Bytes sendet. Das letzte Byte ist ein Paritätsbyte. Mein Problem liegt aber weniger darin, dass das Protokoll oder irgendwelche Einstellungen der seriellen Schnittstelle nicht passen, sondern eher darin, dass die ComPort Komponente nach 150-300 Bytes einfach den Dienst niederlegt. |
AW: 1024 Bytes per AsyncPro
Schon verstanden, merkwürdig das Ganze. Vielleicht steckt die Tücke im Detail Code. Zeig doch mal das OnTriggerAvail. Wird die Komponente vielleicht deaktiviert?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 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