4.3 RobotCarの操作(JavaScript)
RESTFUL
操作 |
Endpoint |
メソッド |
前進(speed=1) |
http://IP:4035/gotapi/driveController/move?serviceId=####&speed=1&angle=0 |
POST |
後進(speed=-1) |
http://IP:4035/gotapi/driveController/move?serviceId=####&speed=-1&angle=0 |
POST |
停止(speed=0) |
http://IP:4035/gotapi/driveController/move?serviceId=####&speed=0&angle=0 |
POST |
回転(angle=360) |
http://IP:4035/gotapi/driveController/move?serviceId=####&speed=1&angle=360 |
POST |
回転(angle=-360) |
http://IP:4035/gotapi/driveController/move?serviceId=####&speed=1&angle=-360 |
POST |
URLによる擬似的なRESTFUL
操作 |
Endpoint |
前進(speed=1) |
http://IP:4035/gotapi/post/driveController/move?serviceId=####&speed=1&angle=0 |
後進(speed=-1) |
http://IP:4035/gotapi/post/driveController/move?serviceId=####&speed=-1&angle=0 |
停止(speed=0) |
http://IP:4035/gotapi/post/driveController/move?serviceId=####&speed=0&angle=0 |
回転(angle=360) |
http://IP:4035/gotapi/post/driveController/move?serviceId=####&speed=1&angle=360 |
回転(angle=-360) |
http://IP:4035/gotapi/post/driveController/move?serviceId=####&speed=1&angle=-360 |
Sample
HTML/JavaScriptのサンプルは/sample/robot_sample/
フォルダに置かれています。
controller.htmlをChrome Browserにドラッグ&ドロップし、実行します。
controller.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 | <html>
<head>
<title>takePhoto</title>
<script src="../lib/dconnectsdk-2.2.0.js" type="text/javascript"></script>
<script src="controller.js" type="text/javascript"></script>
</head>
<body>
<input type="button" value="プレビューを開始" onclick="preview_stop();"/><br />
<input type="button" value="プレビューを終了" onclick="preview_start();"/><br />
<img id="image" width="500"/><br />
<input type="button" value="↑" onclick="move(1);"/><br />
<input type="button" value="■" onclick="move(0);"/><br />
<input type="button" value="↓" onclick="move(-1);"/><br />
<input type="range" min="-360" max="360" step="10" onchange="changeAngle(this.value);">
</body>
</html>
|
controller.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 | var angle = 0;
function preview_start() {
var imageElement = document.getElementById("image");
var uri = "http://" + ip + ":" + port + "/gotapi/mediastreamRecording/preview?serviceId=" + hostId;
var header = null;
var data = null;
dConnect.put(uri, header, data, function(json) {
if (json.result == 0) {
var uri = json.uri;
uri = uri.replace(/localhost/g , ip);
imageElement.src = uri;
console.log(uri);
} else {
console.log(json.result);
}
}, function(errorCode, errorMessage) {
console.log(errorMessage);
});
}
function preview_stop() {
var imageElement = document.getElementById("image");
var uri = "http://" + ip + ":" + port + "/gotapi/mediastreamRecording/preview?serviceId=" + hostId;
var header = null;
var data = null;
dConnect.delete(uri, header, data, function(json) {
console.log(json);
}, function(errorCode, errorMessage) {
console.log(errorMessage);
});
}
function changeAngle(mAngle) {
console.log(mAngle);
angle = mAngle;
}
function move(speed) {
var uri = "http://" + ip + ":" + port + "/gotapi/driveController/move?serviceId=" + mouseId;
var header = null;
var data = "speed="+speed;
data += "&angle="+angle;
dConnect.post(uri, header, data, function(json) {
console.log(json.result);
}, function(errorCode, errorMessage) {
console.log(errorMessage);
});
}
|
実際の操作
controller.htmlをブラウザで開くと,以下のような画面が開く.
このボタンなどを押すことで,ラジコンカーを実際に操作できる.以下はコントローラーの各ボタンなどの役割である.