c't Projekte - c't-Bot und c't-Sim -
Mailinglisten
[Voriger (Datum)]
[Nächster (Datum)]
[Voriger (Thread)]
[Nächster (Thread)]
[Nach Datum][Nach Thread]
Absender: Frank Menzel
Datum: Mi, 16.04.2008 13:04:51
Hallo,
anbei mal eine Catch_Pillar-Version, welche im Endeffekt das
goto_pos-Verhalten zum Einfangen verwendet.
Hierfür gibt es ein paar neue Routinen, welche z.B. die Koordinate des
gesehenen Objektes ermitteln je nach Sensorentfernung und eine kleine
Erweiterung für bot_turn, um dieses abzubrechen.
Folgende Logik wird verwendet.
-Bot_turn wird wird in 4 Schritten a 90 Grad aufgerufen (bei sofort 360
Grad dreht er zu schnell und Objekt wird nicht erkannt)
-Bot_turn wird abgebrochen falls Objekt gesehen wird (Abbruchfunktion)
-Measure-Verhalten bestimmt genauen Abstand
-Koordinate xy wird berechnet je nach Abstand
-hat linker Sensor zuerst Objekt erkannt, wird etwas weiter gedreht bis
rechts ebenfalls Objekt erkennt
-Mittelwert beider Koordinaten wird mit goto_pos angefahren
Das wars? Bei mir klappt die Sache recht gut.
Das alte catch Pillar ist codemaessig noch drin und wird per define
aktiviert. Ebenfalls wird das alte zugeschaltet bei nicht aktiviertem
goto_pos-Verhalten (geht auch nur bei aktivierter Motorsteuerung) mit
entsprechender Warning.
Gruß, Frank Menzel
Index: C:/eclipse/workspace/ct-Bot/bot-logic/behaviour_catch_pillar.c
===================================================================
--- C:/eclipse/workspace/ct-Bot/bot-logic/behaviour_catch_pillar.c (revision 1415)
+++ C:/eclipse/workspace/ct-Bot/bot-logic/behaviour_catch_pillar.c (working copy)
@@ -28,8 +28,9 @@
#include "bot-logic/bot-logik.h"
#ifdef BEHAVIOUR_CATCH_PILLAR_AVAILABLE
-
+#include "math_utils.h"
#include <math.h>
+#include <stdlib.h>
#define START 0
#define SEARCH_LEFT 1
@@ -44,6 +45,20 @@
static uint8 catch_pillar_state=START; /*!< Statusvariable für das Einfang-Verhalten */
static uint8 unload_pillar_state=START; /*!< Statusvariable für das Auslade-Verhalten */
+
+/* Soll das alte catch_pillar-Verhalten verwendet werden, dann das Define aktivieren; funktioniert nur
+ * bei aktiviertem GOT_POS-Verhalten
+ */
+//#define CATCH_PILLAR_OLD
+
+#ifndef BEHAVIOUR_GOTO_POS_AVAILABLE
+ #define CATCH_PILLAR_OLD
+ #warning " Altes Catch Pillar definiert weil goto_pos_nicht definiert ist"
+#endif
+
+
+#ifdef CATCH_PILLAR_OLD
+
static int16 startangle=0; /*!< gemerkter Anfangswinkel einfach als Integer */
/*!
* Fange eine Dose ein
@@ -146,7 +161,207 @@
switch_to_behaviour(caller,bot_catch_pillar_behaviour,OVERRIDE);
}
+#else
+
+
+static uint8 counter=0; // Vollkreis in mehreren Schritten zu je 90 Grad; dies ist die Zaehlervariable
+
+static uint8 turnsteps = 0; // Anzahl Korrekur-Drehschritte
+
+static int16 destheading = 0; // gemerkter Winkel bei Start, der damit auch Zielwinkel ist zur Differenzbildung
+
+static int16 turnangle = 0; // Winkel, um den noch zu drehen ist bis zum Vollkreis
+
+static uint16 distance = 0; // Abstand zum gesehenen Objekt
+
+static int8 check_sensorside=0; // Seite, auf der der Sensorabstand gecheckt wird
+
+static float PH_xl=0, PH_yl=0, PH_xr=0, PH_yr=0; // berechnete Koordinaten zum Objekt jeweils vom linken und rechten Sensor
+
+#define DIST_GUILTY 250 // gueltiger Abstand zum Einfangobjekt
+
+#define MAX_TURN_STEPS 5 // maximale Drehschritte zur Korrektur
+
+#define MIN_DIST_SENSES 90 // minimal geforderter Abstand in mm zwischen beiden Sensoren
+
+#define OBJECT_FOUND_AFTER_CANCEL 3
+#define MEASURE_DIST 5
+#define OBJECT_FOUND_AFTER_MEASURE 6
+#define TURN_BACK 7
+#define OPEN_DOOR 8
+#define GO_FORWARD 9
+#define GO_TO_POINT 10
+#define TURN_TO_RIGHT_SENSOR 11
+#define GO_FOR_DROP 12
+#define OBJ_NOT_GUILTY 13
+
+
+
+/* liefert True wenn Objekt nicht gueltig ist zum einfangen, z.B. Wand
+ * @return True wenn Objekt ungueltig sonst False
+ */
+uint8 object_not_guilty(void) {
+ if ((sensDistL <= DIST_GUILTY && sensDistR <= DIST_GUILTY) || abs(sensDistL-sensDistR)<=MIN_DIST_SENSES )
+ return True;
+
+ return False;
+}
+
+/* Abbruchfunktion fuer das Cancelverhalten waehrend der Drehung zum Erkennen eines Einfangobjektes
+ * @return True wenn gueltiges Objekt erkannt wurde sonst False
+ */
+uint8 turn_cancel_check(void) {
+ if (object_not_guilty())
+ return False; // beide zu klein gilt als ungueltiges Objekt
+
+ // Sensorabfrage als Richtwert; wenn Objekt gueltig Verhaltensvar auf Eintrittspunkt setzen
+ if (((sensDistL <= DIST_GUILTY && check_sensorside==-1) || sensDistR <= DIST_GUILTY)&&
+ abs(sensDistL-sensDistR)>MIN_DIST_SENSES ) {
+ catch_pillar_state = OBJECT_FOUND_AFTER_CANCEL;
+ return True;
+ }
+
+ return False;
+}
+
+
+
/*!
+ * Fange eine Dose ein
+ * @param *data der Verhaltensdatensatz
+ */
+void bot_catch_pillar_behaviour(Behaviour_t *data) {
+ static int16_t distLeft, distRight;
+
+
+ switch (catch_pillar_state) {
+ case START:
+ bot_turn_with_checkfunction(data,turnangle,turn_cancel_check);
+ counter++;
+ if (counter>3)
+ catch_pillar_state=END;
+ break;
+
+ case OBJECT_FOUND_AFTER_CANCEL: // Objekt erkannt
+ // kommt hierher weil Cancel zugeschlagen hatte und Objekt erkannt wurde
+ // ist schon zu weit gedreht, wieder etwas zurueckdrehen sonst genau Abstand messen
+
+ // sehen beide Sensoren zu kleinen Abstand, dann ist dies wohl eine Wand und es geht weiter mit drehen
+ if (object_not_guilty()) {
+ catch_pillar_state=OBJ_NOT_GUILTY;
+ break;
+ }
+
+ // bei Gueltigkeit evtl. Korrektur notwendig
+ catch_pillar_state=TURN_BACK;
+
+ turnsteps=0;
+ break;
+
+
+ case TURN_BACK: // mit kleinen Schritten zurueckdrehen
+ if (turn_cancel_check()) { // Falls Sensor Objekt erkennt genauen Abstand messen
+ catch_pillar_state=MEASURE_DIST;
+ break;
+ }
+ turnsteps++; // Korrektur nach rechts weil wohl zu weit nach links gedreht
+ speedWishLeft= check_sensorside * -BOT_SPEED_SLOW;
+ speedWishRight=check_sensorside * BOT_SPEED_SLOW;
+
+ if (turnsteps > MAX_TURN_STEPS)
+ catch_pillar_state=OBJ_NOT_GUILTY;
+
+ break;
+
+ case OBJ_NOT_GUILTY:
+ // maximale Korrektursteps erreicht ohne Objekt zu erkennen, Restdrehung vollziehen in Stepwinkel
+ turnangle = 360-turned_angle(destheading);
+ if (turnangle>90) {
+ counter=0; // hier wieder in 4 Restschritten drehen
+ turnangle=turnangle / 4;
+ }
+ else
+ counter=END;
+
+ catch_pillar_state=START; // geht mit Start los
+ turnsteps=0;
+ break;
+
+
+ case MEASURE_DIST:
+ //genaue Entfernung zum Hindernis messen
+ bot_measure_distance(data, &distLeft, &distRight);
+ catch_pillar_state = OPEN_DOOR;
+ break;
+
+ case OPEN_DOOR:
+ if (distLeft>DIST_GUILTY && distRight>DIST_GUILTY ) {// bei ungueltigem Abstand nach Messung Restdrehung
+ catch_pillar_state=TURN_BACK;
+ turnsteps=0;
+ break;
+ }
+ catch_pillar_state = OBJECT_FOUND_AFTER_MEASURE;
+ break;
+
+ case OBJECT_FOUND_AFTER_MEASURE:
+ // nehme den Sensorabstand vom Sensor, welcher auch Objekt sieht
+ if (distLeft<=DIST_GUILTY ) {
+ distance=distLeft;
+ calc_point_distsensor_award(distance,-1, &PH_xl,&PH_yl);
+ catch_pillar_state = TURN_TO_RIGHT_SENSOR;
+ }
+ else {
+ distance=distRight;
+ calc_point_distsensor_award(distance,+1, &PH_xr,&PH_yr);
+ catch_pillar_state = GO_TO_POINT;
+ bot_servo(data,SERVO1,DOOR_OPEN); // Klappe auf
+ }
+
+ break;
+
+case TURN_TO_RIGHT_SENSOR:
+ check_sensorside=1;
+ catch_pillar_state =TURN_BACK;
+ turnsteps=0;
+
+ break;
+
+case GO_TO_POINT:
+ // Hatte rechter Sensor zuerst Objekt erkannt, gibt es keine linken Koords und die rechten koords werden genommen
+ (PH_xl==0 && PH_yl==0)? bot_goto_pos(data,PH_xr,PH_yr,999): bot_goto_pos(data,((PH_xl + PH_xr) / 2),((PH_yl + PH_yr) / 2),999);
+ catch_pillar_state =END;
+ break;
+
+ default:
+
+ //deactivateBehaviour(bot_cancel_behaviour_behaviour); // sicherheitshalber
+ if (sensTrans ==1) // Klappe schliessen falls Objekt eingefangen wurde
+ bot_servo(data,SERVO1,DOOR_CLOSE);
+
+ return_from_behaviour(data);
+ break;
+ }
+}
+
+
+void bot_catch_pillar(Behaviour_t * caller) {
+ catch_pillar_state=START;
+ counter=0;
+ turnsteps=0;
+ turnangle=90; // Drehwinkel zum Start in mehreren Schritten um xx Grad
+ check_sensorside=-1; // linker Sensor ergibt Abbruchbedingung
+ destheading = heading;
+ PH_xl=0; PH_yl=0; PH_xr=0; PH_yr=0;
+ switch_to_behaviour(caller,bot_catch_pillar_behaviour,OVERRIDE);
+ /* Kollisions-Verhalten ausschalten */
+ #ifdef BEHAVIOUR_AVOID_COL_AVAILABLE
+ deactivateBehaviour(bot_avoid_col_behaviour);
+ #endif
+}
+
+#endif
+
+/*!
* Gibt die Dose wieder aus, Entladevorgang
* @param *data der Verhaltensdatensatz
*/
Index: C:/eclipse/workspace/ct-Bot/bot-logic/behaviour_turn.c
===================================================================
--- C:/eclipse/workspace/ct-Bot/bot-logic/behaviour_turn.c (revision 1415)
+++ C:/eclipse/workspace/ct-Bot/bot-logic/behaviour_turn.c (working copy)
@@ -67,6 +67,13 @@
float turn_last_err = 0.0; /*!< letzter Drehfehler in Grad */
#endif
+/*!
+ * Abbruchfunktion des Verhaltens()
+ * Die Funktion, mit der das bot_explore_behaviour() feststellt, ob es etwas gefunden hat.
+ * Die Funktion muss True (1) zurueckgeben, wenn dem so ist, sonst False (0).
+ * Beispiele fuer eine solche Funktion sind check_for_light, is_good_pillar_ahead etc.
+ */
+ static uint8 (*check_function)(void)=0;
/*!
* @brief Das Verhalten laesst den Bot eine Punktdrehung durchfuehren.
@@ -77,6 +84,10 @@
* Winkeln dann nur noch mit geringer Geschwindigkeit.
*/
void bot_turn_behaviour(Behaviour_t *data) {
+
+ if (check_function && (*check_function)()) // wenn ueberhaupt definiert und Abbruchbedingung erfuellt
+ return_from_behaviour(data);
+
/* Differenz zum Zielwinkel berechnen (in Drehrichtung gesehen) */
int16_t heading_16 = (int16_t)(heading*10);
int16_t diff;
@@ -155,6 +166,10 @@
void bot_turn(Behaviour_t *caller, int16 degrees) {
// LOG_DEBUG("bot_turn(%d)", degrees);
+ // bei Aufruf von anderem Verhalten aus ist dies die Abbruchfunktion, d.h. es wird
+ // wieder zum aufrufenden Verhalten zurueckgekehrt wenn diese Bedingung wahr ist
+ check_function = 0;
+
/* Parameter begrenzen */
while (degrees > 360) degrees -= 360;
while (degrees < -360) degrees += 360;
@@ -201,4 +216,20 @@
switch_to_behaviour(caller, bot_turn_behaviour, OVERRIDE);
}
+/*!
+ * @brief Dreht den Bot im mathematischen Drehsinn mit Uebergabe einer Abbruchfunktion.
+ * @param caller Der Aufrufer
+ * @param degrees Grad, um die der Bot gedreht wird. Negative Zahlen drehen im (mathematisch negativen) Uhrzeigersinn.
+ * zwischen -360 und +360
+ * @param check Abbruchfunktion; wenn diese True liefert wird das Verhalten beendet
+ */
+void bot_turn_with_checkfunction(Behaviour_t *caller, int16 degrees, uint8 (*check)(void)) {
+
+ bot_turn(caller, degrees);
+ // bei Aufruf von anderem Verhalten aus ist dies die Abbruchfunktion, d.h. es wird
+ // wieder zum aufrufenden Verhalten zurueckgekehrt wenn diese Bedingung wahr ist
+ check_function = check;
+}
+
+
#endif // BEHAVIOUR_TURN_AVAILABLE
Index: C:/eclipse/workspace/ct-Bot/math_utils.c
===================================================================
--- C:/eclipse/workspace/ct-Bot/math_utils.c (revision 1415)
+++ C:/eclipse/workspace/ct-Bot/math_utils.c (working copy)
@@ -25,6 +25,7 @@
*/
#include "ct-Bot.h"
#include "sensor.h"
+#include "bot-logic/bot-logik.h"
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
@@ -94,3 +95,44 @@
/* Abstandsermittlung nach dem guten alten Pythagoras ohne Ziehen der Wurzel */
return (xt * xt + yt * yt);
}
+
+/* ermittelt von einem gegebenen Punkt in Blickrichtung voraus in einem bestimmten Abstand die Koordinaten
+ * @param x_point x-Koordinate des gegebenen Punktes
+ * @param y_point y-Koordinate des gegebenen Punktes
+ * @param distance Abstand vom gegebenen Punkt, zu dem die Koordinate ermittelt werden soll
+ * @param h Blickrichtung bereits in Bogenmass umgerechnet oder bei 999 wird erst noch umgerechent
+ * @param *xpoint_dist x-Koordinate im Abstand voraus
+ * @param *ypoint_dist y-Koordinate im Abstand voraus
+ */
+void calc_points_in_distance(float x_point, float y_point, int16 distance, float h, float *xpoint_dist, float *ypoint_dist) {
+ if (h==999)
+ h= heading * M_PI/180; // Umrechnung in Bogenmass
+ *xpoint_dist = x_point + (DISTSENSOR_POS_FW + distance) * cos(h);
+ *ypoint_dist = y_point + (DISTSENSOR_POS_FW + distance) * sin(h);
+}
+
+
+/* ermittelt von dem Abstandssensor links/ rechts in Blickrichtung voraus in einem bestimmten Abstand die Koordinaten
+ * @param distance Abstand vom Sensor; bei -1 werden nur die seitlichen Koordinaten vom Mittelpunkt zurueckgegeben
+ * @param sensorside -1 fuer linken Sensor sonst rechter Sensor genommen
+ * @param *xpoint_dist x-Koordinate im Abstand voraus
+ * @param *ypoint_dist y-Koordinate im Abstand voraus
+ */
+void calc_point_distsensor_award(int16 distance, int8 sensorside, float *xpoint_dist, float *ypoint_dist) {
+
+ float h= heading * M_PI/180; // Umrechnung in Bogenmass
+
+ // Je nach Sensorauswahl wird Punkt seitlich vom Mittelpunkt berechnet mit seitlichem Sensorabstand
+ if (sensorside==-1) { // linker Sensor
+ *xpoint_dist = x_pos - (DISTSENSOR_POS_SW * sin(h));
+ *ypoint_dist = y_pos + (DISTSENSOR_POS_SW * cos(h));
+ }
+ else { // rechter Sensor
+ *xpoint_dist = x_pos + (DISTSENSOR_POS_SW * sin(h));
+ *ypoint_dist = y_pos - (DISTSENSOR_POS_SW * cos(h));
+ }
+
+ // nun vom seitlichen Punkt voraus ab Hoehe Abstandssensoren Punkt ermitteln sonst nur die seitlichen Koordinaten
+ if (distance>=0)
+ calc_points_in_distance(*xpoint_dist,*ypoint_dist,distance,h,xpoint_dist,ypoint_dist);
+}
Index: C:/eclipse/workspace/ct-Bot/Changelog.txt
===================================================================
--- C:/eclipse/workspace/ct-Bot/Changelog.txt (revision 1415)
+++ C:/eclipse/workspace/ct-Bot/Changelog.txt (working copy)
@@ -1,5 +1,7 @@
CHANGELOG fuer c't-Bot
======================
+2008-04-16 Frank Menzel [Menzelfr@xxxxxxx]: neues catch_pillar-Verhalten mit Verwendung goto_pos; altes Verhalten im Code drin gelassen und mit define aktivierbar
+
2008-04-15 Timo Sandmann [mail@xxxxxxxxxxxxxxx]: Map-Update laeuft nun in einem zweiten Thread
Fifo verallgemeinert (MCU und PC), threadsicher gemacht
BotOS-Threading fuer PC auf PThreads abgebildet
Index: C:/eclipse/workspace/ct-Bot/ct-Bot.h
===================================================================
--- C:/eclipse/workspace/ct-Bot/ct-Bot.h (revision 1415)
+++ C:/eclipse/workspace/ct-Bot/ct-Bot.h (working copy)
@@ -29,10 +29,10 @@
/************************************************************
* Module switches, to make code smaller if features are not needed
************************************************************/
-//#define LOG_CTSIM_AVAILABLE /*!< Logging zum ct-Sim (PC und MCU) */
+#define LOG_CTSIM_AVAILABLE /*!< Logging zum ct-Sim (PC und MCU) */
//#define LOG_DISPLAY_AVAILABLE /*!< Logging ueber das LCD-Display (PC und MCU) */
//#define LOG_UART_AVAILABLE /*!< Logging ueber UART (NUR fuer MCU) */
-#define LOG_STDOUT_AVAILABLE /*!< Logging auf die Konsole (NUR fuer PC) */
+//#define LOG_STDOUT_AVAILABLE /*!< Logging auf die Konsole (NUR fuer PC) */
//#define LOG_MMC_AVAILABLE /*!< Logging in eine txt-Datei auf MMC */
#define USE_MINILOG /*!< schaltet fuer MCU auf schlankes Logging um (nur in Verbindung mit Log2Sim) */
@@ -72,7 +72,7 @@
//#define MAP_AVAILABLE /*!< Aktiviere die Kartographie */
-//#define SPEED_CONTROL_AVAILABLE /*!< Aktiviert die Motorregelung */
+#define SPEED_CONTROL_AVAILABLE /*!< Aktiviert die Motorregelung */
//#define ADJUST_PID_PARAMS /*!< macht PID-Paramter zur Laufzeit per FB einstellbar */
//#define SPEED_LOG_AVAILABLE /*!< Zeichnet Debug-Infos der Motorregelung auf MMC auf */
Index: C:/eclipse/workspace/ct-Bot/include/bot-logic/behaviour_turn.h
===================================================================
--- C:/eclipse/workspace/ct-Bot/include/bot-logic/behaviour_turn.h (revision 1415)
+++ C:/eclipse/workspace/ct-Bot/include/bot-logic/behaviour_turn.h (working copy)
@@ -51,5 +51,14 @@
*/
void bot_turn(Behaviour_t* caller,int16 degrees);
+/*!
+ * @brief Dreht den Bot im mathematischen Drehsinn mit Uebergabe einer Abbruchfunktion.
+ * @param caller Der Aufrufer
+ * @param degrees Grad, um die der Bot gedreht wird. Negative Zahlen drehen im (mathematisch negativen) Uhrzeigersinn.
+ * zwischen -360 und +360
+ * @param check Abbruchfunktion; wenn diese True liefert wird das Verhalten beendet
+ */
+void bot_turn_with_checkfunction(Behaviour_t *caller, int16 degrees, uint8 (*check)(void));
+
#endif
#endif
Index: C:/eclipse/workspace/ct-Bot/include/bot-logic/available_behaviours.h
===================================================================
--- C:/eclipse/workspace/ct-Bot/include/bot-logic/available_behaviours.h (revision 1415)
+++ C:/eclipse/workspace/ct-Bot/include/bot-logic/available_behaviours.h (working copy)
@@ -18,7 +18,7 @@
//#define BEHAVIOUR_HANG_ON_AVAILABLE /*!< Erkennen des Haengenbleibens als Notfallverhalten? */
//#define BEHAVIOUR_GOTO_AVAILABLE /*!< goto vorhanden? */
//#define BEHAVIOUR_GOTOXY_AVAILABLE /*!< gotoxy vorhanden? */
-//#define BEHAVIOUR_GOTO_POS_AVAILABLE /*!< goto_pos vorhanden? */
+#define BEHAVIOUR_GOTO_POS_AVAILABLE /*!< goto_pos vorhanden? */
#define BEHAVIOUR_TURN_AVAILABLE /*!< turn vorhanden? */
//#define BEHAVIOUR_TURN_TEST_AVAILABLE /*!< turn_test vorhanden? */
Index: C:/eclipse/workspace/ct-Bot/include/math_utils.h
===================================================================
--- C:/eclipse/workspace/ct-Bot/include/math_utils.h (revision 1415)
+++ C:/eclipse/workspace/ct-Bot/include/math_utils.h (working copy)
@@ -94,4 +94,13 @@
*/
int16 get_dist(int16 x1, int16 y1, int16 x2, int16 y2);
+/* ermittelt von dem Abstandssensor links/ rechts in Blickrichtung voraus in einem bestimmten Abstand die Koordinaten
+ * @param distance Abstand vom Sensor; bei -1 werden nur die seitlichen Koordinaten vom Mittelpunkt zurueckgegeben
+ * @param sensorside -1 fuer linken Sensor sonst rechter Sensor genommen
+ * @param *xpoint_dist x-Koordinate im Abstand voraus
+ * @param *ypoint_dist y-Koordinate im Abstand voraus
+ */
+void calc_point_distsensor_award(int16 distance, int8 sensorside, float *xpoint_dist, float *ypoint_dist);
+
+
#endif /*MATH_UTILS_H_*/
Index: C:/eclipse/workspace/ct-Bot/include/rc5-codes.h
===================================================================
--- C:/eclipse/workspace/ct-Bot/include/rc5-codes.h (revision 1415)
+++ C:/eclipse/workspace/ct-Bot/include/rc5-codes.h (working copy)
@@ -254,6 +254,7 @@
#define RC5_CODE_BWD (0x3011 & RC5_MASK) /*!< Backward Taste */
#define RC5_CODE_FWD (0x3010 & RC5_MASK) /*!< Forward Taste */
+ #define RC5_CODE_CH_PC (0x1010 & RC5_MASK) /*!< Taste neben dem Minus */
#define RC5_CH_PLUS (0x1020 & RC5_MASK) /*!< Ch + Taste */
#define RC5_CH_MINUS (0x1021 & RC5_MASK) /*!< Ch - Taste */
Index: C:/eclipse/workspace/ct-Bot/.cdtbuild
===================================================================
--- C:/eclipse/workspace/ct-Bot/.cdtbuild (revision 1415)
+++ C:/eclipse/workspace/ct-Bot/.cdtbuild (working copy)
@@ -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=""${ProjDirPath}""/>
<listOptionValue builtIn="false" value=""${ProjDirPath}/include""/>
-<listOptionValue builtIn="false" value=""C:\Programme\MinGW\include""/>
-<listOptionValue builtIn="false" value=""C:\Programme\pthreads\pthreads.2""/>
+<listOptionValue builtIn="false" value=""C:\MinGW\include""/>
+<listOptionValue builtIn="false" value=""C:\pthreads\pthreads.2""/>
</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"/>
@@ -27,8 +27,8 @@
<listOptionValue builtIn="false" value="pthreadGC2"/>
</option>
<option id="gnu.c.link.option.paths.142594843" superClass="gnu.c.link.option.paths" valueType="stringList">
-<listOptionValue builtIn="false" value=""C:\Programme\pthreads\Pre-built.2\lib""/>
-<listOptionValue builtIn="false" value=""C:\Programme\MinGW\lib""/>
+<listOptionValue builtIn="false" value=""C:\pthreads\Pre-built.2\lib""/>
+<listOptionValue builtIn="false" value=""C:\MinGW\lib""/>
</option>
<option id="gnu.c.link.option.noshared.1812776571" superClass="gnu.c.link.option.noshared" value="true" valueType="boolean"/>
</tool>
@@ -111,7 +111,7 @@
<option id="gnu.c.compiler.option.preprocessor.def.symbols.736140060" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
<listOptionValue builtIn="false" value="MCU"/>
</option>
-<option id="gnu.c.compiler.option.misc.other.462981231" name="Other flags" superClass="gnu.c.compiler.option.misc.other" value="-c -fmessage-length=0 -mmcu=atmega32 -Wstrict-prototypes" valueType="string"/>
+<option id="gnu.c.compiler.option.misc.other.462981231" name="Other flags" superClass="gnu.c.compiler.option.misc.other" value="-c -fmessage-length=0 -mmcu=atmega644 -Wstrict-prototypes" valueType="string"/>
<option id="gnu.c.compiler.option.optimization.flags.1587419901" superClass="gnu.c.compiler.option.optimization.flags" value="-Os" valueType="string"/>
</tool>
<tool command="g++" id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.1457522364" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug"/>
@@ -123,7 +123,7 @@
<listOptionValue builtIn="false" value=""C:\Programme\WinAVR\lib""/>
</option>
<option id="gnu.c.link.option.noshared.456282519" name="No shared libraries (-static)" superClass="gnu.c.link.option.noshared" value="false" valueType="boolean"/>
-<option id="gnu.c.link.option.ldflags.918822459" name="Linker flags" superClass="gnu.c.link.option.ldflags" value="-mmcu=atmega32" valueType="string"/>
+<option id="gnu.c.link.option.ldflags.918822459" name="Linker flags" superClass="gnu.c.link.option.ldflags" value="-mmcu=atmega644" valueType="string"/>
</tool>
<tool command="g++" id="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug.1073017226" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug"/>
<tool command="as" id="cdt.managedbuild.tool.gnu.assembler.exe.debug.212943627" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.debug"/>
Index: C:/eclipse/workspace/ct-Bot/.settings/org.eclipse.cdt.core.prefs
===================================================================
--- C:/eclipse/workspace/ct-Bot/.settings/org.eclipse.cdt.core.prefs (revision 0)
+++ C:/eclipse/workspace/ct-Bot/.settings/org.eclipse.cdt.core.prefs (revision 0)
@@ -0,0 +1,3 @@
+#Tue Apr 15 20:08:14 CEST 2008
+eclipse.preferences.version=1
+indexerId=org.eclipse.cdt.core.fastIndexer
Index: C:/eclipse/workspace/ct-Bot/.settings/org.eclipse.cdt.managedbuilder.core.prefs
===================================================================
--- C:/eclipse/workspace/ct-Bot/.settings/org.eclipse.cdt.managedbuilder.core.prefs (revision 1415)
+++ C:/eclipse/workspace/ct-Bot/.settings/org.eclipse.cdt.managedbuilder.core.prefs (working copy)
@@ -1,13 +1,20 @@
-#Thu Mar 29 15:23:55 CEST 2007
-cdt.managedbuild.config.gnu.exe.debug.1197043799/internalBuilder/enabled=false
-cdt.managedbuild.config.gnu.exe.debug.1197043799/internalBuilder/ignoreErr=true
-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.1197043799=<?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.1197043799.2016949464=<?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/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.exe.debug.1077176217=<?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.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.1197043799.2016949464=<?xml version\="1.0" encoding\="UTF-8"?>\n<environment>\n<variable name\="LIBRARY_PATH" operation\="remove"/>\n</environment>\n
-environment/project=<?xml version\="1.0" encoding\="UTF-8"?>\n<environment/>\n
-environment/project/cdt.managedbuild.config.gnu.exe.debug.1077176217=<?xml version\="1.0" encoding\="UTF-8"?>\n<environment/>\n
-environment/project/cdt.managedbuild.config.gnu.exe.debug.1197043799=<?xml version\="1.0" encoding\="UTF-8"?>\n<environment>\n<variable delimiter\="\:" name\="PATH" operation\="append" value\="/usr/local/avr/bin"/>\n</environment>\n
+#Wed Apr 16 10:32:35 CEST 2008
+cdt.managedbuild.config.gnu.exe.debug.1077176217/internalBuilder/enabled=false
+cdt.managedbuild.config.gnu.exe.debug.1077176217/internalBuilder/ignoreErr=true
+cdt.managedbuild.config.gnu.exe.debug.1150677647/internalBuilder/enabled=false
+cdt.managedbuild.config.gnu.exe.debug.1150677647/internalBuilder/ignoreErr=true
+cdt.managedbuild.config.gnu.exe.debug.1197043799/internalBuilder/enabled=false
+cdt.managedbuild.config.gnu.exe.debug.1197043799/internalBuilder/ignoreErr=true
+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"?>\r\n<environment>\r\n<variable name\="CPATH" operation\="remove"/>\r\n<variable name\="C_INCLUDE_PATH" operation\="remove"/>\r\n</environment>\r\n
+environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.exe.debug.1197043799=<?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.1197043799.2016949464=<?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/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.exe.debug.1077176217=<?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.1150677647=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<environment>\r\n<variable name\="LIBRARY_PATH" operation\="remove"/>\r\n</environment>\r\n
+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.1197043799.2016949464=<?xml version\="1.0" encoding\="UTF-8"?>\n<environment>\n<variable name\="LIBRARY_PATH" operation\="remove"/>\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 delimiter\="\:" name\="PATH" operation\="append" value\="/usr/local/avr/bin"/>\n</environment>\n