Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 30.10.2020, 13:07   #1
Эд17021978
Новичок
Джуниор
 
Регистрация: 29.10.2020
Сообщений: 3
По умолчанию Драйвер для USB принтера

Здравствуйте!


То есть имеется USB устройство реализованное на микроконтроллере Pic18f2550 с
под стыкованным TFT дисплеем.
Для данного устройства написан функциональный драйвер. Скомпонованный с помощью DDK.
Драйвер позволяет отправлять и принимать данные с USB устройства.
То есть WINDOWS приложение с помощью стандартных API функций открывает ХЕНДЛ драйвера
и соответственно ведет обмен данными с USB устройством, функциями
WriteFile();ReadFile();. В общем проблем нет.
Но теперь данное USB устройство решил превратить в USB принтер.
Изменил в дескрипторе устройств поля класс устройств на класс принтера.
Диспетчер устройств определил , что это принтер и загрузил
драйвер usbprint.sys поддержка usb принтера и на этом все.
Теперь сам вопрос.
Как превратить раннее разработанный функциональный драйвер
USB устройства в полноценный драйвер принтера. Чтоб другие WINDOWS приложения могли видеть мое устройство,
как принтер и отправлять документ на печать в мое устройство?
Примеры из DDK D:\WINDDK\2600\src\print ,что то трудновато для понимания и не могу связать все с моим устройством.
Хотелось бы написать драйвер для USB принтера.
Может есть у кого опыта в подобных случаях?
Эд17021978 вне форума Ответить с цитированием
Старый 30.10.2020, 18:18   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Цитата:
Сообщение от Эд17021978 Посмотреть сообщение
Примеры из DDK D:\WINDDK\2600\src\print
Единственный путь, увы. Хороших док практически нет

Цитата:
Сообщение от Эд17021978 Посмотреть сообщение
трудновато для понимания
А кто обещал, что будет легко? Это же драйверы..

Цитата:
Сообщение от Эд17021978 Посмотреть сообщение
Может есть у кого опыта в подобных случаях?
Основная работа - это бесконечный цикл:
1) Выяснить, какие запросы приходят на драйвер
2) Посмотреть, как их обрабатывает пример
3) Сделать по аналогии
4) Добиться, чтобы работало
5) Поймать ещё не обрабатываемый запрос
6) Перейти на п.1 ))

Начинать надо с самого скелета - прописать обработку всех запросов, делать хороший дамп их, добиться, чтобы не падало

Вы в каком городе творите, если не секрет?

Последний раз редактировалось Black Fregat; 30.10.2020 в 18:21.
Black Fregat вне форума Ответить с цитированием
Старый 02.11.2020, 12:30   #3
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,611
По умолчанию

Так может быть лучше использовать стандартный CDC драйвер?? Он простой и везде поддерживается.
Да и примеров полно для взаимодействия.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 08.11.2020, 00:21   #4
Эд17021978
Новичок
Джуниор
 
Регистрация: 29.10.2020
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Единственный путь, увы. Хороших док практически нет


А кто обещал, что будет легко? Это же драйверы..


Основная работа - это бесконечный цикл:
1) Выяснить, какие запросы приходят на драйвер
2) Посмотреть, как их обрабатывает пример
3) Сделать по аналогии
4) Добиться, чтобы работало
5) Поймать ещё не обрабатываемый запрос
6) Перейти на п.1 ))

Начинать надо с самого скелета - прописать обработку всех запросов, делать хороший дамп их, добиться, чтобы не падало

Вы в каком городе творите, если не секрет?
я живу в Астраханской области.
если просто написать драйвер для устройства , нет проблем , но для принтера очень мало информации.
Эд17021978 вне форума Ответить с цитированием
Старый 08.11.2020, 16:54   #5
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,611
По умолчанию

Врядли у вас так все просто получится.
Там ведь должна быть реализация языка PCL. Ваш прибор это делает??
В реальных принтерах это все аппаратно выполняется на каких нибудь плис.
Вот тут есть спецификация на класс.


Цитата:
Сообщение от Эд17021978 Посмотреть сообщение
но для принтера очень мало информации.
Потому что не шибко это кому нужно. Слишком большой гемор с поддержкой каких то языков. Для практически любой домашней реализации вдоволь хватает CDC и HID.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 09.11.2020, 15:49   #6
Эд17021978
Новичок
Джуниор
 
Регистрация: 29.10.2020
Сообщений: 3
По умолчанию

Там ведь должна быть реализация языка PCL. Ваш прибор это делает??

Нет мой прибор тупо может принимать байты и отправлять. Дисплей на ili9225 выполняет роль бумаги. Это понятно , что принтер должен обрабатывать данные. Но пока цель ,чтобы другие WINDOWS приложения видели мое устройство как принтер.



Потому что не шибко это кому нужно. Слишком большой гемор с поддержкой каких то языков. Для практически любой домашней реализации вдоволь хватает CDC и HID.[/QUOTE]
Эд17021978 вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме от 7000 рублей в месяц



Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Установка принтера на ноутбук с Winows vs Установка принтера на ноутбук с Ubuntu Alar Свободное общение 12 29.11.2015 08:40
Настроить драйвер для струйного принтера pogovorim Компьютерное железо 6 09.02.2015 20:12
нужно написать драйвер для принтера ibragim Фриланс 0 27.11.2010 18:36
Драйвер для принтера HP -ushёl- Компьютерное железо 4 16.06.2010 13:39
Драйвер для принтера МАриэлла Софт 2 11.02.2009 15:53


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Скидки на курсы GeekBrains 40%, выбирайте программу для себя