00001 #ifndef EVENT_SLOT_H 00002 #define EVENT_SLOT_H 00003 #include "robotican_gui.h" 00004 00005 #include <sys/wait.h> 00006 #include <unistd.h> 00007 #include <cstdlib> 00008 #include <iostream> 00009 #include <cstdio> 00010 #include <memory> 00011 #include <ros/ros.h> 00012 #include <QThread> 00013 #include <QFuture> 00014 #include <boost/thread.hpp> 00015 #include <boost/chrono.hpp> 00016 #include <QtConcurrentRun> 00017 #include "led.h" 00018 #include "arm_move.h" 00019 #include <QMessageBox> 00020 00021 #define TIMEOUT 1.0 00022 00023 class EventSlot : public QThread { 00024 00025 enum Status {CANCELED, WORKING, SUCCESS, FAIL}; 00026 00027 Q_OBJECT 00028 public: 00029 EventSlot(); 00030 ~EventSlot(); 00031 void initiate(Ui::MainWindow &guiHandle, QApplication &app); 00032 void moveArm(); 00033 00034 public Q_SLOTS: 00035 void setBatPwr(int val); 00036 void setLed(long int val, Led* led); 00037 void setMoveState(Status state); 00038 void closeApp(); 00039 void moveArmToDrive(); 00040 void moveArmToPreset(); 00041 00042 private: 00043 Ui::MainWindow * _guiHandle; 00044 QApplication * _app; 00045 ros::NodeHandle _nHandle; 00046 ArmMove* _arm; 00047 std::string _targetName; 00048 std::string _userMsg; 00049 00050 double calcTimeOut(long int startTime, long int endTime); 00051 bool execMove(); 00052 }; 00053 00054 00055 #endif //EVENT_SLOT_H