<commit_before>
package org.team2168.subsystems;

import org.team2168.RobotMap;
import org.team2168.utils.MomentaryDoubleSolenoid;

import edu.wpi.first.wpilibj.DoubleSolenoid;
import edu.wpi.first.wpilibj.command.Subsystem;

/**
 *
 */
public class CatapultTusks extends Subsystem {
    // Put methods for controlling this subsystem
    // here. Call these from Commands.
	MomentaryDoubleSolenoid solenoid1;
	MomentaryDoubleSolenoid solenoid2;
	
	public CatapultTusks() {
		solenoid1 = new MomentaryDoubleSolenoid(RobotMap.catUpPort1.getInt(),
				RobotMap.catDownPort1.getInt());
		solenoid2 = new MomentaryDoubleSolenoid(RobotMap.catUpPort2.getInt(),
				RobotMap.catDownPort2.getInt());
	}
    
	public void initDefaultCommand() {
        // Set the default command for a subsystem here.
        //setDefaultCommand(new MySpecialCommand());
    }
	
	public void trussShot() {
		solenoid1.set(DoubleSolenoid.Value.kReverse);
		solenoid2.set(DoubleSolenoid.Value.kReverse);
	}
	
	public void longRangeShot(){
		solenoid1.set(DoubleSolenoid.Value.kForward);
		solenoid2.set(DoubleSolenoid.Value.kForward);
	}
	
	public void shortRangeShot(){
		solenoid1.set(DoubleSolenoid.Value.kForward);
		solenoid2.set(DoubleSolenoid.Value.kReverse);
	}
}
<commit_msg>added comments and more methods to the catapult tusks subsystem<commit_after>
package org.team2168.subsystems;

import org.team2168.RobotMap;
import org.team2168.utils.MomentaryDoubleSolenoid;

import edu.wpi.first.wpilibj.DoubleSolenoid;
import edu.wpi.first.wpilibj.command.Subsystem;

/**
 *This subsystem controls the exit angle of the ball when it is fired from 
 *the catapult.
 */
public class CatapultTusks extends Subsystem {
	MomentaryDoubleSolenoid solenoid1;
	MomentaryDoubleSolenoid solenoid2;
	
	/**
	 * This is a constructor for the class.
	 */
	public CatapultTusks() {
		solenoid1 = new MomentaryDoubleSolenoid(RobotMap.catUpPort1.getInt(),
				RobotMap.catDownPort1.getInt());
		solenoid2 = new MomentaryDoubleSolenoid(RobotMap.catUpPort2.getInt(),
				RobotMap.catDownPort2.getInt());
	}
    
	/**
	 * Sets the default command for the subsystem
	 */
	public void initDefaultCommand() {
    }
	
	/**
	 * This method is for shooting over the truss by changing the position of
	 * the tusks.
	 */
	public void trussShot() {
		solenoid1.set(DoubleSolenoid.Value.kReverse);
		solenoid2.set(DoubleSolenoid.Value.kReverse);
	}
	
	/**
	 * This method is for shooting close to the goal by changing the position 
	 * of the tusks.
	 */
	public void longRangeShot(){
		solenoid1.set(DoubleSolenoid.Value.kForward);
		solenoid2.set(DoubleSolenoid.Value.kForward);
	}
	
	/**
	 * This method is for shooting long range by changing the position of
	 * the tusks.
	 */
	public void shortRangeShot(){
		solenoid1.set(DoubleSolenoid.Value.kForward);
		solenoid2.set(DoubleSolenoid.Value.kReverse);
	}
	/**
	 * For manually extending solenoid 1.
	 */
	public void extendSolenoid1(){
		solenoid1.set(DoubleSolenoid.Value.kForward);
	}
	
	/**
	 * For manually retracting solenoid 1.
	 */
	public void retractSolenoid1(){
		solenoid1.set(DoubleSolenoid.Value.kReverse);
	}
	
	/**
	 * For manually extending solenoid 2.
	 */
	public void extendSolenoid2(){
		solenoid2.set(DoubleSolenoid.Value.kForward);
	}
	
	/**
	 * For manually retracting solenoid 2.
	 */
	public void retractSolenoid2(){
		solenoid2.set(DoubleSolenoid.Value.kReverse);
	}
}

{'fraction_non_alphanumeric': 0.10447321954090641, 'fraction_numerical': 0.01883460859329017, 'mean_word_length': 4.1814024390243905, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2486296', 'n_tokens_mistral': 1298, 'n_tokens_neox': 1177, 'n_words': 237}