/******************************************************************************************************************* * * Answers to the request for a measurement. * ******************************************************************************************************************/ public void onMeasurementRequest (final @ListensTo @Nonnull MeasurementRequest message) throws InterruptedException { log.info("onMeasurementRequest({})", message); Thread.sleep(500); final ColorCoordinatesSet coordinatesSet = new ColorCoordinatesSet(colorLab(r.nextDouble() * 100, r.nextDouble() * 100, r.nextDouble() * 100), colorXYZ(r.nextDouble() * 100, r.nextDouble() * 100, r.nextDouble() * 100)); final MeasureWithPrecision<ColorTemperature> ccTemp = measureWithPrecision(kelvin(2000 + r.nextInt(6000)), r.nextDouble() * 10); final MeasureWithPrecision<ColorTemperature> planckianTemp = measureWithPrecision(kelvin(2000 + r.nextInt(6000)), r.nextDouble() * 10); final MeasureWithPrecision<ColorTemperature> daylightTemp = measureWithPrecision(kelvin(2000 + r.nextInt(6000)), r.nextDouble() * 10); new MeasurementMessage(coordinatesSet, ccTemp, planckianTemp, daylightTemp).send(); } }
/******************************************************************************************************************* * * ******************************************************************************************************************/ public void onNewMeasurement (final @ListensTo @Nonnull MeasurementMessage message) throws NotFoundException { log.info("onNewMeasurement({})", message); presentation.hideMeasureInProgress(); final XYZColorCoordinates xyzColor = message.getColorCoordinatesSet().find(XYZColorCoordinates.class); // http://www.freelists.org/post/argyllcms/Measuring-whitepoint-and-luminance-with-spotread,1 final UniformityMeasurement measurement = new UniformityMeasurement(message.getDaylightTemperature().getMeasure(), (int)xyzColor.getY()); measurementMapByPosition.put(currentPosition, measurement); presentation.renderMeasurementCellAt(currentPosition, String.format("Luminance: %d cd/m\u00b2", measurement.getLuminance()), String.format("White point: %d K", measurement.getTemperature().getValue())); eventuallyMoveBackControlPanel(); prepareNextMeasurement(message.getCollaboration()); }
log.info("DayLight T: {}", daylightTemp); return new MeasurementMessage(coordinatesSet, ccTemp, planckianTemp, daylightTemp);
parseMessage(executor.getStdout()).send();