Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   daten von gps-maus über Com-Port auslesen (https://www.delphipraxis.net/33652-daten-von-gps-maus-ueber-com-port-auslesen.html)

btbe 11. Nov 2004 07:51

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:
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;
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!

mfg
btbe

btbe 11. Nov 2004 15:54

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?

Steve 12. Nov 2004 06:48

Re: daten von gps-maus über Com-Port auslesen
 
Hi,

leg den String mit Delphi-Referenz durchsuchenPos, Delphi-Referenz durchsuchenPosEx und Delphi-Referenz durchsuchenCopy oder ExplodeExplode auseinander und fülle Deine Arrays mit den Einzelsrings ;)

Gruß
Stephan :dance:


edit: mööööööp, warum stellste die Frage doppelt? :?
Dann lass hier doch wenigstens schließen... :roll:

xy124 3. Mai 2008 10:19

Re: daten von gps-maus über Com-Port auslesen
 
mit Dialect WinCE mache ich das für meinen ppc so:
Delphi-Quellcode:

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()
^^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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:27 Uhr.
Seite 2 von 2     12   

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