internal override async Task PollAsyncInternal() { if (brick.Connected) { GetInputValuesResponse previous = state; this.state = await brick.DirectCommands.GetInputValuesAsyncInternal(SensorPort); if (state != null) { if (previous != null && previous.AsBoolean != state.AsBoolean) { OnChangedEventHandler(); } if (state.AsBoolean) OnPressedEventHandler(); else OnReleasedEventHandler(); } } }
internal override async Task PollAsyncInternal() { if (brick.Connected) { GetInputValuesResponse previous = state; this.state = await brick.DirectCommands.GetInputValuesAsyncInternal(SensorPort); if (null != state) { switch (colorSensorMode) { case ColorSensorMode.Lamp: break; case ColorSensorMode.ColorDetector: if (previous != null && state.ScaledValue != previous.ScaledValue) { OnChangedEventHandler(); } if (colorMatch.Contains((SensorColor)state.ScaledValue)) OnColorDetectedEventHandler((SensorColor)state.ScaledValue); break; case ColorSensorMode.LightSensor: if (previous != null && (Math.Abs(state.ScaledValue - lastIntensityEvent) > intensityChangeThreshold)) { lastIntensityEvent = state.ScaledValue; OnChangedEventHandler(); } break; } } } }