Форум программистов, компьютерный форум, киберфорум
Программирование драйверов
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 25.07.2016
Сообщений: 2
1

Двунаправленное общение с принтером (USB, TCP/IP порт 9100) из драйвера

25.07.2016, 15:38. Просмотров 1604. Ответов 1

Общая формулировка задачи.
Win драйвер должен перед печатью страницы определять есть ли в принтере бумага (посредством отправки Esc команды). В случае, если нет то поменять статус (принтера? джобы?), то выполнять попытки каждые несколько секунд пока не появится. В случае если появилась проверить какой тип бумаги вставлен (посредством отправки Esc команды) проверить совместима ли она с текущим документом и либо продолжить, либо сменить статус на соответствующий.

Вопросы.
1. Для "прослушивания" события планирую использовать DDI Hook INDEX_DrvSendPage:
https://msdn.microsoft.com/en-... s.85).aspx
https://msdn.microsoft.com/en-... s.85).aspx
Здесь должна быть прописана логика общения с принтером посредством Esc-команд и в зависимости от ответов меняться статус джобы (или принтера).
Верно ли это с точки зрения архитектуры?

2. Для общения с принтером используется bidirectional interface. Принтер может быть подключен через USB, а также как сетевое устройство (порт 9100).
Стандартный TCP/IP Port Monitor не поддерживает bidirectional. Поскольку написание custom TCP/IP Port Monitor является большой задачей, есть ли более экономные с точки зрения временного ресурса альтернативы у этого подхода?
Нормально ли вообще из драйвера общаться через BiDi interface?

3. Среди списка статусов джобы нет статуса, который бы показывал несоответствие типа вставленной бумаги и текущего документа:
https://msdn.microsoft.com/ru-... s.85).aspx
Можно ли добавить свой custom статус или стоит использовать JOB_STATUS_USER_INTERVENTION ?

4. Нормально ли что хендлеры SendPage или StartPage могут длительное время (часы, при отсутствии реакции от пользователя - бесконечный loop) повторно считывать статусы?

Если есть опыт в этом то готов заплатить за детальную консультацию (пишите в личку).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.07.2016, 15:38
Ответы с готовыми решениями:

Узнать модель принтера через порт tcp 9100
Добрый день. Нифига не понимают в программировании драйверов. Как получить ответ от сетевого...

Двунаправленное общение сайта с программой (программы с сайтом)
Посылать запросы с сайта в свою программу - нашёл. ПРосто поднимается в программе локальный сервер...

Общение с принтером через serial_port и exception "Inappropriate ioctl for device"
Доброго времени суток! Только начал использовать библиотеку Boost и хочу с её помощью посылать...

Общение игрострой TCP/UDP
Привет всем! Как написать чат, сериализовывать и десериализовывать я знаю. Передавать файлы по...

1
0 / 0 / 0
Регистрация: 25.07.2016
Сообщений: 2
22.08.2016, 13:26  [ТС] 2
Полезны любые мысли по этому поводу. Заранее спасибо.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.08.2016, 13:26

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Общение с внешним устройством через COM-порт
Добрый день! Есть задача общаться с контроллером подключенным к PC через виртуальный com-порт....

Общение через COM порт Chevrolet Explorer
Надумал вобщем такую штуку сделать как бортовой компьютер, так вот, есть планшет на платформе...

Общение приложения и драйвера по именованному каналу
Здравствуйте. Пытаюсь наладить связь между приложением и драйвером по именованному каналу (named...

Общение с микроконтроллером через COM порт для управления светодиодной лентой
Приветствую! Подскажите, что не так? Написал код в Visual Basic 2012 для включения светодиодных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.