![]() |
Re: Datensatz auswerten und aufteilen.
Ja, kann man die nicht nutzen?
|
Re: Datensatz auswerten und aufteilen.
Eigentlich müsste das doch ganz einfach gehen:
1. Suche nach '$0D$0A'. 2. Wir sind am Anfang des Datensatzes. (P <- aktuelle Position) 3. Suche nach '$0D$0A' 4. Wir sind am Ende des Datensatzes. (Q <- aktuelle Position) 5. Datensatz <- Daten[P..Q-2] 6. Datensatz verarbeiten 7. Gehe zu 1 |
Re: Datensatz auswerten und aufteilen.
Hallo alzaimer,
das dachte ich auch. Ist es aber leider nicht. Das Problem liegt darin, das ich das ja nur machen kann, wenn ich einen kompletten Datensatz zur Verfügung hätte. Das Problem dabei ist, den bekomme ich nur mit der Komponente ComPacket hin. Dafür, benötige ich allerdings einen Start und Stop String, den ich ja leider nicht habe. Also lese ich von der Schnittstelle mit dem Ereignis RxChar. Hierbei, werden sobald Daten an der Schnittstelle diese eingelesen, verarbeitet und dann kann das Ereignis erneut ausgelößt werden. Daraus folgt, das die Empfangen Zeichen immer Abhängig von der Anzahl der auftretenden Ereignisse, sowie der Verarbeitungszeit der zuletzt Empfangen Daten. Somit, wäre es halt einfach, wenn wenigstens immer ein kompletter Datensatz an der Schnittstelle anliegen würde. Das Problem entsteht nämlich Hauptsächlich, wenn nur ein Paar einzelne Zeichen vorhanden sind. Dann muss ich erst anfangen, den Datensatz zusammenzubauen. Also alles nicht so einfach. Ich habe es mittlerweile realisiert, 6 Zentralentypen und deren Daten zu verarbeiten. Doch bei allen, kann ich es halt über Packet mit Start und Stop machen. Somit ist halt das größte Problem, das ich die Daten nach dem Empfangen erstmal wieder passend zusammen basteln müsste. Und ich denke einfach, das das einfacher gehen muss. Gruß jens |
Re: Datensatz auswerten und aufteilen.
Ich habe es hinbekommen. Und es war ganz einfach.
Mein Fehler lag in folgendem. STARTString ist #$D#$A# STOPString ist #$D#$A#$A#$1B Ich habe geschrieben...
Delphi-Quellcode:
:thumb:
ComDataPacket1.StartString := '#$D#$A';
ComDataPacket1.StopString := '#$D#$A#$A#$1B'; //Richtig wäre, und so funktioniert es auch.... ComDataPacket1.StartString := #$D#$A; ComDataPacket1.StopString := #$D#$A#$A#$1B; //Die ' ' um den String, dürfen ja nicht sein. Danke trotzdem für Eure Bemühungen. Aber mschaefer, was hat es mit deinem Code auf sich. Was sollte ich damit probieren? Gruß Jens |
Re: Datensatz auswerten und aufteilen.
Zitat:
|
Re: Datensatz auswerten und aufteilen.
Danke alzaimer,
für die Erklärung über den Frame. Das wusste ich noch nicht. Aber wie du ja wahrscheinlich gelesen hast. Ich habe es ja dann doch noch hinbekommen. Trotzdem Danke, Gruss Jens |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:36 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 by Thomas Breitkreuz