private void SendDMX() { if (!connected) { return; } // break FT_SetBreakOn(deviceHandle); System.Threading.Thread.Sleep(1); FT_SetBreakOff(deviceHandle); string buffer = Microsoft.VisualBasic.Strings.Chr(startCode).ToString() + DMXController.getDMXBuffer(); // write entire thing try { if (FT_Write(deviceHandle, buffer, buffer.Length, ref bytesWritten) != FT_OK) { lastError = "Failed to Write DMX."; throw new Exception(lastError); } } catch (Exception e) { System.Windows.MessageBoxResult ask = MessageBox.Show("Try again?", "Device Error: " + e.Message, MessageBoxButton.YesNoCancel); if (ask == System.Windows.MessageBoxResult.No) { Controller.EndProgram(); } else if (ask == System.Windows.MessageBoxResult.Cancel) { DMXController.debugging = true; connectionOpen = false; } } }