Пример #1
0
		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();
				}
			}

		}
Пример #2
0
		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;
					}
				}
			}
		}