00001 #ifndef SIGEL_GP_SIG_GPPVMDATA_H 00002 #define SIGEL_GP_SIG_GPPVMDATA_H 00003 00004 #include "SIGEL_Robot/SIG_Robot.h" 00005 #include "SIGEL_Environment/SIG_Environment.h" 00006 #include "SIGEL_Simulation/SIG_SimulationParameters.h" 00007 #include "SIGEL_Program/SIG_Program.h" 00008 00009 #include <qstring.h> 00010 00011 namespace SIGEL_GP 00012 { 00013 00024 class SIG_GPPVMData { 00025 00026 00030 private: 00031 SIGEL_Robot::SIG_Robot& robot; 00032 00036 private: 00037 SIGEL_Environment::SIG_Environment& environment; 00038 00042 private: 00043 SIGEL_Simulation::SIG_SimulationParameters& simulationParameter; 00044 00049 private: 00050 QString fitnessName; 00051 00056 private: 00057 bool visualize; 00058 00059 00060 00066 public: 00067 SIG_GPPVMData(SIGEL_Robot::SIG_Robot& robot, SIGEL_Environment::SIG_Environment& environment, SIGEL_Simulation::SIG_SimulationParameters& simulationParameter, QString fitnessName, bool visualize); 00068 00071 public: 00072 ~SIG_GPPVMData(); 00073 00082 public: 00083 void sendQStringToPVM(QString str, int taskId, int messageId); 00084 00090 public: 00091 QString getQStringFromPVM(int taskId, int messageId); 00092 00093 public: 00094 QString cutAfterFiveHashes(QTextStream& source); 00095 00096 /* 00097 * With this operation, the Sigel_slave loads pvmdata from a received textstream and put it to the attributes of the 00098 * SIG_GPPVMData-object. This has to happen in the construction of the PVMData-object. 00099 * @param file 00100 * The received textstream with the data for the simulation run. 00101 * @param program 00102 * The robot control program, which has to be tested for its new fitnessvalue. 00103 * 00104 */ 00105 public: 00106 void SIGEL_GP::SIG_GPPVMData::loadPVMDataTransfer(QTextStream & file, 00107 SIGEL_Program::SIG_Program & program); 00108 00118 public: 00119 void SIGEL_GP::SIG_GPPVMData::savePVMDataTransfer(QTextStream & file, 00120 SIGEL_Program::SIG_Program const &program); 00121 00127 public: 00128 void SIGEL_GP::SIG_GPPVMData::setVisualize(bool visu); 00129 00135 public: 00136 bool SIGEL_GP::SIG_GPPVMData::getVisualize(); 00137 00138 public: 00139 QString getFitnessFunctionName(); 00140 00141 public: 00142 void setFitnessFunctionName( QString name ); 00143 00144 }; 00145 } 00146 00147 #endif // SIGEL_GP_SIG_GPPVMDATA_H 00148