Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

Da immer mehr Zusi User von einem 1:1 Führerstand mit träumen, soll es zumindest an Datenaustausch nicht hapern.
Nachricht
Autor
Kevin1897
Beiträge: 56
Registriert: 07.10.2022 21:53:59

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#341 Beitrag von Kevin1897 »

Danke für den Tipp,
verrätst du mir noch wie ich das in diese Werte Umrechne damit es in das Programm passt ?
BR620/622/642 BR8442 ;-)

Benutzeravatar
F. Schn.
Beiträge: 6698
Registriert: 24.10.2011 18:58:26

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#342 Beitrag von F. Schn. »

Schau dir erst mal deinen Code an, ob es da nicht schon drinnen ist. Dazu suchst du am besten den Code nach den Nummern 0002, 000A, 0064 und 0003 ab, damit du erst mal weißt, wie der Gedankengang von dem Code ist und wo du überhaupt suchen musst.
Ich bin beim Programmieren sehr skeptisch, solche Lösungen vorzukauen. Man sollte sich da wirklich eindenken.
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

BenniS.
Beiträge: 389
Registriert: 16.02.2014 21:48:49
Aktuelle Projekte: Fahrpultbau
Wohnort: KKO KM91,4

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#343 Beitrag von BenniS. »

Ich lasse mir zur Zeit Zusi Scripte von ChatGPT erklären mit der Info das ich 6 Jahre alt bin, um endlich mal mit einfach Worten zu verstehen was für Dinge in einem Script stehen, warum sie dort stehen, was sie bedeuten und wie sie zusammenspielen. :O Funktioniert soweit auch wirklich gut. Aber bei einer Verständnisfrage würde ich mich freuen, wenn ich eure Hilfe erhalten könnte.

Folgender Codeblock als Beispiel:
uint8_t Abfrage[] = { 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xA, 0x0,
0x4, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, // Geschwindigkeit m/s
0x4, 0x0, 0x0, 0x0, 0x1, 0x0, 0x2, 0x0, // Druck Hauptluftleitung
................
0x4, 0x0, 0x0, 0x0, 0x1, 0x0, 0x7c, 0x0, // Zugkraft gesamt Steuerwagen
0x4, 0x0, 0x0, 0x0, 0x1, 0x0, 0x85, 0x0, // Fahrstufe Steuerwagen
0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF
};
In der ersten Zeile würde ich die 0x2, 0x3 und 0xA dem Needed_Data Befehl zuschreiben, stimmt meine Annahme? Aber warum die vielen 0x0 dazwischen, was machen die?
Was bedeuten die 0x4 und das an fünfter Stelle stehende 0x1 in jeder Zeile und warum die wiederholten 0xFF am Ende?

Ich wäre euch für eine Erklärung wirklich dankbar!
Zuletzt geändert von BenniS. am 20.03.2024 18:38:39, insgesamt 1-mal geändert.
beste Grüße
Benni

jonathanp
Beiträge: 288
Registriert: 01.06.2015 14:11:25
Aktuelle Projekte: http://www.zusidatenbank.de/
Wohnort: BW Schöneweide

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#344 Beitrag von jonathanp »

In der ersten Zeile würde ich die 0x2, 0x3 und 0xA dem Needed_Data Befehl zuschreiben, stimmt meine Annahme? Aber warum die vielen 0x0 dazwischen, was machen die?
Was bedeuten die 0x4 und das an fünfter Stelle stehende 0x1 in jeder Zeile und warum die wiederholten 0xFF am Ende?
In Abschnitt 11.3 (Datenaustausch) der Zusi Doku gibt es eine Erklärung des Protokolls, in der jedes Element einer Nachricht im Detail mit Beispielen erklärt wird. Hast du es gelesen?
Wenn du es schon gelesen hast, bin ich mir nicht sicher, ob ich du weiterhelfen kann.

Eine Sache, die vielleicht nicht offensichtlich ist.
Eine Netzwerkverbindung ist nur ein endloser Strom von Bits, bis sie geschlossen wird. Ein Computer hat keine Ahnung, wann eine Nachricht oder ein Teil davon begonnen oder geendet hat, es sei denn, Sie sagen es ihm. Daher müssen alle Daten, die Sie senden, entweder eine feste Länge haben, oder Sie sagen im Voraus genau, wie lang sie sind.
Autor - Zusi 3 C++ Client, zusidatenbank.de - Das Zusi3 Addon-Datenbank

BenniS.
Beiträge: 389
Registriert: 16.02.2014 21:48:49
Aktuelle Projekte: Fahrpultbau
Wohnort: KKO KM91,4

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#345 Beitrag von BenniS. »

Danke für deine Antwort.
In Abschnitt 11.3 (Datenaustausch) der Zusi Doku gibt es eine Erklärung des Protokolls, in der jedes Element einer Nachricht im Detail mit Beispielen erklärt wird
Das Kapitel bin ich seit heute Vormittag am studieren, mit dem Versuch die Zusammenhänge im Code zu verstehen. Aber im Code stehen eben nur diese Hexadezimalzahlen, und nicht wie in der Doku die IDs mit 00 01,..02,..03, etc. Daher fällt es mir noch schwer für mich die Verknüpfungen zu ziehen.
FF steht ja für die Kennzeichnung des Knoten-Endes. Aber warum wird es im Skript so oft hintereinander aufgeführt?

Genauso ratlos bin ich über die in Kapitel 11.3.2 vorhandenen 4 Spalten mit "ID", wenn ein Befehl erläutert wird. Was bedeutet es, das die einzelnen IDs versetzt voneinander eingetragen sind?

...sagen im Voraus genau, wie lang sie sind.
Heißt also im Umkehrschluss, das die 0x4 in jeder Zeile die Packet_Length angibt?


Fragen über Fragen :rolleyes:
beste Grüße
Benni

Benutzeravatar
F. Schn.
Beiträge: 6698
Registriert: 24.10.2011 18:58:26

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#346 Beitrag von F. Schn. »

Kleine Vorab-Erklärung:
BenniS. hat geschrieben: 20.03.2024 13:28:50
uint8_t Abfrage[] = { 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xA, 0x0,
ergibt ein bisschen umformatiert

Code: Alles auswählen

0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 
0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 
0x0, 0x0, 0x0, 0x0, 0xA, 0x0,
Ist ersichtlich, was diese Zeilen je tun?
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

BenniS.
Beiträge: 389
Registriert: 16.02.2014 21:48:49
Aktuelle Projekte: Fahrpultbau
Wohnort: KKO KM91,4

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#347 Beitrag von BenniS. »

Ich traue mich eigentlich nicht zuzugeben das ich es nicht raffe. Aber es nutzt ja nichts. Nein, ich verstehe es nicht ;(

Was hat die Formatierung damit zu tun? Das sprengt aber auch den Rahmen dieses Threads, wenn sich bei Hilfestellung immer neue Fragezeichen bei mir auftun.
Ich muss da irgendwie anders ran ans Thema.

Onlineplattformen wie Codeacademy starten auch nicht bei 0, weswegen ich dort seit längerer Zeit auch nicht mehr weiter komme. Werde mir mal C++ für Dummies bestellen müssen :roll:
beste Grüße
Benni

yxyx
Beiträge: 160
Registriert: 05.07.2022 11:26:10

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#348 Beitrag von yxyx »

BenniS. hat geschrieben: 20.03.2024 19:57:39 Was hat die Formatierung damit zu tun?
Die Formatierung macht es nur einfacher lesbar für Menschen, ändert aber nichts am Inhalt.

yxyx
Beiträge: 160
Registriert: 05.07.2022 11:26:10

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#349 Beitrag von yxyx »

BenniS. hat geschrieben: 20.03.2024 15:19:55 Aber im Code stehen eben nur diese Hexadezimalzahlen, und nicht wie in der Doku die IDs mit 00 01,..02,..03, etc.
Die IDs in der Doku sind auch als Hexadezimalen angegeben.
Im Code steht halt nur 0x davor, damit der Compiler weiß, dass er sie als Hexadezimalzahlen und nicht als Dezimalzahlen interpretieren soll.

Benutzeravatar
nonesense
Beiträge: 507
Registriert: 15.07.2006 12:50:10
Aktuelle Projekte: QDmi
Fahrpult Einheitsführerstand
Ludmilla
Wohnort: Köln
Kontaktdaten:

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#350 Beitrag von nonesense »

BenniS. hat geschrieben: 20.03.2024 15:19:55Was bedeutet es, das die einzelnen IDs versetzt voneinander eingetragen sind?
Du kannst dir das Vorstellen wie eine Gliederung mit unterschiedlich weit eingerückten Auflistungen.
Z.B. so:
  • Knoten
    • Knoten im Knoten
      • Atribut des Knoten im Knoten
      • Atribut des Knoten im Knoten
      • Atribut des Knoten im Knoten
      • Knoten im Knoten im Knoten
        • Atribut des Knoten im Knoten im Knoten
        • Atribut des Knoten im Knoten im Knoten
        • Atribut des Knoten im Knoten im Knoten
        • Atribut des Knoten im Knoten im Knoten
      • Knoten im Knoten im Knoten
        • Atribut des Knoten im Knoten im Knoten
Alle diese Knoten haben Ihre Kennung, also das info "Hier beginnt ein Konten (Viel mal 0x00)" und deren Länge, so wie "Hier endet der Knoten (Vier mal 0xff)". Ähnliches für die Atribute.
Zuletzt geändert von nonesense am 21.03.2024 15:08:37, insgesamt 2-mal geändert.

BenniS.
Beiträge: 389
Registriert: 16.02.2014 21:48:49
Aktuelle Projekte: Fahrpultbau
Wohnort: KKO KM91,4

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#351 Beitrag von BenniS. »

Ah okay, Danke, das lässt sich soweit nachvollziehen :tup
beste Grüße
Benni

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33450
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Der Ardunio und direkte Ausgaben vom ZusiServer über TCP

#352 Beitrag von Carsten Hölscher »

Das TCP-Output-Demotool im Zusi-Lieferumfang zeigt das ja auch ganz gut.

Carsten

Antworten