@Override
    public void motorsCommand(boolean sideBrush, boolean sideBrushClockwise,
            boolean mainBrush, boolean mainBrushOutward, boolean vacuum)
            throws RoombaIFException {
        checkIsOpened("driveCommand");
        byte d = 0;
        d += ((sideBrush) ? 0 : 1);
        d += ((vacuum) ? 0 : 2);
        d += ((mainBrush) ? 0 : 4);
        d += ((sideBrushClockwise) ? 0 : 8);
        d += ((mainBrushOutward) ? 0 : 16);
        byte[] c = {MOTORS_COMMAND, d};
        writeBytes(c);
    }