heise online | · | c't | · | iX | · | Technology Review | · | Telepolis | · | mobil | · | Security | · | Netze | · | heise open | · | heise resale | · | Autos | · | c't-TV | · | Jobs | · | Kiosk

Aktuelles Heft #### Support Hotline & FAQ Tipps & Tricks Treiber & BIOS Firmenkontakte #### Download Software zu c't Software-Verzeichnis c't-Projekte Testbilder & Vorlagen #### Service Tipp-Datenbank c't-CD-Register Internettarife Telefontarife Virenschutz #### Magazin Heftarchiv c't specials English Pages Benchmarks Red. Stuff Leserforum c't-Bildmotive URLs aus c't Schlagseite #### Aktionen Browsercheck Krypto-Kampagne Schulen ans Netz Netz gegen Kinderporno TV/Radio-Termine #### Info Abo & Heft Veranstaltungen Mediadaten Kontakt Impressum Kleinanzeigen und Veranstaltungen
| c't Projekte - c't-Bot und c't-Sim - Mailinglisten ## c't-Bot und c't-Sim [Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)] [Nach Datum][Nach Thread] ### Re: WG: [ct-bot] Verhalten Absender: Benjamin Benz Datum: Mo, 15.05.2006 19:25:47 In-reply-to: <000001c676c5$7fc0e260$fe78a8c0@mexpnew> References: <000001c676c5$7fc0e260$fe78a8c0@mexpnew>
    Hallo,

    beim beim Einbauen Ihres Patches sind mir doch noch Bedenken gegen diese
    Lösung gekommen:

    > 201-255 -> Notfallverhalten, unsichtbar
    > 130-200 -> sichtbare, einfach aktivierbare, Verhalten
    > 3-129   -> unsichtbare Hilfsverhalten oder Verhalten, die nicht einfach
    > so aktiviert werden dürfen (wie bot_explore_behaviour)

    Auf diese Weise sind die Hilfsverhalten immer unwichtiger als die
    Hauptverhalten. Das ist aber unschön, da auf diese Weise kein
    Notverhalten ein Hilfsverhalten nutzen kann. Einen solchen Einschnitt
    möchte ich eigentlich nicht nur dem Display zu liebe vornehmen. Ich habe
    daher den Patch (noch) nicht eingebaut. Vielleicht findet sich ja eine
    andere Lösung, wie ein etwas engerer Bereich nur für sichtbare
    Verhalten, oder so. Der Rest der Struktur würde davon dann nicht so sehr
    betroffen, wie im aktuellen Vorschlag.

    Ich habe Ihnen meine aktuelle Version Ihres Patches angehängt. Er
    berücksichtigt auch den Vorschlag von Herrn Giesen, die Definiton der
    Bereichr über Konstanten zu regeln. Allerdings muss man auch da
    vielleicht nochmal anpassen.

    MfG Benjamin Benz

    Frank Menzel wrote:
    > Hallo Herr Benz,
    >
    > ich hab' mal alles hierzu verpatcht und angehangen.
    >
    > Mit freundlichen Grüßen
    > Frank Menzel
    >
    > -----Ursprüngliche Nachricht-----
    > Von: ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx
    > [mailto:ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx] Im Auftrag von
    > Menzel, Frank IT-OO4
    > Gesendet: Mittwoch, 10. Mai 2006 11:23
    > An: Entwicklung rund um den c't-bot
    > Betreff: RE: [ct-bot] Verhalten
    >
    >
    > Vielleicht so:
    > Der jetzt sichtbare Bereich der Verhalten liegt bei Prio 3 - 200, der
    > generelle Wertebereich bis 255. Der Not-Aus Power Button deaktiviert
    > ebenfalls alle Verhalten in diesem Bereich. Es muß sichergestellt sein,
    > daß auch alle Hilfsverhalten bei PWR deaktiviert werden, welche aber
    > nicht sichtbar sein müssen. Die nicht sichtbaren Hilfsverhalten
    > überwiegen wohl mehr als die einfach zu aktivierenden Verhalten.
    > Könnte man vielleicht sagen:
    >
    > Not-Aus deaktiviert also alle von 3-200.
    >
    > Mein Vorschlag für die Prios der Verhalten nach obiger Logik, ohne daß
    > ich es so ausprobiert habe, wäre folgendermaßen...
    >
    > //unsichtbare Verhalten im Verhaltensscreen
    >
    >         // Hoechste Prioritaet haben die Notfall Verhalten
    > 	// Verhalten zum Schutz des Bots, hohe Prioritaet, Aktiv
    > 	insert_behaviour_to_list(&behaviour, new_behaviour(250,
    > bot_avoid_border_behaviour,ACTIVE));
    > 	insert_behaviour_to_list(&behaviour, new_behaviour(249,
    > bot_avoid_col_behaviour,ACTIVE));
    >
    >
    >         //ab hier sichtbare und aktivierbare Verhalten im
    > Verhaltensscreen
    >
    > 	// Verhalten, um Hindnernisse besser zu erkennen, relativ hoe
    > Prioritaet, modifiziert nur
    > 	insert_behaviour_to_list(&behaviour, new_behaviour(200,
    > bot_glance_behaviour,ACTIVE));
    >
    >         // Demo-Verhalten, ganz einfach, inaktiv, sichtbar im
    > Verhaltensscreen
    > 	// Achtung, im Moment hat es eine hoehere Prioritaet als die
    > Gefahrenerkenner!!!
    > 	insert_behaviour_to_list(&behaviour, new_behaviour(198,
    > bot_simple_behaviour,INACTIVE));
    > 	insert_behaviour_to_list(&behaviour, new_behaviour(196,
    > bot_simple2_behaviour,INACTIVE));
    >
    >
    > 	// Demo-Verhalten, etwas komplexer, inaktiv
    > 	insert_behaviour_to_list(&behaviour, new_behaviour(170,
    > bot_drive_square_behaviour,INACTIVE));
    > 	// Demo-Verhalten fuer aufwendiges System, inaktiv
    > 	insert_behaviour_to_list(&behaviour, new_behaviour(158,
    > bot_olympic_behaviour,INACTIVE));
    >
    > 	// Verhalten, um ein Labyrinth nach der Hoehlenforscher-Methode
    > loesen
    > 	insert_behaviour_to_list(&behaviour, new_behaviour(156,
    > bot_solve_maze_behaviour,INACTIVE));
    >
    >         // Hilfsverhalten kann auch aktiviert werden
    > 	insert_behaviour_to_list(&behaviour, new_behaviour( 154,
    > bot_do_slalom_behaviour,INACTIVE));
    >
    >
    >
    >         //ab hier nicht sichtbare Verhalten im Verhaltensscreen;
    > Hilfsverhalten oder nicht einfach so aktivierbare
    >
    > 	// Hilfsverhalten, um ein Labyrinth nach der
    > Hoehlenforscher-Methode loesen
    > 	insert_behaviour_to_list(&behaviour, new_behaviour(43,
    > bot_measure_angle_behaviour,INACTIVE));
    > 	insert_behaviour_to_list(&behaviour, new_behaviour(42,
    > bot_check_wall_behaviour,INACTIVE));
    >
    >
    > 	// Alle Hilfsroutinen sind relativ wichtig, da sie auch von den
    > Notverhalten her genutzt werden
    > 	// Hilfsverhalten, die Befehle von Boten-Funktionen ausfuehren,
    > erst inaktiv, werden von Boten aktiviert
    > 	insert_behaviour_to_list(&behaviour, new_behaviour(99,
    > bot_turn_behaviour,INACTIVE));
    > 	insert_behaviour_to_list(&behaviour, new_behaviour(98,
    > bot_drive_distance_behaviour,INACTIVE));
    > 	insert_behaviour_to_list(&behaviour, new_behaviour(97,
    > bot_goto_behaviour,INACTIVE));
    >
    > 	// unwichtigere Hilfsverhalten
    > 	insert_behaviour_to_list(&behaviour, new_behaviour(96,
    > bot_explore_behaviour,INACTIVE));
    >
    >
    >
    > 	// Grundverhalten, setzt aeltere FB-Befehle um, aktiv
    > 	insert_behaviour_to_list(&behaviour, new_behaviour(2,
    > bot_base_behaviour, ACTIVE));
    >
    >
    > Mit freundlichem Gruß
    > Frank Menzel
    >
    > -----Original Message-----
    > From: ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx
    > [mailto:ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx] On Behalf Of
    > Benjamin Benz
    > Sent: Wednesday, May 10, 2006 10:22 AM
    > To: Entwicklung rund um den c't-bot
    > Subject: Re: [ct-bot] Verhalten
    >
    > Menzel, Frank IT-OO4 wrote:
    >>  Hallo,
    >> langsam wird es mit den Verhalten unübersichtlich bzgl. der Anzeige im
    > Display und dessen Aktivierung hierüber. Es werden ja alle Verhalten
    > angezeigt ab Prio 3 bis 200. Aber hier gibt es Hilfsverhalten, die
    > keinesfalls aktiviert werden dürfen wegen nicht init. Variablen und
    > sogar zum Absturz führen bzw. deren Aktivierung keinen Sinn macht. Die
    > Hauptverhalten hingegen können und dürfen hierüber aktiviert werden.
    > Vielleicht sollte man den Verhalten beim Einfügen in die Liste gleich
    > eine Kennung mitgeben, ob diese angezeigt und damit via Display
    > aktiviert werden dürfen oder nicht. Alternativ könnte man den nicht
    > anzuzeigenden Verhalten Prios von > 200 oder <= 2 geben...
    >
    > Ich habe Bedenken bei einer zusätzliche Kennung, da diese dann wieder
    > Resourcen (RAM) frisst und es sich bei der Aktivierung von Verhalten um
    > kein so zentrales Feature handelt. Die Hauptverhalten aber in einem
    > Prioritätsbereich zu sammeln klingt für mich sinnvoll.
    >
    > MfG Benjamin Benz
    >
    > --
    > Benjamin Benz
    > Heise Zeitschriften Verlag
    > Redaktion c't
    > eMail: bbe@xxxxxxxx
    > WWW  : http://www.heise.de
    >
    >
    > _______________________________________________
    > 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.
    >
    > _______________________________________________
    > ct-bot-entwickler Mailingliste
    > ct-bot-entwickler@xxxxxxxxxxxxxxxxx
    > http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler
    >
    >
    > ------------------------------------------------------------------------
    >
    > Index: Changelog.txt
    > ===================================================================
    > RCS file: /ctbot/ct-Bot/Changelog.txt,v
    > retrieving revision 1.78
    > diff -u -r1.78 Changelog.txt
    > --- Changelog.txt	10 May 2006 11:41:38 -0000	1.78
    > +++ Changelog.txt	13 May 2006 21:06:59 -0000
    > @@ -1,5 +1,7 @@
    >  CHANGELOG fuer c't-Bot
    >  ======================
    > +2006-05-11  Frank Menzel(menzelfr@xxxxxx) Verhalten in Priobereiche sortiert und Prios ab 130 erst angezeigt und damit selektierbar
    > +
    >  2006-05-10  Ralf Loehmer  (rl@xxxxxxxxxx) maus_sens_write(); MSB
    >
    >  2006-05-10	Benjamin Benz (bbe@xxxxxxxx) UART-Baudrate-Formeln ueberarbeitet
    >
    > Index: bot-logik.c
    > ===================================================================
    > RCS file: /ctbot/ct-Bot/bot-logik.c,v
    > retrieving revision 1.39
    > diff -u -r1.39 bot-logik.c
    > --- bot-logik.c	30 Apr 2006 10:03:36 -0000	1.39
    > +++ bot-logik.c	13 May 2006 21:07:04 -0000
    > @@ -1676,49 +1676,53 @@
    >   * Initialisert das ganze Verhalten
    >   */
    >  void bot_behave_init(void){
    > -	// Demo-Verhalten, ganz einfach, inaktiv
    > -	// Achtung, im Moment hat es eine hoehere Prioritaet als die Gefahrenerkenner!!!
    > -	insert_behaviour_to_list(&behaviour, new_behaviour(252, bot_simple_behaviour,INACTIVE));
    > -	insert_behaviour_to_list(&behaviour, new_behaviour(251, bot_simple2_behaviour,INACTIVE));
    > -
    > -	// Hoechste Prioritate haben die Notfall Verhalten
    > -
    > +        // Hoechste Prioritaet haben die Notfall Verhalten
    >  	// Verhalten zum Schutz des Bots, hohe Prioritaet, Aktiv
    >  	insert_behaviour_to_list(&behaviour, new_behaviour(250, bot_avoid_border_behaviour,ACTIVE));
    >  	insert_behaviour_to_list(&behaviour, new_behaviour(249, bot_avoid_col_behaviour,ACTIVE));
    >
    >
    > -	// Verhalten, um Hidnernisse besser zu erkennen, relativ hoe Prioritaet, modifiziert nur
    > +        //ab hier sichtbare und aktivierbare Verhalten im Verhaltensscreen
    > +
    > +	// Verhalten, um Hindnernisse besser zu erkennen, relativ hoe Prioritaet, modifiziert nur
    >  	insert_behaviour_to_list(&behaviour, new_behaviour(200, bot_glance_behaviour,ACTIVE));
    >
    > +        // Demo-Verhalten, ganz einfach, inaktiv, sichtbar im Verhaltensscreen
    > +	insert_behaviour_to_list(&behaviour, new_behaviour(198, bot_simple_behaviour,INACTIVE));
    > +	insert_behaviour_to_list(&behaviour, new_behaviour(196, bot_simple2_behaviour,INACTIVE));
    > +
    > +
    > +	// Demo-Verhalten, etwas komplexer, inaktiv
    > +	insert_behaviour_to_list(&behaviour, new_behaviour(170, bot_drive_square_behaviour,INACTIVE));
    > +	// Demo-Verhalten fuer aufwendiges System, inaktiv
    > +	insert_behaviour_to_list(&behaviour, new_behaviour(158, bot_olympic_behaviour,INACTIVE));
    > +
    >  	// Verhalten, um ein Labyrinth nach der Hoehlenforscher-Methode loesen
    > -	insert_behaviour_to_list(&behaviour, new_behaviour(150, bot_solve_maze_behaviour,INACTIVE));
    > +	insert_behaviour_to_list(&behaviour, new_behaviour(156, bot_solve_maze_behaviour,INACTIVE));
    > +
    > +        // Hilfsverhalten kann auch aktiviert werden
    > +	insert_behaviour_to_list(&behaviour, new_behaviour( 154, bot_do_slalom_behaviour,INACTIVE));
    > +
    > +
    > +        //ab hier nicht sichtbare Verhalten im Verhaltensscreen; Hilfsverhalten oder nicht einfach so aktivierbare
    > +
    > +	// Hilfsverhalten, um ein Labyrinth nach der Hoehlenforscher-Methode loesen
    >  	insert_behaviour_to_list(&behaviour, new_behaviour(43, bot_measure_angle_behaviour,INACTIVE));
    >  	insert_behaviour_to_list(&behaviour, new_behaviour(42, bot_check_wall_behaviour,INACTIVE));
    >
    > -
    > +
    >  	// Alle Hilfsroutinen sind relativ wichtig, da sie auch von den Notverhalten her genutzt werden
    >  	// Hilfsverhalten, die Befehle von Boten-Funktionen ausfuehren, erst inaktiv, werden von Boten aktiviert
    > -	insert_behaviour_to_list(&behaviour, new_behaviour(150, bot_turn_behaviour,INACTIVE));
    > -	insert_behaviour_to_list(&behaviour, new_behaviour(149, bot_drive_distance_behaviour,INACTIVE));
    > -	insert_behaviour_to_list(&behaviour, new_behaviour(148, bot_goto_behaviour,INACTIVE));
    > +	insert_behaviour_to_list(&behaviour, new_behaviour(99, bot_turn_behaviour,INACTIVE));
    > +	insert_behaviour_to_list(&behaviour, new_behaviour(98, bot_drive_distance_behaviour,INACTIVE));
    > +	insert_behaviour_to_list(&behaviour, new_behaviour(97, bot_goto_behaviour,INACTIVE));
    >
    >  	// unwichtigere Hilfsverhalten
    > -	insert_behaviour_to_list(&behaviour, new_behaviour(100, bot_explore_behaviour,INACTIVE));
    > -	insert_behaviour_to_list(&behaviour, new_behaviour( 99, bot_do_slalom_behaviour,INACTIVE));
    > -
    > -	// Demo-Verhalten, etwas komplexer, inaktiv
    > -	insert_behaviour_to_list(&behaviour, new_behaviour(51, bot_drive_square_behaviour,INACTIVE));
    > -	// Demo-Verhalten fÃ¼r aufwendiges System, inaktiv
    > -	insert_behaviour_to_list(&behaviour, new_behaviour(52, bot_olympic_behaviour,INACTIVE));
    > -
    > +	insert_behaviour_to_list(&behaviour, new_behaviour(96, bot_explore_behaviour,INACTIVE));
    >
    >  	// Grundverhalten, setzt aeltere FB-Befehle um, aktiv
    >  	insert_behaviour_to_list(&behaviour, new_behaviour(2, bot_base_behaviour, ACTIVE));
    >
    > -	// Um das Simple-Behaviour zu nutzen, die Kommentarzeichen vor der folgenden Zeile entfernen!!!
    > -	// activateBehaviour(bot_simple_behaviour);
    > -	// activateBehaviour(bot_simple2_behaviour);
    >
    >
    >  	#ifdef PC
    > @@ -1772,7 +1776,7 @@
    >
    >  // zuerst alle Verhalten ermitteln ausser Grundverhalten
    >    while(ptr != NULL)	{
    > -	if  ((ptr->priority > 2) &&(ptr->priority <= 200))
    > +	if  ((ptr->priority > 129) &&(ptr->priority <= 200))
    >      			max_behaviours++;
    >
    >  	ptr = ptr->next;
    > @@ -1801,7 +1805,7 @@
    >
    >  	// durch die Liste gehen, bis wir den gewuenschten Index erreicht haben
    >  	for (job = behaviour; job; job = job->next) {
    > -	    if ((job->priority > 2) &&(job->priority <= 200)) {
    > +	    if ((job->priority > 129) &&(job->priority <= 200)) {
    >  		  i++;
    >  		  if (i == pos) {
    >  		  	  job->active_new = !job->active_new;
    > Index: ct-Bot.c
    > ===================================================================
    > RCS file: /ctbot/ct-Bot/ct-Bot.c,v
    > retrieving revision 1.29
    > diff -u -r1.29 ct-Bot.c
    > --- ct-Bot.c	28 Apr 2006 20:52:04 -0000	1.29
    > +++ ct-Bot.c	13 May 2006 21:07:05 -0000
    > @@ -228,7 +228,7 @@
    >  					 */
    >  					while((ptr != NULL)&& (linecounter<5))	{
    >
    > -					  if  ((ptr->priority > 2) &&(ptr->priority <= 200)) {
    > +					  if  ((ptr->priority > 129) &&(ptr->priority <= 200)) {
    >                          if   (colcounter >= firstcol) {
    >  				          display_cursor(linecounter,((colcounter % 2)* 12)+1);
    >  					      display_printf(" %3d,%2d",ptr->priority,ptr->active_new);

    --
    Benjamin Benz
    Heise Zeitschriften Verlag
    Redaktion c't
    eMail: bbe@xxxxxxxx
    WWW  : http://www.heise.de
    Index: Changelog.txt
    ===================================================================
    RCS file: /ctbot/ct-Bot/Changelog.txt,v
    retrieving revision 1.78
    diff -u -r1.78 Changelog.txt
    --- Changelog.txt	10 May 2006 11:41:38 -0000	1.78
    +++ Changelog.txt	15 May 2006 18:52:03 -0000
    @@ -1,5 +1,7 @@
     CHANGELOG fuer c't-Bot
     ======================
    +2006-05-15  Frank Menzel(menzelfr@xxxxxx) Verhalten in Priobereiche sortiert und Prios ab 130 erst angezeigt und damit selektierbar
    +
     2006-05-10  Ralf Loehmer  (rl@xxxxxxxxxx) maus_sens_write(); MSB

     2006-05-10	Benjamin Benz (bbe@xxxxxxxx) UART-Baudrate-Formeln ueberarbeitet
    Index: bot-logik.c
    ===================================================================
    RCS file: /ctbot/ct-Bot/bot-logik.c,v
    retrieving revision 1.39
    diff -u -r1.39 bot-logik.c
    --- bot-logik.c	30 Apr 2006 10:03:36 -0000	1.39
    +++ bot-logik.c	15 May 2006 18:52:03 -0000
    @@ -1676,49 +1676,60 @@
      * Initialisert das ganze Verhalten
      */
     void bot_behave_init(void){
    -	// Demo-Verhalten, ganz einfach, inaktiv
    -	// Achtung, im Moment hat es eine hoehere Prioritaet als die Gefahrenerkenner!!!
    -	insert_behaviour_to_list(&behaviour, new_behaviour(252, bot_simple_behaviour,INACTIVE));
    -	insert_behaviour_to_list(&behaviour, new_behaviour(251, bot_simple2_behaviour,INACTIVE));
    -
    -	// Hoechste Prioritate haben die Notfall Verhalten
    +	/* Achtung, es gilt folgende Regelung:
    +	 * 0 < Prioritaet < PRIORITY_MAX
    +	 * PRIORITY_HELPER <  Prioritaet < PRIORITY_VISIBLE sind Hilfsverhalten
    +	 * PRIORITY_VISIBLE <  Prioritaet < PRIORITY_EMERGENCY sind Hauptverhalten
    +	 * PRIORITY_EMERGENCY <  Prioritaet < PRIORITY_MAX sind Notfallverhalten und werden z.B. vom PWR-Knopf oder Not-Aus nicht beeinflusst
    +	*/

    +    // Hoechste Prioritaet haben die Notfall Verhalten
     	// Verhalten zum Schutz des Bots, hohe Prioritaet, Aktiv
     	insert_behaviour_to_list(&behaviour, new_behaviour(250, bot_avoid_border_behaviour,ACTIVE));
     	insert_behaviour_to_list(&behaviour, new_behaviour(249, bot_avoid_col_behaviour,ACTIVE));

    -	// Verhalten, um Hidnernisse besser zu erkennen, relativ hoe Prioritaet, modifiziert nur
    +    //ab hier sichtbare und aktivierbare Verhalten im Verhaltensscreen
    +
    +	// Verhalten, um Hindnernisse besser zu erkennen, relativ hoe Prioritaet, modifiziert nur
     	insert_behaviour_to_list(&behaviour, new_behaviour(200, bot_glance_behaviour,ACTIVE));

    +        // Demo-Verhalten, ganz einfach, inaktiv, sichtbar im Verhaltensscreen
    +	insert_behaviour_to_list(&behaviour, new_behaviour(198, bot_simple_behaviour,INACTIVE));
    +	insert_behaviour_to_list(&behaviour, new_behaviour(196, bot_simple2_behaviour,INACTIVE));
    +
    +
    +	// Demo-Verhalten, etwas komplexer, inaktiv
    +	insert_behaviour_to_list(&behaviour, new_behaviour(170, bot_drive_square_behaviour,INACTIVE));
    +	// Demo-Verhalten fuer aufwendiges System, inaktiv
    +	insert_behaviour_to_list(&behaviour, new_behaviour(158, bot_olympic_behaviour,INACTIVE));
    +
     	// Verhalten, um ein Labyrinth nach der Hoehlenforscher-Methode loesen
    -	insert_behaviour_to_list(&behaviour, new_behaviour(150, bot_solve_maze_behaviour,INACTIVE));
    +	insert_behaviour_to_list(&behaviour, new_behaviour(156, bot_solve_maze_behaviour,INACTIVE));
    +
    +        // Hilfsverhalten kann auch aktiviert werden
    +	insert_behaviour_to_list(&behaviour, new_behaviour( 154, bot_do_slalom_behaviour,INACTIVE));
    +
    +
    +        //ab hier nicht sichtbare Verhalten im Verhaltensscreen; Hilfsverhalten oder nicht einfach so aktivierbare
    +
    +	// Hilfsverhalten, um ein Labyrinth nach der Hoehlenforscher-Methode loesen
     	insert_behaviour_to_list(&behaviour, new_behaviour(43, bot_measure_angle_behaviour,INACTIVE));
     	insert_behaviour_to_list(&behaviour, new_behaviour(42, bot_check_wall_behaviour,INACTIVE));

    -
    +
     	// Alle Hilfsroutinen sind relativ wichtig, da sie auch von den Notverhalten her genutzt werden
     	// Hilfsverhalten, die Befehle von Boten-Funktionen ausfuehren, erst inaktiv, werden von Boten aktiviert
    -	insert_behaviour_to_list(&behaviour, new_behaviour(150, bot_turn_behaviour,INACTIVE));
    -	insert_behaviour_to_list(&behaviour, new_behaviour(149, bot_drive_distance_behaviour,INACTIVE));
    -	insert_behaviour_to_list(&behaviour, new_behaviour(148, bot_goto_behaviour,INACTIVE));
    +	insert_behaviour_to_list(&behaviour, new_behaviour(99, bot_turn_behaviour,INACTIVE));
    +	insert_behaviour_to_list(&behaviour, new_behaviour(98, bot_drive_distance_behaviour,INACTIVE));
    +	insert_behaviour_to_list(&behaviour, new_behaviour(97, bot_goto_behaviour,INACTIVE));

     	// unwichtigere Hilfsverhalten
    -	insert_behaviour_to_list(&behaviour, new_behaviour(100, bot_explore_behaviour,INACTIVE));
    -	insert_behaviour_to_list(&behaviour, new_behaviour( 99, bot_do_slalom_behaviour,INACTIVE));
    -
    -	// Demo-Verhalten, etwas komplexer, inaktiv
    -	insert_behaviour_to_list(&behaviour, new_behaviour(51, bot_drive_square_behaviour,INACTIVE));
    -	// Demo-Verhalten fÃ¼r aufwendiges System, inaktiv
    -	insert_behaviour_to_list(&behaviour, new_behaviour(52, bot_olympic_behaviour,INACTIVE));
    -
    +	insert_behaviour_to_list(&behaviour, new_behaviour(96, bot_explore_behaviour,INACTIVE));

     	// Grundverhalten, setzt aeltere FB-Befehle um, aktiv
     	insert_behaviour_to_list(&behaviour, new_behaviour(2, bot_base_behaviour, ACTIVE));

    -	// Um das Simple-Behaviour zu nutzen, die Kommentarzeichen vor der folgenden Zeile entfernen!!!
    -	// activateBehaviour(bot_simple_behaviour);
    -	// activateBehaviour(bot_simple2_behaviour);

     	#ifdef PC
    @@ -1772,7 +1783,7 @@

     // zuerst alle Verhalten ermitteln ausser Grundverhalten
       while(ptr != NULL)	{
    -	if  ((ptr->priority > 2) &&(ptr->priority <= 200))
    +	if  ((ptr->priority > PRIORITY_VISIBLE ) &&(ptr->priority <= PRIORITY_EMERGENCY))
         			max_behaviours++;

     	ptr = ptr->next;
    @@ -1801,7 +1812,7 @@

     	// durch die Liste gehen, bis wir den gewuenschten Index erreicht haben
     	for (job = behaviour; job; job = job->next) {
    -	    if ((job->priority > 2) &&(job->priority <= 200)) {
    +	    if ((job->priority > 129) &&(job->priority <= 200)) {
     		  i++;
     		  if (i == pos) {
     		  	  job->active_new = !job->active_new;
    Index: ct-Bot.c
    ===================================================================
    RCS file: /ctbot/ct-Bot/ct-Bot.c,v
    retrieving revision 1.29
    diff -u -r1.29 ct-Bot.c
    --- ct-Bot.c	28 Apr 2006 20:52:04 -0000	1.29
    +++ ct-Bot.c	15 May 2006 18:52:03 -0000
    @@ -212,40 +212,34 @@
     				case 2:
     					display_cursor(1,1);

    -                   #ifdef DISPLAY_BEHAVIOUR_AVAILABLE
    -                    /*!
    -                     * zeilenweise Anzeige der Verhalten
    -                     */
    -					display_printf("Verhalten (Pri/Akt)%d",behaviour_page);
    +					#ifdef DISPLAY_BEHAVIOUR_AVAILABLE
    +	                    // zeilenweise Anzeige der Verhalten
    +						display_printf("Verhalten (Pri/Akt)%d",behaviour_page);
    +
    +						colcounter = 0; linecounter = 2;
    +						// je nach Seitenwahl die ersten  Saetze ueberlesen bis richtige Seite
    +						firstcol = (behaviour_page -1)*6;
    +
    +						// max. 3 Zeilen mit 6 Verhalten anzeigbar wegen Ueberschrift
    +						//Seitensteuerung bei mehr Verhalten
    +						while((ptr != NULL)&& (linecounter<5))	{
    +							if ((ptr->priority > PRIORITY_VISIBLE ) &&(ptr->priority <= PRIORITY_EMERGENCY)){
    +		                        if (colcounter >= firstcol) {
    +									display_cursor(linecounter,((colcounter % 2)* 12)+1);
    +									display_printf(" %3d,%2d",ptr->priority,ptr->active_new);
    +									colcounter++;
    +
    +									/* bei colcounter 0 neue Zeile */
    +									if (colcounter % 2 == 0)
    +										linecounter++;
    +							    }
    +							    else
    +							    	colcounter ++;
    +							}
    +							ptr = ptr->next;
    +					    }

    -					colcounter = 0; linecounter = 2;
    -					/* je nach Seitenwahl die ersten  Saetze ueberlesen bis richtige Seite */
    -					firstcol = (behaviour_page -1)*6;
    -
    -					/*!
    -					 * max. 3 Zeilen mit 6 Verhalten anzeigbar wegen Ueberschrift
    -					 * Seitensteuerung bei mehr Verhalten
    -					 */
    -					while((ptr != NULL)&& (linecounter<5))	{
    -
    -					  if  ((ptr->priority > 2) &&(ptr->priority <= 200)) {
    -                        if   (colcounter >= firstcol) {
    -				          display_cursor(linecounter,((colcounter % 2)* 12)+1);
    -					      display_printf(" %3d,%2d",ptr->priority,ptr->active_new);
    -					      colcounter++;
    -
    -					      /* bei colcounter 0 neue Zeile */
    -					      if (colcounter % 2 == 0)
    -					  	    linecounter++;
    -
    -					    }
    -					    else
    -					    colcounter ++;
    -					  }
    -					  ptr = ptr->next;
    -				    }
    -
    -				    #endif
    +					#endif

     					#ifdef TEST_AVAILABLE_COUNTER
    Index: include/bot-logik.h
    ===================================================================
    RCS file: /ctbot/ct-Bot/include/bot-logik.h,v
    retrieving revision 1.17
    diff -u -r1.17 bot-logik.h
    --- include/bot-logik.h	28 Apr 2006 13:58:29 -0000	1.17
    +++ include/bot-logik.h	15 May 2006 18:52:03 -0000
    @@ -29,6 +29,10 @@
     #include "global.h"
     #include "ct-Bot.h"

    +#define PRIORITY_HELPER	  3	/*!< Verhalten mit: PRIORITY_HELPER <  Prioritaet < PRIORITY_VISIBLE sind Hilfsverhalten */
    +#define PRIORITY_VISIBLE	130	/*!< Verhalten mit: PRIORITY_VISIBLE <  Prioritaet < PRIORITY_EMERGENCY sind Hauptverhalten */
    +#define PRIORITY_EMERGENCY	200 /*!< Verhalten mit: PRIORITY_EMERGENCY <  Prioritaet < PRIORITY_MAX sind Notfallverhalten und werden z.B. vom PWR-Knopf oder Not-Aus nicht beeinflusst*/
    +#define PRIORITY_MAX		255 /*!< Obergrenze der Prioritaeten */

     /*! Verwaltungsstruktur fuer die Verhaltensroutinen */
     typedef struct _Behaviour_t {
Antworten: AW: WG: [ct-bot] Verhalten From: Frank Menzel Voriger (Datum): [ct-bot] CVS-Update - Newsletter, Benjamin Benz Nächster (Datum): AW: WG: [ct-bot] Verhalten, Frank Menzel Voriger (Thread): [ct-bot] CVS-Update - Newsletter, Benjamin Benz Nächster (Thread): AW: WG: [ct-bot] Verhalten, Frank Menzel Indizes: Datum Thread |

Copyright © 2007 Heise Zeitschriften Verlag | Kritik, Anregungen bitte an c't-WWW | Datenschutzhinweis Impressum