Page 88 - The Definitive Guide to Building Java Robots
P. 88
Preston_5564C03.fm Page 69 Wednesday, October 5, 2005 7:21 AM
CHAPTER 3 ■ MOTION 69
// construct with JSerialPort
public SpeedDiffDrive(JSerialPort serialPort) throws Exception{
super(serialPort);
}
// accessor for speed
public int getSpeed() {
return speed;
}
// setter for speed
public void setSpeed(int speed) throws Exception {
// keep speed between min and max
if (speed < 1 || speed > 10) {
throw new Exception("Speed out of range 1-10.");
}
// set speed
this.speed = speed;
// get high for left
setLeftHigh(getSpdHI());
// get low for left
setLeftLow(getSpdLO());
// get high for right
setRightHigh(getSpdHI());
// get low for right
setRightLow(getSpdLO());
}
// get speed as fraction of 127 (half of MiniSSC)
private int getSpd() {
double s = (double) 127 * (speed / 10.0);
return (int) s;
}
// return high speed
private int getSpdHI() {
return getSpd() + 127;
}
// return low speed
private int getSpdLO() {
return 127 - getSpd();
}
// sample program
public static void main(String[] args) {
try {