Solange dies händisch gemacht werden kann, also per Browser via Internet, wurde die Lösung von mir bereits genannt.
Druckbare Version
Ja ,ich will es per Hand machen. Ich habe es jetzt aber schon hinbekommen.
Ich habe mich jetzt mal mit dem Auslesen des Moduls beschäftigt ,doch irgenwie funktioniert das nicht ,da ich nur den Wert vom ersten Mid bekomme ... ????
Ich verwende Bascom.
Auf dem Simulator bekomme ich nur : A=100.258,N,487.456,WCode:$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600
$hwstack = 32
$swstack = 32
$framesize = 32
Dim A As String * 20 'Das bekomme ich vom Gps Modul
Dim B As String * 10 'Das sollen die Werte sein ,die haben möchte
Dim C As String * 10
Dim D As String * 10
Dim E As String * 10
Dim F As String * 10
Dim K As Byte 'Wo soll er anfangen zu Suchen
Dim L As Byte 'Wie viel soll er rausschreiben
A = "100.258,N,487.456,W"
Print "A= " ; A 'Ich lasse mir den Wert den ich vom gps bekomme anzeigen
K = 1
L = 7
B = Mid(a , K , L)
Print "B= " ; B 'Soll mir den ersten Wert bis zum Komma vor N sagen
K = 9
L = 1
B = Mid(a , K , L)
Print "C= " ; C 'Soll mir N ausgeben
K = 11
L = 7
B = Mid(a , K , L)
Print D 'Soll mir den zweiten Wert nennen
K = 19
L = 1
B = Mid(a , K , L)
Print F 'Soll mir W ausgeben
End
B=100.258
C=
Warum bekomme ich das nicht vollständig angezeigt ??? Wie kann man das sonst machen ??
Hmm, die meisten GPS-Empfänger geben etwas anderes aus, als was jetzt in Variable A steht.
Und wenn die restlichen Variablen etwas enthalten sollen, muss ihnen zuerst etwas zugewiesen werden, das dürfte noch ein steiniger Weg bis zur ersten autonomen Fahrt werden.
Das war ja auch nur ein Test. Die Koordinaten habe ich mir ausgedacht und das Protokoll ist natürlich auch falsch...Zitat:
Hmm, die meisten GPS-Empfänger geben etwas anderes aus, als was jetzt in Variable A steht.
Meinst du C, D, F ???Zitat:
Hmm, die meisten GPS-Empfänger geben etwas anderes aus, als was jetzt in Variable A steht.
Hab ich doch ,oder nicht ????Zitat:
muss ihnen zuerst etwas zugewiesen werden
Also ich möchte aus dem Anfangswert ,den ich von dem Modul bekomme (String A) , mehrere Teilstrings (Strings B-F) mit den jeweiligen Informationen z.B. über Breitengrad oder so bekommen. Doch ich bekomme nur die erste Teilinformation ..... Warum ??? und wie mache ich es jetzt richtig ????
Da hast du wohl Recht . Aber das kann ja ruhig ein wenig dauern. :) Ist ja mein Hobby.Zitat:
das dürfte noch ein steiniger Weg bis zur ersten autonomen Fahrt werden.
Hi,
ich habe vor einigen Tagen fast dasselbe gemacht, nämlich ein GPS Modul ausgelesen und es zur autonomen Navigation benutzt. Es ist einfacher als man denkt ;)
Den String habe ich so zerlegt:
Jetzt steht in der Variable Stringscnt die Anzahl der zerlegten Teilstrings und in dem Array Teilstrings finden sich die einzelnen Elemente, getrennt durch die Kommas.Code:Dim Stringinput As String * 100 'ein GPGGA Datensatz kann fast 100 Zeichen haben, der Rest ist Reserve
Dim Teilstrings(15) As String * 15 'einzelne / zerlegte Strings
Dim Stringscnt As Byte
...
Stringinput = "$GPGGA,191410,4735.5634,N,00739.3538,E,1,04,4.4,351.5,M,48.0,M,,*45" 'als Beispiel
...
Stringscnt = Split(Stringinput, Teilstrings(1), ",")
Gruß
Chris
An Che Guevara : Danke ,das hat mir sehr geholfen. (Auch wenn ich nicht so ganz verstanden habe ,wie es funktioniert. Unter anderem wegen dem Array und der Klammer) . Jetzt kann ich nämlich z.B. mit Print Teilstrings(3) den dritten String ausgeben lassen . :)
Also nochmal vielen Dank :)
Zu MagicWSmoke :Ja ,das hattest du zwar schon geschrieben , doch ich hab nicht verstanden , was du damit meintest....Zitat:
Weniger Fragezeichen verwenden und die Beträge anderer aufmerksam lesen, auch das hab' ich bereits beantwortet.
Hi,
was genau verstehst du nicht?
Weißt du was ein Array ist? Ich hoffe doch :D
Schau mir mal die Bascom Hilfe zu dem Befehl Split an, vielleicht wirds dann klarer. Im Prinzip teilt Bascom den String an den Stellen, nach denen gesucht wird (","), auf und füllt die einzelnen Elemente dann der Reihe nach in das Array.
Gruß
Chris
Zu MagicWSmoke : Danke für den Hinweis mit dem B. Das ist mir nämlich nicht aufgefallen und ich wusste nicht was du mir davor sagen wolltest . Jetzt funktioniert meine Ursprungslösung auch. :)
Zu Che Guevara :Also ich verstehe nicht warum da : Dim Teilstrings(15) eine (15) steht (also was sie bedeutet) und da: (Stringinput, Teilstrings(1), ",") , was die (1) bedeutet.Zitat:
was genau verstehst du nicht?
Das hatte ich schon getan. Der Befehl ist mir klar verständlich (glaube ich jedenfalls )Zitat:
Schau mir mal die Bascom Hilfe zu dem Befehl Split an
Naja ,wenn ich ehrlich bin ,weiß ich jetzt nicht so genau ,was ein Array ist ,da ich noch Anfänger in Sachen Programmierung bin...Zitat:
Weißt du was ein Array ist? Ich hoffe doch
Aber ich glaube ,das ist so eine Art von Speicherform mit mehreren Variablen oder Strings ,oder so ?