private void statusUpdateThread() { try { ZebraPrinterConnection connection = getConnection(); ZebraPrinter printer = ZebraPrinterFactory.GetInstance(connection); String statusMessages; while (getConnection() != null && connection.IsConnected()) { PrinterStatus printerStatus = printer.GetCurrentStatus(); PrinterStatusMessages messages = new PrinterStatusMessages(printerStatus); String[] messagesArray = messages.GetStatusMessage(); statusMessages = "Ready to Print: " + Convert.ToString(printerStatus.IsReadyToPrint); statusMessages += "\r\nLabels in Batch: " + Convert.ToString(printerStatus.LabelsRemainingInBatch); statusMessages += "\r\nLabels in Buffer: " + Convert.ToString(printerStatus.NumberOfFormatsInReceiveBuffer) + "\r\n\r\n"; foreach (String message in messagesArray) { statusMessages += message + "\r\n"; } Invoke(new statusEventHandler(updateStatusMessage), statusMessages); Thread.Sleep(4000); } } catch (ZebraException) { disconnected(); updateGuiFromWorkerThread("COMM Error! Disconnected", Color.Red); } }
private void GetPrinterStatus() { Connection printerConnection = null; Task.Run(() => { try { printerConnection = connectionSelector.GetConnection(); printerConnection.Open(); ZebraPrinter printer = ZebraPrinterFactory.GetInstance(printerConnection); ZebraPrinterLinkOs linkOsPrinter = ZebraPrinterFactory.CreateLinkOsPrinter(printer); ZebraPrinterStatus status = (linkOsPrinter != null) ? linkOsPrinter.GetCurrentStatus() : printer.GetCurrentStatus(); string[] printerStatusString = new PrinterStatusMessages(status).GetStatusMessage(); List <string> printerStatusPrefix = GetPrinterStatusPrefix(status); StringBuilder sb = new StringBuilder(); foreach (string s in printerStatusPrefix) { sb.AppendLine(s); } foreach (string s in printerStatusString) { sb.AppendLine(s); } Application.Current.Dispatcher.Invoke(() => { printerStatus.Text = sb.ToString(); }); } catch (ConnectionException e) { MessageBoxCreator.ShowError(e.Message, "Connection Error"); } catch (ZebraPrinterLanguageUnknownException e) { MessageBoxCreator.ShowError(e.Message, "Connection Error"); } finally { if (printerConnection != null) { try { printerConnection.Close(); } catch (ConnectionException) { } finally { SetTestButtonState(true); } } else { SetTestButtonState(true); } } }); }