Мобильный принтер Zebra ZQ 510, совместимый с Motorola MC32NO (Windows Embedded Compact 7.0)

Возникла проблема с подключением к новому приобретенному мобильному принтеру Zebra ZQ 510 от Motorola MC32N0 через Bluetooth с использованием следующего устаревшего кода (ссылка на InTheHand.Net.Personal dll):

using InTheHand.Net;
using InTheHand.Net.Bluetooth;
using InTheHand.Net.Sockets;
using InTheHand.Net.Ports;

BluetoothAddress mac = BluetoothAddress.Parse("B0B44879581D");
BluetoothEndPoint btEndPoint = new BluetoothEndPoint(mac, BluetoothService.SerialPort);
BluetoothClient bluetoothClient = new BluetoothClient();
bluetoothClient.Connect(btEndPoint);

Мой обходной путь - использовать функцию BluetoothSecurity.PairRequest () для сопряжения принтера, но вручную назначить последовательный порт (COM5 или COM9) с помощью приложения BTUI. Затем используйте следующий код (ссылающийся на Zebra Link OS SDK (ZSDK_API.dll)):

using ZSDK_API.Comm;
// Instantiate connection for ZPL Serial port on COM5. 
ZebraPrinterConnection thePrinterConn = new SerialPrinterConnection("COM5");
// Open the connection - physical connection is established here.
thePrinterConn.Open();

подключиться к нему для печати.

У вас есть два вопроса: 1. Хотите узнать, совместим ли мобильный принтер Zebra ZQ 510 с функцией Smart Bluetooth с Motorola MC32NO (работающий в Windows Embedded Compact 7.0)? 2. Есть ли способ программно создать виртуальный COM-порт в Windows CE?


person CJ_    schedule 12.09.2016    source источник


Ответы (2)


Наконец-то найду решение. Скачал Motorola EMDK for .NET v2.9 со ссылкой на Symbol.WPAN.dll. с помощью следующего кода удалось подключиться к принтеру Zebra ZQ510 и распечатать этикетку, как ожидалось. Не забудьте скопировать BTInterface.dll из EMDK в папку с программой.

        using Symbol.WPAN.Bluetooth;
        Bluetooth m_Bluetooth = new Bluetooth();
        m_Bluetooth.Enable();
        RemoteDevice rd = new RemoteDevice("", currentBTPrinterMacAdd, "");
        rd.LocalComPort = LocalComPortForZebraPrinterZQ510;
        m_Bluetooth.RemoteDevices.Add(rd);

        if (!rd.IsPaired)
            rd.Pair();

        rd.OpenPort();
        rd.Write(Encoding.Default.GetBytes(template));

        rd.ClosePort();
        rd.UnPair();

        m_Bluetooth.Disable();
        m_Bluetooth.Dispose();
person CJ_    schedule 13.09.2016

Я видел ту же проблему на QLN320 без ссылки Zebra. В руке будет пара, но если вы попытаетесь использовать локальный порт, произойдет ошибка.

Вот тот же пример только в VB 2008. Он работает нормально, но время от времени немного медленное соединение.

Imports Symbol.WPAN
Imports Symbol.WPAN.Bluetooth
Imports System.Text



Dim printline As String = ""
printline = printline & "! 0 200 200 631 1" & vbCrLf 
printline = printline & "PW 576" & vbCrLf
printline = printline & "TONE 0" & vbCrLf
printline = printline & "SPEED 4" & vbCrLf
printline = printline & "ON-FEED IGNORE" & vbCrLf
printline = printline & "NO-PACE" & vbCrLf
printline = printline & "GAP-SENSE" & vbCrLf
printline = printline & "BT 7 0 3" & vbCrLf
printline = printline & "B 128 2 30 458 69 62 02029990324041000014" & vbCrLf 
printline = printline & "PRINT" & vbCrLf

Dim m_Bluetooth As New Bluetooth
m_Bluetooth.Enable()
m_Bluetooth.RemoteDevices.DeleteAll()
Dim rd As New RemoteDevice("Printer35", "", "") 
rd.LocalComPort = 5
m_Bluetooth.RemoteDevices.Add(rd)

Try

    If Not (rd.IsPaired) Then
        rd.Pair("0035")
    End If

    rd.OpenPort()

    Dim ByteArray As Byte() = Encoding.Default.GetBytes(printline & vbCrLf)

    rd.Write(ByteArray)

    rd.ClosePort()

    rd.UnPair()
    m_Bluetooth.RemoteDevices.DeleteAll()

Catch ex As Exception

    MessageBox.Show("Error  - " & ex.Message.ToString)

End Try

m_Bluetooth.Disable()
m_Bluetooth.Dispose()
person user2186810    schedule 20.07.2018