public AngularPotentiometerMechanism(ISimSpeedController input, SimAnalogInput output, DCMotor model, double startPercentage, double potentiometerRadians, bool invertInput) { m_input = input; m_output = output; m_model = model; m_maxRadians = potentiometerRadians; m_minRadians = 0; CurrentRadians = (m_maxRadians - m_minRadians) *startPercentage; m_invert = invertInput; m_scaler = 5 / (m_maxRadians - m_minRadians); }
//String travel and Spool Radius in meters public LinearPotentiometerMechanism(ISimSpeedController input, SimAnalogInput output, DCMotor model, double startPercentage, double stringTravel, double spoolRadius, bool invertInput) { m_input = input; m_output = output; m_model = model; double metersPerRotation = Math.PI * (spoolRadius * 2); double totalRotations = stringTravel / metersPerRotation; double totalRadians = totalRotations * Math.PI * 2; RadiansPerMeter = totalRadians / stringTravel; m_maxRadians = totalRadians; m_minRadians = 0; CurrentRadians = (m_maxRadians - m_minRadians) * startPercentage; CurrentMeters = CurrentRadians / RadiansPerMeter; m_invert = invertInput; m_scaler = 5/ (m_maxRadians - m_minRadians); }