private void flashButton_Click(object sender, EventArgs e) { if (!InvokeRequired) { flashButton.Enabled = false; resetButton.Enabled = false; var mcu = mcuBox.Text; var filePath = filepathBox.Text; // Keep the form responsive during firmware flashing new Thread(() => { if (_usb.AreDevicesAvailable()) { var error = 0; if (mcu == "") { _printer.Print("Please select a microcontroller", MessageType.Error); error++; } if (filePath == "") { _printer.Print("Please select a file", MessageType.Error); error++; } if (error == 0) { _printer.Print("Attempting to flash, please don't remove device", MessageType.Bootloader); _flasher.Flash(mcu, filePath); } } else { _printer.Print("There are no devices available", MessageType.Error); } // Re-enable flash/reset button after flashing this.Invoke((MethodInvoker) delegate { flashButton.Enabled = true; resetButton.Enabled = _flasher.CanReset(); }); }).Start(); } else { Invoke(new Action <object, EventArgs>(flashButton_Click), sender, e); } }
private void EnableUI() { flashButton.Enabled = _flasher.CanFlash(); resetButton.Enabled = _flasher.CanReset(); clearEepromButton.Enabled = _flasher.CanClearEeprom(); }
private void EnableUI() { windowState.CanFlash = _flasher.CanFlash(); windowState.CanReset = _flasher.CanReset(); windowState.CanClearEeprom = _flasher.CanClearEeprom(); }