@edu.umd.cs.findbugs.annotations.SuppressFBWarnings(value="FE_FLOATING_POINT_EQUALITY",justification="equality is specifically 'Unchanged' here") public void changeLocoSpeed(DccThrottle t,Section sec,float speed){
  if (sec == referenced && speed == desiredSpeedStep) {
    if (log.isDebugEnabled()) {
      log.debug("Already setting to desired speed step for this section");
    }
    return;
  }
  float sectionLength=sec.getActualLength();
  if (log.isDebugEnabled()) {
    log.debug("call to change speed via section " + sec.getDisplayName());
  }
  if (sec == referenced) {
    distanceRemaining=distanceRemaining - getDistanceTravelled(_throttle.getIsForward(),_throttle.getSpeedSetting(),((float)(System.nanoTime() - lastTimeTimerStarted) / 1000000000));
    sectionLength=distanceRemaining;
  }
 else {
    referenced=sec;
  }
  changeLocoSpeed(t,sectionLength,speed);
}

@ edu . umd . cs . findbugs . annotations . SuppressFBWarnings ( value = "FE_FLOATING_POINT_EQUALITY" , justification = "equality is specifically 'Unchanged' here" ) public void changeLocoSpeed ( DccThrottle t , Section sec , float speed ) { if ( sec == referenced && speed == desiredSpeedStep ) { if ( log . isDebugEnabled ( ) ) { log . debug ( "Already setting to desired speed step for this section" ) ; } return ; } float sectionLength = sec . getActualLength ( ) ; if ( log . isDebugEnabled ( ) ) { log . debug ( "call to change speed via section " + sec . getDisplayName ( ) ) ; } if ( sec == referenced ) { distanceRemaining = distanceRemaining - getDistanceTravelled ( _throttle . getIsForward ( ) , _throttle . getSpeedSetting ( ) , ( ( float ) ( System . nanoTime ( ) - lastTimeTimerStarted ) / 1000000000 ) ) ; sectionLength = distanceRemaining ; } else { referenced = sec ; } changeLocoSpeed ( t , sectionLength , speed ) ; }
set speed of a throttle to a speeed set by a float , using the section for the length details
