protected override void Output()
{
byte function = (byte)(this.strobeSpeed == 0 ? 255 : this.strobeSpeed.GetByteScale(97) + 135);
var color = GetColorFromColorBrightness();
uint panValue = (uint)this.pan.LimitAndScale(0, 540).ScaleToMinMax(0, 65535);
uint tiltValue = (uint)this.tilt.LimitAndScale(0, 270).ScaleToMinMax(0, 65535);
DmxOutputPort.SendDimmerValues(this.baseDmxChannel, new byte[] {
(byte)(panValue >> 8), // Pan
(byte)panValue, // Pan fine
(byte)(tiltValue >> 8), // Tilt
(byte)tiltValue, // Tilt fine
0, // Vector speed (Pan/Tilt)
function, // Dimmer/Strobe
color.R,
color.G,
color.B,
0, // Color Macros
0, // Vector speed (Color)
0}); // Movement Macros
}