Master Slave Prinzip

Gast #1316513
Hi, ich hab für mein Master Slave Verfahren Kommandos difiniert. Zum 
einen gibt es das Feld "Request". Dies kann bei mir 0 oder 1 annehmen.
Wenn der Master eine Anfrage(Request) startet muss da das Request auf 0 
oder 1 stehen? Bzw. Wenn der Slave dann daruafhin antwortet (response) 
wie sieht es da dann aus?
Hallo,

wie würdest Du es im normalen Leben machen?
würdest Du Dir einen Zettel an den Kühlschrank heften: Kartoffeln holen!
oder einen
"Keine Kartoffeln holen!" und den wegnehmen, wenn Du welche brauchst?

Gruß aus Berlin
Michael
Gast schrieb:
> Wie macht man die üblicherweise?
>
> Request = 1 --> eine Antwort vom Slave wird erwartet
> Request = 0 --> keine Antwort vom Slave wird erwartet

Kommt darauf an, wie DU die Bedeutung des Bits definierst.
Persönlich würde ich definieren: Egal wer die Anfrage absetzt, er hat 
bei einer Anfrage dieses Bit zu setzen. Ob der Master oder der Slave 
eine Anfrage absetzt spielt keine Rolle.
Gast
> Wie macht man die üblicherweise?
> Request = 1 --> eine Antwort vom Slave wird erwartet
> Request = 0 --> keine Antwort vom Slave wird erwartet

Ich würde das nicht "Request" nennen, sondern "Response required". Dann 
sollte alles klar sein.
Gast
Danke für die zahlreiche Unterstützung.

Nun soll der Master ein Anfrage an den Slave senden.
Dieser soll daraufhin Antworten. Die Antwort enthält Nutzdaten.
Wie müsste dazu das Kommando aussehen?

Beispiel Kommando response:
Datalength IDSend IDRecv Request ....

Hat jemand sowas schonmal für ein Master Slave Prinzip mit Komandos 
umgesetzt?
Gast schrieb:
> Danke für die zahlreiche Unterstützung.
>
> Nun soll der Master ein Anfrage an den Slave senden.
> Dieser soll daraufhin Antworten. Die Antwort enthält Nutzdaten.
> Wie müsste dazu das Kommando aussehen?
>
> Beispiel Kommando response:
> Datalength IDSend IDRecv Request ....
>
> Hat jemand sowas schonmal für ein Master Slave Prinzip mit Komandos
> umgesetzt?

Denk dir was aus!
Das ist ja gerade das Tolle an der Programnmierung! Du bestimmts was 
Sache ist. Niemand sonst.

Hör auf, sofort alles im Editor reinzuhacken.
Nimm dir Papier und Bleistift und definiere in welcher Reihenfolge 
welche Bytes mit welchem Inhalt von wem zu wem geschickt werden. Achte 
darauf, dass der jeweilige Empfänger immer nur das weiß, was er von der 
Gegenstelle an Bytes bekommt, sprich: ein empfangenes Byte muss das 
weitere auslösen können, falls notwendig.

Spiel das ganze in Gedanken (oder mit Papier und Bleistift) durch

  Der Sender sendet ein Byte: Welche Bits sind gesetzt? Was ist die
  Bedeutung des Bytes?

  Wie reagiert der Empfänger darauf? Was schickt er zurück? Müssen
  mehrere Bytes zurück übertragen werden, wie ist das dann? Sind das
  immer gleich viele oder unterschiedlich viele. Woran kann der neue
  Empfänger (der ursprüngliche Sender) erkennen, welcher Fall vorliegt?
  Muss er das überhaupt wissen oder erwartet er bei einer Antwort immer
  als erstes ein Byte welches ihm angibt wieviele Bytes noch kommen
  werden?

Das ist das Salz in der Suppe der Programmierung. Du bestimmst wie die 
"Welt" funktioniert, nach welchen Regeln gespielt wird. Du bist
für deinen µC Gott! So wie du die "Welt" für richtig befindest, so ist
sie per Definition richtig (Ob deine Definitionen Sinn ergeben steht auf 
einem anderen Blatt. Aber das wirst du merken, wenn deine "Welt" nicht 
funktioniert)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.