Skip to content

Latest commit

 

History

History
65 lines (50 loc) · 2.53 KB

Meadow.Foundation.Sensors.Light.AnalogLightSensor.md

File metadata and controls

65 lines (50 loc) · 2.53 KB
uidslug
Meadow.Foundation.Sensors.Light.AnalogLightSensor
/docs/api/Meadow.Foundation/Meadow.Foundation.Sensors.Light.AnalogLightSensor
AnalogLightSensor
Status<img src="https://img.shields.io/badge/Working-brightgreen" style={{ width: "auto", height: "-webkit-fill-available" }} alt="Status badge: working" />
Source codeGitHub
NuGet packageNuGet Gallery for Meadow.Foundation

Code Example

AnalogLightSensoranalogLightSensor;publicoverrideTaskInitialize(){Resolver.Log.Info("Initializing...");// configure our AnalogLightSensor sensoranalogLightSensor=newAnalogLightSensor(analogPin:Device.Pins.A03);//==== IObservable Pattern with an optional notification filter.varconsumer=AnalogLightSensor.CreateObserver(handler: result =>Resolver.Log.Info($"Observer filter satisfied: {result.New.Lux:N2} lux, old: {result.Old.Value.Lux:N2} lux"),// only notify if the change is greater than 0.5filter: result =>{if(result.Oldis{}old){return(result.New-old).Abs().Lux>0.5;// returns true if > 0.5 change.}returnfalse;}// if you want to always get notified, pass null for the filter://filter: null);analogLightSensor.Subscribe(consumer);// classical .NET events can also be used:analogLightSensor.Updated+=(sender,result)=>Resolver.Log.Info($"Lux changed: {result.New.Lux:N2} lux, old: {result.Old?.Lux:N2} lux");//==== One-off reading use case/patternReadIlluminance().Wait();// Spin up the sampling thread so that events are raised and IObservable notifications are sent.analogLightSensor.StartUpdating(TimeSpan.FromMilliseconds(1000));returnTask.CompletedTask;}protectedasyncTaskReadIlluminance(){varilluminance=awaitanalogLightSensor.Read();Resolver.Log.Info($"Initial lux: {illuminance.Lux:N2} lux");}

Sample project(s) available on GitHub

close