00001 #ifndef ROBOMON_H
00002 #define ROBOMON_H
00003
00004 #include <QWidget>
00005 #include <QTimer>
00006 #include <QMouseEvent>
00007 #include "ui_robomon.h"
00008 #include "robot.h"
00009 #include "mapthread.h"
00010 #include <queue>
00011 #include <cstdlib>
00012 #include <sys/shm.h>
00013 #include <sys/stat.h>
00014
00015
00016 #include <sys/socket.h>
00017 #include <netinet/in.h>
00018 #include <arpa/inet.h>
00019 #include <stdio.h>
00020 #include <unistd.h>
00021
00022 #include <RobotType.h>
00023 #include <trgen.h>
00024 #include "playgroundscene.h"
00025
00026 #include <orte.h>
00027
00028 #include <map.h>
00029
00030 #define RES_FACTOR 5
00031 #define RES_X 300 / RES_FACTOR
00032 #define RES_Y 210 / RES_FACTOR
00033
00034 #define PG_X 600
00035 #define PG_Y 420
00036
00037 #define TOP_LEFT QPointF(10,0)
00038 #define TOP_LEFT_X 10
00039 #define TOP_LEFT_Y 0
00040 #define TOP_MIDDLE QPointF(310,0)
00041 #define TOP_RIGHT QPointF(610,0)
00042 #define BOTTOM_LEFT QPointF(10,420)
00043 #define BOTTOM_MIDDLE QPointF(310,420)
00044 #define BOTTOM_RIGHT QPointF(610,420)
00045 #define BIN_LEFT_BOTTLE_START QPointF(5,320)
00046 #define BIN_LEFT_BOTTLE_END QPointF(5,420)
00047 #define BIN_LEFT_CAN_START QPointF(10,425)
00048 #define BIN_LEFT_CAN_END QPointF(110,425)
00049 #define BIN_RIGHT_BOTTLE_START QPointF(615,320)
00050 #define BIN_RIGHT_BOTTLE_END QPointF(615,420)
00051 #define BIN_RIGHT_CAN_START QPointF(510,425)
00052 #define BIN_RIGHT_CAN_END QPointF(610,425)
00053
00054 #define FRONT_DOOR 1
00055 #define INNER_DOOR 4
00056 #define BACK_DOOR 0
00057 #define FRONT_LAUNCH 5
00058 #define TRANSPORTER_FRONT 2
00059 #define TRANSPORTER_INNER 3
00060
00061 #define FRONT_DOOR_UP 20
00062 #define FRONT_DOOR_DOWN 251
00063 #define INNER_DOOR_UP 255
00064 #define INNER_DOOR_DOWN 1
00065 #define BACK_DOOR_UP 180
00066 #define BACK_DOOR_DOWN 1
00067 #define TRANSPORTER_OFF 127
00068 #define FRONT_LAUNCH_LOCK 195
00069 #define FRONT_LAUNCH_OPEN 66
00070
00071 #define MOTOR_LIMIT 10000.0
00072
00073 #define EVENT_POS (QEvent::Type)(QEvent::User)
00074 #define EVENT_IR (QEvent::Type)(QEvent::User+1)
00075 #define EVENT_SHARP (QEvent::Type)(QEvent::User+2)
00076 #define EVENT_DI (QEvent::Type)(QEvent::User+3)
00077 #define EVENT_MAP (QEvent::Type)(QEvent::User+4)
00078
00080
00084 class robomon : public QWidget, private Ui::Form
00085 {
00086 Q_OBJECT
00087
00088 public:
00090
00093 int shared_segment_size;
00094
00096
00100 int segment_id;
00101
00103
00106 PlaygroundScene* scene;
00107
00109
00112 robot *rob;
00113
00115
00118 sharpShorts sharpyLahve;
00119
00121
00124 sharpLongs sharpySouper;
00125
00127
00130 QTimer *timer;
00131
00133
00136 _Map *map;
00137
00139
00144 int size;
00145
00147
00150 robomon(QWidget* parent = 0, Qt::WFlags fl = 0);
00151
00153
00156 ~robomon();
00157
00159
00163 bool event(QEvent *evet);
00164
00166
00170 void setDI(stateDigIn);
00171
00173
00177 void setSharp();
00178
00179
00180 public slots:
00181
00182 void moveServo(int value);
00183 void frontDoor(int value);
00184 void innerDoor(int value);
00185 void backDoor(int value);
00186 void launchFront(int value);
00187
00188 void stopDopravnikFront();
00189 void stopDopravnikBack();
00190 void setDO(int x);
00191 void setIR(unsigned short int);
00192 void setMotor(int);
00193 void setSimul(int);
00194 void setSharpVal(int);
00195 void stopMotors(void);
00196 void changeObstacle(QPointF pos);
00197
00199
00202 void showMap(void);
00203 void paintMap(void);
00204
00205 protected:
00206
00207
00208 protected slots:
00209
00210 void obstackleSimulation(int state);
00211 void simulateObstackles();
00212
00213 protected:
00214 QTimer * obstSimTimer;
00215 Point simulatedObstacle;
00216 };
00217
00218 #endif
00219