German Gps Details Upload auf FTP server

flightnet

Member
Licensed User
Hallo Hallo,

Ich hette einmal eine ganz grundsätzliche frage. Denkt Ihr es ist möglich eine App zu schreiben die GPSDaten ausliesst (Breitengrade, Längengrade, Höhe, Geschwindigkeit) und diese auf einen FTP server hinauf lädt so, dass ich die Daten mit einem Computer auslesen kann? Dies alles im Hintergrund da die app noch etwas anderes Primäres machen sollte.

Gruss und Danke
Robin
 

Powie

Member
Licensed User
Hat es einen speziellen Grund das du das auf FTP speichern willst?

Ich habe eine ähnliche Sache gemacht, mir war der (Um)Weg über FTP zu unflexibel.
In der ersten Version speicherte ich die GPS Daten auf dem Androiden in eine SQLite DB die ich bei Bedarf einfach auf Dropbox pushte.
In einer weiteren Version habe ich einfach noch einen Mini Exporter drangehangen der eine CSV auf der SD Karte erstellen kann.

Gibt viele Wege das zu lösen.
 

rboeck

Well-Known Member
Licensed User
Hallo Powie,

habe mir eben Deine Modellflugplatz App angesehen; diese hat vieles mit einer App gemeinsam, an der ich derzeit arbeite. Zu deiner obigen Antwort: hast Du das mit dem Dropbox API gelöst, oder mittels Share Funktion? Ich habe einige Zeit mit dem Dropbox API ver(sch)wedet, und habe mich dann entschieden, es nur mehr über die Share Funktionaliät einzubinden. Die NSA hat zu dieser Entscheidung auch einiges beigetragen...

Reinhard
 

Powie

Member
Licensed User
Nein ich speichere die SQlite Datei einfach auf der SDCard und kann sie so bei Bedarf in die Dropbox holen.
 

flightnet

Member
Licensed User
Eignet sich das auch für einen Permnenten Datenaustasch? Da die GPS Daten jeweils alle 0.75 Sekunden aktualisiert werden?
 

Powie

Member
Licensed User
Nein dafür eignet sich das nicht. Wenn das alle 750ms einen neuen Datensatz gibt ist das ne Menge kram was da passiert.
Bei mir war das nicht zeitkritisch, mir hat es gereicht die Werte später zur Verfügung zu haben.

Angenommen man würde die Daten an eine API senden geht das auch nur wenn man Online ist, das ist aber selten der Fall mit einem Smartphone.
Das aber wäre auf jeden Fall eine Möglichkeit, die Daten lokal in einer SQLite speichern und immer wenn die API Online verfügbar ist dann eine Datensatzanzahl übertragen an den Server
 

flightnet

Member
Licensed User
ouuukee
Danke viel mals demfall werde ich am meisten Chancen mit einem SQLite haben? Ich habe eben schon ein Programm für den Computer geschrieben so muss ich irgendwie die vom Tablet auf den Computer bekommen :)
 

flightnet

Member
Licensed User
Jetzt kommt bei mir die Frage auf, also ich möchte es gerne mal mit SQL versuchen. Weiss jemand von einem ähndlichen Projekt? Ich bin mir nicht so sicher wie ich das Ganze aufgleisen soll. Im wesentlichen möchte ich 6 variablen vom Tablet bekommen.
1.Ein name des Gerätes
2.Longitude
3.Latitude
4.Höhe
5.Geschwindigkeit
(6. Heading(bewegrichtung))

Diese Parameter will ich auf einen SQL server laden und von einem Computer Downloaden und die Daten darstellen. Das mit dem download und darstellen ist kein Problem. Bin sehr geschickt mit Visual Basic.

Meine Frage: wie kann ich das bewerkstelligen?
Und wo kann ich mir am besten das know how dazu aneignen?
Weil im Youtube etc find ich nicht wirklich das Gelbe vom Ei.
 

DonManfred

Expert
Licensed User
Meine Frage: wie kann ich das bewerkstelligen?
Da das alles in Echtzeit ablaufen soll ist es wohl nötig die Daten immer wieder ein eine Online verfügbare Datenbank zu schreiben. Hierzu eignet sich am besten RDC (suche im forum nach RDC, Remote Database Connection.)
GPS-Updates würde ich mittelt httpjob (httputils2) an ein PHP-Script (z.B.) übergeben/posten... Das PHP-Script nicht alle Werte entgegen und schreibt es in die DB und liefert einen Resultcode an die App zurück.

Und wo kann ich mir am besten das know how dazu aneignen?
Weil im Youtube etc find ich nicht wirklich das Gelbe vom Ei.
Youtube wäre der letzte Ort an dem ICH suchen würde. :D

Wenn Du das Forum/Wiki durchsuchst dann wirst Du sicher das ein- oder andere GPS-Projekt (oder Codeschnipsel) finden. Auch zum Thema RDC gibt es einiges.

Das ganze setzt natürlich vorraus das dein Tablet immer Internet hat um die Daten an deinen Server zu reichen.
 

Powie

Member
Licensed User
Lass RDC weg.

Nutze HTTPUTILS2 und poste deine Daten an eine API die auf deinem Server die Sachen in die DB schreibt. So schlägst du mehrere Fliegen mit einer Klappe, du musst eh drauf reagieren können das die Verbindung mal nicht klappt usw. Du könntest das ganze in deiner APK freilich auch lösen, aber besser gehts über eine intelligente API. Und definiere mal deine Aussage von "Echtzeit". Wie zeitnah muss es wirklich sein? Sekunden? Minuten? Halbe Stunde?

Ich würde das selber so machen.

1. Webserver mit php und MYSQL. Die mySQL enthält die Master Tabelle. Jeder Datesatz erhält einen eindeutigen Timestamp!

2. Die Abfrage vom PC aus kann erfolgen:
2.1. Entweder durch Ausgabe am Webserver mittels php Webseite die gewünscht anzeigt
2.2. Ein Programm was direkt aus der mySQL liest
2.3. Der Webserver liefert ein KML Format was man direkt in GoogleEarth ansehen kann.

3. Die Android App erhält 2 Services
3.1. Service 1 macht weiter nichts wie die GPS Daten sammeln und in eine SQLite schreiben
3.2. Service 2 kümmert sich um die Übergabe an die API.

Service 2:
Postet Datensätze im Intervall an die API.
Schritt 1: Frage die API nach dem letzten Datensatz den sie schon bekommen hat.
Schritt 2: Poste alle Datensätze die die API noch nicht hat.

Geht eine Übertragung schief, postest du jeweils das solange bis die API alle Daten hat, dir kann nichts verloren gehen.

Mein Updater Service in meiner MADB App macht es ähnlich, bloss in die andere Richtung, er holt sich von der API alle Änderungen und hällt so die Datenbank der App auf dem neusten Stand.

Gehören noch ein paar Kleinigkeiten dazu damit das sauber funktioniert, aber darauf kommst du im Zuge der Umsetzung dazu.
 

flightnet

Member
Licensed User
Wouu Danke viel mals.

Aber ich habe eine frage dazu, allso kann ich theoretisch so wie du sagst von tablet die dateien an einen sqlite server schicken dort werden sie dann alle sagen wir 1.0 Sekunden aktualisiert( alte löschen neue schreiben) dann ist kann ich mit dem pc auf die sqlite zugreiffen und sie darstellen?
 

Powie

Member
Licensed User
Robin. Deine Frage macht mir das Gefühl das du nicht wirklich viel und tief Ahnung hast von diesen Dingen wie php, mySQL, SQLIte, JSON ......
Hast du schonmal mit diesen Dingen gearbeitet?
Ich kann dir sicher ein wenig dabei helfen.... nur komplett für dich coden kann ichs nicht :D
 

flightnet

Member
Licensed User
Ich hoffte ich komme mit null ahnung durch jedoch, glaub ich geht das länger se weniger. Und ich denke ich gehe mal kurz in die Stadt mir ein Fachbuch kaufen. :)

Vieleicht schreib ich wenn ich mehr ahnung habe wieder.
Nichts für ungut.
und schöne woche
Gruss
 

Powie

Member
Licensed User
Man kommt ohne anfängliche Ahnung durch, wenn man im Laufe der Umsetzung gewillt ist zu lernen.
Es bringt aber nichts wenn ich dir jetzt Dinge mit Server, und php etc. vorschlage du aber nicht die technischen Möglichkeiten dafür hast.
Zudem ist unklar was du überhaupt genau bezwecken willst mit dem ganzen Konstrukt. Eventuell schlagen wir dir komplett falsche Wege vor weil wir nicht wissen was du tun möchtest.
 

flightnet

Member
Licensed User
Also, mein vorhaben ist eine Tracking software zu erstellen. Das Tablet soll als Sender, der Pc als empfämger fungieren. Das Teblet soll ca. 7 Parameter senden. (Namen, Höhe, geschwindigkeit, Richtung, breitengrad, Lengengrad, status)

Ich suche jetzt eine Möglichkeit, wie ich jede Sekunde ein Upload dieser Daten machen kann(auf eine Datenbank) Damit ich die Daten von einem Computer, auf sem ich bereits ein Trackingprogramm geschrieben habe, abrufen kann. Mein haubtproblem, wie kann ich die verbindung herstellen.

Fals du noch einen direkteren weg kennst. bin ich sehr Offen.
Und ich will nicht das jemand für mich coded nur wenn jemand eine Idee hat wie ich dieses Ziel erreichen kann. Bzw wo ich mir das Wissen aneignen kann.

gruss
robin

Tablet-Computer
 
Top