Data Structures |
struct | USB_ClassInfo_CDC_Host_t |
| Структура конфигурации и состояния CDC Class режима хоста. More...
|
Enumerations |
enum | CDC_Host_EnumerationFailure_ErrorCodes_t {
CDC_ENUMERROR_NoError = 0,
CDC_ENUMERROR_InvalidConfigDescriptor = 1,
CDC_ENUMERROR_NoCompatibleInterfaceFound = 2
} |
Functions |
void | CDC_Host_USBTask (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1) |
uint8_t | CDC_Host_ConfigurePipes (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo, uint16_t ConfigDescriptorSize, void *DeviceConfigDescriptor) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(3) |
uint8_t | CDC_Host_SetLineEncoding (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1) |
uint8_t | CDC_Host_SendControlLineStateChange (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1) |
uint8_t | CDC_Host_SendBreak (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo, const uint8_t Duration) ATTR_NON_NULL_PTR_ARG(1) |
uint8_t | CDC_Host_SendString (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo, const char *const Data, const uint16_t Length) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2) |
uint8_t | CDC_Host_SendByte (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo, const uint8_t Data) ATTR_NON_NULL_PTR_ARG(1) |
uint16_t | CDC_Host_BytesReceived (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1) |
int16_t | CDC_Host_ReceiveByte (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1) |
uint8_t | CDC_Host_Flush (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1) |
void | CDC_Host_CreateStream (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo, FILE *const Stream) |
void | CDC_Host_CreateBlockingStream (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo, FILE *const Stream) |
void | EVENT_CDC_Host_ControLineStateChanged (USB_ClassInfo_CDC_Host_t *const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1) |
Detailed Description
зависимости для исходного кода модуля
Следующие файлы должны быть скомпилированы с любым проектом, который использует этот модуль:
- LUFA/Drivers/USB/Class/Host/CDC.c (Имя модуля исходного кода для makefile: LUFA_SRC_USBCLASS)
модуля
Фреймворк-интерфейс драйвера режима USB-хоста для CDC USB Class.
Enumeration Type Documentation
Перечисление для возможных кодов ошибок, возвращаемых функцией CDC_Host_ConfigurePipes().
- Enumerator:
CDC_ENUMERROR_NoError |
дескриптор конфигурации обработан успешно.
|
CDC_ENUMERROR_InvalidConfigDescriptor |
устройство возвратило неверный дескриптор конфигурации.
|
CDC_ENUMERROR_NoCompatibleInterfaceFound |
В дескрипторе конфигурации устройства не найден совместимый интерфейс CDC.
|
Function Documentation
Определяет количество байт, принятых интерфейсом CDC от устройства, которые ожидают своего чтения. Показывает количество байт только в банке канала IN, и следовательно количество вызовов CDC_Host_ReceiveByte(), которые немедленно гарантированно завершатся с успехом. Если принимаются несколько байт, то они должны буферизироваться в приложении пользователя, так как банк приема контроллера USB не освободится, пока не из него не будут прочитаны все байты.
- Precondition:
- Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
- Parameters:
-
[in,out] | CDCInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние CDC Class хоста. |
- Returns:
- общее количество забуферизированных, принятых от устройства данных в банке.
uint8_t CDC_Host_ConfigurePipes |
( |
USB_ClassInfo_CDC_Host_t *const |
CDCInterfaceInfo, |
|
|
uint16_t |
ConfigDescriptorSize, |
|
|
void * |
DeviceConfigDescriptor |
|
) |
| |
Подпрограмма конфигрирования интерфейса хоста, для конфигурирования указанного экземпляра интерфейса CDC хоста с использованием дескриптора конфигурации, прочитанного от подключенного устройства USB. Эта функция автоматически обновляет переменные состояния указанного экземпляра хоста CDC и конфигурирует каналы, необходимые для коммуникации с интерфейсом, если он найден в устройстве. Должна быть вызвана один раз после энумерации стеком подключенного устройства, пока машина состояния хоста находится в состоянии Addressed (адресовано).
- Note:
- Индексы канала, как дано в структуре конфигурации интерфейса, не должны наложиться ни с каким другим интерфейсом, или произойдет повреждение банка канала. Разрывы в выделенных числах канала или непоследовательных индексах в пределах единственного интерфейса позволены, но никакие два интерфейса любого типа не могут чередовать индексы канала.
- Parameters:
-
[in,out] | CDCInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние хоста CDC Class. |
[in] | ConfigDescriptorSize | длина дескриптора конфигурации подключенного устройства. |
[in] | DeviceConfigDescriptor | указатель на буфер, содержащий дескриптор конфигурации подключенного устройства. |
- Returns:
- значение из перечисления CDC_Host_EnumerationFailure_ErrorCodes_t.
Идентично Identical to CDC_Host_CreateStream(), за исключением того, что делается блокирующее чтение, пока вызывающая функция потока не прервет передачу. Во время блокировки задачи обслуживания USB и CDC продолжают постоянно вызываться, чтобы поддержать коммуникации USB.
- Parameters:
-
[in,out] | CDCInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние CDC Class. |
[in,out] | Stream | указатель на структуру FILE, где должен быть размещен создаваемый поток. |
Создает стандартный символьный поток для указанного экземпляра CDC Device, после чего его можно использовать со всеми стандартными функциями библиотеки avr-libc <stdio.h>, которые принимают поток FILE в качестве точки назначения (например fprintf). Созданный поток является двунаправленным, и может использоваться и для функций ввода, и для функций вывода.
- Note:
- Созданный поток, если нужно, может быть предоставлен как stdout для направления стандартного вывода из всех функций <stdio.h> в указанный интерфейс CDC.
- Parameters:
-
[in,out] | CDCInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние CDC Class. |
[in,out] | Stream | указатель на структуру FILE, где должен быть размещен создаваемый поток. |
Сбрасывает все данные, ожидающие отправки, что обеспечивает очистку буфера отправки.
- Precondition:
- Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
- Parameters:
-
[in,out] | CDCInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние CDC Class хоста. |
- Returns:
- значение из перечисления Pipe_WaitUntilReady_ErrorCodes_t.
Читает байт данных от устройства. Если нет данных, ожидающих чтения, или если устройство USB не соединено, то функция вернет отрицательное значение. Предварительно может быть опрошена функция CDC_Host_BytesReceived() для определения количества забуферизированных в настоящий момент принятых данных канала интерфейса CDC.
- Precondition:
- Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
- Parameters:
-
[in,out] | CDCInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние CDC Class хоста. |
- Returns:
- следующий принятый байт из устройства, или отрицательное значение, если нет принятых данных.
Отправляет в устройство запрос Send Break (посылка перерыва). Обычно используется для разделения данных или индикации специального события для принимающего устройства.
- Parameters:
-
[in,out] | CDCInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние CDC Class хоста. |
[in] | Duration | длительность break (перерыва) в милисекундах. |
- Returns:
- значение из перечисления USB_Host_SendControlErrorCodes_t.
Посылает в подключенное устройство USB указанный байт, если устройство соединено. Если при вызове функции устройство не соединено, то байт игнорируется. Байты строки ставятся в очередь для передачи в устройство, пока либо банк канала не заполнится, либо не будет вызвана функция CDC_Host_Flush() для сброса в хост данных из очереди. Это позволяет упаковывать несколько байт в один канальный пакет, что повышает пропускную способность данных.
- Precondition:
- Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
- Parameters:
-
[in,out] | CDCInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние CDC Class хоста. |
[in] | Data | байт данных для отправки в устройство. |
- Returns:
- значение из перечисления Pipe_WaitUntilReady_ErrorCodes_t.
Отправляет в устройство оповещение об изменении состояния линии управления. Должна вызываться, когда меняют состояние виртуальные линии управления (DTR, RTS, и т. д.). Состояния линии сохраняются до их очистки следующим оповещением. Должна вызываться каждый раз, как только поменялось значение ControlLineStates.HostToDevice драйвера CDC class для проталкивания новых состояний в устройство USB.
- Parameters:
-
[in,out] | CDCInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние CDC Class хоста. |
- Returns:
- значение из перечисления USB_Host_SendControlErrorCodes_t.
uint8_t CDC_Host_SendString |
( |
USB_ClassInfo_CDC_Host_t *const |
CDCInterfaceInfo, |
|
|
const char *const |
Data, |
|
|
const uint16_t |
Length |
|
) |
| |
Посылает указанную строку в подключенное устройство USB, если оно соединено. Если устройство не соединено при вызове функции, то строка отбрасывается. Байты строки ставятся в очередь для передачи в устройство, пока либо банк канала не заполнится, либо не будет вызвана функция CDC_Host_Flush() для сброса в хост данных из очереди. Это позволяет упаковывать несколько байт в один канальный пакет, что повышает пропускную способность данных.
- Precondition:
- Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
- Parameters:
-
[in,out] | CDCInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние CDC Class хоста. |
[in] | Data | указатель на строку для отправки в устройство. |
[in] | Length | размер в байтах строки для отправки в устройство. |
- Returns:
- значение из перечисления Pipe_Stream_RW_ErrorCodes_t.
Устанавливает кодирование линии для виртуального последовательного порта подключенного устройства. Должна вызываться, когда изменяются значения LineEncoding интерфейса, для проталкивания новых установок в устройство USB.
- Parameters:
-
[in,out] | CDCInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние CDC Class хоста. |
- Returns:
- значение из перечисления USB_Host_SendControlErrorCodes_t.
Главная задача для поддержки указанного интерфейса CDC хоста, необходимая для корректной работы интерфейса. Должна часто вызываться в главном цикле программы, перед главной задачей поддержки USB USB_USBTask().
- Parameters:
-
[in,out] | CDCInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние хоста CDC Class. |
Событие драйвера CDC class для изменения состояния линии управления интерфейса хоста CDC. Это событие запускается каждый раз, когда устройство уведомляет хост об изменении состояния линии управления (которые содаержат виртуальные линии управления, такие как DCD), это событие может быть перехвачено программой пользователя, если определить функцию обработчика с тем же именем и параметрами, которые перечислены здесь. Новые состояния линии управления доступны в значении ControlLineStates.DeviceToHost внутри структуры интерфейса хоста CDC, переданной как параметр, в виде набора масок CDC_CONTROL_LINE_IN_*.
- Parameters:
-
[in,out] | CDCInterfaceInfo | указатель на структуру, содержащую конфигурацию и состояние CDC Class хоста. |