00001 /** 00002 * @file DebugKeyTable.h 00003 * Declaration of class DebugKey and DebugKeyTable 00004 * 00005 * @author <A href=mailto:brunn@sim.informatik.tu-darmstadt.de>Ronnie Brunn</A> 00006 * @author <A href=mailto:risler@sim.informatik.tu-darmstadt.de>Max Risler</A> 00007 * @author Martin Lötzsch 00008 */ 00009 00010 #ifndef __DEBUGKEYTABLE_H__ 00011 #define __DEBUGKEYTABLE_H__ 00012 00013 #include "Tools/Streams/InOut.h" 00014 00015 /** 00016 * @class DebugKey 00017 * 00018 * Represents a request for debug output. 00019 */ 00020 class DebugKey 00021 { 00022 public: 00023 enum modes { 00024 disabled, /*!< dont send anything */ 00025 always, /*!< always send the debug message */ 00026 n_times, /*!< send the debug message the next n times (frames) */ 00027 every_n_times, /*!< send the message every n times (frames) */ 00028 every_n_ms /*!< send the message at most every n milliseconds */ 00029 }; 00030 00031 /** the mode of this DebugKey */ 00032 modes mode; 00033 00034 /** the parameter for timed or counted debug messages */ 00035 unsigned int n; 00036 00037 /** last time (ever_n_ms) or number of times (every_n_times, n_times) the message was sent */ 00038 unsigned long last; 00039 00040 /** 00041 * Determines if the key is active in the current frame 00042 * This is set by activateDebugKeys() 00043 */ 00044 bool active; 00045 00046 /** 00047 * construct a new DebugKey 00048 */ 00049 DebugKey(modes mode=disabled, unsigned int n=0); 00050 00051 /** sets the mode and the parameter of a DebugKey */ 00052 void set(modes mode=always, unsigned int n=0); 00053 }; 00054 00055 00056 /** 00057 * Contains a table of debug keys and all methods for using debug keys. 00058 * 00059 * @author <A href=mailto:brunn@sim.informatik.tu-darmstadt.de>Ronnie Brunn</A> 00060 * @author <A href=mailto:risler@sim.informatik.tu-darmstadt.de>Max Risler</A> 00061 * @author Martin Lötzsch 00062 */ 00063 class DebugKeyTable 00064 { 00065 public: 00066 /** 00067 * IDs for Debug Keys. 00068 * enter new Debug Keys here and add the corresponding string in getDebugKeyName 00069 */ 00070 enum debugKeyID { 00071 sendImage, 00072 sendJPEGImage, 00073 sendLowResImage, 00074 sendSensorData, 00075 sendJointData, 00076 sendOdometryData, 00077 sendMotionInfo, 00078 sendBodyPosture, 00079 sendPercepts, 00080 sendSpecialPercept, 00081 sendWorldState, 00082 sendGameControlData, 00083 sendPlayerConfig, 00084 sendSoundRequest, 00085 sendOptionRatings, 00086 sendKickRecords, 00087 00088 sendTimeOffsets, 00089 printRobotStatus, 00090 printCBBRules, 00091 printPixelUsage, 00092 learnWalking, 00093 sendDDPInfo, 00094 sendWalkingEngineInfo, 00095 sendKickEngineInfo, 00096 00097 numOfDebugKeysForDebugKeyToolbar, 00098 00099 sendXabsl2DebugMessagesForBehaviorControl, 00100 sendXabsl2DebugMessagesForHeadControl, 00101 sendColorTable64, 00102 sendColorTableReferenceColor, 00103 sendColorTableCuboids, 00104 00105 // histograms 00106 sendHistogram_imageIntensityY, 00107 sendHistogram_imageIntensityU, 00108 sendHistogram_imageIntensityV, 00109 sendHistogram_scanLineIntensityY, 00110 sendHistogram_scanLineIntensityU, 00111 sendHistogram_scanLineIntensityV, 00112 sendHistogram_colorFrequency, 00113 sendHistogram_lengthOfSegments, 00114 00115 //image drawings 00116 send_selfLocator_drawing, 00117 send_imageProcessor_general_drawing, 00118 send_imageProcessor_horizon_drawing, 00119 send_imageProcessor_scanLines_drawing, 00120 send_imageProcessor_coloredSegments1_drawing, 00121 send_imageProcessor_coloredSegments2_drawing, 00122 send_imageProcessor_coloredSegments3_drawing, 00123 send_imageProcessor_calibration1_drawing, 00124 send_imageProcessor_calibration2_drawing, 00125 send_imageProcessor_ball1_drawing, 00126 send_imageProcessor_ball2_drawing, 00127 send_imageProcessor_ball3_drawing, 00128 send_imageProcessor_ball4_drawing, 00129 send_imageProcessor_ground_drawing, 00130 send_imageProcessor_flagsAndGoals_drawing, 00131 send_imageProcessor_obstacles_drawing, 00132 send_imageProcessor_gradients_drawing, 00133 send_imageProcessor_edges_drawing, 00134 send_sketch_drawing, 00135 00136 //field drawings 00137 send_selfLocatorField_drawing, 00138 send_teamBallLocatorField_drawing, 00139 send_ballLocatorField_drawing, 00140 send_goaliePositionField_drawing, 00141 send_headControlField_drawing, 00142 // send_obstaclesLocatorField_drawing, 00143 send_behavior_CBBVector_drawing, 00144 send_behavior_CBBWay_drawing, 00145 send_behavior_kickAngles_drawing, 00146 send_behavior_aStarSearch_drawing, 00147 send_dribbleBall_drawing, 00148 00149 //radar drawings 00150 send_behavior_kickAnglesRadar_drawing, 00151 send_models_corridorsRadar_drawing, 00152 00153 //debug images 00154 send_segmentedImage1_image, 00155 send_segmentedImage2_image, 00156 send_segmentedImage3_image, 00157 send_classificationY_image, 00158 send_classificationU_image, 00159 send_classificationV_image, 00160 send_colorFrequency_image, 00161 send_imageProcessorGeneral_image, 00162 send_imageProcessorScanLines_image, 00163 send_imageProcessorBall_image, 00164 send_imageProcessorGoals_image, 00165 send_imageProcessorFlags_image, 00166 send_imageProcessorPlayers_image, 00167 send_imageProcessorGradients_image, 00168 send_imageMotionRecognition_image, 00169 00170 //times 00171 sendImageProcessorTime, 00172 sendSensorDataProcessorTime, 00173 sendBallLocatorTime, 00174 sendTeamBallLocatorTime, 00175 sendSelfLocatorTime, 00176 sendPlayersLocatorTime, 00177 sendObstaclesLocatorTime, 00178 sendBehaviorControlTime, 00179 sendMotionControlTime, 00180 sendSoundControlTime, 00181 sendSpecialVisionTime, 00182 sendPerceptBehaviorControlTime, 00183 sendSensorBehaviorControlTime, 00184 sendHeadControlTime, 00185 sendCollisionDetectorTime, 00186 sendRobotStateDetectorTime, 00187 00188 numOfDebugKeys 00189 } ; 00190 00191 /** 00192 * returns the DebugKey's name 00193 */ 00194 static char* getDebugKeyName (debugKeyID aID) 00195 { 00196 switch (aID) { 00197 case sendImage: return "sendImage"; 00198 case sendJPEGImage: return "sendJPEGImage"; 00199 case sendLowResImage: return "sendLowResImage"; 00200 case sendSensorData: return "sendSensorData"; 00201 case sendJointData: return "sendJointData"; 00202 case sendOdometryData: return "sendOdometryData"; 00203 case sendMotionInfo: return "sendMotionInfo"; 00204 case sendBodyPosture: return "sendBodyPosture"; 00205 case sendPercepts: return "sendPercepts"; 00206 case sendSpecialPercept: return "sendSpecialPercept"; 00207 case sendWorldState: return "sendWorldState"; 00208 case sendGameControlData: return "sendGameControlData"; 00209 case sendPlayerConfig: return "sendPlayerConfig"; 00210 case sendSoundRequest: return "sendSoundRequest"; 00211 00212 case sendXabsl2DebugMessagesForBehaviorControl: return "sendXabsl2DebugMessagesForBehaviorControl"; 00213 case sendXabsl2DebugMessagesForHeadControl: return "sendXabsl2DebugMessagesForHeadControl"; 00214 case sendTimeOffsets: return "sendTimeOffsets"; 00215 case sendColorTable64: return "sendColorTable64"; 00216 case sendColorTableCuboids: return "sendColorTableCuboids"; 00217 case sendColorTableReferenceColor: return "sendColorTableReferenceColor"; 00218 case printRobotStatus: return "printRobotStatus"; 00219 case printCBBRules: return "printCBBRules"; 00220 case printPixelUsage: return "printPixelUsage"; 00221 case learnWalking: return "learnWalking"; 00222 case sendDDPInfo: return "printDogDiscoveryProtocolInformation"; 00223 case sendKickRecords: return "sendKickRecords"; 00224 case sendWalkingEngineInfo: return "sendWalkingEngineInfo"; 00225 case sendKickEngineInfo: return "sendKickEngineInfo"; 00226 00227 // histograms 00228 case sendHistogram_imageIntensityY: return "sendHistogram_imageIntensityY"; 00229 case sendHistogram_imageIntensityU: return "sendHistogram_imageIntensityU"; 00230 case sendHistogram_imageIntensityV: return "sendHistogram_imageIntensityV"; 00231 case sendHistogram_scanLineIntensityY: return "sendHistogram_scanLineIntensityY"; 00232 case sendHistogram_scanLineIntensityU: return "sendHistogram_scanLineIntensityU"; 00233 case sendHistogram_scanLineIntensityV: return "sendHistogram_scanLineIntensityV"; 00234 case sendHistogram_colorFrequency: return "sendHistogram_colorFrequency"; 00235 case sendHistogram_lengthOfSegments: return "sendHistogram_lengthOfSegments"; 00236 00237 //image drawings 00238 case send_selfLocator_drawing: return "send_selfLocator_drawing"; 00239 case send_imageProcessor_general_drawing: return "send_imageProcessor_general_drawing"; 00240 case send_imageProcessor_horizon_drawing: return "send_imageProcessor_horizon_drawing"; 00241 case send_imageProcessor_scanLines_drawing: return "send_imageProcessor_scanLines_drawing"; 00242 case send_imageProcessor_coloredSegments1_drawing: return "send_imageProcessor_coloredSegments1_drawing"; 00243 case send_imageProcessor_coloredSegments2_drawing: return "send_imageProcessor_coloredSegments2_drawing"; 00244 case send_imageProcessor_coloredSegments3_drawing: return "send_imageProcessor_coloredSegments3_drawing"; 00245 case send_imageProcessor_calibration1_drawing: return "send_imageProcessor_calibration1_drawing"; 00246 case send_imageProcessor_calibration2_drawing: return "send_imageProcessor_calibration2_drawing"; 00247 case send_imageProcessor_ball1_drawing: return "send_imageProcessor_ball1_drawing"; 00248 case send_imageProcessor_ball2_drawing: return "send_imageProcessor_ball2_drawing"; 00249 case send_imageProcessor_ball3_drawing: return "send_imageProcessor_ball3_drawing"; 00250 case send_imageProcessor_ball4_drawing: return "send_imageProcessor_ball4_drawing"; 00251 case send_imageProcessor_ground_drawing: return "send_imageProcessor_ground_drawing"; 00252 case send_imageProcessor_flagsAndGoals_drawing: return "send_imageProcessor_flagsAndGoals_drawing"; 00253 case send_imageProcessor_obstacles_drawing: return "send_imageProcessor_obstacles_drawing"; 00254 case send_imageProcessor_gradients_drawing: return "send_imageProcessor_gradients_drawing"; 00255 case send_imageProcessor_edges_drawing: return "send_imageProcessor_edges_drawing"; 00256 case send_sketch_drawing: return "send_sketch_drawing"; 00257 00258 // field drawings 00259 case send_ballLocatorField_drawing: return "send_ballLocatorField_drawing"; 00260 case send_goaliePositionField_drawing: return "send_goaliePositionField_drawing"; 00261 case send_selfLocatorField_drawing: return "send_selfLocatorField_drawing"; 00262 case send_headControlField_drawing: return "send_headControlField_drawing"; 00263 case send_teamBallLocatorField_drawing: return "send_teamBallLocatorField_drawing"; 00264 // case send_obstaclesLocatorField_drawing: return "send_obstaclesLocatorField_drawing"; 00265 case send_behavior_CBBVector_drawing: return "send_behavior_CBBVector_drawing"; 00266 case send_behavior_CBBWay_drawing: return "send_behavior_CBBWay_drawing"; 00267 case send_behavior_kickAngles_drawing: return "send_behavior_kickAngles_drawing"; 00268 case send_behavior_aStarSearch_drawing: return "send_behavior_aStarSearch_drawing"; 00269 case send_dribbleBall_drawing: return "send_dribbleBall_drawing"; 00270 00271 // radar drawings 00272 case send_models_corridorsRadar_drawing: return "send_models_corridorsRadar"; 00273 case send_behavior_kickAnglesRadar_drawing: return "send_behavior_kickAnglesRadar_drawing"; 00274 00275 // debug images 00276 case send_segmentedImage1_image: return "send_segmentedImage1_image"; 00277 case send_segmentedImage2_image: return "send_segmentedImage2_image"; 00278 case send_segmentedImage3_image: return "send_segmentedImage3_image"; 00279 case send_classificationY_image: return "send_classificationY_image"; 00280 case send_classificationU_image: return "send_classificationU_image"; 00281 case send_classificationV_image: return "send_classificationV_image"; 00282 case send_colorFrequency_image: return "send_colorFrequency_image"; 00283 case send_imageProcessorGeneral_image: return "send_imageProcessorGeneral_image"; 00284 case send_imageProcessorScanLines_image: return "send_imageProcessorScanLines_image"; 00285 case send_imageProcessorBall_image: return "send_imageProcessorBall_image"; 00286 case send_imageProcessorGoals_image: return "send_imageProcessorGoals_image"; 00287 case send_imageProcessorFlags_image: return "send_imageProcessorFlags_image"; 00288 case send_imageProcessorPlayers_image: return "send_imageProcessorPlayers_image"; 00289 case send_imageProcessorGradients_image: return "send_imageProcessorGradients_image"; 00290 case send_imageMotionRecognition_image: return "send_imageMotionRecognition_image"; 00291 00292 // times 00293 case sendImageProcessorTime: return "sendImageProcessorTime"; 00294 case sendSensorDataProcessorTime: return "sendSensorDataProcessorTime"; 00295 case sendBallLocatorTime: return "sendBallLocatorTime"; 00296 case sendTeamBallLocatorTime: return "sendTeamBallLocatorTime"; 00297 case sendSelfLocatorTime: return "sendSelfLocatorTime"; 00298 case sendPlayersLocatorTime: return "sendPlayersLocatorTime"; 00299 case sendObstaclesLocatorTime: return "sendObstaclesLocatorTime"; 00300 case sendBehaviorControlTime: return "sendBehaviorControlTime"; 00301 case sendMotionControlTime: return "sendMotionControlTime"; 00302 case sendSoundControlTime: return "sendSoundControlTime"; 00303 case sendSpecialVisionTime: return "sendSpecialVisionTime"; 00304 case sendPerceptBehaviorControlTime: return "sendPerceptBehaviorControlTime"; 00305 case sendSensorBehaviorControlTime: return "sendSensorBehaviorControlTime"; 00306 case sendHeadControlTime: return "sendHeadControlTime"; 00307 case sendCollisionDetectorTime: return "sendCollisionDetectorTime"; 00308 case sendRobotStateDetectorTime: return "sendRobotStateDetectorTime"; 00309 00310 //option ratings 00311 case sendOptionRatings: return "sendOptionRatings"; 00312 00313 default: return "please edit DebugKeyTable::getDebugKeyName!"; 00314 } 00315 } 00316 00317 protected: 00318 /** 00319 * The Debug Key Table 00320 */ 00321 DebugKey debugKeys[numOfDebugKeys]; 00322 00323 public: 00324 /** Constructor, resets the table */ 00325 DebugKeyTable(); 00326 00327 /** sets a debug key */ 00328 void set(debugKeyID id, DebugKey::modes mode=DebugKey::always, int n=0); 00329 00330 /** sets only the mode of a debug key */ 00331 void setMode(debugKeyID id, DebugKey::modes mode); 00332 00333 /** sets only the parameter n of a debug key */ 00334 void setN(debugKeyID id, unsigned int n); 00335 00336 /** returns the mode of a debug key */ 00337 DebugKey::modes getMode(debugKeyID id) const; 00338 00339 /** returns the parameter n of a debug key */ 00340 unsigned int getN(debugKeyID id) const; 00341 00342 /** returns whether an debug Key is active in the current frame */ 00343 bool isActive (debugKeyID id) const; 00344 00345 /** resets all debug keys to disabled */ 00346 void reset(); 00347 00348 /** Determines for all keys if they are active in the current frame */ 00349 void activate(); 00350 00351 /** the == operator */ 00352 bool operator == (const DebugKeyTable& other); 00353 00354 /** the != operator */ 00355 bool operator != (const DebugKeyTable& other) 00356 { return ! (*this == other); } 00357 }; 00358 00359 /** 00360 * Streaming operator that reads a DebugKeyTable from a stream. 00361 * @param stream The stream from which is read. 00362 * @param debugKeyTable The DebugKeyTable object. 00363 * @return The stream. 00364 */ 00365 In& operator>>(In& stream,DebugKeyTable& debugKeyTable); 00366 00367 /** 00368 * Streaming operator that writes a DebugKeyTable to a stream. 00369 * @param stream The stream to write on. 00370 * @param debugKeyTable The DebugKeyTable object. 00371 * @return The stream. 00372 */ 00373 Out& operator<<(Out& stream, DebugKeyTable& debugKeyTable); 00374 00375 00376 #endif //__DEBUGKEYTABLE_H__ 00377 00378 /* 00379 * Change log : 00380 * 00381 * $Log: DebugKeyTable.h,v $ 00382 * Revision 1.7 2004/06/27 14:53:51 altmeyer 00383 * new GoaliePositionBenjamin and new debug key send_goaliePositionField 00384 * 00385 * Revision 1.6 2004/06/20 15:22:36 risler 00386 * increased kick editor usability: 00387 * KickLogger now sends kick record via debug key instead of writing to file 00388 * KickEditor automatically displays sent kick records 00389 * KickCase moved to KickSelectionTable 00390 * 00391 * Revision 1.5 2004/06/17 14:15:27 spranger 00392 * replaced executedMotionRequest-debugKeys and Messages with motionInfo from Motion 00393 * 00394 * Revision 1.4 2004/06/15 10:58:28 thomas 00395 * added edge-specialist, edges-percept, debug-drawings etc. (not yet called from image-processor) 00396 * 00397 * Revision 1.3 2004/06/14 20:12:10 jhoffman 00398 * - numerous changes and additions to headcontrol 00399 * - cameraInfo default constructor now creates ERS7 info 00400 * - debug drawing "headcontrolfield" added 00401 * 00402 * Revision 1.2 2004/05/26 17:12:01 juengel 00403 * Added sendBodyPosture. 00404 * 00405 * Revision 1.1.1.1 2004/05/22 17:36:05 cvsadm 00406 * created new repository GT2004_WM 00407 * 00408 * Revision 1.19 2004/05/17 18:35:23 loetzsch 00409 * continued support for multiple Xabsl engines in different modules 00410 * 00411 * Revision 1.18 2004/04/08 15:33:08 wachter 00412 * GT04 checkin of Microsoft-Hellounds 00413 * 00414 * Revision 1.18 2004/04/01 14:45:29 kindler 00415 * - added debug keys for walking- and kick-engine 00416 * 00417 * Revision 1.17 2004/03/26 11:42:21 pg_arce 00418 * improved catch and turn with ball 00419 * 00420 * Revision 1.16 2004/02/12 14:29:44 juengel 00421 * Added drawing ball4. 00422 * 00423 * Revision 1.15 2004/02/03 23:16:46 loetzsch 00424 * added debug key sendShootRecords 00425 * 00426 * Revision 1.14 2004/01/28 15:40:48 schumann 00427 * added transmission of ball locator debugging 00428 * 00429 * Revision 1.13 2004/01/24 18:35:03 wachter 00430 * Reactivated debug-drawings in SensorFusionTeamBallLocator 00431 * 00432 * Revision 1.12 2004/01/21 17:33:09 wachter 00433 * UDP Team-communication now working with packets<1400 bytes. 00434 * Not activated at the moment. 00435 * 00436 * Revision 1.11 2004/01/20 15:46:17 tim 00437 * Added drawing for potential field A* search 00438 * 00439 * Revision 1.10 2004/01/03 23:07:49 ordyniak 00440 * new debugimage imageMotionRecognition 00441 * 00442 * Revision 1.9 2003/12/29 15:48:54 roefer 00443 * Bremen Byters evo walking added 00444 * 00445 * Revision 1.8 2003/12/28 19:03:29 kerdels 00446 * option rating dialog added 00447 * 00448 * Revision 1.7 2003/12/01 16:24:18 juengel 00449 * Added drawing ball3. 00450 * 00451 * Revision 1.6 2003/11/05 16:43:59 juengel 00452 * Added drawing imageProcessor_ball2 00453 * 00454 * Revision 1.5 2003/10/29 13:34:22 juengel 00455 * added drawing imageProcessor_coloredSegments 00456 * an image colorFrequencyImage 00457 * 00458 * Revision 1.4 2003/10/23 07:21:20 juengel 00459 * Renamed ColorTableAuto to ColorTableReferenceColor. 00460 * 00461 * Revision 1.3 2003/10/12 20:25:29 juengel 00462 * Added keys for debug images. 00463 * 00464 * Revision 1.2 2003/10/12 11:50:30 juengel 00465 * Added DebugKey sendColorTable64. 00466 * 00467 * Revision 1.1 2003/10/07 10:13:22 cvsadm 00468 * Created GT2004 (M.J.) 00469 * 00470 * Revision 1.10 2003/09/26 15:28:10 juengel 00471 * Renamed DataTypes to representations. 00472 * 00473 * Revision 1.9 2003/09/25 11:21:59 juengel 00474 * Removed BlobCollection. 00475 * 00476 * Revision 1.8 2003/09/01 16:18:58 juengel 00477 * Not all DebugKeys are displayed in DebugKeysToolBar. 00478 * 00479 * Revision 1.7 2003/09/01 15:09:37 juengel 00480 * Removed playersPerceptor 00481 * 00482 * Revision 1.6 2003/09/01 10:23:14 juengel 00483 * DebugDrawings clean-up 2 00484 * DebugImages clean-up 00485 * MessageIDs clean-up 00486 * Stopwatch clean-up 00487 * 00488 * Revision 1.5 2003/08/30 10:16:41 juengel 00489 * DebugDrawings clean-up 1 00490 * 00491 * Revision 1.4 2003/08/25 17:23:01 juengel 00492 * Added Histograms 00493 * 00494 * Revision 1.3 2003/08/18 11:51:34 juengel 00495 * Added sendColorTableAuto 00496 * 00497 * Revision 1.2 2003/07/03 10:50:17 juengel 00498 * Added Drawing kickAnglesRadar. 00499 * 00500 * Revision 1.1.1.1 2003/07/02 09:40:28 cvsadm 00501 * created new repository for the competitions in Padova from the 00502 * tamara CVS (Tuesday 2:00 pm) 00503 * 00504 * removed unused solutions 00505 * 00506 * Revision 1.61 2003/06/21 12:46:56 juengel 00507 * Added sendRobotStateDetectorTime. 00508 * 00509 * Revision 1.60 2003/06/19 18:35:30 juengel 00510 * Added drawing kickAngles. 00511 * 00512 * Revision 1.59 2003/06/05 08:15:10 juengel 00513 * Added "corridors" drawing. 00514 * 00515 * Revision 1.58 2003/05/26 20:35:24 goehring 00516 * collisionDetectorTime added 00517 * 00518 * Revision 1.57 2003/05/09 16:21:58 engel 00519 * DebugKey changed for the GaussBellTeamBallLocator 00520 * 00521 * Revision 1.56 2003/05/08 13:20:22 loetzsch 00522 * added the execution of the team ball locator to the Cognition process 00523 * 00524 * Revision 1.55 2003/05/05 12:26:35 juengel 00525 * Removed sendGridImageProcessor2ColorCubes 00526 * 00527 * Revision 1.54 2003/04/30 09:17:08 kallnik 00528 * renamed some DebugKeys and defines 00529 * 00530 * Revision 1.53 2003/04/28 11:01:02 kallnik 00531 * new ContinuousBasicBehavior version (NORules is taken from number of lines in Rules-section 00532 * and some bugfixes 00533 * 00534 * Revision 1.52 2003/04/25 12:57:14 kallnik 00535 * new version of ContinuousBasicBehavior released 00536 * 00537 * Revision 1.51 2003/04/16 14:14:38 loetzsch 00538 * removed Xabsl 1 from GT2003 00539 * 00540 * Revision 1.50 2003/04/16 07:00:17 roefer 00541 * Bremen GO checkin 00542 * 00543 * Revision 1.49 2003/04/15 15:52:07 risler 00544 * DDD GO 2003 code integrated 00545 * 00546 * Revision 1.48 2003/04/10 13:53:43 max 00547 * send_playerSpecialistDrawing added 00548 * 00549 * Revision 1.47 2003/04/09 15:51:56 kallnik 00550 * ContinuousBasicBehavior Debug Drawing for ContinuousBasicBehaviorTester 00551 * 00552 * Revision 1.48 2003/03/29 20:01:05 loetzsch 00553 * added missing key "printAdviseOutput" 00554 * 00555 * Revision 1.47 2003/03/29 13:10:57 thiel 00556 * added HexAreaPotentialfieldOutput messages 00557 * added DroneOutput messages 00558 * added VisionaryOutput messages 00559 * 00560 * Revision 1.46 2003/03/28 14:13:58 loetzsch 00561 * added debug drawing areaOfResponsibility 00562 * 00563 * Revision 1.45 2003/03/27 13:12:09 schumann 00564 * added strategicalDatabaseOutput messages 00565 * 00566 * Revision 1.44 2003/03/25 10:54:56 juengel 00567 * Added some descriptions. 00568 * 00569 * Revision 1.43 2003/03/25 08:47:11 dasmuli 00570 * Added simple segmentation and the 180/360 memory. Dialog was changed in order to display segemented data. 00571 * 00572 * Revision 1.42 2003/03/24 09:56:50 schumann 00573 * added profiling for strategical database 00574 * 00575 * Revision 1.41 2003/03/21 12:22:21 thiel 00576 * added hexAreaPotentialfieldDrawing 00577 * 00578 * Revision 1.40 2003/03/19 20:16:19 schumann 00579 * added strategical database drawing 00580 * 00581 * Revision 1.39 2003/03/19 15:39:08 jhoffman 00582 * changed drawing name 00583 * 00584 * Revision 1.38 2003/03/19 09:37:46 dueffert 00585 * merge warning removed 00586 * 00587 * Revision 1.37 2003/03/19 09:34:00 dueffert 00588 * merge bug fixed 00589 * 00590 * Revision 1.36 2003/03/19 09:09:55 dueffert 00591 * no message 00592 * 00593 * Revision 1.35 2003/03/15 13:25:49 juengel 00594 * Added descriptions for several debug drawings and debug keys. 00595 * 00596 * Revision 1.34 2003/03/12 13:46:04 dasmuli 00597 * PlayersPerceptor added to cognition, modules.cfg, DebugKey-table etc. 00598 * 00599 * Revision 1.33 2003/03/10 14:06:35 juengel 00600 * Added ObstaclesLocator 00601 * 00602 * Revision 1.32 2003/03/07 19:05:13 juengel 00603 * Added sendExecutedMotionRequest 00604 * 00605 * Revision 1.31 2003/03/07 15:35:59 wachter 00606 * Added debug-drawings for SensorFusionBall and PlayerLocator. 00607 * 00608 * Revision 1.30 2003/03/05 14:07:10 roefer 00609 * LinesPerceptor2 is now LinesImageProcessor 00610 * 00611 * Revision 1.29 2003/03/05 10:35:35 jhoffman 00612 * added debugdrawing 00613 * 00614 * Revision 1.28 2003/03/04 14:52:33 juengel 00615 * Added sendParametersFromGridImageProcessor2 00616 * 00617 * Revision 1.27 2003/02/27 12:56:35 juengel 00618 * Added some drawings. 00619 * 00620 * Revision 1.26 2003/02/19 15:01:23 roefer 00621 * LinesPerceptor2 added 00622 * 00623 * Revision 1.25 2003/02/18 13:24:37 wachter 00624 * added new TeamMessageCollection and TeamMessage 00625 * 00626 * Revision 1.24 2003/02/16 08:29:40 roefer 00627 * sendOdometryData added 00628 * 00629 * Revision 1.23 2003/02/11 23:12:50 roefer 00630 * useConstantBodyPose debug key added 00631 * 00632 * Revision 1.22 2003/02/08 18:40:06 juengel 00633 * added imageProcessorDrawing 00634 * 00635 * Revision 1.21 2003/02/06 17:04:43 goehring 00636 * Added BarcodeReaderTest Key 00637 * 00638 * Revision 1.20 2003/01/15 13:47:29 roefer 00639 * Progress in LinesSelfLocator, new debug drawing 00640 * 00641 * Revision 1.19 2003/01/13 18:26:04 juengel 00642 * Added LineFollowerField drawing 00643 * 00644 * Revision 1.18 2003/01/08 18:46:52 loetzsch 00645 * added key sendXabsl2Messages 00646 * 00647 * Revision 1.17 2002/11/28 20:42:47 risler 00648 * added walking drawing 00649 * 00650 * Revision 1.16 2002/11/26 19:22:18 juengel 00651 * added stopwatchID for SensorBehaviorControl 00652 * 00653 * Revision 1.15 2002/11/20 15:46:27 juengel 00654 * PathPlanner added. 00655 * 00656 * Revision 1.14 2002/11/19 17:12:39 juengel 00657 * Line Follower added. 00658 * 00659 * Revision 1.13 2002/11/19 15:43:03 dueffert 00660 * doxygen comments corrected 00661 * 00662 * Revision 1.12 2002/11/18 19:24:16 juengel 00663 * Line Follower added. 00664 * 00665 * Revision 1.11 2002/11/18 17:30:31 loetzsch 00666 * Sound requests generated from BehaviorControl are now automatically sent 00667 * to RobotControl and played there. 00668 * 00669 * Revision 1.10 2002/11/18 10:33:30 juengel 00670 * renamed drawing keys 00671 * 00672 * Revision 1.9 2002/10/11 13:54:44 roefer 00673 * JPEGImage added 00674 * 00675 * Revision 1.8 2002/10/10 13:30:14 jhoffman 00676 * added ISL related stuff 00677 * 00678 * Revision 1.7 2002/10/10 13:09:50 loetzsch 00679 * First experiments with the PSD Sensor 00680 * - SensorDataProcessor now calculates PSDPercept 00681 * - Added the PerceptBehaviorControl solution PSDTest 00682 * - Added the RadarViewer3D to RobotControl, which can display the Points3D structure 00683 * 00684 * Revision 1.6 2002/10/02 15:50:55 loetzsch 00685 * added the debug key sendPerceptBehaviorControlTime 00686 * 00687 * Revision 1.5 2002/10/01 11:14:34 loetzsch 00688 * Redesigned DebugKey and DebugKeyTable 00689 * 00690 * Revision 1.4 2002/09/29 18:03:29 loetzsch 00691 * renamed calculate... to activateDebugKeys 00692 * 00693 * Revision 1.3 2002/09/29 12:32:37 juengel 00694 * Changed semantics of "debug key is active". 00695 * If a debug key is active changes only before the execution of a process. 00696 * 00697 * Revision 1.2 2002/09/18 16:35:13 loetzsch 00698 * made GT2003 compilable, 00699 * rechanged message ids 00700 * 00701 * Revision 1.1 2002/09/10 15:53:58 cvsadm 00702 * Created new project GT2003 (M.L.) 00703 * - Cleaned up the /Src/DataTypes directory 00704 * - Removed challenge related source code 00705 * - Removed processing of incoming audio data 00706 * - Renamed AcousticMessage to SoundRequest 00707 * 00708 * Revision 1.16 2002/09/07 13:36:57 loetzsch 00709 * unified the vision modules into one module "ImageProcessor" 00710 * - FloodFillRLEImageProcessor, BallPerceptor, LandmarksPerceptor 00711 * and PlayersPerceptor were are combined to the new solution 00712 * "BlobImageProcessor" 00713 * - The GridImageProcessor and the SubPixelGradientCalculator became 00714 * a solution of "ImageProcessor" 00715 * 00716 * Revision 1.15 2002/08/21 11:50:44 cesarz 00717 * GT2001PlayersPerceptor, BerlinSelfLocator, GT2001WalkingEngine, 00718 * DoWalkingEngine, FuzzyBehaviorControl, BremenGOBehaviorControl, 00719 * FuzzyBehaviortesterdlgbar and Behaviortesterdlgbar removed. 00720 * 00721 * Revision 1.14 2002/08/04 19:42:10 roefer 00722 * SimGT2002 receives player config 00723 * 00724 * Revision 1.13 2002/07/23 13:48:28 loetzsch 00725 * - new streaming classes 00726 * - removed many #include statements 00727 * - exchanged StaticQueue by MessageQueue 00728 * - new debug message handling 00729 * - general clean up 00730 * 00731 * Revision 1.12 2002/06/12 17:57:20 juengel 00732 * sendImageFromPatternPerceptor added. 00733 * 00734 * Revision 1.11 2002/06/08 11:44:00 mkunz 00735 * Special Percept on Field 00736 * 00737 * Revision 1.10 2002/06/04 00:11:52 loetzsch 00738 * added == and != operator 00739 * 00740 * Revision 1.9 2002/06/01 10:12:20 juengel 00741 * DebugKey sendCrosshairsDrawing added. 00742 * 00743 * Revision 1.8 2002/05/24 23:01:04 mkunz 00744 * "sendBarDrawing"-Key corected 00745 * 00746 * Revision 1.7 2002/05/17 11:59:03 brunn 00747 * fixed merge error 00748 * 00749 * Revision 1.6 2002/05/17 11:51:48 brunn 00750 * first experimental version of the barPerceptor 00751 * 00752 * Revision 1.5 2002/05/17 11:44:50 dueffert 00753 * missing enum added 00754 * 00755 * Revision 1.4 2002/05/16 08:33:59 juengel 00756 * Added DebugDrawing "pattern" 00757 * 00758 * Revision 1.3 2002/05/14 21:01:08 hebbel 00759 * added id for SoundInProcessor 00760 * 00761 * Revision 1.2 2002/05/10 17:30:03 juengel 00762 * Added SpecialVision and SpecialPercept. 00763 * 00764 * Revision 1.27 2002/05/05 22:17:06 loetzsch 00765 * GameControlData can now be sent from the Game toolbar to BehaviorControl 00766 * 00767 * Revision 1.26 2002/05/05 22:12:42 loetzsch 00768 * GameControlData can now be sent from the Game toolbar to BehaviorControl 00769 * 00770 * Revision 1.25 2002/05/03 17:15:17 giese 00771 * StopTimeOnRequest for SoundOutControl added 00772 * 00773 * Revision 1.24 2002/04/23 14:16:47 jhoffman 00774 * added gradient image processor 00775 * 00776 * Revision 1.1.1.1 2002/04/10 11:03:22 juengel 00777 * no message 00778 * 00779 * Revision 1.23 2002/04/08 19:53:14 juengel 00780 * Drawing of percept collections in images added. 00781 * 00782 * Revision 1.22 2002/04/08 15:58:51 fischer 00783 * Added functionality to Fuzzy Behavior Control Tester 00784 * 00785 * Revision 1.21 2002/04/04 18:43:59 juengel 00786 * FlagSpecialist improved. 00787 * 00788 * Revision 1.20 2002/04/02 15:05:39 loetzsch 00789 * XabslDlgBar can now test skills 00790 * 00791 * Revision 1.19 2002/04/02 10:30:34 juengel 00792 * GridImageProcessor enhanced. 00793 * 00794 * Revision 1.18 2002/03/24 18:15:01 loetzsch 00795 * continued change to blocking sensor data receivers 00796 * 00797 * Revision 1.17 2002/03/24 17:47:02 juengel 00798 * LinesPercept defined and LinesPerceptor added. 00799 * 00800 * Revision 1.16 2002/02/25 15:07:45 loetzsch 00801 * neue keys 00802 * 00803 * Revision 1.15 2002/02/24 10:02:21 juengel 00804 * TimeDiagramDlgBar completed. 00805 * 00806 * Revision 1.14 2002/02/22 17:17:33 loetzsch 00807 * DebugKey "SendAllStopWatches" removed 00808 * 00809 * Revision 1.13 2002/02/21 14:21:50 loetzsch 00810 * Debug Keys for stop watch added 00811 * 00812 * Revision 1.12 2002/02/18 15:36:16 loetzsch 00813 * added a debug key for monte carlo drawings 00814 * 00815 * Revision 1.11 2002/02/05 03:39:23 loetzsch 00816 * added ids for sending world states and percept collections 00817 * 00818 * Revision 1.10 2002/01/28 14:01:56 loetzsch 00819 * useless DebugKeys removed 00820 * 00821 * Revision 1.9 2002/01/23 12:36:16 juengel 00822 * DebugDrawing Makros eingefügt. 00823 * 00824 * Revision 1.8 2002/01/23 07:50:03 loetzsch 00825 * removed workaround in the >> streaming operator 00826 * 00827 * Revision 1.7 2002/01/22 14:55:15 juengel 00828 * ImageToPerceptCollection eingeführt 00829 * 00830 * Revision 1.6 2002/01/20 23:34:27 loetzsch 00831 * Sending images and sensor data to processes running in RobotControl now possible 00832 * 00833 * Revision 1.5 2002/01/19 08:07:29 juengel 00834 * stopwatch weiterentwickelt 00835 * 00836 * Revision 1.4 2001/12/20 17:13:42 loetzsch 00837 * streaming operators implemented, simplified 00838 * 00839 * Revision 1.3 2001/12/13 15:03:02 loetzsch 00840 * DebugKeyToolBar fertig 00841 * 00842 * Revision 1.2 2001/12/12 18:55:23 loetzsch 00843 * Representations/DebugKeyTable.h entfernt 00844 * 00845 * Revision 1.1 2001/12/12 15:21:09 juengel 00846 * CDebugKeyToolBar in eigenes .cpp und .h File verlagert. 00847 * 00848 * Revision 1.5 2001/12/10 17:47:05 risler 00849 * change log added 00850 * 00851 */