-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
59 lines (30 loc) · 934 Bytes
/
server.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
var express = require("express");
var app = express();
var port = 5557
var server = app.listen(port,listening);
app.use(express.static('public'));
const ws281x = require('rpi-ws281x-native');
const channel = ws281x(7, { stripType: 'ws2812' });
const colorArray = channel.array;
var socket = require("socket.io");
var io = socket(server)
io.sockets.on('connection',newConnection);
function newConnection(socket){
console.log("socket established :)" );
socket.on('values',leds_change);
function leds_change(data){
var val = rgbToHex(data.r,data.g,data.b);
console.log(val);
for (let i = 0; i < channel.count; i++) {
colorArray[i] = val;
}
ws281x.render();
console.log(data);
}
}
function rgbToHex(r, g, b) { let hex = '0x';
hex += ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
return hex; }
function listening(){
console.log("listening on port "+port+"...")
}