## c't-Projekte - Mailinglisten

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

### [ct-bot] Patch für Änderungen der Verhaltensanzeige/ Auswahl

Absender: Frank Menzel
Datum: Mo, 27.11.2006 20:26:51

     Hallo,
     anbei ein Patch, welcher die Verhaltensanzeige folgendermaßen ändert:
     1.) sichtbaren Priobereich auf Defines (PRIO_VISIBLE_MIN und
     PRIO_VISIBLE_MAX) zentral in bot-local.h gelegt; nun kann jeder selbst
     seinen gewünschten Anzeigebereich der Verhalten festlegen
     2.) dynamische Verhaltensanzeige via Define
     DISPLAY_DYNAMIC_BEHAVIOUR_AVAILABLE ermoeglicht Online-Sehen der
     Verhaltens-Zustandsaenderungen; Selektion eines Verh. geht sofort
    durch;
     Entfall der Zustands-Puffervariablen; Not-Aus bewirkt nun keinen Sprung
     mehr zum Verhaltensscreen

    Da ich zu diesem Patch von der ct leider nichts gehört habe, auch auf
    Nachfrage nicht, gebe ich ihn mal auf diesem Wege weiter.

     gruss,
     Frank Menzel

    Index: .cdtbuild
    ===================================================================
    RCS file: /ctbot/ct-Bot/.cdtbuild,v
    retrieving revision 1.7
    diff -u -r1.7 .cdtbuild
    --- .cdtbuild	8 Jul 2006 02:36:15 -0000	1.7
    +++ .cdtbuild	6 Nov 2006 19:52:36 -0000
    @@ -10,8 +10,8 @@
     <option id="gnu.c.compiler.option.include.paths.387475860" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
     <listOptionValue builtIn="false" value="&quot;${ProjDirPath}&quot;"/>
     <listOptionValue builtIn="false" value="&quot;${ProjDirPath}/include&quot;"/>
    -<listOptionValue builtIn="false" value="&quot;C:\Programme\MinGW\include&quot;"/>
    -<listOptionValue builtIn="false" value="&quot;C:\Programme\pthreads\pthreads.2&quot;"/>
    +<listOptionValue builtIn="false" value="&quot;C:\MinGW\include&quot;"/>
    +<listOptionValue builtIn="false" value="&quot;C:\pthreads\pthreads.2&quot;"/>
     </option>
     <option id="gnu.c.compiler.option.preprocessor.def.symbols.1823712582" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
     <listOptionValue builtIn="false" value="PC"/>
    Index: Changelog.txt
    ===================================================================
    RCS file: /ctbot/ct-Bot/Changelog.txt,v
    retrieving revision 1.110
    diff -u -r1.110 Changelog.txt
    --- Changelog.txt	6 Nov 2006 15:06:03 -0000	1.110
    +++ Changelog.txt	6 Nov 2006 19:52:37 -0000
    @@ -1,5 +1,8 @@
     CHANGELOG fuer c't-Bot
     ======================
    +2006-11-06  Frank Menzel(menzelfr@xxxxxx) Aenderungen der Verhaltensanzeige: 1.) sichtbaren Priobereich auf Defines in bot-local.h gelegt 2.) dynamische Verhaltensanzeige
    +                         via Define ermoeglicht Online-Sehen der Zustandsaenderungen, Selektion eines Verh. geht sofort durch
    +
     2006-11-06 Benjamin Benz [bbe@xxxxxxxx]: Kartenkoordinaten auf uin16 umgestellt

     2006-11-06 Benjamin Benz [bbe@xxxxxxxx]: map.c kommentiert und etwas geschliffen
    Index: ct-Bot.c
    ===================================================================
    RCS file: /ctbot/ct-Bot/ct-Bot.c,v
    retrieving revision 1.39
    diff -u -r1.39 ct-Bot.c
    --- ct-Bot.c	6 Nov 2006 12:32:12 -0000	1.39
    +++ ct-Bot.c	6 Nov 2006 19:52:38 -0000
    @@ -265,10 +265,14 @@
     					 */
     					while((ptr != NULL)&& (linecounter<5))	{

    -					  if  ((ptr->priority > 2) &&(ptr->priority <= 200)) {
    +					  if  ((ptr->priority >= PRIO_VISIBLE_MIN) &&(ptr->priority <= PRIO_VISIBLE_MAX)) {
                             if   (colcounter >= firstcol) {
     				          display_cursor(linecounter,((colcounter % 2)* 12)+1);
    -					      display_printf(" %3d,%2d",ptr->priority,ptr->active_new);
    +				          #ifdef DISPLAY_DYNAMIC_BEHAVIOUR_AVAILABLE
    +					        display_printf(" %3d,%2d",ptr->priority,ptr->active);
    +					      #else
    +					        display_printf(" %3d,%2d",ptr->priority,ptr->active_new);
    +					      #endif
     					      colcounter++;

     					      /* bei colcounter 0 neue Zeile */
    Index: ct-Bot.h
    ===================================================================
    RCS file: /ctbot/ct-Bot/ct-Bot.h,v
    retrieving revision 1.32
    diff -u -r1.32 ct-Bot.h
    --- ct-Bot.h	6 Nov 2006 15:06:03 -0000	1.32
    +++ ct-Bot.h	6 Nov 2006 19:52:38 -0000
    @@ -51,7 +51,9 @@
     //#define DISPLAY_SCREEN_RESETINFO	/*!< Zeigt auf Screen 4 Informationen ueber Resets an */
     //#define DISPLAY_ODOMETRIC_INFO 	/*!< Zeigt auf Screen 4 Positions- und Geschwindigkeitsdaten */
     //#define DISPLAY_REGELUNG_AVAILABLE 3 /*!< Zeigt Reglerdaten auf Screen 4, wenn SPEED_CONTROL_AVAILABLE gesetzt ist*/
    -//#define DISPLAY_BEHAVIOUR_AVAILABLE  /*!< Anzeige der Verhalten im Display Screen 3, ersetzt Counteranzeige */
    +#define DISPLAY_BEHAVIOUR_AVAILABLE  /*!< Anzeige der Verhalten im Display Screen 3, ersetzt Counteranzeige */
    +#define DISPLAY_DYNAMIC_BEHAVIOUR_AVAILABLE /*!< Zustandsaenderungen der Verhalten sind direkt unter Umgehung der Puffervar sichtbar */
    +
     #define MEASURE_MOUSE_AVAILABLE			/*!< Geschwindigkeiten werden aus den Maussensordaten berechnet */
     #define MEASURE_COUPLED_AVAILABLE		/*!< Geschwindigkeiten werden aus Maus- und Encoderwerten ermittelt und gekoppelt */

    Index: rc5.c
    ===================================================================
    RCS file: /ctbot/ct-Bot/rc5.c,v
    retrieving revision 1.26
    diff -u -r1.26 rc5.c
    --- rc5.c	6 Nov 2006 12:32:12 -0000	1.26
    +++ rc5.c	6 Nov 2006 19:52:39 -0000
    @@ -106,8 +106,9 @@
     	 * Diese Funktion setzt die Aktivitaeten der Verhalten nach der Auswahl.
     	 * Hierdurch erfolgt der Startschuss fuer Umschaltung der Verhalten
     	 */
    +  #ifndef DISPLAY_DYNAMIC_BEHAVIOUR_AVAILABLE
     	static void rc5_set_all_behaviours(void) ;
    -
    +  #endif
     	/*!
     	 * toggled ein Verhalten der Verhaltensliste an Position pos,
     	 * die Aenderung erfolgt nur auf die Puffervariable
    @@ -194,7 +195,9 @@

     			       if (display_screen == 1) {
     			         behaviour_page = 1;
    -			          set_behaviours_equal();
    +			          #ifndef DISPLAY_DYNAMIC_BEHAVIOUR_AVAILABLE
    +			            set_behaviours_equal();
    +			          #endif
     			       }

     		         }
    @@ -212,10 +215,13 @@

     			  /* Screen direkt waehlen und Verhaltens-Puffervariablen abgleichen*/
     			  display_screen = par->value1;
    -		       if ((display_screen == 2)&& (behaviour_page == 1)) {
    -
    +
    +			  // bei dyn. Anzeige und Auswahl keine Ubernahme in Puffervariable benoetigt
    +			  #ifndef DISPLAY_DYNAMIC_BEHAVIOUR_AVAILABLE
    +		        if ((display_screen == 2)&& (behaviour_page == 1)) {
     			       set_behaviours_equal();
     			     }
    +			  #endif
     			  behaviour_page = 1;

     		   #else
    @@ -310,8 +316,11 @@
     		    // Alle Verhalten deaktivieren
     		    deactivateAllBehaviours();  // alle Verhalten deaktivieren mit vorheriger Sicherung
     		     #ifdef DISPLAY_BEHAVIOUR_AVAILABLE
    -		       display_clear();         // Screen zuerst loeschen
    -		       display_screen = 2;      // nach Notstop in den Verhaltensscreen mit Anzeige der alten Verhalten
    +		        // bei dynamischer Verhaltensanzeige kein Sprung in Anzeigescreen
    +		        #ifndef DISPLAY_DYNAMIC_BEHAVIOUR_AVAILABLE
    +		         display_clear();         // Screen zuerst loeschen
    +		         display_screen = 2;      // nach Notstop in den Verhaltensscreen mit Anzeige der alten Verhalten
    +		        #endif
     		     #endif
     		#endif
     }
    @@ -382,11 +391,15 @@
     /*!
      * Diese Funktion setzt die Aktivitaeten der Verhalten nach der Auswahl.
      * Hierdurch erfolgt der Startschuss fuer Umschaltung der Verhalten
    - */	  static void rc5_set_all_behaviours(void) {
    -
    + * nicht verwendet bei sofortiger Anzeige und Auswahl der Aktivitaet
    + */
    +  #ifndef DISPLAY_DYNAMIC_BEHAVIOUR_AVAILABLE
    +   static void rc5_set_all_behaviours(void) {
    +
     		  set_behaviours_active_to_new();
    -
    -  }
    +
    +   }
    +  #endif
     #endif

     /*!
    @@ -408,7 +421,11 @@
     					case 6: rc5_toggle_behaviour_new(6); break;
     					case 7: break;
     					case 8: break;
    -					case 9: rc5_set_all_behaviours(); break;
    +					case 9:
    +					       #ifndef DISPLAY_DYNAMIC_BEHAVIOUR_AVAILABLE
    +					         rc5_set_all_behaviours();
    +					       #endif
    +					       break;
     				}
     				break;
     		#endif
    Index: .settings/org.eclipse.cdt.managedbuilder.core.prefs
    ===================================================================
    RCS file: /ctbot/ct-Bot/.settings/org.eclipse.cdt.managedbuilder.core.prefs,v
    retrieving revision 1.7
    diff -u -r1.7 org.eclipse.cdt.managedbuilder.core.prefs
    --- .settings/org.eclipse.cdt.managedbuilder.core.prefs	8 Jul 2006 02:36:15 -0000	1.7
    +++ .settings/org.eclipse.cdt.managedbuilder.core.prefs	6 Nov 2006 19:52:39 -0000
    @@ -1,4 +1,4 @@
    -#Fri Apr 28 20:32:38 CEST 2006
    +#Mon Nov 06 19:44:32 CET 2006
     eclipse.preferences.version=1
     environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.exe.debug.1077176217=<?xml version\="1.0" encoding\="UTF-8"?>\n<environment>\n<variable name\="CPATH" operation\="remove"/>\n<variable name\="C_INCLUDE_PATH" operation\="remove"/>\n</environment>\n
     environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.exe.debug.1150677647=<?xml version\="1.0" encoding\="UTF-8"?>\n<environment>\n<variable name\="CPATH" operation\="remove"/>\n<variable name\="C_INCLUDE_PATH" operation\="remove"/>\n</environment>\n
    @@ -10,7 +10,7 @@
     environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.exe.debug.1197043799=<?xml version\="1.0" encoding\="UTF-8"?>\n<environment>\n<variable name\="LIBRARY_PATH" operation\="remove"/>\n</environment>\n
     environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.exe.debug.2039935845=<?xml version\="1.0" encoding\="UTF-8"?>\n<environment>\n<variable name\="LIBRARY_PATH" operation\="remove"/>\n</environment>\n
     environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.exe.release.1181183675=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<environment>\r\n<variable name\="LIBRARY_PATH" operation\="remove"/>\r\n</environment>\r\n
    -environment/project=<?xml version\="1.0" encoding\="UTF-8"?>\n<environment>\n<variable delimiter\="/" name\="${ProjDirPath}" operation\="replace" value\="C\:\\Dokumente und Einstellungen\\pek\\Eigene Dateien\\ctSim_2006\\workspace\\ct-Bot"/>\n</environment>\n
    +environment/project=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<environment/>\r\n
     environment/project/cdt.managedbuild.config.gnu.exe.debug.1077176217=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<environment/>\r\n
     environment/project/cdt.managedbuild.config.gnu.exe.debug.1150677647=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<environment/>\r\n
     environment/project/cdt.managedbuild.config.gnu.exe.debug.1197043799=<?xml version\="1.0" encoding\="UTF-8"?>\n<environment>\n<variable name\="PATH" operation\="append" value\="\:/usr/local/avr/bin"/>\n</environment>\n
    Index: bot-logic/bot-logik.c
    ===================================================================
    RCS file: /ctbot/ct-Bot/bot-logic/bot-logik.c,v
    retrieving revision 1.1
    diff -u -r1.1 bot-logik.c
    --- bot-logic/bot-logik.c	6 Nov 2006 12:32:13 -0000	1.1
    +++ bot-logic/bot-logik.c	6 Nov 2006 19:52:40 -0000
    @@ -257,12 +257,16 @@

     	#ifdef DISPLAY_BEHAVIOUR_AVAILABLE
     	  // bei Verhaltensanzeige in Aktivitaets-Auswahl-Variable sichern
    -	  set_behaviours_equal();
    +	  #ifndef DISPLAY_DYNAMIC_BEHAVIOUR_AVAILABLE
    +	     // bei Verhaltensanzeige in Aktivitaets-Auswahl-Variable sichern
    +	     // nicht bei dynamischer Anzeige und Selektion
    +        set_behaviours_equal();
    +      #endif
     	#endif

     	// Einmal durch die Liste gehen und (fast) alle deaktivieren, Grundverhalten nicht
     	for (job = behaviour; job; job = job->next) {
    -		if ((job->priority > 2) &&(job->priority <= 200)) {
    +		if ((job->priority >= PRIO_VISIBLE_MIN) &&(job->priority <= PRIO_VISIBLE_MAX)) {
                 // Verhalten deaktivieren
     			job->active = INACTIVE;
     		}
    @@ -399,7 +403,7 @@

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

     	ptr = ptr->next;
    @@ -428,10 +432,15 @@

     	// 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 >= PRIO_VISIBLE_MIN) &&(job->priority <= PRIO_VISIBLE_MAX)) {
     		  i++;
     		  if (i == pos) {
    -		  	  job->active_new = !job->active_new;
    +		  	  // bei dynamischer Wahl wird direkt die Zustandsvariable geaendert
    +		  	  #ifdef DISPLAY_DYNAMIC_BEHAVIOUR_AVAILABLE
    +		  	    job->active = !job->active;
    +		  	  #else
    +		  	     job->active_new = !job->active_new;
    +		  	  #endif

     			  break;
     		  }
    @@ -439,19 +448,21 @@
     	}
     }

    -
    +#ifndef DISPLAY_DYNAMIC_BEHAVIOUR_AVAILABLE
     /*!
      * Startschuss, die gewaehlten neuen Verhaltensaktivitaeten werden in die
      * Verhaltensliste geschrieben und die Verhalten damit scharf geschaltet
      */
     void set_behaviours_active_to_new(void) {
    +
      Behaviour_t *job;
        for (job = behaviour; job; job = job->next) 	{

    -	if  ((job->priority > 2) &&(job->priority <= 200))
    +	if  ((job->priority >= PRIO_VISIBLE_MIN) &&(job->priority <= PRIO_VISIBLE_MAX))
                 job->active = job->active_new;

        }
    +
     }

     /*!
    @@ -462,11 +473,11 @@
      Behaviour_t *job;
        for (job = behaviour; job; job = job->next) 	{

    -	if  ((job->priority > 2) &&(job->priority <= 200))
    +	if  ((job->priority >= PRIO_VISIBLE_MIN) &&(job->priority <= PRIO_VISIBLE_MAX))
                 job->active_new = job->active;

        }
     }
    -
    +#endif
     #endif
     #endif
    Index: include/bot-local.h
    ===================================================================
    RCS file: /ctbot/ct-Bot/include/bot-local.h,v
    retrieving revision 1.14
    diff -u -r1.14 bot-local.h
    --- include/bot-local.h	6 Nov 2006 12:32:12 -0000	1.14
    +++ include/bot-local.h	6 Nov 2006 19:52:40 -0000
    @@ -100,7 +100,9 @@
     #define LINE_SENSE					0x350	// Ab wann ist es Linie? (Fuer den Sim auf 350 setzen, helle Tischflaeche 50)

    -
    +/* Konstanten fuer Verhaltensanzeige, Verhalten mit prio von bis sichtbar */
    +#define PRIO_VISIBLE_MIN 3
    +#define PRIO_VISIBLE_MAX 200

    Index: include/bot-logic/bot-logik.h
    ===================================================================
    RCS file: /ctbot/ct-Bot/include/bot-logic/bot-logik.h,v
    retrieving revision 1.1
    diff -u -r1.1 bot-logik.h
    --- include/bot-logic/bot-logik.h	6 Nov 2006 12:32:13 -0000	1.1
    +++ include/bot-logic/bot-logik.h	6 Nov 2006 19:52:40 -0000
    @@ -63,7 +63,9 @@

        uint8 active:1;				/*!< Ist das Verhalten aktiv */
        #ifdef DISPLAY_BEHAVIOUR_AVAILABLE
    -   uint8 active_new:1;			/*!< Ist das via Display gewaehlte neue Sollverhalten */
    +     #ifndef DISPLAY_DYNAMIC_BEHAVIOUR_AVAILABLE /*!< bei dynamischer Anzeige und Wahl keine Puffervar notwendig */
    +       uint8 active_new:1;			/*!< Ist das via Display gewaehlte neue Sollverhalten */
    +     #endif
        #endif
        uint8 subResult:2;			/*!< War das aufgerufene unterverhalten erfolgreich (==1)?*/
        struct _Behaviour_t *next;					/*!< Naechster Eintrag in der Liste */

- Antworten:
  - Re: [ct-bot] Patch für Änderungen der Verhaltensanzeige/ Auswahl
    - From: Benjamin Benz

- Voriger (Datum): Re: [ct-bot] Adapter für den COM Anschluss, Manolis John
- Nächster (Datum): Re: [ct-bot] Patch für Änderungen der Verhaltensanzeige/ Auswahl, Benjamin Benz
- Voriger (Thread): Re: [ct-bot] Adapter für den COM Anschluss, Manolis John
- Nächster (Thread): Re: [ct-bot] Patch für Änderungen der Verhaltensanzeige/ Auswahl, Benjamin Benz
- Indizes:
  - Datum
  - Thread