arnaucube
arnaucube/raspberryGPIOhtmlserverPublic Self-hosted repository
raspberryGPIOhtmlserver/server.js
server.jsRaw
 1/*
 2https://www.npmjs.com/package/pi-gpio
 3*/
 4
 5//var gpio = require("pi-gpio");
 6
 7
 8var express=require('express'),
 9app=express(),
10server=require('http').createServer(app),
11io = require('socket.io',{transports: ['websocket']}).listen(server);
12server.listen(3000);
13var shortId = require('shortid');
14
15//ip
16var os = require( 'os' );
17var networkInterfaces = os.networkInterfaces( );
18
19//own modules
20var IsPinAlreadyON = require('./IsPinAlreadyON.js');
21
22//poder accedir al server i interactuar
23app.use(express.static(__dirname + '/clientGPIO'));
24
25
26
27var numconnections=0;
28var listPinsON=[];
29io.on('connection', function (socket) {
30	socket.on('newconnection', function (data,callback){
31		numconnections++;
32		console.log("numconnections: " + numconnections);
33		io.sockets.emit('numconnections',{numconnections}); //aqí envia la data
34	});
35	socket.on('pinON', function (data,callback){
36		console.log(data + "--> ON");
37
38		//comprova si el pin està already encès
39		if(IsPinAlreadyON.isit(listPinsON, data)==false)
40		{
41			listPinsON.push(data);
42			console.log("listPinsON: " + listPinsON);
43	        /*gpio.open(16, "output", function(err) {		// Open pin 16 for output
44	        	gpio.write(16, 1, function() {			// Set pin 16 high (1)
45	        		gpio.close(16);						// Close pin 16
46	        	});
47	        });*/
48	        //io.sockets.emit('pin16_1',{data}); //aqí envia la data
49					io.sockets.emit('listPinsON',{listPinsON});
50		}else{
51			//pin already encès
52			io.sockets.emit("alreadyON", data);
53		}
54	});
55
56	socket.on('pinOFF', function (data,callback){
57		console.log(data + "--> OFF");
58		for(var i=0; i<listPinsON.length; i++)
59		{
60			if(listPinsON[i]==data)
61			{
62				listPinsON.splice(i, 1);
63			}
64		}
65
66		console.log("listPinsON: " + listPinsON);
67				/*gpio.open(16, "output", function(err) {		// Open pin 16 for output
68					gpio.write(16, 1, function() {			// Set pin 16 high (1)
69						gpio.close(16);						// Close pin 16
70					});
71				});*/
72			io.sockets.emit('listPinsON',{listPinsON}); //aqí envia la data
73	});
74
75
76});
77
78
79
80console.log("------- server is running -------");