-
Notifications
You must be signed in to change notification settings - Fork 0
/
xmas.js
84 lines (66 loc) · 1.19 KB
/
xmas.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
var net = require("net");
var client = new net.Socket();
client.connect(30000, '192.168.1.4', function() {
console.log('connected to iMatic!');
});
var PREFIX = '\xFD\x02\x20';
var POSTFIX = "\x5D";
function iMaticOn(relayId) {
var relay = String.fromCharCode(relayId);
var on = String.fromCharCode(1);
var cmd = PREFIX+relay+on+POSTFIX;
client.write(cmd, 'ascii');
}
function iMaticOff(relayId) {
var relay = String.fromCharCode(relayId);
var off = String.fromCharCode(0);
var cmd = PREFIX+relay+off+POSTFIX;
client.write(cmd, 'ascii');
}
function doSetTimeout(j)
{
setTimeout(function(){
console.log(j);
if(on)
{
iMaticOn(j);
}
else
{
iMaticOff(j);
}
},(j*100)/250
);
}
var on = true;
var speed = 1;
var iterator = 0;
function infiniteLoop()
{
setTimeout(function(){
console.log(on);
for(var j = 1; j < 3; j++)
{
doSetTimeout(j);
}
if(on)
{
on = false;
}
else
{
on = true;
}
speed = speed + .04;
if(iterator < 20)
{
infiniteLoop();
}
iterator++;
},250)
}
infiniteLoop();
// for(var i = 0; i < 50; i++)
// {
// iMaticOn(1);
// }