// Path: public-java/io/iamcontent-servos/src/main/java/com/iamcontent/device/servo/command/ImmutableServoCommand.java
// public static <C> ServoCommand<C> immutableCommand(C channel, Double value, Double speed, Double acceleration) {
// 	return new ImmutableServoCommand<C>(channel, value, speed, acceleration);
// }
// 
// Path: public-java/io/iamcontent-servos/src/main/java/com/iamcontent/device/servo/command/CompoundServoCommand.java
// public abstract class CompoundServoCommand<C> extends ArrayList<ServoCommand<C>> {
// 
// 	@SafeVarargs
// 	public CompoundServoCommand(ServoCommand<C>... commands) {
// 		addAll(Arrays.asList(commands));
// 	}
// 	
// 	private static final long serialVersionUID = 1L;
// }
// 
// Path: public-java/robots/iamcontent-robonova-1/src/main/java/com/iamcontent/robot/robonova1/Robonova.java
// public interface Robonova {
// 	ServoSource<ServoId> servos();
// 	AnalogIOSource<ThreeDimension> accelerometer();
// }
// 
// Path: public-java/robots/iamcontent-robonova-1/src/main/java/com/iamcontent/robot/robonova1/ServoId.java
// public enum ServoId {
// 	LEFT_SHOULDER_FLEXOR,
// 	RIGHT_SHOULDER_FLEXOR,
// 	LEFT_SHOULDER_ABDUCTOR,
// 	RIGHT_SHOULDER_ABDUCTOR,
// 	LEFT_ELBOW_FLEXOR,
// 	RIGHT_ELBOW_FLEXOR,
// 	
// 	LEFT_HIP_ABDUCTOR,
// 	RIGHT_HIP_ABDUCTOR,
// 	LEFT_HIP_FLEXOR,
// 	RIGHT_HIP_FLEXOR,
// 	LEFT_KNEE_FLEXOR,
// 	RIGHT_KNEE_FLEXOR,
// 	LEFT_ANKLE_PLANTARFLEXOR,
// 	RIGHT_ANKLE_PLANTARFLEXOR,
// 	LEFT_ANKLE_INVERTER,
// 	RIGHT_ANKLE_INVERTER;
// }


import static com.iamcontent.device.servo.command.ImmutableServoCommand.immutableCommand;
import static com.iamcontent.robot.robonova1.ServoId.LEFT_ANKLE_INVERTER;
import static com.iamcontent.robot.robonova1.ServoId.LEFT_ANKLE_PLANTARFLEXOR;
import static com.iamcontent.robot.robonova1.ServoId.LEFT_ELBOW_FLEXOR;
import static com.iamcontent.robot.robonova1.ServoId.LEFT_HIP_ABDUCTOR;
import static com.iamcontent.robot.robonova1.ServoId.LEFT_HIP_FLEXOR;
import static com.iamcontent.robot.robonova1.ServoId.LEFT_KNEE_FLEXOR;
import static com.iamcontent.robot.robonova1.ServoId.LEFT_SHOULDER_ABDUCTOR;
import static com.iamcontent.robot.robonova1.ServoId.LEFT_SHOULDER_FLEXOR;
import static com.iamcontent.robot.robonova1.ServoId.RIGHT_ANKLE_INVERTER;
import static com.iamcontent.robot.robonova1.ServoId.RIGHT_ANKLE_PLANTARFLEXOR;
import static com.iamcontent.robot.robonova1.ServoId.RIGHT_ELBOW_FLEXOR;
import static com.iamcontent.robot.robonova1.ServoId.RIGHT_HIP_ABDUCTOR;
import static com.iamcontent.robot.robonova1.ServoId.RIGHT_HIP_FLEXOR;
import static com.iamcontent.robot.robonova1.ServoId.RIGHT_KNEE_FLEXOR;
import static com.iamcontent.robot.robonova1.ServoId.RIGHT_SHOULDER_ABDUCTOR;
import static com.iamcontent.robot.robonova1.ServoId.RIGHT_SHOULDER_FLEXOR;
import com.iamcontent.device.servo.command.CompoundServoCommand;
import com.iamcontent.robot.robonova1.Robonova;
import com.iamcontent.robot.robonova1.ServoId;

package com.iamcontent.robot.robonova1.command;



/**
 * A compound command to put a {@link Robonova} into a sitting position.
 * @author Greg Elderfield
 */
public class SitCommand extends CompoundServoCommand<ServoId> {

	public SitCommand() {
		super(

// Path: public-java/io/iamcontent-servos/src/main/java/com/iamcontent/device/servo/command/ImmutableServoCommand.java
// public static <C> ServoCommand<C> immutableCommand(C channel, Double value, Double speed, Double acceleration) {
// 	return new ImmutableServoCommand<C>(channel, value, speed, acceleration);
// }
// 
// Path: public-java/io/iamcontent-servos/src/main/java/com/iamcontent/device/servo/command/CompoundServoCommand.java
// public abstract class CompoundServoCommand<C> extends ArrayList<ServoCommand<C>> {
// 
// 	@SafeVarargs
// 	public CompoundServoCommand(ServoCommand<C>... commands) {
// 		addAll(Arrays.asList(commands));
// 	}
// 	
// 	private static final long serialVersionUID = 1L;
// }
// 
// Path: public-java/robots/iamcontent-robonova-1/src/main/java/com/iamcontent/robot/robonova1/Robonova.java
// public interface Robonova {
// 	ServoSource<ServoId> servos();
// 	AnalogIOSource<ThreeDimension> accelerometer();
// }
// 
// Path: public-java/robots/iamcontent-robonova-1/src/main/java/com/iamcontent/robot/robonova1/ServoId.java
// public enum ServoId {
// 	LEFT_SHOULDER_FLEXOR,
// 	RIGHT_SHOULDER_FLEXOR,
// 	LEFT_SHOULDER_ABDUCTOR,
// 	RIGHT_SHOULDER_ABDUCTOR,
// 	LEFT_ELBOW_FLEXOR,
// 	RIGHT_ELBOW_FLEXOR,
// 	
// 	LEFT_HIP_ABDUCTOR,
// 	RIGHT_HIP_ABDUCTOR,
// 	LEFT_HIP_FLEXOR,
// 	RIGHT_HIP_FLEXOR,
// 	LEFT_KNEE_FLEXOR,
// 	RIGHT_KNEE_FLEXOR,
// 	LEFT_ANKLE_PLANTARFLEXOR,
// 	RIGHT_ANKLE_PLANTARFLEXOR,
// 	LEFT_ANKLE_INVERTER,
// 	RIGHT_ANKLE_INVERTER;
// }


// Path: public-java/robots/iamcontent-robonova-1/src/main/java/com/iamcontent/robot/robonova1/command/SitCommand.java
import static com.iamcontent.device.servo.command.ImmutableServoCommand.immutableCommand;
import static com.iamcontent.robot.robonova1.ServoId.LEFT_ANKLE_INVERTER;
import static com.iamcontent.robot.robonova1.ServoId.LEFT_ANKLE_PLANTARFLEXOR;
import static com.iamcontent.robot.robonova1.ServoId.LEFT_ELBOW_FLEXOR;
import static com.iamcontent.robot.robonova1.ServoId.LEFT_HIP_ABDUCTOR;
import static com.iamcontent.robot.robonova1.ServoId.LEFT_HIP_FLEXOR;
import static com.iamcontent.robot.robonova1.ServoId.LEFT_KNEE_FLEXOR;
import static com.iamcontent.robot.robonova1.ServoId.LEFT_SHOULDER_ABDUCTOR;
import static com.iamcontent.robot.robonova1.ServoId.LEFT_SHOULDER_FLEXOR;
import static com.iamcontent.robot.robonova1.ServoId.RIGHT_ANKLE_INVERTER;
import static com.iamcontent.robot.robonova1.ServoId.RIGHT_ANKLE_PLANTARFLEXOR;
import static com.iamcontent.robot.robonova1.ServoId.RIGHT_ELBOW_FLEXOR;
import static com.iamcontent.robot.robonova1.ServoId.RIGHT_HIP_ABDUCTOR;
import static com.iamcontent.robot.robonova1.ServoId.RIGHT_HIP_FLEXOR;
import static com.iamcontent.robot.robonova1.ServoId.RIGHT_KNEE_FLEXOR;
import static com.iamcontent.robot.robonova1.ServoId.RIGHT_SHOULDER_ABDUCTOR;
import static com.iamcontent.robot.robonova1.ServoId.RIGHT_SHOULDER_FLEXOR;
import com.iamcontent.device.servo.command.CompoundServoCommand;
import com.iamcontent.robot.robonova1.Robonova;
import com.iamcontent.robot.robonova1.ServoId;

package com.iamcontent.robot.robonova1.command;



/**
 * A compound command to put a {@link Robonova} into a sitting position.
 * @author Greg Elderfield
 */
public class SitCommand extends CompoundServoCommand<ServoId> {

	public SitCommand() {
		super(

			immutableCommand(LEFT_SHOULDER_FLEXOR, 0.5, 1.0, 0.02),
