private void SetRgbLedStatus(RgbLedStatus status) { switch (status) { case RgbLedStatus.Off: redLedPin.Write(GpioPinValue.Low); blueLedPin.Write(GpioPinValue.Low); greenLedPin.Write(GpioPinValue.Low); rgbLedStatus = RgbLedStatus.Off; break; case RgbLedStatus.Red: redLedPin.Write(GpioPinValue.High); blueLedPin.Write(GpioPinValue.Low); greenLedPin.Write(GpioPinValue.Low); rgbLedStatus = RgbLedStatus.Red; break; case RgbLedStatus.Blue: redLedPin.Write(GpioPinValue.Low); blueLedPin.Write(GpioPinValue.High); greenLedPin.Write(GpioPinValue.Low); rgbLedStatus = RgbLedStatus.Blue; break; case RgbLedStatus.Green: redLedPin.Write(GpioPinValue.Low); blueLedPin.Write(GpioPinValue.Low); greenLedPin.Write(GpioPinValue.High); rgbLedStatus = RgbLedStatus.Green; break; } }
private void pushButtonPin_ValueChanged(GpioPin sender, GpioPinValueChangedEventArgs args) { if (args.Edge == GpioPinEdge.FallingEdge) { if (thermostatStatus == ThermostatStatus.Running) { thermostatStatus = ThermostatStatus.Off; Debug.WriteLine("Thermostat status changed from Running to Off."); } switch (thermostatMode) { case ThermostatMode.Off: thermostatMode = ThermostatMode.Cool; rgbLedStatus = RgbLedStatus.Blue; SetRgbLedStatus(RgbLedStatus.Blue); ReadADC(); UpdateThermostat(); Debug.WriteLine("Thermostat mode changed from Off to Cool."); break; case ThermostatMode.Cool: thermostatMode = ThermostatMode.Heat; rgbLedStatus = RgbLedStatus.Red; SetRgbLedStatus(RgbLedStatus.Red); ReadADC(); UpdateThermostat(); Debug.WriteLine("Thermostat mode changed from Cool to Heat."); break; case ThermostatMode.Heat: thermostatMode = ThermostatMode.Off; rgbLedStatus = RgbLedStatus.Off; SetRgbLedStatus(RgbLedStatus.Off); Debug.WriteLine("Thermostat mode changed from Heat to Off."); break; } } }