/** * When a ZebraPrinterConnection has been established, this method * gets the printer and gathers information from the printer such as * the printer language and prints to the printer * **/ private void threadedConnect(String addressName) { try { /** * Open the connection * **/ connection.Open(); Thread.Sleep(1000); } catch (ZebraPrinterConnectionException) { updateGuiFromWorkerThread("Unable to connect with printer", Color.Red); disconnect(); } catch (Exception) { updateGuiFromWorkerThread("Error communicating with printer", Color.Red); disconnect(); } printer = null; if (connection != null && connection.IsConnected()) { /** * Get the printer instance and the printer language, then print image * **/ try { updateGuiFromWorkerThread("Getting printer...", Color.Goldenrod); Thread.Sleep(1000); printer = ZebraPrinterFactory.GetInstance(connection); updateGuiFromWorkerThread("Got Printer, getting Language...", Color.LemonChiffon); Thread.Sleep(1000); PrinterLanguage pl = printer.GetPrinterControlLanguage(); updateGuiFromWorkerThread("Printer Language " + pl.ToString(), Color.LemonChiffon); Thread.Sleep(1000); updateGuiFromWorkerThread("Formatting Image", Color.AliceBlue); printer.GetGraphicsUtil().PrintImage(image, 0, 0, 550, 412, false); updateGuiFromWorkerThread("Printing To " + addressName, Color.Green); Thread.Sleep(2000); disconnect(); } catch (ZebraPrinterConnectionException) { updateGuiFromWorkerThread("Unknown Printer Language", Color.Red); printer = null; Thread.Sleep(1000); disconnect(); } catch (ZebraPrinterLanguageUnknownException) { updateGuiFromWorkerThread("Unknown Printer Language", Color.Red); printer = null; Thread.Sleep(1000); disconnect(); } } updateButtonFromWorkerThread(true); }
/** * When a ZebraPrinterConnection has been established, this method * gets the printer and gathers information from the printer such as * the printer language. ToolsUtil will then be used to default the printer. * **/ private void threadedConnect(String addressName) { try { /** * Open the connection * **/ connection.Open(); Thread.Sleep(1000); } catch (ZebraPrinterConnectionException) { updateGuiFromWorkerThread("Unable to connect with printer", Color.Red); disconnect(); } catch (Exception) { updateGuiFromWorkerThread("Error communicating with printer", Color.Red); disconnect(); } printer = null; if (connection != null && connection.IsConnected()) { /** * Get the printer instance and the printer language, then do a factory default on the printer. * **/ try { updateGuiFromWorkerThread("Getting printer...", Color.Goldenrod); Thread.Sleep(1000); printer = ZebraPrinterFactory.GetInstance(connection); updateGuiFromWorkerThread("Got Printer, getting Language...", Color.LemonChiffon); Thread.Sleep(1000); PrinterLanguage pl = printer.GetPrinterControlLanguage(); updateGuiFromWorkerThread("Printer Language " + pl.ToString(), Color.LemonChiffon); ToolsUtil printer_default = printer.GetToolsUtil(); printer_default.RestoreDefaults(); updateGuiFromWorkerThread("Restoring Defaults", Color.Aqua); Thread.Sleep(1000); disconnect(); } catch (ZebraPrinterConnectionException) { updateGuiFromWorkerThread("Unknown Printer Language", Color.Red); printer = null; Thread.Sleep(1000); disconnect(); } catch (ZebraPrinterLanguageUnknownException) { updateGuiFromWorkerThread("Unknown Printer Language", Color.Red); printer = null; Thread.Sleep(1000); disconnect(); } } }
/** * Common function used to open the connection depending on connection * type such as IP/DNS, Serial and Bluetooth(R). Sends a sample label * to print for checking connectivity and then close the connection. **/ private void threadedConnect(String addressName) { // Open the connection try { connection.Open(); Thread.Sleep(1000); } catch (ZebraPrinterConnectionException) { updateGuiFromWorkerThread("Unable to connect with printer", Color.Red); disconnect(); } catch (Exception) { updateGuiFromWorkerThread("Error communicating with printer", Color.Red); disconnect(); } printer = null; // If connection opened successfully than get the printer language and display it. // Also sends a sample lable to print and than close the connection. if (connection != null && connection.IsConnected()) { try { updateGuiFromWorkerThread("Getting printer...", Color.Goldenrod); Thread.Sleep(1000); printer = ZebraPrinterFactory.GetInstance(connection); updateGuiFromWorkerThread("Got Printer, getting Language...", Color.LemonChiffon); Thread.Sleep(1000); PrinterLanguage pl = printer.GetPrinterControlLanguage(); updateGuiFromWorkerThread("Printer Language " + pl.ToString(), Color.LemonChiffon); Thread.Sleep(1000); updateGuiFromWorkerThread("Connected to " + addressName, Color.Green); Thread.Sleep(1000); sendLabel(); Thread.Sleep(1000); disconnect(); } catch (ZebraPrinterConnectionException) { updateGuiFromWorkerThread("Unknown Printer Language", Color.Red); printer = null; Thread.Sleep(1000); disconnect(); } catch (ZebraPrinterLanguageUnknownException) { updateGuiFromWorkerThread("Unknown Printer Language", Color.Red); printer = null; Thread.Sleep(1000); disconnect(); } } }
private void threadedConnect(String addressName) { try { connection.Open(); Thread.Sleep(1000); } catch (ZebraPrinterConnectionException) { updateGuiFromWorkerThread("Unable to connect with printer", Color.Red); disconnect(); } catch (Exception) { updateGuiFromWorkerThread("Error communicating with printer", Color.Red); disconnect(); } printer = null; if (connection != null && connection.IsConnected()) { try { updateGuiFromWorkerThread("Getting printer...", Color.Goldenrod); Thread.Sleep(1000); printer = ZebraPrinterFactory.GetInstance(connection); updateGuiFromWorkerThread("Got Printer, getting Language...", Color.LemonChiffon); Thread.Sleep(1000); PrinterLanguage pl = printer.GetPrinterControlLanguage(); updateGuiFromWorkerThread("Printer Language " + pl.ToString(), Color.LemonChiffon); Thread.Sleep(1000); updateGuiFromWorkerThread("Connected to " + addressName, Color.Green); Thread.Sleep(1000); //disconnect(); } catch (ZebraPrinterConnectionException) { updateGuiFromWorkerThread("Unknown Printer Language", Color.Red); printer = null; Thread.Sleep(1000); disconnect(); } catch (ZebraPrinterLanguageUnknownException) { updateGuiFromWorkerThread("Unknown Printer Language", Color.Red); printer = null; Thread.Sleep(1000); disconnect(); } } updateButtonFromWorkerThread(true); }
private async void TestButton_Clicked(object sender, EventArgs eventArgs) { SetInputEnabled(false); Connection connection = null; try { connection = CreateConnection(); } catch (Exception e) { UpdateConnectionStatus($"Error: {e.Message}", Color.Red); } if (connection == null) { SetInputEnabled(true); return; } await Task.Run(async() => { try { await DisplayConnectionStatusAsync("Connecting...", Color.Goldenrod, 1500); connection.Open(); await DisplayConnectionStatusAsync("Connected", Color.Green, 1500); await DisplayConnectionStatusAsync("Determining printer language...", Color.Goldenrod, 1500); PrinterLanguage printerLanguage = ZebraPrinterFactory.GetInstance(connection).PrinterControlLanguage; await DisplayConnectionStatusAsync("Printer language: " + printerLanguage.ToString(), Color.Blue, 1500); UpdateConnectionStatus("Sending data...", Color.Goldenrod); connection.Write(GetTestLabelBytes(printerLanguage)); await Task.Delay(1000); } catch (Exception e) { await DisplayConnectionStatusAsync($"Error: {e.Message}", Color.Red, 3000); } finally { try { connection?.Close(); await DisplayConnectionStatusAsync("Disconnecting...", Color.Goldenrod, 1000); UpdateConnectionStatus("Not connected", Color.Red); } catch (ConnectionException) { } } }); SetInputEnabled(true); }
private void threadedConnect(String addressName) { try { connection.Open(); Thread.Sleep(1000); } catch (ZebraPrinterConnectionException) { updateGuiFromWorkerThread("Unable to connect with printer", Color.Red); disconnect(); } catch (ZebraGeneralException e) { updateGuiFromWorkerThread(e.Message, Color.Red); disconnect(); } catch (Exception) { updateGuiFromWorkerThread("Error communicating with printer", Color.Red); disconnect(); } printer = null; if (connection != null && connection.IsConnected()) { try { printer = ZebraPrinterFactory.GetInstance(connection); PrinterLanguage pl = printer.GetPrinterControlLanguage(); updateGuiFromWorkerThread("Printer Language " + pl.ToString(), Color.LemonChiffon); Thread.Sleep(1000); updateGuiFromWorkerThread("Connected to " + addressName, Color.Green); Thread.Sleep(1000); this.connectionEstablished(); } catch (ZebraPrinterConnectionException) { updateGuiFromWorkerThread("Unknown Printer Language", Color.Red); printer = null; Thread.Sleep(1000); disconnect(); } catch (ZebraPrinterLanguageUnknownException) { updateGuiFromWorkerThread("Unknown Printer Language", Color.Red); printer = null; Thread.Sleep(1000); disconnect(); } } }
private async void TestButton_Click(object sender, RoutedEventArgs e) { SetTestButtonState(false); Connection printerConnection = null; if (connectionSelector.ConnectionType == ConnectionType.Network) { try { printerConnection = connectionSelector.GetConnection(); } catch (ConnectionException) { UpdateStatusBarOnGui("Invalid Address and/or Port", ConnectionState.Error); await Task.Delay(1000); UpdateStatusBarOnGui("Not Connected", ConnectionState.Error); return; } } else if (connectionSelector.ConnectionType == ConnectionType.Bluetooth) { try { printerConnection = connectionSelector.GetConnection(); } catch (ConnectionException) { UpdateStatusBarOnGui("Invalid Mac Address", ConnectionState.Error); await Task.Delay(1000); UpdateStatusBarOnGui("Not Connected", ConnectionState.Error); } } else if (connectionSelector.SelectedUsbPrinter is DiscoveredPrinterDriver printer) { try { printerConnection = new DriverPrinterConnection(printer.PrinterName); } catch (ConnectionException) { return; } } else if (connectionSelector.ConnectionType == ConnectionType.UsbDirect) { try { printerConnection = connectionSelector.GetConnection(); } catch (ConnectionException) { UpdateStatusBarOnGui("Invalid Address", ConnectionState.Error); await Task.Delay(1000); UpdateStatusBarOnGui("Not Connected", ConnectionState.Error); return; } } else { return; } await Task.Run(async() => { try { UpdateStatusBarOnGui("Connecting...", ConnectionState.Progress); await Task.Delay(1500); printerConnection.Open(); UpdateStatusBarOnGui("Connected", ConnectionState.Success); await Task.Delay(1500); UpdateStatusBarOnGui("Determining Printer Language...", ConnectionState.Progress); await Task.Delay(1500); PrinterLanguage printerLanguage = ZebraPrinterFactory.GetInstance(printerConnection).PrinterControlLanguage; UpdateStatusBarOnGui("Printer Language " + printerLanguage.ToString(), ConnectionState.Info); await Task.Delay(1500); UpdateStatusBarOnGui("Sending Data...", ConnectionState.Progress); printerConnection.Write(GetConfigLabel(printerLanguage)); } catch (ConnectionException) { UpdateStatusBarOnGui("Communications Error", ConnectionState.Error); } catch (ZebraPrinterLanguageUnknownException) { UpdateStatusBarOnGui("Invalid Printer Language", ConnectionState.Error); } finally { try { await Task.Delay(1000); UpdateStatusBarOnGui("Disconnecting...", ConnectionState.Progress); if (printerConnection != null) { printerConnection.Close(); } await Task.Delay(1000); UpdateStatusBarOnGui("Not Connected", ConnectionState.Error); } catch (ConnectionException) { } finally { SetTestButtonState(true); } } }); }
/** * Check that macAddress is valid * Connect to device using BluetoothPrinterConnection class * **/ private void doConnectBT() { if (connection != null) { doDisconnect(); } updateButtonFromWorkerThread(false); if (this.macAddress == null || this.macAddress.Length != 12) { updateGuiFromWorkerThread("Invalid MAC Address", Color.Red); disconnect(); } else { updateGuiFromWorkerThread("Connecting... Please wait...", Color.Goldenrod); try { connection = new BluetoothPrinterConnection(this.macAddress); connection.Open(); Thread.Sleep(1000); } catch (ZebraPrinterConnectionException) { updateGuiFromWorkerThread("Unable to connect with printer", Color.Red); disconnect(); } catch (ZebraException) { updateGuiFromWorkerThread("COMM Error! Disconnected", Color.Red); disconnect(); } catch (Exception) { updateGuiFromWorkerThread("Error communicating with printer", Color.Red); disconnect(); } /** * Get printer from ZebraPrinterFactory * Get printer language * Thread.Sleep allow statusBar updates to be seen before they change * **/ printer = null; if (connection != null && connection.IsConnected()) { try { updateGuiFromWorkerThread("Getting printer...", Color.Goldenrod); Thread.Sleep(1000); printer = ZebraPrinterFactory.GetInstance(connection); updateGuiFromWorkerThread("Got Printer, getting Language...", Color.LemonChiffon); Thread.Sleep(1000); PrinterLanguage pl = printer.GetPrinterControlLanguage(); updateGuiFromWorkerThread("Printer Language " + pl.ToString(), Color.LemonChiffon); Thread.Sleep(1000); updateGuiFromWorkerThread("Connected to " + macAddress, Color.Green); Thread.Sleep(1000); } catch (ZebraPrinterConnectionException) { updateGuiFromWorkerThread("Unknown Printer Language", Color.Red); printer = null; Thread.Sleep(1000); disconnect(); } catch (ZebraPrinterLanguageUnknownException) { updateGuiFromWorkerThread("Unknown Printer Language", Color.Red); printer = null; Thread.Sleep(1000); disconnect(); } updateButtonFromWorkerThread(true); } } }