/******************************************************************************************************************* * * Answers to the request for a measurement. * ******************************************************************************************************************/ @Nonnull private static MeasureWithPrecision<ColorTemperature> parseTemperature (final @Nonnull ConsoleOutput output, final @Nonnull String regexp) { final Scanner scanner = output.filteredAndSplitBy(regexp, "[ (K)]"); final int t = scanner.nextInt(); scanner.next(); // K scanner.next(); // blank scanner.next(); // Delta scanner.next(); // E final double de = scanner.nextDouble(); return measureWithPrecision(kelvin(t), de); } }
/******************************************************************************************************************* * * 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 ColorPoints colorPoints = new ColorPoints(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(colorPoints, ccTemp, planckianTemp, daylightTemp).send(); } }
/******************************************************************************************************************* * * 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(); } }
/******************************************************************************************************************* * * Answers to the request for a measurement. * ******************************************************************************************************************/ @Nonnull private static MeasureWithPrecision<ColorTemperature> parseTemperature (final @Nonnull ConsoleOutput output, final @Nonnull String regexp) { final Scanner scanner = output.filteredAndSplitBy(regexp, "[ (K)]"); final int t = scanner.nextInt(); scanner.next(); // K scanner.next(); // blank scanner.next(); // Delta scanner.next(); // E final double de = scanner.nextDouble(); return measureWithPrecision(kelvin(t), de); } }