51 lines
992 B
JavaScript
51 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;
|
||
|
}
|