/**
         * 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();
                }
            }
        }
Exemple #3
0
        /**
         * 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);
        }
Exemple #6
0
        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);
                    }
                }
            });
        }
Exemple #8
0
        /**
         * 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);
                }
            }
        }