public boolean notifyMeasurementEnding(Iterable<Measurement> measurements) throws IOException {
    println(controlLogMessageRenderer.render(new StopMeasurementLogMessage(measurements)));
    for (Measurement measurement : measurements) {
      println(String.format("I got a result! %s: %f%s%n", measurement.description(),
          measurement.value().magnitude() / measurement.weight(), measurement.value().unit()));
    }
    writer.flush();
    return shouldKeepMeasuring();
  }
public boolean notifyMeasurementEnding ( Iterable < Measurement > measurements ) throws IOException { println ( controlLogMessageRenderer . render ( new StopMeasurementLogMessage ( measurements ) ) ) ; for ( Measurement measurement : measurements ) { println ( String . format ( "I got a result! %s: %f%s%n" , measurement . description ( ) , measurement . value ( ) . magnitude ( ) / measurement . weight ( ) , measurement . value ( ) . unit ( ) ) ) ; } writer . flush ( ) ; return shouldKeepMeasuring ( ) ; }
Report the measurements and wait for it to be ack'd by the runner.  Returns true if we should
keep measuring, false otherwise.