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: Menzel, Frank IT-OS
Datum: Mi, 10.11.2010 06:53:57
In-reply-to: <03003066-1EC1-4F71-9011-69D34F88B47D@xxxxxxxxxxxxxxx>
References: <096FD558C4D20046A1BABE72DFF0C6C33B3ED5A41C@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx><CE1FB7FF-4A39-47CE-80F6-316DD3A2D068@xxxxxxxxxxxxxxx><20100826195514.307630@xxxxxxx> <9FC1FC43-9D8F-4DF1-A899-DD2305A89771@xxxxxxxxxxxxxxx> <9DD5454FB74E49BABC1EAF57CD9B8505@FrankPC> <D077FF81-B44C-43D6-B5AE-DC12B2BE6714@xxxxxxxxxxxxxxx> <09576064-BE2C-42E1-96DA-ABACB3B3E4F6@xxxxxxxxxxxxxxx> <20101013181942.290030@xxxxxxx> <EFA41A8A-EFD0-42D4-A75A-798D1EE8B024@xxxxxxxxxxxxxxx> <096FD558C4D20046A1BABE72DFF0C6C33D480BB960@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <684B0001-B07F-4684-A8EE-FF7983C6FBE0@xxxxxxxxxxxxxxx> <096FD558C4D20046A1BABE72DFF0C6C33D480BBA80@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <76B4A7B2-81A9-4B95-8E25-B844559AE7E4@xxxxxxxxxxxxxxx> <20101015194527.14260@xxxxxxx> <C691C4C1-2C4D-4B76-9179-209CCEE69DEA@xxxxxxxxxxxxxxx> <8D82B88E-1DB8-47F2-9BE2-C68EAA6C284E@xxxxxxxxxxxxxxx> <096FD558C4D20046A1BABE72DFF0C6C33D481700C8@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <104916B9-7DC3-4B11-B85E-B6 F6D498CD3B@xxxxxxxxxxxxxxx> <096FD558C4D20046A1BABE72DFF0C6C33D48170318@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <096FD558C4D20046A1BABE72DFF0C6C33D48170389@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> <7494E791-1FC8-4A4A-8188-0431F3F0CDC2@xxxxxxxxxxxxxxx> <03003066-1EC1-4F71-9011-69D34F88B47D@xxxxxxxxxxxxxxx>


Hallo Timo,
hört sich ja alles super an, bin in der letzten Zeit leider davon etwas abgekommen. Dafür hast Du umso mehr Zeit im Voranbringen investiert. Super, bin ja mal gespannt.
Das saubere Beenden könnte man doch sicher wirklich wie beschrieben realisieren. Drückt man eine bestimmte Taste, wird eine entsprechende Abbruchvariable gesetzt, die das Verhalten immer wieder abpollt und bei True in den Endestep verzweigt nach Abbrechen eines gerade gestarteten Verhalten. Vielleicht geht ja auch eine Pause- und Weitermachtaste auf genau diesem Weg ebenfalls. Ist eine Pausevar gesetzt, bleibt das Verhalten einfach in diesem Step nach Abbrechen des Verhaltens und wird neu gestartet wenn die Pausevar nicht mehr gesetzt ist.
Aber in diese Steuerung viel Zeit zu investieren ist nicht nötig, bisher hat mir zum Abbrechen auch immer die Not-Aus Taste gereicht.
Der Print Befehl mit Displayausgabe würde mich da schon mehr interessieren...

Gruß, Frank
(PS: Wann kommt denn der offizielle Code ins SVN?)


-----Original Message-----
From: ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx [mailto:ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx] On Behalf Of Timo Sandmann
Sent: Tuesday, November 09, 2010 8:52 PM
To: Entwicklung rund um den c't-bot
Subject: Re: [ct-bot] Basic-Interpreter für den Bot

Hallo Frank,

vorab schon mal eine kurze Information zum aktuellen Stand.
Was funktioniert:
 1) uBasic-Programme vom Sim aus zum Bot senden, dort speichern (beliebiger Dateiname) und ausführen.
 2) andere Verhalten von uBasic aus über RemoteCall starten, so dass nicht mehr jedes Verhalten einzeln in die Call-Liste eingetragen werden muss.
 3) uBasic und Map können gleichzeitig aktiv sein, beide "teilen" sich die SD-Karte (wichtig für den echten Bot).

Was derzeit nicht funktioniert / implementiert ist:
 1) PRINT-Befehl mit Ausgabe auf Display.
 2) uBasic-Programme lassen sich nicht sauber ab- / unterbrechen (s.u.).
 3) auf MCU geht uBasic nicht zusammen mit MAP und MAP_2_SIM auf einem ATmega32 oder ATmega644, weil dann mehr RAM benötigt wird, als vorhanden ist. Man muss also entweder einen ATmega1284P verwenden oder auf MAP_2_SIM verzichten. Oder wir schaffen es noch, den RAM-Bedarf zu verringern.


Punkt 1) sollte sich noch recht leicht ergänzen lassen, ob es sich lohnt, für 3) größeren Aufwand zu treiben, weiß ich nicht.

Zu 2): Ein uBasic-Programm kann man nicht sauber beenden, sondern nur "von außen" mit Not-Aus abbrechen. Das ist natürlich nicht ein uBasic-Problem, sondern generell auch so (solve_maze() z.B. kann man auch nicht wirklich "sauber" beenden).
Aber ich glaube, wenn man komplexere Basic-Programme einsetzen möchte, wäre es schon besser, wenn ein Basic-Programm z.B. auf eine FB-Taste oder einen Befehl vom Sim reagieren und sich selbst korrekt beenden könnte. Hast Du eine Idee, wie wir das am besten umsetzen sollten?

Viele Grüße,
Timo


_______________________________________________
ct-bot-entwickler Mailingliste
ct-bot-entwickler@xxxxxxxxxxxxxxxxx
http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler

Confidentiality note:
The information in this email and any attachment may contain confidential and proprietary information of Heidelberger Druckmaschinen AG and/or its affiliates and may be privileged or otherwise protected from disclosure. If you are not the intended recipient, you are hereby notified that any review, reliance or distribution by others or forwarding without express permission is strictly prohibited and may cause liability. In case you have received this message due to an error in transmission, we kindly ask you to notify the sender immediately and to delete this email and any attachment from your system.