]> rtime.felk.cvut.cz Git - eurobot/public.git/blob - src/robomon/robomon_orte.h
robomon: Implement motor simulation
[eurobot/public.git] / src / robomon / robomon_orte.h
1 /*
2  * robomon_orte.h                       07/10/31
3  *
4  * Several functions to manage the ORTE communication.
5  *
6  * Copyright: (c) 2007 CTU Dragons
7  *            CTU FEE - Department of Control Engineering
8  * Authors: Martin Zidek, Michal Sojka, Tran Duy Khanh
9  * License: GNU GPL v.2
10  */
11
12 #ifndef ROBOMON_ORTE_H
13 #define ROBOMON_ORTE_H
14
15 #include <orte.h>
16 #include <robottype.h>
17 #include <robottype.h>
18 #include <robottype.h>
19
20 /* Helper macro to generate user QEvent types */
21 #define QEVENT(event) (QEvent::Type)(QEvent::User+(event))
22
23 enum robomon_qev {
24         QEV_MOTION_STATUS = 0,
25         QEV_MOTION_IRC,
26         QEV_REFERENCE_POSITION,
27         QEV_ESTIMATED_POSITION_ODO,
28         QEV_ESTIMATED_POSITION_INDEP_ODO,
29         QEV_ESTIMATED_POSITION_BEST,
30         QEV_SHARP_LONGS,
31         QEV_SHARP_SHORTS,
32         QEV_SHARPS,
33         QEV_POWER_VOLTAGE,
34         QEV_FSM_MAIN,
35         QEV_FSM_ACT,
36         QEV_FSM_MOTION,
37         QEV_HOKUYO_SCAN,
38         QEV_VIDLE_CMD,
39 };
40
41 class OrteCallbackInfo {
42 public:
43         QObject *receiver;
44         enum robomon_qev qev;
45         
46 OrteCallbackInfo(QObject *areceiver, enum robomon_qev aqev) :
47                 receiver(areceiver), qev(aqev) {};
48 };
49
50
51 #define FRONT_DOOR              1
52 #define INNER_DOOR              4
53 #define BACK_DOOR               0
54 #define FRONT_LAUNCH            5
55 #define TRANSPORTER_FRONT       2
56 #define TRANSPORTER_INNER       3
57
58 #define FRONT_DOOR_UP           20
59 #define FRONT_DOOR_DOWN         251
60 #define INNER_DOOR_UP           255
61 #define INNER_DOOR_DOWN         1
62 #define BACK_DOOR_UP            180
63 #define BACK_DOOR_DOWN          1
64 #define TOP_DOOR_UP             255
65 #define TOP_DOOR_DOWN           1
66 #define TRANSPORTER_OFF         127
67 #define FRONT_LAUNCH_LOCK       195
68 #define FRONT_LAUNCH_OPEN       66
69
70 #define MOTOR_LIMIT             10000.0
71
72 enum {
73         BOTTLE = 0,
74         CAN,
75         UNKNOWN
76 };
77
78 /* callback functions */
79 /* publishers */
80 void dummy_publisher_callback(const ORTESendInfo *info,
81                         void *vinstance, void *arg);
82 void sendMotorCallBack(const ORTESendInfo *info,
83                         void *vinstance, void *arg);
84 void sendSharpLongsCallBack(const ORTESendInfo *info, 
85                         void *vinstance, void *arg);
86 void sendSharpShortsCallBack(const ORTESendInfo *info, 
87                         void *vinstance, void *arg);
88 void sendPowerControlCallBack(const ORTESendInfo *info,
89                         void *vinstance, void *arg);
90 /* subscribers */
91 void receiveMotionStatusCallBack(const ORTERecvInfo *info,
92                         void *vinstance, void *arg);
93 void receiveActualPositionCallBack(const ORTERecvInfo *info,
94                         void *vinstance, void *arg);
95 void receiveEstimatedPositionCallBack(const ORTERecvInfo *info,
96                         void *vinstance, void *arg);
97 void receiveSharpLongsCallBack(const ORTERecvInfo *info,
98                         void *vinstance, void *arg);
99 void receiveSharpShortsCallBack(const ORTERecvInfo *info,
100                         void *vinstance, void *arg);
101 void receiveSharpsCallBack(const ORTERecvInfo *info,
102                         void *vinstance, void *arg);
103 void receiveIRCallBack(const ORTERecvInfo *info,
104                         void *vinstance, void *arg);
105 void receiveDICallBack(const ORTERecvInfo *info,
106                         void *vinstance, void *arg);
107 void receiveLaserCallBack(const ORTERecvInfo *info,
108                         void *vinstance, void *arg);
109 void receiveAccelerometerCallBack(const ORTERecvInfo *info,
110                         void *vinstance, void *arg);
111 void receiveAccumulatorCallBack(const ORTERecvInfo *info, 
112                         void *vinstance, void *arg);
113 void receivePowerVoltageCallBack(const ORTERecvInfo *info, 
114                         void *vinstance, void *arg);
115 void receiveActuatorStatusCallBack(const ORTERecvInfo *info,
116                                    void *vinstance, void *arg);
117 void rcv_motion_irc_cb(const ORTERecvInfo *info, 
118                        void *vinstance, void *arg);
119 void rcv_fsm_main_cb(const ORTERecvInfo *info, 
120                      void *vinstance, void *arg);
121 void rcv_fsm_act_cb(const ORTERecvInfo *info, 
122                      void *vinstance, void *arg);
123 void rcv_fsm_motion_cb(const ORTERecvInfo *info, 
124                      void *vinstance, void *arg);
125 void generic_rcv_cb(const ORTERecvInfo *info, void *vinstance, void *arg);
126
127 #endif /* ROBOMON_ORTE_H */