Protocols
Auf dieser Seite wird die Kommunikation zwischen den Systems und dem Backend beschrieben.
Client
ecoTRACK - Protokollbeschreibung
PG: PaGe (page_id - block_id) ST: STatus (siehe: Status-Nummern) TS: TimeStamp (ddmmyyhhmmss) LO: LOngitude (World X) LA: LAtitude (World Y) DN: Drive Number CS: CourSe (0 bis 360. 0: Norden, im Uhrzeigersinn) SP: SPeed (Km/h) MX: MaX Speed (km/h) - seit Beginn der aktuellen Fahrt KM: KiloMeter (Strecke aktuelle Fahrt in km, reelle Zahl mit bis zu zwei Nachkommastellen) IO: InputOutput (accu, ana1, ana2, alert, dig1, dig2, pwr, ign, xout, yout, zout, relay) GQ: Gsm Quality (1 - 32, je höher, desto besser) SQ: Satellite Quality (satcnt, accuracy) DV: DriVer (ID-Chip: dezimal, RFID: hexadezimal oder Garmin Seriennummer: dezimal mit einem "G" davor) PV: PriVate 0: nicht privat, 1: privat, 2: Bereitschaft, wenn nicht gesendet: privat CK: ChecKsum (von PG bis PV)
IO-Werte für z.B. Power (pwr) bzw. Ignition (ign): 8V = 250 / 9,6V = 300 / 13V = 407 (gut für PKW) / 21V = 655 (gut für LKW)
Beispiel als ASCII:
PG:1338-1137 ST:020 TS:031109221826 LO:13.523052 LA:52.553085 DN:48 CS:000 SP:000 MX:066 KM:1.6 IO:430,0,0,0,0,0,384,0,553,520,415 GQ:24 SQ:08,1.28 DV: PV:0 CK:14
Beispiel als JSON:
{"PG":"1338-1137","ST":"020","TS":"031109221826","LO":"13.523052","LA":"52.553085","DN":"48","CS":"000","SP":"000","MX":"066","KM":"1.6","IO":"430,0,0,0,0,0,384,0,553,520,415","GQ":"24","SQ":"08,1.28","DV":"","PV":"0","CK":"14"}
G-Sensor - Beschreibung
PG: PaGe (page_id - block_id) ST: STatus (siehe: Status-Nummern) TS: TimeStamp (ddmmyyhhmmss) LO: LOngitude (World X) LA: LAtitude (World Y) SP: SPeed DN: Drive Number PV: PriVate UD: User Data CK: ChecKsum
Beispiel (ohne Zeilenumbruch):
PG:1301-1327 ST:200 TS:291009173909 LO:13.522683 LA:52.553020 SP:042 DN:1 PV:0 UD:[GALERT_X>499_Y<514_Z<510] CK:15
Trailer - Beschreibung
PG: PaGe (page_id - block_id) ST: STatus (siehe: Status-Nummern) TS: TimeStamp (ddmmyyhhmmss) LO: LOngitude (World X) LA: LAtitude (World Y) SP: SPeed DN: Drive Number PV: PriVate UD: User Data CK: ChecKsum
Beispiel (ohne Zeilenumbruch):
PG:1296-1310 ST:209 TS:291009173530 LO:13.522773 LA:52.553040 SP:042 DN:1 PV:0 UD:[TRAILER_0182721B0C000040] CK:11
MAE - Beschreibung
PG: PaGe (page_id - block_id) ST: STatus (siehe: Status-Nummern) TS: TimeStamp (ddmmyyhhmmss) LO: LOngitude (World X) LA: LAtitude (World Y) SP: SPeed DN: Drive Number PV: PriVate UD: User Data CK: ChecKsum
Beispiel (ohne Zeilenumbruch):
PG:1010-37 ST:210 TS:021109153559 LO:13.522632 LA:52.552959 SP:042 DN:4 PV:0 UD:[MAE,811,159107228,159107228,0] CK:70 UD:[MAE,<status>,<driverId>,<chipId>,<privat>]
Garmin
Driver Status -------------------------------------------- SN:GARMIN_SERIAL_NUMBER ST:STATUS_NUMBER
STATUS_NUMBER vom Benutzer im Garmin ausgewählt
STATUS_NUMBERS 1 => Ohne Ladung (frei) 2 => Teilweise beladen 3 => Beladen oder besetzt 4 => Achtung (Panne/Unfall) 5 => Stillstand/Stau 6 => Privatfahrt 7 => Dienstfahrt 8 => Pause
Driver ID -------------------------------------------- SN:GARMIN_SERIAL_NUMBER TX:DRIVER_NAME
DRIVER_NAME Freitext vom Benutzer definiert
Status - Beschreibung
PG: PaGe (page_id - block_id) ST: STatus (siehe: Status-Nummern) TS: TimeStamp (ddmmyyhhmmss) LO: LOngitude (World X) LA: LAtitude (World Y) SP: SPeed DN: Drive Number PV: PriVate UD: User Data (alle folgenden Parameter stehen mit "|" statt " " getrennt hinter UD: siehe Beispiel) SN: Serial Number SV: Software Version ST: System Typ [ALL|STATION|SINON[TABORA|UFO|VARUNA] SM: System Mode [NORMAL|LIVE] GS: GSM Infos GP: GPS Infos RT: Run Time (Days) SS: System Starts BL: BootLoader (0=alt/1=neu) DN: Drive Number RC: Reset Counter (Anzahl Modem-Starts seit Boot, ab r1678) PV: PriVate CK: ChecKsum
Beispiel (ohne Zeilenumbruch):
PG:1003-13 ST:211 TS:031109132202 LO:13.522688 LA:52.552990 SP:042 DN:4 PV:0 UD:SN:01E1AF1B0C000068|SV:2.10|ST:ALL|SM:NORMAL|GS:E-Plus(21)|GP:8(1.2)|RT:0.004|SS:2|BL:1|DN:4|RC:1|PV:0 CK:96
Variable - Beschreibung
PG: PaGe (page_id - block_id) ST: STatus (siehe: Status-Nummern) TS: TimeStamp (ddmmyyhhmmss) LO: LOngitude (World X) LA: LAtitude (World Y) SP: SPeed DN: Drive Number PV: PriVate UD: User Data (alle folgenden Parameter stehen mit "_" statt " " getrennt hinter UD: siehe Beispiel) GPRS: Konfiguration der GSM Provider-Zugangsdaten (siehe: Zugangsdaten) PI: Position Interval (siehe: Position Interval) HB: HeartBeat (siehe: Heartbeat) MC: Move Check (siehe: Move Check) PC: Power Check (siehe: Power Check) IC: Ignition Check (siehe: Ignition Check) PS: Power Save (siehe: Power Save) SS: Soft Start (siehe: Soft Start) ROAM: Roaming (siehe: Roaming) GR: GSM Reset (siehe: GSM Reset) GE: GSM Escape (siehe: GSM Escape) GT: GPRS Timeout (siehe: GPRS Timeout) DI: Device Id (siehe: Hardware-Erweiterungen) CK: ChecKsum
Beispiel (ohne Zeilenumbruch)
PG:3586-02745 ST:223 TS:250418083450 LO:13.484272 LA:52.566082 SP:051 DN:4250 PV:0 UD:GPRS:m2m,sim,m2m-net2.sa.t-mobile_PI:60_HB:1440_MC:50_PC:200_IC:0_PS:5_SS:0_ROAM:0_GR:24_GE:0_GT:5_DI:20,30,0,0_OK CK:80
Variable2 - Beschreibung
PG: PaGe (page_id - block_id) ST: STatus (siehe: Status-Nummern) TS: TimeStamp (ddmmyyhhmmss) LO: LOngitude (World X) LA: LAtitude (World Y) SP: SPeed DN: Drive Number PV: PriVate UD: User Data (alle folgenden Parameter stehen mit "_" statt " " getrennt hinter UD: siehe Beispiel) BT: (B)lue(t)ooth aktiv, Bluetooth Pairing MAC-Addresse (siehe: (B)lue(t)ooth) CC: (C)harge(C)ontrol Intervalle (siehe: (C)harge(I)nterval) GPSCHK: GPS-Check Intervall (siehe: GPSCHECK) EC21: EC21 GPS Startup Parameter (siehe: GPSINIT) CK: ChecKsum
Beispiel (ohne Zeilenumbruch)
PG:3586-02745 ST:223 TS:250418083450 LO:13.484272 LA:52.566082 SP:051 DN:4250 PV:0 UD:BT:1,00AB1D86DDEF_CC:60,300_GPSCHK:120,60_EC21:50,255
Liveortung - Beschreibung
Die Liveortungs-Nachrichten nutzen ein komprimiertes Format zur Datenübertragung. Der Datensatz wird durch ein Ausrufezeichen (ASCII 0x21) eingeleitet, gefolgt von fünf Datenfeldern, die jeweils durch Pipes ("|", ASCII 0x7c) getrennt werden. Abgeschlossen wird die Nachricht von einem Zeilenumbruch "\r\n".
Beispiel:
!13.522573|52.552879|12|48|0
Legende:
Feld Inhalt ------------------------------------------------------------- ! markiert den Beginn 0 Longitude (Länge) 1 Latitude (Breite) 2 Course (Richtung in °, 0=Norden, 90=Osten, 180=Süden) 3 Speed (momentane Geschwindigkeit in km/h) 4 Privat (1=ja, 0=nein)
Server
Nachrichten vom Server werden jeweils mit einem \r\n abgeschlossen.
100
101
200
201
202
206
400
Wird bei Anmeldeversuchen von Garmins als Bestätigung über den Erhalt der Seriennumer gesendet.
401
Das System hat sich erfolgreich angemeldet. Direkt darauf folgenden wird "TIME <ISO 8601 Zeit des Servers>\r\n" gesendet.
402
Wenn sich das System versuchte anzumelden und die Authentifizierung fehlgeschlagen oder das System gelöscht ist. Darauf folgend wird eine "999\r\n" gesendet und die Verbindung serverseitig geschlossen.
403
404
409
Beim Versuch des Systems sich anzumelden wird festgestellt, dass die Verbindung abgewiesen werden soll. Kann ebenfalls auftreten, wenn es einen Datenbankfehler gab. Darauf folgend wird eine "999\r\n" gesendet und die Verbindung serverseitig geschlossen.
601
Die Verbindung wird 15 Sekunden nach dem Senden dieser Nachricht serverseitig getrennt. Gründe für das Trennen können sein:
- Neustart des Backends
- Es gab eine erneute Anmeldung mit der selben Seriennummer
- der GPRS Timeout ist abgelaufen (es wurde x Minuten nichts vom System gesendet)