dmx-flok/drivers/enttec-usb-dmx-pro.js
Sebastian Wiedenroth 332b9b8f70 initial commit
2012-09-01 14:17:39 +02:00

50 lines
992 B
JavaScript

var Ftdi = require('./node-ftdi/index');
var ENTTEC_PRO_DMX_STARTCODE = 0x00
, ENTTEC_PRO_START_OF_MSG = 0x7e
, ENTTEC_PRO_END_OF_MSG = 0xe7
, ENTTEC_PRO_SEND_DMX_RQ = 0x06
, ENTTEC_PRO_RECV_DMX_PKT = 0x05
;
exports.init = function(dev_id) {
var send_universe = function(dev, universe) {
var hdr = Buffer([
ENTTEC_PRO_START_OF_MSG,
ENTTEC_PRO_SEND_DMX_RQ,
(universe.length + 1) & 0xff,
((universe.length + 1) >> 8) & 0xff,
ENTTEC_PRO_DMX_STARTCODE
])
var msg = Buffer.concat([
hdr,
universe,
Buffer([ENTTEC_PRO_END_OF_MSG])
])
console.log(msg)
dev.write(msg)
}
var universe = new Buffer(512)
universe.fill(0)
var dev = new Ftdi({'index': dev_id});
dev.open();
dev.setBaudrate(250000);
dev.setLineProperty(Ftdi.BITS_8, Ftdi.STOP_BIT_2, Ftdi.NONE);
this.update = function(u) {
for(var k in u) {
universe[k] = u[k]
}
}
setInterval(function() {
send_universe(dev, universe);
}, 1000);
return this;
}