Xamarin Zebra Sdk-蓝牙打印“读取失败,套接字可能关闭或超时,读取ret:-1”

时间:2018-10-06 08:34:24

标签: xamarin bluetooth xamarin.android zebra-printers

我正在使用最新的Xamarin Zebra SDK来打印到ZQ520打印机。大约 70%的时间可以正常打印。其他30%的时间因错误而失败

  

“读取失败,套接字可能关闭或超时,读取ret:-1”

并且需要关闭/打开打印机才能进行打印。

我发送的内容是签名和标签,并且正在通过不安全的蓝牙连接进行打印。

事实证明很难一致地重现该错误。我认为这可能与下面代码中的initialResponseTimeout和responseCompletionTimeout有关。有人有设置这些值的经验吗?

        IConnection connection = null;

        try
        {

            connection = new BluetoothConnectionInsecure(address);
            connection.Open();

            using (var printer = ZebraPrinterFactory.GetInstance(
                               PrinterLanguage.Cpcl, connection))
            {

                using (var image = ZebraImageFactory.GetImage(signature))
                {
                   printer.StoreImage(SignatureFilename, image,
                              image.Width, image.Height);
                }

                // pause to ensure image is saved
                Thread.Sleep(1000);

                var initialResponseTimeout = 3000;
                var responseCompletionTimeout = 1000;

                // is the timeout too small or large ?
                connection.SendAndWaitForResponse(printLabel,
                initialResponseTimeout, responseCompletionTimeout, null);
            }

        }

        catch (Exception exception)
        {
            Microsoft.AppCenter.Crashes.Crashes.TrackError(exception);
        }
        finally
        {
            connection.Close();
        } 

1 个答案:

答案 0 :(得分:0)

当我尝试直接与设备连接时遇到了相关问题。 建议您在本地计算机上创建一个应用程序,以便与您的手机和打印机进行通信。还要尝试增加代码中的超时时间。

include_directories