Пример #1
0
        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);
        }
Пример #2
0
        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++;
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
        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;
        }
Пример #5
0
        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);
        }
Пример #6
0
 public void Append(ViscaVariable variable)
 {
     Append(0, variable, 0x00);
 }