next up previous
Next: 5.8 SensorView.java Up: 5 examples/view サンプル Previous: 5.6 PortView.java

5.7 MotorView.java


import josx.platform.rcx.*;

public class MotorView extends PortView
{
  static final int MAXSTATE = 3;
  static final int MAXPOWER = 7;

  public static final MotorView A =
         new MotorView( Motor.A, 0);
  public static final MotorView B =
         new MotorView( Motor.B, 1);
  public static final MotorView C =
         new MotorView( Motor.C, 2);

  final Motor motor;

  int iState;
  int iPower;

  MotorView( Motor m, int n )
  {
    super( true, n);
    motor = m;

    iState = 0;
    iPower = 7;
    setState();
    setPower();
  }

  void setPower()
  {
    motor.setPower(iPower);
  }

  void setState()
  {
    if (iState == 0)
      motor.flt();
    else if (iState == 1)
      motor.forward();
    else if (iState == 2)
      motor.backward();
    else if (iState == 3)
      motor.stop();
  }

  public void showPort()
  {
    if (iState == 0)
      {}
    else if (iState == 1)
      LCD.setSegment(
        LCDSegment.motorForward( number));
    else if (iState == 2)
      LCD.setSegment(
        LCDSegment.motorBackward( number));
    else if (iState == 3){
      LCD.setSegment(
        LCDSegment.motorForward( number));
      LCD.setSegment(
        LCDSegment.motorBackward( number));
    }
  }

  public void showValues()
  {
    LCDProgramNumber.set (iState);
    LCDNumber.set (iPower, 0, true);
  }

  public void runPressed()
  {
    iState++;
    if (iState > MAXSTATE)
      iState = 0;
    setState();
  }

  public void prgmPressed()
  {
    iPower++;
    if (iPower > MAXPOWER)
      iPower = 0;
    setPower();
  }

  public void shutdown()
  {
    motor.stop();
  }
}


generated through LaTeX2HTML. M.Inaba 平成18年5月6日