public SendStatus SendPixelValue(int channel, PixelRGBByte rgb) { var values = new byte[3]; values[0] = rgb.R; values[1] = rgb.G; values[2] = rgb.B; // Max 510 RGB values per universe int universe = (this.startDmxChannel + (channel * 3)) / 510; int localStart = (this.startDmxChannel + (channel * 3)) % 510; var acnUniverse = GetAcnUniverse(this.startUniverse + universe); return acnUniverse.SendDimmerValues(localStart, values, 0, 3); }
public SendStatus SendPixelsValue(int channel, PixelRGBByte[] rgb) { // Max 510 RGB values per universe int universe = (this.startDmxChannel + (channel * 3)) / 510; int localStart = (this.startDmxChannel + (channel * 3)) % 510; var acnUniverse = GetAcnUniverse(this.startUniverse + universe); int chn = 0; var values = new byte[3 * rgb.Length]; foreach (var rgbValue in rgb) { values[chn++] = rgbValue.R; values[chn++] = rgbValue.G; values[chn++] = rgbValue.B; if (chn + localStart > 510) { acnUniverse.SendDimmerValues(localStart, values, 0, chn); // Get next universe chn = 0; universe++; localStart = 1; acnUniverse = GetAcnUniverse(this.startUniverse + universe); } } if (chn > 0) acnUniverse.SendDimmerValues(localStart, values, 0, chn); return SendStatus.NotSet; }