Port Throttling
From OpenDMX.net
Sometimes the frame rate from Output Ports has to be rate limited. The ThrottledOutputPortDecorator allows rate limits to be configured on OutputPorts using a Token Bucket Algorithm.
The following example shows applying the ThrottledOutputPortDecorator to an Output port to rate limit the output.
Before (no throttling):
OutputPort *output_port = new UsbProOutputPort(this, 0, "");
After (throttle to 190 frames per second)
OutputPort *output_port = new ThrottledOutputPortDecorator(
new UsbProOutputPort(this, 0, ""), // the port to throttle
plugin_adaptor->WakeUpTime(), // the select server wake up time
10, // start with 10 tokens in the bucket
190); // throttle to 190 frames per second
When port throttling is in place, messages will appear at log level 4 similar to:
PortDecorators.h:48: Port rated limited, dropping frame
[edit] Current Throttled Ports
- DMX USB Pro - 190 frames/second
- Arduino RGB Mixer - 20 frames/second
- DMX-TRI - 40 frames/second
For some devices, values can be changed in ~/.ola/ola-usbserial.conf
