async private void ReadingChanged(LightSensor sender, LightSensorReadingChangedEventArgs args) { if (setAdaptive && arrLamp.Count != 0) { uint LIGHT_CUTOFF = 400; LightSensorReading reading = args.Reading; if (reading.IlluminanceInLux > LIGHT_CUTOFF) { foreach (LampStateConsumer s in arrLamp) { await s.SetBrightnessAsync(0); } } else { // Get a ratio and scale it to the light bulb's range // light is roughly logarithmic from lumens to human perception of brightness //double illum_value = 1 - (Math.Log10(reading.IlluminanceInLux) / 5.0); double illum_value = (LIGHT_CUTOFF - reading.IlluminanceInLux) / LIGHT_CUTOFF; // Round the value to the next highest integer (precision loss is negligible when working // on the order of 4 billion uint rounded_value = (uint)Math.Ceiling(illum_value * uint.MaxValue); foreach (LampStateConsumer s in arrLamp) { await s.SetBrightnessAsync(rounded_value); } } } }
/// <summary> /// Ambient Light Sensor adjusts the brightness of the display. Less ambient light equates to a dimmer display. /// </summary> /// <param name="lightSensor"></param> /// <param name="e"></param> private async void LightSensor_ReadingChanged(LightSensor lightSensor, LightSensorReadingChangedEventArgs e) { await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { try { LightSensorReading lightSensorReading = lightSensor.GetCurrentReading(); if (BrightnessOverrideSetting != null && BrightnessOverrideSetting.IsSupported) { const double maximumAllowedBrightness = 0.15; const double highestLuxValueBeforeFullBrightness = 25.0; double brightness = Math.Min(lightSensorReading.IlluminanceInLux, highestLuxValueBeforeFullBrightness) / highestLuxValueBeforeFullBrightness *maximumAllowedBrightness; if (PreviousDisplayBrightness != brightness) { BrightnessOverrideSetting.SetBrightnessLevel(brightness, DisplayBrightnessOverrideOptions.None); PreviousDisplayBrightness = brightness; } } } catch (Exception ex) { Telemetry.TrackException(nameof(LightSensor_ReadingChanged), ex); } }); }
private void OnLightSensorReadingChanged(LightSensor sender, LightSensorReadingChangedEventArgs args) { Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { txtLux.Text = args.Reading.IlluminanceInLux.ToString(); }); }
async void MainPage_ReadingChanged(LightSensor sender, LightSensorReadingChangedEventArgs args) { await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { TextLight.Text = string.Format(@"Light Sensor : {0}", args.Reading.IlluminanceInLux.ToString()); }); }
/// <summary> /// This is the event handler for ReadingChanged events. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> async private void ReadingChanged(object sender, LightSensorReadingChangedEventArgs e) { await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { LightSensorReading reading = e.Reading; ScenarioOutput_LUX.Text = String.Format("{0,5:0.00}", reading.IlluminanceInLux); }); }
private async void Sensor_ReadingChanged(LightSensor sender, LightSensorReadingChangedEventArgs args) { float lux = args.Reading.IlluminanceInLux; LightStateEnum state = GetState(lux); await Dispatcher.RunAsync( CoreDispatcherPriority.Normal, () => ChangeMode(state)); }
async void sensor_ReadingChanged(LightSensor sender, LightSensorReadingChangedEventArgs args) { await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { Lux.Text = args.Reading.IlluminanceInLux.ToString(); TimeStamp.Text = args.Reading.Timestamp.ToString(); }); }
private async void lightSensor_ReadingChanged(LightSensor sender, LightSensorReadingChangedEventArgs args) { await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { LightSensorReading reading = args.Reading; illumination.Text = String.Format("{0,2:0.00}", reading.IlluminanceInLux.ToString()); }); }
void OnReadingChanged(Sensor sender, LightSensorReadingChangedEventArgs args) { var handler = changed; if (handler != null) { var value = args.Reading.IlluminanceInLux; var e = new AmbientLightEventArgs(value); handler.Invoke(this, e); } }
void _lightSensor_ReadingChanged(LightSensor sender, LightSensorReadingChangedEventArgs args) { _dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { Lux = args.Reading.IlluminanceInLux; AppFrame.RequestedTheme = State.Equals("Dark", StringComparison.CurrentCultureIgnoreCase) ? ElementTheme.Dark : ElementTheme.Light; }); Debug.WriteLine("Lux: {0}", Lux); }
private void LightSensor_ReadingChanged(LightSensor sender, LightSensorReadingChangedEventArgs args) { if (!_autoLightDetectionEnabled) { return; } ushort currentLightSensorValue = Convert.ToUInt16(args.Reading.IlluminanceInLux); bool currentThemeIsDark = Convert.ToUInt16(_windowsThemeRegistryKey?.GetValue(WindowsRegistryKeys.ThemeKeyAppsThemeValue)) == 0; bool toSetDarkTheme = currentLightSensorValue < 20; bool hasToChangeTheme = currentThemeIsDark ^ toSetDarkTheme; if (hasToChangeTheme) { SetTheme(toSetDarkTheme, true); } }
/// <summary> /// Light sensor reading changed. Send data to Azure Event Hub if checkbox checked in the UI /// </summary> /// <param name="sender"></param> /// <param name="args"></param> async private void light_ReadingChanged(LightSensor sender, LightSensorReadingChangedEventArgs args) { await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { txtLightSensor.Text = args.Reading.IlluminanceInLux.ToString(); if (Convert.ToBoolean(chkLightSensor.IsChecked)) { ConnectTheDotsSensor sensor = ctdHelper.sensors.Find(item => item.measurename == "Light"); if (sensor != null) { sensor.value = args.Reading.IlluminanceInLux; sensor.timecreated = DateTime.UtcNow.ToString("o"); ctdHelper.sendMessage(sensor.ToJson()); } } }); }
public async void NewLight(LightSensor sender, LightSensorReadingChangedEventArgs args) { var reading = args == null?sender?.GetCurrentReading() : args.Reading; await dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { this[LIGHTSENSOR] = reading == null ? this[LIGHTSENSOR].New() : this[LIGHTSENSOR].New(reading.IlluminanceInLux, 0, 0, 0); if (this[LIGHTSENSOR].IsChanged) { OnPropertyChanged(new PropertyChangedEventArgs("ItemsList")); OnSensorUpdated?.Invoke(this[LIGHTSENSOR]); } }); if (SensorSwitches.P.HasValue && (SensorSwitches.P.Value == 1 || SensorSwitches.P.Value == 3)) { SensorSwitches.P = 0; } }
private async void LightSensorReadingChanged(object sender, LightSensorReadingChangedEventArgs e) { await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { LightSensorReading reading = e.Reading; object x, y; reading.Properties.TryGetValue("{C458F8A7-4AE8-4777-9607-2E9BDD65110A} 62", out x); reading.Properties.TryGetValue("{C458F8A7-4AE8-4777-9607-2E9BDD65110A} 63", out y); double chromaticity_x = -1, chromaticity_y = -1; try { chromaticity_x = double.Parse(x.ToString()); chromaticity_y = double.Parse(y.ToString()); } catch { } textblockLux.Text = reading.IlluminanceInLux.ToString(); textblockChromaticityx.Text = chromaticity_x.ToString(); textblockChromaticityy.Text = chromaticity_y.ToString(); }); }
private async void OnLightSensorReadingChangedAsync(LightSensor sender, LightSensorReadingChangedEventArgs args) { if (IsAutoExposureOn) { if (_lightMeasurements.Count > 10) { double average = _lightMeasurements.Average(); double delta = Math.Max(average, _lastLightMeasurement) - Math.Min(average, _lastLightMeasurement); if (Math.Max(average, _lastLightMeasurement) / delta > 0.3) // 30% change { await AdjustExposureAsync(average); } _lightMeasurements.Clear(); } else { _lightMeasurements.Add(args.Reading.IlluminanceInLux); } } }
static void lightSensor_ReadingChanged(LightSensor sender, LightSensorReadingChangedEventArgs args) { //Log.Write("LightSensor Reading: " + args.Reading.IlluminanceInLux); }
private async void ReadingChangedAsync(object sender, LightSensorReadingChangedEventArgs e) { await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { LightSensorReading reading = e.Reading; var lux = reading.IlluminanceInLux; if (lux < MIN_LUX) { if (state == 0) { state = 1; span = 0; } if (span < 100) { span++; } } else { if (state > 0) { if (state == 1) { if (span <= 10 && span >= 5) { txtOutput.Text += "·"; readed = false; } else if (span > 10 && span <= 50) { txtOutput.Text += "-"; readed = false; } } state = 0; span = 0; } span++; if (span > 10 && !readed) { //Letter recognition //TODO: Binary search tree can be used to improve efficiency. switch (txtOutput.Text) { case "·-": txtMsg.Text += "A"; break; case "-···": txtMsg.Text += "B"; break; case "-·-·": txtMsg.Text += "C"; break; case "-··": txtMsg.Text += "D"; break; case "·": txtMsg.Text += "E"; break; case "··-·": txtMsg.Text += "F"; break; case "--·": txtMsg.Text += "G"; break; case "····": txtMsg.Text += "H"; break; case "··": txtMsg.Text += "I"; break; case "·---": txtMsg.Text += "J"; break; case "-·-": txtMsg.Text += "K"; break; case "·-··": txtMsg.Text += "L"; break; case "--": txtMsg.Text += "M"; break; case "-·": txtMsg.Text += "N"; break; case "---": txtMsg.Text += "O"; break; case "·--·": txtMsg.Text += "P"; break; case "--·-": txtMsg.Text += "Q"; break; case "·-·": txtMsg.Text += "R"; break; case "···": txtMsg.Text += "S"; break; case "-": txtMsg.Text += "T"; break; case "··-": txtMsg.Text += "U"; break; case "···-": txtMsg.Text += "V"; break; case "·--": txtMsg.Text += "W"; break; case "-··-": txtMsg.Text += "X"; break; case "-·--": txtMsg.Text += "Y"; break; case "--··": txtMsg.Text += "Z"; break; } txtOutput.Text = ""; readed = true; } if (span == 20) { //Next word txtMsg.Text += " "; } else if (span == 100) { //Refresh txtMsg.Text = ""; span = 0; } } string des = lux > MIN_LUX ? "High" : "Low"; txtData.Text = $"{des} {state} {span}"; }); }
private void LightSensorOnReadingChanged(LightSensor sender, LightSensorReadingChangedEventArgs args) { _sensorSettings.LatestLightSensorReading = args.Reading; }