Привет всем. Я устраняю проблему термопринтера при печати через Bluetooth. Это принтер Extech 3750T, работающий под управлением Windows CE. Драйвер реализован поверх Winsock и написан на C ++. Насколько я могу судить, соединение в соответствии со спецификацией.
Кажется, проблема в том, что иногда (примерно один из десяти), когда изображение печатается, принтер просто останавливается. Затем, когда отправляется следующее задание на печать, оно выводит одну строку (шириной в один пиксель) мусора и печатает новую страницу.
Драйвер построен на основе RTF и переводит команды и графику RTF в символы, специфичные для принтера, и escape-последовательности. Руководство разработчика доступно здесь:
http://www.adtech.com.pl/upload/3750T_Developers_Manual.pdf
На этом этапе я совершенно уверен, что это не проблема управления потоком (кроме изменения размеров буфера может как-то помочь).
Одна вещь, которая подтверждается, заключается в том, что всякий раз, когда принтер облажается, он отправляет на устройство управляющий символ отсутствия бумаги, но к этому времени уже слишком поздно его спасать.
Кроме того, я думаю, что проблема вызвана отправкой изображения , пока текст все еще печатается. Грязный хак, вызванный просто ожиданием, равным 5 секундам, кажется, заставляет его уйти, но это неудобно для реализации в производственной среде, так как размер текста (размер шрифта, вес и т. Д.) Влияет на необходимую задержку.
Я думаю, что я ищу предложения о том, как решить эту проблему, а не явные решения.
Есть идеи?