private async Task ConfigureApplicationConfig() { if (_config != null) { if (_config.GpioConfig == null) { _config.GpioConfig = new SmartBulbGpioConfig() { GpioColorRed = PIN_RED, GpioColorGreen = PIN_GREEN, GpioColorBlue = PIN_BLUE }; } _config.FlashFrequency = _config.FlashFrequency < MIN_FREQUENCY_MS ? MIN_FREQUENCY_MS : _config.FlashFrequency; if (_config.State == DeviceState.On) { if (_config.GpioConfig.GpioColorRed != _loadPinRed) { _loadPinRed = _config.GpioConfig.GpioColorRed; _gpioService.InitGPIOOutput(_loadPinRed); } if (_config.GpioConfig.GpioColorGreen != _loadPinGreen) { _loadPinGreen = _config.GpioConfig.GpioColorGreen; _gpioService.InitGPIOOutput(_loadPinGreen); } if (_config.GpioConfig.GpioColorBlue != _loadPinBlue) { _loadPinBlue = _config.GpioConfig.GpioColorBlue; _gpioService.InitGPIOOutput(_loadPinBlue); } _previousColor = ColorState.Unknown; } if (_disconnected && !_config.IgnoreFlashAlerts) { await BlinkLED(ColorState.Green, 2, 200); if (_previousColor != ColorState.Unknown) { SetLED(_previousColor); } _disconnected = false; } } }