public MainForm() { InitializeComponent(); var options = new ConfigurationOptions { ConnectTimeout = 5000, SyncTimeout = 2000, KeepAlive = 60, EndPoints = { {Settings.Default.RedisHost, Settings.Default.RedisPort} } }; _redis = ConnectionMultiplexer.Connect(options); var retries = 0; while (!_redis.IsConnected) { var config = _redis.Configuration; _redis.Dispose(); if (retries > 10) { MessageBox.Show(string.Format("Could not connect to the Redis server with configuration: {0}", config)); Application.Exit(); } _redis = ConnectionMultiplexer.Connect(options, Console.Out); retries++; } _red = new LightControlSet(button_RedOn, button_RedOff, button_RedFlash, textBox_RedOnDuty, textBox_RedOffDuty, textBox_RedOffset, textBox_RedPower, button_RedApply); _green = new LightControlSet(button_GreenOn, button_GreenOff, button_GreenFlash, textBox_GreenOnDuty, textBox_GreenOffDuty, textBox_GreenOffset, textBox_GreenPower, button_GreenApply); _blueYellow = new LightControlSet(button_BlueOn, button_BlueOff, button_BlueFlash, textBox_BlueOnDuty, textBox_BlueOffDuty, textBox_BlueOffset, textBox_BluePower, button_BlueApply); }
private void UpdateLightStatus(LightControlSet controls, LightStatus updatedStatus, LightStatus previousStatus) { if (previousStatus.State != updatedStatus.State) { controls.SetState(updatedStatus.State); } var change = false; if (previousStatus.OffDuty != updatedStatus.OffDuty) { controls.OffDutyValue.Invoke((Action)(() => { controls.OffDutyValue.Text = updatedStatus.OffDuty.ToString(CultureInfo.InvariantCulture); })); change = true; } if (previousStatus.OnDuty != updatedStatus.OnDuty) { controls.OffDutyValue.Invoke((Action)(() => { controls.OnDutyValue.Text = updatedStatus.OnDuty.ToString(CultureInfo.InvariantCulture); })); change = true; } if (previousStatus.Offset != updatedStatus.Offset) { controls.OffDutyValue.Invoke((Action)(() => { controls.OffsetValue.Text = updatedStatus.Offset.ToString(CultureInfo.InvariantCulture); })); change = true; } if (previousStatus.Power != updatedStatus.Power) { controls.OffDutyValue.Invoke((Action)(() => { controls.PowerValue.Text = updatedStatus.Power.ToString(CultureInfo.InvariantCulture); })); change = true; } if (change) { controls.OffDutyValue.Invoke((Action) (() => { controls.ApplyButton.PerformClick(); button_Sync.PerformClick(); })); } }
private LightStatus ReadFormLightStatus(LightControlSet controls) { return new LightStatus { State = controls.GetState(), Power = byte.Parse(controls.PowerValue.Text.EmptyOrNullAs("0")), OffDuty = byte.Parse(controls.OffDutyValue.Text.EmptyOrNullAs("0")), OnDuty = byte.Parse(controls.OnDutyValue.Text.EmptyOrNullAs("0")), Offset = byte.Parse(controls.OffsetValue.Text.EmptyOrNullAs("0")) }; }