next up previous contents
Next: 4. Entwurf der Lösung Up: 3. Aufbau des Moduls Previous: 3.5 CAN-Identifier

3.6 Broadcasts

Broadcasts unterscheiden sich, wie beschrieben, in zwei Gruppen: Broadcasts zur Anmeldung und allgemeine Nachrichten an mehrere oder auch alle Roboter.

Zum Zeitpunkt der Anmeldung weiß der neue Khepera nicht, welche Roboter ebenfalls aktiv sind, er müßte sich also bei allen möglichen Khepera-IDs melden. Um zu umgehen, daß der neue Roboter alle 32 möglichen Adressen ausprobiert, wird die Anmeldung über den Master abgewickelt - dieser verfügt wie jeder Roboter über eine Liste der tatsächlich vorhandenen Roboter3.7. Wenn nun der Master von einem neuen Roboter eine Anmeldenachricht erhält, verschickt er diese Anmeldung weiter an alle Roboter, die er in seiner Liste hält, als Absender wird aber der neue Roboter eingetragen. Diese Anmeldung wird nun von den vorhandenen Robotern quittiert, auf diese Weise erhält der neue Roboter die Adressen der bereits angemeldeten Roboter.

Zur besseren Übersicht hier noch einmal die gesamte Anmeldeprozedur:

1.
Der Roboter wird angeschaltet, er meldet sich beim Master an.
2.
Der Master hält eine Tabelle der bereits angemeldeten Roboter. Der neue wird hinzugefügt, an die anderen wird im Namen des neuen eine Anmeldung geschickt.
3.
Jeder andere Roboter erhält die Anmeldung des neuen Kheperas und schickt eine Anmeldequittierung an ihn zurück. Zusätzlich wird der neue in die Roboter-Tabelle eingetragen.
4.
Der neue Roboter erhält von allen vorhandenen Robotern eine Quittierung und verfügt somit auch über eine Liste der vorhandenen Roboter

Nach diesem Vorgang sind alle Tabellen auf dem neusten Stand.

Wenn ein bereits angemeldeter Roboter eine Nachricht an alle schicken möchte, so braucht er diese jetzt nur noch an die Roboter in seiner Liste zu schicken, dies dürften im Normalfall wesentlich weniger sein als die maximal möglichen 32.


next up previous contents
Next: 4. Entwurf der Lösung Up: 3. Aufbau des Moduls Previous: 3.5 CAN-Identifier
Christopher Odenbach
1999-06-01