/*
|
|
https://www.npmjs.com/package/pi-gpio
|
|
*/
|
|
|
|
var gpio = require("pi-gpio");
|
|
|
|
|
|
var express=require('express'),
|
|
app=express(),
|
|
server=require('http').createServer(app),
|
|
io = require('socket.io',{transports: ['websocket']}).listen(server);
|
|
server.listen(3000);
|
|
var shortId = require('shortid');
|
|
|
|
//ip
|
|
var os = require( 'os' );
|
|
var networkInterfaces = os.networkInterfaces( );
|
|
|
|
//own modules
|
|
var IsPinAlreadyON = require('./IsPinAlreadyON.js');
|
|
|
|
//poder accedir al server i interactuar
|
|
app.use(express.static(__dirname + '/clientGPIO'));
|
|
|
|
|
|
|
|
var numconnections=0;
|
|
var listPinsON=[];
|
|
io.on('connection', function (socket) {
|
|
socket.on('newconnection', function (data,callback){
|
|
numconnections++;
|
|
console.log("numconnections: " + numconnections);
|
|
//io.sockets.emit('numconnections',{numconnections}); //aqí envia la data
|
|
});
|
|
socket.on('pinON', function (data,callback){
|
|
console.log(data + "--> ON");
|
|
|
|
//comprova si el pin està already encès
|
|
if(IsPinAlreadyON.isit(listPinsON, data)==false)
|
|
{
|
|
listPinsON.push(data);
|
|
console.log("listPinsON: " + listPinsON);
|
|
gpio.open(data, "output", function(err) { // Open pin per output
|
|
gpio.write(data, 1, function() { // Set pin high (1)
|
|
gpio.close(data); // Close pin
|
|
});
|
|
});
|
|
io.sockets.emit('listPinsON',listPinsON);
|
|
}else{
|
|
//pin already encès
|
|
io.sockets.emit("alreadyON", data);
|
|
}
|
|
});
|
|
|
|
socket.on('pinOFF', function (data,callback){
|
|
console.log(data + "--> OFF");
|
|
for(var i=0; i<listPinsON.length; i++)
|
|
{
|
|
if(listPinsON[i]==data)
|
|
{
|
|
listPinsON.splice(i, 1);
|
|
}
|
|
}
|
|
|
|
console.log("listPinsON: " + listPinsON);
|
|
gpio.open(data, "output", function(err) { // Open pin per output
|
|
gpio.write(data, 0, function() { // Set pin low (0)
|
|
gpio.close(data); // Close pin
|
|
});
|
|
});
|
|
io.sockets.emit('listPinsON',listPinsON); //aqí envia la data
|
|
});
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
console.log("------- server is running -------");
|