RoboSkiff API History and Known Bugs

Current Status

Here are the bugs/issues in the latest version. See below for the new features and bug fixes in the latest version.

  • The IRBeacon class doesn't work and has been removed.
  • DifferentialDrive still doesn't work too well. Don't rely on it.
  • The start code has not been tested yet. Use it with caution. In fact, you probably want to ignore it and use your own.

Version History

RoboSkiff Kernel/classes6270 1.01
Includes: botkit 1.01 and java6270 1.04

  • As mentioned above IRBeacon has been removed.
  • AutoShutDown used to have a bug where if your program quit before the timer went off, it would never go off. This has now been fixed. Note that if your program throws an exception, AutoShutDown still may not run, so make sure your code doesn't throw any uncaught exceptions. Also, if you use system.exit(), AutoShutDown will be killed as well, so don't do that. So now if you use our code, then you have no excuse for not shutting off all your motors and servos at the end of the round.
  • IRDetector should now work, sort of. TempIRDetector has been removed from java6270. It does not differentiate frequencies. It also does not work when there is a beacon plugged into your board, so anyone who wants to detect IR will need to use a set of AA batteries to power their beacon instead. We are working on a possible fix.
  • There is now a getFrequency() method in IRDetector which will allow you to get the rough frequency received. (isDetecting() reports true whenever this frequency is above 65, which we believe to be a good threshold.)
  • Switch now has a setThreshold() method to set its threshold after instantiation. TempSwitch has been removed.
  • You can now create multiple Sensors and Switches that refer to the same port. You won't get any more port conflict exceptions for that.
  • Keypads are now supported! See the JavaDocs for details.
  • Due to a misunderstanding, Switch's isOn() method reports true when sensor is high and false when sensor is low. We have now created an isLow() method to replace it.NOTE: isLow() is the opposite of isOn(). That is, isLow() == !isOn(). You should replace all instances of switch.isOn() with !switch.isLow() and replace all instances of !switch.isOn() with switch.isLow(). Be careful not to forget a bang somewhere!
  • LCD.writeln() should now be twice as fast as before.
  • AutoShutDown now has a secondsRemaining() method which tells you the time until lock-down. This allows you to base your actions on the amount of time remaining in the round.
  • There is now a getPortNumber() method on Motor, Servo, Sensor, Switch, and ShaftEncoder.
  • The setThreshold() methods never actually did anything since it wasn't implemented in hardware. They have now been removed.
  • Keypads are now also supported rdcsh. (Do not use adc poll.. it doesn't work.)

java6270 1.03 patch

  • We've updated TempIRDetector's threshold a bit. However, due to hardware issues, the IR detector does not work properly when an IR beacon is plugged into the same board. If you wish to receive IR, you must power your beacon separately via a set of 4 AA batteries.
  • We've created a TempSwitch class which has a setThreshold method that lets you adjust a Switch's threshold after it is created.

java6270 1.02 patch

  • We've released a temporary IRDetector fix called TempIRDetector. Use this for now, and go back to IRDetector when the new kernel comes out. It also does not yet distinguish frequencies. It's still under development, so please try it and report your success (or lack thereof) with it to 6.270-tech. Note that it may catch self-reflections, so don't stand too close to it.
  • We've added some untested Start/Stop code. Take a look at it and tell us how well it works. It's also still under development.
  • StalledException now returns the distance traveled before the stall. More precisely, if you catch (StalledException e), e.distanceTraveled() will return the sum of the absolute values of the distance traveled on both gear trains. See the JavaDocs for details.
  • DifferentialDrive may work a bit better. Then again, it may not. Try it out and tell us how it does.

java6270 1.01 patch

  • SmartMotor now works in reverse.
  • Added StalledException.getDistanceTraveled() to allow you to know how far you went before you stalled. (It's actually the sum of the absolute value of the shaft encoder counts of both wheels.)

RoboSkiff Kernel/classes6270 1.00
Includes: botkit 1.00 and java6270 1.00

  • First public release.