]> rtime.felk.cvut.cz Git - eurobot/public.git/blob - src/robomon/robomon_orte.h
robomon: Use both LIDARs using liblidar
[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_SICK_SCAN,
38         QEV_HOKUYO_SCAN,
39         QEV_JAWS_CMD,
40 };
41
42 class OrteCallbackInfo {
43 public:
44         QObject *receiver;
45         enum robomon_qev qev;
46         
47 OrteCallbackInfo(QObject *areceiver, enum robomon_qev aqev) :
48                 receiver(areceiver), qev(aqev) {};
49 };
50
51
52 #define FRONT_DOOR              1
53 #define INNER_DOOR              4
54 #define BACK_DOOR               0
55 #define FRONT_LAUNCH            5
56 #define TRANSPORTER_FRONT       2
57 #define TRANSPORTER_INNER       3
58
59 #define FRONT_DOOR_UP           20
60 #define FRONT_DOOR_DOWN         251
61 #define INNER_DOOR_UP           255
62 #define INNER_DOOR_DOWN         1
63 #define BACK_DOOR_UP            180
64 #define BACK_DOOR_DOWN          1
65 #define TOP_DOOR_UP             255
66 #define TOP_DOOR_DOWN           1
67 #define TRANSPORTER_OFF         127
68 #define FRONT_LAUNCH_LOCK       195
69 #define FRONT_LAUNCH_OPEN       66
70
71 #define MOTOR_LIMIT             10000.0
72
73 enum {
74         BOTTLE = 0,
75         CAN,
76         UNKNOWN
77 };
78
79 /* callback functions */
80 /* publishers */
81 void dummy_publisher_callback(const ORTESendInfo *info,
82                         void *vinstance, void *arg);
83 void sendMotorCallBack(const ORTESendInfo *info,
84                         void *vinstance, void *arg);
85 void sendSharpLongsCallBack(const ORTESendInfo *info, 
86                         void *vinstance, void *arg);
87 void sendSharpShortsCallBack(const ORTESendInfo *info, 
88                         void *vinstance, void *arg);
89 void sendPowerControlCallBack(const ORTESendInfo *info,
90                         void *vinstance, void *arg);
91 /* subscribers */
92 void receiveMotionStatusCallBack(const ORTERecvInfo *info,
93                         void *vinstance, void *arg);
94 void receiveActualPositionCallBack(const ORTERecvInfo *info,
95                         void *vinstance, void *arg);
96 void receiveEstimatedPositionCallBack(const ORTERecvInfo *info,
97                         void *vinstance, void *arg);
98 void receiveSharpLongsCallBack(const ORTERecvInfo *info,
99                         void *vinstance, void *arg);
100 void receiveSharpShortsCallBack(const ORTERecvInfo *info,
101                         void *vinstance, void *arg);
102 void receiveSharpsCallBack(const ORTERecvInfo *info,
103                         void *vinstance, void *arg);
104 void receiveIRCallBack(const ORTERecvInfo *info,
105                         void *vinstance, void *arg);
106 void receiveDICallBack(const ORTERecvInfo *info,
107                         void *vinstance, void *arg);
108 void receiveLaserCallBack(const ORTERecvInfo *info,
109                         void *vinstance, void *arg);
110 void receiveAccelerometerCallBack(const ORTERecvInfo *info,
111                         void *vinstance, void *arg);
112 void receiveAccumulatorCallBack(const ORTERecvInfo *info, 
113                         void *vinstance, void *arg);
114 void receivePowerVoltageCallBack(const ORTERecvInfo *info, 
115                         void *vinstance, void *arg);
116 void receiveActuatorStatusCallBack(const ORTERecvInfo *info,
117                                    void *vinstance, void *arg);
118 void rcv_motion_irc_cb(const ORTERecvInfo *info, 
119                        void *vinstance, void *arg);
120 void rcv_fsm_main_cb(const ORTERecvInfo *info, 
121                      void *vinstance, void *arg);
122 void rcv_fsm_act_cb(const ORTERecvInfo *info, 
123                      void *vinstance, void *arg);
124 void rcv_fsm_motion_cb(const ORTERecvInfo *info, 
125                      void *vinstance, void *arg);
126 void generic_rcv_cb(const ORTERecvInfo *info, void *vinstance, void *arg);
127
128 #endif /* ROBOMON_ORTE_H */