Skip to content

Instantly share code, notes, and snippets.

@monteslu
Last active September 10, 2018 09:07
Show Gist options
  • Save monteslu/f5340d3394ba9aeb06fc to your computer and use it in GitHub Desktop.
Save monteslu/f5340d3394ba9aeb06fc to your computer and use it in GitHub Desktop.
firmata over tcp
var net = require('net');
var five = require('johnny-five');
var firmata = require('firmata');
var client = net.connect({port: 8124}, function() { //'connect' listener
console.log('connected to server!');
console.log('connected to server event!');
var io = new firmata.Board(this);
io.on('ready', function(){
console.log('io ready');
io.name = "Firmata";
var board = new five.Board({io: io, repl: true});
var led = new five.Led(13);
led.blink();
board.on('ready', function(){
console.log('five ready');
});
});
});
client.on('end', function() {
console.log('disconnected from server');
});
var net = require('net');
var SerialPort = require('serialport').SerialPort;
var SERIAL_PORT = process.env.SERIAL_PORT || '/dev/tty.usbmodem1421';
var PORT = process.env.PORT || 8124;
var serialPort = new SerialPort(SERIAL_PORT,{
baudrate: 57600,
buffersize: 1
});
var clients = {};
serialPort.on('data', function(data){
for(var id in clients){
try{
clients[id].write(data);
}catch(exp){
console.log('error writing to client', id, exp);
}
}
});
var server = net.createServer(function(c) { //'connection' listener
c.id = 'c' + Math.random() + '_' + Date.now();
clients[c.id] = c;
console.log('client connected', c.id);
c.on('end', function() {
console.log('client disconnected', c.id);
delete clients[c.id];
});
c.on('data', function(data){
serialPort.write(data);
});
});
server.listen(PORT, function() {
console.log('server bound to port: ' + PORT);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment