public static void startBootloader(Smc device) { Console.WriteLine("Entering bootloader mode..."); string serialNumber = device.getSerialNumber(); device.startBootloader(); device.Dispose(); Console.WriteLine("Waiting for bootloader to connect..."); int msElapsed = 0; while (true) { foreach (DeviceListItem dli in Smc.getConnectedBootloaders()) { if (dli.serialNumber.Replace("-", "") == serialNumber.Replace("-", "")) { Console.WriteLine("Successfully entered bootloader mode."); return; } } System.Threading.Thread.Sleep(20); msElapsed += 20; if (msElapsed > 8000) { throw new Exception("Failed to enter bootloader mode: timeout elapsed."); } } }
/// <summary> /// Attempts to disconnect /// </summary> public void TryToDisconnect() { if (motor == null) { //Log("Connecting stopped."); return; } try { //Log("Disconnecting..."); motor.Dispose(); // Disconnect } catch (Exception e) { //Log(e); //Log("Failed to disconnect cleanly."); } finally { // do this no matter what motor = null; //Log("Disconnected from #" + SerialNumberTextBox.Text + "."); } }
/// <summary> /// Closes our connection to the device. Does not throw exceptions. /// </summary> void Disconnect() { if (device == null) { // We are already disconnected. return; } StatusLabel.Text = "Disconnected"; StatusLabel.ForeColor = Color.Red; try { device.Dispose(); // Disconnect } catch // Ignore exceptions. { } finally // Do this no matter what. { device = null; } }
public static void startBootloader(Smc device) { Console.WriteLine("Entering bootloader mode..."); string serialNumber = device.getSerialNumber(); device.startBootloader(); device.Dispose(); Console.WriteLine("Waiting for bootloader to connect..."); int msElapsed = 0; while(true) { foreach(DeviceListItem dli in Smc.getConnectedBootloaders()) { if (dli.serialNumber.Replace("-", "") == serialNumber.Replace("-", "")) { Console.WriteLine("Successfully entered bootloader mode."); return; } } System.Threading.Thread.Sleep(20); msElapsed += 20; if (msElapsed > 8000) { throw new Exception("Failed to enter bootloader mode: timeout elapsed."); } } }