|
 |
 |
 |
|
|
c't Projekte - c't-Bot und c't-Sim -
Mailinglisten
[Voriger (Datum)]
[Nächster (Datum)]
[Voriger (Thread)]
[Nächster (Thread)]
[Nach Datum][Nach Thread]
Absender: Timo Sandmann
Datum: Do, 19.06.2008 14:36:14
In-reply-to:
<E5502A58-C75A-432D-9241-62E21BDC0461@xxxxxxxxxxxxxxx>
References:
<000001c8d09e$f363bff0$0200a8c0@mexpnew> <F57F05A6-3013-4A1D-9337-2358FB3DD378@xxxxxxxxxxxxxxx> <4858FD89.2030403@xxxxxxxx> <E5502A58-C75A-432D-9241-62E21BDC0461@xxxxxxxxxxxxxxx>
Hi,
Am 19.06.2008 um 13:30 schrieb Timo Sandmann:
Wie groß seht ihr denn die Notwendigkeit dafür?
Kommen so große Datenmengen denn in der Praxis vor, oder kann der
Sim einfach die Daten etwas "langsamer" ausliefern?
Wie willst du denn langsamer ausliefern? Nachricht N+1 erst dann
abschicken, wenn Versand von N bereits mindestens 10 ms zurückliegt?
Dann muss der Sim aber auch puffern, der Nachrichteneingang soll ja
nicht ebenfalls schlafen gelegt werden, oder?
Ich würde auch gern Programme zum Bot senden und das geht wohl nur
als Payload sinnvoll. Gut man kann auch die Payload noch wieder
verzögern, aber irgendwie gefällt mir so ein von außen
aufgezwungenes Timing nicht so sehr...
Außerdem sind vom Sim künstlich verzögerte Daten irgendwie unschön,
wenn ich die Nachrichten vielleicht mal mit einer anderen CPU am Bot
empfangen möchte und dort gar keine Verzögerung brauche.
mir ist hierzu grad noch etwas anderes eingefallen, das einfacher ist,
und vielleicht erstmal völlig ausreicht:
Der sendende Bot verzögert die Nachrichten, so braucht man am Sim gar
nichts zu ändern und kommt auch ohne Puffer aus.
Eine ganz einfache Implementierung wäre es, wenn die Senderoutine für
Stackdaten als Verhalten realisiert wird, damit sie periodisch
aufgerufen wird. Beim Versand merkt sich das Verhalten die aktuelle
Zeit und schickt erst dann die nächste Nachricht, wenn mindestens 10
ms vergangen sind.
Der Overhead bleibt natürlich nach wie vor, aber für die
Stackpositionen ist das vermutlich nicht weiter schlimm.
Beim Verschicken von größeren Datenmengen als Payload könnte man im
data_l / data_r Feld einfach eine CRC-Prüfsumme mitschicken, dann kann
der Bot überprüfen, ob (wahrscheinlich) alles korrekt angekommen ist.
So müssten wir an der eigentlichen Kommunikation nichts ändern, was
meint ihr?
Grüße,
Timo
|
|
|