00001 #ifndef SIGEL_SIMULATION_SIG_INTERPRETER_H 00002 #define SIGEL_SIMULATION_SIG_INTERPRETER_H 00003 00004 #include "SIGEL_Simulation/SIG_Interpreter.h" 00005 #include "SIGEL_Simulation/SIG_CommandInterface.h" 00006 #include "SIGEL_Simulation/SIG_SimulationQueries.h" 00007 #include "SIGEL_Simulation/SIG_Register.h" 00008 #include "SIGEL_Program/SIG_Program.h" 00009 #include "SIGEL_Robot/SIG_LanguageParameters.h" 00010 #include <qvector.h> 00011 00012 namespace SIGEL_Simulation 00013 { 00014 00031 class SIG_Interpreter 00032 { 00033 public: 00034 00045 SIG_Interpreter(SIGEL_Robot::SIG_LanguageParameters const &langParams, 00046 SIGEL_Program::SIG_Program const &robotProgram, 00047 SIG_CommandInterface &commandInterface, 00048 SIG_SimulationQueries const &simulationQueries); 00049 00067 void interprete(double timeAccountSize); 00068 00069 private: 00070 00074 SIGEL_Program::SIG_Program const &robotProgram; 00075 00080 SIGEL_Robot::SIG_LanguageParameters const &langParams; 00081 00086 SIG_CommandInterface &commandInterface; 00087 00092 SIG_SimulationQueries const &simulationQueries; 00093 00098 double remainingLastCommandTime; 00099 00103 QVector<SIG_Register> registers; 00104 00108 long programCounter; 00109 00113 bool compareFlag; 00114 }; 00115 00116 } 00117 00118 #endif // SIGEL_SIMULATION_SIG_INTERPRETER_H