.. highlight:: java Ambient Light Sensor ==================== Ambient light sensors convert light intensity into a digital signal using a combination of photodiodes and analog-to-digital converters. The light sensor of choice on select boards is the `LTR-329ALS `_ device from Lite-On, represented by the `AmbientLightLtr329 `_ interface. :: import com.mbientlab.metawear.module.AmbientLightLtr329; final AmbientLightLtr329 alsLtr329 = board.getModule(AmbientLightLtr329.class); Configuration ------------- The sensor has three configurable parameters, set with the module's `ConfigEditor `_ class: ================ ========================================= Parameter Description ================ ========================================= Gain Controls data range and resolution Integration Time Measurement time for each cycle Measurement Rate How frequently to update illuminance data ================ ========================================= :: import com.mbientlab.metawear.module.AmbientLightLtr329.*; // Set the gain to 8x // Set integration time to 250ms // Set measurement rate to 50ms alsLtr329.configure() .gain(Gain.LTR329_8X) .integrationTime(IntegrationTime.LTR329_TIME_250MS) .measurementRate(MeasurementRate.LTR329_RATE_50MS) .commit(); Illuminance Data ---------------- Illuminance data is categorized as an async data producer; data is interpreted as a float value and is in units of lux (lx). :: alsLtr329.illuminance().addRouteAsync(new RouteBuilder() { @Override public void configure(RouteComponent source) { source.stream(new Subscriber() { @Override public void apply(Data data, Object... env) { Log.i("MainActivity", String.format(Locale.US, "illuminance = %.3f lx". data.value(Float.class))); } }); } }).continueWith(new Continuation() { @Override public Void then(Task task) throws Exception { alsLtr329.illuminance().start(); return null; } });