package roombacomm; import java.io.*; /** Spy on the Roomba as it goes about its normal business

Run it with something like:

   java roombacomm.SpyAuto /dev/cu.KeySerial1
  Usage: 
  roombacomm.SpyAuto serialportname [protocol] [options]
where: protocol (optional) is SCI or OI [options] can be one or more of: -pause n -- pause n millseconds between sensor read -debug -- turn on debug output -hwhandshake -- use hardware-handshaking, for Windows Bluetooth -nohwhandshake -- don't use hardware-handshaking -flush -- flush on sends(), normally not needed -power -- power on/off Roomba (if interface supports it)
* */ public class SpyAuto { static String usage = "Usage: \n"+ " roombacomm.SpyAuto [protocol] [options]\n" + "where: protocol (optional) is SCI or OI\n" + "[options] can be one or more of:\n"+ " -pause -- pause n millseconds between sensor read\n"+ " -debug -- turn on debug output\n"+ " -hwhandshake -- use hardware-handshaking, for Windows Bluetooth\n"+ " -nohwhandshake -- don't use hardware-handshaking\n"+ " -flush -- flush on sends(), normally not needed\n"+ " -power -- power on/off Roomba (if interface supports it)\n"+ "\n"; static boolean debug = false; static boolean hwhandshake = false; static boolean power = false; static int pausetime = 500; public static void main(String[] args) { if( args.length == 0 ) { System.out.println( usage ); System.exit(0); } String portname = args[0]; // e.g. "/dev/cu.KeySerial1" RoombaCommSerial roombacomm = new RoombaCommSerial(true, pausetime); for( int i=1; i60; i-- ) { roombacomm.spinLeftAt( 1000 ); roombacomm.pause( s64ths/2 ); roombacomm.spinRightAt( 1000 ); roombacomm.pause( s64ths/2 ); roombacomm.stop(); } } public static void createTribblePurrSong() { byte cmd[] = { (byte)RoombaComm.SONG, 2, 7, // define song 68, 4, 67, 4, 66, 4, 65, 4, 64, 4, 63, 4, 62, 4 }; roombacomm.send( cmd ); } public static void bark() { System.out.println("bark"); roombacomm.vacuum(true); roombacomm.playNote( 50, 5 ); roombacomm.pause(150); roombacomm.vacuum(false); } */