Библиотека LUFA (раннее название MyUSB) версия 101122
Многобайтовые потоки чтения/записи

Enumerations

enum  Pipe_Stream_RW_ErrorCodes_t {
  PIPE_RWSTREAM_NoError = 0,
  PIPE_RWSTREAM_PipeStalled = 1,
  PIPE_RWSTREAM_DeviceDisconnected = 2,
  PIPE_RWSTREAM_Timeout = 3,
  PIPE_RWSTREAM_CallbackAborted = 4
}

Functions

uint8_t Pipe_Discard_Stream (uint16_t Length, StreamCallbackPtr_t Callback)
uint8_t Pipe_Write_Stream_LE (const void *Buffer, uint16_t Length, StreamCallbackPtr_t Callback) ATTR_NON_NULL_PTR_ARG(1)
uint8_t Pipe_Write_EStream_LE (const void *Buffer, uint16_t Length, StreamCallbackPtr_t Callback) ATTR_NON_NULL_PTR_ARG(1)
uint8_t Pipe_Write_PStream_LE (const void *Buffer, uint16_t Length, StreamCallbackPtr_t Callback) ATTR_NON_NULL_PTR_ARG(1)
uint8_t Pipe_Write_Stream_BE (const void *Buffer, uint16_t Length, StreamCallbackPtr_t Callback) ATTR_NON_NULL_PTR_ARG(1)
uint8_t Pipe_Write_EStream_BE (const void *Buffer, uint16_t Length, StreamCallbackPtr_t Callback) ATTR_NON_NULL_PTR_ARG(1)
uint8_t Pipe_Write_PStream_BE (const void *Buffer, uint16_t Length, StreamCallbackPtr_t Callback) ATTR_NON_NULL_PTR_ARG(1)
uint8_t Pipe_Read_Stream_LE (void *Buffer, uint16_t Length, StreamCallbackPtr_t Callback) ATTR_NON_NULL_PTR_ARG(1)
uint8_t Pipe_Read_EStream_LE (void *Buffer, uint16_t Length, StreamCallbackPtr_t Callback) ATTR_NON_NULL_PTR_ARG(1)
uint8_t Pipe_Read_Stream_BE (void *Buffer, uint16_t Length, StreamCallbackPtr_t Callback) ATTR_NON_NULL_PTR_ARG(1)
uint8_t Pipe_Read_EStream_BE (void *Buffer, uint16_t Length, StreamCallbackPtr_t Callback) ATTR_NON_NULL_PTR_ARG(1)

Detailed Description

Функции, макросы, переменные, перечисления и типы, связанные с чтением и записью данных из каналов и в каналы.


Enumeration Type Documentation

Перечисление для возможных кодов ошибки, возвращаемых функциями Pipe_*_Stream_*.

Enumerator:
PIPE_RWSTREAM_NoError 

Команда выполнена успешно, ошибок нет.

PIPE_RWSTREAM_PipeStalled 

Устройство при передаче перевело канал в режим stall.

PIPE_RWSTREAM_DeviceDisconnected 

При передаче устройство было отключено от хоста.

PIPE_RWSTREAM_Timeout 

Устройство потерпело ошибку при приеме или отправке следующего пакета в течение периода программного таймаута, установленного макросом USB_STREAM_TIMEOUT_MS.

PIPE_RWSTREAM_CallbackAborted 

Показывает, что функция callback сделала ранний обрыв передачи.


Function Documentation

uint8_t Pipe_Discard_Stream ( uint16_t  Length,
StreamCallbackPtr_t  Callback 
)

Читает и отбрасывает указанное количество байт из канала, отбрасывая по необходимости полностью прочитанные из хоста пакеты. Последний пакет не обрасывается автоматически, пока не будут прочитаны оставшиеся байты; пользователь отвечает за ручное отбрасывание последнего пакета от устройства с помощью макроса Pipe_ClearIN(). Между каждым пакетом USB, указанная функция callback потока выполняется с повторениями, пока не будет готов следующий пакет, что позволяет ранний обрыв потоковых передач.

Подпрограмма callback должна быть создана в соответствии с информацией в Функции обратного вызова конечной точки и потока канала. Если токен NO_STREAM_CALLBACKS передается компилятору через опцию -D, поток функции callback запрещается и параметр этой функции Callback пропускается.

Токен канала устанавливается автоматически, что можно использовать на двунаправленных каналах напрямую без явного изменения направления данных через вызов Pipe_SetPipeToken().

Parameters:
[in]Lengthколичество отправляемых данных via the currently selected pipe.
[in]Callbackимя подпрограммы callback для вызова между последовательными пакетными передачами USB, NULL если callback отсутствует.
Returns:
значение из перечисления Pipe_Stream_RW_ErrorCodes_t.
uint8_t Pipe_Read_EStream_BE ( void *  Buffer,
uint16_t  Length,
StreamCallbackPtr_t  Callback 
)

Версия Pipe_Read_Stream_BE() с буфером в EEPROM.

Parameters:
[out]Bufferуказатель на буфер, куда будут записаны данные.
[in]Lengthколичество читаемых байт для выбранного в настоящий момент потока, откуда читаются данные.
[in]Callbackимя подпрограммы callback для вызова между последовательными пакетными передачами USB, NULL если callback отсутствует.
Returns:
значение из перечисления Pipe_Stream_RW_ErrorCodes_t.
uint8_t Pipe_Read_EStream_LE ( void *  Buffer,
uint16_t  Length,
StreamCallbackPtr_t  Callback 
)

Версия Pipe_Read_Stream_LE() с буфером в EEPROM.

Parameters:
[out]Bufferуказатель на буфер, куда будут записаны данные.
[in]Lengthколичество читаемых байт для выбранного в настоящий момент потока, откуда читаются данные.
[in]Callbackимя подпрограммы callback для вызова между последовательными пакетными передачами USB, NULL если callback отсутствует.
Returns:
значение из перечисления Pipe_Stream_RW_ErrorCodes_t.
uint8_t Pipe_Read_Stream_BE ( void *  Buffer,
uint16_t  Length,
StreamCallbackPtr_t  Callback 
)

Читает указанное количество байт из канала в указанный буфер в формате big endian, отправляя полные пакеты в устройство по мере необходимости. Последний пакет не отправляется автоматически; пользователь отвечает за ручную отправку последнего записанного пакета с помощью макроса Pipe_ClearIN(). Между каждым пакетом USB, указанная функция callback вызывается с повторениями, пока не будет готов следующий пакет, что позволяет ранние обрывы передач потока.

Подпрограмма callback должна быть создана в соответствии с информацией в Функции обратного вызова конечной точки и потока канала. Если токен NO_STREAM_CALLBACKS передается компилятору через опцию -D, поток функции callback запрещается и параметр этой функции Callback пропускается.

Токен канала устанавливается автоматически, что можно использовать на двунаправленных каналах напрямую без явного изменения направления данных через вызов Pipe_SetPipeToken().

Parameters:
[out]Bufferуказатель на буфер, куда будут записаны данные.
[in]Lengthколичество читаемых байт для выбранного в настоящий момент потока, откуда читаются данные.
[in]Callbackимя подпрограммы callback для вызова между последовательными пакетными передачами USB, NULL если callback отсутствует.
Returns:
значение из перечисления Pipe_Stream_RW_ErrorCodes_t.
uint8_t Pipe_Read_Stream_LE ( void *  Buffer,
uint16_t  Length,
StreamCallbackPtr_t  Callback 
)

Читает указанное количество байт из канала в указанный буфер в формате little endian, отправляя полные пакеты в устройство по мере необходимости. Последний пакет не отправляется автоматически; пользователь отвечает за ручную отправку последнего записанного пакета с помощью макроса Pipe_ClearIN(). Между каждым пакетом USB, указанная функция callback вызывается с повторениями, пока не будет готов следующий пакет, что позволяет ранние обрывы передач потока.

Подпрограмма callback должна быть создана в соответствии с информацией в Функции обратного вызова конечной точки и потока канала. Если токен NO_STREAM_CALLBACKS передается компилятору через опцию -D, поток функции callback запрещается и параметр этой функции Callback пропускается.

Токен канала устанавливается автоматически, что можно использовать на двунаправленных каналах напрямую без явного изменения направления данных через вызов Pipe_SetPipeToken().

Parameters:
[out]Bufferуказатель на буфер, куда будут записаны данные.
[in]Lengthколичество читаемых байт для выбранного в настоящий момент потока, откуда читаются данные.
[in]Callbackимя подпрограммы callback для вызова между последовательными пакетными передачами USB, NULL если callback отсутствует.
Returns:
значение из перечисления Pipe_Stream_RW_ErrorCodes_t.
uint8_t Pipe_Write_EStream_BE ( const void *  Buffer,
uint16_t  Length,
StreamCallbackPtr_t  Callback 
)

Версия Pipe_Write_Stream_BE() с буфером в EEPROM.

Parameters:
[in]Bufferуказатель на буфер, откуда читаются данные.
[in]Lengthколичество читаемых в буфер байт для выбранного в настоящий момент канала.
[in]Callbackимя подпрограммы callback для вызова между последовательными пакетными передачами USB, NULL если callback отсутствует.
Returns:
значение из перечисления Pipe_Stream_RW_ErrorCodes_t.
uint8_t Pipe_Write_EStream_LE ( const void *  Buffer,
uint16_t  Length,
StreamCallbackPtr_t  Callback 
)

Версия Pipe_Write_Stream_LE() с буфером в EEPROM.

Parameters:
[in]Bufferуказатель на буфер, откуда читаются данные.
[in]Lengthколичество читаемых в буфер байт для выбранного в настоящий момент канала.
[in]Callbackимя подпрограммы callback для вызова между последовательными пакетными передачами USB, NULL если callback отсутствует.
Returns:
значение из перечисления Pipe_Stream_RW_ErrorCodes_t.
uint8_t Pipe_Write_PStream_BE ( const void *  Buffer,
uint16_t  Length,
StreamCallbackPtr_t  Callback 
)

Версия Pipe_Write_Stream_BE() с буфером во FLASH.

Precondition:
Данные из FLASH должны быть размещены в первых 64KB памяти FLASH, чтобы эта функция работала корректно.
Parameters:
[in]Bufferуказатель на буфер, откуда читаются данные.
[in]Lengthколичество читаемых в буфер байт для выбранного в настоящий момент канала.
[in]Callbackимя подпрограммы callback для вызова между последовательными пакетными передачами USB, NULL если callback отсутствует.
Returns:
значение из перечисления Pipe_Stream_RW_ErrorCodes_t.
uint8_t Pipe_Write_PStream_LE ( const void *  Buffer,
uint16_t  Length,
StreamCallbackPtr_t  Callback 
)

Версия Pipe_Write_Stream_LE() с буфером во FLASH.

Precondition:
Данные из FLASH должны быть размещены в первых 64KB памяти FLASH, чтобы эта функция работала корректно.
Parameters:
[in]Bufferуказатель на буфер, откуда читаются данные.
[in]Lengthколичество читаемых в буфер байт для выбранного в настоящий момент канала.
[in]Callbackимя подпрограммы callback для вызова между последовательными пакетными передачами USB, NULL если callback отсутствует.
Returns:
значение из перечисления Pipe_Stream_RW_ErrorCodes_t.
uint8_t Pipe_Write_Stream_BE ( const void *  Buffer,
uint16_t  Length,
StreamCallbackPtr_t  Callback 
)

Записывает указанное количество байт в канал из указанного буфера в формате big endian, отправляя полные пакеты на устройство по мере необходимости. Последний заполненный пакет не отправляется автоматически; пользователь отвечает за ручную отправку последнего записанного пакета с помощью макроса Pipe_ClearOUT(). Между каждым пакетом USB, указанная функция callback вызывается с повторениями, пока не будет готов следующий пакет, что позволяет ранние обрывы передач потока.

Подпрограмма callback должна быть создана в соответствии с информацией в Функции обратного вызова конечной точки и потока канала. Если токен NO_STREAM_CALLBACKS передается компилятору через опцию -D, поток функции callback запрещается и параметр этой функции Callback пропускается.

Токен канала устанавливается автоматически, что можно использовать на двунаправленных каналах напрямую без явного изменения направления данных через вызов Pipe_SetPipeToken().

Parameters:
[in]Bufferуказатель на буфер, откуда читаются данные.
[in]Lengthколичество читаемых в буфер байт для выбранного в настоящий момент канала.
[in]Callbackимя подпрограммы callback для вызова между последовательными пакетными передачами USB, NULL если callback отсутствует.
Returns:
значение из перечисления Pipe_Stream_RW_ErrorCodes_t.
uint8_t Pipe_Write_Stream_LE ( const void *  Buffer,
uint16_t  Length,
StreamCallbackPtr_t  Callback 
)

Записывает указанное количество байт в канал от указанного буфера в формате little endian, отправляя полные пакеты к устройству по мере необходимости. Последний заполненный пакет не отправляется автоматически; пользователь отвечает за ручную отправку последнего записанного пакета с помощью макроса Pipe_ClearOUT(). Между каждым пакетом USB, указанная функция callback вызывается с повторениями, пока не будет готов следующий пакет, что позволяет ранние обрывы передач потока.

Подпрограмма callback должна быть создана в соответствии с информацией в Функции обратного вызова конечной точки и потока канала. Если токен NO_STREAM_CALLBACKS передается компилятору через опцию -D, поток функции callback запрещается и параметр этой функции Callback пропускается.

Токен канала устанавливается автоматически, что можно использовать на двунаправленных каналах напрямую без явного изменения направления данных через вызов Pipe_SetPipeToken().

Parameters:
[in]Bufferуказатель на буфер, откуда читаются данные.
[in]Lengthколичество читаемых в буфер байт для выбранного в настоящий момент канала.
[in]Callbackимя подпрограммы callback для вызова между последовательными пакетными передачами USB, NULL если callback отсутствует.
Returns:
значение из перечисления Pipe_Stream_RW_ErrorCodes_t.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines