AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

COM Port Ausgabe teilen

Ein Thema von einballimwasser · begonnen am 30. Dez 2010 · letzter Beitrag vom 31. Dez 2010
Antwort Antwort
einballimwasser

Registriert seit: 30. Dez 2010
3 Beiträge
 
#1

AW: COM Port Ausgabe teilen

  Alt 30. Dez 2010, 23:00
Danke für die Antwort.

Die Daten kommen als $... Strings an. Ich möchte diesen Stream nun teilen in den $GPGGA String (der ja durch ein Line Forward beendet werden sollte?), der als Variable abgelegt wird. Der Rest ist dann einfach für mich.

Mein konkretes Problem besteht darin, eine effektive Methode zu finden, diesen Stream, der sekündlich ankommt (alle $GP Messages meine ich damit) zu trennen und den $GPGGA String herauszuschneiden. Dabei möchte ich auf eine Endlosschleife verzichten und suche daher einen Algorithmus (bzw eine Möglichkeit), der mir eine sichere Extraktion dieses $GPGGA Strings ermöglicht. Konkret:

Diesen Stream:
Zitat:
$GPGGA,135843.000,0000.0000,N,00000.0000,E,0,00,0. 0,0.0,M,0.0,M,,0000*65\LF$GPGSA,A,1,,,,,,,,,,,,,0. 0,0.0,0.0*30\LF$GPRMC,135843.000,V,0000.0000,N,000 00.0000,E,000.0 ,000.0,280606,,,N*74\LF$GPVTG,000.0,T,,M,000.0,N,0 00.0,K,N*02\LF.......
muss ich so trennen, das ich die $GPGGA Messages als einzelnen String bekomme. Das ginge auf jeden Fall, wenn ich die Schnittstelle andauernd pollen würde. Das möchte ich aber nicht wirklich. \LF ist das Line Feed Kontrollzeichen der seriellen Schnittstelle.

Geändert von einballimwasser (30. Dez 2010 um 23:05 Uhr)
  Mit Zitat antworten Zitat
LargoD

Registriert seit: 8. Jun 2007
42 Beiträge
 
#2

AW: COM Port Ausgabe teilen

  Alt 30. Dez 2010, 23:17
TComPort bietet eine Paketerkennung, d. h. Du definierst Start- und Stop-String und dann wird das OnPaket Event ausgelöst, wenn so ein Paket angekommen ist. Dann ist es sehr leicht, die gewünschten Teile mit Stringfunktionen heraus zu schneiden.
Gruß
Erich
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: COM Port Ausgabe teilen

  Alt 30. Dez 2010, 23:24
In OnRecieve alles in einen Puffer schreiben, schauen ob eine kompletter $GPGAA da ist, wenn ja diesen in einen GPGAA-Puffer schreiben, den Puffer bis ans Ende des Strings leeren, und eine von Dir zuwählende Ereignisbehandlungsroutine aufrufen.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
einballimwasser

Registriert seit: 30. Dez 2010
3 Beiträge
 
#4

AW: COM Port Ausgabe teilen

  Alt 31. Dez 2010, 00:11
Hallo,

ich habe die ganze Zeit nicht gesucht, wonach ich wissen wollte. Nun klappt es ohne Probleme


Danke euch!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:17 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