Библиотека LUFA (раннее название MyUSB) версия 101122
Драйвер режима хоста Still Image Class

Data Structures

struct  USB_ClassInfo_SI_Host_t
 Структура конфигурации и состояния режима хоста Still Image Class. More...

Defines

#define SI_ERROR_LOGICAL_CMD_FAILED   0x80

Enumerations

enum  SI_Host_EnumerationFailure_ErrorCodes_t {
  SI_ENUMERROR_NoError = 0,
  SI_ENUMERROR_InvalidConfigDescriptor = 1,
  SI_ENUMERROR_NoCompatibleInterfaceFound = 2
}

Functions

uint8_t SI_Host_ConfigurePipes (USB_ClassInfo_SI_Host_t *const SIInterfaceInfo, uint16_t ConfigDescriptorSize, void *ConfigDescriptorData) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(3)
uint8_t SI_Host_OpenSession (USB_ClassInfo_SI_Host_t *const SIInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
uint8_t SI_Host_CloseSession (USB_ClassInfo_SI_Host_t *const SIInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
uint8_t SI_Host_SendBlockHeader (USB_ClassInfo_SI_Host_t *const SIInterfaceInfo, PIMA_Container_t *const PIMAHeader) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2)
uint8_t SI_Host_ReceiveBlockHeader (USB_ClassInfo_SI_Host_t *const SIInterfaceInfo, PIMA_Container_t *const PIMAHeader) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2)
uint8_t SI_Host_SendCommand (USB_ClassInfo_SI_Host_t *const SIInterfaceInfo, const uint16_t Operation, const uint8_t TotalParams, uint32_t *const Params) ATTR_NON_NULL_PTR_ARG(1)
uint8_t SI_Host_ReceiveResponse (USB_ClassInfo_SI_Host_t *const SIInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
bool SI_Host_IsEventReceived (USB_ClassInfo_SI_Host_t *const SIInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
uint8_t SI_Host_ReceiveEventHeader (USB_ClassInfo_SI_Host_t *const SIInterfaceInfo, PIMA_Container_t *const PIMAHeader) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2)
uint8_t SI_Host_SendData (USB_ClassInfo_SI_Host_t *const SIInterfaceInfo, void *Buffer, const uint16_t Bytes) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2)
uint8_t SI_Host_ReadData (USB_ClassInfo_SI_Host_t *const SIInterfaceInfo, void *Buffer, const uint16_t Bytes) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2)
static void SI_Host_USBTask (USB_ClassInfo_SI_Host_t *const SIInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)

Detailed Description

зависимости для исходного кода модуля

Следующие файлы должны быть скомпилированы с любым проектом, который использует этот модуль:

модуля

Фреймворк-интерфейс для драйвера режима хоста USB Still Image Class.


Define Documentation

#define SI_ERROR_LOGICAL_CMD_FAILED   0x80

Код ошибки для некоторых функций хоста Still Image, показывающий логическую (и не аппаратную) ошибку.


Enumeration Type Documentation

Перечисление для возможных кодов ошибки, возвращаемых функцией SI_Host_ConfigurePipes().

Enumerator:
SI_ENUMERROR_NoError 

дескриптор конфигурации обработан успешно.

SI_ENUMERROR_InvalidConfigDescriptor 

устройство возвратило неверный дескриптор конфигурации.

SI_ENUMERROR_NoCompatibleInterfaceFound 

в дескрипторе конфигурации устройства не найден совместимый интерфейс Still Image.


Function Documentation

uint8_t SI_Host_CloseSession ( USB_ClassInfo_SI_Host_t *const  SIInterfaceInfo)

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

Precondition:
Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
Parameters:
[in,out]SIInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние Still Image Class.
Returns:
Значение из перечисления Pipe_Stream_RW_ErrorCodes_t или SI_ERROR_LOGICAL_CMD_FAILED, если устройство вернуло логическую ошибку команды.
uint8_t SI_Host_ConfigurePipes ( USB_ClassInfo_SI_Host_t *const  SIInterfaceInfo,
uint16_t  ConfigDescriptorSize,
void *  ConfigDescriptorData 
)

Подпрограмма конфигурирования интерфейса хоста, для конфигурирования указанного экземпляра интерфейса хоста Still Image с использованием дескриптора конфигурации, прочитанного от подключенного устройства USB. Эта функция автоматически обновляет переменные состояния экземпляра интерфейса хоста Still Image и конфигурирует каналы, необходимые для соединения с интерфейсом, если он найден на устройстве. Должна быть вызвана один раз после энумерации стеком подключенного устройства, когда машина хоста перейдет в состояние Addressed (адресовано).

Note:
Индексы канала, как дано в структуре конфигурации интерфейса, не должны наложиться ни с каким другим интерфейсом, или произойдет повреждение банка канала. Разрывы в выделенных числах канала или непоследовательных индексах в пределах единственного интерфейса позволены, но никакие два интерфейса любого типа не могут чередовать индексы канала.
Parameters:
[in,out]SIInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние Still Image Class.
[in]ConfigDescriptorSizeдлина дескриптора конфигурации подключенного устройства.
[in]ConfigDescriptorDataуказатель на буфер, содержащий дескриптор конфигурации подключенного устройства.
Returns:
значение из перечисления SI_Host_EnumerationFailure_ErrorCodes_t.
bool SI_Host_IsEventReceived ( USB_ClassInfo_SI_Host_t *const  SIInterfaceInfo)

Показывает, выдало ли устройство хосту блок события PIMA через асинхронный канал событий.

Precondition:
Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
Parameters:
[in,out]SIInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние Still Image Class.
Returns:
двоичное true, если событие ожидает чтения, иначе false.
uint8_t SI_Host_OpenSession ( USB_ClassInfo_SI_Host_t *const  SIInterfaceInfo)

Открывет новую сессию PIMA с подключенным устройством. Должно использоваться перед любой ориентированной на сессию командой PIMA, выдаваемой на устройство. Одновременно может быть открыта только одна сессия.

Precondition:
Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
Parameters:
[in,out]SIInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние Still Image Class.
Returns:
Значение из перечисления Pipe_Stream_RW_ErrorCodes_t или SI_ERROR_LOGICAL_CMD_FAILED, если устройство вернуло логическую ошибку команды.
uint8_t SI_Host_ReadData ( USB_ClassInfo_SI_Host_t *const  SIInterfaceInfo,
void *  Buffer,
const uint16_t  Bytes 
)

Принимает произвольные данные от подключенного устройства, для использования в фазе данных команд PIMA, которые требуют передачу данных вне обычных параметров блока команды PIMA.

Precondition:
Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
Parameters:
[in,out]SIInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние Still Image Class.
[out]Bufferуказатель на буфер, где сохраняются принимаемые данные.
[in]Bytesдлина в байтах данных для чтения.
Returns:
значение из перечисления Pipe_Stream_RW_ErrorCodes_t.
uint8_t SI_Host_ReceiveBlockHeader ( USB_ClassInfo_SI_Host_t *const  SIInterfaceInfo,
PIMA_Container_t *const  PIMAHeader 
)

Принимает от устройства сырые данные заголовка блока PIMA. Это может использоваться для приема от устройства произвольных блоков PIMA с параметрами или без параметров.

Precondition:
Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
Parameters:
[in,out]SIInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние Still Image Class.
[out]PIMAHeaderуказатель на структуру контейнера PIMA, где сохраняется принимаемый блок.
Returns:
значение из перечисления Pipe_Stream_RW_ErrorCodes_t.
uint8_t SI_Host_ReceiveEventHeader ( USB_ClassInfo_SI_Host_t *const  SIInterfaceInfo,
PIMA_Container_t *const  PIMAHeader 
)

Принимает от устройства блок асинхронного события через канал асинхронных событий.

Precondition:
Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
Parameters:
[in,out]SIInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние Still Image Class.
[out]PIMAHeaderуказатель на структуру контейнера PIMA, где должно быть сохранено событие.
Returns:
Значение из перечисления Pipe_Stream_RW_ErrorCodes_t или SI_ERROR_LOGICAL_CMD_FAILED, если устройство вернуло логическую ошибку команды.
uint8_t SI_Host_ReceiveResponse ( USB_ClassInfo_SI_Host_t *const  SIInterfaceInfo)

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

Precondition:
Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
Parameters:
[in,out]SIInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние Still Image Class.
Returns:
Значение из перечисления Pipe_Stream_RW_ErrorCodes_t или SI_ERROR_LOGICAL_CMD_FAILED, если устройство вернуло логическую ошибку команды.
uint8_t SI_Host_SendBlockHeader ( USB_ClassInfo_SI_Host_t *const  SIInterfaceInfo,
PIMA_Container_t *const  PIMAHeader 
)

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

Precondition:
Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
Parameters:
[in,out]SIInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние Still Image Class.
[in]PIMAHeaderуказатель на структуру контейнера PIMA для отправки.
Returns:
значение из перечисления Pipe_Stream_RW_ErrorCodes_t.
uint8_t SI_Host_SendCommand ( USB_ClassInfo_SI_Host_t *const  SIInterfaceInfo,
const uint16_t  Operation,
const uint8_t  TotalParams,
uint32_t *const  Params 
)

Отправляет указанную команду PIMA в подключенное устройства, автоматически заполняя ID транзакции заголовка PIMA.

Precondition:
Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
Parameters:
[in,out]SIInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние Still Image Class.
[in]Operationкод операции PIMA для выдачи в устройство.
[in]TotalParamsTotal number of 32-bit parameters to send to the device in the issued command block.
[in]ParamsPointer to an array of 32-bit values containing the parameters to send in the command block.
Returns:
Значение из перечисления Pipe_Stream_RW_ErrorCodes_t или SI_ERROR_LOGICAL_CMD_FAILED, если устройство вернуло логическую ошибку команды.
uint8_t SI_Host_SendData ( USB_ClassInfo_SI_Host_t *const  SIInterfaceInfo,
void *  Buffer,
const uint16_t  Bytes 
)

Отправляет произвольные данные в подключенное устройство, для использования в фазе данных команд PIMA, которые требуют передачи данных вне обычных параметров блока команды PIMA.

Precondition:
Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
Parameters:
[in,out]SIInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние Still Image Class.
[in]Bufferуказатель на буфер, где сохранены отправляемые данные.
[in]Bytesдлина в байтах данных в буфере, отправляемых на подключенное устройство.
Returns:
значение из перечисления Pipe_Stream_RW_ErrorCodes_t.
static void SI_Host_USBTask ( USB_ClassInfo_SI_Host_t *const  SIInterfaceInfo) [inline, static]

Главная задача обработки для указанного интерфейса хоста класса Still Image, необходимая для корректной работы интерфейса. Должна часто вызываться из основного цикла программы, перед главной задачей поддержки USB USB_USBTask().

Parameters:
[in,out]SIInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние Still Image Class.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines