Seite 18 von 18

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

Verfasst: 25.08.2023 10:56:53
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 ?

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

Verfasst: 26.08.2023 15:10:00
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.

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

Verfasst: 20.03.2024 13:28:50
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!

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

Verfasst: 20.03.2024 15:07:04
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.

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

Verfasst: 20.03.2024 15:19:55
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:

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

Verfasst: 20.03.2024 18:14:38
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?

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

Verfasst: 20.03.2024 19:57:39
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:

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

Verfasst: 21.03.2024 09:10:40
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.

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

Verfasst: 21.03.2024 09:18:19
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.

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

Verfasst: 21.03.2024 13:40:21
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.

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

Verfasst: 21.03.2024 14:57:51
von BenniS.
Ah okay, Danke, das lässt sich soweit nachvollziehen :tup

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

Verfasst: 25.03.2024 12:23:02
von Carsten Hölscher
Das TCP-Output-Demotool im Zusi-Lieferumfang zeigt das ja auch ganz gut.

Carsten