コード例 #1
0
ファイル: Device.cs プロジェクト: karpiyon/lightningstools
        public void SetRangeHundredsDigitStatorSignalCoarseSetpointDeferred(StatorSignals statorSignal, byte coarseSetpoint)
        {
            switch (statorSignal)
            {
            case StatorSignals.X:
                SendCommand(CommandSubaddress.RANGE_HUNDREDS_DIGIT_X_STATOR_COARSE_SETPOINT_DEFERRED, coarseSetpoint);
                break;

            case StatorSignals.Y:
                SendCommand(CommandSubaddress.RANGE_HUNDREDS_DIGIT_Y_STATOR_COARSE_SETPOINT_DEFERRED, coarseSetpoint);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(statorSignal));
            }
        }
コード例 #2
0
ファイル: Device.cs プロジェクト: jjoesten/lightningstools
        public void SetStatorSignalAmplitudeDeferred(StatorSignals statorSignal, byte amplitude)
        {
            switch (statorSignal)
            {
            case StatorSignals.S1:
                SendCommand(CommandSubaddress.S1AMPL, amplitude);
                break;

            case StatorSignals.S2:
                SendCommand(CommandSubaddress.S2AMPL, amplitude);
                break;

            case StatorSignals.S3:
                SendCommand(CommandSubaddress.S3AMPL, amplitude);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(statorSignal));
            }
        }
コード例 #3
0
ファイル: Device.cs プロジェクト: karpiyon/lightningstools
        public void SetHeadingStatorSignalCoarseSetpointDeferred(StatorSignals statorSignal, byte coarseSetpoint)
        {
            switch (statorSignal)
            {
            case StatorSignals.S1:
                SendCommand(CommandSubaddress.HEADING_S1_COARSE_SETPOINT_DEFERRED, coarseSetpoint);
                break;

            case StatorSignals.S2:
                SendCommand(CommandSubaddress.HEADING_S2_COARSE_SETPOINT_DEFERRED, coarseSetpoint);
                break;

            case StatorSignals.S3:
                SendCommand(CommandSubaddress.HEADING_S3_COARSE_SETPOINT_DEFERRED, coarseSetpoint);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(statorSignal));
            }
        }
コード例 #4
0
ファイル: Device.cs プロジェクト: karpiyon/lightningstools
        public void LoadHeadingOffsetStatorCoilMask(StatorSignals statorSignal)
        {
            byte val;

            switch (statorSignal)
            {
            case StatorSignals.S1:
                val = 0x01;
                break;

            case StatorSignals.S2:
                val = 0x02;
                break;

            case StatorSignals.S3:
                val = 0x04;
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(statorSignal));
            }
            SendCommand(CommandSubaddress.LOAD_BEARING_OFFSET_STATOR_COIL_MASK, val);
        }
コード例 #5
0
ファイル: Device.cs プロジェクト: jjoesten/lightningstools
        public void SetStatorBaseAngle(StatorSignals statorSignal, short offset)
        {
            const ushort LSB_BITMASK = 0xFF;  //bits 0-7
            const ushort MSB_BITMASK = 0xF00; //bits 8-11

            if (offset < 0 || offset > STATOR_ANGLE_MAX_OFFSET)
            {
                throw new ArgumentOutOfRangeException(nameof(offset), string.Format(CultureInfo.InvariantCulture, "Must be >=0 and <= {0}", STATOR_ANGLE_MAX_OFFSET));
            }
            var lsb = (byte)(offset & LSB_BITMASK);
            var msb = (byte)((offset & MSB_BITMASK) >> 8);

            switch (statorSignal)
            {
            case StatorSignals.S1:
                SendCommand(CommandSubaddress.S1_BASE_ANGLE_LSB, lsb);
                SendCommand(CommandSubaddress.S1_BASE_ANGLE_MSB, msb);
                break;

            case StatorSignals.S2:
                SendCommand(CommandSubaddress.S2_BASE_ANGLE_LSB, lsb);
                SendCommand(CommandSubaddress.S2_BASE_ANGLE_MSB, msb);
                break;

            case StatorSignals.S3:
                SendCommand(CommandSubaddress.S3_BASE_ANGLE_LSB, lsb);
                SendCommand(CommandSubaddress.S3_BASE_ANGLE_MSB, msb);
                break;

            case StatorSignals.Unknown:
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(statorSignal));
            }
        }