www.mikrocontroller.net

Forum: PC-Programmierung Private TK102 TK102-2 V3 Positionsauswertung


Autor: Eddy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo forengemeinde
habe mir vor einiger zeit einen gps tracker zugelegt.
der tk102 bietet verschiedene möglichkeiten die positionsdaten zu 
versenden.
die komfortabelste ist natürlich die übertragung per gprs.

nun hatte ich mich ein wenig kundig gemacht und festgestellt entweder 
man bezahlt viel geld oder man macht sich weiter gläsern.
software für den heim pc ist sehr teuer und ein fremder onlinedienst
naja......

kurzum ich entschied mich eine eigene lösug zu entwickeln die emfangenen 
daten anschaulich darstellen zu können...
mangels präziser kenntnisse verschiedener programmiersprachen blieb ich 
auf bash befehlscode ebene und schrieb ein linux script was per netcat 
auf einem port daten empfing diesen string in seine bestandteile 
zerlegte und in variablen abspeicherte.
zuletzt wurden alle variablenwerte in quellcodes eigebaut sodass nach 
jedem emfangenen string eine kleine kml datei für google earth und eine 
html datei geschrieben wurden in der alle werte des trackers schön 
aufbereitet abzulesen waren inclusiver google maps einblendung.
die kml datei sorgte für die live track möglichkeit via google earth

nun habe ich jedoch ein problem
nach einem softwareupdate scheint der tracker
#090608143334,+491799158888,GPRMC,120443.000,A,4809.1234,N,01627.6666,E, 
3.31,142.24,150809,,,A*61,F,, 
imei:359587017123456,04,195.4,F:4.32V,0,141,63742
zu senden.
ich muss meine software nun umschreiben und stoße an verschiedene 
probleme.
es sieht so aus als wäre das nun der binärstring des gps emfängers der 
nun gesendet wird. (GPRMC)
als erklärung diese liste...

#[00]: 090815140443 Datum+Ortszeit (jjmmtt+hhmmss)
#[01]: +491799158888 Anrufende Telefonnummer
#[02]: GPRMC
#[03]: 120443.000 UTC Zeit (hhmmss.ms)
#[04]: A = Daten gültig, V= Daten ungültig
#[05]: 4809.1234 Breitengrad (ddmm.mmmm)
#[06]: N = Nord / S = Süd
#[07]: 01627.6666 Längengrad (dddmm.mmmm)
#[08]: E = Ost / W = West
#[09]: 3.31 Geschwindigkeit (km/h)
#[10]: 142.24 Steuerkurs (DEG)
#[11]: 150809 Datum (ttmmjj)
#[12]: ""
#[13]: ""
#[14]: A*61 Prüfsumme
#[15]: F = GPS-Signal (F=gut/L=schlecht)
#[16]: Alarmstatus (move, speed, stockade, batterie, help me)
#[17]: imei:Nummer
#[18]: 04 = Satelliten Anzahl
#[19]: 195.4 Höhe (m)
#[20]: F Akkustatus (F=Voll/L=Leer)
#[21]: 3.99V Akkuspannung
#[22]: 0 Akkuladung (0=aus/1=ein)
#[23]: 141 Bytes (Zeichenanzahl im String)
#[24]: 10353 ???
#[25]: MCC (Mobile Country Code)
#[26]: MNC (Mobile Network Code)
#[27]: LAC (Location area code) (Hex)
#[28]: Cell ID (Hex)
#

mein problem ist nun
länge und breite scheinen nicht das normale format zu haben.
ein alter string....
#lat: 57.977337N long: 018.183638E speed: 020.0 10.03.2008 14:37 bat:F 
signal:F

ist dort nun einfach nur der punkt verschoben oder müssen die 
koordinaten für google umständlich umgerechnet werden?

falls nur der punkt verschoben werden muss wie stell ich das an?
hätte dafür jemand vielleicht eine lösung?

ich habe folgendes probiert: (LINUX SHELL)

 PN=5555.4444444444    (simuliert länge oder breite)
 FN=${PN#*.}
 echo $FN

damit bekomme ich alle ziffern nach dem punkt.
aber wie bekomme ich die von vor dem punkt?
lässt sich der punkt einfach löschen?
und das wichtigste::
wie bekomm ich den punkt wieder an die 2.stelle von vorne?

es muss ja eine möglichkeit geben die position in einem string zu 
bestimmen um dort etwas editieren zu können...
habe leider nach langem "googeln" nichts gefunden.

(länge und breite stehen in voller länge mit "falschem"punkt jeweils 
einzeln in variablen zur weiteren verarbeitung bereit)

Autor: Eddy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habe jetzt folgende lösung gewählt:


gradlatT=$( echo $latT | cut -c 1-3)  # nimmt die ersten 3 stellen
sekundenlatT=$( echo $latT | cut -c 7-)  # nimmt nach der 7. alle 
weiteren
gradlongT=$( echo $longT | cut -c 1-2)
sekundenlongT=$( echo $longT | cut -c 6-)

funktioniert soweit ganz gut

Autor: Bo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Eddy,

ich arbeite zur Zeit selbst an einer solchen Lösung.

Konntest du mittlerweile in Erfahrung bringen, wofür #[24]: 10353 ???
steht?

Viele Grüße, Bo

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.