Sie sind hier: JD Web Pages > Themen > mindrobots > Alte Projekte > s²mirs > Guide > MultiMC-Mode
Hallo Gast, Sie sind nicht angemeldet.

MultiMC-Mode

Von Johannes Dörr am 13.06.2009, aktualisiert am 13.06.2009 um 10:53 Uhr

Auf dieser Seite...

Ein wichtiges Element von s²mirs ist neben der modularen Programmierung von Robotersteuerungen die Kommunikation zwischen mehreren Robotern (siehe Architektur ). Diese Funktion nennt sich MultiMC-Mode, da mehrere MCs zum Einsatz kommen, die miteinander Daten austauschen.

Starten Sie zwei MCs und geben ihnen in den jeweiligen "Start"-Tabs unterschiedliche Namen. Wechseln Sie anschließend in die "MMCMode"-Tabs. Hier ist wichtig, dass bei beiden MCs dieselbe Multicast-Group (zwischen 224.0.0.0 und 239.255.255.255) sowie derselbe Multicast-Port angegeben sind. Die Sender- und Receiver-Ports müssen hingegen wieder eindeutig sein, falls Sie beide MCs (testweise) auf demselben Rechner betreiben. Anschließend aktivieren Sie den Modus bei beiden MCs mit dem Häkchen ganz unten. Nun sollte bei jeder MC die jeweils andere in der Liste erscheinen.

Binden Sie nun bei in jede MC ein Testmodul ein. Achten Sie dabei darauf, dass die Loginports sowie die Modulports verschieden sein müssen bzw. sich nicht überschneiden dürfen. Dies gilt natürlich nur beim Betrieb auf einem einzigen Rechner.

Variablen

Aktivieren Sie bei beiden MCs den "Variablen"-Tab und erstellen Sie nun mit einem Modul eine globale Variable. Sie werden sehen, dass diese Variable in beiden MCs angelegt wird. Eine lokale Variable hingegen ist nur der MC bekannt, dessen Modul sie erzeugt hat. Ändert sich der Wert einer globalen Variable, werden automatisch alle anderen MCs benachrichtigt, sodass auch sie ihre Daten aktualisieren können.

Transfers

Die Kommunikation zwischen Robotern sollte eigentlich über Variablen oder Broadcasts laufen, es ist jedoch problemlos möglich, an ein Modul einer bestimmten MC Daten zu senden. Dazu muss als Empfänger vor den Modulnamen der Name der MC, abgetrennt mit "->", gesetzt werden, wie zum Beispiel "TRANSFER|MC1->Testmodul|Testnachricht".

Broadcasts

Die auf der vorigen Seite bereits angesprochenen Broadcasts lassen sich beim MultiMC-Mode auf das gesamte Netzwerk ausweiten, was "WideBroadcast" geannt wird. Auf diese Weise können beispielsweise alle Roboter in dem s²mirs-Netzwerk über ein Ereignis benachrichtigt werden.