.Net OPOS - Открыть кассовый ящик через чековый принтер через тот же USB-порт - Epson TM-M88V - PullRequest
0 голосов
/ 30 сентября 2019

Я использую Microsoft.PointofSale для работы с чековым принтером Epson, подключенным к кассовому ящику. Чековый принтер подключен к моему ПК через порт USB, поэтому, по сути, два устройства используют один и тот же порт. Проблема в том, что оба устройства пытаются запросить и включить при инициализации. Поскольку кассовый чек инициализируется первым, принтер чеков не может запускать команды, поскольку у кассового чека уже есть эксклюзивная заявка на порт. В результате денежный ящик работает, но принтер чеков не работает. Мне удалось решить эту проблему, удалив заявки и разрешить вызовы из методов инициализации и вместо этого добавив запрос / включение команд в начале выполнения и освободив устройства в конце команды.

Однако мне сообщили, что это плохая практика, и я ищу альтернативное решение. Мне нужно оставить Claim и Enable в методе Initialize.

Я пытался использовать DirectIO для вызова функции выдвижения ящика от PosPrinter на основе кодов команд ESC / POS, но я получаю эту ошибку:

Была сделана попытка получить доступ к физическому устройству, котороеутверждается другим контрольным экземпляром. Другой экземпляр должен освободить физическое устройство, прежде чем этот доступ может быть сделан. Для устройств исключительного использования приложению также необходимо запросить физическое устройство, прежде чем доступ будет легальным.

Какова оптимальная практика вызова CashDrawer, подключенного через чековый принтер, с использованием .Net OPOS?

...