![]() |
Re: daten von gps-maus über Com-Port auslesen
Hab jetzt nochmal von vorne angefangen mit dem text zerlegen. Bin jetzt soweit das ich einzelne zeilen habe die immer in variable z geschrieben werden (bis * also ende der informationen die ich benötige)
Delphi-Quellcode:
Sobald dieser punkt ereicht ist (*) wird diese variable gelöscht und nue beschrieben mit der nächsten Zeile. so jetzthab ich schon mal die einzelnen zeilen. jetzt war mein gedanke, das man an der stelle bevor die variable gelöscht wird eine funktion einfügt die Aufgrund von pos('GPGGA',z) > 0 oder ('GPGSA',z) > 0 oder ('GPRMC',z) > 0 dann den string an den kommas zerlegt und die einzelnen stücke ind das entsprechende array (GPGGA[x], GPGSA[x] oder GPRMC[x] da ich aber eher noch unbetucht bin hab ich keinen blassen schimmer wie ich das anstellen soll Mein ersten Versuch seht ihr ja oben! Also wenn jemand nen ansatz oder womöglich schon ne fertige funktion hat wäre ich sehr dankbar!
procedure TForm1.ComPortTriggerAvail(CP: TObject; Count: Word);
begin { OnTriggerAvail; Read the data } for I:= 0 to Count -1 do Data := ComPort.GetChar; z := z + Data; if Data = '*' then begin Memo1.Text := z; z := ''; end; end; mfg btbe |
Re: daten von gps-maus über Com-Port auslesen
hat denn keiner eine idee, wie ich einfach einzelne zeichenketten zwischen kommas in ein array schreiben kann?
|
Re: daten von gps-maus über Com-Port auslesen
|
Re: daten von gps-maus über Com-Port auslesen
mit Dialect WinCE mache ich das für meinen ppc so:
Delphi-Quellcode:
^^problem ist hierbei, das das Dialectprogramm zu langsam auf dem ppc ist. deswegen will ich das problem eigentlich mit Lazarus lösen, ich finde aber kein Komponente zum Comport-auslesen der auf lazarus und dem ppc geht.b1.onclick =func() l1.text= myport.read()//(l1=label) x=0//breite y=0//länge xmin=0 ymin=0 komma=0 jo=0 for i=1to len(l1.text)//in delphi heißt das length() u= l1.text[i] if jo=1 if u="," komma=komma+1 else if (komma==2) and x=0 then x=int(l1.text[i+1],l1.text[i+2]) xmin=l1.text[i+3]l1.text[i+4],l1.text[i+5],l1.text[i+6],l1.text[i+7],l1.text[i+8],l1.text[i+9],l1.text[i+10] endif if (komma==4) and (y=0) //längengrad y=int(l1.text[i+1],l1.text[i+2],l1.text[i+3]) ymin=l1.text[i+4],l1.text[i+5],l1.text[i+6],l1.text[i+7],l1.text[i+8],l1.text[i+9],l1.text[i+10],l1.text[i+11] endif endif endif if (u=="$") and (l1.text[i+1]=="G") and (l1.text[i+1]=="P") and (l1.text[i+1]=="G") and (l1.text[i+1]=="G") and (l1.text[i+1]=="A") jo=1 endif endfor l1.text=str$(y) + "°"+str$(ymin) + "min" + str$(x) + "°" + str$(xmin) + "min" //str$^=in delphi inttostr/floattostr endfunc myport=system.comport("COM5:",{baud:4800}) gui.enter() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:27 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