Microsoft OPOS зависает на заявке после перезагрузки ПК

#c# #wpf #printing #opos #posiflex

Вопрос:

Я использую » Точку обслуживания Microsoft для .Библиотеки DLL NET версии v1.14.’ для подключения к термопринтеру Posiflex (модель PP8800). Фрагмент кода, который я использую, также вставлен ниже. Я запускаю этот код из приложения WPF.

Но я столкнулся с одной странной проблемой. Если принтер включен и машина, к которой подключен принтер, перезапущена, приведенный ниже вставленный код не может претендовать на принтер, а также не выводится из Claim() инструкции. Принимая во внимание, что если я выключу принтер, а затем включу его перед запуском приведенного ниже фрагмента кода, то он сможет претендовать на принтер.

 PosExplorer posExplorer = new PosExplorer();
var printerList = posExplorer.GetDevices(DeviceType.PosPrinter);

foreach (DeviceInfo item in printerList)
{
    if (item.ServiceObjectName != printerName)
        continue;

    posPrinter = (PosPrinter)posExplorer.CreateInstance(item);
    posPrinter.Open();

    posPrinter.PowerNotify = PowerNotification.Enabled;
    posPrinter.FlagWhenIdle = true;
    posPrinter.StatusUpdateEvent  = PosPrinter_StatusUpdateEvent;
    posPrinter.DirectIOEvent  = PosPrinter_DirectIOEvent;
    posPrinter.ErrorEvent  = PosPrinter_ErrorEvent;
    posPrinter.OutputCompleteEvent  = PosPrinter_OutputCompleteEvent;

    try
    {
        posPrinter.Claim(100);
        if (posPrinter.Claimed)
        {
            isPrinterClaimed = true;                           
        }
        else
        {    
            isPrinterClaimed = false;
        }
    }
    catch (Exception ex)
    {
        isPrinterClaimed = false;
    }

    break;
}
 

Кто-нибудь сталкивался с такой же проблемой при использовании библиотек OPOS?

Комментарии:

1. Возможно, вы используете принтер с интерфейсом локальной сети и отключаете свой POS-терминал, не вызывая метод выпуска/закрытия? Такое явление может возникнуть в зависимости от способа управления/реализации принтера и POSfor.NET/OPOS объект обслуживания. У поставщиков принтеров может быть множество таких случаев, поэтому, пожалуйста, свяжитесь с продавцом для получения информации о проблемах и о том, как с ними справиться.

2. Спасибо @kunif за ваш комментарий. Я подключил принтер к USB-порту, и да, я освобождаю принтер до закрытия приложения. Я также нахожусь в контакте с Поставщиком, но пока не получил ответа.