Absender: Erich Kohlberger
Datum: Di, 02.05.2006 18:34:09
In-reply-to:
<444F4242.5000206@xxxxxxxx>
Hallo > Aber genau das ist doch derzeit im Code der Fall. Es gibt 4 Verzeichnisse: > > 1x Low-Level-Kram AtMega32 (./mcu/) > 1x Low-Level-Kram PC (./pc/) > 1x Sammlung der Schnittstellen (./include/) > 1x Alles abstrakte und High-Level Routinen (./) jetzt hat sich das mitlesen für mich gelohnt. Ich habe zwar alles Installiert aber dann vor lauter Bäumen den Wald nicht mehr gesehen. > Ich verstehe die ganze Diskussion und auch diesen Vorschlag beim besten > willen nicht, denn alles was vorgeschlagen wird ist schon von Anfang an > im Framework drin. > > Und ja, es ist modular. Es ist sehr genau nach High-, Middle- und > Low-Level-Funktionen untergliedert. Wer an Low-level sachen nicts ändern > will, kann die Verzeichnisse (./pc/ und ./mcu/) ignorieren. > > Wer nur ein ganz einfaches verhalten schreiben will, nimmt einfach das > dafür vorgesehene Skelet bot_simple_behaviour() und füllt es aus. er > bekommt nicht einmal vom Framework etwas mit. Damit jetzt jeder (ohne > selbst in den Code zu schauen) sieht, was ich meine, hier ein kleines > Verhalten, mit dem der Bot in einem Quadrat patrouliert: > > void bot_drive_square_behaviour(Behaviour_t *data){ > #define STATE_TURN 1 > #define STATE_FORWARD 0 > #define STATE_INTERRUPTED 2 > > static uint8 state = STATE_FORWARD; > > if (data->subResult == SUBFAIL) // letzter Auftrag schlug fehl? > state= STATE_INTERRUPTED; > > switch (state) { > case STATE_FORWARD: // Vorwaerts > bot_goto(100,100,data); > state = STATE_TURN; > break; > case STATE_TURN: // Drehen > bot_goto(22,-22,data); > state=STATE_FORWARD; > break; > default: // Sind wir fertig, dann Kontrolle zurueck an Aufrufer > return_from_behaviour(data); > break; > } > } Was mir jetzt noch fehlt ist eine Schnellbleiche im Umgang mit all den Installierten Tools. Gruß Erich Kohlberger Erich Kohlberger Computerclub Waiblingen <mailto:EKohlberger@xxxxxxx>