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


von Eddy (Gast)


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)

von Eddy (Gast)


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

von Bo (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.