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 -------");