// Path: PC/Java/RobotSimulator/src/org/ftccommunity/simulator/data/MotorSimData.java
// @XmlRootElement(name="MotorSimData")
// @XmlAccessorType(XmlAccessType.NONE)
// public class MotorSimData extends SimData {
// 
// 	float mMotorSpeed=0;
// 	boolean mMotorFloatMode=false;
// 
// 	public MotorSimData() {
// 		super();
// 		construct();
// 	}
// 
//     @Override
//     protected void construct() {
//         //System.out.println("Building Legacy Motor SimData");
//     }
// 
// 	public float getMotorSpeed() {
// 		lock.readLock().lock();
// 		try {
// 			return mMotorSpeed;
// 		} finally {
// 			lock.readLock().unlock();
// 		}
// 	}
// 
// 	public boolean getMotorFloatMode() {
// 		return mMotorFloatMode;
// 	}
// 
// 	public void setMotorSpeed(byte speedByte) {
// 		lock.writeLock().lock();
// 		try {
// 			if (speedByte == (byte)0x80) {
// 				mMotorFloatMode = true;
// 				mMotorSpeed=0.0f;
// 			} else {
// 				mMotorSpeed = (float)speedByte/100.0f;
// 			}
// 		} finally {
// 			lock.writeLock().unlock();
// 		}
// 	}
// }
// 
// Path: PC/Java/RobotSimulator/src/org/ftccommunity/simulator/data/SimData.java
// @XmlAccessorType(XmlAccessType.NONE)
// public abstract class SimData {
// 	public final ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
// 
// 	protected StringProperty mName = null;
// 
// 	public SimData() {
// 		mName = new SimpleStringProperty("");
// 	}
// 
//     // Do subclass level processing in this method
//     protected abstract void construct();
// 
// 
// 	public String getName() {
// 		return mName.getValue();
// 	}
// 
// 	@XmlElement
// 	public void setName(String name) {
// 		mName.set(name);
// 	}
// }


import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlRootElement;
import org.ftccommunity.simulator.data.MotorSimData;
import org.ftccommunity.simulator.data.SimData;
import javafx.geometry.Insets;
import javafx.scene.control.Label;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
package org.ftccommunity.simulator.modules.devices;




@XmlRootElement(name="TetrixMotorControllerDevice")
@XmlAccessorType(XmlAccessType.NONE)
public class TetrixMotorControllerDevice extends Device {

	// GUI stuff for the Debug windows
	public Label mMotor1SpeedDebugLabel;
	public Label mMotor2SpeedDebugLabel;

    /**
     * Default constructor.
     */
	public TetrixMotorControllerDevice() {
		super(DeviceType.TETRIX_MOTOR);
		mSimData = new SimData[2];
// Path: PC/Java/RobotSimulator/src/org/ftccommunity/simulator/data/MotorSimData.java
// @XmlRootElement(name="MotorSimData")
// @XmlAccessorType(XmlAccessType.NONE)
// public class MotorSimData extends SimData {
// 
// 	float mMotorSpeed=0;
// 	boolean mMotorFloatMode=false;
// 
// 	public MotorSimData() {
// 		super();
// 		construct();
// 	}
// 
//     @Override
//     protected void construct() {
//         //System.out.println("Building Legacy Motor SimData");
//     }
// 
// 	public float getMotorSpeed() {
// 		lock.readLock().lock();
// 		try {
// 			return mMotorSpeed;
// 		} finally {
// 			lock.readLock().unlock();
// 		}
// 	}
// 
// 	public boolean getMotorFloatMode() {
// 		return mMotorFloatMode;
// 	}
// 
// 	public void setMotorSpeed(byte speedByte) {
// 		lock.writeLock().lock();
// 		try {
// 			if (speedByte == (byte)0x80) {
// 				mMotorFloatMode = true;
// 				mMotorSpeed=0.0f;
// 			} else {
// 				mMotorSpeed = (float)speedByte/100.0f;
// 			}
// 		} finally {
// 			lock.writeLock().unlock();
// 		}
// 	}
// }
// 
// Path: PC/Java/RobotSimulator/src/org/ftccommunity/simulator/data/SimData.java
// @XmlAccessorType(XmlAccessType.NONE)
// public abstract class SimData {
// 	public final ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
// 
// 	protected StringProperty mName = null;
// 
// 	public SimData() {
// 		mName = new SimpleStringProperty("");
// 	}
// 
//     // Do subclass level processing in this method
//     protected abstract void construct();
// 
// 
// 	public String getName() {
// 		return mName.getValue();
// 	}
// 
// 	@XmlElement
// 	public void setName(String name) {
// 		mName.set(name);
// 	}
// }


// Path: PC/Java/RobotSimulator/src/org/ftccommunity/simulator/modules/devices/TetrixMotorControllerDevice.java
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlRootElement;
import org.ftccommunity.simulator.data.MotorSimData;
import org.ftccommunity.simulator.data.SimData;
import javafx.geometry.Insets;
import javafx.scene.control.Label;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;

package org.ftccommunity.simulator.modules.devices;




@XmlRootElement(name="TetrixMotorControllerDevice")
@XmlAccessorType(XmlAccessType.NONE)
public class TetrixMotorControllerDevice extends Device {

	// GUI stuff for the Debug windows
	public Label mMotor1SpeedDebugLabel;
	public Label mMotor2SpeedDebugLabel;

    /**
     * Default constructor.
     */
	public TetrixMotorControllerDevice() {
		super(DeviceType.TETRIX_MOTOR);
		mSimData = new SimData[2];
		mSimData[0] = new MotorSimData();	// Add 1st motor