initial commit
This commit is contained in:
commit
332b9b8f70
4 changed files with 111 additions and 0 deletions
34
devices.js
Normal file
34
devices.js
Normal file
|
@ -0,0 +1,34 @@
|
|||
exports.devices = {
|
||||
'eurolite-led-bar': {
|
||||
channels: ['ctrl', 'dimmer', 'strobe', 'red0', 'green0', 'blue0', 'red1', 'green1', 'blue1', 'red2', 'green2', 'blue2'],
|
||||
ranges: {
|
||||
'ctrl': {
|
||||
'type': 'option',
|
||||
'options': [
|
||||
{'value': 0, 'label': 'Black Out'},
|
||||
{'value': 1, 'label': 'Dimmer 1'},
|
||||
{'value': 16, 'label': 'Dimmer 2'},
|
||||
{'value': 32, 'label': 'Red'},
|
||||
{'value': 48, 'label': 'Green'},
|
||||
{'value': 64, 'label': 'Blue'},
|
||||
{'value': 80, 'label': 'Purple'},
|
||||
{'value': 96, 'label': 'Yellow'},
|
||||
{'value': 112, 'label': 'Cyan'},
|
||||
{'value': 128, 'label': 'White'},
|
||||
{'value': 144, 'label': 'Color change'},
|
||||
{'value': 160, 'label': 'Color flow'},
|
||||
{'value': 176, 'label': 'Color dream'},
|
||||
{'value': 192, 'label': 'Multi flow'},
|
||||
{'value': 208, 'label': 'Dream flow'},
|
||||
{'value': 224, 'label': 'Two color flow'},
|
||||
{'value': 240, 'label': 'Sound activity'}
|
||||
]
|
||||
},
|
||||
'dimmer': {
|
||||
'type': 'slider',
|
||||
'min': 0,
|
||||
'max': 255
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
7
dmx.js
Normal file
7
dmx.js
Normal file
|
@ -0,0 +1,7 @@
|
|||
|
||||
var drv = require('./drivers/enttec-usb-dmx-pro.js');
|
||||
universe = new drv.init(0);
|
||||
universe.update({0: 1, 1:0xff, 6: 20, 7: 0xff}, 20)
|
||||
|
||||
|
||||
|
50
drivers/enttec-usb-dmx-pro.js
Normal file
50
drivers/enttec-usb-dmx-pro.js
Normal file
|
@ -0,0 +1,50 @@
|
|||
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;
|
||||
}
|
20
setup.js
Normal file
20
setup.js
Normal file
|
@ -0,0 +1,20 @@
|
|||
exports.setup = {
|
||||
universes: {
|
||||
'office': {
|
||||
'output': {
|
||||
'driver': 'enttec-usb-dmx-pro',
|
||||
'device': 0
|
||||
},
|
||||
'devices': [
|
||||
{
|
||||
'type': 'eurolite-led-bar',
|
||||
'address': 1
|
||||
},
|
||||
{
|
||||
'type': 'eurolite-led-bar',
|
||||
'address': 13
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue