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)); } }
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)); } }
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)); } }
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); }
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)); } }