You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

79 lines
2.0 KiB

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