Реализация функций контроля и управления на базе Win32 API: Методические указания по выполнению лабораторного практикума, страница 13

№ контакта

Обозначение

Назначение

Направление со стороны компьютера

1

-SROBE

Строб данных

O

2 – 9

DATA[1:8]

Канал данных

O

10

-ACK

Подтверждение приема байта (запрос на прием следующего). Может использоваться для формирования запроса прерывания

I

11

BUSY

Занятость устройства

I

12

PE

Нет бумаги

I

13

SLCT (Select)

Выбор (online/offline), сигнализирует о включении принтера

I

14

AutoF

Автоматический перевод строки

O

15

-ERROR

Ошибка: конец бумаги , состояние offline или внутренняя ошибка принтера

I

16

-INIT

Инициализация (сброс)

O

17

-SLCT IN

Выбор печатающего устройства

O

Диаграмма обмена

Обмен возможен только тогда, когда: -ERROR=1; PE=0; SLCT=1; -INIT=1; -SLCT IN=0.

Передача байта начинается с проверки компьютером уровня сигнала BUSY. Убедившись, что уровень низкий, компьютер выводит байт на линии DATA и выдает сигнал –STROBE. По этому сигналу принтер читает данные и на время их обработки устанавливает высокий уровень сигнала BUSY, что означает готовность к приему следующего байта. Если компьютер, передав байт, длительное время не получает сигнала –ACK, он может считать, что при передаче произошел сбой, и повторить ее.

Рисунок 4.1 – Временная диаграмма обмена по интерфейсу Centronics

4.2 Функции Win32 API для печатающих устройств

Информационные функции Win32 API позволяют получить необходимую информацию о печатающем устройстве. К ним относятся следующие функции:

§  GetProfileString – позволяет получить строковые параметры текущего принтера;

§  DeviceCapabilities – позволяет получить параметры и режимы работы принтера;

§  GetDeviceCaps – позволяет получить параметры принтера.

Данные функции позволяют получить следующую информацию:

а) Строковые параметры текущего принтера:

§  название принтера;

§  имя драйвера;

§  порт вывода;

б) Параметры и режимы, поддерживаемые заданным принтером:

§  версию драйвера;

§  позицию страницы на бумаге;

§  количество копий, которое можно напечатать;

§  количество типов данных, поддерживаемых драйвером;

§  доступные разрешения;

§  список файлов, которые нужно загрузить вместе с драйвером;

§  максимальный размер бумаги;

§  минимальный размер бумаги;

§  поддерживаемые повороты изображения;

§  поддерживаемые имена размеров бумаги(Letter, Legal и т.д);

§  поддерживаемые размеры бумаги (в численном виде);

§  способ использования шрифтов TrueType;

§  ширину физической страницы (dpi);

§  высоту физической страницы (dpi);

§  дистанцию от левого края физической страницы до левого края площади, на которой возможна печать (dpi);

§  дистанцию от верхнего края физической страницы до верхнего края площади, на которой возможна печать (dpi)

§  и т.д.

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

Управление принтером осуществляется через диалог настройки печати, для вызова диалога используется функция PrintDlg. Вывод текстовой информации производится функцией Win32 API WriteFile. Для вывода графической информации используется уже набор функций, но на практике часто используют одну функцию BitBlt.