From: Michal Sojka Date: Fri, 28 Mar 2014 00:09:54 +0000 (+0100) Subject: Merge branch 'maint-demo' X-Git-Url: http://rtime.felk.cvut.cz/gitweb/eurobot/public.git/commitdiff_plain/HEAD Merge branch 'maint-demo' Conflicts: src/robomon/RobomonAtlantis.h --- fcc6c171826862e12989410bcd85496255481015 diff --cc src/robomon/RobomonAtlantis.cpp index 63270a71,6679b8ed..9a2a3098 --- a/src/robomon/RobomonAtlantis.cpp +++ b/src/robomon/RobomonAtlantis.cpp @@@ -366,20 -396,11 +372,23 @@@ void RobomonAtlantis::createActions( playgroundScene, SLOT(showObstacle(int))); connect(playgroundScene, SIGNAL(obstacleChanged(QPointF)), this, SLOT(changeObstacle(QPointF))); + + connect(motorSimulationCheckBox, SIGNAL(stateChanged(int)), + this, SLOT(setMotorSimulation(int))); } +void RobomonAtlantis::changeStrategy_1() +{ + orte.robot_switches.strategy = true; + ORTEPublicationSend(orte.publication_robot_switches); +} + +void RobomonAtlantis::changeStrategy_0() +{ + orte.robot_switches.strategy = false; + ORTEPublicationSend(orte.publication_robot_switches); +} + void RobomonAtlantis::setVoltage33(int state) { if (state) diff --cc src/robomon/RobomonAtlantis.h index f62fe99c,f7983628..f7239bed --- a/src/robomon/RobomonAtlantis.h +++ b/src/robomon/RobomonAtlantis.h @@@ -38,8 -39,40 +40,41 @@@ class QDial class QSlider; class QProgressBar; class QFont; +class QImage; + class MotorSimulation : QObject { + Q_OBJECT + + QTimer timer; + qint64 last_time; + struct robottype_orte_data &orte; + public: + MotorSimulation(struct robottype_orte_data &orte) : QObject(), timer(this), orte(orte) {} + void start() + { + robottype_publisher_motion_irc_create(&orte, 0, 0); + connect(&timer, SIGNAL(timeout()), this, SLOT(updateIRC())); + timer.start(50); + } + + void stop() + { + robottype_publisher_motion_irc_destroy(&orte); + timer.stop(); + disconnect(&timer, SIGNAL(timeout()), this, SLOT(updateIRC())); + } + private slots: + void updateIRC() + { + qint64 now = QDateTime::currentMSecsSinceEpoch(); + orte.motion_irc.left += orte.motion_speed.left * (now - last_time); // TODO: Find constant for speed to irc conversion + orte.motion_irc.right+= orte.motion_speed.right * (now - last_time); + ORTEPublicationSend(orte.publication_motion_irc); + last_time = now; + } + }; + + class RobomonAtlantis : public QWidget { Q_OBJECT @@@ -81,11 -114,10 +116,12 @@@ private slots void changeObstacle(QPointF position); void sendStart(int plug); void setTeamColor(int plug); + void changeStrategy_1(); + void changeStrategy_0(); + void setMotorSimulation(int state); /************************************************************ - * ORTE + * ORTE ************************************************************/ void motionStatusReceived(); void actualPositionReceived(); @@@ -201,8 -229,10 +238,10 @@@ private QTimer *obstacleSimulationTimer; Point simulatedObstacle; + class MotorSimulation motorSimulation; + /************************************************************ - * ORTE + * ORTE ************************************************************/ void createOrte();