/// <summary> /// Prepares the rail for use by moving the motor all the way up to the top to find the zero position. /// </summary> public void Initialize() { // TODO: What happens when it is already at the top? This likely won't toggle the switch... this.Initializing = true; IPWMOutput MotorPWM = PWMBBB.PWMDevice2.OutputB; IDigitalIn LimitSw = new DigitalInBBB(BBBPin.P8_08); this.MotorCtrl = new TalonMC(MotorPWM, MOTOR_MAX_SPEED); this.Limit = new LimitSwitch(LimitSw, false); //this.Encoder = new Encoder(2, 3, 80); this.Limit.SwitchToggle += this.EventTriggered; //this.Encoder.Turned += this.EventTriggered; Timer TimeoutTrigger = new Timer() { Interval = INIT_TIMEOUT, AutoReset = false }; TimeoutTrigger.Elapsed += this.EventTriggered; TimeoutTrigger.Enabled = true; this.GotoTop(); }
public void Initialize() { this.Initializing = true; IPWMOutput MotorOut = PWMBBB.PWMDevice1.OutputA; IDigitalIn LimitSw = new DigitalInBBB(BBBPin.P8_12); this.MotorCtrl = new TalonMC(MotorOut, MOTOR_MAX_SPEED); this.Limit = new LimitSwitch(LimitSw, false); //this.Encoder = new Encoder(6, 7, 420); this.Limit.SwitchToggle += this.EventTriggered; //this.Encoder.Turned += this.EventTriggered; Timer TimeoutTrigger = new Timer() { Interval = INIT_TIMEOUT, AutoReset = false }; TimeoutTrigger.Elapsed += this.EventTriggered; TimeoutTrigger.Enabled = true; // Do init stuff. this.TargetAngle = 360; }