Package lejos.remote.ev3
Class RMIRemoteRegulatedMotor
- java.lang.Object
-
- java.rmi.server.RemoteObject
-
- java.rmi.server.RemoteServer
-
- java.rmi.server.UnicastRemoteObject
-
- lejos.remote.ev3.RMIRemoteRegulatedMotor
-
- All Implemented Interfaces:
java.io.Serializable,java.rmi.Remote,RMIRegulatedMotor
public class RMIRemoteRegulatedMotor extends java.rmi.server.UnicastRemoteObject implements RMIRegulatedMotor
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedRMIRemoteRegulatedMotor(java.lang.String portName, char motorType)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddListener(RegulatedMotorListener listener)Adds a listener object that will be notified when rotation has started or stoppedvoidbackward()voidclose()voidflt(boolean immediateReturn)Set the motor into float mode.voidforward()intgetLimitAngle()Return the limit angle (if any)floatgetMaxSpeed()Returns the maximim speed of the motor.intgetSpeed()Returns the current motor speed.intgetTachoCount()booleanisMoving()booleanisStalled()returns true if motor is stalledRegulatedMotorListenerremoveListener()Removes the RegulatedMotorListener from this class.voidresetTachoCount()voidrotate(int angle)Causes motor to rotate by a specified angle.voidrotate(int angle, boolean immediateReturn)causes motor to rotate through angle;
iff immediateReturn is true, method returns immediately and the motor stops by itself
If any motor method is called before the limit is reached, the rotation is canceled.voidrotateTo(int limitAngle)Causes motor to rotate to limitAngle;
Then getTachoCount should be within +- 2 degrees of the limit angle when the method returnsvoidrotateTo(int limitAngle, boolean immediateReturn)causes motor to rotate to limitAngle;
if immediateReturn is true, method returns immediately and the motor stops by itself
and getTachoCount should be within +- 2 degrees if the limit angle If any motor method is called before the limit is reached, the rotation is canceled.voidsetAcceleration(int acceleration)Set the required rate of acceleration degrees/s/svoidsetSpeed(int speed)Set motor speed.voidsetStallThreshold(int error, int time)Set the parameters for detecting a stalled motor.voidstop(boolean immediateReturn)Causes motor to stop, pretty much instantaneously.voidwaitComplete()Wait until the current movement operation is complete (this can include the motor stalling).-
Methods inherited from class java.rmi.server.UnicastRemoteObject
clone, exportObject, exportObject, exportObject, exportObject, exportObject, unexportObject
-
-
-
-
Method Detail
-
addListener
public void addListener(RegulatedMotorListener listener) throws java.rmi.RemoteException
Description copied from interface:RMIRegulatedMotorAdds a listener object that will be notified when rotation has started or stopped- Specified by:
addListenerin interfaceRMIRegulatedMotor- Throws:
java.rmi.RemoteException
-
removeListener
public RegulatedMotorListener removeListener() throws java.rmi.RemoteException
Description copied from interface:RMIRegulatedMotorRemoves the RegulatedMotorListener from this class.- Specified by:
removeListenerin interfaceRMIRegulatedMotor- Returns:
- The RegulatedMotorListener that was removed, if any. Null if none existed.
- Throws:
java.rmi.RemoteException
-
stop
public void stop(boolean immediateReturn) throws java.rmi.RemoteExceptionDescription copied from interface:RMIRegulatedMotorCauses motor to stop, pretty much instantaneously. In other words, the motor doesn't just stop; it will resist any further motion. Cancels any rotate() orders in progress- Specified by:
stopin interfaceRMIRegulatedMotor- Parameters:
immediateReturn- if true do not wait for the motor to actually stop- Throws:
java.rmi.RemoteException
-
flt
public void flt(boolean immediateReturn) throws java.rmi.RemoteExceptionDescription copied from interface:RMIRegulatedMotorSet the motor into float mode. This will stop the motor without braking and the position of the motor will not be maintained.- Specified by:
fltin interfaceRMIRegulatedMotor- Parameters:
immediateReturn- If true do not wait for the motor to actually stop- Throws:
java.rmi.RemoteException
-
waitComplete
public void waitComplete() throws java.rmi.RemoteExceptionDescription copied from interface:RMIRegulatedMotorWait until the current movement operation is complete (this can include the motor stalling).- Specified by:
waitCompletein interfaceRMIRegulatedMotor- Throws:
java.rmi.RemoteException
-
rotate
public void rotate(int angle, boolean immediateReturn) throws java.rmi.RemoteExceptionDescription copied from interface:RMIRegulatedMotorcauses motor to rotate through angle;
iff immediateReturn is true, method returns immediately and the motor stops by itself
If any motor method is called before the limit is reached, the rotation is canceled. When the angle is reached, the method isMoving() returns false;- Specified by:
rotatein interfaceRMIRegulatedMotor- Parameters:
angle- through which the motor will rotateimmediateReturn- iff true, method returns immediately, thus allowing monitoring of sensors in the calling thread.- Throws:
java.rmi.RemoteException- See Also:
RegulatedMotor.rotate(int, boolean)
-
rotate
public void rotate(int angle) throws java.rmi.RemoteExceptionDescription copied from interface:RMIRegulatedMotorCauses motor to rotate by a specified angle. The resulting tachometer count should be within +- 2 degrees on the NXT. This method does not return until the rotation is completed.- Specified by:
rotatein interfaceRMIRegulatedMotor- Parameters:
angle- by which the motor will rotate.- Throws:
java.rmi.RemoteException
-
rotateTo
public void rotateTo(int limitAngle) throws java.rmi.RemoteExceptionDescription copied from interface:RMIRegulatedMotorCauses motor to rotate to limitAngle;
Then getTachoCount should be within +- 2 degrees of the limit angle when the method returns- Specified by:
rotateToin interfaceRMIRegulatedMotor- Parameters:
limitAngle- to which the motor will rotate, and then stop (in degrees). Includes any positive or negative int, even values > 360.- Throws:
java.rmi.RemoteException
-
rotateTo
public void rotateTo(int limitAngle, boolean immediateReturn) throws java.rmi.RemoteExceptionDescription copied from interface:RMIRegulatedMotorcauses motor to rotate to limitAngle;
if immediateReturn is true, method returns immediately and the motor stops by itself
and getTachoCount should be within +- 2 degrees if the limit angle If any motor method is called before the limit is reached, the rotation is canceled. When the angle is reached, the method isMoving() returns false;- Specified by:
rotateToin interfaceRMIRegulatedMotor- Parameters:
limitAngle- to which the motor will rotate, and then stop (in degrees). Includes any positive or negative int, even values > 360.immediateReturn- iff true, method returns immediately, thus allowing monitoring of sensors in the calling thread.- Throws:
java.rmi.RemoteException
-
getLimitAngle
public int getLimitAngle() throws java.rmi.RemoteExceptionDescription copied from interface:RMIRegulatedMotorReturn the limit angle (if any)- Specified by:
getLimitAnglein interfaceRMIRegulatedMotor- Returns:
- the current limit angle
- Throws:
java.rmi.RemoteException
-
setSpeed
public void setSpeed(int speed) throws java.rmi.RemoteExceptionDescription copied from interface:RMIRegulatedMotorSet motor speed. As a rule of thumb 100 degrees per second are possible for each volt on an NXT motor. Therefore, disposable alkaline batteries can achieve a top speed of 900 deg/sec, while a rechargable lithium battery pack can achieve 740 deg/sec.- Specified by:
setSpeedin interfaceRMIRegulatedMotor- Parameters:
speed- in degrees per second.- Throws:
java.rmi.RemoteException
-
getSpeed
public int getSpeed() throws java.rmi.RemoteExceptionDescription copied from interface:RMIRegulatedMotorReturns the current motor speed.- Specified by:
getSpeedin interfaceRMIRegulatedMotor- Returns:
- motor speed in degrees per second
- Throws:
java.rmi.RemoteException
-
getMaxSpeed
public float getMaxSpeed() throws java.rmi.RemoteExceptionDescription copied from interface:RMIRegulatedMotorReturns the maximim speed of the motor.- Specified by:
getMaxSpeedin interfaceRMIRegulatedMotor- Returns:
- the maximum speed of the Motor in degrees per second.
- Throws:
java.rmi.RemoteException
-
isStalled
public boolean isStalled() throws java.rmi.RemoteExceptionDescription copied from interface:RMIRegulatedMotorreturns true if motor is stalled- Specified by:
isStalledin interfaceRMIRegulatedMotor- Returns:
- true if stalled
- Throws:
java.rmi.RemoteException
-
setStallThreshold
public void setStallThreshold(int error, int time) throws java.rmi.RemoteExceptionDescription copied from interface:RMIRegulatedMotorSet the parameters for detecting a stalled motor. A motor will be recognized as stalled if the movement error (the amount the motor lags the regulated position) is greater than error for a period longer than time.- Specified by:
setStallThresholdin interfaceRMIRegulatedMotor- Parameters:
error- The error thresholdtime- The time that the error threshold needs to be exceeded for.- Throws:
java.rmi.RemoteException
-
setAcceleration
public void setAcceleration(int acceleration) throws java.rmi.RemoteExceptionDescription copied from interface:RMIRegulatedMotorSet the required rate of acceleration degrees/s/s- Specified by:
setAccelerationin interfaceRMIRegulatedMotor- Throws:
java.rmi.RemoteException
-
close
public void close() throws java.rmi.RemoteException- Specified by:
closein interfaceRMIRegulatedMotor- Throws:
java.rmi.RemoteException
-
forward
public void forward() throws java.rmi.RemoteException- Specified by:
forwardin interfaceRMIRegulatedMotor- Throws:
java.rmi.RemoteException
-
backward
public void backward() throws java.rmi.RemoteException- Specified by:
backwardin interfaceRMIRegulatedMotor- Throws:
java.rmi.RemoteException
-
resetTachoCount
public void resetTachoCount() throws java.rmi.RemoteException- Specified by:
resetTachoCountin interfaceRMIRegulatedMotor- Throws:
java.rmi.RemoteException
-
getTachoCount
public int getTachoCount() throws java.rmi.RemoteException- Specified by:
getTachoCountin interfaceRMIRegulatedMotor- Throws:
java.rmi.RemoteException
-
isMoving
public boolean isMoving() throws java.rmi.RemoteException- Specified by:
isMovingin interfaceRMIRegulatedMotor- Throws:
java.rmi.RemoteException
-
-