Protocols: Unterschied zwischen den Versionen
Tommy (Diskussion | Beiträge) |
Sven (Diskussion | Beiträge) |
||
(87 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | + | Auf dieser Seite wird die Kommunikation zwischen den Systems und dem Backend beschrieben. | |
+ | |||
+ | == Client == | ||
+ | |||
+ | ===ecoTRACK - Protokollbeschreibung=== | ||
PG: PaGe (page_id - block_id) | PG: PaGe (page_id - block_id) | ||
− | ST: STatus (siehe: [[ | + | ST: STatus (siehe: [[Status_Numbers|Status-Nummern]]) |
− | TS: TimeStamp ( | + | TS: TimeStamp (ddMMyyhhmmss) |
LO: LOngitude (World X) | LO: LOngitude (World X) | ||
LA: LAtitude (World Y) | LA: LAtitude (World Y) | ||
DN: Drive Number | DN: Drive Number | ||
− | CS: CourSe | + | CS: CourSe (0 bis 360. 0: Norden, im Uhrzeigersinn) |
SP: SPeed (Km/h) | SP: SPeed (Km/h) | ||
− | MX: MaX Speed | + | MX: MaX Speed (km/h) - seit Beginn der aktuellen Fahrt |
− | KM: KiloMeter | + | 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) | + | IO: InputOutput (accu, ana1, ana2, alert, dig1, dig2, pwr, ign, xout, yout, zout, relay) |
− | GQ: Gsm Quality (1-32) | + | GQ: Gsm Quality (1 - 32, je höher, desto besser) |
SQ: Satellite Quality (satcnt, accuracy) | SQ: Satellite Quality (satcnt, accuracy) | ||
− | DV: DriVer (ID-Chip oder Garmin Seriennummer) | + | 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_Numbers|Status-Nummern]]) | ||
+ | TS: TimeStamp (ddMMyyhhmmss) | ||
+ | LO: LOngitude (World X) | ||
+ | LA: LAtitude (World Y) | ||
+ | SP: SPeed | ||
+ | DN: Drive Number | ||
PV: PriVate | PV: PriVate | ||
+ | UD: User Data | ||
CK: ChecKsum | CK: ChecKsum | ||
− | + | Beispiel (ohne Zeilenumbruch): | |
− | PG: | + | 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) | PG: PaGe (page_id - block_id) | ||
− | ST: STatus (siehe: [[ | + | ST: STatus (siehe: [[Status_Numbers|Status-Nummern]]) |
TS: TimeStamp (ddmmyyhhmmss) | TS: TimeStamp (ddmmyyhhmmss) | ||
LO: LOngitude (World X) | LO: LOngitude (World X) | ||
LA: LAtitude (World Y) | LA: LAtitude (World Y) | ||
+ | SP: SPeed | ||
DN: Drive Number | DN: Drive Number | ||
+ | PV: PriVate | ||
UD: User Data | 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) | PG: PaGe (page_id - block_id) | ||
− | ST: STatus (siehe: [[ | + | ST: STatus (siehe: [[Status_Numbers|Status-Nummern]]) |
− | TS: TimeStamp ( | + | TS: TimeStamp (ddMMyyhhmmss) |
LO: LOngitude (World X) | LO: LOngitude (World X) | ||
LA: LAtitude (World Y) | LA: LAtitude (World Y) | ||
+ | SP: SPeed | ||
DN: Drive Number | DN: Drive Number | ||
+ | PV: PriVate | ||
UD: User Data | UD: User Data | ||
+ | CK: ChecKsum | ||
− | + | Beispiel (ohne Zeilenumbruch): | |
− | PG: | + | 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) | PG: PaGe (page_id - block_id) | ||
− | ST: STatus (siehe: [[ | + | ST: STatus (siehe: [[Status_Numbers|Status-Nummern]]) |
− | TS: TimeStamp ( | + | TS: TimeStamp (ddMMyyhhmmss) |
LO: LOngitude (World X) | LO: LOngitude (World X) | ||
LA: LAtitude (World Y) | LA: LAtitude (World Y) | ||
+ | SP: SPeed | ||
DN: Drive Number | DN: Drive Number | ||
− | UD: User Data | + | PV: PriVate |
+ | UD: User Data (alle folgenden Parameter stehen mit "|" statt " " getrennt hinter UD: siehe Beispiel) | ||
+ | SN: Serial Number | ||
+ | SV: Software Version (<laufende>/<vorgeladene>) | ||
+ | ST: System Typ [ALL|STATION|SINON[TABORA|UFO|VARUNA] | ||
+ | SM: System Mode [NORMAL|LIVE] | ||
+ | GS: GSM Infos | ||
+ | GP: GPS Infos | ||
+ | RT: Run Time (Days, Gleitkommazahl) | ||
+ | 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 | ||
+ | |||
+ | ==== Modulus ==== | ||
+ | |||
+ | Mit der Entwicklung des Modulus wurde der Status-Datensatz angepasst und nicht mehr gebrauchte Werte aus den UserData entfernt sowie einige geändert. | ||
+ | |||
+ | SM: System Mode [NORMAL|LIVE] | ||
+ | GS: GSM Infos [<MCC><MNC>] | ||
+ | RT: Run Time (in Minuten) | ||
+ | SS: System Starts | ||
+ | DN: Drive Number | ||
+ | |||
+ | Beispiel: | ||
+ | PG:4024 ST:211 TS:070122095957 LA:52.685985 LO:13.195108 DN:1337 SP:1.800000 PV:0 UD:SM:NORMAL|GS:00|RT:1|SS:11|DN:0 CK:31 | ||
+ | |||
+ | see also: | ||
+ | |||
+ | MCC: https://de.wikipedia.org/wiki/Mobile_Country_Code | ||
+ | |||
+ | MNC: https://de.wikipedia.org/wiki/Mobilfunknetzkennzahl | ||
+ | |||
+ | === Variable - Beschreibung === | ||
− | + | PG: PaGe (page_id - block_id) | |
− | + | ST: STatus (siehe: [[Status_Numbers|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: [[Sms_Commands#gprs|Zugangsdaten]]) | ||
+ | PI: Position Interval (siehe: [[Sms_Commands#pi|Position Interval]]) | ||
+ | HB: HeartBeat (siehe: [[Sms_Commands#hb|Heartbeat]]) | ||
+ | MC: Move Check (siehe: [[Sms_Commands#mc|Move Check]]) | ||
+ | PC: Power Check (siehe: [[Sms_Commands#pc|Power Check]]) | ||
+ | IC: Ignition Check (siehe: [[Sms_Commands#ic|Ignition Check]]) | ||
+ | PS: Power Save (siehe: [[Sms_Commands#ps|Power Save]]) | ||
+ | SS: Soft Start (siehe: [[Sms_Commands#ss|Soft Start]]) | ||
+ | ROAM: Roaming (siehe: [[Sms_Commands#roaming|Roaming]]) | ||
+ | GR: GSM Reset (siehe: [[Sms_Commands#gr|GSM Reset]]) | ||
+ | GE: GSM Escape (siehe: [[Sms_Commands#ge|GSM Escape]]) | ||
+ | GT: GPRS Timeout (siehe: [[Sms_Commands#gt|GPRS Timeout]]) | ||
+ | DI: Device Id (siehe: [[Device_List|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_Numbers|Status-Nummern]]) | |
− | + | TS: TimeStamp (ddMMyyhhmmss) | |
− | + | LO: LOngitude (World X) | |
− | + | LA: LAtitude (World Y) | |
− | + | SP: SPeed | |
− | |||
− | |||
DN: Drive Number | 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: [[Sms_Commands#bt|(B)lue(t)ooth]]) | ||
+ | CC: (C)harge(C)ontrol Intervalle (siehe: [[Sms_Commands#ci| (C)harge(I)nterval]]) | ||
+ | GPSCHK: GPS-Check Intervall (siehe: [[Sms_Commands#gpscheck| GPSCHECK]]) | ||
+ | EC21: EC21 GPS Startup Parameter (siehe: [[Sms_Commands#gpsinit| 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) | ||
+ | |||
+ | === FMS Daten === | ||
+ | |||
+ | Im Status 227 in den UserData sind viele FMS und D8 Daten enthalten. | ||
+ | |||
+ | CANgineII livedata strings come in the form: | ||
+ | |||
+ | <FMS>;0x0000;Cg2FR;020001;01060483;#002013.03.07-10:56:37;#0101:00;#021;0;0;0;0;0;0;0;n;0;0;0;(...)$002725.125;$0151.2;97;$0278.12;1;0;0;0;0;0;1/3/1;0/2/7;$0378.12;1;0;0;set;(...)</FMS> | ||
+ | |||
+ | where a beginning like #01 or $04 is the index number for a new index field, followed by arbitrary data fields, each separated by ';'. Also the whole index fields are separated by ';'. Note there is no ';' between the index number and the first data field. | ||
+ | An index with '#' denotes D8 data, '$' is FMS data. | ||
+ | |||
+ | == Server == | ||
+ | |||
+ | Nachrichten vom Server werden jeweils mit einem \r\n abgeschlossen. | ||
+ | |||
+ | === Travelbescheinigung === | ||
+ | Wenn der Server einen Travel-Datensatz (z. B. Status 10) verarbeitet hat, wird dieser für einige Hersteller bestätigt. | ||
+ | |||
+ | TC: TravelConfirmation-Statusnumber | ||
+ | PG: PageNumber | ||
+ | DN: DriveNumber | ||
+ | |||
+ | Beispiel als ASCII: | ||
+ | |||
+ | TC:S01 DN:1337 PG:42-start | ||
+ | |||
+ | TC-Statusnummern (S == success; E == error): | ||
+ | |||
+ | S01: Die Fahrt wurde angelegt (Es fehlt noch der gegenteilige Status). | ||
+ | S02: Die Fahrt wurde abgeschlossen. | ||
+ | E01: Zu der Fahrt gab es den jeweiligen Status (z. B. Zündung an) bereits. | ||
+ | E02: Ein sonstiger Fehler. | ||
+ | |||
+ | === Statusnummern === | ||
+ | ==== 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 [[Sms_Commands#gt|GPRS Timeout]] ist abgelaufen (es wurde x Minuten nichts vom System gesendet) | ||
− | + | ==== 604 ==== | |
− | + | ==== 605 ==== | |
+ | ==== 000 ==== | ||
+ | ==== 999 ==== | ||
+ | Wird nach 402 oder 409 gesendet. |
Aktuelle Version vom 13. Juni 2024, 07:06 Uhr
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 (<laufende>/<vorgeladene>) ST: System Typ [ALL|STATION|SINON[TABORA|UFO|VARUNA] SM: System Mode [NORMAL|LIVE] GS: GSM Infos GP: GPS Infos RT: Run Time (Days, Gleitkommazahl) 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
Modulus
Mit der Entwicklung des Modulus wurde der Status-Datensatz angepasst und nicht mehr gebrauchte Werte aus den UserData entfernt sowie einige geändert.
SM: System Mode [NORMAL|LIVE] GS: GSM Infos [<MCC><MNC>] RT: Run Time (in Minuten) SS: System Starts DN: Drive Number
Beispiel:
PG:4024 ST:211 TS:070122095957 LA:52.685985 LO:13.195108 DN:1337 SP:1.800000 PV:0 UD:SM:NORMAL|GS:00|RT:1|SS:11|DN:0 CK:31
see also:
MCC: https://de.wikipedia.org/wiki/Mobile_Country_Code
MNC: https://de.wikipedia.org/wiki/Mobilfunknetzkennzahl
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)
FMS Daten
Im Status 227 in den UserData sind viele FMS und D8 Daten enthalten.
CANgineII livedata strings come in the form:
<FMS>;0x0000;Cg2FR;020001;01060483;#002013.03.07-10:56:37;#0101:00;#021;0;0;0;0;0;0;0;n;0;0;0;(...)$002725.125;$0151.2;97;$0278.12;1;0;0;0;0;0;1/3/1;0/2/7;$0378.12;1;0;0;set;(...)</FMS>
where a beginning like #01 or $04 is the index number for a new index field, followed by arbitrary data fields, each separated by ';'. Also the whole index fields are separated by ';'. Note there is no ';' between the index number and the first data field. An index with '#' denotes D8 data, '$' is FMS data.
Server
Nachrichten vom Server werden jeweils mit einem \r\n abgeschlossen.
Travelbescheinigung
Wenn der Server einen Travel-Datensatz (z. B. Status 10) verarbeitet hat, wird dieser für einige Hersteller bestätigt.
TC: TravelConfirmation-Statusnumber PG: PageNumber DN: DriveNumber
Beispiel als ASCII:
TC:S01 DN:1337 PG:42-start
TC-Statusnummern (S == success; E == error):
S01: Die Fahrt wurde angelegt (Es fehlt noch der gegenteilige Status). S02: Die Fahrt wurde abgeschlossen. E01: Zu der Fahrt gab es den jeweiligen Status (z. B. Zündung an) bereits. E02: Ein sonstiger Fehler.
Statusnummern
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)
604
605
000
999
Wird nach 402 oder 409 gesendet.