lejos.nxt.remote
Class RemoteMotor

java.lang.Object
  extended by lejos.nxt.remote.RemoteMotor
All Implemented Interfaces:
NXTProtocol

public class RemoteMotor
extends Object
implements NXTProtocol

Motor class. Contains three instances of Motor. Usage: Motor.A.forward(500);

Author:
Brian Bagnall

Field Summary
 byte turnRatio
           
 
Fields inherited from interface lejos.nxt.remote.NXTProtocol
ANGLE, ANGLESTEPSMODE, BOOLEANMODE, BOOT, BRAKE, CELSIUSMODE, CLOSE, CUSTOM, DELETE, DELETE_USER_FLASH, DIRECT_COMMAND_NOREPLY, DIRECT_COMMAND_REPLY, FAHRENHEITMODE, FIND_FIRST, FIND_NEXT, GET_BATTERY_LEVEL, GET_CURRENT_PROGRAM_NAME, GET_DEVICE_INFO, GET_FIRMWARE_VERSION, GET_INPUT_VALUES, GET_OUTPUT_STATE, HIGH_SPEED_BUFFER, KEEP_ALIVE, LIGHT_ACTIVE, LIGHT_INACTIVE, LOWSPEED, LOWSPEED_9V, LS_GET_STATUS, LS_READ, LS_WRITE, MESSAGE_READ, MESSAGE_WRITE, MODEMASK, MOTOR_RUN_STATE_IDLE, MOTOR_RUN_STATE_RAMPDOWN, MOTOR_RUN_STATE_RAMPUP, MOTOR_RUN_STATE_RUNNING, MOTORON, NO_OF_SENSOR_TYPES, NO_SENSOR, NXJ_DEFRAG, NXJ_DISCONNECT, NXJ_FIND_FIRST, NXJ_FIND_NEXT, NXJ_PACKET_MODE, OPEN_APPEND_DATA, OPEN_READ, OPEN_READ_LINEAR, OPEN_WRITE, OPEN_WRITE_DATA, OPEN_WRITE_LINEAR, PCTFULLSCALEMODE, PERIODCOUNTERMODE, PLAY_SOUND_FILE, PLAY_TONE, POLL, POLL_BUFFER, POLL_LENGTH, RAWMODE, READ, REFLECTION, REGULATED, REGULATION_MODE_IDLE, REGULATION_MODE_MOTOR_SPEED, REGULATION_MODE_MOTOR_SYNC, REPLY_COMMAND, RESET_MOTOR_POSITION, RESET_SCALED_INPUT_VALUE, SET_BRICK_NAME, SET_INPUT_MODE, SET_OUTPUT_STATE, SLOPEMASK, SOUND_DB, SOUND_DBA, START_PROGRAM, STOP_PROGRAM, STOP_SOUND_PLAYBACK, SWITCH, SYSTEM_COMMAND_NOREPLY, SYSTEM_COMMAND_REPLY, TEMPERATURE, TRANSITIONCNTMODE, WRITE
 
Constructor Summary
RemoteMotor(NXTCommand nxtCommand, int id)
           
 
Method Summary
 int backward()
          Causes motor to rotate backward.
 int flt()
          Stops the motor without using brakes.
 int forward()
          Causes motor to rotate forward indefinitely.
 int getBlockTacho()
          Deprecated.  
 char getId()
          Get the ID of the motor.
 int getPower()
          Return the power that the motor is set to
 int getRotationCount()
          Deprecated.  
 int getSpeed()
          Get the current speed that the motor is set to (not the actual speed)
 int getTachoCount()
          Returns the rotation count for the motor.
 boolean isMoving()
           
 boolean isRotating()
          CURRENTLY NOT IMPLEMENTED! Use isMoving() for now.
 int resetBlockTacho()
          Deprecated.  
 int resetRotationCounter()
          Deprecated.  
 int resetTachoCount()
          Resets the rotation counter to zero.
 int rotate(long count)
          Causes the motor to rotate a certain count.
 int rotate(long count, boolean returnNow)
          Causes the motor to rotate a certain count.
 int rotateTo(long target)
          Rotates to a desired tacho count.
 int rotateTo(long target, boolean returnNow)
          Rotates to a desired tacho count.
 void setPower(int power)
          Sets the power of the motor
 void setRegulationMode(int mode)
          This method determines if and how the motor will be regulated.
 void setSpeed(int speed)
          Sets motor speed , in degrees per second; Up to 900 is possible with 8 volts.
 int stop()
          Stops the motor using brakes.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

turnRatio

public byte turnRatio
Constructor Detail

RemoteMotor

public RemoteMotor(NXTCommand nxtCommand,
                   int id)
Method Detail

getId

public final char getId()
Get the ID of the motor. One of 'A', 'B' or 'C'.


forward

public int forward()
Causes motor to rotate forward indefinitely.

Returns:
Error value. 0 means succcess. See icommand.nxtcomm.ErrorMessages for details.

backward

public int backward()
Causes motor to rotate backward.

Returns:
Error value. 0 means succcess. See icommand.nxtcomm.ErrorMessages for details.

setSpeed

public void setSpeed(int speed)
Sets motor speed , in degrees per second; Up to 900 is possible with 8 volts. NOTE: If using LEGO firmware this will convert the number into power. 900 = 100% power, 450 = 50% power.

Parameters:
speed - value in degrees/sec

setPower

public void setPower(int power)
Sets the power of the motor

Parameters:
power - the power (-100 to +100)

getSpeed

public int getSpeed()
Get the current speed that the motor is set to (not the actual speed)

Returns:
the speed in degrees per second

getPower

public int getPower()
Return the power that the motor is set to

Returns:
the power (-100 to +100)

getTachoCount

public int getTachoCount()
Returns the rotation count for the motor. NOTE: If you are using leJOS NXJ firmware this will return the same value as getRotationCount() because the leJOS NXJ firmware only uses one Tachometer variable.

Returns:
Tachometer count.

getRotationCount

public int getRotationCount()
Deprecated. 

Returns the rotation count for the motor. The rotation count is something like the trip odometer on your car. This count is reset each time a new function is called in Pilot.

Returns:
rotation count.

getBlockTacho

public int getBlockTacho()
Deprecated. 

Block Tachometer Count is the count used to synchronize motors with one another. NOTE: If you are using leJOS NXJ firmware this will always return 0 because this variable is not used in in leJOS NXJ firmware. Use getRotationCount() instead.

Returns:
Block Tachometer count.

rotate

public int rotate(long count,
                  boolean returnNow)
Causes the motor to rotate a certain count. The motor will also backtrack to the desired count when done. NOTE: This method returns almost immediately if returnNow = true.

Parameters:
count - Number of counts to rotate motor.
returnNow - When true, method returns before the rotation is complete.
Returns:
Error value. 0 means success. See lejos.pc.comm.ErrorMessages for details.

isMoving

public boolean isMoving()

isRotating

public boolean isRotating()
CURRENTLY NOT IMPLEMENTED! Use isMoving() for now. returns true when motor is rotating toward a specified angle


rotate

public int rotate(long count)
Causes the motor to rotate a certain count. This method returns after the rotation is completed. NOTE: This method currently doesn't work well with the LEGO firmware.

Parameters:
count - Number of counts to rotate motor.
Returns:
Error value. 0 means succcess. See icommand.nxtcomm.ErrorMessages for details.

setRegulationMode

public void setRegulationMode(int mode)
This method determines if and how the motor will be regulated. REGULATION_MODE_IDLE turns off regulation REGULATION_MODE_MOTOR_SPEED regulates the speed (I think) REGULATION_MODE_MOTOR_SYNC synchronizes this and any other motor with SYNC enabled.

Parameters:
mode - See NXTProtocol for enumerations: REGULATION_MODE_MOTOR_SYNC, REGULATION_MODE_MOTOR_SPEED, REGULATION_MODE_IDLE

rotateTo

public int rotateTo(long target)
Rotates to a desired tacho count. Does not return until rotation done. Note: The tachocount can not be reset to zero.

Parameters:
target -

rotateTo

public int rotateTo(long target,
                    boolean returnNow)
Rotates to a desired tacho count. Returns before the rotation is done if you include true as the argument.

Parameters:
target -

resetTachoCount

public int resetTachoCount()
Resets the rotation counter to zero.

Returns:
Error value. 0 means succcess. See icommand.nxtcomm.ErrorMessages for details.

resetRotationCounter

public int resetRotationCounter()
Deprecated. 

Calls resetTachoCount().

Returns:
the tacho count

resetBlockTacho

public int resetBlockTacho()
Deprecated. 

Resets the block tachometer. NOTE: If you are using leJOS NXJ firmware this will not do anything because BlockTacho is not used in the leJOS NXJ firmware. Use resetRotationCounter() instead.

Returns:
Error value. 0 means success. See lejos.pc.comm.ErrorMessages for details.

stop

public int stop()
Stops the motor using brakes.

Returns:
Error value. 0 means success. See lejos.pc.comm.ErrorMessages for details.

flt

public int flt()
Stops the motor without using brakes.

Returns:
Error value. 0 means success.