c't

c't-Projekte - Mailinglisten


[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

Re: [ct-bot] Basic-Interpreter für den Bot

Absender: Timo Sandmann
Datum: Mo, 05.07.2010 21:27:45
In-reply-to: <000001cb1c4f$a2fa5520$0400a8c0@mexpnew>
References: <000001cb1c4f$a2fa5520$0400a8c0@mexpnew>


Hallo Frank,

das Ganze funktioniert natürlich nicht, weil beim Bot-Code der Interpreter fehlt, mit dem ich damals nicht so richtig fertig geworden bin. Abstürzen sollte allerdings trotzdem nichts, der Bot bekommt dann einfach ein Kommando, mit dem er nichts anfangen kann und das er daher ignorieren sollte. Bekommst Du irgendeine Fehlermeldung oder einen Speicherüberlauf oder warum stürzt es (der Botcode nehme ich mal an?) ab? Das scheint mir dann eher ein Bug im Command-Code zu sein.

Ich meinte das in der Tat als Beispiel für eine Eingabemöglichkeit beliebiger, auf dem Bot interpretierter Programme. Das Prozedere ist ja eigentlich immer gleich und dem Sim ist es völlig egal, ob du Basic oder sonst etwas in das Textfenster tippst und anschließend zum Bot überträgst. Da können wir auf jeden Fall die vorhandene "Infrastruktur" nutzen. Erstmal am besten für deinen Basic-Interpreter, weil der vermutlich am weitesten fortgeschritten ist und außerdem mehr kann. Eventuell kann man ja später trotzdem noch eine Mini-Scriptsprache hinzufügen, für alle, die gar nicht "richtig" programmieren wollen, sondern "nur" Verhalten bedingt ausführen. Daten vom Sim empfangen, auf SD-Karte speichern, von dort laden usw. sind universelle Dinge, die wir nicht doppelt erfinden müssen, sondern mehrfach verwenden können. 

Die Ausführung hatte ich damals so vorgesehen, dass der Sim den Fernbedienungscode für die Taste Play (macht irgendwie Sinn für "Programm starten" und war noch nicht anderweitig belegt) sendet und der Bot beim Empfang dieser Taste das zuletzt übertragene Programm ausführt. Per RemoteCall lässt sich ja beim derzeitigen Design leider kein Verhalten starten, das selbst RemoteCalls ausführen will. Daher der Umweg über den Fernbedienungscode. Alternativ könnte man natürlich auch ein neues Kommando für diesen Zweck einführen, das der Sim dann sendet. Über die Fernbedienung war aber erstmal der einfachere Weg.

Grüße,
Timo

Am 05.07.2010 um 16:37 schrieb Frank Menzel:
> Hallo Timo,
> sollte da noch was für den bot aktiviert werden, damit das Hochladen und
> Ausführen des Beispielscriptes funktioniert? So stürzt er nämlich bei
> mir gleich ab:-( Oder dachtest Du dies bloß als Beispiel dafür, wie dann
> mein Basic-Prog auf den bot hochgeladen werden kann? Aber wie wäre dann
> der Weg der Scriptausführung?
> 
> Gruß, Frank