dmxnet-nologging
v0.5.3
Published
Fork of the ArtNet-DMX-sender and receiver for nodejs for with login disabled for installations
Downloads
7
Maintainers
Readme
dmxnet-nologging
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!
Features
- 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)
Forked from
https://github.com/margau/dmxnet
Contributors
See https://github.com/margau/dmxnet/graphs/contributors
Changelog
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.
Installation
How to install latest release:
npm install @stefang/dmxnet-nologging
Usage
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
}
Structure
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.
Notes
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.
Transmitting Art-Net
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!
Receiving Art-Net
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.
Please feel free to contribute!
Credits
Art-Net™ Designed by and Copyright Artistic Licence Holdings Ltd