dmxnet-nologging is my fork of dmxnet, a temp fix for our CI system until I get time to properly submit the pull request.. which is an ArtNet-DMX-sender and receiver for nodejs, currently under heavy development!
- Send DMX-Data as ArtNet
- Use multiple senders with different Net, Subnet and Universe-Settings
- Receive ArtNet-Data
- Use multiple receivers with different Net, Subnet and Universe
- Receive ArtPoll and send ArtPollReply (dmxnet is found by other software, e.g. DMX-Workshop)
https://github.com/margau/dmxnet
See https://github.com/margau/dmxnet/graphs/contributors
v0.5.3 Removed Logging due to no way of disabling the file system log file creation in the options. For installations this would eventually fill up the show system storage.
How to install latest release:
npm install @stefang/dmxnet-nologging
See example_rx.js and example_tx.js
Include dmxnet lib:
var dmxlib=require('dmxnet');
Create new dmxnet object:
var dmxnet = new dmxlib.dmxnet(options);
Options:
{
verbose: 1, //Verbosity, default 0
oem: 0, //OEM Code from artisticlicense, default to dmxnet OEM.
sName: "Text", // 17 char long node description, default to "dmxnet"
lName: "Long description", // 63 char long node description, default to "dmxnet - OpenSource ArtNet Transceiver"
hosts: ["127.0.0.1"] // Interfaces to listen to, all by default
}
dmxnet works with objects: You can create a new Sender or Receiver-instance at any time, each transmitting or receiving data for a single ArtNet-Universe.
Each combination of net, subnet and universe is possible.
dmxnet can propagate max. 255 Sender/Receiver-Objects to other nodes. This is a limitation based on the internal structure of ArtPollReply-Packages. You can of course use more Sender/Receiver-Objects, but they won't propagate trough ArtPoll.
Create new sender object:
var sender=dmxnet.newSender(options);
Options:
{
ip: "127.0.0.1", //IP to send to, default 255.255.255.255
subnet: 0, //Destination subnet, default 0
universe: 0, //Destination universe, default 0
net: 0, //Destination net, default 0
port: 6454, //Destination UDP Port, default 6454
base_refresh_interval: 1000 // Default interval for sending unchanged ArtDmx
}
Set Channel:
sender.setChannel(channel,value);
Sets channel (0-511) to value (0-255) and transmits the changed values .
Fill Channels
sender.fillChannels(min,max,value);
Sets all channels between min and max (including these) to value and transmits the values.
Prepare Channel:
sender.prepChannel(channel,value);
Prepares channel (0-511) to value (0-255) without transmitting.
Change is transmitted with next
sender.transmit();
call, or the next periodically transmit. Useful for changing lots of channels at once/in parallel from device view.
Transmit:
sender.transmit();
Transmits a new ArtDMX Frame manually.
Reset:
sender.reset();
Resets all channels of this sender object to zero.
Please Note: dmxnet transmits a dmx-frame every 1000ms even if no channel has changed its value!
Create a new receiver-instance:
var receiver=dmxnet.newReceiver(options);
Options:
{
subnet: 0, //Destination subnet, default 0
universe: 0, //Destination universe, default 0
net: 0, //Destination net, default 0
}
Wait for a new frame:
receiver.on('data', function(data) {
console.log('DMX data:', data);
});
The receiver is emits an "data"-event each time new values have arrived.
The current values are stored inside the receiver.values
-array for polling.
Art-Net™ Designed by and Copyright Artistic Licence Holdings Ltd