| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Программирование принтера |
| Автор: ДобренькийПапаша 21.6.2011, 13:59 |
| Вот такой вопрос. Есть уже написанная обёртка для всех команд (в виде последовательности байтов), которые посылаются на com-порт принтера. Класс, который обёртывает команды один, все методы - статические (сам класс не статический). Теперь нужно написать логику взаимодействия с принтером. Когда печатать, когда отказываться. Есть такая функция, которая передаёт мне полное состояние принтера (содержит 6 байтов). Вот вопрос. Как проверять текущее состояние? Всё время через короткое время проверять статус? Проверять перед печатью? Проверять после печати? Запускать это в отдельном потоке? Может есть какие-то советы как построить архитектуру взаимодействия с принтером, используя класс, который непосредственно обёртывает всю низкоуровневую муть? p.s. Ну и собственно, а как лучше саму проверку проводить? То есть каждый бит говорит о том или ином состоянии того или иного параметра. Каждый из этих 6 байтов является одним целым. 1-й байт содержит биты, показывающий off-line status, биты 2-го байта показывают Error Status и т .д. Сделать перечисления OffLineStatus и ErrorStatus или как организовать-то лучше это? |
| Автор: ДобренькийПапаша 22.6.2011, 16:09 |
| Короче, сделал доступными такие сценарии использования: Юзер либо может просто вызвать печать и ответ принтера смотреть в соответствующих обработчиках событий (события я предоставил, они загораются до печати и по завершению печати и в аргументе содержат множество полей, описывающих состояние принтера. Ну, человек, в принципе, в любом случае может на них подписаться. Также позволил перед отправкой формы на печать, проверять сразу готов ли принтер к печати. Ну и всё. Ничего не забыл сделать для удобства пользователя? |