public ViscaPTZPosition(byte address, bool relative, ViscaPanSpeed panSpeed, ViscaTiltSpeed tiltSpeed, int panPosition, int tiltPosition) : base(address) { _relative = relative; this.PanSpeed = panSpeed; this.TiltSpeed = tiltSpeed; _panPositionByte1 = new ViscaVariable("PanPositionByte1", 0); _panPositionByte2 = new ViscaVariable("PanPositionByte2", 0); _panPositionByte3 = new ViscaVariable("PanPositionByte3", 0); _panPositionByte4 = new ViscaVariable("PanPositionByte4", 0); _tiltPositionByte1 = new ViscaVariable("TiltPositionByte1", 0); _tiltPositionByte2 = new ViscaVariable("TiltPositionByte2", 0); _tiltPositionByte3 = new ViscaVariable("TiltPositionByte3", 0); _tiltPositionByte4 = new ViscaVariable("TiltPositionByte4", 0); PanPosition = panPosition; TiltPosition = tiltPosition; Append(new byte[] { Visca.Category.PanTilt, relative ? Visca.Commands.PanTiltRelative : Visca.Commands.PanTiltAbsolute, }); Append(this.PanSpeed); Append(this.TiltSpeed); Append(_panPositionByte1); Append(_panPositionByte2); Append(_panPositionByte3); Append(_panPositionByte4); Append(_tiltPositionByte1); Append(_tiltPositionByte2); Append(_tiltPositionByte3); Append(_tiltPositionByte4); }
public void Append(byte data, ViscaVariable variable, byte mask) { int index = Length; _bytes[index] = data; _bytes[index] = (byte)((_bytes[index] & mask) + variable.Value); variable.VariableChanged += (var, args) => { variableUpdater(index, mask, args); }; Length++; }
/// <summary> /// Constructor /// </summary> /// <param name="address">Camera address</param> /// <param name="commands">Command's Category and Command</param> /// <param name="commandName">String representation of the command</param> /// <param name="mode">Mode to set</param> public ViscaModeCommand(byte address, byte[] commands, string commandName, T mode) : base(address) { _commandName = commandName; _mode = new ViscaVariable(_commandName + " Mode", mode.Key); Append(commands); Append(_mode); }
public ViscaPositionCommand(byte address, int position, IViscaRangeLimits <int> limits) : base(address) { _positionByte1 = new ViscaVariable("PositionByte1"); _positionByte2 = new ViscaVariable("PositionByte2"); _positionByte3 = new ViscaVariable("PositionByte3"); _positionByte4 = new ViscaVariable("PositionByte4"); _limits = limits; Position = position; }
public ViscaMemoryVaddioTriSync(byte address, byte preset, byte operation, TriSyncSpeedVariable speed) : base(address, preset, operation, ViscaDefaultsVaddio.PresetLimits) { _triSyncSpeed = speed; _triSyncSpeed.VariableChanged += (s, e) => { _triSyncSpeedByte1.Value = (byte)(e.Value & 0xf0); _triSyncSpeedByte1.Value = (byte)(e.Value & 0x0f); }; _triSyncSpeedByte1 = new ViscaVariable("TriSyncSpeedByte1", (byte)(_triSyncSpeed.Value & 0xf0)); _triSyncSpeedByte2 = new ViscaVariable("TriSyncSpeedByte2", (byte)(_triSyncSpeed.Value & 0x0f)); Append(operation); Append(_triSyncSpeedByte1); Append(_triSyncSpeedByte2); }
public void Append(ViscaVariable variable) { Append(0, variable, 0x00); }