Protocols

Aus ARTECO Wiki
Version vom 13. Juni 2024, 07:06 Uhr von Sven (Diskussion | Beiträge) (→‎Liveortung - Beschreibung)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

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.