INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

NMEA Daten



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

12.02.2009, 13:54
Beitrag #1

Guest
Unregistered


 







NMEA Daten
Hallo,

Ich möchte ausgewählte NMEA Daten, die als String eingelesen werden, auf einem Windows Mobile Gerät daratellen. Ich bekomme es aber leider nicht hin, den String auf die bestimmten Werte abzufragen. IN einem VI für einen normalen WIndows Rechner würde ich jetzt den String einfach durchsuchen mit "Muster suchen" nach den entsprechenden NMEA Kürzeln durchsuchen und zergliedern. Leider gibt es diese VI für PDA Anwendungen nicht.
Was mit dafür richtig erscheint ist "In String suchen" aber mit dem VI komme ich auch nicht klar: Ich bekomme nicht die Infornmatinonen aus dem Eingangsstring, die brauche. Kann mir jemand vielleicht helfen, und ein Beispiel für der Format-String geben, mit dem ich die Werte für verschiedene $GPxxx auslesen kann?

Danke schonmal
Kurok

Achso, ich möchte aus dem String nur spezielle Daten auslesen, also bei $GPHDT,12.4,V5 möchte ich nur die 12.4 hinterher raus haben.


Angehängte Datei(en) Thumbnail(s)
   
Diese Nachricht in einer Antwort zitieren to top
Anzeige
12.02.2009, 14:46
Beitrag #2

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
NMEA Daten
Kenne das NMEA nicht, aber anhand deinen 2 Bsp. scheint es immer eine fixe Länge zu haben.
Dann würde ich das VI "String Subset" (de. verm. Teilstring ausgeben) verwenden.

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.02.2009, 15:18
Beitrag #3

Guest
Unregistered


 







NMEA Daten
Leider hat der empfangene String nicht immer die selbe Länge. Daher wird das nicht gehen. Denn zum einen Variieren die Daten, also in diesem Beispiel die 12.4 (kann auch mal 180.3 oder 0.2 sein), zum Anderen ist nicht davon auszugehen, dass die NMEA Codes immer in der "richtigen" Reihenfolge kommen. Ich muss im grunde nach einem bestimmten Bezeichner suchen, und den anschließenden Wert auslesen, egal, an welcher Stelle dieser Bezeichner im kompletten String steht.
Diese Nachricht in einer Antwort zitieren to top
12.02.2009, 15:37
Beitrag #4

Guest
Unregistered


 







NMEA Daten
Was also mein Hauptproblem zu sein scheint ist, dass ich die Daten in beliebiger Reihenfolge durchsuchen können muss. Wenn ich das mit "IN Sting suchen mache, dann ist die Reihenfolge aber leider entscheident. Denn so wie in dem Beispiel im jetzigen Anhang geht das zwar, aber nur, wenn die Daten in genau der Reihenfolge geliefert werden.....


Angehängte Datei(en) Thumbnail(s)
   
Diese Nachricht in einer Antwort zitieren to top
13.02.2009, 14:47
Beitrag #5

Guest
Unregistered


 







NMEA Daten
Also schön, ich will es nun so machen, wie oben abgebildet, will mir aber auf dem Frontpanel dann zusammenstellen, welche NMEA-Daten nun in welcher Reihenfolge ausgelesen werden sollen (da es anders wohl nicht geht). Jetzt musste ich aber dabei feststellen, dass scheinbar der Format-String von "In String suchen" derart mit dem VI verknüpft ist, dass man diesen nicht variabel zusammenstellen kann, beispielsweise mit "String verknüpfen"
Hat da niemand eine bessere Lösung?
Diese Nachricht in einer Antwort zitieren to top
13.02.2009, 14:57
Beitrag #6

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
NMEA Daten
Hallo!

Du kannst/musst zeilenweise einlesen und zeilenweise parsen. Also nicht dreizeilenweise.

So, du bekommst eine NMEA Sequenz, dann nimmst du das VI namens Spreadsheet String To Array (Komma als Trennzeichen) und machst daraus ein String-Array, somit kannst du auf die einzelnen Daten zugreifen.

Das erste ist $Sequenzname, das schliesst du an eine Case-Struktur an und machst so viele Cases wie es Sequenzen gibt, die du parsen willst. In jedem Case machst du aus den einzelnen String-Array Elementen richtige Zahlen und was es sonst noch gibt, zum Beispiel mit Dezmal String To Number VI.

So ist es im Groben und Ganzen. Gruß, eg

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.02.2009, 16:00
Beitrag #7

Guest
Unregistered


 







NMEA Daten
Ich hab das nochmal so gemacht, wie ich angefangen hatte, weil ich mit dem Spreadsheet keine Kommastellen bekommen habe, und auch die "$Sequenzname" nicht in das Array geschrieben wurden. Trotz %s formatierung bekam ich nämlich ein 2d-Array mit Double-Werten.... Kein Ahnung, was ich da falsch gemacht habe. Vielleicht noch einen Tipp? Wäre ja schon elegant.
Wenn ich das allerdings so mache, wie hier jetzt dargestellt, funktioniert das im Grunde. Nicht schön, aber immerhin. Wenn ich das ganze aber auf dem emulierten PDA laufen lasse, erhalte ich keine Kommastellen. Wenn ichs so ausführe aber schon. Was soll das nun wieder?

Hier nochmal meine vorläufige Variante mit dem Spreadsheet im Anhang.


Angehängte Datei(en) Thumbnail(s)
           
Diese Nachricht in einer Antwort zitieren to top
13.02.2009, 16:05
Beitrag #8

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
NMEA Daten
Na ja, wie du willst.
Um die Kommastellen zu erhalten musst du beim Umwandeln vom String in Kommazahl den Flag oben auf False setzen.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.02.2009, 16:22
Beitrag #9

Guest
Unregistered


 







NMEA Daten
Ja, wie gesagt: Das mit dem Array wär schon besser. Hab im vorigen Post nochmal angehängt, wie ich das gemacht habe. Komamstellen bekomme ich nach wie vor nur, wenn ich das VI auf dem PC Ausführen lasse. Auf dem emulierten PDA immer noch nicht.
Diese Nachricht in einer Antwort zitieren to top
13.02.2009, 16:23 (Dieser Beitrag wurde zuletzt bearbeitet: 13.02.2009 16:25 von eg.)
Beitrag #10

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
NMEA Daten
Wie schon gesagt, machst den Flag auf FALSE und entfernst dein VI zum Ersetzen des Punktes durch Komma.

Beim VI Spreadsheet String To Array musst du links unten ein 1D String Array anschliessen, dann bekommst du auch ein 1D String Array raus.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: