public void moveTo(float inputX) { if (controller == null) { error(String.format("%s's controller is not set", getName())); return; } // the magic mapping float outputY = calc(inputX); if (outputY > outputYMax || outputY < outputYMin) { if ((int) outputY == outputY) { warn(String.format("%s.moveTo(%d) out of range", getName(), (int) outputY)); } else { warn(String.format("%s.moveTo(%f) out of range", getName(), outputY)); } return; } // FIXME - currently their is no timerPosition // this could be gotten with 100 * outputY for some valid range log.info("servoWrite({})", outputY); controller.servoWrite(getName(), (int) outputY); lastActivityTime = System.currentTimeMillis(); this.inputX = inputX; }
@Override public String getControllerName() { if (controller == null) { return null; } return controller.getName(); }
public void setSpeed(Float speed) { if (speed == null) { return; } if (controller == null) { error("setSpeed - controller not set"); return; } controller.setServoSpeed(getName(), speed); }
public boolean detach() { if (!isAttached) { log.info(String.format("%s.detach() - already detach - attach first", getName())); return false; } if (controller != null) { if (controller.servoDetach(getName())) { isAttached = false; // changed state broadcastState(); return true; } } return false; }
/* (non-Javadoc) * @see org.myrobotlab.service.interfaces.ServoControl#attach() */ public boolean attach() { lastActivityTime = System.currentTimeMillis(); if (isAttached) { log.info(String.format("%s.attach() - already attached - detach first", getName())); return false; } if (controller == null) { error("no valid controller can not attach %s", getName()); return false; } isAttached = controller.servoAttach(getName(), pin); if (isAttached) { // changed state broadcastState(); } return isAttached; }
/* (non-Javadoc) * @see org.myrobotlab.service.interfaces.ServoControl#stopServo() */ @Override public void stopServo() { controller.servoStop(getName()); }