/** * {@inheritDoc } * * @return {@inheritDoc } * @throws NotAvailableException {@inheritDoc } */ @Override protected IlluminanceState getNextServiceState() throws NotAvailableException { return IlluminanceState.newBuilder().setIlluminanceDataUnit(IlluminanceState.DataUnit.LUX).setIlluminance(RANDOM.nextInt(MAX_ILLUMINANCE)).build(); } }
@Override public IlluminanceState getIlluminanceState(final UnitType unitType) throws NotAvailableException { double averageIlluminance = 0; long timestamp = 0; Collection<IlluminanceStateProviderService> illuminanceStateProviderServices = getServices(unitType); int amount = illuminanceStateProviderServices.size(); for (IlluminanceStateProviderService service : illuminanceStateProviderServices) { if (!((UnitRemote) service).isDataAvailable()) { amount--; continue; } averageIlluminance += service.getIlluminanceState().getIlluminance(); timestamp = Math.max(timestamp, service.getIlluminanceState().getTimestamp().getTime()); } averageIlluminance = averageIlluminance / amount; return TimestampProcessor.updateTimestamp(timestamp, IlluminanceState.newBuilder().setIlluminance(averageIlluminance).setIlluminanceDataUnit(IlluminanceState.DataUnit.LUX), TimeUnit.MICROSECONDS, logger).build(); }
/** * Transform a number to an illuminationState by setting the number as the illuminance. * * @param value the brightness value * @return the corresponding brightness state */ public static IlluminanceState transform(final Double value) { IlluminanceState.Builder state = IlluminanceState.newBuilder(); state.setIlluminance(value); return state.build(); }