Data Structures | 
| struct   | USB_ClassInfo_PRNT_Host_t | 
|   | Структура конфигурации и состояния Printer Class режима хоста.  More...
  | 
Enumerations | 
| enum   | PRNT_Host_EnumerationFailure_ErrorCodes_t {  
  PRNT_ENUMERROR_NoError =  0, 
 
  PRNT_ENUMERROR_InvalidConfigDescriptor =  1, 
 
  PRNT_ENUMERROR_NoCompatibleInterfaceFound =  2
 
 } | 
Functions | 
| void  | PRNT_Host_USBTask (USB_ClassInfo_PRNT_Host_t *const PRNTInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1) | 
| uint8_t  | PRNT_Host_ConfigurePipes (USB_ClassInfo_PRNT_Host_t *const PRNTInterfaceInfo, uint16_t ConfigDescriptorSize, void *DeviceConfigDescriptor) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(3) | 
| uint8_t  | PRNT_Host_SetBidirectionalMode (USB_ClassInfo_PRNT_Host_t *const PRNTInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1) | 
| uint8_t  | PRNT_Host_GetPortStatus (USB_ClassInfo_PRNT_Host_t *const PRNTInterfaceInfo, uint8_t *const PortStatus) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2) | 
| uint8_t  | PRNT_Host_SoftReset (USB_ClassInfo_PRNT_Host_t *const PRNTInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1) | 
| uint8_t  | PRNT_Host_Flush (USB_ClassInfo_PRNT_Host_t *const PRNTInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1) | 
| uint8_t  | PRNT_Host_SendString (USB_ClassInfo_PRNT_Host_t *const PRNTInterfaceInfo, void *Buffer, const uint16_t Length) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2) | 
| uint8_t  | PRNT_Host_SendByte (USB_ClassInfo_PRNT_Host_t *const PRNTInterfaceInfo, const uint8_t Data) ATTR_NON_NULL_PTR_ARG(1) | 
| uint16_t  | PRNT_Host_BytesReceived (USB_ClassInfo_PRNT_Host_t *const PRNTInterfaceInfo) | 
| int16_t  | PRNT_Host_ReceiveByte (USB_ClassInfo_PRNT_Host_t *const PRNTInterfaceInfo) | 
| uint8_t  | PRNT_Host_GetDeviceID (USB_ClassInfo_PRNT_Host_t *const PRNTInterfaceInfo, char *const DeviceIDString, const uint16_t BufferSize) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2) | 
Detailed Description
зависимости для исходного кода модуля
Следующие файлы должны быть скомпилированы с любым проектом, который использует этот модуль:
- LUFA/Drivers/USB/Class/Host/Printer.c (Имя модуля исходного кода для makefile: LUFA_SRC_USBCLASS)
 
модуля
Фреймворк-интерфейс для драйвера режима хоста Printer USB Class. 
Enumeration Type Documentation
- Enumerator: 
 
| PRNT_ENUMERROR_NoError  | 
 дескриптор конфигурации обработан успешно.  
 | 
| PRNT_ENUMERROR_InvalidConfigDescriptor  | 
 устройство возвратило неверный дескриптор конфигурации.  
 | 
| PRNT_ENUMERROR_NoCompatibleInterfaceFound  | 
 в дескрипторе конфигурации устройства не найден совместимый интерфейс Printer.  
 | 
 
 
 
Function Documentation
Определяет количество байт, принятых интерфейсом принтера от устройства и ожидающих чтения. Это только показывает количество байт в банке канала IN, и таким образом показывает количество вызовов PRNT_Host_ReceiveByte(), которые гарантированно будут успешно и немедленно завершены. Если принимаются несколько байт, то они должны буферизироваться в приложении пользователя, так как банк приема контроллера USB не освободится, пока не из него не будут прочитаны все байты.
- Precondition:
 - Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
 
- Parameters:
 - 
  
    | [in,out] | PRNTInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние хоста Printer Class. | 
  
   
- Returns:
 - общее количество забуферизированных, принятых от устройства данных в банке. 
 
 
 
      
        
          | uint8_t PRNT_Host_ConfigurePipes  | 
          ( | 
          USB_ClassInfo_PRNT_Host_t *const  | 
          PRNTInterfaceInfo,  | 
        
        
           | 
           | 
          uint16_t  | 
          ConfigDescriptorSize,  | 
        
        
           | 
           | 
          void *  | 
          DeviceConfigDescriptor  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Подпрограмма конфигурирования интерфейса хоста, для конфигурирования указанного экземпляра интерфейса хоста Printer с использованием дескриптора конфигурации, прочитанного от подключенного устройства USB. Эта функция автоматически обновляет переменные состояния экземпляра хоста Printer и конфигурирует каналы, необходимые для соединения с интерфейсом, если он найден на устройстве. Должна быть вызвана один раз после того, как стек проведет энумерацию устройства, когда машина хоста перейдет в состояние Addressed (адресовано).
- Note:
 - Индексы канала, как дано в структуре конфигурации интерфейса, не должны наложиться ни с каким другим интерфейсом, или произойдет повреждение банка канала. Разрывы в выделенных числах канала или непоследовательных индексах в пределах единственного интерфейса позволены, но никакие два интерфейса любого типа не могут чередовать индексы канала.
 
- Parameters:
 - 
  
    | [in,out] | PRNTInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние хоста Printer Class.  | 
    | [in] | ConfigDescriptorSize | длина дескриптора конфигурации подключенного устройства.  | 
    | [in] | DeviceConfigDescriptor | указатель на буфер, содержащий дескриптор конфигурации подключенного устройства. | 
  
   
- Returns:
 - значение из перечисления PRNT_Host_EnumerationFailure_ErrorCodes_t. 
 
 
 
Сбрасывает все данные, ожидающие отправки, что обеспечивает очистку буфера отправки.
- Precondition:
 - Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
 
- Parameters:
 - 
  
    | [in,out] | PRNTInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние хоста Printer Class. | 
  
   
- Returns:
 - значение из перечисления Pipe_WaitUntilReady_ErrorCodes_t. 
 
 
 
      
        
          | uint8_t PRNT_Host_GetDeviceID  | 
          ( | 
          USB_ClassInfo_PRNT_Host_t *const  | 
          PRNTInterfaceInfo,  | 
        
        
           | 
           | 
          char *const  | 
          DeviceIDString,  | 
        
        
           | 
           | 
          const uint16_t  | 
          BufferSize  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Запрашивает с подключенного устройства принтера строку ID, форматированную в соответствии с IEEE 1284. Эта строка отправляется от устройства как строка Unicode и автоматически конвертируется этой функцией в ASCII-кодированную строку C, поэтому максимальная длина строки на два меньше, чем размер предоставленной устройством строки (так как удаляются байты длины строки Unicode).
Эта строка, если поддерживается, содержит модель, производителя и принимаемые принтером языки для подключенного устройства.
- Parameters:
 - 
  
    | [in,out] | PRNTInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние хоста Printer Class.  | 
    | [out] | DeviceIDString | указатель на буфер, где должна быть сохранена строка Device ID в формате ASCII.  | 
    | [in] | BufferSize | размер выделенного буфера в байтах для строки Device ID. | 
  
   
- Returns:
 - значение из перечисления Pipe_Stream_RW_ErrorCodes_t. 
 
 
 
Запрашивает информацию виртуальных линий состояния порта принтера. На результат могут быть наложены маски макросов PRNT_PORTSTATUS_*, чтобы определить статус порта принтера.
- Parameters:
 - 
  
    | [in,out] | PRNTInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние хоста Printer Class.  | 
    | [out] | PortStatus | место, куда должен быть сохранен запрошенный статус порта. | 
  
   
- Returns:
 - значение из перечисления USB_Host_SendControlErrorCodes_t. 
 
 
 
Читает байт данных от устройства. Если нет данных, ожидающих чтения, или если устройство USB не соединено, то функция вернет отрицательное значение. Предварительно может быть опорошена фугкция PRNT_Host_BytesReceived() для определения, сколько байт в настоящий момент забуферизировано в приемном канале данных интерфейса Printer.
- Precondition:
 - Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
 
- Parameters:
 - 
  
    | [in,out] | PRNTInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние хоста Printer Class. | 
  
   
- Returns:
 - следующий принятый байт из устройства, или отрицательное значение, если нет принятых данных. 
 
 
 
Посылает в подключенное устройство USB указанный байт, если устройство соединено. Если при вызове функции устройство не соединено, то байт игнорируется. Байты ставятся в очередь на передачу в устройство, пока либо не переполнится банк канала, либо не будет вызвана функция PRNT_Host_Flush() для сброса на хост данных очереди. Это позволяет упаковывать несколько байт в один канальный пакет, что повышает пропускную способность данных.
- Precondition:
 - Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
 
- Parameters:
 - 
  
    | [in,out] | PRNTInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние хоста Printer Class.  | 
    | [in] | Data | байт данных для отправки в устройство. | 
  
   
- Returns:
 - значение из перечисления Pipe_WaitUntilReady_ErrorCodes_t. 
 
 
 
Отправляет указанный поток сырых данных (raw data) во входную конечную точку подключенного принтера. Данные должны содержать команды, которые принтер может понять - например, данные PCL. Не все принтеры принимают все языки принтеров; см. PRNT_Host_GetDeviceID() для подробностей по определению допустимых языков для всех подключенных принтеров.
- Precondition:
 - Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
 
- Parameters:
 - 
  
    | [in,out] | PRNTInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние хоста Printer Class.  | 
    | [in] | Buffer | указатель на буфер, содержащий сырой поток команд для отправки принтеру.  | 
    | [in] | Length | размер в байтах потока команд для отправки. | 
  
   
- Returns:
 - значение из перечисления Pipe_Stream_RW_ErrorCodes_t. 
 
 
 
Конфигурирует принтер в двунаправленный режим, если он уже не находится в этом режиме. Должна быть вызвана один раз, как только установлена конфигурация подключенного устройства, чтобы обеспечить готовность принтера к принятию команд.
- Parameters:
 - 
  
    | [in,out] | PRNTInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние хоста Printer Class. | 
  
   
- Returns:
 - значение из перечисления USB_Host_SendControlErrorCodes_t. 
 
 
 
Мягкий сброс (Soft-reset) подключенного принтера, чтобы он был готов к приему новых команд.
- Parameters:
 - 
  
    | [in,out] | PRNTInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние хоста Printer Class. | 
  
   
- Returns:
 - значение из перечисления USB_Host_SendControlErrorCodes_t. 
 
 
 
Главная задача обработки для указанного интерфейса хоста Printer, необходимая для корректной работы интерфейса. Должна часто вызываться из основного цикла программы, перед главной задачей поддержки USB USB_USBTask().
- Parameters:
 - 
  
    | [in,out] | PRNTInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние хоста Printer Class.  |