This repository has been archived by the owner on Apr 16, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathhandler.js
128 lines (111 loc) · 3.9 KB
/
handler.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
// Deps
const url = require('url');
//Vars
var dataToTrack_keys = ["battery", "x", "y", "z", "speed"];
function respondToPoll(response, drone) {
var noDataReceived = false;
var resp = "";
var i;
for (i = 0; i < dataToTrack_keys.length; i++) {
resp += dataToTrack_keys[i] + " ";
resp += (i + 10);
resp += "\n";
}
response.end(resp);
}
// The Web Handler Function
module.exports = (client) => {
return (request, response) => {
var pathname = url.parse(request.url).pathname;
var url_params = request.url.split('/');
if (url_params.length < 2)
return;
var command = url_params[1];
switch (command) {
case 'poll':
respondToPoll(response);
break;
case 'takeoff':
console.log('Scratch Command: Takeoff');
drone.takeoff();
break;
case 'land':
console.log('Scratch Command: Land');
drone.land((err) => {
if (err) throw err;
});
break;
case 'up':
dis = (url_params.length >= 3) ? url_params[2] : 0;
console.log('Scratch Command: Up ' + dis);
drone.up(dis, (err) => {
if (err) throw err;
});
break;
case 'down':
dis = (url_params.length >= 3) ? url_params[2] : 0;
console.log('Scratch Command: Down ' + dis);
drone.down(dis, (err) => {
if (err) throw err;
});
break;
case 'left':
dis = (url_params.length >= 3) ? url_params[2] : 0;
console.log('Scratch Command: Left ' + dis);
drone.left(dis, (err) => {
if (err) throw err;
});
break;
case 'right':
dis = (url_params.length >= 3) ? url_params[2] : 0;
console.log('Scratch Command: Right ' + dis);
drone.right(dis, (err) => {
if (err) throw err;
});
break;
case 'forward':
dis = (url_params.length >= 3) ? url_params[2] : 0;
console.log('Scratch Command: Foward ' + dis);
drone.forward(dis, (err) => {
if (err) throw err;
});
break;
case 'back':
dis = (url_params.length >= 3) ? url_params[2] : 0;
console.log('Scratch Command: Back ' + dis);
drone.back(dis, (err) => {
if (err) throw err;
});
break;
case 'cw':
dis = (url_params.length >= 3) ? url_params[2] : 0;
console.log('Scratch Command: CW ' + dis);
drone.cw(dis, (err) => {
if (err) throw err;
});
break;
case 'flip':
dis = (url_params.length >= 3) ? url_params[2] : 0;
console.log('Scratch Command: Flip ' + dis);
drone.flip(dis, (err) => {
if (err) throw err;
});
break;
case 'ccw':
dis = (url_params.length >= 3) ? url_params[2] : 0;
console.log('Scratch Command: CCW ' + dis);
drone.ccw(dis, (err) => {
if (err) throw err;
});
break;
case 'setspeed':
dis = (url_params.length >= 3) ? url_params[2] : 0;
console.log('Scratch Command: Set Speed ' + dis);
drone.setSpeed(dis, (err) => {
if (err) throw err;
});
break;
}
response.end('Hello Tello.\n');
}
}