Absender: Timo Sandmann
Datum: Do, 20.11.2008 16:57:41
In-reply-to:
<48C139945BA47F4DB4DE05DF62CD57AA04D7CDAD0F@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
References:
<48C139945BA47F4DB4DE05DF62CD57AA04D7CDAD0F@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Am 20.11.2008 um 15:07 schrieb Menzel, Frank IT-OO4:
Hallo,wollte mal nachfragen, wie der Stand zu dem Thema ist, dass ein Bot ein beliebiges Verhalten auf einem anderen Bot aufrufen kann/darf.Mir würde da die Nutzung der Remotecalls einfallen...
Hi,es gibt bisher keine Implementierung, um mehr als 4 Byte an Daten von einem Bot zum anderen zu übertragen. Bei den RemoteCalls wird der Verhaltensname als Payload (String) übertragen. Das ist im Wesentlichen die einzige Schwierigkeit. Um eine Payload per Bot-2-Bot zu übertragen, müssen die Bots irgendwie einen Handshake ausführen, damit die Puffer nicht überlaufe, sonst gehen Daten verloren. Sinnvoll wäre hier wohl eine allgemeine Implementierung in bot-2-bot.c. Wenn die Payload-Übertragung funktioniert, sollte es recht einfach sein, einen RemoteCall auf einem anderen Bot zu starten. Beachten muss man allerdings, dass derzeit immer nur maximal ein RemoteCall aktiv sein darf, es können also nicht Sim und Bot A ein Verhalten auf Bot B starten bzw. Bot A kann auf Bot B erst dann ein Verhalten starten, wenn der letzte RemoteCall (egal von wem) vollständig abgearbeitet wurde.
Alternativ könnte man auch Fernbedienungscodes von einem Bot zum anderen schicken, wobei ich das eher nicht so elegant finde. In diesem Fall hängt es vom Zielbot ab, was bei dem Kommando passiert, außerdem sollen die RemoteCalls ja in Zukunft das Mittel der Wahl sein, um Verhalten (auch per Fernbedienung) zu starten.
Grüße, Timo