-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcontroller.js
100 lines (88 loc) · 2.57 KB
/
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
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
const myqtt = require("mqtt");
try {
const client = myqtt.connect("mqtt://soilder.cloudmqtt.com");
let connected = false;
let state = "";
let motion_moves = ["left", "right", "up", "down", "stop"];
let errors = {};
// init the connection
client.on("connect", () => {
client.subscribe("bot/connected", 'true');
client.subscribe("bot/state");
client.publish('topic/test', 'connected')
});
client.on("message", (topic, message) => {
// assume message and topic mboth to be utf-8
switch (topic) {
case "connected":
let status = message;
return botConnected(status);
case motion_moves[0]:
return botLeftMove(message);
case motion_moves[1]:
return botRighttMove(message);
case motion_moves[2]:
return botUpMove(message);
case motion_moves[3]:
return botDownMove(message);
case motion_moves[4]:
return botStop(message);
}
});
const botStop = message => {
if (connected) {
state = "stop";
if (motion_moves.includes(message)) {
client.publish("bot/stop", 'true');
}
}
};
// first initiater of the step in process
const botConnected = message => {
console.log(message);
connected = message ? 'true' : false;
};
const botLeftMove = message => {
console.log(message);
if (connected == 'true') {
state = "left";
// publish now
if (message) {
client.publish("bot/left", 'true');
}
}
};
const botRighttMove = message => {
console.log(message);
if (connected == 'true') {
state = "right";
// publish now
if (message) {
client.publish("bot/right", 'true');
}
}
};
const botDownMove = message => {
console.log(message);
if (connected == 'true') {
state = "down";
// publish now
if (message) {
client.publish("bot/down", 'true');
}
}
};
const botUpMove = message => {
console.log(message);
if (connected == 'true') {
state = "Up";
// publish now
if (message) {
client.publish("bot/left", 'true');
}
}
};
console.log(client);
} catch (err) {
console.log('error conneting');
}